packages feed

haste-compiler 0.2.2 → 0.2.3

raw patch · 17 files changed

+4748/−145 lines, 17 files

Files

haste-compiler.cabal view
@@ -1,5 +1,5 @@ Name:           haste-compiler-Version:        0.2.2+Version:        0.2.3 License:        BSD3 License-File:   LICENSE Synopsis:       Haskell To ECMAScript compiler@@ -30,7 +30,9 @@     array.js     pointers.js     unicode.js+    cheap-unicode.js     debug.js+    Canvas.js  Executable haste-boot     Main-Is: haste-boot.hs
+ lib/Canvas.js view
@@ -0,0 +1,21 @@+// 2D Canvas drawing primitives.+function jsHasCtx2D(elem) {return !!elem.getContext;}+function jsGetCtx2D(elem) {return elem.getContext('2d');}+function jsBeginPath(ctx) {ctx.beginPath();}+function jsMoveTo(ctx, x, y) {ctx.moveTo(x, y);}+function jsLineTo(ctx, x, y) {ctx.lineTo(x, y);}+function jsStroke(ctx) {ctx.stroke();}+function jsFill(ctx) {ctx.fill();}+function jsRotate(ctx, radians) {ctx.rotate(radians);}+function jsTranslate(ctx, x, y) {ctx.translate(x, y);}+function jsScale(ctx, x, y) {ctx.scale(x, y);}+function jsPushState(ctx) {ctx.save();}+function jsPopState(ctx) {ctx.restore();}+function jsResetCanvas(el) {el.width = el.width;}+function jsDrawImage(ctx, img, x, y) {ctx.drawImage(img, x, y);}+function jsDrawImageClipped(ctx, img, x, y, cx, cy, cw, ch) {+    ctx.drawImage(img, cx, cy, cw, ch, x, y, cw, ch);+}+function jsDrawText(ctx, str, x, y) {ctx.fillText(str, x, y);}+function jsClip(ctx) {ctx.clip();}+function jsCanvasToDataURL(el) {return el.toDataURL('image/png');}
lib/MVar.js view
@@ -11,9 +11,10 @@     if(mv.empty) {         return [0, 0, undefined];     } else {+        var val = mv.x;         mv.empty = true;         mv.x = null;-        return [0, 1, mv.x];+        return [0, 1, val];     } } @@ -22,9 +23,10 @@         // TODO: real BlockedOnDeadMVar exception, perhaps?         err("Attempted to take empty MVar!");     }+    var val = mv.x;     mv.empty = true;     mv.x = null;-    return mv.x;+    return val; }  function putMVar(mv, val) {
+ lib/cheap-unicode.js view
@@ -0,0 +1,56 @@+function withChar(f, charCode) {+    return f(String.fromCharCode(charCode)).charCodeAt(0);+}++function u_towlower(charCode) {+    return withChar(function(c) {return c.toLowerCase()}, charCode);+}++function u_towupper(charCode) {+    return withChar(function(c) {return c.toUpperCase()}, charCode);+}++var u_towtitle = u_towupper;++function u_iswupper(charCode) {+    var c = String.fromCharCode(charCode);+    return c == c.toUpperCase() && c != c.toLowerCase();+}++function u_iswlower(charCode) {+    var c = String.fromCharCode(charCode);+    return  c == c.toLowerCase() && c != c.toUpperCase();+}++function u_iswdigit(charCode) {+    return charCode >= 48 && charCode <= 57;+}++function u_iswcntrl(charCode) {+    return charCode <= 0x1f || charCode == 0x7f;+}++function u_iswspace(charCode) {+    var c = String.fromCharCode(charCode);+    return c.replace(/\s/g,'') != c;+}++function u_iswalpha(charCode) {+    var c = String.fromCharCode(charCode);+    return c.replace(__hs_alphare, '') != c;+}++function u_iswalnum(charCode) {+    return u_iswdigit(charCode) || u_iswalpha(charCode);+}++function u_iswprint(charCode) {+    return !u_iswcntrl(charCode);+}++function u_gencat(c) {+    throw 'u_gencat is only supported with --full-unicode.';+}++// Regex that matches any alphabetic character in any language. Horrible thing.+var __hs_alphare = /[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/g;
lib/rts.js view
@@ -8,6 +8,10 @@ */  function T(f) {+    this.f = new F(f);+}++function F(f) {     this.f = f; } @@ -18,27 +22,29 @@    function) is then applied to the remaining arguments. */ function A(f, args) {-    f = f instanceof T ? E(f) : f;+    if(f instanceof T) {+        f = E(f);+    }     // Closure does some funny stuff with functions that occasionally     // results in non-functions getting applied, so we have to deal with     // it.-    if(!f.apply) {+    if(f.apply === undefined) {         return f;     } -    var arity = f.arity ? f.arity : f.length;-    if(args.length === arity) {-        return f.apply(null, args);+    if(f.arity === undefined) {+        f.arity = f.length;     }-    if(args.length > arity) {-        var first = args.splice(0, arity);-        return A(f.apply(null, first), args);+    if(args.length === f.arity) {+        return f.arity === 1 ? f(args[0]) : f.apply(null, args);+    } else if(args.length > f.arity) {+        return f.arity === 1 ? A(f(args.shift()), args)+                             : A(f.apply(null, args.splice(0, f.arity)), args);     } else {         var g = function() {-            var as = args.concat(Array.prototype.slice.call(arguments));-            return A(f, as);+            return A(f, args.concat(Array.prototype.slice.call(arguments)));         };-        g.arity = arity - args.length;+        g.arity = f.arity - args.length;         return g;     } }@@ -49,13 +55,14 @@ */ function E(t) {     if(t instanceof T) {-        if(t.f) {-            t.x = t.f();-            t.f = 0;+        if(t.f instanceof F) {+            return t.f = t.f.f();+        } else {+            return t.f;         }-        return t.x;+    } else {+        return t;     }-    return t; }  /* Throw an error.
lib/stdlib.js view
@@ -40,6 +40,23 @@     return val == Math.round(val) ? ret + '.0' : ret; } +function jsGetMouseCoords(e) {+    var posx = 0;+    var posy = 0;+    if (!e) var e = window.event;+    if (e.pageX || e.pageY) 	{+	posx = e.pageX;+	posy = e.pageY;+    }+    else if (e.clientX || e.clientY) 	{+	posx = e.clientX + document.body.scrollLeft+	    + document.documentElement.scrollLeft;+	posy = e.clientY + document.body.scrollTop+	    + document.documentElement.scrollTop;+    }+    return [posx - e.target.offsetLeft, posy - e.target.offsetTop];+}+ function jsSetCB(elem, evt, cb) {     // Count return press in single line text box as a change event.     if(evt == 'change' && elem.type.toLowerCase() == 'text') {@@ -56,8 +73,22 @@     case 'dblclick':     case 'mouseup':     case 'mousedown':-        fun = function(x) {A(cb,[[0,x.button],0]);};+        fun = function(x) {+            var mpos = jsGetMouseCoords(x);+            var mx = [0,mpos[0]];+            var my = [0,mpos[1]];+            A(cb,[[0,x.button],[0,mx,my],0]);+        };         break;+    case 'mousemove':+    case 'mouseover':+        fun = function(x) {+            var mpos = jsGetMouseCoords(x);+            var mx = [0,mpos[0]];+            var my = [0,mpos[1]];+            A(cb,[[0,mx,my],0]);+        };+        break;     case 'keypress':     case 'keyup':     case 'keydown':@@ -85,22 +116,6 @@     window.setTimeout(function() {A(cb,[0]);}, msecs); } -// Degenerate versions of u_iswspace, u_iswalnum and u_iswalpha.-function u_iswspace(c) {-    return c==9 || c==10 || c==13 || c==32;-}--function u_iswalnum(c) {-    return (c >= 48 && c <= 57) || u_iswalpha(c);-}--// [a-zA-ZåäöÅÄÖ]-function u_iswalpha(c) {-    return (c >= 65 && c <= 90) || (c >= 97 && c <= 122) ||-            c == 229 || c == 228 || c == 246 ||-            c == 197 || c == 196 || c == 214;-}- function jsGet(elem, prop) {     return elem[prop].toString(); }@@ -194,7 +209,7 @@ function jsCat(strs, sep) {     var arr = [];     strs = E(strs);-    while(strs[0] != 1) {+    while(strs[0]) {         strs = E(strs);         arr.push(E(strs[1])[1]);         strs = E(strs[2]);
lib/unicode.js view
@@ -1,56 +1,4427 @@-function withChar(f, charCode) {-    return f(String.fromCharCode(charCode)).charCodeAt(0);-}--function u_towlower(charCode) {-    return withChar(function(c) {return c.toLowerCase()}, charCode);-}--function u_towupper(charCode) {-    return withChar(function(c) {return c.toUpperCase()}, charCode);-}--var u_towtitle = u_towupper;--function u_iswupper(charCode) {-    var c = String.fromCharCode(charCode);-    return isNaN(c*1) && c == c.toUpperCase();-}--function u_iswlower(charCode) {-    var c = String.fromCharCode(charCode);-    return isNaN(c*1) && c == c.toLowerCase();-}--function u_iswdigit(charCode) {-    return charCode >= 48 && charCode <= 57;-}--function u_iswcntrl(charCode) {-    return charCode <= 0x1f || charCode == 0x7f;-}--function u_iswspace(charCode) {-    var c = String.fromCharCode(charCode);-    return c.replace(/\s/g,'') != c;-}--function u_iswalpha(charCode) {-    var c = String.fromCharCode(charCode);-    return c.replace(__hs_alphare, '') != c;-}--function u_iswalnum(charCode) {-    return u_iswdigit(charCode) || u_iswalpha(charCode);-}--function u_iswprint(charCode) {-    return !u_iswcntrl(charCode);-}--function u_gencat(c) {-    throw 'u_gencat is not supported; submit a patch if you want it to be';-}--// Regex that matches any alphabetic character in any language. Horrible thing.-var __hs_alphare = /[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/g;+/*-------------------------------------------------------------------------+This is an automatically generated file: do not edit+Generated by unicode-gen.sh at Tue Jul 30 09:35:28 CEST 2013+-------------------------------------------------------------------------*/++/* Unicode general categories, listed in the same order as in the Unicode+ * standard -- this must be the same order as in GHC.Unicode.+ */++var NUMCAT_LU = 0;  /* Letter, Uppercase */+var NUMCAT_LL = 1;  /* Letter, Lowercase */+var NUMCAT_LT = 2;  /* Letter, Titlecase */+var NUMCAT_LM = 3;  /* Letter, Modifier */+var NUMCAT_LO = 4;  /* Letter, Other */+var NUMCAT_MN = 5;  /* Mark, Non-Spacing */+var NUMCAT_MC = 6;  /* Mark, Spacing Combining */+var NUMCAT_ME = 7;  /* Mark, Enclosing */+var NUMCAT_ND = 8;  /* Number, Decimal */+var NUMCAT_NL = 9;  /* Number, Letter */+var NUMCAT_NO = 10;  /* Number, Other */+var NUMCAT_PC = 11;  /* Punctuation, Connector */+var NUMCAT_PD = 12;  /* Punctuation, Dash */+var NUMCAT_PS = 13;  /* Punctuation, Open */+var NUMCAT_PE = 14;  /* Punctuation, Close */+var NUMCAT_PI = 15;  /* Punctuation, Initial quote */+var NUMCAT_PF = 16;  /* Punctuation, Final quote */+var NUMCAT_PO = 17;  /* Punctuation, Other */+var NUMCAT_SM = 18;  /* Symbol, Math */+var NUMCAT_SC = 19;  /* Symbol, Currency */+var NUMCAT_SK = 20;  /* Symbol, Modifier */+var NUMCAT_SO = 21;  /* Symbol, Other */+var NUMCAT_ZS = 22;  /* Separator, Space */+var NUMCAT_ZL = 23;  /* Separator, Line */+var NUMCAT_ZP = 24;  /* Separator, Paragraph */+var NUMCAT_CC = 25;  /* Other, Control */+var NUMCAT_CF = 26;  /* Other, Format */+var NUMCAT_CS = 27;  /* Other, Surrogate */+var NUMCAT_CO = 28;  /* Other, Private Use */+var NUMCAT_CN = 29;  /* Other, Not Assigned */+++/* struct _convrule_ */+function _convrule_(category, catnumber, possible, updist, lowdist, titledist) {+	return {+		category: category, /* unsigned int */+		catnumber: catnumber, /* unsigned int */+		possible: possible, /* int */+		updist: updist, /* int */+		lowdist: lowdist, /* int */+		titledist: titledist /* int */+	};+};++/* struct _charblock_ */+function _charblock_(start, length, rule) {+	return {+		start: start, /* int */+		length: length, /* int */+		rule: rule /* struct _convrule_ */+	};+}++var GENCAT_PF = 131072;+var GENCAT_SM = 64;+var GENCAT_SO = 8192;+var GENCAT_PI = 16384;+var GENCAT_MC = 8388608;+var GENCAT_CO = 268435456;+var GENCAT_ME = 4194304;+var GENCAT_PO = 4;+var GENCAT_CS = 134217728;+var GENCAT_PS = 16;+var GENCAT_MN = 2097152;+var GENCAT_ZL = 33554432;+var GENCAT_ZP = 67108864;+var GENCAT_ZS = 2;+var GENCAT_LL = 4096;+var GENCAT_LM = 1048576;+var GENCAT_LO = 262144;+var GENCAT_ND = 256;+var GENCAT_LT = 524288;+var GENCAT_SC = 8;+var GENCAT_LU = 512;+var GENCAT_NL = 16777216;+var GENCAT_CC = 1;+var GENCAT_NO = 65536;+var GENCAT_CF = 32768;+var GENCAT_PC = 2048;+var GENCAT_SK = 1024;+var GENCAT_PD = 128;+var GENCAT_PE = 32;+var MAX_UNI_CHAR = 1114109;+var NUM_BLOCKS = 2783;+var NUM_CONVBLOCKS = 1230;+var NUM_SPACEBLOCKS = 8;+var NUM_LAT1BLOCKS = 63;+var NUM_RULES = 167;+var rule163=_convrule_(GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0);+var rule30=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 205, 0);+var rule84=_convrule_(GENCAT_MN, NUMCAT_MN, 0, 0, 0, 0);+var rule150=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -10743, 0);+var rule147=_convrule_(GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16);+var rule134=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0);+var rule120=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -7615, 0);+var rule117=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 35332, 0, 35332);+var rule67=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -202, 0, -202);+var rule45=_convrule_(GENCAT_LO, NUMCAT_LO, 0, 0, 0, 0);+var rule145=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -28, 0, -28);+var rule126=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128);+var rule123=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 74, 0, 74);+var rule105=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0);+var rule13=_convrule_(GENCAT_SO, NUMCAT_SO, 0, 0, 0, 0);+var rule33=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 203, 0);+var rule61=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 10783, 0, 10783);+var rule73=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 10743, 0, 10743);+var rule12=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -32, 0, -32);+var rule110=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 15, 0);+var rule160=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264);+var rule32=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 202, 0);+var rule5=_convrule_(GENCAT_PE, NUMCAT_PE, 0, 0, 0, 0);+var rule8=_convrule_(GENCAT_ND, NUMCAT_ND, 0, 0, 0, 0);+var rule165=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0);+var rule38=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 163, 0, 163);+var rule94=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -63, 0, -63);+var rule55=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -163, 0);+var rule141=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0);+var rule22=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -1, 0, -1);+var rule88=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0);+var rule136=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -112, 0);+var rule109=_convrule_(GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0);+var rule3=_convrule_(GENCAT_SC, NUMCAT_SC, 0, 0, 0, 0);+var rule86=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0);+var rule128=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126);+var rule52=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -56, 0);+var rule121=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8);+var rule100=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54);+var rule82=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -219, 0, -219);+var rule116=_convrule_(GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0);+var rule89=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0);+var rule98=_convrule_(GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0);+var rule87=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 37, 0);+var rule40=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 130, 0, 130);+var rule97=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -57, 0, -57);+var rule124=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86);+var rule46=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 56, 0, 56);+var rule79=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -69, 0, -69);+var rule80=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -217, 0, -217);+var rule85=_convrule_(GENCAT_MN, NUMCAT_MN, 1, 84, 0, 84);+var rule10=_convrule_(GENCAT_SK, NUMCAT_SK, 0, 0, 0, 0);+var rule140=_convrule_(GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0);+var rule114=_convrule_(GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0);+var rule133=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205);+var rule113=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -48, 0, -48);+var rule74=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 10749, 0, 10749);+var rule75=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -213, 0, -213);+var rule95=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 8, 0);+var rule166=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40);+var rule132=_convrule_(GENCAT_LT, NUMCAT_LT, 1, 0, -9, 0);+var rule125=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100);+var rule71=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -209, 0, -209);+var rule72=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -211, 0, -211);+var rule1=_convrule_(GENCAT_ZS, NUMCAT_ZS, 0, 0, 0, 0);+var rule148=_convrule_(GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0);+var rule129=_convrule_(GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0);+var rule63=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 10782, 0, 10782);+var rule44=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 219, 0);+var rule92=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31);+var rule157=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -10783, 0);+var rule69=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -207, 0, -207);+var rule14=_convrule_(GENCAT_LL, NUMCAT_LL, 0, 0, 0, 0);+var rule15=_convrule_(GENCAT_PI, NUMCAT_PI, 0, 0, 0, 0);+var rule151=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -3814, 0);+var rule9=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 32, 0);+var rule42=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 218, 0);+var rule26=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -300, 0, -300);+var rule66=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -205, 0, -205);+var rule158=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -10782, 0);+var rule96=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -62, 0, -62);+var rule54=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 10795, 0);+var rule142=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0);+var rule53=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -130, 0);+var rule131=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -74, 0);+var rule101=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -8, 0, -8);+var rule43=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 217, 0);+var rule62=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 10780, 0, 10780);+var rule68=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -203, 0, -203);+var rule139=_convrule_(GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0);+var rule149=_convrule_(GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26);+var rule57=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 10815, 0, 10815);+var rule91=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -37, 0, -37);+var rule137=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0);+var rule153=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -10795, 0, -10795);+var rule155=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -10780, 0);+var rule122=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -8, 0);+var rule31=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 79, 0);+var rule143=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0);+var rule51=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -97, 0);+var rule108=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 80, 0);+var rule144=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0);+var rule24=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -232, 0, -232);+var rule107=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -7, 0);+var rule106=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96);+var rule152=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -10727, 0);+var rule138=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0);+var rule47=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 2, 1);+var rule56=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 10792, 0);+var rule99=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47);+var rule2=_convrule_(GENCAT_PO, NUMCAT_PO, 0, 0, 0, 0);+var rule83=_convrule_(GENCAT_LM, NUMCAT_LM, 0, 0, 0, 0);+var rule130=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 9, 0, 9);+var rule119=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59);+var rule41=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 214, 0);+var rule162=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -42280, 0);+var rule21=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 1, 0);+var rule6=_convrule_(GENCAT_SM, NUMCAT_SM, 0, 0, 0, 0);+var rule135=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0);+var rule39=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 213, 0);+var rule90=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38);+var rule164=_convrule_(GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0);+var rule23=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -199, 0);+var rule156=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -10749, 0);+var rule154=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -10792, 0, -10792);+var rule118=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 3814, 0, 3814);+var rule78=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -218, 0, -218);+var rule11=_convrule_(GENCAT_PC, NUMCAT_PC, 0, 0, 0, 0);+var rule36=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 211, 0);+var rule20=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 121, 0, 121);+var rule35=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 97, 0, 97);+var rule70=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 42280, 0, 42280);+var rule112=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 48, 0);+var rule37=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 209, 0);+var rule104=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7);+var rule28=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 210, 0);+var rule76=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -214, 0, -214);+var rule0=_convrule_(GENCAT_CC, NUMCAT_CC, 0, 0, 0, 0);+var rule17=_convrule_(GENCAT_NO, NUMCAT_NO, 0, 0, 0, 0);+var rule19=_convrule_(GENCAT_PF, NUMCAT_PF, 0, 0, 0, 0);+var rule161=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0);+var rule25=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -121, 0);+var rule127=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112);+var rule159=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -10815, 0);+var rule93=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -64, 0, -64);+var rule49=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -2, 0, -1);+var rule111=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -15, 0, -15);+var rule103=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80);+var rule50=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -79, 0, -79);+var rule58=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, -195, 0);+var rule34=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 207, 0);+var rule64=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -210, 0, -210);+var rule146=_convrule_(GENCAT_NL, NUMCAT_NL, 1, 0, 16, 0);+var rule4=_convrule_(GENCAT_PS, NUMCAT_PS, 0, 0, 0, 0);+var rule16=_convrule_(GENCAT_CF, NUMCAT_CF, 0, 0, 0, 0);+var rule48=_convrule_(GENCAT_LT, NUMCAT_LT, 1, -1, 1, 0);+var rule27=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 195, 0, 195);+var rule77=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 10727, 0, 10727);+var rule18=_convrule_(GENCAT_LL, NUMCAT_LL, 1, 743, 0, 743);+var rule60=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 71, 0);+var rule81=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -71, 0, -71);+var rule29=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 206, 0);+var rule65=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -206, 0, -206);+var rule7=_convrule_(GENCAT_PD, NUMCAT_PD, 0, 0, 0, 0);+var rule59=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 69, 0);+var rule115=_convrule_(GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0);+var rule102=_convrule_(GENCAT_LL, NUMCAT_LL, 1, -86, 0, -86);+var allchars = [+	_charblock_(0, 32, rule0),+	_charblock_(32, 1, rule1),+	_charblock_(33, 3, rule2),+	_charblock_(36, 1, rule3),+	_charblock_(37, 3, rule2),+	_charblock_(40, 1, rule4),+	_charblock_(41, 1, rule5),+	_charblock_(42, 1, rule2),+	_charblock_(43, 1, rule6),+	_charblock_(44, 1, rule2),+	_charblock_(45, 1, rule7),+	_charblock_(46, 2, rule2),+	_charblock_(48, 10, rule8),+	_charblock_(58, 2, rule2),+	_charblock_(60, 3, rule6),+	_charblock_(63, 2, rule2),+	_charblock_(65, 26, rule9),+	_charblock_(91, 1, rule4),+	_charblock_(92, 1, rule2),+	_charblock_(93, 1, rule5),+	_charblock_(94, 1, rule10),+	_charblock_(95, 1, rule11),+	_charblock_(96, 1, rule10),+	_charblock_(97, 26, rule12),+	_charblock_(123, 1, rule4),+	_charblock_(124, 1, rule6),+	_charblock_(125, 1, rule5),+	_charblock_(126, 1, rule6),+	_charblock_(127, 33, rule0),+	_charblock_(160, 1, rule1),+	_charblock_(161, 1, rule2),+	_charblock_(162, 4, rule3),+	_charblock_(166, 2, rule13),+	_charblock_(168, 1, rule10),+	_charblock_(169, 1, rule13),+	_charblock_(170, 1, rule14),+	_charblock_(171, 1, rule15),+	_charblock_(172, 1, rule6),+	_charblock_(173, 1, rule16),+	_charblock_(174, 1, rule13),+	_charblock_(175, 1, rule10),+	_charblock_(176, 1, rule13),+	_charblock_(177, 1, rule6),+	_charblock_(178, 2, rule17),+	_charblock_(180, 1, rule10),+	_charblock_(181, 1, rule18),+	_charblock_(182, 1, rule13),+	_charblock_(183, 1, rule2),+	_charblock_(184, 1, rule10),+	_charblock_(185, 1, rule17),+	_charblock_(186, 1, rule14),+	_charblock_(187, 1, rule19),+	_charblock_(188, 3, rule17),+	_charblock_(191, 1, rule2),+	_charblock_(192, 23, rule9),+	_charblock_(215, 1, rule6),+	_charblock_(216, 7, rule9),+	_charblock_(223, 1, rule14),+	_charblock_(224, 23, rule12),+	_charblock_(247, 1, rule6),+	_charblock_(248, 7, rule12),+	_charblock_(255, 1, rule20),+	_charblock_(256, 1, rule21),+	_charblock_(257, 1, rule22),+	_charblock_(258, 1, rule21),+	_charblock_(259, 1, rule22),+	_charblock_(260, 1, rule21),+	_charblock_(261, 1, rule22),+	_charblock_(262, 1, rule21),+	_charblock_(263, 1, rule22),+	_charblock_(264, 1, rule21),+	_charblock_(265, 1, rule22),+	_charblock_(266, 1, rule21),+	_charblock_(267, 1, rule22),+	_charblock_(268, 1, rule21),+	_charblock_(269, 1, rule22),+	_charblock_(270, 1, rule21),+	_charblock_(271, 1, rule22),+	_charblock_(272, 1, rule21),+	_charblock_(273, 1, rule22),+	_charblock_(274, 1, rule21),+	_charblock_(275, 1, rule22),+	_charblock_(276, 1, rule21),+	_charblock_(277, 1, rule22),+	_charblock_(278, 1, rule21),+	_charblock_(279, 1, rule22),+	_charblock_(280, 1, rule21),+	_charblock_(281, 1, rule22),+	_charblock_(282, 1, rule21),+	_charblock_(283, 1, rule22),+	_charblock_(284, 1, rule21),+	_charblock_(285, 1, rule22),+	_charblock_(286, 1, rule21),+	_charblock_(287, 1, rule22),+	_charblock_(288, 1, rule21),+	_charblock_(289, 1, rule22),+	_charblock_(290, 1, rule21),+	_charblock_(291, 1, rule22),+	_charblock_(292, 1, rule21),+	_charblock_(293, 1, rule22),+	_charblock_(294, 1, rule21),+	_charblock_(295, 1, rule22),+	_charblock_(296, 1, rule21),+	_charblock_(297, 1, rule22),+	_charblock_(298, 1, rule21),+	_charblock_(299, 1, rule22),+	_charblock_(300, 1, rule21),+	_charblock_(301, 1, rule22),+	_charblock_(302, 1, rule21),+	_charblock_(303, 1, rule22),+	_charblock_(304, 1, rule23),+	_charblock_(305, 1, rule24),+	_charblock_(306, 1, rule21),+	_charblock_(307, 1, rule22),+	_charblock_(308, 1, rule21),+	_charblock_(309, 1, rule22),+	_charblock_(310, 1, rule21),+	_charblock_(311, 1, rule22),+	_charblock_(312, 1, rule14),+	_charblock_(313, 1, rule21),+	_charblock_(314, 1, rule22),+	_charblock_(315, 1, rule21),+	_charblock_(316, 1, rule22),+	_charblock_(317, 1, rule21),+	_charblock_(318, 1, rule22),+	_charblock_(319, 1, rule21),+	_charblock_(320, 1, rule22),+	_charblock_(321, 1, rule21),+	_charblock_(322, 1, rule22),+	_charblock_(323, 1, rule21),+	_charblock_(324, 1, rule22),+	_charblock_(325, 1, rule21),+	_charblock_(326, 1, rule22),+	_charblock_(327, 1, rule21),+	_charblock_(328, 1, rule22),+	_charblock_(329, 1, rule14),+	_charblock_(330, 1, rule21),+	_charblock_(331, 1, rule22),+	_charblock_(332, 1, rule21),+	_charblock_(333, 1, rule22),+	_charblock_(334, 1, rule21),+	_charblock_(335, 1, rule22),+	_charblock_(336, 1, rule21),+	_charblock_(337, 1, rule22),+	_charblock_(338, 1, rule21),+	_charblock_(339, 1, rule22),+	_charblock_(340, 1, rule21),+	_charblock_(341, 1, rule22),+	_charblock_(342, 1, rule21),+	_charblock_(343, 1, rule22),+	_charblock_(344, 1, rule21),+	_charblock_(345, 1, rule22),+	_charblock_(346, 1, rule21),+	_charblock_(347, 1, rule22),+	_charblock_(348, 1, rule21),+	_charblock_(349, 1, rule22),+	_charblock_(350, 1, rule21),+	_charblock_(351, 1, rule22),+	_charblock_(352, 1, rule21),+	_charblock_(353, 1, rule22),+	_charblock_(354, 1, rule21),+	_charblock_(355, 1, rule22),+	_charblock_(356, 1, rule21),+	_charblock_(357, 1, rule22),+	_charblock_(358, 1, rule21),+	_charblock_(359, 1, rule22),+	_charblock_(360, 1, rule21),+	_charblock_(361, 1, rule22),+	_charblock_(362, 1, rule21),+	_charblock_(363, 1, rule22),+	_charblock_(364, 1, rule21),+	_charblock_(365, 1, rule22),+	_charblock_(366, 1, rule21),+	_charblock_(367, 1, rule22),+	_charblock_(368, 1, rule21),+	_charblock_(369, 1, rule22),+	_charblock_(370, 1, rule21),+	_charblock_(371, 1, rule22),+	_charblock_(372, 1, rule21),+	_charblock_(373, 1, rule22),+	_charblock_(374, 1, rule21),+	_charblock_(375, 1, rule22),+	_charblock_(376, 1, rule25),+	_charblock_(377, 1, rule21),+	_charblock_(378, 1, rule22),+	_charblock_(379, 1, rule21),+	_charblock_(380, 1, rule22),+	_charblock_(381, 1, rule21),+	_charblock_(382, 1, rule22),+	_charblock_(383, 1, rule26),+	_charblock_(384, 1, rule27),+	_charblock_(385, 1, rule28),+	_charblock_(386, 1, rule21),+	_charblock_(387, 1, rule22),+	_charblock_(388, 1, rule21),+	_charblock_(389, 1, rule22),+	_charblock_(390, 1, rule29),+	_charblock_(391, 1, rule21),+	_charblock_(392, 1, rule22),+	_charblock_(393, 2, rule30),+	_charblock_(395, 1, rule21),+	_charblock_(396, 1, rule22),+	_charblock_(397, 1, rule14),+	_charblock_(398, 1, rule31),+	_charblock_(399, 1, rule32),+	_charblock_(400, 1, rule33),+	_charblock_(401, 1, rule21),+	_charblock_(402, 1, rule22),+	_charblock_(403, 1, rule30),+	_charblock_(404, 1, rule34),+	_charblock_(405, 1, rule35),+	_charblock_(406, 1, rule36),+	_charblock_(407, 1, rule37),+	_charblock_(408, 1, rule21),+	_charblock_(409, 1, rule22),+	_charblock_(410, 1, rule38),+	_charblock_(411, 1, rule14),+	_charblock_(412, 1, rule36),+	_charblock_(413, 1, rule39),+	_charblock_(414, 1, rule40),+	_charblock_(415, 1, rule41),+	_charblock_(416, 1, rule21),+	_charblock_(417, 1, rule22),+	_charblock_(418, 1, rule21),+	_charblock_(419, 1, rule22),+	_charblock_(420, 1, rule21),+	_charblock_(421, 1, rule22),+	_charblock_(422, 1, rule42),+	_charblock_(423, 1, rule21),+	_charblock_(424, 1, rule22),+	_charblock_(425, 1, rule42),+	_charblock_(426, 2, rule14),+	_charblock_(428, 1, rule21),+	_charblock_(429, 1, rule22),+	_charblock_(430, 1, rule42),+	_charblock_(431, 1, rule21),+	_charblock_(432, 1, rule22),+	_charblock_(433, 2, rule43),+	_charblock_(435, 1, rule21),+	_charblock_(436, 1, rule22),+	_charblock_(437, 1, rule21),+	_charblock_(438, 1, rule22),+	_charblock_(439, 1, rule44),+	_charblock_(440, 1, rule21),+	_charblock_(441, 1, rule22),+	_charblock_(442, 1, rule14),+	_charblock_(443, 1, rule45),+	_charblock_(444, 1, rule21),+	_charblock_(445, 1, rule22),+	_charblock_(446, 1, rule14),+	_charblock_(447, 1, rule46),+	_charblock_(448, 4, rule45),+	_charblock_(452, 1, rule47),+	_charblock_(453, 1, rule48),+	_charblock_(454, 1, rule49),+	_charblock_(455, 1, rule47),+	_charblock_(456, 1, rule48),+	_charblock_(457, 1, rule49),+	_charblock_(458, 1, rule47),+	_charblock_(459, 1, rule48),+	_charblock_(460, 1, rule49),+	_charblock_(461, 1, rule21),+	_charblock_(462, 1, rule22),+	_charblock_(463, 1, rule21),+	_charblock_(464, 1, rule22),+	_charblock_(465, 1, rule21),+	_charblock_(466, 1, rule22),+	_charblock_(467, 1, rule21),+	_charblock_(468, 1, rule22),+	_charblock_(469, 1, rule21),+	_charblock_(470, 1, rule22),+	_charblock_(471, 1, rule21),+	_charblock_(472, 1, rule22),+	_charblock_(473, 1, rule21),+	_charblock_(474, 1, rule22),+	_charblock_(475, 1, rule21),+	_charblock_(476, 1, rule22),+	_charblock_(477, 1, rule50),+	_charblock_(478, 1, rule21),+	_charblock_(479, 1, rule22),+	_charblock_(480, 1, rule21),+	_charblock_(481, 1, rule22),+	_charblock_(482, 1, rule21),+	_charblock_(483, 1, rule22),+	_charblock_(484, 1, rule21),+	_charblock_(485, 1, rule22),+	_charblock_(486, 1, rule21),+	_charblock_(487, 1, rule22),+	_charblock_(488, 1, rule21),+	_charblock_(489, 1, rule22),+	_charblock_(490, 1, rule21),+	_charblock_(491, 1, rule22),+	_charblock_(492, 1, rule21),+	_charblock_(493, 1, rule22),+	_charblock_(494, 1, rule21),+	_charblock_(495, 1, rule22),+	_charblock_(496, 1, rule14),+	_charblock_(497, 1, rule47),+	_charblock_(498, 1, rule48),+	_charblock_(499, 1, rule49),+	_charblock_(500, 1, rule21),+	_charblock_(501, 1, rule22),+	_charblock_(502, 1, rule51),+	_charblock_(503, 1, rule52),+	_charblock_(504, 1, rule21),+	_charblock_(505, 1, rule22),+	_charblock_(506, 1, rule21),+	_charblock_(507, 1, rule22),+	_charblock_(508, 1, rule21),+	_charblock_(509, 1, rule22),+	_charblock_(510, 1, rule21),+	_charblock_(511, 1, rule22),+	_charblock_(512, 1, rule21),+	_charblock_(513, 1, rule22),+	_charblock_(514, 1, rule21),+	_charblock_(515, 1, rule22),+	_charblock_(516, 1, rule21),+	_charblock_(517, 1, rule22),+	_charblock_(518, 1, rule21),+	_charblock_(519, 1, rule22),+	_charblock_(520, 1, rule21),+	_charblock_(521, 1, rule22),+	_charblock_(522, 1, rule21),+	_charblock_(523, 1, rule22),+	_charblock_(524, 1, rule21),+	_charblock_(525, 1, rule22),+	_charblock_(526, 1, rule21),+	_charblock_(527, 1, rule22),+	_charblock_(528, 1, rule21),+	_charblock_(529, 1, rule22),+	_charblock_(530, 1, rule21),+	_charblock_(531, 1, rule22),+	_charblock_(532, 1, rule21),+	_charblock_(533, 1, rule22),+	_charblock_(534, 1, rule21),+	_charblock_(535, 1, rule22),+	_charblock_(536, 1, rule21),+	_charblock_(537, 1, rule22),+	_charblock_(538, 1, rule21),+	_charblock_(539, 1, rule22),+	_charblock_(540, 1, rule21),+	_charblock_(541, 1, rule22),+	_charblock_(542, 1, rule21),+	_charblock_(543, 1, rule22),+	_charblock_(544, 1, rule53),+	_charblock_(545, 1, rule14),+	_charblock_(546, 1, rule21),+	_charblock_(547, 1, rule22),+	_charblock_(548, 1, rule21),+	_charblock_(549, 1, rule22),+	_charblock_(550, 1, rule21),+	_charblock_(551, 1, rule22),+	_charblock_(552, 1, rule21),+	_charblock_(553, 1, rule22),+	_charblock_(554, 1, rule21),+	_charblock_(555, 1, rule22),+	_charblock_(556, 1, rule21),+	_charblock_(557, 1, rule22),+	_charblock_(558, 1, rule21),+	_charblock_(559, 1, rule22),+	_charblock_(560, 1, rule21),+	_charblock_(561, 1, rule22),+	_charblock_(562, 1, rule21),+	_charblock_(563, 1, rule22),+	_charblock_(564, 6, rule14),+	_charblock_(570, 1, rule54),+	_charblock_(571, 1, rule21),+	_charblock_(572, 1, rule22),+	_charblock_(573, 1, rule55),+	_charblock_(574, 1, rule56),+	_charblock_(575, 2, rule57),+	_charblock_(577, 1, rule21),+	_charblock_(578, 1, rule22),+	_charblock_(579, 1, rule58),+	_charblock_(580, 1, rule59),+	_charblock_(581, 1, rule60),+	_charblock_(582, 1, rule21),+	_charblock_(583, 1, rule22),+	_charblock_(584, 1, rule21),+	_charblock_(585, 1, rule22),+	_charblock_(586, 1, rule21),+	_charblock_(587, 1, rule22),+	_charblock_(588, 1, rule21),+	_charblock_(589, 1, rule22),+	_charblock_(590, 1, rule21),+	_charblock_(591, 1, rule22),+	_charblock_(592, 1, rule61),+	_charblock_(593, 1, rule62),+	_charblock_(594, 1, rule63),+	_charblock_(595, 1, rule64),+	_charblock_(596, 1, rule65),+	_charblock_(597, 1, rule14),+	_charblock_(598, 2, rule66),+	_charblock_(600, 1, rule14),+	_charblock_(601, 1, rule67),+	_charblock_(602, 1, rule14),+	_charblock_(603, 1, rule68),+	_charblock_(604, 4, rule14),+	_charblock_(608, 1, rule66),+	_charblock_(609, 2, rule14),+	_charblock_(611, 1, rule69),+	_charblock_(612, 1, rule14),+	_charblock_(613, 1, rule70),+	_charblock_(614, 2, rule14),+	_charblock_(616, 1, rule71),+	_charblock_(617, 1, rule72),+	_charblock_(618, 1, rule14),+	_charblock_(619, 1, rule73),+	_charblock_(620, 3, rule14),+	_charblock_(623, 1, rule72),+	_charblock_(624, 1, rule14),+	_charblock_(625, 1, rule74),+	_charblock_(626, 1, rule75),+	_charblock_(627, 2, rule14),+	_charblock_(629, 1, rule76),+	_charblock_(630, 7, rule14),+	_charblock_(637, 1, rule77),+	_charblock_(638, 2, rule14),+	_charblock_(640, 1, rule78),+	_charblock_(641, 2, rule14),+	_charblock_(643, 1, rule78),+	_charblock_(644, 4, rule14),+	_charblock_(648, 1, rule78),+	_charblock_(649, 1, rule79),+	_charblock_(650, 2, rule80),+	_charblock_(652, 1, rule81),+	_charblock_(653, 5, rule14),+	_charblock_(658, 1, rule82),+	_charblock_(659, 1, rule14),+	_charblock_(660, 1, rule45),+	_charblock_(661, 27, rule14),+	_charblock_(688, 18, rule83),+	_charblock_(706, 4, rule10),+	_charblock_(710, 12, rule83),+	_charblock_(722, 14, rule10),+	_charblock_(736, 5, rule83),+	_charblock_(741, 7, rule10),+	_charblock_(748, 1, rule83),+	_charblock_(749, 1, rule10),+	_charblock_(750, 1, rule83),+	_charblock_(751, 17, rule10),+	_charblock_(768, 69, rule84),+	_charblock_(837, 1, rule85),+	_charblock_(838, 42, rule84),+	_charblock_(880, 1, rule21),+	_charblock_(881, 1, rule22),+	_charblock_(882, 1, rule21),+	_charblock_(883, 1, rule22),+	_charblock_(884, 1, rule83),+	_charblock_(885, 1, rule10),+	_charblock_(886, 1, rule21),+	_charblock_(887, 1, rule22),+	_charblock_(890, 1, rule83),+	_charblock_(891, 3, rule40),+	_charblock_(894, 1, rule2),+	_charblock_(900, 2, rule10),+	_charblock_(902, 1, rule86),+	_charblock_(903, 1, rule2),+	_charblock_(904, 3, rule87),+	_charblock_(908, 1, rule88),+	_charblock_(910, 2, rule89),+	_charblock_(912, 1, rule14),+	_charblock_(913, 17, rule9),+	_charblock_(931, 9, rule9),+	_charblock_(940, 1, rule90),+	_charblock_(941, 3, rule91),+	_charblock_(944, 1, rule14),+	_charblock_(945, 17, rule12),+	_charblock_(962, 1, rule92),+	_charblock_(963, 9, rule12),+	_charblock_(972, 1, rule93),+	_charblock_(973, 2, rule94),+	_charblock_(975, 1, rule95),+	_charblock_(976, 1, rule96),+	_charblock_(977, 1, rule97),+	_charblock_(978, 3, rule98),+	_charblock_(981, 1, rule99),+	_charblock_(982, 1, rule100),+	_charblock_(983, 1, rule101),+	_charblock_(984, 1, rule21),+	_charblock_(985, 1, rule22),+	_charblock_(986, 1, rule21),+	_charblock_(987, 1, rule22),+	_charblock_(988, 1, rule21),+	_charblock_(989, 1, rule22),+	_charblock_(990, 1, rule21),+	_charblock_(991, 1, rule22),+	_charblock_(992, 1, rule21),+	_charblock_(993, 1, rule22),+	_charblock_(994, 1, rule21),+	_charblock_(995, 1, rule22),+	_charblock_(996, 1, rule21),+	_charblock_(997, 1, rule22),+	_charblock_(998, 1, rule21),+	_charblock_(999, 1, rule22),+	_charblock_(1000, 1, rule21),+	_charblock_(1001, 1, rule22),+	_charblock_(1002, 1, rule21),+	_charblock_(1003, 1, rule22),+	_charblock_(1004, 1, rule21),+	_charblock_(1005, 1, rule22),+	_charblock_(1006, 1, rule21),+	_charblock_(1007, 1, rule22),+	_charblock_(1008, 1, rule102),+	_charblock_(1009, 1, rule103),+	_charblock_(1010, 1, rule104),+	_charblock_(1011, 1, rule14),+	_charblock_(1012, 1, rule105),+	_charblock_(1013, 1, rule106),+	_charblock_(1014, 1, rule6),+	_charblock_(1015, 1, rule21),+	_charblock_(1016, 1, rule22),+	_charblock_(1017, 1, rule107),+	_charblock_(1018, 1, rule21),+	_charblock_(1019, 1, rule22),+	_charblock_(1020, 1, rule14),+	_charblock_(1021, 3, rule53),+	_charblock_(1024, 16, rule108),+	_charblock_(1040, 32, rule9),+	_charblock_(1072, 32, rule12),+	_charblock_(1104, 16, rule103),+	_charblock_(1120, 1, rule21),+	_charblock_(1121, 1, rule22),+	_charblock_(1122, 1, rule21),+	_charblock_(1123, 1, rule22),+	_charblock_(1124, 1, rule21),+	_charblock_(1125, 1, rule22),+	_charblock_(1126, 1, rule21),+	_charblock_(1127, 1, rule22),+	_charblock_(1128, 1, rule21),+	_charblock_(1129, 1, rule22),+	_charblock_(1130, 1, rule21),+	_charblock_(1131, 1, rule22),+	_charblock_(1132, 1, rule21),+	_charblock_(1133, 1, rule22),+	_charblock_(1134, 1, rule21),+	_charblock_(1135, 1, rule22),+	_charblock_(1136, 1, rule21),+	_charblock_(1137, 1, rule22),+	_charblock_(1138, 1, rule21),+	_charblock_(1139, 1, rule22),+	_charblock_(1140, 1, rule21),+	_charblock_(1141, 1, rule22),+	_charblock_(1142, 1, rule21),+	_charblock_(1143, 1, rule22),+	_charblock_(1144, 1, rule21),+	_charblock_(1145, 1, rule22),+	_charblock_(1146, 1, rule21),+	_charblock_(1147, 1, rule22),+	_charblock_(1148, 1, rule21),+	_charblock_(1149, 1, rule22),+	_charblock_(1150, 1, rule21),+	_charblock_(1151, 1, rule22),+	_charblock_(1152, 1, rule21),+	_charblock_(1153, 1, rule22),+	_charblock_(1154, 1, rule13),+	_charblock_(1155, 5, rule84),+	_charblock_(1160, 2, rule109),+	_charblock_(1162, 1, rule21),+	_charblock_(1163, 1, rule22),+	_charblock_(1164, 1, rule21),+	_charblock_(1165, 1, rule22),+	_charblock_(1166, 1, rule21),+	_charblock_(1167, 1, rule22),+	_charblock_(1168, 1, rule21),+	_charblock_(1169, 1, rule22),+	_charblock_(1170, 1, rule21),+	_charblock_(1171, 1, rule22),+	_charblock_(1172, 1, rule21),+	_charblock_(1173, 1, rule22),+	_charblock_(1174, 1, rule21),+	_charblock_(1175, 1, rule22),+	_charblock_(1176, 1, rule21),+	_charblock_(1177, 1, rule22),+	_charblock_(1178, 1, rule21),+	_charblock_(1179, 1, rule22),+	_charblock_(1180, 1, rule21),+	_charblock_(1181, 1, rule22),+	_charblock_(1182, 1, rule21),+	_charblock_(1183, 1, rule22),+	_charblock_(1184, 1, rule21),+	_charblock_(1185, 1, rule22),+	_charblock_(1186, 1, rule21),+	_charblock_(1187, 1, rule22),+	_charblock_(1188, 1, rule21),+	_charblock_(1189, 1, rule22),+	_charblock_(1190, 1, rule21),+	_charblock_(1191, 1, rule22),+	_charblock_(1192, 1, rule21),+	_charblock_(1193, 1, rule22),+	_charblock_(1194, 1, rule21),+	_charblock_(1195, 1, rule22),+	_charblock_(1196, 1, rule21),+	_charblock_(1197, 1, rule22),+	_charblock_(1198, 1, rule21),+	_charblock_(1199, 1, rule22),+	_charblock_(1200, 1, rule21),+	_charblock_(1201, 1, rule22),+	_charblock_(1202, 1, rule21),+	_charblock_(1203, 1, rule22),+	_charblock_(1204, 1, rule21),+	_charblock_(1205, 1, rule22),+	_charblock_(1206, 1, rule21),+	_charblock_(1207, 1, rule22),+	_charblock_(1208, 1, rule21),+	_charblock_(1209, 1, rule22),+	_charblock_(1210, 1, rule21),+	_charblock_(1211, 1, rule22),+	_charblock_(1212, 1, rule21),+	_charblock_(1213, 1, rule22),+	_charblock_(1214, 1, rule21),+	_charblock_(1215, 1, rule22),+	_charblock_(1216, 1, rule110),+	_charblock_(1217, 1, rule21),+	_charblock_(1218, 1, rule22),+	_charblock_(1219, 1, rule21),+	_charblock_(1220, 1, rule22),+	_charblock_(1221, 1, rule21),+	_charblock_(1222, 1, rule22),+	_charblock_(1223, 1, rule21),+	_charblock_(1224, 1, rule22),+	_charblock_(1225, 1, rule21),+	_charblock_(1226, 1, rule22),+	_charblock_(1227, 1, rule21),+	_charblock_(1228, 1, rule22),+	_charblock_(1229, 1, rule21),+	_charblock_(1230, 1, rule22),+	_charblock_(1231, 1, rule111),+	_charblock_(1232, 1, rule21),+	_charblock_(1233, 1, rule22),+	_charblock_(1234, 1, rule21),+	_charblock_(1235, 1, rule22),+	_charblock_(1236, 1, rule21),+	_charblock_(1237, 1, rule22),+	_charblock_(1238, 1, rule21),+	_charblock_(1239, 1, rule22),+	_charblock_(1240, 1, rule21),+	_charblock_(1241, 1, rule22),+	_charblock_(1242, 1, rule21),+	_charblock_(1243, 1, rule22),+	_charblock_(1244, 1, rule21),+	_charblock_(1245, 1, rule22),+	_charblock_(1246, 1, rule21),+	_charblock_(1247, 1, rule22),+	_charblock_(1248, 1, rule21),+	_charblock_(1249, 1, rule22),+	_charblock_(1250, 1, rule21),+	_charblock_(1251, 1, rule22),+	_charblock_(1252, 1, rule21),+	_charblock_(1253, 1, rule22),+	_charblock_(1254, 1, rule21),+	_charblock_(1255, 1, rule22),+	_charblock_(1256, 1, rule21),+	_charblock_(1257, 1, rule22),+	_charblock_(1258, 1, rule21),+	_charblock_(1259, 1, rule22),+	_charblock_(1260, 1, rule21),+	_charblock_(1261, 1, rule22),+	_charblock_(1262, 1, rule21),+	_charblock_(1263, 1, rule22),+	_charblock_(1264, 1, rule21),+	_charblock_(1265, 1, rule22),+	_charblock_(1266, 1, rule21),+	_charblock_(1267, 1, rule22),+	_charblock_(1268, 1, rule21),+	_charblock_(1269, 1, rule22),+	_charblock_(1270, 1, rule21),+	_charblock_(1271, 1, rule22),+	_charblock_(1272, 1, rule21),+	_charblock_(1273, 1, rule22),+	_charblock_(1274, 1, rule21),+	_charblock_(1275, 1, rule22),+	_charblock_(1276, 1, rule21),+	_charblock_(1277, 1, rule22),+	_charblock_(1278, 1, rule21),+	_charblock_(1279, 1, rule22),+	_charblock_(1280, 1, rule21),+	_charblock_(1281, 1, rule22),+	_charblock_(1282, 1, rule21),+	_charblock_(1283, 1, rule22),+	_charblock_(1284, 1, rule21),+	_charblock_(1285, 1, rule22),+	_charblock_(1286, 1, rule21),+	_charblock_(1287, 1, rule22),+	_charblock_(1288, 1, rule21),+	_charblock_(1289, 1, rule22),+	_charblock_(1290, 1, rule21),+	_charblock_(1291, 1, rule22),+	_charblock_(1292, 1, rule21),+	_charblock_(1293, 1, rule22),+	_charblock_(1294, 1, rule21),+	_charblock_(1295, 1, rule22),+	_charblock_(1296, 1, rule21),+	_charblock_(1297, 1, rule22),+	_charblock_(1298, 1, rule21),+	_charblock_(1299, 1, rule22),+	_charblock_(1300, 1, rule21),+	_charblock_(1301, 1, rule22),+	_charblock_(1302, 1, rule21),+	_charblock_(1303, 1, rule22),+	_charblock_(1304, 1, rule21),+	_charblock_(1305, 1, rule22),+	_charblock_(1306, 1, rule21),+	_charblock_(1307, 1, rule22),+	_charblock_(1308, 1, rule21),+	_charblock_(1309, 1, rule22),+	_charblock_(1310, 1, rule21),+	_charblock_(1311, 1, rule22),+	_charblock_(1312, 1, rule21),+	_charblock_(1313, 1, rule22),+	_charblock_(1314, 1, rule21),+	_charblock_(1315, 1, rule22),+	_charblock_(1316, 1, rule21),+	_charblock_(1317, 1, rule22),+	_charblock_(1318, 1, rule21),+	_charblock_(1319, 1, rule22),+	_charblock_(1329, 38, rule112),+	_charblock_(1369, 1, rule83),+	_charblock_(1370, 6, rule2),+	_charblock_(1377, 38, rule113),+	_charblock_(1415, 1, rule14),+	_charblock_(1417, 1, rule2),+	_charblock_(1418, 1, rule7),+	_charblock_(1425, 45, rule84),+	_charblock_(1470, 1, rule7),+	_charblock_(1471, 1, rule84),+	_charblock_(1472, 1, rule2),+	_charblock_(1473, 2, rule84),+	_charblock_(1475, 1, rule2),+	_charblock_(1476, 2, rule84),+	_charblock_(1478, 1, rule2),+	_charblock_(1479, 1, rule84),+	_charblock_(1488, 27, rule45),+	_charblock_(1520, 3, rule45),+	_charblock_(1523, 2, rule2),+	_charblock_(1536, 4, rule16),+	_charblock_(1542, 3, rule6),+	_charblock_(1545, 2, rule2),+	_charblock_(1547, 1, rule3),+	_charblock_(1548, 2, rule2),+	_charblock_(1550, 2, rule13),+	_charblock_(1552, 11, rule84),+	_charblock_(1563, 1, rule2),+	_charblock_(1566, 2, rule2),+	_charblock_(1568, 32, rule45),+	_charblock_(1600, 1, rule83),+	_charblock_(1601, 10, rule45),+	_charblock_(1611, 21, rule84),+	_charblock_(1632, 10, rule8),+	_charblock_(1642, 4, rule2),+	_charblock_(1646, 2, rule45),+	_charblock_(1648, 1, rule84),+	_charblock_(1649, 99, rule45),+	_charblock_(1748, 1, rule2),+	_charblock_(1749, 1, rule45),+	_charblock_(1750, 7, rule84),+	_charblock_(1757, 1, rule16),+	_charblock_(1758, 1, rule13),+	_charblock_(1759, 6, rule84),+	_charblock_(1765, 2, rule83),+	_charblock_(1767, 2, rule84),+	_charblock_(1769, 1, rule13),+	_charblock_(1770, 4, rule84),+	_charblock_(1774, 2, rule45),+	_charblock_(1776, 10, rule8),+	_charblock_(1786, 3, rule45),+	_charblock_(1789, 2, rule13),+	_charblock_(1791, 1, rule45),+	_charblock_(1792, 14, rule2),+	_charblock_(1807, 1, rule16),+	_charblock_(1808, 1, rule45),+	_charblock_(1809, 1, rule84),+	_charblock_(1810, 30, rule45),+	_charblock_(1840, 27, rule84),+	_charblock_(1869, 89, rule45),+	_charblock_(1958, 11, rule84),+	_charblock_(1969, 1, rule45),+	_charblock_(1984, 10, rule8),+	_charblock_(1994, 33, rule45),+	_charblock_(2027, 9, rule84),+	_charblock_(2036, 2, rule83),+	_charblock_(2038, 1, rule13),+	_charblock_(2039, 3, rule2),+	_charblock_(2042, 1, rule83),+	_charblock_(2048, 22, rule45),+	_charblock_(2070, 4, rule84),+	_charblock_(2074, 1, rule83),+	_charblock_(2075, 9, rule84),+	_charblock_(2084, 1, rule83),+	_charblock_(2085, 3, rule84),+	_charblock_(2088, 1, rule83),+	_charblock_(2089, 5, rule84),+	_charblock_(2096, 15, rule2),+	_charblock_(2112, 25, rule45),+	_charblock_(2137, 3, rule84),+	_charblock_(2142, 1, rule2),+	_charblock_(2304, 3, rule84),+	_charblock_(2307, 1, rule114),+	_charblock_(2308, 54, rule45),+	_charblock_(2362, 1, rule84),+	_charblock_(2363, 1, rule114),+	_charblock_(2364, 1, rule84),+	_charblock_(2365, 1, rule45),+	_charblock_(2366, 3, rule114),+	_charblock_(2369, 8, rule84),+	_charblock_(2377, 4, rule114),+	_charblock_(2381, 1, rule84),+	_charblock_(2382, 2, rule114),+	_charblock_(2384, 1, rule45),+	_charblock_(2385, 7, rule84),+	_charblock_(2392, 10, rule45),+	_charblock_(2402, 2, rule84),+	_charblock_(2404, 2, rule2),+	_charblock_(2406, 10, rule8),+	_charblock_(2416, 1, rule2),+	_charblock_(2417, 1, rule83),+	_charblock_(2418, 6, rule45),+	_charblock_(2425, 7, rule45),+	_charblock_(2433, 1, rule84),+	_charblock_(2434, 2, rule114),+	_charblock_(2437, 8, rule45),+	_charblock_(2447, 2, rule45),+	_charblock_(2451, 22, rule45),+	_charblock_(2474, 7, rule45),+	_charblock_(2482, 1, rule45),+	_charblock_(2486, 4, rule45),+	_charblock_(2492, 1, rule84),+	_charblock_(2493, 1, rule45),+	_charblock_(2494, 3, rule114),+	_charblock_(2497, 4, rule84),+	_charblock_(2503, 2, rule114),+	_charblock_(2507, 2, rule114),+	_charblock_(2509, 1, rule84),+	_charblock_(2510, 1, rule45),+	_charblock_(2519, 1, rule114),+	_charblock_(2524, 2, rule45),+	_charblock_(2527, 3, rule45),+	_charblock_(2530, 2, rule84),+	_charblock_(2534, 10, rule8),+	_charblock_(2544, 2, rule45),+	_charblock_(2546, 2, rule3),+	_charblock_(2548, 6, rule17),+	_charblock_(2554, 1, rule13),+	_charblock_(2555, 1, rule3),+	_charblock_(2561, 2, rule84),+	_charblock_(2563, 1, rule114),+	_charblock_(2565, 6, rule45),+	_charblock_(2575, 2, rule45),+	_charblock_(2579, 22, rule45),+	_charblock_(2602, 7, rule45),+	_charblock_(2610, 2, rule45),+	_charblock_(2613, 2, rule45),+	_charblock_(2616, 2, rule45),+	_charblock_(2620, 1, rule84),+	_charblock_(2622, 3, rule114),+	_charblock_(2625, 2, rule84),+	_charblock_(2631, 2, rule84),+	_charblock_(2635, 3, rule84),+	_charblock_(2641, 1, rule84),+	_charblock_(2649, 4, rule45),+	_charblock_(2654, 1, rule45),+	_charblock_(2662, 10, rule8),+	_charblock_(2672, 2, rule84),+	_charblock_(2674, 3, rule45),+	_charblock_(2677, 1, rule84),+	_charblock_(2689, 2, rule84),+	_charblock_(2691, 1, rule114),+	_charblock_(2693, 9, rule45),+	_charblock_(2703, 3, rule45),+	_charblock_(2707, 22, rule45),+	_charblock_(2730, 7, rule45),+	_charblock_(2738, 2, rule45),+	_charblock_(2741, 5, rule45),+	_charblock_(2748, 1, rule84),+	_charblock_(2749, 1, rule45),+	_charblock_(2750, 3, rule114),+	_charblock_(2753, 5, rule84),+	_charblock_(2759, 2, rule84),+	_charblock_(2761, 1, rule114),+	_charblock_(2763, 2, rule114),+	_charblock_(2765, 1, rule84),+	_charblock_(2768, 1, rule45),+	_charblock_(2784, 2, rule45),+	_charblock_(2786, 2, rule84),+	_charblock_(2790, 10, rule8),+	_charblock_(2801, 1, rule3),+	_charblock_(2817, 1, rule84),+	_charblock_(2818, 2, rule114),+	_charblock_(2821, 8, rule45),+	_charblock_(2831, 2, rule45),+	_charblock_(2835, 22, rule45),+	_charblock_(2858, 7, rule45),+	_charblock_(2866, 2, rule45),+	_charblock_(2869, 5, rule45),+	_charblock_(2876, 1, rule84),+	_charblock_(2877, 1, rule45),+	_charblock_(2878, 1, rule114),+	_charblock_(2879, 1, rule84),+	_charblock_(2880, 1, rule114),+	_charblock_(2881, 4, rule84),+	_charblock_(2887, 2, rule114),+	_charblock_(2891, 2, rule114),+	_charblock_(2893, 1, rule84),+	_charblock_(2902, 1, rule84),+	_charblock_(2903, 1, rule114),+	_charblock_(2908, 2, rule45),+	_charblock_(2911, 3, rule45),+	_charblock_(2914, 2, rule84),+	_charblock_(2918, 10, rule8),+	_charblock_(2928, 1, rule13),+	_charblock_(2929, 1, rule45),+	_charblock_(2930, 6, rule17),+	_charblock_(2946, 1, rule84),+	_charblock_(2947, 1, rule45),+	_charblock_(2949, 6, rule45),+	_charblock_(2958, 3, rule45),+	_charblock_(2962, 4, rule45),+	_charblock_(2969, 2, rule45),+	_charblock_(2972, 1, rule45),+	_charblock_(2974, 2, rule45),+	_charblock_(2979, 2, rule45),+	_charblock_(2984, 3, rule45),+	_charblock_(2990, 12, rule45),+	_charblock_(3006, 2, rule114),+	_charblock_(3008, 1, rule84),+	_charblock_(3009, 2, rule114),+	_charblock_(3014, 3, rule114),+	_charblock_(3018, 3, rule114),+	_charblock_(3021, 1, rule84),+	_charblock_(3024, 1, rule45),+	_charblock_(3031, 1, rule114),+	_charblock_(3046, 10, rule8),+	_charblock_(3056, 3, rule17),+	_charblock_(3059, 6, rule13),+	_charblock_(3065, 1, rule3),+	_charblock_(3066, 1, rule13),+	_charblock_(3073, 3, rule114),+	_charblock_(3077, 8, rule45),+	_charblock_(3086, 3, rule45),+	_charblock_(3090, 23, rule45),+	_charblock_(3114, 10, rule45),+	_charblock_(3125, 5, rule45),+	_charblock_(3133, 1, rule45),+	_charblock_(3134, 3, rule84),+	_charblock_(3137, 4, rule114),+	_charblock_(3142, 3, rule84),+	_charblock_(3146, 4, rule84),+	_charblock_(3157, 2, rule84),+	_charblock_(3160, 2, rule45),+	_charblock_(3168, 2, rule45),+	_charblock_(3170, 2, rule84),+	_charblock_(3174, 10, rule8),+	_charblock_(3192, 7, rule17),+	_charblock_(3199, 1, rule13),+	_charblock_(3202, 2, rule114),+	_charblock_(3205, 8, rule45),+	_charblock_(3214, 3, rule45),+	_charblock_(3218, 23, rule45),+	_charblock_(3242, 10, rule45),+	_charblock_(3253, 5, rule45),+	_charblock_(3260, 1, rule84),+	_charblock_(3261, 1, rule45),+	_charblock_(3262, 1, rule114),+	_charblock_(3263, 1, rule84),+	_charblock_(3264, 5, rule114),+	_charblock_(3270, 1, rule84),+	_charblock_(3271, 2, rule114),+	_charblock_(3274, 2, rule114),+	_charblock_(3276, 2, rule84),+	_charblock_(3285, 2, rule114),+	_charblock_(3294, 1, rule45),+	_charblock_(3296, 2, rule45),+	_charblock_(3298, 2, rule84),+	_charblock_(3302, 10, rule8),+	_charblock_(3313, 2, rule45),+	_charblock_(3330, 2, rule114),+	_charblock_(3333, 8, rule45),+	_charblock_(3342, 3, rule45),+	_charblock_(3346, 41, rule45),+	_charblock_(3389, 1, rule45),+	_charblock_(3390, 3, rule114),+	_charblock_(3393, 4, rule84),+	_charblock_(3398, 3, rule114),+	_charblock_(3402, 3, rule114),+	_charblock_(3405, 1, rule84),+	_charblock_(3406, 1, rule45),+	_charblock_(3415, 1, rule114),+	_charblock_(3424, 2, rule45),+	_charblock_(3426, 2, rule84),+	_charblock_(3430, 10, rule8),+	_charblock_(3440, 6, rule17),+	_charblock_(3449, 1, rule13),+	_charblock_(3450, 6, rule45),+	_charblock_(3458, 2, rule114),+	_charblock_(3461, 18, rule45),+	_charblock_(3482, 24, rule45),+	_charblock_(3507, 9, rule45),+	_charblock_(3517, 1, rule45),+	_charblock_(3520, 7, rule45),+	_charblock_(3530, 1, rule84),+	_charblock_(3535, 3, rule114),+	_charblock_(3538, 3, rule84),+	_charblock_(3542, 1, rule84),+	_charblock_(3544, 8, rule114),+	_charblock_(3570, 2, rule114),+	_charblock_(3572, 1, rule2),+	_charblock_(3585, 48, rule45),+	_charblock_(3633, 1, rule84),+	_charblock_(3634, 2, rule45),+	_charblock_(3636, 7, rule84),+	_charblock_(3647, 1, rule3),+	_charblock_(3648, 6, rule45),+	_charblock_(3654, 1, rule83),+	_charblock_(3655, 8, rule84),+	_charblock_(3663, 1, rule2),+	_charblock_(3664, 10, rule8),+	_charblock_(3674, 2, rule2),+	_charblock_(3713, 2, rule45),+	_charblock_(3716, 1, rule45),+	_charblock_(3719, 2, rule45),+	_charblock_(3722, 1, rule45),+	_charblock_(3725, 1, rule45),+	_charblock_(3732, 4, rule45),+	_charblock_(3737, 7, rule45),+	_charblock_(3745, 3, rule45),+	_charblock_(3749, 1, rule45),+	_charblock_(3751, 1, rule45),+	_charblock_(3754, 2, rule45),+	_charblock_(3757, 4, rule45),+	_charblock_(3761, 1, rule84),+	_charblock_(3762, 2, rule45),+	_charblock_(3764, 6, rule84),+	_charblock_(3771, 2, rule84),+	_charblock_(3773, 1, rule45),+	_charblock_(3776, 5, rule45),+	_charblock_(3782, 1, rule83),+	_charblock_(3784, 6, rule84),+	_charblock_(3792, 10, rule8),+	_charblock_(3804, 2, rule45),+	_charblock_(3840, 1, rule45),+	_charblock_(3841, 3, rule13),+	_charblock_(3844, 15, rule2),+	_charblock_(3859, 5, rule13),+	_charblock_(3864, 2, rule84),+	_charblock_(3866, 6, rule13),+	_charblock_(3872, 10, rule8),+	_charblock_(3882, 10, rule17),+	_charblock_(3892, 1, rule13),+	_charblock_(3893, 1, rule84),+	_charblock_(3894, 1, rule13),+	_charblock_(3895, 1, rule84),+	_charblock_(3896, 1, rule13),+	_charblock_(3897, 1, rule84),+	_charblock_(3898, 1, rule4),+	_charblock_(3899, 1, rule5),+	_charblock_(3900, 1, rule4),+	_charblock_(3901, 1, rule5),+	_charblock_(3902, 2, rule114),+	_charblock_(3904, 8, rule45),+	_charblock_(3913, 36, rule45),+	_charblock_(3953, 14, rule84),+	_charblock_(3967, 1, rule114),+	_charblock_(3968, 5, rule84),+	_charblock_(3973, 1, rule2),+	_charblock_(3974, 2, rule84),+	_charblock_(3976, 5, rule45),+	_charblock_(3981, 11, rule84),+	_charblock_(3993, 36, rule84),+	_charblock_(4030, 8, rule13),+	_charblock_(4038, 1, rule84),+	_charblock_(4039, 6, rule13),+	_charblock_(4046, 2, rule13),+	_charblock_(4048, 5, rule2),+	_charblock_(4053, 4, rule13),+	_charblock_(4057, 2, rule2),+	_charblock_(4096, 43, rule45),+	_charblock_(4139, 2, rule114),+	_charblock_(4141, 4, rule84),+	_charblock_(4145, 1, rule114),+	_charblock_(4146, 6, rule84),+	_charblock_(4152, 1, rule114),+	_charblock_(4153, 2, rule84),+	_charblock_(4155, 2, rule114),+	_charblock_(4157, 2, rule84),+	_charblock_(4159, 1, rule45),+	_charblock_(4160, 10, rule8),+	_charblock_(4170, 6, rule2),+	_charblock_(4176, 6, rule45),+	_charblock_(4182, 2, rule114),+	_charblock_(4184, 2, rule84),+	_charblock_(4186, 4, rule45),+	_charblock_(4190, 3, rule84),+	_charblock_(4193, 1, rule45),+	_charblock_(4194, 3, rule114),+	_charblock_(4197, 2, rule45),+	_charblock_(4199, 7, rule114),+	_charblock_(4206, 3, rule45),+	_charblock_(4209, 4, rule84),+	_charblock_(4213, 13, rule45),+	_charblock_(4226, 1, rule84),+	_charblock_(4227, 2, rule114),+	_charblock_(4229, 2, rule84),+	_charblock_(4231, 6, rule114),+	_charblock_(4237, 1, rule84),+	_charblock_(4238, 1, rule45),+	_charblock_(4239, 1, rule114),+	_charblock_(4240, 10, rule8),+	_charblock_(4250, 3, rule114),+	_charblock_(4253, 1, rule84),+	_charblock_(4254, 2, rule13),+	_charblock_(4256, 38, rule115),+	_charblock_(4304, 43, rule45),+	_charblock_(4347, 1, rule2),+	_charblock_(4348, 1, rule83),+	_charblock_(4352, 329, rule45),+	_charblock_(4682, 4, rule45),+	_charblock_(4688, 7, rule45),+	_charblock_(4696, 1, rule45),+	_charblock_(4698, 4, rule45),+	_charblock_(4704, 41, rule45),+	_charblock_(4746, 4, rule45),+	_charblock_(4752, 33, rule45),+	_charblock_(4786, 4, rule45),+	_charblock_(4792, 7, rule45),+	_charblock_(4800, 1, rule45),+	_charblock_(4802, 4, rule45),+	_charblock_(4808, 15, rule45),+	_charblock_(4824, 57, rule45),+	_charblock_(4882, 4, rule45),+	_charblock_(4888, 67, rule45),+	_charblock_(4957, 3, rule84),+	_charblock_(4960, 1, rule13),+	_charblock_(4961, 8, rule2),+	_charblock_(4969, 20, rule17),+	_charblock_(4992, 16, rule45),+	_charblock_(5008, 10, rule13),+	_charblock_(5024, 85, rule45),+	_charblock_(5120, 1, rule7),+	_charblock_(5121, 620, rule45),+	_charblock_(5741, 2, rule2),+	_charblock_(5743, 17, rule45),+	_charblock_(5760, 1, rule1),+	_charblock_(5761, 26, rule45),+	_charblock_(5787, 1, rule4),+	_charblock_(5788, 1, rule5),+	_charblock_(5792, 75, rule45),+	_charblock_(5867, 3, rule2),+	_charblock_(5870, 3, rule116),+	_charblock_(5888, 13, rule45),+	_charblock_(5902, 4, rule45),+	_charblock_(5906, 3, rule84),+	_charblock_(5920, 18, rule45),+	_charblock_(5938, 3, rule84),+	_charblock_(5941, 2, rule2),+	_charblock_(5952, 18, rule45),+	_charblock_(5970, 2, rule84),+	_charblock_(5984, 13, rule45),+	_charblock_(5998, 3, rule45),+	_charblock_(6002, 2, rule84),+	_charblock_(6016, 52, rule45),+	_charblock_(6068, 2, rule16),+	_charblock_(6070, 1, rule114),+	_charblock_(6071, 7, rule84),+	_charblock_(6078, 8, rule114),+	_charblock_(6086, 1, rule84),+	_charblock_(6087, 2, rule114),+	_charblock_(6089, 11, rule84),+	_charblock_(6100, 3, rule2),+	_charblock_(6103, 1, rule83),+	_charblock_(6104, 3, rule2),+	_charblock_(6107, 1, rule3),+	_charblock_(6108, 1, rule45),+	_charblock_(6109, 1, rule84),+	_charblock_(6112, 10, rule8),+	_charblock_(6128, 10, rule17),+	_charblock_(6144, 6, rule2),+	_charblock_(6150, 1, rule7),+	_charblock_(6151, 4, rule2),+	_charblock_(6155, 3, rule84),+	_charblock_(6158, 1, rule1),+	_charblock_(6160, 10, rule8),+	_charblock_(6176, 35, rule45),+	_charblock_(6211, 1, rule83),+	_charblock_(6212, 52, rule45),+	_charblock_(6272, 41, rule45),+	_charblock_(6313, 1, rule84),+	_charblock_(6314, 1, rule45),+	_charblock_(6320, 70, rule45),+	_charblock_(6400, 29, rule45),+	_charblock_(6432, 3, rule84),+	_charblock_(6435, 4, rule114),+	_charblock_(6439, 2, rule84),+	_charblock_(6441, 3, rule114),+	_charblock_(6448, 2, rule114),+	_charblock_(6450, 1, rule84),+	_charblock_(6451, 6, rule114),+	_charblock_(6457, 3, rule84),+	_charblock_(6464, 1, rule13),+	_charblock_(6468, 2, rule2),+	_charblock_(6470, 10, rule8),+	_charblock_(6480, 30, rule45),+	_charblock_(6512, 5, rule45),+	_charblock_(6528, 44, rule45),+	_charblock_(6576, 17, rule114),+	_charblock_(6593, 7, rule45),+	_charblock_(6600, 2, rule114),+	_charblock_(6608, 10, rule8),+	_charblock_(6618, 1, rule17),+	_charblock_(6622, 34, rule13),+	_charblock_(6656, 23, rule45),+	_charblock_(6679, 2, rule84),+	_charblock_(6681, 3, rule114),+	_charblock_(6686, 2, rule2),+	_charblock_(6688, 53, rule45),+	_charblock_(6741, 1, rule114),+	_charblock_(6742, 1, rule84),+	_charblock_(6743, 1, rule114),+	_charblock_(6744, 7, rule84),+	_charblock_(6752, 1, rule84),+	_charblock_(6753, 1, rule114),+	_charblock_(6754, 1, rule84),+	_charblock_(6755, 2, rule114),+	_charblock_(6757, 8, rule84),+	_charblock_(6765, 6, rule114),+	_charblock_(6771, 10, rule84),+	_charblock_(6783, 1, rule84),+	_charblock_(6784, 10, rule8),+	_charblock_(6800, 10, rule8),+	_charblock_(6816, 7, rule2),+	_charblock_(6823, 1, rule83),+	_charblock_(6824, 6, rule2),+	_charblock_(6912, 4, rule84),+	_charblock_(6916, 1, rule114),+	_charblock_(6917, 47, rule45),+	_charblock_(6964, 1, rule84),+	_charblock_(6965, 1, rule114),+	_charblock_(6966, 5, rule84),+	_charblock_(6971, 1, rule114),+	_charblock_(6972, 1, rule84),+	_charblock_(6973, 5, rule114),+	_charblock_(6978, 1, rule84),+	_charblock_(6979, 2, rule114),+	_charblock_(6981, 7, rule45),+	_charblock_(6992, 10, rule8),+	_charblock_(7002, 7, rule2),+	_charblock_(7009, 10, rule13),+	_charblock_(7019, 9, rule84),+	_charblock_(7028, 9, rule13),+	_charblock_(7040, 2, rule84),+	_charblock_(7042, 1, rule114),+	_charblock_(7043, 30, rule45),+	_charblock_(7073, 1, rule114),+	_charblock_(7074, 4, rule84),+	_charblock_(7078, 2, rule114),+	_charblock_(7080, 2, rule84),+	_charblock_(7082, 1, rule114),+	_charblock_(7086, 2, rule45),+	_charblock_(7088, 10, rule8),+	_charblock_(7104, 38, rule45),+	_charblock_(7142, 1, rule84),+	_charblock_(7143, 1, rule114),+	_charblock_(7144, 2, rule84),+	_charblock_(7146, 3, rule114),+	_charblock_(7149, 1, rule84),+	_charblock_(7150, 1, rule114),+	_charblock_(7151, 3, rule84),+	_charblock_(7154, 2, rule114),+	_charblock_(7164, 4, rule2),+	_charblock_(7168, 36, rule45),+	_charblock_(7204, 8, rule114),+	_charblock_(7212, 8, rule84),+	_charblock_(7220, 2, rule114),+	_charblock_(7222, 2, rule84),+	_charblock_(7227, 5, rule2),+	_charblock_(7232, 10, rule8),+	_charblock_(7245, 3, rule45),+	_charblock_(7248, 10, rule8),+	_charblock_(7258, 30, rule45),+	_charblock_(7288, 6, rule83),+	_charblock_(7294, 2, rule2),+	_charblock_(7376, 3, rule84),+	_charblock_(7379, 1, rule2),+	_charblock_(7380, 13, rule84),+	_charblock_(7393, 1, rule114),+	_charblock_(7394, 7, rule84),+	_charblock_(7401, 4, rule45),+	_charblock_(7405, 1, rule84),+	_charblock_(7406, 4, rule45),+	_charblock_(7410, 1, rule114),+	_charblock_(7424, 44, rule14),+	_charblock_(7468, 54, rule83),+	_charblock_(7522, 22, rule14),+	_charblock_(7544, 1, rule83),+	_charblock_(7545, 1, rule117),+	_charblock_(7546, 3, rule14),+	_charblock_(7549, 1, rule118),+	_charblock_(7550, 29, rule14),+	_charblock_(7579, 37, rule83),+	_charblock_(7616, 39, rule84),+	_charblock_(7676, 4, rule84),+	_charblock_(7680, 1, rule21),+	_charblock_(7681, 1, rule22),+	_charblock_(7682, 1, rule21),+	_charblock_(7683, 1, rule22),+	_charblock_(7684, 1, rule21),+	_charblock_(7685, 1, rule22),+	_charblock_(7686, 1, rule21),+	_charblock_(7687, 1, rule22),+	_charblock_(7688, 1, rule21),+	_charblock_(7689, 1, rule22),+	_charblock_(7690, 1, rule21),+	_charblock_(7691, 1, rule22),+	_charblock_(7692, 1, rule21),+	_charblock_(7693, 1, rule22),+	_charblock_(7694, 1, rule21),+	_charblock_(7695, 1, rule22),+	_charblock_(7696, 1, rule21),+	_charblock_(7697, 1, rule22),+	_charblock_(7698, 1, rule21),+	_charblock_(7699, 1, rule22),+	_charblock_(7700, 1, rule21),+	_charblock_(7701, 1, rule22),+	_charblock_(7702, 1, rule21),+	_charblock_(7703, 1, rule22),+	_charblock_(7704, 1, rule21),+	_charblock_(7705, 1, rule22),+	_charblock_(7706, 1, rule21),+	_charblock_(7707, 1, rule22),+	_charblock_(7708, 1, rule21),+	_charblock_(7709, 1, rule22),+	_charblock_(7710, 1, rule21),+	_charblock_(7711, 1, rule22),+	_charblock_(7712, 1, rule21),+	_charblock_(7713, 1, rule22),+	_charblock_(7714, 1, rule21),+	_charblock_(7715, 1, rule22),+	_charblock_(7716, 1, rule21),+	_charblock_(7717, 1, rule22),+	_charblock_(7718, 1, rule21),+	_charblock_(7719, 1, rule22),+	_charblock_(7720, 1, rule21),+	_charblock_(7721, 1, rule22),+	_charblock_(7722, 1, rule21),+	_charblock_(7723, 1, rule22),+	_charblock_(7724, 1, rule21),+	_charblock_(7725, 1, rule22),+	_charblock_(7726, 1, rule21),+	_charblock_(7727, 1, rule22),+	_charblock_(7728, 1, rule21),+	_charblock_(7729, 1, rule22),+	_charblock_(7730, 1, rule21),+	_charblock_(7731, 1, rule22),+	_charblock_(7732, 1, rule21),+	_charblock_(7733, 1, rule22),+	_charblock_(7734, 1, rule21),+	_charblock_(7735, 1, rule22),+	_charblock_(7736, 1, rule21),+	_charblock_(7737, 1, rule22),+	_charblock_(7738, 1, rule21),+	_charblock_(7739, 1, rule22),+	_charblock_(7740, 1, rule21),+	_charblock_(7741, 1, rule22),+	_charblock_(7742, 1, rule21),+	_charblock_(7743, 1, rule22),+	_charblock_(7744, 1, rule21),+	_charblock_(7745, 1, rule22),+	_charblock_(7746, 1, rule21),+	_charblock_(7747, 1, rule22),+	_charblock_(7748, 1, rule21),+	_charblock_(7749, 1, rule22),+	_charblock_(7750, 1, rule21),+	_charblock_(7751, 1, rule22),+	_charblock_(7752, 1, rule21),+	_charblock_(7753, 1, rule22),+	_charblock_(7754, 1, rule21),+	_charblock_(7755, 1, rule22),+	_charblock_(7756, 1, rule21),+	_charblock_(7757, 1, rule22),+	_charblock_(7758, 1, rule21),+	_charblock_(7759, 1, rule22),+	_charblock_(7760, 1, rule21),+	_charblock_(7761, 1, rule22),+	_charblock_(7762, 1, rule21),+	_charblock_(7763, 1, rule22),+	_charblock_(7764, 1, rule21),+	_charblock_(7765, 1, rule22),+	_charblock_(7766, 1, rule21),+	_charblock_(7767, 1, rule22),+	_charblock_(7768, 1, rule21),+	_charblock_(7769, 1, rule22),+	_charblock_(7770, 1, rule21),+	_charblock_(7771, 1, rule22),+	_charblock_(7772, 1, rule21),+	_charblock_(7773, 1, rule22),+	_charblock_(7774, 1, rule21),+	_charblock_(7775, 1, rule22),+	_charblock_(7776, 1, rule21),+	_charblock_(7777, 1, rule22),+	_charblock_(7778, 1, rule21),+	_charblock_(7779, 1, rule22),+	_charblock_(7780, 1, rule21),+	_charblock_(7781, 1, rule22),+	_charblock_(7782, 1, rule21),+	_charblock_(7783, 1, rule22),+	_charblock_(7784, 1, rule21),+	_charblock_(7785, 1, rule22),+	_charblock_(7786, 1, rule21),+	_charblock_(7787, 1, rule22),+	_charblock_(7788, 1, rule21),+	_charblock_(7789, 1, rule22),+	_charblock_(7790, 1, rule21),+	_charblock_(7791, 1, rule22),+	_charblock_(7792, 1, rule21),+	_charblock_(7793, 1, rule22),+	_charblock_(7794, 1, rule21),+	_charblock_(7795, 1, rule22),+	_charblock_(7796, 1, rule21),+	_charblock_(7797, 1, rule22),+	_charblock_(7798, 1, rule21),+	_charblock_(7799, 1, rule22),+	_charblock_(7800, 1, rule21),+	_charblock_(7801, 1, rule22),+	_charblock_(7802, 1, rule21),+	_charblock_(7803, 1, rule22),+	_charblock_(7804, 1, rule21),+	_charblock_(7805, 1, rule22),+	_charblock_(7806, 1, rule21),+	_charblock_(7807, 1, rule22),+	_charblock_(7808, 1, rule21),+	_charblock_(7809, 1, rule22),+	_charblock_(7810, 1, rule21),+	_charblock_(7811, 1, rule22),+	_charblock_(7812, 1, rule21),+	_charblock_(7813, 1, rule22),+	_charblock_(7814, 1, rule21),+	_charblock_(7815, 1, rule22),+	_charblock_(7816, 1, rule21),+	_charblock_(7817, 1, rule22),+	_charblock_(7818, 1, rule21),+	_charblock_(7819, 1, rule22),+	_charblock_(7820, 1, rule21),+	_charblock_(7821, 1, rule22),+	_charblock_(7822, 1, rule21),+	_charblock_(7823, 1, rule22),+	_charblock_(7824, 1, rule21),+	_charblock_(7825, 1, rule22),+	_charblock_(7826, 1, rule21),+	_charblock_(7827, 1, rule22),+	_charblock_(7828, 1, rule21),+	_charblock_(7829, 1, rule22),+	_charblock_(7830, 5, rule14),+	_charblock_(7835, 1, rule119),+	_charblock_(7836, 2, rule14),+	_charblock_(7838, 1, rule120),+	_charblock_(7839, 1, rule14),+	_charblock_(7840, 1, rule21),+	_charblock_(7841, 1, rule22),+	_charblock_(7842, 1, rule21),+	_charblock_(7843, 1, rule22),+	_charblock_(7844, 1, rule21),+	_charblock_(7845, 1, rule22),+	_charblock_(7846, 1, rule21),+	_charblock_(7847, 1, rule22),+	_charblock_(7848, 1, rule21),+	_charblock_(7849, 1, rule22),+	_charblock_(7850, 1, rule21),+	_charblock_(7851, 1, rule22),+	_charblock_(7852, 1, rule21),+	_charblock_(7853, 1, rule22),+	_charblock_(7854, 1, rule21),+	_charblock_(7855, 1, rule22),+	_charblock_(7856, 1, rule21),+	_charblock_(7857, 1, rule22),+	_charblock_(7858, 1, rule21),+	_charblock_(7859, 1, rule22),+	_charblock_(7860, 1, rule21),+	_charblock_(7861, 1, rule22),+	_charblock_(7862, 1, rule21),+	_charblock_(7863, 1, rule22),+	_charblock_(7864, 1, rule21),+	_charblock_(7865, 1, rule22),+	_charblock_(7866, 1, rule21),+	_charblock_(7867, 1, rule22),+	_charblock_(7868, 1, rule21),+	_charblock_(7869, 1, rule22),+	_charblock_(7870, 1, rule21),+	_charblock_(7871, 1, rule22),+	_charblock_(7872, 1, rule21),+	_charblock_(7873, 1, rule22),+	_charblock_(7874, 1, rule21),+	_charblock_(7875, 1, rule22),+	_charblock_(7876, 1, rule21),+	_charblock_(7877, 1, rule22),+	_charblock_(7878, 1, rule21),+	_charblock_(7879, 1, rule22),+	_charblock_(7880, 1, rule21),+	_charblock_(7881, 1, rule22),+	_charblock_(7882, 1, rule21),+	_charblock_(7883, 1, rule22),+	_charblock_(7884, 1, rule21),+	_charblock_(7885, 1, rule22),+	_charblock_(7886, 1, rule21),+	_charblock_(7887, 1, rule22),+	_charblock_(7888, 1, rule21),+	_charblock_(7889, 1, rule22),+	_charblock_(7890, 1, rule21),+	_charblock_(7891, 1, rule22),+	_charblock_(7892, 1, rule21),+	_charblock_(7893, 1, rule22),+	_charblock_(7894, 1, rule21),+	_charblock_(7895, 1, rule22),+	_charblock_(7896, 1, rule21),+	_charblock_(7897, 1, rule22),+	_charblock_(7898, 1, rule21),+	_charblock_(7899, 1, rule22),+	_charblock_(7900, 1, rule21),+	_charblock_(7901, 1, rule22),+	_charblock_(7902, 1, rule21),+	_charblock_(7903, 1, rule22),+	_charblock_(7904, 1, rule21),+	_charblock_(7905, 1, rule22),+	_charblock_(7906, 1, rule21),+	_charblock_(7907, 1, rule22),+	_charblock_(7908, 1, rule21),+	_charblock_(7909, 1, rule22),+	_charblock_(7910, 1, rule21),+	_charblock_(7911, 1, rule22),+	_charblock_(7912, 1, rule21),+	_charblock_(7913, 1, rule22),+	_charblock_(7914, 1, rule21),+	_charblock_(7915, 1, rule22),+	_charblock_(7916, 1, rule21),+	_charblock_(7917, 1, rule22),+	_charblock_(7918, 1, rule21),+	_charblock_(7919, 1, rule22),+	_charblock_(7920, 1, rule21),+	_charblock_(7921, 1, rule22),+	_charblock_(7922, 1, rule21),+	_charblock_(7923, 1, rule22),+	_charblock_(7924, 1, rule21),+	_charblock_(7925, 1, rule22),+	_charblock_(7926, 1, rule21),+	_charblock_(7927, 1, rule22),+	_charblock_(7928, 1, rule21),+	_charblock_(7929, 1, rule22),+	_charblock_(7930, 1, rule21),+	_charblock_(7931, 1, rule22),+	_charblock_(7932, 1, rule21),+	_charblock_(7933, 1, rule22),+	_charblock_(7934, 1, rule21),+	_charblock_(7935, 1, rule22),+	_charblock_(7936, 8, rule121),+	_charblock_(7944, 8, rule122),+	_charblock_(7952, 6, rule121),+	_charblock_(7960, 6, rule122),+	_charblock_(7968, 8, rule121),+	_charblock_(7976, 8, rule122),+	_charblock_(7984, 8, rule121),+	_charblock_(7992, 8, rule122),+	_charblock_(8000, 6, rule121),+	_charblock_(8008, 6, rule122),+	_charblock_(8016, 1, rule14),+	_charblock_(8017, 1, rule121),+	_charblock_(8018, 1, rule14),+	_charblock_(8019, 1, rule121),+	_charblock_(8020, 1, rule14),+	_charblock_(8021, 1, rule121),+	_charblock_(8022, 1, rule14),+	_charblock_(8023, 1, rule121),+	_charblock_(8025, 1, rule122),+	_charblock_(8027, 1, rule122),+	_charblock_(8029, 1, rule122),+	_charblock_(8031, 1, rule122),+	_charblock_(8032, 8, rule121),+	_charblock_(8040, 8, rule122),+	_charblock_(8048, 2, rule123),+	_charblock_(8050, 4, rule124),+	_charblock_(8054, 2, rule125),+	_charblock_(8056, 2, rule126),+	_charblock_(8058, 2, rule127),+	_charblock_(8060, 2, rule128),+	_charblock_(8064, 8, rule121),+	_charblock_(8072, 8, rule129),+	_charblock_(8080, 8, rule121),+	_charblock_(8088, 8, rule129),+	_charblock_(8096, 8, rule121),+	_charblock_(8104, 8, rule129),+	_charblock_(8112, 2, rule121),+	_charblock_(8114, 1, rule14),+	_charblock_(8115, 1, rule130),+	_charblock_(8116, 1, rule14),+	_charblock_(8118, 2, rule14),+	_charblock_(8120, 2, rule122),+	_charblock_(8122, 2, rule131),+	_charblock_(8124, 1, rule132),+	_charblock_(8125, 1, rule10),+	_charblock_(8126, 1, rule133),+	_charblock_(8127, 3, rule10),+	_charblock_(8130, 1, rule14),+	_charblock_(8131, 1, rule130),+	_charblock_(8132, 1, rule14),+	_charblock_(8134, 2, rule14),+	_charblock_(8136, 4, rule134),+	_charblock_(8140, 1, rule132),+	_charblock_(8141, 3, rule10),+	_charblock_(8144, 2, rule121),+	_charblock_(8146, 2, rule14),+	_charblock_(8150, 2, rule14),+	_charblock_(8152, 2, rule122),+	_charblock_(8154, 2, rule135),+	_charblock_(8157, 3, rule10),+	_charblock_(8160, 2, rule121),+	_charblock_(8162, 3, rule14),+	_charblock_(8165, 1, rule104),+	_charblock_(8166, 2, rule14),+	_charblock_(8168, 2, rule122),+	_charblock_(8170, 2, rule136),+	_charblock_(8172, 1, rule107),+	_charblock_(8173, 3, rule10),+	_charblock_(8178, 1, rule14),+	_charblock_(8179, 1, rule130),+	_charblock_(8180, 1, rule14),+	_charblock_(8182, 2, rule14),+	_charblock_(8184, 2, rule137),+	_charblock_(8186, 2, rule138),+	_charblock_(8188, 1, rule132),+	_charblock_(8189, 2, rule10),+	_charblock_(8192, 11, rule1),+	_charblock_(8203, 5, rule16),+	_charblock_(8208, 6, rule7),+	_charblock_(8214, 2, rule2),+	_charblock_(8216, 1, rule15),+	_charblock_(8217, 1, rule19),+	_charblock_(8218, 1, rule4),+	_charblock_(8219, 2, rule15),+	_charblock_(8221, 1, rule19),+	_charblock_(8222, 1, rule4),+	_charblock_(8223, 1, rule15),+	_charblock_(8224, 8, rule2),+	_charblock_(8232, 1, rule139),+	_charblock_(8233, 1, rule140),+	_charblock_(8234, 5, rule16),+	_charblock_(8239, 1, rule1),+	_charblock_(8240, 9, rule2),+	_charblock_(8249, 1, rule15),+	_charblock_(8250, 1, rule19),+	_charblock_(8251, 4, rule2),+	_charblock_(8255, 2, rule11),+	_charblock_(8257, 3, rule2),+	_charblock_(8260, 1, rule6),+	_charblock_(8261, 1, rule4),+	_charblock_(8262, 1, rule5),+	_charblock_(8263, 11, rule2),+	_charblock_(8274, 1, rule6),+	_charblock_(8275, 1, rule2),+	_charblock_(8276, 1, rule11),+	_charblock_(8277, 10, rule2),+	_charblock_(8287, 1, rule1),+	_charblock_(8288, 5, rule16),+	_charblock_(8298, 6, rule16),+	_charblock_(8304, 1, rule17),+	_charblock_(8305, 1, rule83),+	_charblock_(8308, 6, rule17),+	_charblock_(8314, 3, rule6),+	_charblock_(8317, 1, rule4),+	_charblock_(8318, 1, rule5),+	_charblock_(8319, 1, rule83),+	_charblock_(8320, 10, rule17),+	_charblock_(8330, 3, rule6),+	_charblock_(8333, 1, rule4),+	_charblock_(8334, 1, rule5),+	_charblock_(8336, 13, rule83),+	_charblock_(8352, 26, rule3),+	_charblock_(8400, 13, rule84),+	_charblock_(8413, 4, rule109),+	_charblock_(8417, 1, rule84),+	_charblock_(8418, 3, rule109),+	_charblock_(8421, 12, rule84),+	_charblock_(8448, 2, rule13),+	_charblock_(8450, 1, rule98),+	_charblock_(8451, 4, rule13),+	_charblock_(8455, 1, rule98),+	_charblock_(8456, 2, rule13),+	_charblock_(8458, 1, rule14),+	_charblock_(8459, 3, rule98),+	_charblock_(8462, 2, rule14),+	_charblock_(8464, 3, rule98),+	_charblock_(8467, 1, rule14),+	_charblock_(8468, 1, rule13),+	_charblock_(8469, 1, rule98),+	_charblock_(8470, 2, rule13),+	_charblock_(8472, 1, rule6),+	_charblock_(8473, 5, rule98),+	_charblock_(8478, 6, rule13),+	_charblock_(8484, 1, rule98),+	_charblock_(8485, 1, rule13),+	_charblock_(8486, 1, rule141),+	_charblock_(8487, 1, rule13),+	_charblock_(8488, 1, rule98),+	_charblock_(8489, 1, rule13),+	_charblock_(8490, 1, rule142),+	_charblock_(8491, 1, rule143),+	_charblock_(8492, 2, rule98),+	_charblock_(8494, 1, rule13),+	_charblock_(8495, 1, rule14),+	_charblock_(8496, 2, rule98),+	_charblock_(8498, 1, rule144),+	_charblock_(8499, 1, rule98),+	_charblock_(8500, 1, rule14),+	_charblock_(8501, 4, rule45),+	_charblock_(8505, 1, rule14),+	_charblock_(8506, 2, rule13),+	_charblock_(8508, 2, rule14),+	_charblock_(8510, 2, rule98),+	_charblock_(8512, 5, rule6),+	_charblock_(8517, 1, rule98),+	_charblock_(8518, 4, rule14),+	_charblock_(8522, 1, rule13),+	_charblock_(8523, 1, rule6),+	_charblock_(8524, 2, rule13),+	_charblock_(8526, 1, rule145),+	_charblock_(8527, 1, rule13),+	_charblock_(8528, 16, rule17),+	_charblock_(8544, 16, rule146),+	_charblock_(8560, 16, rule147),+	_charblock_(8576, 3, rule116),+	_charblock_(8579, 1, rule21),+	_charblock_(8580, 1, rule22),+	_charblock_(8581, 4, rule116),+	_charblock_(8585, 1, rule17),+	_charblock_(8592, 5, rule6),+	_charblock_(8597, 5, rule13),+	_charblock_(8602, 2, rule6),+	_charblock_(8604, 4, rule13),+	_charblock_(8608, 1, rule6),+	_charblock_(8609, 2, rule13),+	_charblock_(8611, 1, rule6),+	_charblock_(8612, 2, rule13),+	_charblock_(8614, 1, rule6),+	_charblock_(8615, 7, rule13),+	_charblock_(8622, 1, rule6),+	_charblock_(8623, 31, rule13),+	_charblock_(8654, 2, rule6),+	_charblock_(8656, 2, rule13),+	_charblock_(8658, 1, rule6),+	_charblock_(8659, 1, rule13),+	_charblock_(8660, 1, rule6),+	_charblock_(8661, 31, rule13),+	_charblock_(8692, 268, rule6),+	_charblock_(8960, 8, rule13),+	_charblock_(8968, 4, rule6),+	_charblock_(8972, 20, rule13),+	_charblock_(8992, 2, rule6),+	_charblock_(8994, 7, rule13),+	_charblock_(9001, 1, rule4),+	_charblock_(9002, 1, rule5),+	_charblock_(9003, 81, rule13),+	_charblock_(9084, 1, rule6),+	_charblock_(9085, 30, rule13),+	_charblock_(9115, 25, rule6),+	_charblock_(9140, 40, rule13),+	_charblock_(9180, 6, rule6),+	_charblock_(9186, 18, rule13),+	_charblock_(9216, 39, rule13),+	_charblock_(9280, 11, rule13),+	_charblock_(9312, 60, rule17),+	_charblock_(9372, 26, rule13),+	_charblock_(9398, 26, rule148),+	_charblock_(9424, 26, rule149),+	_charblock_(9450, 22, rule17),+	_charblock_(9472, 183, rule13),+	_charblock_(9655, 1, rule6),+	_charblock_(9656, 9, rule13),+	_charblock_(9665, 1, rule6),+	_charblock_(9666, 54, rule13),+	_charblock_(9720, 8, rule6),+	_charblock_(9728, 111, rule13),+	_charblock_(9839, 1, rule6),+	_charblock_(9840, 144, rule13),+	_charblock_(9985, 103, rule13),+	_charblock_(10088, 1, rule4),+	_charblock_(10089, 1, rule5),+	_charblock_(10090, 1, rule4),+	_charblock_(10091, 1, rule5),+	_charblock_(10092, 1, rule4),+	_charblock_(10093, 1, rule5),+	_charblock_(10094, 1, rule4),+	_charblock_(10095, 1, rule5),+	_charblock_(10096, 1, rule4),+	_charblock_(10097, 1, rule5),+	_charblock_(10098, 1, rule4),+	_charblock_(10099, 1, rule5),+	_charblock_(10100, 1, rule4),+	_charblock_(10101, 1, rule5),+	_charblock_(10102, 30, rule17),+	_charblock_(10132, 44, rule13),+	_charblock_(10176, 5, rule6),+	_charblock_(10181, 1, rule4),+	_charblock_(10182, 1, rule5),+	_charblock_(10183, 4, rule6),+	_charblock_(10188, 1, rule6),+	_charblock_(10190, 24, rule6),+	_charblock_(10214, 1, rule4),+	_charblock_(10215, 1, rule5),+	_charblock_(10216, 1, rule4),+	_charblock_(10217, 1, rule5),+	_charblock_(10218, 1, rule4),+	_charblock_(10219, 1, rule5),+	_charblock_(10220, 1, rule4),+	_charblock_(10221, 1, rule5),+	_charblock_(10222, 1, rule4),+	_charblock_(10223, 1, rule5),+	_charblock_(10224, 16, rule6),+	_charblock_(10240, 256, rule13),+	_charblock_(10496, 131, rule6),+	_charblock_(10627, 1, rule4),+	_charblock_(10628, 1, rule5),+	_charblock_(10629, 1, rule4),+	_charblock_(10630, 1, rule5),+	_charblock_(10631, 1, rule4),+	_charblock_(10632, 1, rule5),+	_charblock_(10633, 1, rule4),+	_charblock_(10634, 1, rule5),+	_charblock_(10635, 1, rule4),+	_charblock_(10636, 1, rule5),+	_charblock_(10637, 1, rule4),+	_charblock_(10638, 1, rule5),+	_charblock_(10639, 1, rule4),+	_charblock_(10640, 1, rule5),+	_charblock_(10641, 1, rule4),+	_charblock_(10642, 1, rule5),+	_charblock_(10643, 1, rule4),+	_charblock_(10644, 1, rule5),+	_charblock_(10645, 1, rule4),+	_charblock_(10646, 1, rule5),+	_charblock_(10647, 1, rule4),+	_charblock_(10648, 1, rule5),+	_charblock_(10649, 63, rule6),+	_charblock_(10712, 1, rule4),+	_charblock_(10713, 1, rule5),+	_charblock_(10714, 1, rule4),+	_charblock_(10715, 1, rule5),+	_charblock_(10716, 32, rule6),+	_charblock_(10748, 1, rule4),+	_charblock_(10749, 1, rule5),+	_charblock_(10750, 258, rule6),+	_charblock_(11008, 48, rule13),+	_charblock_(11056, 21, rule6),+	_charblock_(11077, 2, rule13),+	_charblock_(11079, 6, rule6),+	_charblock_(11088, 10, rule13),+	_charblock_(11264, 47, rule112),+	_charblock_(11312, 47, rule113),+	_charblock_(11360, 1, rule21),+	_charblock_(11361, 1, rule22),+	_charblock_(11362, 1, rule150),+	_charblock_(11363, 1, rule151),+	_charblock_(11364, 1, rule152),+	_charblock_(11365, 1, rule153),+	_charblock_(11366, 1, rule154),+	_charblock_(11367, 1, rule21),+	_charblock_(11368, 1, rule22),+	_charblock_(11369, 1, rule21),+	_charblock_(11370, 1, rule22),+	_charblock_(11371, 1, rule21),+	_charblock_(11372, 1, rule22),+	_charblock_(11373, 1, rule155),+	_charblock_(11374, 1, rule156),+	_charblock_(11375, 1, rule157),+	_charblock_(11376, 1, rule158),+	_charblock_(11377, 1, rule14),+	_charblock_(11378, 1, rule21),+	_charblock_(11379, 1, rule22),+	_charblock_(11380, 1, rule14),+	_charblock_(11381, 1, rule21),+	_charblock_(11382, 1, rule22),+	_charblock_(11383, 6, rule14),+	_charblock_(11389, 1, rule83),+	_charblock_(11390, 2, rule159),+	_charblock_(11392, 1, rule21),+	_charblock_(11393, 1, rule22),+	_charblock_(11394, 1, rule21),+	_charblock_(11395, 1, rule22),+	_charblock_(11396, 1, rule21),+	_charblock_(11397, 1, rule22),+	_charblock_(11398, 1, rule21),+	_charblock_(11399, 1, rule22),+	_charblock_(11400, 1, rule21),+	_charblock_(11401, 1, rule22),+	_charblock_(11402, 1, rule21),+	_charblock_(11403, 1, rule22),+	_charblock_(11404, 1, rule21),+	_charblock_(11405, 1, rule22),+	_charblock_(11406, 1, rule21),+	_charblock_(11407, 1, rule22),+	_charblock_(11408, 1, rule21),+	_charblock_(11409, 1, rule22),+	_charblock_(11410, 1, rule21),+	_charblock_(11411, 1, rule22),+	_charblock_(11412, 1, rule21),+	_charblock_(11413, 1, rule22),+	_charblock_(11414, 1, rule21),+	_charblock_(11415, 1, rule22),+	_charblock_(11416, 1, rule21),+	_charblock_(11417, 1, rule22),+	_charblock_(11418, 1, rule21),+	_charblock_(11419, 1, rule22),+	_charblock_(11420, 1, rule21),+	_charblock_(11421, 1, rule22),+	_charblock_(11422, 1, rule21),+	_charblock_(11423, 1, rule22),+	_charblock_(11424, 1, rule21),+	_charblock_(11425, 1, rule22),+	_charblock_(11426, 1, rule21),+	_charblock_(11427, 1, rule22),+	_charblock_(11428, 1, rule21),+	_charblock_(11429, 1, rule22),+	_charblock_(11430, 1, rule21),+	_charblock_(11431, 1, rule22),+	_charblock_(11432, 1, rule21),+	_charblock_(11433, 1, rule22),+	_charblock_(11434, 1, rule21),+	_charblock_(11435, 1, rule22),+	_charblock_(11436, 1, rule21),+	_charblock_(11437, 1, rule22),+	_charblock_(11438, 1, rule21),+	_charblock_(11439, 1, rule22),+	_charblock_(11440, 1, rule21),+	_charblock_(11441, 1, rule22),+	_charblock_(11442, 1, rule21),+	_charblock_(11443, 1, rule22),+	_charblock_(11444, 1, rule21),+	_charblock_(11445, 1, rule22),+	_charblock_(11446, 1, rule21),+	_charblock_(11447, 1, rule22),+	_charblock_(11448, 1, rule21),+	_charblock_(11449, 1, rule22),+	_charblock_(11450, 1, rule21),+	_charblock_(11451, 1, rule22),+	_charblock_(11452, 1, rule21),+	_charblock_(11453, 1, rule22),+	_charblock_(11454, 1, rule21),+	_charblock_(11455, 1, rule22),+	_charblock_(11456, 1, rule21),+	_charblock_(11457, 1, rule22),+	_charblock_(11458, 1, rule21),+	_charblock_(11459, 1, rule22),+	_charblock_(11460, 1, rule21),+	_charblock_(11461, 1, rule22),+	_charblock_(11462, 1, rule21),+	_charblock_(11463, 1, rule22),+	_charblock_(11464, 1, rule21),+	_charblock_(11465, 1, rule22),+	_charblock_(11466, 1, rule21),+	_charblock_(11467, 1, rule22),+	_charblock_(11468, 1, rule21),+	_charblock_(11469, 1, rule22),+	_charblock_(11470, 1, rule21),+	_charblock_(11471, 1, rule22),+	_charblock_(11472, 1, rule21),+	_charblock_(11473, 1, rule22),+	_charblock_(11474, 1, rule21),+	_charblock_(11475, 1, rule22),+	_charblock_(11476, 1, rule21),+	_charblock_(11477, 1, rule22),+	_charblock_(11478, 1, rule21),+	_charblock_(11479, 1, rule22),+	_charblock_(11480, 1, rule21),+	_charblock_(11481, 1, rule22),+	_charblock_(11482, 1, rule21),+	_charblock_(11483, 1, rule22),+	_charblock_(11484, 1, rule21),+	_charblock_(11485, 1, rule22),+	_charblock_(11486, 1, rule21),+	_charblock_(11487, 1, rule22),+	_charblock_(11488, 1, rule21),+	_charblock_(11489, 1, rule22),+	_charblock_(11490, 1, rule21),+	_charblock_(11491, 1, rule22),+	_charblock_(11492, 1, rule14),+	_charblock_(11493, 6, rule13),+	_charblock_(11499, 1, rule21),+	_charblock_(11500, 1, rule22),+	_charblock_(11501, 1, rule21),+	_charblock_(11502, 1, rule22),+	_charblock_(11503, 3, rule84),+	_charblock_(11513, 4, rule2),+	_charblock_(11517, 1, rule17),+	_charblock_(11518, 2, rule2),+	_charblock_(11520, 38, rule160),+	_charblock_(11568, 54, rule45),+	_charblock_(11631, 1, rule83),+	_charblock_(11632, 1, rule2),+	_charblock_(11647, 1, rule84),+	_charblock_(11648, 23, rule45),+	_charblock_(11680, 7, rule45),+	_charblock_(11688, 7, rule45),+	_charblock_(11696, 7, rule45),+	_charblock_(11704, 7, rule45),+	_charblock_(11712, 7, rule45),+	_charblock_(11720, 7, rule45),+	_charblock_(11728, 7, rule45),+	_charblock_(11736, 7, rule45),+	_charblock_(11744, 32, rule84),+	_charblock_(11776, 2, rule2),+	_charblock_(11778, 1, rule15),+	_charblock_(11779, 1, rule19),+	_charblock_(11780, 1, rule15),+	_charblock_(11781, 1, rule19),+	_charblock_(11782, 3, rule2),+	_charblock_(11785, 1, rule15),+	_charblock_(11786, 1, rule19),+	_charblock_(11787, 1, rule2),+	_charblock_(11788, 1, rule15),+	_charblock_(11789, 1, rule19),+	_charblock_(11790, 9, rule2),+	_charblock_(11799, 1, rule7),+	_charblock_(11800, 2, rule2),+	_charblock_(11802, 1, rule7),+	_charblock_(11803, 1, rule2),+	_charblock_(11804, 1, rule15),+	_charblock_(11805, 1, rule19),+	_charblock_(11806, 2, rule2),+	_charblock_(11808, 1, rule15),+	_charblock_(11809, 1, rule19),+	_charblock_(11810, 1, rule4),+	_charblock_(11811, 1, rule5),+	_charblock_(11812, 1, rule4),+	_charblock_(11813, 1, rule5),+	_charblock_(11814, 1, rule4),+	_charblock_(11815, 1, rule5),+	_charblock_(11816, 1, rule4),+	_charblock_(11817, 1, rule5),+	_charblock_(11818, 5, rule2),+	_charblock_(11823, 1, rule83),+	_charblock_(11824, 2, rule2),+	_charblock_(11904, 26, rule13),+	_charblock_(11931, 89, rule13),+	_charblock_(12032, 214, rule13),+	_charblock_(12272, 12, rule13),+	_charblock_(12288, 1, rule1),+	_charblock_(12289, 3, rule2),+	_charblock_(12292, 1, rule13),+	_charblock_(12293, 1, rule83),+	_charblock_(12294, 1, rule45),+	_charblock_(12295, 1, rule116),+	_charblock_(12296, 1, rule4),+	_charblock_(12297, 1, rule5),+	_charblock_(12298, 1, rule4),+	_charblock_(12299, 1, rule5),+	_charblock_(12300, 1, rule4),+	_charblock_(12301, 1, rule5),+	_charblock_(12302, 1, rule4),+	_charblock_(12303, 1, rule5),+	_charblock_(12304, 1, rule4),+	_charblock_(12305, 1, rule5),+	_charblock_(12306, 2, rule13),+	_charblock_(12308, 1, rule4),+	_charblock_(12309, 1, rule5),+	_charblock_(12310, 1, rule4),+	_charblock_(12311, 1, rule5),+	_charblock_(12312, 1, rule4),+	_charblock_(12313, 1, rule5),+	_charblock_(12314, 1, rule4),+	_charblock_(12315, 1, rule5),+	_charblock_(12316, 1, rule7),+	_charblock_(12317, 1, rule4),+	_charblock_(12318, 2, rule5),+	_charblock_(12320, 1, rule13),+	_charblock_(12321, 9, rule116),+	_charblock_(12330, 6, rule84),+	_charblock_(12336, 1, rule7),+	_charblock_(12337, 5, rule83),+	_charblock_(12342, 2, rule13),+	_charblock_(12344, 3, rule116),+	_charblock_(12347, 1, rule83),+	_charblock_(12348, 1, rule45),+	_charblock_(12349, 1, rule2),+	_charblock_(12350, 2, rule13),+	_charblock_(12353, 86, rule45),+	_charblock_(12441, 2, rule84),+	_charblock_(12443, 2, rule10),+	_charblock_(12445, 2, rule83),+	_charblock_(12447, 1, rule45),+	_charblock_(12448, 1, rule7),+	_charblock_(12449, 90, rule45),+	_charblock_(12539, 1, rule2),+	_charblock_(12540, 3, rule83),+	_charblock_(12543, 1, rule45),+	_charblock_(12549, 41, rule45),+	_charblock_(12593, 94, rule45),+	_charblock_(12688, 2, rule13),+	_charblock_(12690, 4, rule17),+	_charblock_(12694, 10, rule13),+	_charblock_(12704, 27, rule45),+	_charblock_(12736, 36, rule13),+	_charblock_(12784, 16, rule45),+	_charblock_(12800, 31, rule13),+	_charblock_(12832, 10, rule17),+	_charblock_(12842, 39, rule13),+	_charblock_(12881, 15, rule17),+	_charblock_(12896, 32, rule13),+	_charblock_(12928, 10, rule17),+	_charblock_(12938, 39, rule13),+	_charblock_(12977, 15, rule17),+	_charblock_(12992, 63, rule13),+	_charblock_(13056, 256, rule13),+	_charblock_(13312, 6582, rule45),+	_charblock_(19904, 64, rule13),+	_charblock_(19968, 20940, rule45),+	_charblock_(40960, 21, rule45),+	_charblock_(40981, 1, rule83),+	_charblock_(40982, 1143, rule45),+	_charblock_(42128, 55, rule13),+	_charblock_(42192, 40, rule45),+	_charblock_(42232, 6, rule83),+	_charblock_(42238, 2, rule2),+	_charblock_(42240, 268, rule45),+	_charblock_(42508, 1, rule83),+	_charblock_(42509, 3, rule2),+	_charblock_(42512, 16, rule45),+	_charblock_(42528, 10, rule8),+	_charblock_(42538, 2, rule45),+	_charblock_(42560, 1, rule21),+	_charblock_(42561, 1, rule22),+	_charblock_(42562, 1, rule21),+	_charblock_(42563, 1, rule22),+	_charblock_(42564, 1, rule21),+	_charblock_(42565, 1, rule22),+	_charblock_(42566, 1, rule21),+	_charblock_(42567, 1, rule22),+	_charblock_(42568, 1, rule21),+	_charblock_(42569, 1, rule22),+	_charblock_(42570, 1, rule21),+	_charblock_(42571, 1, rule22),+	_charblock_(42572, 1, rule21),+	_charblock_(42573, 1, rule22),+	_charblock_(42574, 1, rule21),+	_charblock_(42575, 1, rule22),+	_charblock_(42576, 1, rule21),+	_charblock_(42577, 1, rule22),+	_charblock_(42578, 1, rule21),+	_charblock_(42579, 1, rule22),+	_charblock_(42580, 1, rule21),+	_charblock_(42581, 1, rule22),+	_charblock_(42582, 1, rule21),+	_charblock_(42583, 1, rule22),+	_charblock_(42584, 1, rule21),+	_charblock_(42585, 1, rule22),+	_charblock_(42586, 1, rule21),+	_charblock_(42587, 1, rule22),+	_charblock_(42588, 1, rule21),+	_charblock_(42589, 1, rule22),+	_charblock_(42590, 1, rule21),+	_charblock_(42591, 1, rule22),+	_charblock_(42592, 1, rule21),+	_charblock_(42593, 1, rule22),+	_charblock_(42594, 1, rule21),+	_charblock_(42595, 1, rule22),+	_charblock_(42596, 1, rule21),+	_charblock_(42597, 1, rule22),+	_charblock_(42598, 1, rule21),+	_charblock_(42599, 1, rule22),+	_charblock_(42600, 1, rule21),+	_charblock_(42601, 1, rule22),+	_charblock_(42602, 1, rule21),+	_charblock_(42603, 1, rule22),+	_charblock_(42604, 1, rule21),+	_charblock_(42605, 1, rule22),+	_charblock_(42606, 1, rule45),+	_charblock_(42607, 1, rule84),+	_charblock_(42608, 3, rule109),+	_charblock_(42611, 1, rule2),+	_charblock_(42620, 2, rule84),+	_charblock_(42622, 1, rule2),+	_charblock_(42623, 1, rule83),+	_charblock_(42624, 1, rule21),+	_charblock_(42625, 1, rule22),+	_charblock_(42626, 1, rule21),+	_charblock_(42627, 1, rule22),+	_charblock_(42628, 1, rule21),+	_charblock_(42629, 1, rule22),+	_charblock_(42630, 1, rule21),+	_charblock_(42631, 1, rule22),+	_charblock_(42632, 1, rule21),+	_charblock_(42633, 1, rule22),+	_charblock_(42634, 1, rule21),+	_charblock_(42635, 1, rule22),+	_charblock_(42636, 1, rule21),+	_charblock_(42637, 1, rule22),+	_charblock_(42638, 1, rule21),+	_charblock_(42639, 1, rule22),+	_charblock_(42640, 1, rule21),+	_charblock_(42641, 1, rule22),+	_charblock_(42642, 1, rule21),+	_charblock_(42643, 1, rule22),+	_charblock_(42644, 1, rule21),+	_charblock_(42645, 1, rule22),+	_charblock_(42646, 1, rule21),+	_charblock_(42647, 1, rule22),+	_charblock_(42656, 70, rule45),+	_charblock_(42726, 10, rule116),+	_charblock_(42736, 2, rule84),+	_charblock_(42738, 6, rule2),+	_charblock_(42752, 23, rule10),+	_charblock_(42775, 9, rule83),+	_charblock_(42784, 2, rule10),+	_charblock_(42786, 1, rule21),+	_charblock_(42787, 1, rule22),+	_charblock_(42788, 1, rule21),+	_charblock_(42789, 1, rule22),+	_charblock_(42790, 1, rule21),+	_charblock_(42791, 1, rule22),+	_charblock_(42792, 1, rule21),+	_charblock_(42793, 1, rule22),+	_charblock_(42794, 1, rule21),+	_charblock_(42795, 1, rule22),+	_charblock_(42796, 1, rule21),+	_charblock_(42797, 1, rule22),+	_charblock_(42798, 1, rule21),+	_charblock_(42799, 1, rule22),+	_charblock_(42800, 2, rule14),+	_charblock_(42802, 1, rule21),+	_charblock_(42803, 1, rule22),+	_charblock_(42804, 1, rule21),+	_charblock_(42805, 1, rule22),+	_charblock_(42806, 1, rule21),+	_charblock_(42807, 1, rule22),+	_charblock_(42808, 1, rule21),+	_charblock_(42809, 1, rule22),+	_charblock_(42810, 1, rule21),+	_charblock_(42811, 1, rule22),+	_charblock_(42812, 1, rule21),+	_charblock_(42813, 1, rule22),+	_charblock_(42814, 1, rule21),+	_charblock_(42815, 1, rule22),+	_charblock_(42816, 1, rule21),+	_charblock_(42817, 1, rule22),+	_charblock_(42818, 1, rule21),+	_charblock_(42819, 1, rule22),+	_charblock_(42820, 1, rule21),+	_charblock_(42821, 1, rule22),+	_charblock_(42822, 1, rule21),+	_charblock_(42823, 1, rule22),+	_charblock_(42824, 1, rule21),+	_charblock_(42825, 1, rule22),+	_charblock_(42826, 1, rule21),+	_charblock_(42827, 1, rule22),+	_charblock_(42828, 1, rule21),+	_charblock_(42829, 1, rule22),+	_charblock_(42830, 1, rule21),+	_charblock_(42831, 1, rule22),+	_charblock_(42832, 1, rule21),+	_charblock_(42833, 1, rule22),+	_charblock_(42834, 1, rule21),+	_charblock_(42835, 1, rule22),+	_charblock_(42836, 1, rule21),+	_charblock_(42837, 1, rule22),+	_charblock_(42838, 1, rule21),+	_charblock_(42839, 1, rule22),+	_charblock_(42840, 1, rule21),+	_charblock_(42841, 1, rule22),+	_charblock_(42842, 1, rule21),+	_charblock_(42843, 1, rule22),+	_charblock_(42844, 1, rule21),+	_charblock_(42845, 1, rule22),+	_charblock_(42846, 1, rule21),+	_charblock_(42847, 1, rule22),+	_charblock_(42848, 1, rule21),+	_charblock_(42849, 1, rule22),+	_charblock_(42850, 1, rule21),+	_charblock_(42851, 1, rule22),+	_charblock_(42852, 1, rule21),+	_charblock_(42853, 1, rule22),+	_charblock_(42854, 1, rule21),+	_charblock_(42855, 1, rule22),+	_charblock_(42856, 1, rule21),+	_charblock_(42857, 1, rule22),+	_charblock_(42858, 1, rule21),+	_charblock_(42859, 1, rule22),+	_charblock_(42860, 1, rule21),+	_charblock_(42861, 1, rule22),+	_charblock_(42862, 1, rule21),+	_charblock_(42863, 1, rule22),+	_charblock_(42864, 1, rule83),+	_charblock_(42865, 8, rule14),+	_charblock_(42873, 1, rule21),+	_charblock_(42874, 1, rule22),+	_charblock_(42875, 1, rule21),+	_charblock_(42876, 1, rule22),+	_charblock_(42877, 1, rule161),+	_charblock_(42878, 1, rule21),+	_charblock_(42879, 1, rule22),+	_charblock_(42880, 1, rule21),+	_charblock_(42881, 1, rule22),+	_charblock_(42882, 1, rule21),+	_charblock_(42883, 1, rule22),+	_charblock_(42884, 1, rule21),+	_charblock_(42885, 1, rule22),+	_charblock_(42886, 1, rule21),+	_charblock_(42887, 1, rule22),+	_charblock_(42888, 1, rule83),+	_charblock_(42889, 2, rule10),+	_charblock_(42891, 1, rule21),+	_charblock_(42892, 1, rule22),+	_charblock_(42893, 1, rule162),+	_charblock_(42894, 1, rule14),+	_charblock_(42896, 1, rule21),+	_charblock_(42897, 1, rule22),+	_charblock_(42912, 1, rule21),+	_charblock_(42913, 1, rule22),+	_charblock_(42914, 1, rule21),+	_charblock_(42915, 1, rule22),+	_charblock_(42916, 1, rule21),+	_charblock_(42917, 1, rule22),+	_charblock_(42918, 1, rule21),+	_charblock_(42919, 1, rule22),+	_charblock_(42920, 1, rule21),+	_charblock_(42921, 1, rule22),+	_charblock_(43002, 1, rule14),+	_charblock_(43003, 7, rule45),+	_charblock_(43010, 1, rule84),+	_charblock_(43011, 3, rule45),+	_charblock_(43014, 1, rule84),+	_charblock_(43015, 4, rule45),+	_charblock_(43019, 1, rule84),+	_charblock_(43020, 23, rule45),+	_charblock_(43043, 2, rule114),+	_charblock_(43045, 2, rule84),+	_charblock_(43047, 1, rule114),+	_charblock_(43048, 4, rule13),+	_charblock_(43056, 6, rule17),+	_charblock_(43062, 2, rule13),+	_charblock_(43064, 1, rule3),+	_charblock_(43065, 1, rule13),+	_charblock_(43072, 52, rule45),+	_charblock_(43124, 4, rule2),+	_charblock_(43136, 2, rule114),+	_charblock_(43138, 50, rule45),+	_charblock_(43188, 16, rule114),+	_charblock_(43204, 1, rule84),+	_charblock_(43214, 2, rule2),+	_charblock_(43216, 10, rule8),+	_charblock_(43232, 18, rule84),+	_charblock_(43250, 6, rule45),+	_charblock_(43256, 3, rule2),+	_charblock_(43259, 1, rule45),+	_charblock_(43264, 10, rule8),+	_charblock_(43274, 28, rule45),+	_charblock_(43302, 8, rule84),+	_charblock_(43310, 2, rule2),+	_charblock_(43312, 23, rule45),+	_charblock_(43335, 11, rule84),+	_charblock_(43346, 2, rule114),+	_charblock_(43359, 1, rule2),+	_charblock_(43360, 29, rule45),+	_charblock_(43392, 3, rule84),+	_charblock_(43395, 1, rule114),+	_charblock_(43396, 47, rule45),+	_charblock_(43443, 1, rule84),+	_charblock_(43444, 2, rule114),+	_charblock_(43446, 4, rule84),+	_charblock_(43450, 2, rule114),+	_charblock_(43452, 1, rule84),+	_charblock_(43453, 4, rule114),+	_charblock_(43457, 13, rule2),+	_charblock_(43471, 1, rule83),+	_charblock_(43472, 10, rule8),+	_charblock_(43486, 2, rule2),+	_charblock_(43520, 41, rule45),+	_charblock_(43561, 6, rule84),+	_charblock_(43567, 2, rule114),+	_charblock_(43569, 2, rule84),+	_charblock_(43571, 2, rule114),+	_charblock_(43573, 2, rule84),+	_charblock_(43584, 3, rule45),+	_charblock_(43587, 1, rule84),+	_charblock_(43588, 8, rule45),+	_charblock_(43596, 1, rule84),+	_charblock_(43597, 1, rule114),+	_charblock_(43600, 10, rule8),+	_charblock_(43612, 4, rule2),+	_charblock_(43616, 16, rule45),+	_charblock_(43632, 1, rule83),+	_charblock_(43633, 6, rule45),+	_charblock_(43639, 3, rule13),+	_charblock_(43642, 1, rule45),+	_charblock_(43643, 1, rule114),+	_charblock_(43648, 48, rule45),+	_charblock_(43696, 1, rule84),+	_charblock_(43697, 1, rule45),+	_charblock_(43698, 3, rule84),+	_charblock_(43701, 2, rule45),+	_charblock_(43703, 2, rule84),+	_charblock_(43705, 5, rule45),+	_charblock_(43710, 2, rule84),+	_charblock_(43712, 1, rule45),+	_charblock_(43713, 1, rule84),+	_charblock_(43714, 1, rule45),+	_charblock_(43739, 2, rule45),+	_charblock_(43741, 1, rule83),+	_charblock_(43742, 2, rule2),+	_charblock_(43777, 6, rule45),+	_charblock_(43785, 6, rule45),+	_charblock_(43793, 6, rule45),+	_charblock_(43808, 7, rule45),+	_charblock_(43816, 7, rule45),+	_charblock_(43968, 35, rule45),+	_charblock_(44003, 2, rule114),+	_charblock_(44005, 1, rule84),+	_charblock_(44006, 2, rule114),+	_charblock_(44008, 1, rule84),+	_charblock_(44009, 2, rule114),+	_charblock_(44011, 1, rule2),+	_charblock_(44012, 1, rule114),+	_charblock_(44013, 1, rule84),+	_charblock_(44016, 10, rule8),+	_charblock_(44032, 11172, rule45),+	_charblock_(55216, 23, rule45),+	_charblock_(55243, 49, rule45),+	_charblock_(55296, 896, rule163),+	_charblock_(56192, 128, rule163),+	_charblock_(56320, 1024, rule163),+	_charblock_(57344, 6400, rule164),+	_charblock_(63744, 302, rule45),+	_charblock_(64048, 62, rule45),+	_charblock_(64112, 106, rule45),+	_charblock_(64256, 7, rule14),+	_charblock_(64275, 5, rule14),+	_charblock_(64285, 1, rule45),+	_charblock_(64286, 1, rule84),+	_charblock_(64287, 10, rule45),+	_charblock_(64297, 1, rule6),+	_charblock_(64298, 13, rule45),+	_charblock_(64312, 5, rule45),+	_charblock_(64318, 1, rule45),+	_charblock_(64320, 2, rule45),+	_charblock_(64323, 2, rule45),+	_charblock_(64326, 108, rule45),+	_charblock_(64434, 16, rule10),+	_charblock_(64467, 363, rule45),+	_charblock_(64830, 1, rule4),+	_charblock_(64831, 1, rule5),+	_charblock_(64848, 64, rule45),+	_charblock_(64914, 54, rule45),+	_charblock_(65008, 12, rule45),+	_charblock_(65020, 1, rule3),+	_charblock_(65021, 1, rule13),+	_charblock_(65024, 16, rule84),+	_charblock_(65040, 7, rule2),+	_charblock_(65047, 1, rule4),+	_charblock_(65048, 1, rule5),+	_charblock_(65049, 1, rule2),+	_charblock_(65056, 7, rule84),+	_charblock_(65072, 1, rule2),+	_charblock_(65073, 2, rule7),+	_charblock_(65075, 2, rule11),+	_charblock_(65077, 1, rule4),+	_charblock_(65078, 1, rule5),+	_charblock_(65079, 1, rule4),+	_charblock_(65080, 1, rule5),+	_charblock_(65081, 1, rule4),+	_charblock_(65082, 1, rule5),+	_charblock_(65083, 1, rule4),+	_charblock_(65084, 1, rule5),+	_charblock_(65085, 1, rule4),+	_charblock_(65086, 1, rule5),+	_charblock_(65087, 1, rule4),+	_charblock_(65088, 1, rule5),+	_charblock_(65089, 1, rule4),+	_charblock_(65090, 1, rule5),+	_charblock_(65091, 1, rule4),+	_charblock_(65092, 1, rule5),+	_charblock_(65093, 2, rule2),+	_charblock_(65095, 1, rule4),+	_charblock_(65096, 1, rule5),+	_charblock_(65097, 4, rule2),+	_charblock_(65101, 3, rule11),+	_charblock_(65104, 3, rule2),+	_charblock_(65108, 4, rule2),+	_charblock_(65112, 1, rule7),+	_charblock_(65113, 1, rule4),+	_charblock_(65114, 1, rule5),+	_charblock_(65115, 1, rule4),+	_charblock_(65116, 1, rule5),+	_charblock_(65117, 1, rule4),+	_charblock_(65118, 1, rule5),+	_charblock_(65119, 3, rule2),+	_charblock_(65122, 1, rule6),+	_charblock_(65123, 1, rule7),+	_charblock_(65124, 3, rule6),+	_charblock_(65128, 1, rule2),+	_charblock_(65129, 1, rule3),+	_charblock_(65130, 2, rule2),+	_charblock_(65136, 5, rule45),+	_charblock_(65142, 135, rule45),+	_charblock_(65279, 1, rule16),+	_charblock_(65281, 3, rule2),+	_charblock_(65284, 1, rule3),+	_charblock_(65285, 3, rule2),+	_charblock_(65288, 1, rule4),+	_charblock_(65289, 1, rule5),+	_charblock_(65290, 1, rule2),+	_charblock_(65291, 1, rule6),+	_charblock_(65292, 1, rule2),+	_charblock_(65293, 1, rule7),+	_charblock_(65294, 2, rule2),+	_charblock_(65296, 10, rule8),+	_charblock_(65306, 2, rule2),+	_charblock_(65308, 3, rule6),+	_charblock_(65311, 2, rule2),+	_charblock_(65313, 26, rule9),+	_charblock_(65339, 1, rule4),+	_charblock_(65340, 1, rule2),+	_charblock_(65341, 1, rule5),+	_charblock_(65342, 1, rule10),+	_charblock_(65343, 1, rule11),+	_charblock_(65344, 1, rule10),+	_charblock_(65345, 26, rule12),+	_charblock_(65371, 1, rule4),+	_charblock_(65372, 1, rule6),+	_charblock_(65373, 1, rule5),+	_charblock_(65374, 1, rule6),+	_charblock_(65375, 1, rule4),+	_charblock_(65376, 1, rule5),+	_charblock_(65377, 1, rule2),+	_charblock_(65378, 1, rule4),+	_charblock_(65379, 1, rule5),+	_charblock_(65380, 2, rule2),+	_charblock_(65382, 10, rule45),+	_charblock_(65392, 1, rule83),+	_charblock_(65393, 45, rule45),+	_charblock_(65438, 2, rule83),+	_charblock_(65440, 31, rule45),+	_charblock_(65474, 6, rule45),+	_charblock_(65482, 6, rule45),+	_charblock_(65490, 6, rule45),+	_charblock_(65498, 3, rule45),+	_charblock_(65504, 2, rule3),+	_charblock_(65506, 1, rule6),+	_charblock_(65507, 1, rule10),+	_charblock_(65508, 1, rule13),+	_charblock_(65509, 2, rule3),+	_charblock_(65512, 1, rule13),+	_charblock_(65513, 4, rule6),+	_charblock_(65517, 2, rule13),+	_charblock_(65529, 3, rule16),+	_charblock_(65532, 2, rule13),+	_charblock_(65536, 12, rule45),+	_charblock_(65549, 26, rule45),+	_charblock_(65576, 19, rule45),+	_charblock_(65596, 2, rule45),+	_charblock_(65599, 15, rule45),+	_charblock_(65616, 14, rule45),+	_charblock_(65664, 123, rule45),+	_charblock_(65792, 2, rule2),+	_charblock_(65794, 1, rule13),+	_charblock_(65799, 45, rule17),+	_charblock_(65847, 9, rule13),+	_charblock_(65856, 53, rule116),+	_charblock_(65909, 4, rule17),+	_charblock_(65913, 17, rule13),+	_charblock_(65930, 1, rule17),+	_charblock_(65936, 12, rule13),+	_charblock_(66000, 45, rule13),+	_charblock_(66045, 1, rule84),+	_charblock_(66176, 29, rule45),+	_charblock_(66208, 49, rule45),+	_charblock_(66304, 31, rule45),+	_charblock_(66336, 4, rule17),+	_charblock_(66352, 17, rule45),+	_charblock_(66369, 1, rule116),+	_charblock_(66370, 8, rule45),+	_charblock_(66378, 1, rule116),+	_charblock_(66432, 30, rule45),+	_charblock_(66463, 1, rule2),+	_charblock_(66464, 36, rule45),+	_charblock_(66504, 8, rule45),+	_charblock_(66512, 1, rule2),+	_charblock_(66513, 5, rule116),+	_charblock_(66560, 40, rule165),+	_charblock_(66600, 40, rule166),+	_charblock_(66640, 78, rule45),+	_charblock_(66720, 10, rule8),+	_charblock_(67584, 6, rule45),+	_charblock_(67592, 1, rule45),+	_charblock_(67594, 44, rule45),+	_charblock_(67639, 2, rule45),+	_charblock_(67644, 1, rule45),+	_charblock_(67647, 23, rule45),+	_charblock_(67671, 1, rule2),+	_charblock_(67672, 8, rule17),+	_charblock_(67840, 22, rule45),+	_charblock_(67862, 6, rule17),+	_charblock_(67871, 1, rule2),+	_charblock_(67872, 26, rule45),+	_charblock_(67903, 1, rule2),+	_charblock_(68096, 1, rule45),+	_charblock_(68097, 3, rule84),+	_charblock_(68101, 2, rule84),+	_charblock_(68108, 4, rule84),+	_charblock_(68112, 4, rule45),+	_charblock_(68117, 3, rule45),+	_charblock_(68121, 27, rule45),+	_charblock_(68152, 3, rule84),+	_charblock_(68159, 1, rule84),+	_charblock_(68160, 8, rule17),+	_charblock_(68176, 9, rule2),+	_charblock_(68192, 29, rule45),+	_charblock_(68221, 2, rule17),+	_charblock_(68223, 1, rule2),+	_charblock_(68352, 54, rule45),+	_charblock_(68409, 7, rule2),+	_charblock_(68416, 22, rule45),+	_charblock_(68440, 8, rule17),+	_charblock_(68448, 19, rule45),+	_charblock_(68472, 8, rule17),+	_charblock_(68608, 73, rule45),+	_charblock_(69216, 31, rule17),+	_charblock_(69632, 1, rule114),+	_charblock_(69633, 1, rule84),+	_charblock_(69634, 1, rule114),+	_charblock_(69635, 53, rule45),+	_charblock_(69688, 15, rule84),+	_charblock_(69703, 7, rule2),+	_charblock_(69714, 20, rule17),+	_charblock_(69734, 10, rule8),+	_charblock_(69760, 2, rule84),+	_charblock_(69762, 1, rule114),+	_charblock_(69763, 45, rule45),+	_charblock_(69808, 3, rule114),+	_charblock_(69811, 4, rule84),+	_charblock_(69815, 2, rule114),+	_charblock_(69817, 2, rule84),+	_charblock_(69819, 2, rule2),+	_charblock_(69821, 1, rule16),+	_charblock_(69822, 4, rule2),+	_charblock_(73728, 879, rule45),+	_charblock_(74752, 99, rule116),+	_charblock_(74864, 4, rule2),+	_charblock_(77824, 1071, rule45),+	_charblock_(92160, 569, rule45),+	_charblock_(110592, 2, rule45),+	_charblock_(118784, 246, rule13),+	_charblock_(119040, 39, rule13),+	_charblock_(119081, 60, rule13),+	_charblock_(119141, 2, rule114),+	_charblock_(119143, 3, rule84),+	_charblock_(119146, 3, rule13),+	_charblock_(119149, 6, rule114),+	_charblock_(119155, 8, rule16),+	_charblock_(119163, 8, rule84),+	_charblock_(119171, 2, rule13),+	_charblock_(119173, 7, rule84),+	_charblock_(119180, 30, rule13),+	_charblock_(119210, 4, rule84),+	_charblock_(119214, 48, rule13),+	_charblock_(119296, 66, rule13),+	_charblock_(119362, 3, rule84),+	_charblock_(119365, 1, rule13),+	_charblock_(119552, 87, rule13),+	_charblock_(119648, 18, rule17),+	_charblock_(119808, 26, rule98),+	_charblock_(119834, 26, rule14),+	_charblock_(119860, 26, rule98),+	_charblock_(119886, 7, rule14),+	_charblock_(119894, 18, rule14),+	_charblock_(119912, 26, rule98),+	_charblock_(119938, 26, rule14),+	_charblock_(119964, 1, rule98),+	_charblock_(119966, 2, rule98),+	_charblock_(119970, 1, rule98),+	_charblock_(119973, 2, rule98),+	_charblock_(119977, 4, rule98),+	_charblock_(119982, 8, rule98),+	_charblock_(119990, 4, rule14),+	_charblock_(119995, 1, rule14),+	_charblock_(119997, 7, rule14),+	_charblock_(120005, 11, rule14),+	_charblock_(120016, 26, rule98),+	_charblock_(120042, 26, rule14),+	_charblock_(120068, 2, rule98),+	_charblock_(120071, 4, rule98),+	_charblock_(120077, 8, rule98),+	_charblock_(120086, 7, rule98),+	_charblock_(120094, 26, rule14),+	_charblock_(120120, 2, rule98),+	_charblock_(120123, 4, rule98),+	_charblock_(120128, 5, rule98),+	_charblock_(120134, 1, rule98),+	_charblock_(120138, 7, rule98),+	_charblock_(120146, 26, rule14),+	_charblock_(120172, 26, rule98),+	_charblock_(120198, 26, rule14),+	_charblock_(120224, 26, rule98),+	_charblock_(120250, 26, rule14),+	_charblock_(120276, 26, rule98),+	_charblock_(120302, 26, rule14),+	_charblock_(120328, 26, rule98),+	_charblock_(120354, 26, rule14),+	_charblock_(120380, 26, rule98),+	_charblock_(120406, 26, rule14),+	_charblock_(120432, 26, rule98),+	_charblock_(120458, 28, rule14),+	_charblock_(120488, 25, rule98),+	_charblock_(120513, 1, rule6),+	_charblock_(120514, 25, rule14),+	_charblock_(120539, 1, rule6),+	_charblock_(120540, 6, rule14),+	_charblock_(120546, 25, rule98),+	_charblock_(120571, 1, rule6),+	_charblock_(120572, 25, rule14),+	_charblock_(120597, 1, rule6),+	_charblock_(120598, 6, rule14),+	_charblock_(120604, 25, rule98),+	_charblock_(120629, 1, rule6),+	_charblock_(120630, 25, rule14),+	_charblock_(120655, 1, rule6),+	_charblock_(120656, 6, rule14),+	_charblock_(120662, 25, rule98),+	_charblock_(120687, 1, rule6),+	_charblock_(120688, 25, rule14),+	_charblock_(120713, 1, rule6),+	_charblock_(120714, 6, rule14),+	_charblock_(120720, 25, rule98),+	_charblock_(120745, 1, rule6),+	_charblock_(120746, 25, rule14),+	_charblock_(120771, 1, rule6),+	_charblock_(120772, 6, rule14),+	_charblock_(120778, 1, rule98),+	_charblock_(120779, 1, rule14),+	_charblock_(120782, 50, rule8),+	_charblock_(126976, 44, rule13),+	_charblock_(127024, 100, rule13),+	_charblock_(127136, 15, rule13),+	_charblock_(127153, 14, rule13),+	_charblock_(127169, 15, rule13),+	_charblock_(127185, 15, rule13),+	_charblock_(127232, 11, rule17),+	_charblock_(127248, 31, rule13),+	_charblock_(127280, 58, rule13),+	_charblock_(127344, 43, rule13),+	_charblock_(127462, 29, rule13),+	_charblock_(127504, 43, rule13),+	_charblock_(127552, 9, rule13),+	_charblock_(127568, 2, rule13),+	_charblock_(127744, 33, rule13),+	_charblock_(127792, 6, rule13),+	_charblock_(127799, 70, rule13),+	_charblock_(127872, 20, rule13),+	_charblock_(127904, 37, rule13),+	_charblock_(127942, 5, rule13),+	_charblock_(127968, 17, rule13),+	_charblock_(128000, 63, rule13),+	_charblock_(128064, 1, rule13),+	_charblock_(128066, 182, rule13),+	_charblock_(128249, 4, rule13),+	_charblock_(128256, 62, rule13),+	_charblock_(128336, 24, rule13),+	_charblock_(128507, 5, rule13),+	_charblock_(128513, 16, rule13),+	_charblock_(128530, 3, rule13),+	_charblock_(128534, 1, rule13),+	_charblock_(128536, 1, rule13),+	_charblock_(128538, 1, rule13),+	_charblock_(128540, 3, rule13),+	_charblock_(128544, 6, rule13),+	_charblock_(128552, 4, rule13),+	_charblock_(128557, 1, rule13),+	_charblock_(128560, 4, rule13),+	_charblock_(128565, 12, rule13),+	_charblock_(128581, 11, rule13),+	_charblock_(128640, 70, rule13),+	_charblock_(128768, 116, rule13),+	_charblock_(131072, 42711, rule45),+	_charblock_(173824, 4149, rule45),+	_charblock_(177984, 222, rule45),+	_charblock_(194560, 542, rule45),+	_charblock_(917505, 1, rule16),+	_charblock_(917536, 96, rule16),+	_charblock_(917760, 240, rule84),+	_charblock_(983040, 65534, rule164),+	_charblock_(1048576, 65534, rule164)+];+var convchars = [+	_charblock_(65, 26, rule9),+	_charblock_(97, 26, rule12),+	_charblock_(181, 1, rule18),+	_charblock_(192, 23, rule9),+	_charblock_(216, 7, rule9),+	_charblock_(224, 23, rule12),+	_charblock_(248, 7, rule12),+	_charblock_(255, 1, rule20),+	_charblock_(256, 1, rule21),+	_charblock_(257, 1, rule22),+	_charblock_(258, 1, rule21),+	_charblock_(259, 1, rule22),+	_charblock_(260, 1, rule21),+	_charblock_(261, 1, rule22),+	_charblock_(262, 1, rule21),+	_charblock_(263, 1, rule22),+	_charblock_(264, 1, rule21),+	_charblock_(265, 1, rule22),+	_charblock_(266, 1, rule21),+	_charblock_(267, 1, rule22),+	_charblock_(268, 1, rule21),+	_charblock_(269, 1, rule22),+	_charblock_(270, 1, rule21),+	_charblock_(271, 1, rule22),+	_charblock_(272, 1, rule21),+	_charblock_(273, 1, rule22),+	_charblock_(274, 1, rule21),+	_charblock_(275, 1, rule22),+	_charblock_(276, 1, rule21),+	_charblock_(277, 1, rule22),+	_charblock_(278, 1, rule21),+	_charblock_(279, 1, rule22),+	_charblock_(280, 1, rule21),+	_charblock_(281, 1, rule22),+	_charblock_(282, 1, rule21),+	_charblock_(283, 1, rule22),+	_charblock_(284, 1, rule21),+	_charblock_(285, 1, rule22),+	_charblock_(286, 1, rule21),+	_charblock_(287, 1, rule22),+	_charblock_(288, 1, rule21),+	_charblock_(289, 1, rule22),+	_charblock_(290, 1, rule21),+	_charblock_(291, 1, rule22),+	_charblock_(292, 1, rule21),+	_charblock_(293, 1, rule22),+	_charblock_(294, 1, rule21),+	_charblock_(295, 1, rule22),+	_charblock_(296, 1, rule21),+	_charblock_(297, 1, rule22),+	_charblock_(298, 1, rule21),+	_charblock_(299, 1, rule22),+	_charblock_(300, 1, rule21),+	_charblock_(301, 1, rule22),+	_charblock_(302, 1, rule21),+	_charblock_(303, 1, rule22),+	_charblock_(304, 1, rule23),+	_charblock_(305, 1, rule24),+	_charblock_(306, 1, rule21),+	_charblock_(307, 1, rule22),+	_charblock_(308, 1, rule21),+	_charblock_(309, 1, rule22),+	_charblock_(310, 1, rule21),+	_charblock_(311, 1, rule22),+	_charblock_(313, 1, rule21),+	_charblock_(314, 1, rule22),+	_charblock_(315, 1, rule21),+	_charblock_(316, 1, rule22),+	_charblock_(317, 1, rule21),+	_charblock_(318, 1, rule22),+	_charblock_(319, 1, rule21),+	_charblock_(320, 1, rule22),+	_charblock_(321, 1, rule21),+	_charblock_(322, 1, rule22),+	_charblock_(323, 1, rule21),+	_charblock_(324, 1, rule22),+	_charblock_(325, 1, rule21),+	_charblock_(326, 1, rule22),+	_charblock_(327, 1, rule21),+	_charblock_(328, 1, rule22),+	_charblock_(330, 1, rule21),+	_charblock_(331, 1, rule22),+	_charblock_(332, 1, rule21),+	_charblock_(333, 1, rule22),+	_charblock_(334, 1, rule21),+	_charblock_(335, 1, rule22),+	_charblock_(336, 1, rule21),+	_charblock_(337, 1, rule22),+	_charblock_(338, 1, rule21),+	_charblock_(339, 1, rule22),+	_charblock_(340, 1, rule21),+	_charblock_(341, 1, rule22),+	_charblock_(342, 1, rule21),+	_charblock_(343, 1, rule22),+	_charblock_(344, 1, rule21),+	_charblock_(345, 1, rule22),+	_charblock_(346, 1, rule21),+	_charblock_(347, 1, rule22),+	_charblock_(348, 1, rule21),+	_charblock_(349, 1, rule22),+	_charblock_(350, 1, rule21),+	_charblock_(351, 1, rule22),+	_charblock_(352, 1, rule21),+	_charblock_(353, 1, rule22),+	_charblock_(354, 1, rule21),+	_charblock_(355, 1, rule22),+	_charblock_(356, 1, rule21),+	_charblock_(357, 1, rule22),+	_charblock_(358, 1, rule21),+	_charblock_(359, 1, rule22),+	_charblock_(360, 1, rule21),+	_charblock_(361, 1, rule22),+	_charblock_(362, 1, rule21),+	_charblock_(363, 1, rule22),+	_charblock_(364, 1, rule21),+	_charblock_(365, 1, rule22),+	_charblock_(366, 1, rule21),+	_charblock_(367, 1, rule22),+	_charblock_(368, 1, rule21),+	_charblock_(369, 1, rule22),+	_charblock_(370, 1, rule21),+	_charblock_(371, 1, rule22),+	_charblock_(372, 1, rule21),+	_charblock_(373, 1, rule22),+	_charblock_(374, 1, rule21),+	_charblock_(375, 1, rule22),+	_charblock_(376, 1, rule25),+	_charblock_(377, 1, rule21),+	_charblock_(378, 1, rule22),+	_charblock_(379, 1, rule21),+	_charblock_(380, 1, rule22),+	_charblock_(381, 1, rule21),+	_charblock_(382, 1, rule22),+	_charblock_(383, 1, rule26),+	_charblock_(384, 1, rule27),+	_charblock_(385, 1, rule28),+	_charblock_(386, 1, rule21),+	_charblock_(387, 1, rule22),+	_charblock_(388, 1, rule21),+	_charblock_(389, 1, rule22),+	_charblock_(390, 1, rule29),+	_charblock_(391, 1, rule21),+	_charblock_(392, 1, rule22),+	_charblock_(393, 2, rule30),+	_charblock_(395, 1, rule21),+	_charblock_(396, 1, rule22),+	_charblock_(398, 1, rule31),+	_charblock_(399, 1, rule32),+	_charblock_(400, 1, rule33),+	_charblock_(401, 1, rule21),+	_charblock_(402, 1, rule22),+	_charblock_(403, 1, rule30),+	_charblock_(404, 1, rule34),+	_charblock_(405, 1, rule35),+	_charblock_(406, 1, rule36),+	_charblock_(407, 1, rule37),+	_charblock_(408, 1, rule21),+	_charblock_(409, 1, rule22),+	_charblock_(410, 1, rule38),+	_charblock_(412, 1, rule36),+	_charblock_(413, 1, rule39),+	_charblock_(414, 1, rule40),+	_charblock_(415, 1, rule41),+	_charblock_(416, 1, rule21),+	_charblock_(417, 1, rule22),+	_charblock_(418, 1, rule21),+	_charblock_(419, 1, rule22),+	_charblock_(420, 1, rule21),+	_charblock_(421, 1, rule22),+	_charblock_(422, 1, rule42),+	_charblock_(423, 1, rule21),+	_charblock_(424, 1, rule22),+	_charblock_(425, 1, rule42),+	_charblock_(428, 1, rule21),+	_charblock_(429, 1, rule22),+	_charblock_(430, 1, rule42),+	_charblock_(431, 1, rule21),+	_charblock_(432, 1, rule22),+	_charblock_(433, 2, rule43),+	_charblock_(435, 1, rule21),+	_charblock_(436, 1, rule22),+	_charblock_(437, 1, rule21),+	_charblock_(438, 1, rule22),+	_charblock_(439, 1, rule44),+	_charblock_(440, 1, rule21),+	_charblock_(441, 1, rule22),+	_charblock_(444, 1, rule21),+	_charblock_(445, 1, rule22),+	_charblock_(447, 1, rule46),+	_charblock_(452, 1, rule47),+	_charblock_(453, 1, rule48),+	_charblock_(454, 1, rule49),+	_charblock_(455, 1, rule47),+	_charblock_(456, 1, rule48),+	_charblock_(457, 1, rule49),+	_charblock_(458, 1, rule47),+	_charblock_(459, 1, rule48),+	_charblock_(460, 1, rule49),+	_charblock_(461, 1, rule21),+	_charblock_(462, 1, rule22),+	_charblock_(463, 1, rule21),+	_charblock_(464, 1, rule22),+	_charblock_(465, 1, rule21),+	_charblock_(466, 1, rule22),+	_charblock_(467, 1, rule21),+	_charblock_(468, 1, rule22),+	_charblock_(469, 1, rule21),+	_charblock_(470, 1, rule22),+	_charblock_(471, 1, rule21),+	_charblock_(472, 1, rule22),+	_charblock_(473, 1, rule21),+	_charblock_(474, 1, rule22),+	_charblock_(475, 1, rule21),+	_charblock_(476, 1, rule22),+	_charblock_(477, 1, rule50),+	_charblock_(478, 1, rule21),+	_charblock_(479, 1, rule22),+	_charblock_(480, 1, rule21),+	_charblock_(481, 1, rule22),+	_charblock_(482, 1, rule21),+	_charblock_(483, 1, rule22),+	_charblock_(484, 1, rule21),+	_charblock_(485, 1, rule22),+	_charblock_(486, 1, rule21),+	_charblock_(487, 1, rule22),+	_charblock_(488, 1, rule21),+	_charblock_(489, 1, rule22),+	_charblock_(490, 1, rule21),+	_charblock_(491, 1, rule22),+	_charblock_(492, 1, rule21),+	_charblock_(493, 1, rule22),+	_charblock_(494, 1, rule21),+	_charblock_(495, 1, rule22),+	_charblock_(497, 1, rule47),+	_charblock_(498, 1, rule48),+	_charblock_(499, 1, rule49),+	_charblock_(500, 1, rule21),+	_charblock_(501, 1, rule22),+	_charblock_(502, 1, rule51),+	_charblock_(503, 1, rule52),+	_charblock_(504, 1, rule21),+	_charblock_(505, 1, rule22),+	_charblock_(506, 1, rule21),+	_charblock_(507, 1, rule22),+	_charblock_(508, 1, rule21),+	_charblock_(509, 1, rule22),+	_charblock_(510, 1, rule21),+	_charblock_(511, 1, rule22),+	_charblock_(512, 1, rule21),+	_charblock_(513, 1, rule22),+	_charblock_(514, 1, rule21),+	_charblock_(515, 1, rule22),+	_charblock_(516, 1, rule21),+	_charblock_(517, 1, rule22),+	_charblock_(518, 1, rule21),+	_charblock_(519, 1, rule22),+	_charblock_(520, 1, rule21),+	_charblock_(521, 1, rule22),+	_charblock_(522, 1, rule21),+	_charblock_(523, 1, rule22),+	_charblock_(524, 1, rule21),+	_charblock_(525, 1, rule22),+	_charblock_(526, 1, rule21),+	_charblock_(527, 1, rule22),+	_charblock_(528, 1, rule21),+	_charblock_(529, 1, rule22),+	_charblock_(530, 1, rule21),+	_charblock_(531, 1, rule22),+	_charblock_(532, 1, rule21),+	_charblock_(533, 1, rule22),+	_charblock_(534, 1, rule21),+	_charblock_(535, 1, rule22),+	_charblock_(536, 1, rule21),+	_charblock_(537, 1, rule22),+	_charblock_(538, 1, rule21),+	_charblock_(539, 1, rule22),+	_charblock_(540, 1, rule21),+	_charblock_(541, 1, rule22),+	_charblock_(542, 1, rule21),+	_charblock_(543, 1, rule22),+	_charblock_(544, 1, rule53),+	_charblock_(546, 1, rule21),+	_charblock_(547, 1, rule22),+	_charblock_(548, 1, rule21),+	_charblock_(549, 1, rule22),+	_charblock_(550, 1, rule21),+	_charblock_(551, 1, rule22),+	_charblock_(552, 1, rule21),+	_charblock_(553, 1, rule22),+	_charblock_(554, 1, rule21),+	_charblock_(555, 1, rule22),+	_charblock_(556, 1, rule21),+	_charblock_(557, 1, rule22),+	_charblock_(558, 1, rule21),+	_charblock_(559, 1, rule22),+	_charblock_(560, 1, rule21),+	_charblock_(561, 1, rule22),+	_charblock_(562, 1, rule21),+	_charblock_(563, 1, rule22),+	_charblock_(570, 1, rule54),+	_charblock_(571, 1, rule21),+	_charblock_(572, 1, rule22),+	_charblock_(573, 1, rule55),+	_charblock_(574, 1, rule56),+	_charblock_(575, 2, rule57),+	_charblock_(577, 1, rule21),+	_charblock_(578, 1, rule22),+	_charblock_(579, 1, rule58),+	_charblock_(580, 1, rule59),+	_charblock_(581, 1, rule60),+	_charblock_(582, 1, rule21),+	_charblock_(583, 1, rule22),+	_charblock_(584, 1, rule21),+	_charblock_(585, 1, rule22),+	_charblock_(586, 1, rule21),+	_charblock_(587, 1, rule22),+	_charblock_(588, 1, rule21),+	_charblock_(589, 1, rule22),+	_charblock_(590, 1, rule21),+	_charblock_(591, 1, rule22),+	_charblock_(592, 1, rule61),+	_charblock_(593, 1, rule62),+	_charblock_(594, 1, rule63),+	_charblock_(595, 1, rule64),+	_charblock_(596, 1, rule65),+	_charblock_(598, 2, rule66),+	_charblock_(601, 1, rule67),+	_charblock_(603, 1, rule68),+	_charblock_(608, 1, rule66),+	_charblock_(611, 1, rule69),+	_charblock_(613, 1, rule70),+	_charblock_(616, 1, rule71),+	_charblock_(617, 1, rule72),+	_charblock_(619, 1, rule73),+	_charblock_(623, 1, rule72),+	_charblock_(625, 1, rule74),+	_charblock_(626, 1, rule75),+	_charblock_(629, 1, rule76),+	_charblock_(637, 1, rule77),+	_charblock_(640, 1, rule78),+	_charblock_(643, 1, rule78),+	_charblock_(648, 1, rule78),+	_charblock_(649, 1, rule79),+	_charblock_(650, 2, rule80),+	_charblock_(652, 1, rule81),+	_charblock_(658, 1, rule82),+	_charblock_(837, 1, rule85),+	_charblock_(880, 1, rule21),+	_charblock_(881, 1, rule22),+	_charblock_(882, 1, rule21),+	_charblock_(883, 1, rule22),+	_charblock_(886, 1, rule21),+	_charblock_(887, 1, rule22),+	_charblock_(891, 3, rule40),+	_charblock_(902, 1, rule86),+	_charblock_(904, 3, rule87),+	_charblock_(908, 1, rule88),+	_charblock_(910, 2, rule89),+	_charblock_(913, 17, rule9),+	_charblock_(931, 9, rule9),+	_charblock_(940, 1, rule90),+	_charblock_(941, 3, rule91),+	_charblock_(945, 17, rule12),+	_charblock_(962, 1, rule92),+	_charblock_(963, 9, rule12),+	_charblock_(972, 1, rule93),+	_charblock_(973, 2, rule94),+	_charblock_(975, 1, rule95),+	_charblock_(976, 1, rule96),+	_charblock_(977, 1, rule97),+	_charblock_(981, 1, rule99),+	_charblock_(982, 1, rule100),+	_charblock_(983, 1, rule101),+	_charblock_(984, 1, rule21),+	_charblock_(985, 1, rule22),+	_charblock_(986, 1, rule21),+	_charblock_(987, 1, rule22),+	_charblock_(988, 1, rule21),+	_charblock_(989, 1, rule22),+	_charblock_(990, 1, rule21),+	_charblock_(991, 1, rule22),+	_charblock_(992, 1, rule21),+	_charblock_(993, 1, rule22),+	_charblock_(994, 1, rule21),+	_charblock_(995, 1, rule22),+	_charblock_(996, 1, rule21),+	_charblock_(997, 1, rule22),+	_charblock_(998, 1, rule21),+	_charblock_(999, 1, rule22),+	_charblock_(1000, 1, rule21),+	_charblock_(1001, 1, rule22),+	_charblock_(1002, 1, rule21),+	_charblock_(1003, 1, rule22),+	_charblock_(1004, 1, rule21),+	_charblock_(1005, 1, rule22),+	_charblock_(1006, 1, rule21),+	_charblock_(1007, 1, rule22),+	_charblock_(1008, 1, rule102),+	_charblock_(1009, 1, rule103),+	_charblock_(1010, 1, rule104),+	_charblock_(1012, 1, rule105),+	_charblock_(1013, 1, rule106),+	_charblock_(1015, 1, rule21),+	_charblock_(1016, 1, rule22),+	_charblock_(1017, 1, rule107),+	_charblock_(1018, 1, rule21),+	_charblock_(1019, 1, rule22),+	_charblock_(1021, 3, rule53),+	_charblock_(1024, 16, rule108),+	_charblock_(1040, 32, rule9),+	_charblock_(1072, 32, rule12),+	_charblock_(1104, 16, rule103),+	_charblock_(1120, 1, rule21),+	_charblock_(1121, 1, rule22),+	_charblock_(1122, 1, rule21),+	_charblock_(1123, 1, rule22),+	_charblock_(1124, 1, rule21),+	_charblock_(1125, 1, rule22),+	_charblock_(1126, 1, rule21),+	_charblock_(1127, 1, rule22),+	_charblock_(1128, 1, rule21),+	_charblock_(1129, 1, rule22),+	_charblock_(1130, 1, rule21),+	_charblock_(1131, 1, rule22),+	_charblock_(1132, 1, rule21),+	_charblock_(1133, 1, rule22),+	_charblock_(1134, 1, rule21),+	_charblock_(1135, 1, rule22),+	_charblock_(1136, 1, rule21),+	_charblock_(1137, 1, rule22),+	_charblock_(1138, 1, rule21),+	_charblock_(1139, 1, rule22),+	_charblock_(1140, 1, rule21),+	_charblock_(1141, 1, rule22),+	_charblock_(1142, 1, rule21),+	_charblock_(1143, 1, rule22),+	_charblock_(1144, 1, rule21),+	_charblock_(1145, 1, rule22),+	_charblock_(1146, 1, rule21),+	_charblock_(1147, 1, rule22),+	_charblock_(1148, 1, rule21),+	_charblock_(1149, 1, rule22),+	_charblock_(1150, 1, rule21),+	_charblock_(1151, 1, rule22),+	_charblock_(1152, 1, rule21),+	_charblock_(1153, 1, rule22),+	_charblock_(1162, 1, rule21),+	_charblock_(1163, 1, rule22),+	_charblock_(1164, 1, rule21),+	_charblock_(1165, 1, rule22),+	_charblock_(1166, 1, rule21),+	_charblock_(1167, 1, rule22),+	_charblock_(1168, 1, rule21),+	_charblock_(1169, 1, rule22),+	_charblock_(1170, 1, rule21),+	_charblock_(1171, 1, rule22),+	_charblock_(1172, 1, rule21),+	_charblock_(1173, 1, rule22),+	_charblock_(1174, 1, rule21),+	_charblock_(1175, 1, rule22),+	_charblock_(1176, 1, rule21),+	_charblock_(1177, 1, rule22),+	_charblock_(1178, 1, rule21),+	_charblock_(1179, 1, rule22),+	_charblock_(1180, 1, rule21),+	_charblock_(1181, 1, rule22),+	_charblock_(1182, 1, rule21),+	_charblock_(1183, 1, rule22),+	_charblock_(1184, 1, rule21),+	_charblock_(1185, 1, rule22),+	_charblock_(1186, 1, rule21),+	_charblock_(1187, 1, rule22),+	_charblock_(1188, 1, rule21),+	_charblock_(1189, 1, rule22),+	_charblock_(1190, 1, rule21),+	_charblock_(1191, 1, rule22),+	_charblock_(1192, 1, rule21),+	_charblock_(1193, 1, rule22),+	_charblock_(1194, 1, rule21),+	_charblock_(1195, 1, rule22),+	_charblock_(1196, 1, rule21),+	_charblock_(1197, 1, rule22),+	_charblock_(1198, 1, rule21),+	_charblock_(1199, 1, rule22),+	_charblock_(1200, 1, rule21),+	_charblock_(1201, 1, rule22),+	_charblock_(1202, 1, rule21),+	_charblock_(1203, 1, rule22),+	_charblock_(1204, 1, rule21),+	_charblock_(1205, 1, rule22),+	_charblock_(1206, 1, rule21),+	_charblock_(1207, 1, rule22),+	_charblock_(1208, 1, rule21),+	_charblock_(1209, 1, rule22),+	_charblock_(1210, 1, rule21),+	_charblock_(1211, 1, rule22),+	_charblock_(1212, 1, rule21),+	_charblock_(1213, 1, rule22),+	_charblock_(1214, 1, rule21),+	_charblock_(1215, 1, rule22),+	_charblock_(1216, 1, rule110),+	_charblock_(1217, 1, rule21),+	_charblock_(1218, 1, rule22),+	_charblock_(1219, 1, rule21),+	_charblock_(1220, 1, rule22),+	_charblock_(1221, 1, rule21),+	_charblock_(1222, 1, rule22),+	_charblock_(1223, 1, rule21),+	_charblock_(1224, 1, rule22),+	_charblock_(1225, 1, rule21),+	_charblock_(1226, 1, rule22),+	_charblock_(1227, 1, rule21),+	_charblock_(1228, 1, rule22),+	_charblock_(1229, 1, rule21),+	_charblock_(1230, 1, rule22),+	_charblock_(1231, 1, rule111),+	_charblock_(1232, 1, rule21),+	_charblock_(1233, 1, rule22),+	_charblock_(1234, 1, rule21),+	_charblock_(1235, 1, rule22),+	_charblock_(1236, 1, rule21),+	_charblock_(1237, 1, rule22),+	_charblock_(1238, 1, rule21),+	_charblock_(1239, 1, rule22),+	_charblock_(1240, 1, rule21),+	_charblock_(1241, 1, rule22),+	_charblock_(1242, 1, rule21),+	_charblock_(1243, 1, rule22),+	_charblock_(1244, 1, rule21),+	_charblock_(1245, 1, rule22),+	_charblock_(1246, 1, rule21),+	_charblock_(1247, 1, rule22),+	_charblock_(1248, 1, rule21),+	_charblock_(1249, 1, rule22),+	_charblock_(1250, 1, rule21),+	_charblock_(1251, 1, rule22),+	_charblock_(1252, 1, rule21),+	_charblock_(1253, 1, rule22),+	_charblock_(1254, 1, rule21),+	_charblock_(1255, 1, rule22),+	_charblock_(1256, 1, rule21),+	_charblock_(1257, 1, rule22),+	_charblock_(1258, 1, rule21),+	_charblock_(1259, 1, rule22),+	_charblock_(1260, 1, rule21),+	_charblock_(1261, 1, rule22),+	_charblock_(1262, 1, rule21),+	_charblock_(1263, 1, rule22),+	_charblock_(1264, 1, rule21),+	_charblock_(1265, 1, rule22),+	_charblock_(1266, 1, rule21),+	_charblock_(1267, 1, rule22),+	_charblock_(1268, 1, rule21),+	_charblock_(1269, 1, rule22),+	_charblock_(1270, 1, rule21),+	_charblock_(1271, 1, rule22),+	_charblock_(1272, 1, rule21),+	_charblock_(1273, 1, rule22),+	_charblock_(1274, 1, rule21),+	_charblock_(1275, 1, rule22),+	_charblock_(1276, 1, rule21),+	_charblock_(1277, 1, rule22),+	_charblock_(1278, 1, rule21),+	_charblock_(1279, 1, rule22),+	_charblock_(1280, 1, rule21),+	_charblock_(1281, 1, rule22),+	_charblock_(1282, 1, rule21),+	_charblock_(1283, 1, rule22),+	_charblock_(1284, 1, rule21),+	_charblock_(1285, 1, rule22),+	_charblock_(1286, 1, rule21),+	_charblock_(1287, 1, rule22),+	_charblock_(1288, 1, rule21),+	_charblock_(1289, 1, rule22),+	_charblock_(1290, 1, rule21),+	_charblock_(1291, 1, rule22),+	_charblock_(1292, 1, rule21),+	_charblock_(1293, 1, rule22),+	_charblock_(1294, 1, rule21),+	_charblock_(1295, 1, rule22),+	_charblock_(1296, 1, rule21),+	_charblock_(1297, 1, rule22),+	_charblock_(1298, 1, rule21),+	_charblock_(1299, 1, rule22),+	_charblock_(1300, 1, rule21),+	_charblock_(1301, 1, rule22),+	_charblock_(1302, 1, rule21),+	_charblock_(1303, 1, rule22),+	_charblock_(1304, 1, rule21),+	_charblock_(1305, 1, rule22),+	_charblock_(1306, 1, rule21),+	_charblock_(1307, 1, rule22),+	_charblock_(1308, 1, rule21),+	_charblock_(1309, 1, rule22),+	_charblock_(1310, 1, rule21),+	_charblock_(1311, 1, rule22),+	_charblock_(1312, 1, rule21),+	_charblock_(1313, 1, rule22),+	_charblock_(1314, 1, rule21),+	_charblock_(1315, 1, rule22),+	_charblock_(1316, 1, rule21),+	_charblock_(1317, 1, rule22),+	_charblock_(1318, 1, rule21),+	_charblock_(1319, 1, rule22),+	_charblock_(1329, 38, rule112),+	_charblock_(1377, 38, rule113),+	_charblock_(4256, 38, rule115),+	_charblock_(7545, 1, rule117),+	_charblock_(7549, 1, rule118),+	_charblock_(7680, 1, rule21),+	_charblock_(7681, 1, rule22),+	_charblock_(7682, 1, rule21),+	_charblock_(7683, 1, rule22),+	_charblock_(7684, 1, rule21),+	_charblock_(7685, 1, rule22),+	_charblock_(7686, 1, rule21),+	_charblock_(7687, 1, rule22),+	_charblock_(7688, 1, rule21),+	_charblock_(7689, 1, rule22),+	_charblock_(7690, 1, rule21),+	_charblock_(7691, 1, rule22),+	_charblock_(7692, 1, rule21),+	_charblock_(7693, 1, rule22),+	_charblock_(7694, 1, rule21),+	_charblock_(7695, 1, rule22),+	_charblock_(7696, 1, rule21),+	_charblock_(7697, 1, rule22),+	_charblock_(7698, 1, rule21),+	_charblock_(7699, 1, rule22),+	_charblock_(7700, 1, rule21),+	_charblock_(7701, 1, rule22),+	_charblock_(7702, 1, rule21),+	_charblock_(7703, 1, rule22),+	_charblock_(7704, 1, rule21),+	_charblock_(7705, 1, rule22),+	_charblock_(7706, 1, rule21),+	_charblock_(7707, 1, rule22),+	_charblock_(7708, 1, rule21),+	_charblock_(7709, 1, rule22),+	_charblock_(7710, 1, rule21),+	_charblock_(7711, 1, rule22),+	_charblock_(7712, 1, rule21),+	_charblock_(7713, 1, rule22),+	_charblock_(7714, 1, rule21),+	_charblock_(7715, 1, rule22),+	_charblock_(7716, 1, rule21),+	_charblock_(7717, 1, rule22),+	_charblock_(7718, 1, rule21),+	_charblock_(7719, 1, rule22),+	_charblock_(7720, 1, rule21),+	_charblock_(7721, 1, rule22),+	_charblock_(7722, 1, rule21),+	_charblock_(7723, 1, rule22),+	_charblock_(7724, 1, rule21),+	_charblock_(7725, 1, rule22),+	_charblock_(7726, 1, rule21),+	_charblock_(7727, 1, rule22),+	_charblock_(7728, 1, rule21),+	_charblock_(7729, 1, rule22),+	_charblock_(7730, 1, rule21),+	_charblock_(7731, 1, rule22),+	_charblock_(7732, 1, rule21),+	_charblock_(7733, 1, rule22),+	_charblock_(7734, 1, rule21),+	_charblock_(7735, 1, rule22),+	_charblock_(7736, 1, rule21),+	_charblock_(7737, 1, rule22),+	_charblock_(7738, 1, rule21),+	_charblock_(7739, 1, rule22),+	_charblock_(7740, 1, rule21),+	_charblock_(7741, 1, rule22),+	_charblock_(7742, 1, rule21),+	_charblock_(7743, 1, rule22),+	_charblock_(7744, 1, rule21),+	_charblock_(7745, 1, rule22),+	_charblock_(7746, 1, rule21),+	_charblock_(7747, 1, rule22),+	_charblock_(7748, 1, rule21),+	_charblock_(7749, 1, rule22),+	_charblock_(7750, 1, rule21),+	_charblock_(7751, 1, rule22),+	_charblock_(7752, 1, rule21),+	_charblock_(7753, 1, rule22),+	_charblock_(7754, 1, rule21),+	_charblock_(7755, 1, rule22),+	_charblock_(7756, 1, rule21),+	_charblock_(7757, 1, rule22),+	_charblock_(7758, 1, rule21),+	_charblock_(7759, 1, rule22),+	_charblock_(7760, 1, rule21),+	_charblock_(7761, 1, rule22),+	_charblock_(7762, 1, rule21),+	_charblock_(7763, 1, rule22),+	_charblock_(7764, 1, rule21),+	_charblock_(7765, 1, rule22),+	_charblock_(7766, 1, rule21),+	_charblock_(7767, 1, rule22),+	_charblock_(7768, 1, rule21),+	_charblock_(7769, 1, rule22),+	_charblock_(7770, 1, rule21),+	_charblock_(7771, 1, rule22),+	_charblock_(7772, 1, rule21),+	_charblock_(7773, 1, rule22),+	_charblock_(7774, 1, rule21),+	_charblock_(7775, 1, rule22),+	_charblock_(7776, 1, rule21),+	_charblock_(7777, 1, rule22),+	_charblock_(7778, 1, rule21),+	_charblock_(7779, 1, rule22),+	_charblock_(7780, 1, rule21),+	_charblock_(7781, 1, rule22),+	_charblock_(7782, 1, rule21),+	_charblock_(7783, 1, rule22),+	_charblock_(7784, 1, rule21),+	_charblock_(7785, 1, rule22),+	_charblock_(7786, 1, rule21),+	_charblock_(7787, 1, rule22),+	_charblock_(7788, 1, rule21),+	_charblock_(7789, 1, rule22),+	_charblock_(7790, 1, rule21),+	_charblock_(7791, 1, rule22),+	_charblock_(7792, 1, rule21),+	_charblock_(7793, 1, rule22),+	_charblock_(7794, 1, rule21),+	_charblock_(7795, 1, rule22),+	_charblock_(7796, 1, rule21),+	_charblock_(7797, 1, rule22),+	_charblock_(7798, 1, rule21),+	_charblock_(7799, 1, rule22),+	_charblock_(7800, 1, rule21),+	_charblock_(7801, 1, rule22),+	_charblock_(7802, 1, rule21),+	_charblock_(7803, 1, rule22),+	_charblock_(7804, 1, rule21),+	_charblock_(7805, 1, rule22),+	_charblock_(7806, 1, rule21),+	_charblock_(7807, 1, rule22),+	_charblock_(7808, 1, rule21),+	_charblock_(7809, 1, rule22),+	_charblock_(7810, 1, rule21),+	_charblock_(7811, 1, rule22),+	_charblock_(7812, 1, rule21),+	_charblock_(7813, 1, rule22),+	_charblock_(7814, 1, rule21),+	_charblock_(7815, 1, rule22),+	_charblock_(7816, 1, rule21),+	_charblock_(7817, 1, rule22),+	_charblock_(7818, 1, rule21),+	_charblock_(7819, 1, rule22),+	_charblock_(7820, 1, rule21),+	_charblock_(7821, 1, rule22),+	_charblock_(7822, 1, rule21),+	_charblock_(7823, 1, rule22),+	_charblock_(7824, 1, rule21),+	_charblock_(7825, 1, rule22),+	_charblock_(7826, 1, rule21),+	_charblock_(7827, 1, rule22),+	_charblock_(7828, 1, rule21),+	_charblock_(7829, 1, rule22),+	_charblock_(7835, 1, rule119),+	_charblock_(7838, 1, rule120),+	_charblock_(7840, 1, rule21),+	_charblock_(7841, 1, rule22),+	_charblock_(7842, 1, rule21),+	_charblock_(7843, 1, rule22),+	_charblock_(7844, 1, rule21),+	_charblock_(7845, 1, rule22),+	_charblock_(7846, 1, rule21),+	_charblock_(7847, 1, rule22),+	_charblock_(7848, 1, rule21),+	_charblock_(7849, 1, rule22),+	_charblock_(7850, 1, rule21),+	_charblock_(7851, 1, rule22),+	_charblock_(7852, 1, rule21),+	_charblock_(7853, 1, rule22),+	_charblock_(7854, 1, rule21),+	_charblock_(7855, 1, rule22),+	_charblock_(7856, 1, rule21),+	_charblock_(7857, 1, rule22),+	_charblock_(7858, 1, rule21),+	_charblock_(7859, 1, rule22),+	_charblock_(7860, 1, rule21),+	_charblock_(7861, 1, rule22),+	_charblock_(7862, 1, rule21),+	_charblock_(7863, 1, rule22),+	_charblock_(7864, 1, rule21),+	_charblock_(7865, 1, rule22),+	_charblock_(7866, 1, rule21),+	_charblock_(7867, 1, rule22),+	_charblock_(7868, 1, rule21),+	_charblock_(7869, 1, rule22),+	_charblock_(7870, 1, rule21),+	_charblock_(7871, 1, rule22),+	_charblock_(7872, 1, rule21),+	_charblock_(7873, 1, rule22),+	_charblock_(7874, 1, rule21),+	_charblock_(7875, 1, rule22),+	_charblock_(7876, 1, rule21),+	_charblock_(7877, 1, rule22),+	_charblock_(7878, 1, rule21),+	_charblock_(7879, 1, rule22),+	_charblock_(7880, 1, rule21),+	_charblock_(7881, 1, rule22),+	_charblock_(7882, 1, rule21),+	_charblock_(7883, 1, rule22),+	_charblock_(7884, 1, rule21),+	_charblock_(7885, 1, rule22),+	_charblock_(7886, 1, rule21),+	_charblock_(7887, 1, rule22),+	_charblock_(7888, 1, rule21),+	_charblock_(7889, 1, rule22),+	_charblock_(7890, 1, rule21),+	_charblock_(7891, 1, rule22),+	_charblock_(7892, 1, rule21),+	_charblock_(7893, 1, rule22),+	_charblock_(7894, 1, rule21),+	_charblock_(7895, 1, rule22),+	_charblock_(7896, 1, rule21),+	_charblock_(7897, 1, rule22),+	_charblock_(7898, 1, rule21),+	_charblock_(7899, 1, rule22),+	_charblock_(7900, 1, rule21),+	_charblock_(7901, 1, rule22),+	_charblock_(7902, 1, rule21),+	_charblock_(7903, 1, rule22),+	_charblock_(7904, 1, rule21),+	_charblock_(7905, 1, rule22),+	_charblock_(7906, 1, rule21),+	_charblock_(7907, 1, rule22),+	_charblock_(7908, 1, rule21),+	_charblock_(7909, 1, rule22),+	_charblock_(7910, 1, rule21),+	_charblock_(7911, 1, rule22),+	_charblock_(7912, 1, rule21),+	_charblock_(7913, 1, rule22),+	_charblock_(7914, 1, rule21),+	_charblock_(7915, 1, rule22),+	_charblock_(7916, 1, rule21),+	_charblock_(7917, 1, rule22),+	_charblock_(7918, 1, rule21),+	_charblock_(7919, 1, rule22),+	_charblock_(7920, 1, rule21),+	_charblock_(7921, 1, rule22),+	_charblock_(7922, 1, rule21),+	_charblock_(7923, 1, rule22),+	_charblock_(7924, 1, rule21),+	_charblock_(7925, 1, rule22),+	_charblock_(7926, 1, rule21),+	_charblock_(7927, 1, rule22),+	_charblock_(7928, 1, rule21),+	_charblock_(7929, 1, rule22),+	_charblock_(7930, 1, rule21),+	_charblock_(7931, 1, rule22),+	_charblock_(7932, 1, rule21),+	_charblock_(7933, 1, rule22),+	_charblock_(7934, 1, rule21),+	_charblock_(7935, 1, rule22),+	_charblock_(7936, 8, rule121),+	_charblock_(7944, 8, rule122),+	_charblock_(7952, 6, rule121),+	_charblock_(7960, 6, rule122),+	_charblock_(7968, 8, rule121),+	_charblock_(7976, 8, rule122),+	_charblock_(7984, 8, rule121),+	_charblock_(7992, 8, rule122),+	_charblock_(8000, 6, rule121),+	_charblock_(8008, 6, rule122),+	_charblock_(8017, 1, rule121),+	_charblock_(8019, 1, rule121),+	_charblock_(8021, 1, rule121),+	_charblock_(8023, 1, rule121),+	_charblock_(8025, 1, rule122),+	_charblock_(8027, 1, rule122),+	_charblock_(8029, 1, rule122),+	_charblock_(8031, 1, rule122),+	_charblock_(8032, 8, rule121),+	_charblock_(8040, 8, rule122),+	_charblock_(8048, 2, rule123),+	_charblock_(8050, 4, rule124),+	_charblock_(8054, 2, rule125),+	_charblock_(8056, 2, rule126),+	_charblock_(8058, 2, rule127),+	_charblock_(8060, 2, rule128),+	_charblock_(8064, 8, rule121),+	_charblock_(8072, 8, rule129),+	_charblock_(8080, 8, rule121),+	_charblock_(8088, 8, rule129),+	_charblock_(8096, 8, rule121),+	_charblock_(8104, 8, rule129),+	_charblock_(8112, 2, rule121),+	_charblock_(8115, 1, rule130),+	_charblock_(8120, 2, rule122),+	_charblock_(8122, 2, rule131),+	_charblock_(8124, 1, rule132),+	_charblock_(8126, 1, rule133),+	_charblock_(8131, 1, rule130),+	_charblock_(8136, 4, rule134),+	_charblock_(8140, 1, rule132),+	_charblock_(8144, 2, rule121),+	_charblock_(8152, 2, rule122),+	_charblock_(8154, 2, rule135),+	_charblock_(8160, 2, rule121),+	_charblock_(8165, 1, rule104),+	_charblock_(8168, 2, rule122),+	_charblock_(8170, 2, rule136),+	_charblock_(8172, 1, rule107),+	_charblock_(8179, 1, rule130),+	_charblock_(8184, 2, rule137),+	_charblock_(8186, 2, rule138),+	_charblock_(8188, 1, rule132),+	_charblock_(8486, 1, rule141),+	_charblock_(8490, 1, rule142),+	_charblock_(8491, 1, rule143),+	_charblock_(8498, 1, rule144),+	_charblock_(8526, 1, rule145),+	_charblock_(8544, 16, rule146),+	_charblock_(8560, 16, rule147),+	_charblock_(8579, 1, rule21),+	_charblock_(8580, 1, rule22),+	_charblock_(9398, 26, rule148),+	_charblock_(9424, 26, rule149),+	_charblock_(11264, 47, rule112),+	_charblock_(11312, 47, rule113),+	_charblock_(11360, 1, rule21),+	_charblock_(11361, 1, rule22),+	_charblock_(11362, 1, rule150),+	_charblock_(11363, 1, rule151),+	_charblock_(11364, 1, rule152),+	_charblock_(11365, 1, rule153),+	_charblock_(11366, 1, rule154),+	_charblock_(11367, 1, rule21),+	_charblock_(11368, 1, rule22),+	_charblock_(11369, 1, rule21),+	_charblock_(11370, 1, rule22),+	_charblock_(11371, 1, rule21),+	_charblock_(11372, 1, rule22),+	_charblock_(11373, 1, rule155),+	_charblock_(11374, 1, rule156),+	_charblock_(11375, 1, rule157),+	_charblock_(11376, 1, rule158),+	_charblock_(11378, 1, rule21),+	_charblock_(11379, 1, rule22),+	_charblock_(11381, 1, rule21),+	_charblock_(11382, 1, rule22),+	_charblock_(11390, 2, rule159),+	_charblock_(11392, 1, rule21),+	_charblock_(11393, 1, rule22),+	_charblock_(11394, 1, rule21),+	_charblock_(11395, 1, rule22),+	_charblock_(11396, 1, rule21),+	_charblock_(11397, 1, rule22),+	_charblock_(11398, 1, rule21),+	_charblock_(11399, 1, rule22),+	_charblock_(11400, 1, rule21),+	_charblock_(11401, 1, rule22),+	_charblock_(11402, 1, rule21),+	_charblock_(11403, 1, rule22),+	_charblock_(11404, 1, rule21),+	_charblock_(11405, 1, rule22),+	_charblock_(11406, 1, rule21),+	_charblock_(11407, 1, rule22),+	_charblock_(11408, 1, rule21),+	_charblock_(11409, 1, rule22),+	_charblock_(11410, 1, rule21),+	_charblock_(11411, 1, rule22),+	_charblock_(11412, 1, rule21),+	_charblock_(11413, 1, rule22),+	_charblock_(11414, 1, rule21),+	_charblock_(11415, 1, rule22),+	_charblock_(11416, 1, rule21),+	_charblock_(11417, 1, rule22),+	_charblock_(11418, 1, rule21),+	_charblock_(11419, 1, rule22),+	_charblock_(11420, 1, rule21),+	_charblock_(11421, 1, rule22),+	_charblock_(11422, 1, rule21),+	_charblock_(11423, 1, rule22),+	_charblock_(11424, 1, rule21),+	_charblock_(11425, 1, rule22),+	_charblock_(11426, 1, rule21),+	_charblock_(11427, 1, rule22),+	_charblock_(11428, 1, rule21),+	_charblock_(11429, 1, rule22),+	_charblock_(11430, 1, rule21),+	_charblock_(11431, 1, rule22),+	_charblock_(11432, 1, rule21),+	_charblock_(11433, 1, rule22),+	_charblock_(11434, 1, rule21),+	_charblock_(11435, 1, rule22),+	_charblock_(11436, 1, rule21),+	_charblock_(11437, 1, rule22),+	_charblock_(11438, 1, rule21),+	_charblock_(11439, 1, rule22),+	_charblock_(11440, 1, rule21),+	_charblock_(11441, 1, rule22),+	_charblock_(11442, 1, rule21),+	_charblock_(11443, 1, rule22),+	_charblock_(11444, 1, rule21),+	_charblock_(11445, 1, rule22),+	_charblock_(11446, 1, rule21),+	_charblock_(11447, 1, rule22),+	_charblock_(11448, 1, rule21),+	_charblock_(11449, 1, rule22),+	_charblock_(11450, 1, rule21),+	_charblock_(11451, 1, rule22),+	_charblock_(11452, 1, rule21),+	_charblock_(11453, 1, rule22),+	_charblock_(11454, 1, rule21),+	_charblock_(11455, 1, rule22),+	_charblock_(11456, 1, rule21),+	_charblock_(11457, 1, rule22),+	_charblock_(11458, 1, rule21),+	_charblock_(11459, 1, rule22),+	_charblock_(11460, 1, rule21),+	_charblock_(11461, 1, rule22),+	_charblock_(11462, 1, rule21),+	_charblock_(11463, 1, rule22),+	_charblock_(11464, 1, rule21),+	_charblock_(11465, 1, rule22),+	_charblock_(11466, 1, rule21),+	_charblock_(11467, 1, rule22),+	_charblock_(11468, 1, rule21),+	_charblock_(11469, 1, rule22),+	_charblock_(11470, 1, rule21),+	_charblock_(11471, 1, rule22),+	_charblock_(11472, 1, rule21),+	_charblock_(11473, 1, rule22),+	_charblock_(11474, 1, rule21),+	_charblock_(11475, 1, rule22),+	_charblock_(11476, 1, rule21),+	_charblock_(11477, 1, rule22),+	_charblock_(11478, 1, rule21),+	_charblock_(11479, 1, rule22),+	_charblock_(11480, 1, rule21),+	_charblock_(11481, 1, rule22),+	_charblock_(11482, 1, rule21),+	_charblock_(11483, 1, rule22),+	_charblock_(11484, 1, rule21),+	_charblock_(11485, 1, rule22),+	_charblock_(11486, 1, rule21),+	_charblock_(11487, 1, rule22),+	_charblock_(11488, 1, rule21),+	_charblock_(11489, 1, rule22),+	_charblock_(11490, 1, rule21),+	_charblock_(11491, 1, rule22),+	_charblock_(11499, 1, rule21),+	_charblock_(11500, 1, rule22),+	_charblock_(11501, 1, rule21),+	_charblock_(11502, 1, rule22),+	_charblock_(11520, 38, rule160),+	_charblock_(42560, 1, rule21),+	_charblock_(42561, 1, rule22),+	_charblock_(42562, 1, rule21),+	_charblock_(42563, 1, rule22),+	_charblock_(42564, 1, rule21),+	_charblock_(42565, 1, rule22),+	_charblock_(42566, 1, rule21),+	_charblock_(42567, 1, rule22),+	_charblock_(42568, 1, rule21),+	_charblock_(42569, 1, rule22),+	_charblock_(42570, 1, rule21),+	_charblock_(42571, 1, rule22),+	_charblock_(42572, 1, rule21),+	_charblock_(42573, 1, rule22),+	_charblock_(42574, 1, rule21),+	_charblock_(42575, 1, rule22),+	_charblock_(42576, 1, rule21),+	_charblock_(42577, 1, rule22),+	_charblock_(42578, 1, rule21),+	_charblock_(42579, 1, rule22),+	_charblock_(42580, 1, rule21),+	_charblock_(42581, 1, rule22),+	_charblock_(42582, 1, rule21),+	_charblock_(42583, 1, rule22),+	_charblock_(42584, 1, rule21),+	_charblock_(42585, 1, rule22),+	_charblock_(42586, 1, rule21),+	_charblock_(42587, 1, rule22),+	_charblock_(42588, 1, rule21),+	_charblock_(42589, 1, rule22),+	_charblock_(42590, 1, rule21),+	_charblock_(42591, 1, rule22),+	_charblock_(42592, 1, rule21),+	_charblock_(42593, 1, rule22),+	_charblock_(42594, 1, rule21),+	_charblock_(42595, 1, rule22),+	_charblock_(42596, 1, rule21),+	_charblock_(42597, 1, rule22),+	_charblock_(42598, 1, rule21),+	_charblock_(42599, 1, rule22),+	_charblock_(42600, 1, rule21),+	_charblock_(42601, 1, rule22),+	_charblock_(42602, 1, rule21),+	_charblock_(42603, 1, rule22),+	_charblock_(42604, 1, rule21),+	_charblock_(42605, 1, rule22),+	_charblock_(42624, 1, rule21),+	_charblock_(42625, 1, rule22),+	_charblock_(42626, 1, rule21),+	_charblock_(42627, 1, rule22),+	_charblock_(42628, 1, rule21),+	_charblock_(42629, 1, rule22),+	_charblock_(42630, 1, rule21),+	_charblock_(42631, 1, rule22),+	_charblock_(42632, 1, rule21),+	_charblock_(42633, 1, rule22),+	_charblock_(42634, 1, rule21),+	_charblock_(42635, 1, rule22),+	_charblock_(42636, 1, rule21),+	_charblock_(42637, 1, rule22),+	_charblock_(42638, 1, rule21),+	_charblock_(42639, 1, rule22),+	_charblock_(42640, 1, rule21),+	_charblock_(42641, 1, rule22),+	_charblock_(42642, 1, rule21),+	_charblock_(42643, 1, rule22),+	_charblock_(42644, 1, rule21),+	_charblock_(42645, 1, rule22),+	_charblock_(42646, 1, rule21),+	_charblock_(42647, 1, rule22),+	_charblock_(42786, 1, rule21),+	_charblock_(42787, 1, rule22),+	_charblock_(42788, 1, rule21),+	_charblock_(42789, 1, rule22),+	_charblock_(42790, 1, rule21),+	_charblock_(42791, 1, rule22),+	_charblock_(42792, 1, rule21),+	_charblock_(42793, 1, rule22),+	_charblock_(42794, 1, rule21),+	_charblock_(42795, 1, rule22),+	_charblock_(42796, 1, rule21),+	_charblock_(42797, 1, rule22),+	_charblock_(42798, 1, rule21),+	_charblock_(42799, 1, rule22),+	_charblock_(42802, 1, rule21),+	_charblock_(42803, 1, rule22),+	_charblock_(42804, 1, rule21),+	_charblock_(42805, 1, rule22),+	_charblock_(42806, 1, rule21),+	_charblock_(42807, 1, rule22),+	_charblock_(42808, 1, rule21),+	_charblock_(42809, 1, rule22),+	_charblock_(42810, 1, rule21),+	_charblock_(42811, 1, rule22),+	_charblock_(42812, 1, rule21),+	_charblock_(42813, 1, rule22),+	_charblock_(42814, 1, rule21),+	_charblock_(42815, 1, rule22),+	_charblock_(42816, 1, rule21),+	_charblock_(42817, 1, rule22),+	_charblock_(42818, 1, rule21),+	_charblock_(42819, 1, rule22),+	_charblock_(42820, 1, rule21),+	_charblock_(42821, 1, rule22),+	_charblock_(42822, 1, rule21),+	_charblock_(42823, 1, rule22),+	_charblock_(42824, 1, rule21),+	_charblock_(42825, 1, rule22),+	_charblock_(42826, 1, rule21),+	_charblock_(42827, 1, rule22),+	_charblock_(42828, 1, rule21),+	_charblock_(42829, 1, rule22),+	_charblock_(42830, 1, rule21),+	_charblock_(42831, 1, rule22),+	_charblock_(42832, 1, rule21),+	_charblock_(42833, 1, rule22),+	_charblock_(42834, 1, rule21),+	_charblock_(42835, 1, rule22),+	_charblock_(42836, 1, rule21),+	_charblock_(42837, 1, rule22),+	_charblock_(42838, 1, rule21),+	_charblock_(42839, 1, rule22),+	_charblock_(42840, 1, rule21),+	_charblock_(42841, 1, rule22),+	_charblock_(42842, 1, rule21),+	_charblock_(42843, 1, rule22),+	_charblock_(42844, 1, rule21),+	_charblock_(42845, 1, rule22),+	_charblock_(42846, 1, rule21),+	_charblock_(42847, 1, rule22),+	_charblock_(42848, 1, rule21),+	_charblock_(42849, 1, rule22),+	_charblock_(42850, 1, rule21),+	_charblock_(42851, 1, rule22),+	_charblock_(42852, 1, rule21),+	_charblock_(42853, 1, rule22),+	_charblock_(42854, 1, rule21),+	_charblock_(42855, 1, rule22),+	_charblock_(42856, 1, rule21),+	_charblock_(42857, 1, rule22),+	_charblock_(42858, 1, rule21),+	_charblock_(42859, 1, rule22),+	_charblock_(42860, 1, rule21),+	_charblock_(42861, 1, rule22),+	_charblock_(42862, 1, rule21),+	_charblock_(42863, 1, rule22),+	_charblock_(42873, 1, rule21),+	_charblock_(42874, 1, rule22),+	_charblock_(42875, 1, rule21),+	_charblock_(42876, 1, rule22),+	_charblock_(42877, 1, rule161),+	_charblock_(42878, 1, rule21),+	_charblock_(42879, 1, rule22),+	_charblock_(42880, 1, rule21),+	_charblock_(42881, 1, rule22),+	_charblock_(42882, 1, rule21),+	_charblock_(42883, 1, rule22),+	_charblock_(42884, 1, rule21),+	_charblock_(42885, 1, rule22),+	_charblock_(42886, 1, rule21),+	_charblock_(42887, 1, rule22),+	_charblock_(42891, 1, rule21),+	_charblock_(42892, 1, rule22),+	_charblock_(42893, 1, rule162),+	_charblock_(42896, 1, rule21),+	_charblock_(42897, 1, rule22),+	_charblock_(42912, 1, rule21),+	_charblock_(42913, 1, rule22),+	_charblock_(42914, 1, rule21),+	_charblock_(42915, 1, rule22),+	_charblock_(42916, 1, rule21),+	_charblock_(42917, 1, rule22),+	_charblock_(42918, 1, rule21),+	_charblock_(42919, 1, rule22),+	_charblock_(42920, 1, rule21),+	_charblock_(42921, 1, rule22),+	_charblock_(65313, 26, rule9),+	_charblock_(65345, 26, rule12),+	_charblock_(66560, 40, rule165),+	_charblock_(66600, 40, rule166)+];+var spacechars = [+	_charblock_(32, 1, rule1),+	_charblock_(160, 1, rule1),+	_charblock_(5760, 1, rule1),+	_charblock_(6158, 1, rule1),+	_charblock_(8192, 11, rule1),+	_charblock_(8239, 1, rule1),+	_charblock_(8287, 1, rule1),+	_charblock_(12288, 1, rule1)+];++/*+	Obtain the reference to character rule by doing+	binary search over the specified array of blocks.+	To make checkattr shorter, the address of+	nullrule is returned if the search fails:+	this rule defines no category and no conversion+	distances. The compare function returns 0 when+	key->start is within the block. Otherwise+	result of comparison of key->start and start of the+	current block is returned as usual.+*/++var nullrule = _convrule_(0,NUMCAT_CN,0,0,0,0);++function blkcmp(/* int */ key_char, /* _charblock_ */ cur) {+	if ((key_char >= cur.start) && (key_char < (cur.start + cur.length))) {+		return 0;+	}+	if (key_char > cur.start) {+		return 1;+	}+	return -1;+}++function bsearch (array, length, key, compareFunc) {+	var lower = 0;+	var upper = length;++	while (lower < upper) {+		var idx = Math.floor((lower + upper) / 2);+		var comparison = compareFunc(key, array[idx]);+		if (comparison < 0) {+			upper = idx;+		}+		else if (comparison > 0) {+			lower = idx + 1;+		}+		else {+			return array[idx];+		}+	}++  return null;+}++function getrule(+	/* const struct _charblock_ */ blocks,+	/* int */ numblocks,+	/* int */ unichar)+{+	var char_block = bsearch(blocks, numblocks, unichar, blkcmp);+	if (char_block === null) {+		return nullrule;+	}+	return char_block.rule;+}+	+++/*+	Check whether a character (internal code) has certain attributes.+	Attributes (category flags) may be ORed. The function ANDs+	character category flags and the mask and returns the result.+	If the character belongs to one of the categories requested,+	the result will be nonzero.+*/++function checkattr(/* int */ c, /* unsigned int */ catmask) {+	var numblocks = (c < 256) ? NUM_LAT1BLOCKS : NUM_BLOCKS;+	var rule = getrule(allchars, numblocks, c);+	return (catmask & rule.category);+}++function checkattr_s(/* int */ c, /* unsigned int */ catmask)+{+	var rule = getrule(spacechars, NUM_SPACEBLOCKS, c)+	return (catmask & rule.category);+}++/*+	Define predicate functions for some combinations of categories.+*/+++function unipred(m) {+	return function(c) {+		return checkattr(c, m);+	};+};++function unipred_s(m) {+	return function(c) {+		return checkattr_s(c, m);+	};+};++/*+	Make these rules as close to Hugs as possible.+*/++var u_iswcntrl = unipred(GENCAT_CC);+var u_iswprint = unipred(+  GENCAT_MC | GENCAT_NO | GENCAT_SK | GENCAT_ME | GENCAT_ND |+  GENCAT_PO | GENCAT_LT | GENCAT_PC | GENCAT_SM | GENCAT_ZS |+  GENCAT_LU | GENCAT_PD | GENCAT_SO | GENCAT_PE | GENCAT_PF |+  GENCAT_PS | GENCAT_SC | GENCAT_LL | GENCAT_LM | GENCAT_PI |+  GENCAT_NL | GENCAT_MN | GENCAT_LO);++var u_iswspace = unipred_s(GENCAT_ZS);+var u_iswupper = unipred(GENCAT_LU | GENCAT_LT);+var u_iswlower = unipred(GENCAT_LL);+var u_iswalpha = unipred(GENCAT_LL | GENCAT_LU | GENCAT_LT | GENCAT_LM | GENCAT_LO);+var u_iswdigit = unipred(GENCAT_ND);+var u_iswalnum = unipred(+	GENCAT_LT | GENCAT_LU | GENCAT_LL | GENCAT_LM | GENCAT_LO |+	GENCAT_MC | GENCAT_ME | GENCAT_MN | GENCAT_NO | GENCAT_ND | GENCAT_NL);++function caseconv(getDist) {+	return function(c) {+		var /*_convrule_*/ rule = getrule(convchars, NUM_CONVBLOCKS, c);+		if (rule == nullrule) {+			return c;+		}+		return c + getDist(rule);+	}+};++var u_towupper = caseconv(function(x) { return x.updist; });+var u_towlower = caseconv(function(x) { return x.lowdist; });+var u_towtitle = caseconv(function(x) { return x.titledist; });++function u_gencat(c) {+	return getrule(allchars, NUM_BLOCKS, c).catnumber;+}+
src/ArgSpecs.hs view
@@ -4,6 +4,9 @@ import Haste.Config import Haste.Environment import Data.JSTarget.PP (debugPPOpts)+import Data.List (isSuffixOf)+import System.IO.Unsafe (unsafePerformIO)+import Paths_haste_compiler (getDataFileName)  argSpecs :: [ArgSpec Config] argSpecs = [@@ -11,6 +14,10 @@               updateCfg = \cfg _ -> cfg {ppOpts = debugPPOpts},               info = "Output indented, fairly readable code, with all " ++                      "external names included in comments."},+    ArgSpec { optName = "full-unicode",+              updateCfg = \cfg _ -> fullUnicode cfg,+              info = "Enable full Unicode support. Will bloat your output by "+                     ++ " 10-150 KB depending on usage and other options."},     ArgSpec { optName = "dont-link",               updateCfg = \cfg _ -> cfg {performLink = False},               info = "Don't perform linking."},@@ -63,9 +70,17 @@     ArgSpec { optName = "out=",               updateCfg = \cfg outfile -> cfg {outFile = const $ head outfile},               info = "Write the JS blob to <arg>."},-    ArgSpec { optName = "start=asap",-              updateCfg = \cfg _ -> cfg {appStart = startASAP},-              info = "Start program immediately instead of on document load."},+    ArgSpec { optName = "separate-namespace",+              updateCfg = \cfg _ -> cfg {wrapProg = True},+              info = "Wrap the program in its own namespace? "+                     ++ "Off by default since it may hurt performance."},+    ArgSpec { optName = "start=",+              updateCfg = \cfg str -> cfg {appStart = startCustom (head str)},+              info = "Specify how the Haste application will launch. Can be "+                     ++ "either asap, onload or a custom string "+                     ++ "containing the character sequence '%%', which will "+                     ++ "be replaced with the program's entry point function. "+                     ++ "The default is onload."},     ArgSpec { optName = "trace-primops",               updateCfg = \cfg _ -> cfg {tracePrimops = True,                                          rtsLibs = debugLib : rtsLibs cfg},@@ -122,3 +137,13 @@ -- | Enable sloppy TCE; see Config for more info. useSloppyTCE :: Config -> [String] -> Config useSloppyTCE cfg _ = cfg {sloppyTCE = True}++-- | Save some space and performance by using degenerate implementations of+--   the Unicode functions.+fullUnicode :: Config -> Config+fullUnicode cfg =+    cfg {rtsLibs = unicode : filter (not . (cheap `isSuffixOf`)) libs}+  where+    libs = rtsLibs cfg+    unicode = unsafePerformIO $ getDataFileName "unicode.js"+    cheap = unsafePerformIO $ getDataFileName "cheap-unicode.js"
src/Data/JSTarget/Constructors.hs view
@@ -76,12 +76,23 @@ --   if they turn out to be saturated. foldApp :: Exp -> Exp foldApp (Call arity Normal (Call _ Normal f args) args') =-  foldApp (Call arity Normal f (args ++ args'))-foldApp (Call arity Normal f args) | arity == 0 =-  Call arity Fast f args+  Call arity Normal (foldApp f) (args ++ args')+foldApp (Call 0 Normal f args) =+  Call 0 Fast f args+foldApp (Call arity Normal f args) | arity > 0 =+    Fun Nothing newargs $ Return $ Call arity Fast f (args ++ map Var newargs)+  where+    newargs = newVars "_fa_" arity foldApp ex =   ex +-- | Introduce n new vars.+newVars :: String -> Int -> [Var]+newVars prefix n =+    map newVar [1..n]+  where+    newVar i = Internal (Name (prefix ++ show i) Nothing) ""+ -- | Create a thunk. thunk :: AST Stm -> AST Exp thunk stm@(AST s js) =@@ -90,6 +101,15 @@       AST ex js     _ ->       callForeign "new T" [Fun Nothing [] <$> stm]++-- | Unpack the given expression if it's a thunk without internal bindings.+fromThunk :: AST Exp -> Maybe (AST Exp)+fromThunk (AST (Call 0 Fast (Var (Foreign "new T")) [body]) js) =+  case body of+    Fun Nothing [] (Return ex) -> Just (AST ex js)+    _                          -> Nothing+fromThunk _ =+  Nothing  -- | Returns True if the given expression causes evaluation by appearing --   outside a closure, otherwise False.
src/Data/JSTarget/Optimize.hs view
@@ -19,6 +19,7 @@     shrinkCase ast     >>= inlineAssigns True     >>= inlineReturns+    >>= optimizeThunks     >>= tailLoopify f  topLevelInline :: AST Stm -> AST Stm@@ -85,6 +86,8 @@ --   things horribly. --   Ignores LhsExp assignments, since we only introduce those when we actually --   care about the assignment side effect.+--+--   TODO: don't inline thunks into functions! inlineAssigns :: JSTrav ast => Bool -> ast -> TravM ast inlineAssigns blackholeOK ast = do     inlinable <- gatherInlinable ast@@ -122,6 +125,37 @@       return $ xs !! truncate n     inlEx x =       return x+++-- | Optimize thunks in the following ways:+--   A(thunk(return f), xs)+--     => A(f, xs)+optimizeThunks :: JSTrav ast => ast -> TravM ast+optimizeThunks ast =+    mapJS (const True) optEx return ast+  where+    optEx (Call arity Normal f args) | Just f' <- fromThunkEx f =+      return $ Call arity Normal f' args+    optEx ex =+      return ex+++-- | Unpack the given expression if it's a thunk.+fromThunk :: Exp -> Maybe Stm+fromThunk (Call _ Fast (Var (Foreign "new T")) [body]) =+  case body of+    Fun Nothing [] (b) -> Just b+    _                  -> Nothing+fromThunk _ =+  Nothing++-- | Unpack the given expression if it's a thunk without internal bindings.+fromThunkEx :: Exp -> Maybe Exp+fromThunkEx ex =+  case fromThunk ex of+    Just (Return ex') -> Just ex'+    _                 -> Nothing+  -- | Gather a map of all inlinable symbols; that is, the once that are used --   exactly once.
src/Data/JSTarget/Print.hs view
@@ -8,7 +8,12 @@ import Data.ByteString.Lazy.Builder import Data.Monoid import Control.Monad+import Data.List+import Data.Char+import Numeric (showHex) +import Debug.Trace+ instance Pretty Var where   pp (Foreign name) =     put $ string7 name@@ -29,17 +34,35 @@   pp (LNum d)  = put d   pp (LStr s)  = "\"" .+. put (fixQuotes s) .+. "\""     where-      fixQuotes ('\\':'x':xs) = '\\':'x'  : fixQuotes xs-      fixQuotes ('\\':'u':xs) = '\\':'u'  : fixQuotes xs-      fixQuotes ('\\':xs)     = '\\':'\\' : fixQuotes xs-      fixQuotes ('"':xs)      = '\\':'"'  : fixQuotes xs-      fixQuotes ('\'':xs)     = '\\':'\'' : fixQuotes xs-      fixQuotes ('\n':xs)     = '\\':'n'  : fixQuotes xs-      fixQuotes (x:xs)        = x : fixQuotes xs+      fixQuotes ('\\':xs) = "\\\\" ++ fixQuotes xs+      fixQuotes ('"':xs)  = '\\':'"'  : fixQuotes xs+      fixQuotes ('\'':xs) = '\\':'\'' : fixQuotes xs+      fixQuotes ('\r':xs) = '\\':'r'  : fixQuotes xs+      fixQuotes ('\n':xs) = '\\':'n' : fixQuotes xs+      fixQuotes (x:xs)+        | ord x <= 127 = x : fixQuotes xs+        | otherwise    = toHex x ++ fixQuotes xs       fixQuotes _             = []   pp (LBool b) = put b   pp (LInt n)  = put n   pp (LNull)   = "null"++-- | Generate a Haskell \uXXXX escape sequence for a char if it's >127.+toHex :: Char -> String+toHex c =+  case ord c of+    n | n < 127   -> [c]+      | otherwise -> "\\u" ++ exactlyFour (showHex (n `rem` 65536) "")++-- | Truncate and pad a string to exactly four characters. '0' is used for padding.+exactlyFour :: String -> String+exactlyFour s =+    pad (4-len) $ drop (len-4) s+  where+    len = length s+    pad 0 cs = cs+    pad n cs = '0' : pad (n-1) cs+  -- | Default separator; comma followed by space, if spaces are enabled. sep :: PP ()
src/Data/JSTarget/Traversal.hs view
@@ -237,6 +237,26 @@       then getRef lbl >>= foldJS tr f acc >>= \acc' -> f acc' (Label lbl)       else f acc (Label lbl) +-- | Returns the final statement of a line of statements.+finalStm :: Stm -> TravM Stm+finalStm = go+  where+    go (Case _ _ _ (Shared next)) = getRef next >>= go+    go (Forever s)                = go s+    go (Assign _ _ next)          = go next+    go (Jump (Shared next))       = getRef next >>= go+    go s@(Return _)               = return s+    go (Cont)                     = return Cont+    go (NullRet)                  = return NullRet++-- | Returns statement's returned expression, if any.+finalExp :: Stm -> TravM (Maybe Exp)+finalExp stm = do+  end <- finalStm stm+  case end of+    Return ex -> return $ Just ex+    _         -> return Nothing+ class Pred a where   (.|.) :: a -> a -> a   (.&.) :: a -> a -> a
src/Haste/CodeGen.hs view
@@ -17,7 +17,7 @@ import IdInfo (arityInfo, IdDetails (..)) import Id (Id, idInfo, idDetails, isLocalId, isGlobalId) import Literal as L-import FastString (unpackFS, FastString)+import FastString (unpackFS) import ForeignCall (CCallTarget (..), ForeignCall (..), CCallSpec (..)) import PrimOp (PrimCall (..)) import OccName@@ -419,7 +419,7 @@ genLit :: L.Literal -> JSGen Config (AST Exp) genLit l = do   case l of-    MachStr s           -> return . lit $ hexifyString s+    MachStr s           -> return . lit $ unpackFS s     MachInt n       | n > 2147483647 ||         n < -2147483648 -> do warn Verbose (constFail "Int" n)@@ -477,26 +477,3 @@       _              -> typeHasRep t   where     t = varType v---- | Generate a JS \xXX or \uXXXX escape sequence for a char if it's >127.-toHex :: Char -> String-toHex c =-  case ord c of-    n | n < 127   -> [c]-      | otherwise -> toHex' (n `rem` 65536)-  where-    toHex' n =-      case toH "" n of-        s@(_:_:[]) -> "\\x" ++ s-        s          -> "\\u" ++ s--    toH s 0 = s-    toH s n = case n `quotRem` 16 of-                (next, ch) -> toH (i2h ch : s) next--    i2h n | n < 10    = chr (n + 48)-          | otherwise = chr (n + 87)---- | Escape all non-ASCII characters in the given string.-hexifyString :: FastString -> String-hexifyString = concatMap toHex . unpackFS
src/Haste/Config.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE OverloadedStrings #-} module Haste.Config (-  Config (..), AppStart, defConfig, stdJSLibs, startASAP,-  startOnLoadComplete, fastMultiply, safeMultiply, debugLib) where+  Config (..), AppStart, defConfig, stdJSLibs, startCustom, fastMultiply,+  safeMultiply, debugLib) where import Data.JSTarget import System.IO.Unsafe (unsafePerformIO) import System.FilePath (replaceExtension)@@ -16,7 +16,7 @@ stdJSLibs :: [FilePath] stdJSLibs = unsafePerformIO $ mapM getDataFileName [     "rts.js", "stdlib.js", "MVar.js", "StableName.js", "Integer.js", "md5.js",-    "array.js", "pointers.js", "unicode.js"+    "array.js", "pointers.js", "cheap-unicode.js", "Canvas.js"   ]  debugLib :: FilePath@@ -28,12 +28,24 @@ --   as well always do it this way, to simplify the config a bit. startASAP :: AppStart startASAP mainSym =-  "A(" <> mainSym <> ", [0]);"+  mainSym <> "();" +-- | Launch the application using a custom command.+startCustom :: String -> AppStart+startCustom "onload" = startOnLoadComplete+startCustom "asap"   = startASAP+startCustom str      = insertSym str++-- | Replace the first occurrence of %% with Haste's entry point symbol.+insertSym :: String -> AppStart+insertSym ('%':'%':str) sym = sym <> stringUtf8 str+insertSym (c:str) sym       = charUtf8 c <> insertSym str sym+insertSym [] _              = string7 ""+ -- | Execute the program when the document has finished loading. startOnLoadComplete :: AppStart startOnLoadComplete mainSym =-  "window.onload = function() {" <> startASAP mainSym <> "};"+  "window.onload = " <> mainSym <> ";"  -- | Int op wrapper for strictly 32 bit (|0). strictly32Bits :: AST Exp -> AST Exp@@ -58,6 +70,8 @@     -- | A function that takes the main symbol as its input and outputs the     --   code that starts the program.     appStart :: AppStart,+    -- | Wrap the program in its own namespace?+    wrapProg :: Bool,     -- | Options to the pretty printer.     ppOpts :: PPOpts,     -- | A function that takes the name of the a target as its input and@@ -93,6 +107,7 @@     libPath          = jsmodDir,     targetLibPath    = ".",     appStart         = startOnLoadComplete,+    wrapProg         = False,     ppOpts           = def,     outFile          = flip replaceExtension "js",     performLink      = True,
src/Haste/Linker.hs view
@@ -23,14 +23,30 @@   ds <- getAllDefs (libPath cfg) pkgid mainSym   let myDefs = if wholeProgramOpts cfg then topLevelInline ds else ds   let (progText, mainSym') = prettyProg (ppOpts cfg) mainSym myDefs-      callMain = appStart cfg mainSym'+      callMain = string7 "A(" <> mainSym' <> string7 ", [0]);"+      launchApp = appStart cfg (string7 "hasteMain")   -  rtslibs <- mapM readFile $ rtsLibs cfg ++ jsExternals cfg+  rtslibs <- mapM readFile $ rtsLibs cfg+  extlibs <- mapM readFile $ jsExternals cfg   B.writeFile (outFile cfg target)-    $ toLazyByteString -    $ stringUtf8 (unlines rtslibs)-    <> progText-    <> callMain+    $ toLazyByteString+    $ assembleProg (wrapProg cfg) extlibs rtslibs progText callMain launchApp+  where+    assembleProg True extlibs rtslibs progText callMain launchApp =+      stringUtf8 (unlines extlibs)+      <> string7 "var hasteMain = function() {"+      <> stringUtf8 (unlines rtslibs)+      <> progText+      <> callMain+      <> string7 "};\n"+      <> launchApp+    assembleProg _ extlibs rtslibs progText callMain launchApp =+      stringUtf8 (unlines extlibs)+      <> stringUtf8 (unlines rtslibs)+      <> progText+      <> string7 "\nvar hasteMain = function() {" <> callMain <> string7 "};"+      <> launchApp+  -- | Generate a sequence of all assignments needed to run Main.main. getAllDefs :: FilePath -> String -> Name -> IO (AST Stm)
src/Haste/Version.hs view
@@ -10,7 +10,7 @@ import Haste.Environment (hasteDir)  hasteVersion :: Version-hasteVersion = Version [0, 2, 2] []+hasteVersion = Version [0, 2, 3] []  ghcVersion :: String ghcVersion = cProjectVersion
src/Main.hs view
@@ -175,8 +175,7 @@   cloOut <- openFile cloFile WriteMode   build <- runProcess "java"              ["-jar", cloPath, "--compilation_level", "ADVANCED_OPTIMIZATIONS",-              "--jscomp_off", "uselessCode", "--jscomp_off", "globalThis",-              file]+              "--jscomp_off", "globalThis", file]              Nothing              Nothing              Nothing