diff options
author | nextcloud-command <nextcloud-command@users.noreply.github.com> | 2025-02-24 19:32:30 +0000 |
---|---|---|
committer | nextcloud-command <nextcloud-command@users.noreply.github.com> | 2025-02-24 19:32:30 +0000 |
commit | 3bd24ba401154adb46768f222a3127d96408ef3b (patch) | |
tree | 8c5094060fa253479c95b5768ba7720b2c5c2e62 | |
parent | e3befb8df2ed641456e525eb2df6cd788d57f27b (diff) | |
download | nextcloud-server-3bd24ba401154adb46768f222a3127d96408ef3b.tar.gz nextcloud-server-3bd24ba401154adb46768f222a3127d96408ef3b.zip |
chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
-rw-r--r-- | dist/7883-7883.js | 4 | ||||
-rw-r--r-- | dist/7883-7883.js.license | 8 | ||||
-rw-r--r-- | dist/7883-7883.js.map | 2 | ||||
-rw-r--r-- | dist/core-unsupported-browser-redirect.js | 4 | ||||
-rw-r--r-- | dist/core-unsupported-browser-redirect.js.map | 2 | ||||
-rw-r--r-- | dist/core-unsupported-browser.js | 4 | ||||
-rw-r--r-- | dist/core-unsupported-browser.js.license | 8 | ||||
-rw-r--r-- | dist/core-unsupported-browser.js.map | 2 |
8 files changed, 17 insertions, 17 deletions
diff --git a/dist/7883-7883.js b/dist/7883-7883.js index 549a3d70ecd..d63aa1eeb93 100644 --- a/dist/7883-7883.js +++ b/dist/7883-7883.js @@ -1,2 +1,2 @@ -(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[7883],{54380:e=>{e.exports=[">0.25%","not op_mini all","not dead","Firefox ESR"]},95635:(e,u,r)=>{"use strict";r.d(u,{A:()=>t});var n=r(21777),d=r(35947);const t=null===(a=(0,n.HW)())?(0,d.YK)().setApp("core").build():(0,d.YK)().setApp("core").setUid(a.uid).build();var a;(0,d.YK)().setApp("unified-search").detectUser().build()},43740:(e,u,r)=>{"use strict";r.d(u,{A:()=>n});const n=(0,r(59097).c0)("core").clearOnLogout().persist().build()},55348:(e,u,r)=>{"use strict";r.d(u,{j:()=>i});var n=r(3211),d=r(94364),t=r.n(d),a=r(54380),s=r.n(a);const i=(0,n.yS)({allowHigherVersions:!0,browsers:s()});t()(s())},77883:(e,u,r)=>{"use strict";r.d(u,{testSupportedBrowser:()=>o});var n=r(63814),d=r(55348),t=r(43740),a=r(95635),s=r(62045).hp;const i=(0,n.Jv)("/unsupported"),f="true"===t.A.getItem("unsupported-browser-ignore"),o=function(){if(d.j.test(navigator.userAgent))a.A.debug("this browser is officially supported ! 🚀");else if(f)a.A.debug("this browser is NOT supported but has been manually overridden ! ⚠️");else if(-1===window.location.pathname.indexOf(i)){const e=window.location.href.replace(window.location.origin,""),u=s.from(e).toString("base64");history.pushState(null,null,`${i}?redirect_url=${u}`),window.location.reload()}}},93928:(e,u,r)=>{var n=r(74150);function d(){}e.exports={loadQueries:function(){throw new n("Sharable configs are not supported in client-side build of Browserslist")},getStat:function(e){return e.stats},loadConfig:function(e){if(e.config)throw new n("Browserslist config are not supported in client-side build")},loadCountry:function(){throw new n("Country statistics are not supported in client-side build of Browserslist")},loadFeature:function(){throw new n("Supports queries are not available in client-side build of Browserslist")},currentNode:function(e,u){return e(["maintained node versions"],u)[0]},parseConfig:d,readConfig:d,findConfig:d,clearCaches:d,oldDataWarning:d,env:{}}},74150:e=>{function u(e){this.name="BrowserslistError",this.message=e,this.browserslist=!0,Error.captureStackTrace&&Error.captureStackTrace(this,u)}u.prototype=Error.prototype,e.exports=u},94364:(e,u,r)=>{var n=r(73909),d=r(76019).X,t=r(93147),a=r(18411),s=r(68093),i=r(74150),f=r(6319),o=r(93928),c="37";function l(e,u){return 0===(e+".").indexOf(u+".")}function v(e){return e.filter((function(e){return"string"==typeof e}))}function b(e){var u=e;return 3===e.split(".").length&&(u=e.split(".").slice(0,-1).join(".")),u}function p(e){return function(u){return e+" "+u}}function m(e){return parseInt(e.split(".")[0])}function h(e,u){if(0===e.length)return[];var r=y(e.map(m)),n=r[r.length-u];if(!n)return e;for(var d=[],t=e.length-1;t>=0&&!(n>m(e[t]));t--)d.unshift(e[t]);return d}function y(e){for(var u=[],r=0;r<e.length;r++)-1===u.indexOf(e[r])&&u.push(e[r]);return u}function g(e,u,r){for(var n in r)e[u+" "+n]=r[n]}function C(e,u){return u=parseFloat(u),">"===e?function(e){return r(e)>u}:">="===e?function(e){return r(e)>=u}:"<"===e?function(e){return parseFloat(e)<u}:function(e){return parseFloat(e)<=u};function r(e){return parseFloat(e.split("-")[1]||e)}}function B(e){return parseInt(e)}function _(e,u){return e<u?-1:e>u?1:0}function x(e,u){return _(parseInt(e[0]),parseInt(u[0]))||_(parseInt(e[1]||"0"),parseInt(u[1]||"0"))||_(parseInt(e[2]||"0"),parseInt(u[2]||"0"))}function A(e,u){return void 0===(u=u.split(".").map(B))[1]&&(u[1]="x"),"<="===e?function(e){return j(e=e.split(".").map(B),u)<=0}:function(e){return j(e=e.split(".").map(B),u)>=0}}function j(e,u){return e[0]!==u[0]?e[0]<u[0]?-1:1:"x"===u[1]?0:e[1]!==u[1]?e[1]<u[1]?-1:1:0}function S(e,u){var r=function(e,u){return-1!==e.versions.indexOf(u)?u:!!M.versionAliases[e.name][u]&&M.versionAliases[e.name][u]}(e,u);return r||1===e.versions.length&&e.versions[0]}function w(e,u){return e/=1e3,Object.keys(d).reduce((function(r,n){var d=P(n,u);if(!d)return r;var t=Object.keys(d.releaseDate).filter((function(u){var r=d.releaseDate[u];return null!==r&&r>=e}));return r.concat(t.map(p(d.name)))}),[])}function k(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function P(e,u){if(e=e.toLowerCase(),e=M.aliases[e]||e,u.mobileToDesktop&&M.desktopNames[e]){var r=M.data[M.desktopNames[e]];if("android"===e)return d=k(M.data[e]),t=r,d.released=E(d.released,t.released),d.versions=E(d.versions,t.versions),d.releaseDate=function(e){var u={};for(var r in e)u[r]=e[r];return u}(d.releaseDate),d.released.forEach((function(e){void 0===d.releaseDate[e]&&(d.releaseDate[e]=t.releaseDate[e])})),d;var n=k(r);return n.name=e,n}var d,t;return M.data[e]}function E(e,u){var r=u.indexOf(c);return e.filter((function(e){return/^(?:[2-4]\.|[34]$)/.test(e)})).concat(u.slice(r))}function O(e,u){var r=P(e,u);if(!r)throw new i("Unknown browser "+e);return r}function D(e,u,r,n){var d=1;switch(u){case"android":if(n.mobileToDesktop)return e;var t=M.data.chrome.released;d=t.length-t.indexOf(c);break;case"op_mob":d=m(M.data.op_mob.released.slice(-1)[0])-14+1;break;default:return e}return r<=d?e.slice(-1):e.slice(d-1-r)}function T(e,u){return"string"==typeof e&&(e.indexOf("y")>=0||u&&e.indexOf("a")>=0)}function R(e,u){return f(V,e).reduce((function(e,r,n){if(r.not&&0===n)throw new i("Write any browsers query (for instance, `defaults`) before `"+r.query+"`");var d=V[r.type].select.call(M,u,r).map((function(e){var r=e.split(" ");return"0"===r[1]?r[0]+" "+P(r[0],u).versions[0]:e}));if("and"===r.compose)return r.not?e.filter((function(e){return-1===d.indexOf(e)})):e.filter((function(e){return-1!==d.indexOf(e)}));if(r.not){var t={};return d.forEach((function(e){t[e]=!0})),e.filter((function(e){return!t[e]}))}return e.concat(d)}),[])}function N(e){return void 0===e&&(e={}),void 0===e.path&&(e.path=a.resolve?a.resolve("."):"."),e}function L(e,u){null==e&&(e=M.loadConfig(u)||M.defaults);return e}function F(e){if("string"!=typeof e&&!Array.isArray(e))throw new i("Browser queries must be an array or string. Got "+typeof e+".")}var I={};function M(e,u){F(e=L(e,u=N(u)));var r={ignoreUnknownVersions:u.ignoreUnknownVersions,dangerousExtend:u.dangerousExtend,mobileToDesktop:u.mobileToDesktop,path:u.path,env:u.env};o.oldDataWarning(M.data);var n=o.getStat(u,M.data);if(n)for(var d in r.customUsage={},n)g(r.customUsage,d,n[d]);var t=JSON.stringify([e,r]);if(I[t])return I[t];var a=y(R(e,r)).sort((function(e,u){if(e=e.split(" "),u=u.split(" "),e[0]===u[0]){var r=e[1].split("-")[0];return x(u[1].split("-")[0].split("."),r.split("."))}return _(e[0],u[0])}));return o.env.BROWSERSLIST_DISABLE_CACHE||(I[t]=a),a}function U(e,u){var r=M.nodeVersions.filter((function(e){return l(e,u.version)}));if(0===r.length){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+u.version+" of Node.js")}return["node "+r[r.length-1]]}function G(e,u){var r=parseInt(u.year),n=parseInt(u.month||"01")-1,d=parseInt(u.day||"01");return w(Date.UTC(r,n,d,0,0,0),e)}function H(e,u){var r=parseFloat(u.coverage),n=M.usage.global;if(u.place)if(u.place.match(/^my\s+stats$/i)){if(!e.customUsage)throw new i("Custom usage statistics was not provided");n=e.customUsage}else{var d;d=2===u.place.length?u.place.toUpperCase():u.place.toLowerCase(),o.loadCountry(M.usage,d,M.data),n=M.usage[d]}for(var t,a=Object.keys(n).sort((function(e,u){return n[u]-n[e]})),s=0,f=[],c=0;c<a.length&&(t=a[c],0!==n[t])&&(s+=n[t],f.push(t),!(s>=r));c++);return f}M.parse=function(e,u){return F(e=L(e,u=N(u))),f(V,e)},M.cache={},M.data={},M.usage={global:{},custom:null},M.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"],M.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"},M.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",android:"chrome"},M.versionAliases={},M.clearCaches=o.clearCaches,M.parseConfig=o.parseConfig,M.readConfig=o.readConfig,M.findConfig=o.findConfig,M.loadConfig=o.loadConfig,M.coverage=function(e,u){var r;if(void 0===u)r=M.usage.global;else if("my stats"===u){var n={};n.path=a.resolve?a.resolve("."):".";var d=o.getStat(n);if(!d)throw new i("Custom usage statistics was not provided");for(var t in r={},d)g(r,t,d[t])}else if("string"==typeof u)u=u.length>2?u.toLowerCase():u.toUpperCase(),o.loadCountry(M.usage,u,M.data),r=M.usage[u];else for(var s in"dataByBrowser"in u&&(u=u.dataByBrowser),r={},u)for(var f in u[s])r[s+" "+f]=u[s][f];return e.reduce((function(e,u){var n=r[u];return void 0===n&&(n=r[u.replace(/ \S+$/," 0")]),e+(n||0)}),0)};var V={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(e,u){return Object.keys(d).reduce((function(r,n){var d=P(n,e);if(!d)return r;var t=h(d.released,u.versions);return t=D(t=t.map(p(d.name)),d.name,u.versions,e),r.concat(t)}),[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(e,u){return Object.keys(d).reduce((function(r,n){var d=P(n,e);if(!d)return r;var t=d.released.slice(-u.versions);return t=D(t=t.map(p(d.name)),d.name,u.versions,e),r.concat(t)}),[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(e,u){return h(Object.keys(s),u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(e,u){return h(M.nodeVersions,u.versions).map((function(e){return"node "+e}))}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),n=h(r.released,u.versions).map(p(r.name));return D(n,r.name,u.versions,e)}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(e,u){return Object.keys(s).slice(-u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(e,u){return M.nodeVersions.slice(-u.versions).map((function(e){return"node "+e}))}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),n=r.released.slice(-u.versions).map(p(r.name));return D(n,r.name,u.versions,e)}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(e){return Object.keys(d).reduce((function(u,r){var n=P(r,e);if(!n)return u;var d=n.versions.filter((function(e){return-1===n.released.indexOf(e)}));return d=d.map(p(n.name)),u.concat(d)}),[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e);return r.versions.filter((function(e){return-1===r.released.indexOf(e)})).map(p(r.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(e,u){return w(Date.now()-31558432982.4*u.years,e)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:G},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:G},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:G},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(e,u){var r=parseFloat(u.popularity),n=M.usage.global;return Object.keys(n).reduce((function(e,d){return">"===u.sign?n[d]>r&&e.push(d):"<"===u.sign?n[d]<r&&e.push(d):"<="===u.sign?n[d]<=r&&e.push(d):n[d]>=r&&e.push(d),e}),[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var n=e.customUsage;return Object.keys(n).reduce((function(e,d){var t=n[d];return null==t||(">"===u.sign?t>r&&e.push(d):"<"===u.sign?t<r&&e.push(d):"<="===u.sign?t<=r&&e.push(d):t>=r&&e.push(d)),e}),[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity),n=o.loadStat(e,u.config,M.data);if(n)for(var d in e.customUsage={},n)g(e.customUsage,d,n[d]);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var t=e.customUsage;return Object.keys(t).reduce((function(e,n){var d=t[n];return null==d||(">"===u.sign?d>r&&e.push(n):"<"===u.sign?d<r&&e.push(n):"<="===u.sign?d<=r&&e.push(n):d>=r&&e.push(n)),e}),[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(e,u){var r=parseFloat(u.popularity),n=u.place;n=2===n.length?n.toUpperCase():n.toLowerCase(),o.loadCountry(M.usage,n,M.data);var d=M.usage[n];return Object.keys(d).reduce((function(e,n){var t=d[n];return null==t||(">"===u.sign?t>r&&e.push(n):"<"===u.sign?t<r&&e.push(n):"<="===u.sign?t<=r&&e.push(n):t>=r&&e.push(n)),e}),[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:H},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:H},supports:{matches:["supportType","feature"],regexp:/^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/,select:function(e,u){o.loadFeature(M.cache,u.feature);var r="fully"!==u.supportType,n=M.cache[u.feature],d=[];for(var t in n){for(var a=P(t,e),s=a.released.length-1;s>=0&&!(a.released[s]in n[t]);)s--;var i=e.mobileToDesktop&&t in M.desktopNames&&T(n[t][a.released[s]],r);a.versions.forEach((function(e){var u=n[t][e];void 0===u&&i&&(u=n[M.desktopNames[t]][e]),T(u,r)&&d.push(t+" "+e)}))}return d}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=b(u.from),n=b(u.to),d=parseFloat(u.from),t=parseFloat(u.to);if(!s[r])throw new i("Unknown version "+d+" of electron");if(!s[n])throw new i("Unknown version "+t+" of electron");return Object.keys(s).filter((function(e){var u=parseFloat(e);return u>=d&&u<=t})).map((function(e){return"chrome "+s[e]}))}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter(A(">=",u.from)).filter(A("<=",u.to)).map((function(e){return"node "+e}))}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=O(u.browser,e),n=parseFloat(S(r,u.from)||u.from),d=parseFloat(S(r,u.to)||u.to);return r.released.filter((function(e){var u=parseFloat(e);return u>=n&&u<=d})).map(p(r.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){var r=b(u.version);return Object.keys(s).filter(C(u.sign,r)).map((function(e){return"chrome "+s[e]}))}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter((r=u.sign,n=u.version,(n=n.split(".").map(B))[1]=n[1]||0,n[2]=n[2]||0,">"===r?function(e){return x(e=e.split(".").map(B),n)>0}:">="===r?function(e){return x(e=e.split(".").map(B),n)>=0}:"<"===r?function(e){return e=e.split(".").map(B),x(n,e)>0}:function(e){return e=e.split(".").map(B),x(n,e)>=0})).map((function(e){return"node "+e}));var r,n}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(e,u){var r=u.version,n=O(u.browser,e),d=M.versionAliases[n.name][r];return d&&(r=d),n.released.filter(C(u.sign,r)).map((function(e){return n.name+" "+e}))}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 115","firefox 128"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(e,u){var r=b(u.version),n=s[r];if(!n)throw new i("Unknown version "+u.version+" of electron");return["chrome "+n]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:U},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:U},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:U},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(e){return[o.currentNode(R,e)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(e){var u=Date.now();return R(Object.keys(t).filter((function(e){return u<Date.parse(t[e].end)&&u>Date.parse(t[e].start)&&(r=e.slice(1),M.nodeVersions.some((function(e){return l(e,r)})));var r})).map((function(e){return"node "+e.slice(1)})),e)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(e,u){var r=u.version;/^tp$/i.test(r)&&(r="TP");var n=O(u.browser,e),d=S(n,r);if(d)r=d;else{if(!(d=S(n,d=-1===r.indexOf(".")?r+".0":r.replace(/\.0$/,"")))){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+r+" of "+u.browser)}r=d}return[n.name+" "+r]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,select:function(e){return M(void 0,e)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,select:function(e,u){return R(o.loadQueries(e,u.config),e)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(e){return R(M.defaults,e)}},dead:{matches:[],regexp:/^dead$/i,select:function(e){return R(["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"],e)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(e,u){throw P(u.query,e)?new i("Specify versions in Browserslist query for browser "+u.query):(r=u.query,new i("Unknown browser query `"+r+"`. Maybe you are using old Browserslist or made typo in query."));var r}}};!function(){for(var e in d){var u=d[e];M.data[e]={name:e,versions:v(d[e].versions),released:v(d[e].versions.slice(0,-3)),releaseDate:d[e].release_date},g(M.usage.global,e,u.usage_global),M.versionAliases[e]={};for(var r=0;r<u.versions.length;r++){var t=u.versions[r];if(t&&-1!==t.indexOf("-"))for(var a=t.split("-"),s=0;s<a.length;s++)M.versionAliases[e][a[s]]=t}}M.nodeVersions=n.map((function(e){return e.version}))}(),e.exports=M},6319:e=>{var u=/^\s+and\s+(.*)/i,r=/^(?:,\s*|\s+or\s+)(.*)/i;function n(e){return Array.isArray(e)?e.reduce((function(e,u){return e.concat(n(u))}),[]):[e]}function d(e,u){var r={query:u};for(var n in 0===u.indexOf("not ")&&(r.not=!0,u=u.slice(4)),e){var d=e[n],t=u.match(d.regexp);if(t){r.type=n;for(var a=0;a<d.matches.length;a++)r[d.matches[a]]=t[a+1];return r}}return r.type="unknown",r}function t(e,n,t){var a;return function(e,u){for(var r=1,n=e.length;r<=n;r++)if(u(e.substr(-r,r),r,n))return e.slice(0,-r);return""}(n,(function(n,s,i){return u.test(n)?((a=d(e,n.match(u)[1])).compose="and",t.unshift(a),!0):r.test(n)?((a=d(e,n.match(r)[1])).compose="or",t.unshift(a),!0):s===i&&((a=d(e,n.trim())).compose="or",t.unshift(a),!0)}))}e.exports=function(e,u){return Array.isArray(u)||(u=[u]),n(u.map((function(u){var r=[];do{u=t(e,u,r)}while(u);return r})))}},96481:e=>{e.exports={A:{A:{K:0,E:0,F:.0300576,G:.0601152,A:0,B:.541037,bC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bC","K","E","F","G","A","B","","",""],E:"IE",F:{bC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968e3}},B:{A:{1:.007426,2:.014852,3:.011139,4:.007426,5:.007426,6:.011139,7:.007426,8:.014852,9:.03713,C:0,L:0,M:0,H:0,N:0,O:.003713,P:.03713,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:.011139,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:.003713,r:.007426,s:.063121,t:.007426,u:.007426,AB:.018565,BB:.044556,CB:.059408,DB:.133668,EB:2.41716,FB:2.03844,D:.007426},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","H","N","O","P","Q","I","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","D","","",""],E:"Edge",F:{1:1680825600,2:1683158400,3:1685664e3,4:1689897600,5:1692576e3,6:1694649600,7:1697155200,8:1698969600,9:1701993600,C:1438128e3,L:1447286400,M:1470096e3,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I:1581033600,R:1586736e3,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:161136e4,Y:1614816e3,Z:1618358400,a:1622073600,b:1626912e3,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,AB:1706227200,BB:1708732800,CB:1711152e3,DB:1713398400,EB:1715990400,FB:1718841600,D:1721865600},D:{C:"ms",L:"ms",M:"ms",H:"ms",N:"ms",O:"ms",P:"ms"}},C:{A:{0:0,1:0,2:.014852,3:0,4:.367587,5:0,6:.007426,7:.070547,8:0,9:.007426,cC:0,DC:0,J:.003713,GB:0,K:0,E:0,F:0,G:0,A:0,B:.018565,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:.003713,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:.007426,aB:.007426,bB:.007426,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:.051982,jB:.003713,kB:.003713,lB:0,mB:.018565,nB:0,oB:0,EC:.003713,pB:0,FC:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":.014852,Q:0,I:0,R:0,GC:0,S:0,T:0,U:0,V:0,W:0,X:.007426,Y:0,Z:0,a:0,b:0,c:0,d:.003713,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:.007426,m:.007426,n:0,o:0,p:0,q:0,r:.003713,s:.007426,t:0,u:0,AB:.007426,BB:.007426,CB:.011139,DB:.018565,EB:.029704,FB:.790869,D:.794582,HC:.007426,IC:0,JC:0,dC:0,eC:0,fC:0},B:"moz",C:["cC","DC","eC","fC","J","GB","K","E","F","G","A","B","C","L","M","H","N","O","P","HB","v","w","x","y","z","0","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","EC","pB","FC","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","Q","I","R","GC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","D","HC","IC","JC","dC"],E:"Firefox",F:{0:1379376e3,1:1681171200,2:1683590400,3:1686009600,4:1688428800,5:1690848e3,6:1693267200,7:1695686400,8:1698105600,9:1700524800,cC:1161648e3,DC:1213660800,eC:124632e4,fC:1264032e3,J:1300752e3,GB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968e3,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112e3,O:1349740800,P:1353628800,HB:1357603200,v:1361232e3,w:1364860800,x:1368489600,y:1372118400,z:1375747200,IB:1386633600,JB:1391472e3,KB:1395100800,LB:1398729600,MB:1402358400,NB:1405987200,OB:1409616e3,PB:1413244800,QB:1417392e3,RB:1421107200,SB:1424736e3,TB:1428278400,UB:1431475200,VB:1435881600,WB:1439251200,XB:144288e4,YB:1446508800,ZB:1450137600,aB:1453852800,bB:1457395200,cB:1461628800,dB:1465257600,eB:1470096e3,fB:1474329600,gB:1479168e3,hB:1485216e3,iB:1488844800,jB:149256e4,kB:1497312e3,lB:1502150400,mB:1506556800,nB:1510617600,oB:1516665600,EC:1520985600,pB:1525824e3,FC:1529971200,qB:1536105600,rB:1540252800,sB:1544486400,tB:154872e4,uB:1552953600,vB:1558396800,wB:1562630400,xB:1567468800,yB:1571788800,zB:1575331200,"0B":1578355200,"1B":1581379200,"2B":1583798400,"3B":1586304e3,"4B":1588636800,"5B":1591056e3,"6B":1593475200,Q:1595894400,I:1598313600,R:1600732800,GC:1603152e3,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392e3,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536e3,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632e3,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752e3,AB:1702944e3,BB:1705968e3,CB:1708387200,DB:1710806400,EB:1713225600,FB:1715644800,D:1718064e3,HC:1720483200,IC:null,JC:null,dC:null}},D:{A:{0:0,1:.044556,2:.096538,3:.092825,4:.029704,5:.189363,6:.107677,7:.081686,8:.066834,9:.133668,J:0,GB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:.003713,RB:0,SB:0,TB:0,UB:.011139,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:.007426,eB:.025991,fB:.022278,gB:.011139,hB:0,iB:.003713,jB:.007426,kB:0,lB:0,mB:.011139,nB:0,oB:.003713,EC:0,pB:0,FC:.003713,qB:0,rB:.003713,sB:0,tB:0,uB:.022278,vB:.003713,wB:0,xB:.022278,yB:.070547,zB:.003713,"0B":0,"1B":.011139,"2B":.007426,"3B":.007426,"4B":.007426,"5B":.029704,"6B":.018565,Q:.107677,I:.011139,R:.018565,S:.033417,T:.007426,U:.011139,V:.044556,W:.070547,X:.011139,Y:.011139,Z:.014852,a:.059408,b:.018565,c:.025991,d:.059408,e:.011139,f:.014852,g:.018565,h:.070547,i:.03713,j:.040843,k:.055695,l:.03713,m:.167085,n:.096538,o:.014852,p:.033417,q:.033417,r:.051982,s:1.4852,t:.159659,u:.040843,AB:.211641,BB:.181937,CB:.278475,DB:.983945,EB:10.1922,FB:6.28982,D:.025991,HC:.007426,IC:0,JC:0},B:"webkit",C:["","","","","","","J","GB","K","E","F","G","A","B","C","L","M","H","N","O","P","HB","v","w","x","y","z","0","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","EC","pB","FC","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","Q","I","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","D","HC","IC","JC"],E:"Chrome",F:{0:1357862400,1:1680566400,2:1682985600,3:1685404800,4:1689724800,5:1692057600,6:1694476800,7:1696896e3,8:1698710400,9:1701993600,J:1264377600,GB:1274745600,K:1283385600,E:1287619200,F:1291248e3,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,HB:1332892800,v:133704e4,w:1340668800,x:1343692800,y:1348531200,z:1352246400,IB:1361404800,JB:1364428800,KB:1369094400,LB:1374105600,MB:1376956800,NB:1384214400,OB:1389657600,PB:1392940800,QB:1397001600,RB:1400544e3,SB:1405468800,TB:1409011200,UB:141264e4,VB:1416268800,WB:1421798400,XB:1425513600,YB:1429401600,ZB:143208e4,aB:1437523200,bB:1441152e3,cB:1444780800,dB:1449014400,eB:1453248e3,fB:1456963200,gB:1460592e3,hB:1464134400,iB:1469059200,jB:1472601600,kB:1476230400,lB:1480550400,mB:1485302400,nB:1489017600,oB:149256e4,EC:1496707200,pB:1500940800,FC:1504569600,qB:1508198400,rB:1512518400,sB:1516752e3,tB:1520294400,uB:1523923200,vB:1527552e3,wB:1532390400,xB:1536019200,yB:1539648e3,zB:1543968e3,"0B":154872e4,"1B":1552348800,"2B":1555977600,"3B":1559606400,"4B":1564444800,"5B":1568073600,"6B":1571702400,Q:1575936e3,I:1580860800,R:1586304e3,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272e3,a:1621987200,b:1626739200,c:1630368e3,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512e3,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656e3,r:166968e4,s:1673308800,t:1675728e3,u:1678147200,AB:1705968e3,BB:1708387200,CB:1710806400,DB:1713225600,EB:1715644800,FB:1718064e3,D:1721174400,HC:null,IC:null,JC:null}},E:{A:{J:0,GB:0,K:0,E:0,F:.003713,G:.003713,A:0,B:0,C:0,L:.007426,M:.033417,H:.007426,gC:0,KC:0,hC:0,iC:0,jC:0,kC:0,LC:0,"7B":.007426,"8B":.011139,lC:.063121,mC:.089112,nC:.025991,MC:.011139,NC:.022278,"9B":.033417,oC:.241345,AC:.029704,OC:.044556,PC:.03713,QC:.089112,RC:.033417,SC:.055695,pC:.33417,BC:.025991,TC:.055695,UC:.066834,VC:.07426,WC:.360161,XC:1.48891,YC:0,CC:.003713,qC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","gC","KC","J","GB","hC","K","iC","E","jC","F","G","kC","A","LC","B","7B","C","8B","L","lC","M","mC","H","nC","MC","NC","9B","oC","AC","OC","PC","QC","RC","SC","pC","BC","TC","UC","VC","WC","XC","YC","CC","qC"],E:"Safari",F:{gC:1205798400,KC:1226534400,J:1244419200,GB:1275868800,hC:131112e4,K:1343174400,iC:13824e5,E:13824e5,jC:1410998400,F:1413417600,G:1443657600,kC:1458518400,A:1474329600,LC:1490572800,B:1505779200,"7B":1522281600,C:1537142400,"8B":1553472e3,L:1568851200,lC:1585008e3,M:1600214400,mC:1619395200,H:1632096e3,nC:1635292800,MC:1639353600,NC:1647216e3,"9B":1652745600,oC:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432e3,RC:1679875200,SC:1684368e3,pC:1690156800,BC:1695686400,TC:1698192e3,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null,qC:null}},F:{A:{0:0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:.003713,TB:0,UB:0,VB:0,WB:.003713,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:.014852,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0,Q:0,I:0,R:0,GC:0,S:.007426,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:.040843,f:0,g:0,h:0,i:0,j:0,k:0,l:.044556,m:0,n:0,o:0,p:0,q:.003713,r:0,s:.497542,t:.326744,u:.048269,rC:0,sC:0,tC:0,uC:0,"7B":0,ZC:0,vC:0,"8B":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","G","rC","sC","tC","uC","B","7B","ZC","vC","C","8B","H","N","O","P","HB","v","w","x","y","z","0","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","Q","I","R","GC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","","",""],E:"Opera",F:{0:1413331200,G:1150761600,rC:1223424e3,sC:1251763200,tC:1267488e3,uC:1277942400,B:1292457600,"7B":1302566400,ZC:1309219200,vC:1323129600,C:1323129600,"8B":1352073600,H:1372723200,N:1377561600,O:1381104e3,P:1386288e3,HB:1390867200,v:1393891200,w:1399334400,x:1401753600,y:1405987200,z:1409616e3,IB:1417132800,JB:1422316800,KB:1425945600,LB:1430179200,MB:1433808e3,NB:1438646400,OB:1442448e3,PB:1445904e3,QB:1449100800,RB:1454371200,SB:1457308800,TB:146232e4,UB:1465344e3,VB:1470096e3,WB:1474329600,XB:1477267200,YB:1481587200,ZB:1486425600,aB:1490054400,bB:1494374400,cB:1498003200,dB:1502236800,eB:1506470400,fB:1510099200,gB:1515024e3,hB:1517961600,iB:1521676800,jB:1525910400,kB:1530144e3,lB:1534982400,mB:1537833600,nB:1543363200,oB:1548201600,pB:1554768e3,qB:1561593600,rB:1566259200,sB:1570406400,tB:1573689600,uB:1578441600,vB:1583971200,wB:1587513600,xB:1592956800,yB:1595894400,zB:1600128e3,"0B":1603238400,"1B":161352e4,"2B":1612224e3,"3B":1616544e3,"4B":1619568e3,"5B":1623715200,"6B":1627948800,Q:1631577600,I:1633392e3,R:1635984e3,GC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152e3,Z:1660780800,a:1663113600,b:1668816e3,c:1668643200,d:1671062400,e:1675209600,f:1677024e3,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:169992e4,o:169992e4,p:1702944e3,q:1707264e3,r:1710115200,s:1711497600,t:1716336e3,u:1719273600},D:{G:"o",B:"o",C:"o",rC:"o",sC:"o",tC:"o",uC:"o","7B":"o",ZC:"o",vC:"o","8B":"o"}},G:{A:{F:0,KC:0,wC:0,aC:.00284927,xC:.00142463,yC:.00854781,zC:.00854781,"0C":.00142463,"1C":.00712317,"2C":.0299173,"3C":.00569854,"4C":.0512868,"5C":.108272,"6C":.0128217,"7C":.00997244,"8C":.189476,"9C":.00284927,AD:.0185202,BD:.00997244,CD:.0370405,DD:.105423,ED:.112546,FD:.0569854,MC:.0612593,NC:.0698071,"9B":.0840534,GD:.755056,AC:.169531,OC:.354734,PC:.173805,QC:.299173,RC:.0641085,SC:.126792,HD:1.01149,BC:.103998,TC:.165258,UC:.166682,VC:.274954,WC:1.95317,XC:7.56766,YC:.0128217,CC:.0384651},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","KC","wC","aC","xC","yC","zC","F","0C","1C","2C","3C","4C","5C","6C","7C","8C","9C","AD","BD","CD","DD","ED","FD","MC","NC","9B","GD","AC","OC","PC","QC","RC","SC","HD","BC","TC","UC","VC","WC","XC","YC","CC",""],E:"Safari on iOS",F:{KC:1270252800,wC:1283904e3,aC:1299628800,xC:1331078400,yC:1359331200,zC:1394409600,F:1410912e3,"0C":1413763200,"1C":1442361600,"2C":1458518400,"3C":1473724800,"4C":1490572800,"5C":1505779200,"6C":1522281600,"7C":1537142400,"8C":1553472e3,"9C":1568851200,AD:1572220800,BD:1580169600,CD:1585008e3,DD:1600214400,ED:1619395200,FD:1632096e3,MC:1639353600,NC:1647216e3,"9B":1652659200,GD:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432e3,RC:1679875200,SC:1684368e3,HD:1690156800,BC:1694995200,TC:1698192e3,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null}},H:{A:{ID:.05},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ID","","",""],E:"Opera Mini",F:{ID:1426464e3}},I:{A:{DC:0,J:653848e-10,D:.651756,JD:0,KD:0,LD:0,MD:13077e-8,aC:326924e-9,ND:0,OD:.00117693},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","JD","KD","LD","DC","J","MD","aC","ND","OD","D","","",""],E:"Android Browser",F:{JD:1256515200,KD:1274313600,LD:1291593600,DC:1298332800,J:1318896e3,MD:1341792e3,aC:1374624e3,ND:1386547200,OD:1401667200,D:1721692800}},J:{A:{E:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","A","","",""],E:"Blackberry Browser",F:{E:1325376e3,A:1359504e3}},K:{A:{A:0,B:0,C:0,I:1.12567,"7B":0,ZC:0,"8B":0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","7B","ZC","C","8B","I","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752e3,"7B":1314835200,ZC:1318291200,C:1330300800,"8B":1349740800,I:1709769600},D:{I:"webkit"}},L:{A:{D:43.5971},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Chrome for Android",F:{D:1721692800}},M:{A:{D:.333211},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Firefox for Android",F:{D:1718064e3}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456e3}},O:{A:{"9B":.993346},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","9B","","",""],E:"UC Browser for Android",F:{"9B":1710115200},D:{"9B":"webkit"}},P:{A:{0:2.06723,J:.0969013,v:.0215336,w:.053834,x:.0646008,y:.0861344,z:.107668,PD:.0107668,QD:.0107668,RD:.0430672,SD:0,TD:0,LC:0,UD:.0107668,VD:0,WD:.0107668,XD:0,YD:0,AC:0,BC:.0215336,CC:.0107668,ZD:.0215336},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","PD","QD","RD","SD","TD","LC","UD","VD","WD","XD","YD","AC","BC","CC","ZD","v","w","x","y","z","0","","",""],E:"Samsung Internet",F:{0:1715126400,J:1461024e3,PD:1481846400,QD:1509408e3,RD:1528329600,SD:1546128e3,TD:1554163200,LC:1567900800,UD:1582588800,VD:1593475200,WD:1605657600,XD:1618531200,YD:1629072e3,AC:1640736e3,BC:1651708800,CC:1659657600,ZD:1667260800,v:1677369600,w:1684454400,x:1689292800,y:1697587200,z:1711497600}},Q:{A:{aD:.31435},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","aD","","",""],E:"QQ Browser",F:{aD:1710288e3}},R:{A:{bD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bD","","",""],E:"Baidu Browser",F:{bD:1710201600}},S:{A:{cD:.081731,dD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","cD","dD","","",""],E:"KaiOS Browser",F:{cD:1527811200,dD:1631664e3}}}},56438:e=>{e.exports={0:"25",1:"112",2:"113",3:"114",4:"115",5:"116",6:"117",7:"118",8:"119",9:"120",A:"10",B:"11",C:"12",D:"127",E:"7",F:"8",G:"9",H:"15",I:"80",J:"4",K:"6",L:"13",M:"14",N:"16",O:"17",P:"18",Q:"79",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"107",r:"108",s:"109",t:"110",u:"111",v:"20",w:"21",x:"22",y:"23",z:"24",AB:"121",BB:"122",CB:"123",DB:"124",EB:"125",FB:"126",GB:"5",HB:"19",IB:"26",JB:"27",KB:"28",LB:"29",MB:"30",NB:"31",OB:"32",PB:"33",QB:"34",RB:"35",SB:"36",TB:"37",UB:"38",VB:"39",WB:"40",XB:"41",YB:"42",ZB:"43",aB:"44",bB:"45",cB:"46",dB:"47",eB:"48",fB:"49",gB:"50",hB:"51",iB:"52",jB:"53",kB:"54",lB:"55",mB:"56",nB:"57",oB:"58",pB:"60",qB:"62",rB:"63",sB:"64",tB:"65",uB:"66",vB:"67",wB:"68",xB:"69",yB:"70",zB:"71","0B":"72","1B":"73","2B":"74","3B":"75","4B":"76","5B":"77","6B":"78","7B":"11.1","8B":"12.1","9B":"15.5",AC:"16.0",BC:"17.0",CC:"18.0",DC:"3",EC:"59",FC:"61",GC:"82",HC:"128",IC:"129",JC:"130",KC:"3.2",LC:"10.1",MC:"15.2-15.3",NC:"15.4",OC:"16.1",PC:"16.2",QC:"16.3",RC:"16.4",SC:"16.5",TC:"17.1",UC:"17.2",VC:"17.3",WC:"17.4",XC:"17.5",YC:"17.6",ZC:"11.5",aC:"4.2-4.3",bC:"5.5",cC:"2",dC:"131",eC:"3.5",fC:"3.6",gC:"3.1",hC:"5.1",iC:"6.1",jC:"7.1",kC:"9.1",lC:"13.1",mC:"14.1",nC:"15.1",oC:"15.6",pC:"16.6",qC:"TP",rC:"9.5-9.6",sC:"10.0-10.1",tC:"10.5",uC:"10.6",vC:"11.6",wC:"4.0-4.1",xC:"5.0-5.1",yC:"6.0-6.1",zC:"7.0-7.1","0C":"8.1-8.4","1C":"9.0-9.2","2C":"9.3","3C":"10.0-10.2","4C":"10.3","5C":"11.0-11.2","6C":"11.3-11.4","7C":"12.0-12.1","8C":"12.2-12.5","9C":"13.0-13.1",AD:"13.2",BD:"13.3",CD:"13.4-13.7",DD:"14.0-14.4",ED:"14.5-14.8",FD:"15.0-15.1",GD:"15.6-15.8",HD:"16.6-16.7",ID:"all",JD:"2.1",KD:"2.2",LD:"2.3",MD:"4.1",ND:"4.4",OD:"4.4.3-4.4.4",PD:"5.0-5.4",QD:"6.2-6.4",RD:"7.2-7.4",SD:"8.2",TD:"9.2",UD:"11.1-11.2",VD:"12.0",WD:"13.0",XD:"14.0",YD:"15.0",ZD:"19.0",aD:"14.9",bD:"13.52",cD:"2.5",dD:"3.0-3.1"}},90562:e=>{e.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}},76019:(e,u,r)=>{"use strict";const n=r(62660).browsers,d=r(5040).browserVersions,t=r(96481);function a(e){return Object.keys(e).reduce(((u,r)=>(u[d[r]]=e[r],u)),{})}e.exports.X=Object.keys(t).reduce(((e,u)=>{let r=t[u];return e[n[u]]=Object.keys(r).reduce(((e,u)=>("A"===u?e.usage_global=a(r[u]):"C"===u?e.versions=r[u].reduce(((e,u)=>(""===u?e.push(null):e.push(d[u]),e)),[]):"D"===u?e.prefix_exceptions=a(r[u]):"E"===u?e.browser=r[u]:"F"===u?e.release_date=Object.keys(r[u]).reduce(((e,n)=>(e[d[n]]=r[u][n],e)),{}):e.prefix=r[u],e)),{}),e}),{})},5040:(e,u,r)=>{e.exports.browserVersions=r(56438)},62660:(e,u,r)=>{e.exports.browsers=r(90562)},68093:e=>{e.exports={"0.20":"39",.21:"41",.22:"41",.23:"41",.24:"41",.25:"42",.26:"42",.27:"43",.28:"43",.29:"43","0.30":"44",.31:"45",.32:"45",.33:"45",.34:"45",.35:"45",.36:"47",.37:"49","1.0":"49",1.1:"50",1.2:"51",1.3:"52",1.4:"53",1.5:"54",1.6:"56",1.7:"58",1.8:"59","2.0":"61",2.1:"61","3.0":"66",3.1:"66","4.0":"69",4.1:"69",4.2:"69","5.0":"73","6.0":"76",6.1:"76","7.0":"78",7.1:"78",7.2:"78",7.3:"78","8.0":"80",8.1:"80",8.2:"80",8.3:"80",8.4:"80",8.5:"80","9.0":"83",9.1:"83",9.2:"83",9.3:"83",9.4:"83","10.0":"85",10.1:"85",10.2:"85",10.3:"85",10.4:"85","11.0":"87",11.1:"87",11.2:"87",11.3:"87",11.4:"87",11.5:"87","12.0":"89",12.1:"89",12.2:"89","13.0":"91",13.1:"91",13.2:"91",13.3:"91",13.4:"91",13.5:"91",13.6:"91","14.0":"93",14.1:"93",14.2:"93","15.0":"94",15.1:"94",15.2:"94",15.3:"94",15.4:"94",15.5:"94","16.0":"96",16.1:"96",16.2:"96","17.0":"98",17.1:"98",17.2:"98",17.3:"98",17.4:"98","18.0":"100",18.1:"100",18.2:"100",18.3:"100","19.0":"102",19.1:"102","20.0":"104",20.1:"104",20.2:"104",20.3:"104","21.0":"106",21.1:"106",21.2:"106",21.3:"106",21.4:"106","22.0":"108",22.1:"108",22.2:"108",22.3:"108","23.0":"110",23.1:"110",23.2:"110",23.3:"110","24.0":"112",24.1:"112",24.2:"112",24.3:"112",24.4:"112",24.5:"112",24.6:"112",24.7:"112",24.8:"112","25.0":"114",25.1:"114",25.2:"114",25.3:"114",25.4:"114",25.5:"114",25.6:"114",25.7:"114",25.8:"114",25.9:"114","26.0":"116",26.1:"116",26.2:"116",26.3:"116",26.4:"116",26.5:"116",26.6:"116","27.0":"118",27.1:"118",27.2:"118",27.3:"118","28.0":"120",28.1:"120",28.2:"120",28.3:"120","29.0":"122",29.1:"122",29.2:"122",29.3:"122",29.4:"122","30.0":"124",30.1:"124",30.2:"124",30.3:"124","31.0":"126",31.1:"126",31.2:"126",31.3:"126","32.0":"128"}},9182:(e,u,r)=>{"use strict";var n=r(43034),d=r(2003);e.exports={transform:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=u.length>0?u:Object.keys(n),t=void 0,a={};return r.forEach((function(u){if(!n.hasOwnProperty(u))throw new Error("Unknown compat-transform: "+u+". Available transforms are: "+Object.keys(n).join(", "));var r=n[u];t=d.transform(e,r),e=t.getAST(),"function"==typeof r.getExtra&&(a[u]=r.getExtra())})),t.setExtra(a),t}}},51537:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(u,r){var n=r.flags,d=r.groups,t=r.source;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._re=u,this._groups=d,this.flags=n,this.source=t||u.source,this.dotAll=n.includes("s"),this.global=u.global,this.ignoreCase=u.ignoreCase,this.multiline=u.multiline,this.sticky=u.sticky,this.unicode=u.unicode}return u(e,[{key:"test",value:function(e){return this._re.test(e)}},{key:"compile",value:function(e){return this._re.compile(e)}},{key:"toString",value:function(){return this._toStringResult||(this._toStringResult="/"+this.source+"/"+this.flags),this._toStringResult}},{key:"exec",value:function(e){var u=this._re.exec(e);if(!this._groups||!u)return u;for(var r in u.groups={},this._groups){var n=this._groups[r];u.groups[r]=u[n]}return u}}]),e}();e.exports={RegExpTree:r}},45640:e=>{"use strict";e.exports={_hasUFlag:!1,shouldRun:function(e){return!!e.flags.includes("s")&&(e.flags=e.flags.replace("s",""),this._hasUFlag=e.flags.includes("u"),!0)},Char:function(e){var u=e.node;if("meta"===u.kind&&"."===u.value){var r="\\uFFFF",n="";this._hasUFlag&&(r="\\u{10FFFF}",n=""),e.replace({type:"CharacterClass",expressions:[{type:"ClassRange",from:{type:"Char",value:"\\0",kind:"decimal",symbol:"\0"},to:{type:"Char",value:r,kind:"unicode",symbol:n}}]})}}}},62514:e=>{"use strict";e.exports={_groupNames:{},init:function(){this._groupNames={}},getExtra:function(){return this._groupNames},Group:function(e){var u=e.node;u.name&&(this._groupNames[u.name]=u.number,delete u.name,delete u.nameRaw)},Backreference:function(e){var u=e.node;"name"===u.kind&&(u.kind="number",u.reference=u.number,delete u.referenceRaw)}}},57559:e=>{"use strict";e.exports={RegExp:function(e){var u=e.node;u.flags.includes("x")&&(u.flags=u.flags.replace("x",""))}}},43034:(e,u,r)=>{"use strict";e.exports={dotAll:r(45640),namedCapturingGroups:r(62514),xFlag:r(57559)}},20042:e=>{"use strict";function u(e){return e?r[e.type](e):""}var r={RegExp:function(e){return"/"+u(e.body)+"/"+e.flags},Alternative:function(e){return(e.expressions||[]).map(u).join("")},Disjunction:function(e){return u(e.left)+"|"+u(e.right)},Group:function(e){var r=u(e.expression);return e.capturing?e.name?"(?<"+(e.nameRaw||e.name)+">"+r+")":"("+r+")":"(?:"+r+")"},Backreference:function(e){switch(e.kind){case"number":return"\\"+e.reference;case"name":return"\\k<"+(e.referenceRaw||e.reference)+">";default:throw new TypeError("Unknown Backreference kind: "+e.kind)}},Assertion:function(e){switch(e.kind){case"^":case"$":case"\\b":case"\\B":return e.kind;case"Lookahead":var r=u(e.assertion);return e.negative?"(?!"+r+")":"(?="+r+")";case"Lookbehind":var n=u(e.assertion);return e.negative?"(?<!"+n+")":"(?<="+n+")";default:throw new TypeError("Unknown Assertion kind: "+e.kind)}},CharacterClass:function(e){var r=e.expressions.map(u).join("");return e.negative?"[^"+r+"]":"["+r+"]"},ClassRange:function(e){return u(e.from)+"-"+u(e.to)},Repetition:function(e){return""+u(e.expression)+u(e.quantifier)},Quantifier:function(e){var u=void 0,r=e.greedy?"":"?";switch(e.kind){case"+":case"?":case"*":u=e.kind;break;case"Range":u=e.from===e.to?"{"+e.from+"}":e.to?"{"+e.from+","+e.to+"}":"{"+e.from+",}";break;default:throw new TypeError("Unknown Quantifier kind: "+e.kind)}return""+u+r},Char:function(e){var u=e.value;switch(e.kind){case"simple":return e.escaped?"\\"+u:u;case"hex":case"unicode":case"oct":case"decimal":case"control":case"meta":return u;default:throw new TypeError("Unknown Char kind: "+e.kind)}},UnicodeProperty:function(e){return"\\"+(e.negative?"P":"p")+"{"+(e.shorthand||e.binary?"":e.name+"=")+e.value+"}"}};e.exports={generate:u}},85162:e=>{"use strict";var u=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function r(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var n=null;function d(e,u){if(!u)return!1;if(e.length!==u.length)return!1;for(var n=0;n<e.length;n++){var d=e[n],t=u[n];if(d.size!==t.size)return!1;if([].concat(r(d)).sort().join(",")!==[].concat(r(t)).sort().join(","))return!1}return!0}function t(e,u,r,n){var d=!0,t=!1,s=void 0;try{for(var i,f=n[Symbol.iterator]();!(d=(i=f.next()).done);d=!0)if(!a(e,u,r,i.value))return!1}catch(e){t=!0,s=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw s}}return!0}function a(e,u,r,d){if(!n[e]||!n[u])return!1;var t=r[e][d],a=r[u][d];return!t&&!a||n[e].has(t)&&n[u].has(a)}e.exports={minimize:function(e){var a=e.getTransitionTable(),s=Object.keys(a),i=e.getAlphabet(),f=e.getAcceptingStateNumbers();n={};var o=new Set;s.forEach((function(e){e=Number(e),f.has(e)?n[e]=f:(o.add(e),n[e]=o)}));var c=[[o,f].filter((function(e){return e.size>0}))],l=void 0,v=void 0;l=c[c.length-1],v=c[c.length-2];for(var b=function(){var e,u={},d=!0,s=!1,f=void 0;try{for(var o,b=l[Symbol.iterator]();!(d=(o=b.next()).done);d=!0){var p=o.value,m={},h=(e=p,Array.isArray(e)?e:Array.from(e)),y=h[0],g=h.slice(1);m[y]=new Set([y]);var C=!0,B=!1,_=void 0;try{e:for(var x,A=g[Symbol.iterator]();!(C=(x=A.next()).done);C=!0){var j=x.value,S=!0,w=!1,k=void 0;try{for(var P,E=Object.keys(m)[Symbol.iterator]();!(S=(P=E.next()).done);S=!0){var O=P.value;if(t(j,O,a,i)){m[O].add(j),m[j]=m[O];continue e}}}catch(e){w=!0,k=e}finally{try{!S&&E.return&&E.return()}finally{if(w)throw k}}m[j]=new Set([j])}}catch(e){B=!0,_=e}finally{try{!C&&A.return&&A.return()}finally{if(B)throw _}}Object.assign(u,m)}}catch(e){s=!0,f=e}finally{try{!d&&b.return&&b.return()}finally{if(s)throw f}}n=u;var D=new Set(Object.keys(u).map((function(e){return u[e]})));c.push([].concat(r(D))),l=c[c.length-1],v=c[c.length-2]};!d(l,v);)b();var p=new Map,m=1;l.forEach((function(e){return p.set(e,m++)}));var h={},y=new Set,g=function(e,u){var r=!0,n=!1,d=void 0;try{for(var t,a=e[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var s=t.value;f.has(s)&&y.add(u)}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}},C=!0,B=!1,_=void 0;try{for(var x,A=p.entries()[Symbol.iterator]();!(C=(x=A.next()).done);C=!0){var j=x.value,S=u(j,2),w=S[0],k=S[1];h[k]={};var P=!0,E=!1,O=void 0;try{for(var D,T=i[Symbol.iterator]();!(P=(D=T.next()).done);P=!0){var R=D.value;g(w,k);var N=void 0,L=!0,F=!1,I=void 0;try{for(var M,U=w[Symbol.iterator]();!(L=(M=U.next()).done);L=!0){var G=M.value;if(N=a[G][R])break}}catch(e){F=!0,I=e}finally{try{!L&&U.return&&U.return()}finally{if(F)throw I}}N&&(h[k][R]=p.get(n[N]))}}catch(e){E=!0,O=e}finally{try{!P&&T.return&&T.return()}finally{if(E)throw O}}}}catch(e){B=!0,_=e}finally{try{!C&&A.return&&A.return()}finally{if(B)throw _}}return e.setTransitionTable(h),e.setAcceptingStateNumbers(y),e}}},32569:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}();function d(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var t=r(85162),a=r(75821).EPSILON_CLOSURE,s=function(){function e(u){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._nfa=u}return n(e,[{key:"minimize",value:function(){this.getTransitionTable(),this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._originalTransitionTable=this._transitionTable,t.minimize(this)}},{key:"getAlphabet",value:function(){return this._nfa.getAlphabet()}},{key:"getAcceptingStateNumbers",value:function(){return this._acceptingStateNumbers||this.getTransitionTable(),this._acceptingStateNumbers}},{key:"getOriginaAcceptingStateNumbers",value:function(){return this._originalAcceptingStateNumbers||this.getTransitionTable(),this._originalAcceptingStateNumbers}},{key:"setTransitionTable",value:function(e){this._transitionTable=e}},{key:"setAcceptingStateNumbers",value:function(e){this._acceptingStateNumbers=e}},{key:"getTransitionTable",value:function(){var e=this;if(this._transitionTable)return this._transitionTable;var u=this._nfa.getTransitionTable(),r=Object.keys(u);this._acceptingStateNumbers=new Set;for(var n=[u[r[0]][a]],t=this.getAlphabet(),s=this._nfa.getAcceptingStateNumbers(),i={},f=function(u){var r=!0,n=!1,d=void 0;try{for(var t,a=s[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var i=t.value;if(-1!==u.indexOf(i)){e._acceptingStateNumbers.add(u.join(","));break}}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}};n.length>0;){var o=n.shift(),c=o.join(",");i[c]={};var l=!0,v=!1,b=void 0;try{for(var p,m=t[Symbol.iterator]();!(l=(p=m.next()).done);l=!0){var h=p.value,y=[];f(o);var g=!0,C=!1,B=void 0;try{for(var _,x=o[Symbol.iterator]();!(g=(_=x.next()).done);g=!0){var A=u[_.value][h];if(A){var j=!0,S=!1,w=void 0;try{for(var k,P=A[Symbol.iterator]();!(j=(k=P.next()).done);j=!0){var E=k.value;u[E]&&y.push.apply(y,d(u[E][a]))}}catch(e){S=!0,w=e}finally{try{!j&&P.return&&P.return()}finally{if(S)throw w}}}}}catch(e){C=!0,B=e}finally{try{!g&&x.return&&x.return()}finally{if(C)throw B}}var O=new Set(y),D=[].concat(d(O));if(D.length>0){var T=D.join(",");i[c][h]=T,i.hasOwnProperty(T)||n.unshift(D)}}}catch(e){v=!0,b=e}finally{try{!l&&m.return&&m.return()}finally{if(v)throw b}}}return this._transitionTable=this._remapStateNumbers(i)}},{key:"_remapStateNumbers",value:function(e){var u={};this._originalTransitionTable=e;var r={};for(var n in Object.keys(e).forEach((function(e,r){u[e]=r+1})),e){var d=e[n],t={};for(var a in d)t[a]=u[d[a]];r[u[n]]=t}this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._acceptingStateNumbers=new Set;var s=!0,i=!1,f=void 0;try{for(var o,c=this._originalAcceptingStateNumbers[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value;this._acceptingStateNumbers.add(u[l])}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}return r}},{key:"getOriginalTransitionTable",value:function(){return this._originalTransitionTable||this.getTransitionTable(),this._originalTransitionTable}},{key:"matches",value:function(e){for(var u=1,r=0,n=this.getTransitionTable();e[r];)if(!(u=n[u][e[r++]]))return!1;return!!this.getAcceptingStateNumbers().has(u)}}]),e}();e.exports=s},36734:(e,u,r)=>{"use strict";var n=r(91909),d=r(32569),t=r(28398),a=r(70860);e.exports={NFA:n,DFA:d,builders:a,toNFA:function(e){return t.build(e)},toDFA:function(e){return new d(this.toNFA(e))},test:function(e,u){return this.toDFA(e).matches(u)}}},70860:(e,u,r)=>{"use strict";var n=r(91909),d=r(48617),t=r(75821).EPSILON;function a(e){var u=new d,r=new d({accepting:!0});return new n(u.addTransition(e,r),r)}function s(e,u){return e.out.accepting=!1,u.out.accepting=!0,e.out.addTransition(t,u.in),new n(e.in,u.out)}function i(e,u){var r=new d,a=new d;return r.addTransition(t,e.in),r.addTransition(t,u.in),a.accepting=!0,e.out.accepting=!1,u.out.accepting=!1,e.out.addTransition(t,a),u.out.addTransition(t,a),new n(r,a)}e.exports={alt:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var d=!0,t=!1,a=void 0;try{for(var i,f=r[Symbol.iterator]();!(d=(i=f.next()).done);d=!0)e=s(e,i.value)}catch(e){t=!0,a=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw a}}return e},char:a,e:function(){return a(t)},or:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var d=!0,t=!1,a=void 0;try{for(var s,f=r[Symbol.iterator]();!(d=(s=f.next()).done);d=!0)e=i(e,s.value)}catch(e){t=!0,a=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw a}}return e},rep:function(e){return e.in.addTransition(t,e.out),e.out.addTransition(t,e.in),e},repExplicit:function(e){var u=new d,r=new d({accepting:!0});return u.addTransition(t,e.in),u.addTransition(t,r),e.out.accepting=!1,e.out.addTransition(t,r),r.addTransition(t,e.in),new n(u,r)},plusRep:function(e){return e.out.addTransition(t,e.in),e},questionRep:function(e){return e.in.addTransition(t,e.out),e}}},28398:(e,u,r)=>{"use strict";var n=r(23810),d=r(70860),t=d.alt,a=d.char,s=d.or,i=d.rep,f=d.plusRep,o=d.questionRep;function c(e){if(e&&!l[e.type])throw new Error(e.type+" is not supported in NFA/DFA interpreter.");return e?l[e.type](e):""}var l={RegExp:function(e){if(""!==e.flags)throw new Error("NFA/DFA: Flags are not supported yet.");return c(e.body)},Alternative:function(e){var u=(e.expressions||[]).map(c);return t.apply(void 0,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u))},Disjunction:function(e){return s(c(e.left),c(e.right))},Repetition:function(e){switch(e.quantifier.kind){case"*":return i(c(e.expression));case"+":return f(c(e.expression));case"?":return o(c(e.expression));default:throw new Error("Unknown repeatition: "+e.quantifier.kind+".")}},Char:function(e){if("simple"!==e.kind)throw new Error("NFA/DFA: Only simple chars are supported yet.");return a(e.value)},Group:function(e){return c(e.expression)}};e.exports={build:function(e){var u=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(u=n.parse(e,{captureLocations:!0})),c(u)}}},48617:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),d=r(81191),t=r(75821).EPSILON,a=function(e){function u(){return function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,u),function(e,u){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!u||"object"!=typeof u&&"function"!=typeof u?e:u}(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return function(e,u){if("function"!=typeof u&&null!==u)throw new TypeError("Super expression must either be null or a function, not "+typeof u);e.prototype=Object.create(u&&u.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(e,u):e.__proto__=u)}(u,e),n(u,[{key:"matches",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;if(u.has(this))return!1;if(u.add(this),0===e.length){if(this.accepting)return!0;var r=!0,n=!1,d=void 0;try{for(var a,s=this.getTransitionsOnSymbol(t)[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(a.value.matches("",u))return!0}catch(e){n=!0,d=e}finally{try{!r&&s.return&&s.return()}finally{if(n)throw d}}return!1}var i=e[0],f=e.slice(1),o=this.getTransitionsOnSymbol(i),c=!0,l=!1,v=void 0;try{for(var b,p=o[Symbol.iterator]();!(c=(b=p.next()).done);c=!0)if(b.value.matches(f))return!0}catch(e){l=!0,v=e}finally{try{!c&&p.return&&p.return()}finally{if(l)throw v}}var m=!0,h=!1,y=void 0;try{for(var g,C=this.getTransitionsOnSymbol(t)[Symbol.iterator]();!(m=(g=C.next()).done);m=!0)if(g.value.matches(e,u))return!0}catch(e){h=!0,y=e}finally{try{!m&&C.return&&C.return()}finally{if(h)throw y}}return!1}},{key:"getEpsilonClosure",value:function(){var e=this;return this._epsilonClosure||function(){var u=e.getTransitionsOnSymbol(t),r=e._epsilonClosure=new Set;r.add(e);var n=!0,d=!1,a=void 0;try{for(var s,i=u[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){var f=s.value;r.has(f)||(r.add(f),f.getEpsilonClosure().forEach((function(e){return r.add(e)})))}}catch(e){d=!0,a=e}finally{try{!n&&i.return&&i.return()}finally{if(d)throw a}}}(),this._epsilonClosure}}]),u}(d);e.exports=a},91909:(e,u,r)=>{"use strict";var n=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")},d=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),t=r(75821),a=t.EPSILON,s=t.EPSILON_CLOSURE,i=function(){function e(u,r){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.in=u,this.out=r}return d(e,[{key:"matches",value:function(e){return this.in.matches(e)}},{key:"getAlphabet",value:function(){if(!this._alphabet){this._alphabet=new Set;var e=this.getTransitionTable();for(var u in e){var r=e[u];for(var n in r)n!==s&&this._alphabet.add(n)}}return this._alphabet}},{key:"getAcceptingStates",value:function(){return this._acceptingStates||this.getTransitionTable(),this._acceptingStates}},{key:"getAcceptingStateNumbers",value:function(){if(!this._acceptingStateNumbers){this._acceptingStateNumbers=new Set;var e=!0,u=!1,r=void 0;try{for(var n,d=this.getAcceptingStates()[Symbol.iterator]();!(e=(n=d.next()).done);e=!0){var t=n.value;this._acceptingStateNumbers.add(t.number)}}catch(e){u=!0,r=e}finally{try{!e&&d.return&&d.return()}finally{if(u)throw r}}}return this._acceptingStateNumbers}},{key:"getTransitionTable",value:function(){var e=this;if(!this._transitionTable){this._transitionTable={},this._acceptingStates=new Set;var u=new Set,r=new Set;!function d(t){if(!u.has(t)){u.add(t),t.number=u.size,e._transitionTable[t.number]={},t.accepting&&e._acceptingStates.add(t);var a=t.getTransitions(),s=!0,i=!1,f=void 0;try{for(var o,c=a[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value,v=n(l,2),b=v[0],p=v[1],m=[];r.add(b);var h=!0,y=!1,g=void 0;try{for(var C,B=p[Symbol.iterator]();!(h=(C=B.next()).done);h=!0){var _=C.value;d(_),m.push(_.number)}}catch(e){y=!0,g=e}finally{try{!h&&B.return&&B.return()}finally{if(y)throw g}}e._transitionTable[t.number][b]=m}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}}}(this.in),u.forEach((function(u){delete e._transitionTable[u.number][a],e._transitionTable[u.number][s]=[].concat(function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u.getEpsilonClosure())).map((function(e){return e.number}))}))}return this._transitionTable}}]),e}();e.exports=i},75821:e=>{"use strict";e.exports={EPSILON:"ε",EPSILON_CLOSURE:"ε*"}},81191:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(){var u=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).accepting,r=void 0!==u&&u;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._transitions=new Map,this.accepting=r}return u(e,[{key:"getTransitions",value:function(){return this._transitions}},{key:"addTransition",value:function(e,u){return this.getTransitionsOnSymbol(e).add(u),this}},{key:"getTransitionsOnSymbol",value:function(e){var u=this._transitions.get(e);return u||(u=new Set,this._transitions.set(e,u)),u}}]),e}();e.exports=r},63072:(e,u,r)=>{"use strict";var n=r(1379),d=r(23810),t=r(2003),a=r(53256);e.exports={optimize:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.whitelist,s=void 0===r?[]:r,i=u.blacklist,f=void 0===i?[]:i,o=(s.length>0?s:Array.from(a.keys())).filter((function(e){return!f.includes(e)})),c=e;e instanceof RegExp&&(e=""+e),"string"==typeof e&&(c=d.parse(e));var l=new t.TransformResult(c),v=void 0;do{v=l.toString(),c=n(l.getAST()),o.forEach((function(e){if(!a.has(e))throw new Error("Unknown optimization-transform: "+e+". Available transforms are: "+Array.from(a.keys()).join(", "));var u=a.get(e),r=t.transform(c,u);r.toString()!==l.toString()&&(r.toString().length<=l.toString().length?l=r:c=n(l.getAST()))}))}while(l.toString()!==v);return l}}},98002:e=>{"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0);e.exports={_AZClassRanges:null,_hasUFlag:!1,init:function(e){this._AZClassRanges=new Set,this._hasUFlag=e.flags.includes("u")},shouldRun:function(e){return e.flags.includes("i")},Char:function(e){var n=e.node,d=e.parent;if(!isNaN(n.codePoint)&&(this._hasUFlag||!(n.codePoint>=4096))){if("ClassRange"===d.type){if(!(this._AZClassRanges.has(d)||(t=d,a=t.from,s=t.to,a.codePoint>=u&&a.codePoint<=r&&s.codePoint>=u&&s.codePoint<=r)))return;this._AZClassRanges.add(d)}var t,a,s,i=n.symbol.toLowerCase();i!==n.symbol&&(n.value=function(e,u){var r=e.codePointAt(0);if("decimal"===u.kind)return"\\"+r;if("oct"===u.kind)return"\\0"+r.toString(8);if("hex"===u.kind)return"\\x"+r.toString(16);if("unicode"===u.kind){if(u.isSurrogatePair){var n=function(e){var u=(e-65536)%1024+56320;return{lead:(Math.floor((e-65536)/1024)+55296).toString(16),trail:u.toString(16)}}(r),d=n.lead,t=n.trail;return"\\u"+"0".repeat(4-d.length)+d+"\\u"+"0".repeat(4-t.length)+t}if(u.value.includes("{"))return"\\u{"+r.toString(16)+"}";var a=r.toString(16);return"\\u"+"0".repeat(4-a.length)+a}return e}(i,n),n.symbol=i,n.codePoint=i.codePointAt(0))}}}},70436:e=>{"use strict";function u(e,u){var t=r(e),a=r(u);if(t===a){if("ClassRange"===e.type&&"ClassRange"!==u.type)return-1;if("ClassRange"===u.type&&"ClassRange"!==e.type)return 1;if("ClassRange"===e.type&&"ClassRange"===u.type)return r(e.to)-r(u.to);if(n(e)&&n(u)||d(e)&&d(u))return e.value<u.value?-1:1}return t-a}function r(e){return"Char"===e.type?"-"===e.value||"control"===e.kind?1/0:"meta"===e.kind&&isNaN(e.codePoint)?-1:e.codePoint:e.from.codePoint}function n(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return"Char"===e.type&&"meta"===e.kind&&(u?e.value===u:/^\\[dws]$/i.test(e.value))}function d(e){return"Char"===e.type&&"control"===e.kind}function t(e,u,r){for(var n=0;n<u.length;n++)if(a(e,u[n],r))return!0;return!1}function a(e,u,r){return"ClassRange"===e.type?a(e.from,u,r)&&a(e.to,u,r):!("\\S"!==u||!n(e,"\\w")&&!n(e,"\\d"))||!("\\D"!==u||!n(e,"\\W")&&!n(e,"\\s"))||!("\\w"!==u||!n(e,"\\d"))||!("\\W"!==u||!n(e,"\\s"))||"Char"===e.type&&!isNaN(e.codePoint)&&("\\s"===u?s(e):"\\S"===u?!s(e):"\\d"===u?i(e):"\\D"===u?!i(e):"\\w"===u?f(e,r):"\\W"===u&&!f(e,r))}function s(e){return 9===e.codePoint||10===e.codePoint||11===e.codePoint||12===e.codePoint||13===e.codePoint||32===e.codePoint||160===e.codePoint||5760===e.codePoint||e.codePoint>=8192&&e.codePoint<=8202||8232===e.codePoint||8233===e.codePoint||8239===e.codePoint||8287===e.codePoint||12288===e.codePoint||65279===e.codePoint}function i(e){return e.codePoint>=48&&e.codePoint<=57}function f(e,u){return i(e)||e.codePoint>=65&&e.codePoint<=90||e.codePoint>=97&&e.codePoint<=122||"_"===e.value||u&&(383===e.codePoint||8490===e.codePoint)}function o(e,u){if(u&&"ClassRange"===u.type){if(l(e,u))return!0;if(b(e)&&u.to.codePoint===e.codePoint-1)return u.to=e,!0;if("ClassRange"===e.type&&e.from.codePoint<=u.to.codePoint+1&&e.to.codePoint>=u.from.codePoint-1)return e.from.codePoint<u.from.codePoint&&(u.from=e.from),e.to.codePoint>u.to.codePoint&&(u.to=e.to),!0}return!1}function c(e,u){return!(!u||"ClassRange"!==u.type||!b(e)||u.from.codePoint!==e.codePoint+1||(u.from=e,0))}function l(e,u){return("Char"!==e.type||!isNaN(e.codePoint))&&("ClassRange"===e.type?l(e.from,u)&&l(e.to,u):e.codePoint>=u.from.codePoint&&e.codePoint<=u.to.codePoint)}function v(e,u,r){if(!b(e))return 0;for(var n=0;u>0;){var d=r[u],t=r[u-1];if(!b(t)||t.codePoint!==d.codePoint-1)break;n++,u--}return n>1?(r[u]={type:"ClassRange",from:r[u],to:e},n):0}function b(e){return e&&"Char"===e.type&&!isNaN(e.codePoint)&&(f(e,!1)||"unicode"===e.kind||"hex"===e.kind||"oct"===e.kind||"decimal"===e.kind)}e.exports={_hasIUFlags:!1,init:function(e){this._hasIUFlags=e.flags.includes("i")&&e.flags.includes("u")},CharacterClass:function(e){var r=e.node.expressions,d=[];r.forEach((function(e){n(e)&&d.push(e.value)})),r.sort(u);for(var a=0;a<r.length;a++){var s=r[a];if(t(s,d,this._hasIUFlags)||o(s,r[a-1])||c(s,r[a+1]))r.splice(a,1),a--;else{var i=v(s,a,r);r.splice(a-i+1,i),a-=i}}}}},76953:e=>{"use strict";e.exports={ClassRange:function(e){var u=e.node;u.from.codePoint===u.to.codePoint?e.replace(u.from):u.from.codePoint===u.to.codePoint-1&&(e.getParent().insertChildAt(u.to,e.index+1),e.replace(u.from))}}},322:e=>{"use strict";e.exports={CharacterClass:function(e){for(var u=e.node,r={},n=0;n<u.expressions.length;n++){var d=e.getChild(n),t=d.jsonEncode();r.hasOwnProperty(t)&&(d.remove(),n--),r[t]=!0}}}},4090:e=>{"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={_hasIFlag:!1,_hasUFlag:!1,init:function(e){this._hasIFlag=e.flags.includes("i"),this._hasUFlag=e.flags.includes("u")},CharacterClass:function(e){!function(e){e.node.expressions.forEach((function(u,r){(function(e){return"ClassRange"===e.type&&"0"===e.from.value&&"9"===e.to.value})(u)&&e.getChild(r).replace({type:"Char",value:"\\d",kind:"meta"})}))}(e),function(e,u,r){var n=e.node,a=null,s=null,i=null,f=null,o=null,c=null;n.expressions.forEach((function(n,l){d(n,"\\d")?a=e.getChild(l):function(e){return"ClassRange"===e.type&&"a"===e.from.value&&"z"===e.to.value}(n)?s=e.getChild(l):function(e){return"ClassRange"===e.type&&"A"===e.from.value&&"Z"===e.to.value}(n)?i=e.getChild(l):function(e){return"Char"===e.type&&"_"===e.value&&"simple"===e.kind}(n)?f=e.getChild(l):u&&r&&t(n,383)?o=e.getChild(l):u&&r&&t(n,8490)&&(c=e.getChild(l))})),a&&(s&&i||u&&(s||i))&&f&&(!r||!u||o&&c)&&(a.replace({type:"Char",value:"\\w",kind:"meta"}),s&&s.remove(),i&&i.remove(),f.remove(),o&&o.remove(),c&&c.remove())}(e,this._hasIFlag,this._hasUFlag),function(e){var u=e.node;if(!(u.expressions.length<r.length)&&r.every((function(e){return u.expressions.some((function(u){return e(u)}))}))){var n=u.expressions.find((function(e){return d(e,"\\n")}));n.value="\\s",n.symbol=void 0,n.codePoint=NaN,u.expressions.map((function(u,n){return r.some((function(e){return e(u)}))?e.getChild(n):void 0})).filter(Boolean).forEach((function(e){return e.remove()}))}}(e)}};var r=[function(e){return n(e," ")}].concat(u(["\\f","\\n","\\r","\\t","\\v"].map((function(e){return function(u){return d(u,e)}}))),u([160,5760,8232,8233,8239,8287,12288,65279].map((function(e){return function(u){return t(u,e)}}))),[function(e){return"ClassRange"===e.type&&t(e.from,8192)&&t(e.to,8202)}]);function n(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"simple";return"Char"===e.type&&e.value===u&&e.kind===r}function d(e,u){return n(e,u,"meta")}function t(e,u){return"Char"===e.type&&"unicode"===e.kind&&e.codePoint===u}},11810:e=>{"use strict";function u(e){return/[*[()+?$./{}|]/.test(e)}e.exports={CharacterClass:function(e){var r=e.node;if(1===r.expressions.length&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&function(e){return"Char"===e.type&&"\\b"!==e.value}(r.expressions[0])){var n=r.expressions[0],d=n.value,t=n.kind,a=n.escaped;if(r.negative){if(!function(e){return/^\\[dwsDWS]$/.test(e)}(d))return;d=function(e){return/[dws]/.test(e)?e.toUpperCase():e.toLowerCase()}(d)}e.replace({type:"Char",value:d,kind:t,escaped:a||u(d)})}}}},88111:e=>{"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0),n="a".codePointAt(0),d="z".codePointAt(0),t="0".codePointAt(0),a="9".codePointAt(0);e.exports={Char:function(e){var s,i,f,o=e.node,c=e.parent;if(!isNaN(o.codePoint)&&"simple"!==o.kind&&("ClassRange"!==c.type||(i=(s=c).from,f=s.to,i.codePoint>=t&&i.codePoint<=a&&f.codePoint>=t&&f.codePoint<=a||i.codePoint>=u&&i.codePoint<=r&&f.codePoint>=u&&f.codePoint<=r||i.codePoint>=n&&i.codePoint<=d&&f.codePoint>=n&&f.codePoint<=d))&&(l=o.codePoint)>=32&&l<=126){var l,v=String.fromCodePoint(o.codePoint),b={type:"Char",kind:"simple",value:v,symbol:v,codePoint:o.codePoint};(function(e,u){return"ClassRange"===u||"CharacterClass"===u?/[\]\\^-]/.test(e):/[*[()+?^$./\\|{}]/.test(e)})(v,c.type)&&(b.escaped=!0),e.replace(b)}}}},6632:e=>{"use strict";function u(e,u,r){for(var n=e,d=(r?n>=0:n<u.expressions.length)&&u.expressions[n];d&&"Char"===d.type&&"simple"===d.kind&&!d.escaped&&/\d/.test(d.value);)r?n--:n++,d=(r?n>=0:n<u.expressions.length)&&u.expressions[n];return Math.abs(e-n)}function r(e,u){return e&&"Char"===e.type&&"simple"===e.kind&&!e.escaped&&e.value===u}e.exports={_hasXFlag:!1,init:function(e){this._hasXFlag=e.flags.includes("x")},Char:function(e){var n=e.node;n.escaped&&function(e,n){var d=e.node.value,t=e.index,a=e.parent;return"CharacterClass"!==a.type&&"ClassRange"!==a.type?!function(e,n,d,t){return"{"===e?function(e,n){if(null==e)return!1;var d=u(e+1,n),t=e+d+1,a=t<n.expressions.length&&n.expressions[t];if(d){if(r(a,"}"))return!0;if(r(a,","))return r(a=(t=t+(d=u(t+1,n))+1)<n.expressions.length&&n.expressions[t],"}")}return!1}(n,d):"}"===e?function(e,n){if(null==e)return!1;var d=u(e-1,n,!0),t=e-d-1,a=t>=0&&n.expressions[t];return!(!d||!r(a,"{"))||!!r(a,",")&&(a=(t=t-(d=u(t-1,n,!0))-1)<n.expressions.length&&n.expressions[t],d&&r(a,"{"))}(n,d):!(!t||!/[ #]/.test(e))||/[*[()+?^$./\\|]/.test(e)}(d,t,a,n):!function(e,u,r){return"^"===e?0===u&&!r.negative:"-"===e||/[\]\\]/.test(e)}(d,t,a)}(e,this._hasXFlag)&&delete n.escaped}}},8988:e=>{"use strict";e.exports={shouldRun:function(e){return e.flags.includes("u")},Char:function(e){var u=e.node;"unicode"===u.kind&&u.isSurrogatePair&&!isNaN(u.codePoint)&&(u.value="\\u{"+u.codePoint.toString(16)+"}",delete u.isSurrogatePair)}}},97648:(e,u,r)=>{"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=r(41059),t=r(33166).increaseQuantifierByOne;function a(e,u,r){for(var t=e.node,a=Math.ceil(r/2),s=0;s<a;){var i=r-2*s-1,f=void 0,o=void 0;if(0===s?(f=u,o=e.getChild(i)):(f=d.getForNode({type:"Alternative",expressions:[].concat(n(t.expressions.slice(r-s,r)),[u.node])}),o=d.getForNode({type:"Alternative",expressions:[].concat(n(t.expressions.slice(i,r-s)))})),f.hasEqualSource(o)){for(var c=0;c<2*s+1;c++)e.getChild(i).remove();return u.replace({type:"Repetition",expression:0===s&&"Repetition"!==f.node.type?f.node:{type:"Group",capturing:!1,expression:f.node},quantifier:{type:"Quantifier",kind:"Range",from:2,to:2,greedy:!0}}),i}s++}return r}function s(e,u,r){for(var a=e.node,s=0;s<r;){var i=e.getChild(s);if("Repetition"===i.node.type&&i.node.quantifier.greedy){var f=i.getChild(),o=void 0;if("Group"!==f.node.type||f.node.capturing||(f=f.getChild()),s+1===r?"Group"!==(o=u).node.type||o.node.capturing||(o=o.getChild()):o=d.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(s+1,r+1)))}),f.hasEqualSource(o)){for(var c=s;c<r;c++)e.getChild(s+1).remove();return t(i.node.quantifier),s}}s++}return r}function i(e,u,r){var a=e.node;if("Repetition"===u.node.type&&u.node.quantifier.greedy){var s=u.getChild(),i=void 0;"Group"!==s.node.type||s.node.capturing||(s=s.getChild());var f=void 0;if("Alternative"===s.node.type?(f=s.node.expressions.length,i=d.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(r-f,r)))})):(f=1,"Group"!==(i=e.getChild(r-1)).node.type||i.node.capturing||(i=i.getChild())),i.hasEqualSource(s)){for(var o=r-f;o<r;o++)e.getChild(r-f).remove();return t(u.node.quantifier),r-f}}return r}e.exports={Alternative:function(e){for(var u=e.node,r=1;r<u.expressions.length;){var n=e.getChild(r);if((r=Math.max(1,a(e,n,r)))>=u.expressions.length)break;if(n=e.getChild(r),(r=Math.max(1,s(e,n,r)))>=u.expressions.length)break;n=e.getChild(r),r=Math.max(1,i(e,n,r)),r++}}}},61013:(e,u,r)=>{"use strict";var n=r(41059),d=r(33166),t=d.disjunctionToList,a=d.listToDisjunction;e.exports={Disjunction:function(e){var u=e.node,r={},d=t(u).filter((function(e){var u=e?n.getForNode(e).jsonEncode():"null";return!r.hasOwnProperty(u)&&(r[u]=e,!0)}));e.replace(a(d))}}},83427:e=>{"use strict";e.exports={Disjunction:function(e){var n=e.node,d=e.parent;if(u[d.type]){var t=new Map;if(r(n,t)&&t.size){var a={type:"CharacterClass",expressions:Array.from(t.keys()).sort().map((function(e){return t.get(e)}))};u[d.type](e.getParent(),a)}}}};var u={RegExp:function(e,u){e.node.body=u},Group:function(e,u){var r=e.node;r.capturing?r.expression=u:e.replace(u)}};function r(e,u){if(!e)return!1;var n=e.type;if("Disjunction"===n){var d=e.left,t=e.right;return r(d,u)&&r(t,u)}if("Char"===n){if("meta"===e.kind&&"."===e.symbol)return!1;var a=e.value;return u.set(a,e),!0}return"CharacterClass"===n&&!e.negative&&e.expressions.every((function(e){return r(e,u)}))}},53256:(e,u,r)=>{"use strict";e.exports=new Map([["charSurrogatePairToSingleUnicode",r(8988)],["charCodeToSimpleChar",r(88111)],["charCaseInsensitiveLowerCaseTransform",r(98002)],["charClassRemoveDuplicates",r(322)],["quantifiersMerge",r(31837)],["quantifierRangeToSymbol",r(88190)],["charClassClassrangesToChars",r(76953)],["charClassToMeta",r(4090)],["charClassToSingleChar",r(11810)],["charEscapeUnescape",r(6632)],["charClassClassrangesMerge",r(70436)],["disjunctionRemoveDuplicates",r(61013)],["groupSingleCharsToCharClass",r(83427)],["removeEmptyGroup",r(72097)],["ungroup",r(95435)],["combineRepeatingPatterns",r(97648)]])},88190:e=>{"use strict";e.exports={Quantifier:function(e){"Range"===e.node.kind&&(function(e){var u=e.node;0!==u.from||u.to||(u.kind="*",delete u.from)}(e),function(e){var u=e.node;1!==u.from||u.to||(u.kind="+",delete u.from)}(e),function(e){var u=e.node;1===u.from&&1===u.to&&e.parentPath.replace(e.parentPath.node.expression)}(e))}}},31837:(e,u,r)=>{"use strict";var n=r(33166).increaseQuantifierByOne;function d(e){return e.greedy&&("+"===e.kind||"*"===e.kind||"Range"===e.kind&&!e.to)}function t(e){var u=void 0,r=void 0;return"*"===e.kind?u=0:"+"===e.kind?u=1:"?"===e.kind?(u=0,r=1):(u=e.from,e.to&&(r=e.to)),{from:u,to:r}}e.exports={Repetition:function(e){var u=e.node;if("Alternative"===e.parent.type&&e.index){var r=e.getPreviousSibling();if(r)if("Repetition"===r.node.type){if(!r.getChild().hasEqualSource(e.getChild()))return;var a=t(r.node.quantifier),s=a.from,i=a.to,f=t(u.quantifier),o=f.from,c=f.to;if(r.node.quantifier.greedy!==u.quantifier.greedy&&!d(r.node.quantifier)&&!d(u.quantifier))return;u.quantifier.kind="Range",u.quantifier.from=s+o,i&&c?u.quantifier.to=i+c:delete u.quantifier.to,(d(r.node.quantifier)||d(u.quantifier))&&(u.quantifier.greedy=!0),r.remove()}else{if(!r.hasEqualSource(e.getChild()))return;n(u.quantifier),r.remove()}}}}},72097:e=>{"use strict";e.exports={Group:function(e){var u=e.node,r=e.parent,n=e.getChild();u.capturing||n||("Repetition"===r.type?e.getParent().replace(u):"RegExp"!==r.type&&e.remove())}}},95435:e=>{"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={Group:function(e){var r=e.node,n=e.parent,d=e.getChild();if(!r.capturing&&d&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&!("Disjunction"===d.node.type&&"RegExp"!==n.type||"Repetition"===n.type&&"Char"!==d.node.type&&"CharacterClass"!==d.node.type))if("Alternative"===d.node.type){var t=e.getParent();"Alternative"===t.node.type&&t.replace({type:"Alternative",expressions:[].concat(u(n.expressions.slice(0,e.index)),u(d.node.expressions),u(n.expressions.slice(e.index+1)))})}else e.replace(d.node)}}},97e3:(e,u,r)=>{"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=void 0,t={},a=void 0,s=void 0;function i(e,u){return t.options.captureLocations?e&&u?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:e||u:null}var f=[[-1,1,function(e,u){s=i(u,u),a=e}],[0,4,function(e,u,r,n,d,t,f,o){s=i(d,o),a=T({type:"RegExp",body:u,flags:S(n)},R(d,o||f))}],[1,1,function(e,u){s=i(u,u),a=e}],[1,0,function(){s=null,a=""}],[2,1,function(e,u){s=i(u,u),a=e}],[2,2,function(e,u,r,n){s=i(r,n),a=e+u}],[3,1,function(e,u){s=i(u,u),a=e}],[4,1,function(e,u){s=i(u,u),a=e}],[4,3,function(e,u,r,n,d,t){s=i(n,t);var f=null;d&&(f=R(n||d,t||d)),a=T({type:"Disjunction",left:e,right:r},f)}],[5,1,function(e,u){s=i(u,u),a=0!==e.length?1===e.length?T(e[0],s):T({type:"Alternative",expressions:e},s):null}],[6,0,function(){s=null,a=[]}],[6,2,function(e,u,r,n){s=i(r,n),a=e.concat(u)}],[7,1,function(e,u){s=i(u,u),a=T(Object.assign({type:"Assertion"},e),s)}],[7,2,function(e,u,r,n){s=i(r,n),a=e,u&&(a=T({type:"Repetition",expression:e,quantifier:u},s))}],[8,1,function(e,u){s=i(u,u),a={kind:"^"}}],[8,1,function(e,u){s=i(u,u),a={kind:"$"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\b"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\B"}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookahead",assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookahead",negative:!0,assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookbehind",assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookbehind",negative:!0,assertion:u}}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[10,1,function(e,u){s=i(u,u),a=A(e,"simple",s)}],[10,1,function(e,u){s=i(u,u),(a=A(e.slice(1),"simple",s)).escaped=!0}],[10,1,function(e,u){s=i(u,u),(a=A(e,"unicode",s)).isSurrogatePair=!0}],[10,1,function(e,u){s=i(u,u),a=A(e,"unicode",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r="P"===e[1],n=e.indexOf("="),d=e.slice(3,-1!==n?n:-1),t=void 0,a=-1===n&&x.isGeneralCategoryValue(d),s=-1===n&&x.isBinaryPropertyName(d);if(a)t=d,d="General_Category";else if(s)t=d;else{if(!x.isValidName(d))throw new SyntaxError("Invalid unicode property name: "+d+".");if(t=e.slice(n+1,-1),!x.isValidValue(d,t))throw new SyntaxError("Invalid "+d+" unicode property value: "+t+".")}return T({type:"UnicodeProperty",name:d,value:t,negative:r,shorthand:a,binary:s,canonicalName:x.getCanonicalName(d)||d,canonicalValue:x.getCanonicalValue(t)||t},u)}(e,s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"control",s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"hex",s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"oct",s)}],[10,1,function(e,u){var r,n,d;s=i(u,u),r=e,n=s,d=Number(r.slice(1)),a=d>0&&d<=y?T({type:"Backreference",kind:"number",number:d,reference:d},n):A(r,"decimal",n)}],[10,1,function(e,u){s=i(u,u),a=A(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r=e.slice(3,-1),n=D(r);if(g.hasOwnProperty(n))return T({type:"Backreference",kind:"name",number:g[n],reference:n,referenceRaw:r},u);var d=null,t=null,a=null,s=null;u&&(d=u.startOffset,t=u.startLine,a=u.endLine,s=u.startColumn);var i=/^[\w$<>]/,f=void 0,o=[A(e.slice(1,2),"simple",d?{startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:d+=2,endColumn:s+=2}:null)];for(o[0].escaped=!0,e=e.slice(2);e.length>0;){var c=null;(c=e.match(w))||(c=e.match(k))?(d&&(f={startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:d+=c[0].length,endColumn:s+=c[0].length}),o.push(A(c[0],"unicode",f)),e=e.slice(c[0].length)):(c=e.match(i))&&(d&&(f={startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:++d,endColumn:++s}),o.push(A(c[0],"simple",f)),e=e.slice(1))}return o}(e,u)}],[11,1,function(e,u){s=i(u,u),a=e}],[11,0],[12,1,function(e,u){s=i(u,u),a=e}],[12,2,function(e,u,r,n){s=i(r,n),e.greedy=!1,a=e}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=T({type:"Quantifier",kind:"Range",from:r[0],to:r[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:"Range",from:B(e)[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=T({type:"Quantifier",kind:"Range",from:r[0],to:r[1],greedy:!0},s)}],[14,1,function(e,u){s=i(u,u),a=e}],[14,1,function(e,u){s=i(u,u),a=e}],[15,3,function(e,u,r,n,d,f){s=i(n,f);var o=String(e),c=D(o);if(!t.options.allowGroupNameDuplicates&&g.hasOwnProperty(c))throw new SyntaxError('Duplicate of the named group "'+c+'".');g[c]=e.groupNumber,a=T({type:"Group",capturing:!0,name:c,nameRaw:o,number:e.groupNumber,expression:u},s)}],[15,3,function(e,u,r,n,d,t){s=i(n,t),a=T({type:"Group",capturing:!0,number:e.groupNumber,expression:u},s)}],[16,3,function(e,u,r,n,d,t){s=i(n,t),a=T({type:"Group",capturing:!1,expression:u},s)}],[17,3,function(e,u,r,n,d,t){s=i(n,t),a=T({type:"CharacterClass",negative:!0,expressions:u},s)}],[17,3,function(e,u,r,n,d,t){s=i(n,t),a=T({type:"CharacterClass",expressions:u},s)}],[18,0,function(){s=null,a=[]}],[18,1,function(e,u){s=i(u,u),a=e}],[19,1,function(e,u){s=i(u,u),a=[e]}],[19,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[19,4,function(e,u,r,n,d,t,f,o){s=i(d,o),_(e,r),a=[T({type:"ClassRange",from:e,to:r},R(d,f))],n&&(a=a.concat(n))}],[20,1,function(e,u){s=i(u,u),a=e}],[20,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[20,4,function(e,u,r,n,d,t,f,o){s=i(d,o),_(e,r),a=[T({type:"ClassRange",from:e,to:r},R(d,f))],n&&(a=a.concat(n))}],[21,1,function(e,u){s=i(u,u),a=A(e,"simple",s)}],[21,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=A(e,"meta",s)}]],o={SLASH:"23",CHAR:"24",BAR:"25",BOS:"26",EOS:"27",ESC_b:"28",ESC_B:"29",POS_LA_ASSERT:"30",R_PAREN:"31",NEG_LA_ASSERT:"32",POS_LB_ASSERT:"33",NEG_LB_ASSERT:"34",ESC_CHAR:"35",U_CODE_SURROGATE:"36",U_CODE:"37",U_PROP_VALUE_EXP:"38",CTRL_CH:"39",HEX_CODE:"40",OCT_CODE:"41",DEC_CODE:"42",META_CHAR:"43",ANY:"44",NAMED_GROUP_REF:"45",Q_MARK:"46",STAR:"47",PLUS:"48",RANGE_EXACT:"49",RANGE_OPEN:"50",RANGE_CLOSED:"51",NAMED_CAPTURE_GROUP:"52",L_PAREN:"53",NON_CAPTURE_GROUP:"54",NEG_CLASS:"55",R_BRACKET:"56",L_BRACKET:"57",DASH:"58",$:"59"},c=[{0:1,23:"s2"},{59:"acc"},{3:3,4:4,5:5,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"s7"},{23:"r6",25:"s12"},{23:"r7",25:"r7",31:"r7"},{7:14,8:15,9:16,10:25,14:27,15:42,16:43,17:26,23:"r9",24:"s28",25:"r9",26:"s17",27:"s18",28:"s19",29:"s20",30:"s21",31:"r9",32:"s22",33:"s23",34:"s24",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",52:"s44",53:"s45",54:"s46",55:"s40",57:"s41"},{1:8,2:9,24:"s10",59:"r3"},{59:"r1"},{24:"s11",59:"r2"},{24:"r4",59:"r4"},{24:"r5",59:"r5"},{5:13,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r8",25:"r8",31:"r8"},{23:"r11",24:"r11",25:"r11",26:"r11",27:"r11",28:"r11",29:"r11",30:"r11",31:"r11",32:"r11",33:"r11",34:"r11",35:"r11",36:"r11",37:"r11",38:"r11",39:"r11",40:"r11",41:"r11",42:"r11",43:"r11",44:"r11",45:"r11",52:"r11",53:"r11",54:"r11",55:"r11",57:"r11"},{23:"r12",24:"r12",25:"r12",26:"r12",27:"r12",28:"r12",29:"r12",30:"r12",31:"r12",32:"r12",33:"r12",34:"r12",35:"r12",36:"r12",37:"r12",38:"r12",39:"r12",40:"r12",41:"r12",42:"r12",43:"r12",44:"r12",45:"r12",52:"r12",53:"r12",54:"r12",55:"r12",57:"r12"},{11:47,12:48,13:49,23:"r38",24:"r38",25:"r38",26:"r38",27:"r38",28:"r38",29:"r38",30:"r38",31:"r38",32:"r38",33:"r38",34:"r38",35:"r38",36:"r38",37:"r38",38:"r38",39:"r38",40:"r38",41:"r38",42:"r38",43:"r38",44:"r38",45:"r38",46:"s52",47:"s50",48:"s51",49:"s53",50:"s54",51:"s55",52:"r38",53:"r38",54:"r38",55:"r38",57:"r38"},{23:"r14",24:"r14",25:"r14",26:"r14",27:"r14",28:"r14",29:"r14",30:"r14",31:"r14",32:"r14",33:"r14",34:"r14",35:"r14",36:"r14",37:"r14",38:"r14",39:"r14",40:"r14",41:"r14",42:"r14",43:"r14",44:"r14",45:"r14",52:"r14",53:"r14",54:"r14",55:"r14",57:"r14"},{23:"r15",24:"r15",25:"r15",26:"r15",27:"r15",28:"r15",29:"r15",30:"r15",31:"r15",32:"r15",33:"r15",34:"r15",35:"r15",36:"r15",37:"r15",38:"r15",39:"r15",40:"r15",41:"r15",42:"r15",43:"r15",44:"r15",45:"r15",52:"r15",53:"r15",54:"r15",55:"r15",57:"r15"},{23:"r16",24:"r16",25:"r16",26:"r16",27:"r16",28:"r16",29:"r16",30:"r16",31:"r16",32:"r16",33:"r16",34:"r16",35:"r16",36:"r16",37:"r16",38:"r16",39:"r16",40:"r16",41:"r16",42:"r16",43:"r16",44:"r16",45:"r16",52:"r16",53:"r16",54:"r16",55:"r16",57:"r16"},{23:"r17",24:"r17",25:"r17",26:"r17",27:"r17",28:"r17",29:"r17",30:"r17",31:"r17",32:"r17",33:"r17",34:"r17",35:"r17",36:"r17",37:"r17",38:"r17",39:"r17",40:"r17",41:"r17",42:"r17",43:"r17",44:"r17",45:"r17",52:"r17",53:"r17",54:"r17",55:"r17",57:"r17"},{4:57,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:59,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:61,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:63,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r22",24:"r22",25:"r22",26:"r22",27:"r22",28:"r22",29:"r22",30:"r22",31:"r22",32:"r22",33:"r22",34:"r22",35:"r22",36:"r22",37:"r22",38:"r22",39:"r22",40:"r22",41:"r22",42:"r22",43:"r22",44:"r22",45:"r22",46:"r22",47:"r22",48:"r22",49:"r22",50:"r22",51:"r22",52:"r22",53:"r22",54:"r22",55:"r22",57:"r22"},{23:"r23",24:"r23",25:"r23",26:"r23",27:"r23",28:"r23",29:"r23",30:"r23",31:"r23",32:"r23",33:"r23",34:"r23",35:"r23",36:"r23",37:"r23",38:"r23",39:"r23",40:"r23",41:"r23",42:"r23",43:"r23",44:"r23",45:"r23",46:"r23",47:"r23",48:"r23",49:"r23",50:"r23",51:"r23",52:"r23",53:"r23",54:"r23",55:"r23",57:"r23"},{23:"r24",24:"r24",25:"r24",26:"r24",27:"r24",28:"r24",29:"r24",30:"r24",31:"r24",32:"r24",33:"r24",34:"r24",35:"r24",36:"r24",37:"r24",38:"r24",39:"r24",40:"r24",41:"r24",42:"r24",43:"r24",44:"r24",45:"r24",46:"r24",47:"r24",48:"r24",49:"r24",50:"r24",51:"r24",52:"r24",53:"r24",54:"r24",55:"r24",57:"r24"},{23:"r25",24:"r25",25:"r25",26:"r25",27:"r25",28:"r25",29:"r25",30:"r25",31:"r25",32:"r25",33:"r25",34:"r25",35:"r25",36:"r25",37:"r25",38:"r25",39:"r25",40:"r25",41:"r25",42:"r25",43:"r25",44:"r25",45:"r25",46:"r25",47:"r25",48:"r25",49:"r25",50:"r25",51:"r25",52:"r25",53:"r25",54:"r25",55:"r25",56:"r25",57:"r25",58:"r25"},{23:"r26",24:"r26",25:"r26",26:"r26",27:"r26",28:"r26",29:"r26",30:"r26",31:"r26",32:"r26",33:"r26",34:"r26",35:"r26",36:"r26",37:"r26",38:"r26",39:"r26",40:"r26",41:"r26",42:"r26",43:"r26",44:"r26",45:"r26",46:"r26",47:"r26",48:"r26",49:"r26",50:"r26",51:"r26",52:"r26",53:"r26",54:"r26",55:"r26",56:"r26",57:"r26",58:"r26"},{23:"r27",24:"r27",25:"r27",26:"r27",27:"r27",28:"r27",29:"r27",30:"r27",31:"r27",32:"r27",33:"r27",34:"r27",35:"r27",36:"r27",37:"r27",38:"r27",39:"r27",40:"r27",41:"r27",42:"r27",43:"r27",44:"r27",45:"r27",46:"r27",47:"r27",48:"r27",49:"r27",50:"r27",51:"r27",52:"r27",53:"r27",54:"r27",55:"r27",56:"r27",57:"r27",58:"r27"},{23:"r28",24:"r28",25:"r28",26:"r28",27:"r28",28:"r28",29:"r28",30:"r28",31:"r28",32:"r28",33:"r28",34:"r28",35:"r28",36:"r28",37:"r28",38:"r28",39:"r28",40:"r28",41:"r28",42:"r28",43:"r28",44:"r28",45:"r28",46:"r28",47:"r28",48:"r28",49:"r28",50:"r28",51:"r28",52:"r28",53:"r28",54:"r28",55:"r28",56:"r28",57:"r28",58:"r28"},{23:"r29",24:"r29",25:"r29",26:"r29",27:"r29",28:"r29",29:"r29",30:"r29",31:"r29",32:"r29",33:"r29",34:"r29",35:"r29",36:"r29",37:"r29",38:"r29",39:"r29",40:"r29",41:"r29",42:"r29",43:"r29",44:"r29",45:"r29",46:"r29",47:"r29",48:"r29",49:"r29",50:"r29",51:"r29",52:"r29",53:"r29",54:"r29",55:"r29",56:"r29",57:"r29",58:"r29"},{23:"r30",24:"r30",25:"r30",26:"r30",27:"r30",28:"r30",29:"r30",30:"r30",31:"r30",32:"r30",33:"r30",34:"r30",35:"r30",36:"r30",37:"r30",38:"r30",39:"r30",40:"r30",41:"r30",42:"r30",43:"r30",44:"r30",45:"r30",46:"r30",47:"r30",48:"r30",49:"r30",50:"r30",51:"r30",52:"r30",53:"r30",54:"r30",55:"r30",56:"r30",57:"r30",58:"r30"},{23:"r31",24:"r31",25:"r31",26:"r31",27:"r31",28:"r31",29:"r31",30:"r31",31:"r31",32:"r31",33:"r31",34:"r31",35:"r31",36:"r31",37:"r31",38:"r31",39:"r31",40:"r31",41:"r31",42:"r31",43:"r31",44:"r31",45:"r31",46:"r31",47:"r31",48:"r31",49:"r31",50:"r31",51:"r31",52:"r31",53:"r31",54:"r31",55:"r31",56:"r31",57:"r31",58:"r31"},{23:"r32",24:"r32",25:"r32",26:"r32",27:"r32",28:"r32",29:"r32",30:"r32",31:"r32",32:"r32",33:"r32",34:"r32",35:"r32",36:"r32",37:"r32",38:"r32",39:"r32",40:"r32",41:"r32",42:"r32",43:"r32",44:"r32",45:"r32",46:"r32",47:"r32",48:"r32",49:"r32",50:"r32",51:"r32",52:"r32",53:"r32",54:"r32",55:"r32",56:"r32",57:"r32",58:"r32"},{23:"r33",24:"r33",25:"r33",26:"r33",27:"r33",28:"r33",29:"r33",30:"r33",31:"r33",32:"r33",33:"r33",34:"r33",35:"r33",36:"r33",37:"r33",38:"r33",39:"r33",40:"r33",41:"r33",42:"r33",43:"r33",44:"r33",45:"r33",46:"r33",47:"r33",48:"r33",49:"r33",50:"r33",51:"r33",52:"r33",53:"r33",54:"r33",55:"r33",56:"r33",57:"r33",58:"r33"},{23:"r34",24:"r34",25:"r34",26:"r34",27:"r34",28:"r34",29:"r34",30:"r34",31:"r34",32:"r34",33:"r34",34:"r34",35:"r34",36:"r34",37:"r34",38:"r34",39:"r34",40:"r34",41:"r34",42:"r34",43:"r34",44:"r34",45:"r34",46:"r34",47:"r34",48:"r34",49:"r34",50:"r34",51:"r34",52:"r34",53:"r34",54:"r34",55:"r34",56:"r34",57:"r34",58:"r34"},{23:"r35",24:"r35",25:"r35",26:"r35",27:"r35",28:"r35",29:"r35",30:"r35",31:"r35",32:"r35",33:"r35",34:"r35",35:"r35",36:"r35",37:"r35",38:"r35",39:"r35",40:"r35",41:"r35",42:"r35",43:"r35",44:"r35",45:"r35",46:"r35",47:"r35",48:"r35",49:"r35",50:"r35",51:"r35",52:"r35",53:"r35",54:"r35",55:"r35",56:"r35",57:"r35",58:"r35"},{23:"r36",24:"r36",25:"r36",26:"r36",27:"r36",28:"r36",29:"r36",30:"r36",31:"r36",32:"r36",33:"r36",34:"r36",35:"r36",36:"r36",37:"r36",38:"r36",39:"r36",40:"r36",41:"r36",42:"r36",43:"r36",44:"r36",45:"r36",46:"r36",47:"r36",48:"r36",49:"r36",50:"r36",51:"r36",52:"r36",53:"r36",54:"r36",55:"r36",56:"r36",57:"r36",58:"r36"},{10:70,18:65,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{10:70,18:83,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{23:"r47",24:"r47",25:"r47",26:"r47",27:"r47",28:"r47",29:"r47",30:"r47",31:"r47",32:"r47",33:"r47",34:"r47",35:"r47",36:"r47",37:"r47",38:"r47",39:"r47",40:"r47",41:"r47",42:"r47",43:"r47",44:"r47",45:"r47",46:"r47",47:"r47",48:"r47",49:"r47",50:"r47",51:"r47",52:"r47",53:"r47",54:"r47",55:"r47",57:"r47"},{23:"r48",24:"r48",25:"r48",26:"r48",27:"r48",28:"r48",29:"r48",30:"r48",31:"r48",32:"r48",33:"r48",34:"r48",35:"r48",36:"r48",37:"r48",38:"r48",39:"r48",40:"r48",41:"r48",42:"r48",43:"r48",44:"r48",45:"r48",46:"r48",47:"r48",48:"r48",49:"r48",50:"r48",51:"r48",52:"r48",53:"r48",54:"r48",55:"r48",57:"r48"},{4:85,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:87,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:89,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r13",24:"r13",25:"r13",26:"r13",27:"r13",28:"r13",29:"r13",30:"r13",31:"r13",32:"r13",33:"r13",34:"r13",35:"r13",36:"r13",37:"r13",38:"r13",39:"r13",40:"r13",41:"r13",42:"r13",43:"r13",44:"r13",45:"r13",52:"r13",53:"r13",54:"r13",55:"r13",57:"r13"},{23:"r37",24:"r37",25:"r37",26:"r37",27:"r37",28:"r37",29:"r37",30:"r37",31:"r37",32:"r37",33:"r37",34:"r37",35:"r37",36:"r37",37:"r37",38:"r37",39:"r37",40:"r37",41:"r37",42:"r37",43:"r37",44:"r37",45:"r37",52:"r37",53:"r37",54:"r37",55:"r37",57:"r37"},{23:"r39",24:"r39",25:"r39",26:"r39",27:"r39",28:"r39",29:"r39",30:"r39",31:"r39",32:"r39",33:"r39",34:"r39",35:"r39",36:"r39",37:"r39",38:"r39",39:"r39",40:"r39",41:"r39",42:"r39",43:"r39",44:"r39",45:"r39",46:"s56",52:"r39",53:"r39",54:"r39",55:"r39",57:"r39"},{23:"r41",24:"r41",25:"r41",26:"r41",27:"r41",28:"r41",29:"r41",30:"r41",31:"r41",32:"r41",33:"r41",34:"r41",35:"r41",36:"r41",37:"r41",38:"r41",39:"r41",40:"r41",41:"r41",42:"r41",43:"r41",44:"r41",45:"r41",46:"r41",52:"r41",53:"r41",54:"r41",55:"r41",57:"r41"},{23:"r42",24:"r42",25:"r42",26:"r42",27:"r42",28:"r42",29:"r42",30:"r42",31:"r42",32:"r42",33:"r42",34:"r42",35:"r42",36:"r42",37:"r42",38:"r42",39:"r42",40:"r42",41:"r42",42:"r42",43:"r42",44:"r42",45:"r42",46:"r42",52:"r42",53:"r42",54:"r42",55:"r42",57:"r42"},{23:"r43",24:"r43",25:"r43",26:"r43",27:"r43",28:"r43",29:"r43",30:"r43",31:"r43",32:"r43",33:"r43",34:"r43",35:"r43",36:"r43",37:"r43",38:"r43",39:"r43",40:"r43",41:"r43",42:"r43",43:"r43",44:"r43",45:"r43",46:"r43",52:"r43",53:"r43",54:"r43",55:"r43",57:"r43"},{23:"r44",24:"r44",25:"r44",26:"r44",27:"r44",28:"r44",29:"r44",30:"r44",31:"r44",32:"r44",33:"r44",34:"r44",35:"r44",36:"r44",37:"r44",38:"r44",39:"r44",40:"r44",41:"r44",42:"r44",43:"r44",44:"r44",45:"r44",46:"r44",52:"r44",53:"r44",54:"r44",55:"r44",57:"r44"},{23:"r45",24:"r45",25:"r45",26:"r45",27:"r45",28:"r45",29:"r45",30:"r45",31:"r45",32:"r45",33:"r45",34:"r45",35:"r45",36:"r45",37:"r45",38:"r45",39:"r45",40:"r45",41:"r45",42:"r45",43:"r45",44:"r45",45:"r45",46:"r45",52:"r45",53:"r45",54:"r45",55:"r45",57:"r45"},{23:"r46",24:"r46",25:"r46",26:"r46",27:"r46",28:"r46",29:"r46",30:"r46",31:"r46",32:"r46",33:"r46",34:"r46",35:"r46",36:"r46",37:"r46",38:"r46",39:"r46",40:"r46",41:"r46",42:"r46",43:"r46",44:"r46",45:"r46",46:"r46",52:"r46",53:"r46",54:"r46",55:"r46",57:"r46"},{23:"r40",24:"r40",25:"r40",26:"r40",27:"r40",28:"r40",29:"r40",30:"r40",31:"r40",32:"r40",33:"r40",34:"r40",35:"r40",36:"r40",37:"r40",38:"r40",39:"r40",40:"r40",41:"r40",42:"r40",43:"r40",44:"r40",45:"r40",52:"r40",53:"r40",54:"r40",55:"r40",57:"r40"},{25:"s12",31:"s58"},{23:"r18",24:"r18",25:"r18",26:"r18",27:"r18",28:"r18",29:"r18",30:"r18",31:"r18",32:"r18",33:"r18",34:"r18",35:"r18",36:"r18",37:"r18",38:"r18",39:"r18",40:"r18",41:"r18",42:"r18",43:"r18",44:"r18",45:"r18",52:"r18",53:"r18",54:"r18",55:"r18",57:"r18"},{25:"s12",31:"s60"},{23:"r19",24:"r19",25:"r19",26:"r19",27:"r19",28:"r19",29:"r19",30:"r19",31:"r19",32:"r19",33:"r19",34:"r19",35:"r19",36:"r19",37:"r19",38:"r19",39:"r19",40:"r19",41:"r19",42:"r19",43:"r19",44:"r19",45:"r19",52:"r19",53:"r19",54:"r19",55:"r19",57:"r19"},{25:"s12",31:"s62"},{23:"r20",24:"r20",25:"r20",26:"r20",27:"r20",28:"r20",29:"r20",30:"r20",31:"r20",32:"r20",33:"r20",34:"r20",35:"r20",36:"r20",37:"r20",38:"r20",39:"r20",40:"r20",41:"r20",42:"r20",43:"r20",44:"r20",45:"r20",52:"r20",53:"r20",54:"r20",55:"r20",57:"r20"},{25:"s12",31:"s64"},{23:"r21",24:"r21",25:"r21",26:"r21",27:"r21",28:"r21",29:"r21",30:"r21",31:"r21",32:"r21",33:"r21",34:"r21",35:"r21",36:"r21",37:"r21",38:"r21",39:"r21",40:"r21",41:"r21",42:"r21",43:"r21",44:"r21",45:"r21",52:"r21",53:"r21",54:"r21",55:"r21",57:"r21"},{56:"s72"},{56:"r55"},{10:70,20:73,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r56",58:"s74"},{24:"r62",28:"r62",35:"r62",36:"r62",37:"r62",38:"r62",39:"r62",40:"r62",41:"r62",42:"r62",43:"r62",44:"r62",45:"r62",56:"r62",58:"r62"},{24:"r63",28:"r63",35:"r63",36:"r63",37:"r63",38:"r63",39:"r63",40:"r63",41:"r63",42:"r63",43:"r63",44:"r63",45:"r63",56:"r63",58:"r63"},{24:"r64",28:"r64",35:"r64",36:"r64",37:"r64",38:"r64",39:"r64",40:"r64",41:"r64",42:"r64",43:"r64",44:"r64",45:"r64",56:"r64",58:"r64"},{24:"r65",28:"r65",35:"r65",36:"r65",37:"r65",38:"r65",39:"r65",40:"r65",41:"r65",42:"r65",43:"r65",44:"r65",45:"r65",56:"r65",58:"r65"},{23:"r52",24:"r52",25:"r52",26:"r52",27:"r52",28:"r52",29:"r52",30:"r52",31:"r52",32:"r52",33:"r52",34:"r52",35:"r52",36:"r52",37:"r52",38:"r52",39:"r52",40:"r52",41:"r52",42:"r52",43:"r52",44:"r52",45:"r52",46:"r52",47:"r52",48:"r52",49:"r52",50:"r52",51:"r52",52:"r52",53:"r52",54:"r52",55:"r52",57:"r52"},{56:"r57"},{10:70,21:77,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{56:"r59"},{10:70,20:79,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r63",58:"s80"},{10:70,18:78,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r58"},{56:"r60"},{10:70,21:81,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{10:70,18:82,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r61"},{56:"s84"},{23:"r53",24:"r53",25:"r53",26:"r53",27:"r53",28:"r53",29:"r53",30:"r53",31:"r53",32:"r53",33:"r53",34:"r53",35:"r53",36:"r53",37:"r53",38:"r53",39:"r53",40:"r53",41:"r53",42:"r53",43:"r53",44:"r53",45:"r53",46:"r53",47:"r53",48:"r53",49:"r53",50:"r53",51:"r53",52:"r53",53:"r53",54:"r53",55:"r53",57:"r53"},{25:"s12",31:"s86"},{23:"r49",24:"r49",25:"r49",26:"r49",27:"r49",28:"r49",29:"r49",30:"r49",31:"r49",32:"r49",33:"r49",34:"r49",35:"r49",36:"r49",37:"r49",38:"r49",39:"r49",40:"r49",41:"r49",42:"r49",43:"r49",44:"r49",45:"r49",46:"r49",47:"r49",48:"r49",49:"r49",50:"r49",51:"r49",52:"r49",53:"r49",54:"r49",55:"r49",57:"r49"},{25:"s12",31:"s88"},{23:"r50",24:"r50",25:"r50",26:"r50",27:"r50",28:"r50",29:"r50",30:"r50",31:"r50",32:"r50",33:"r50",34:"r50",35:"r50",36:"r50",37:"r50",38:"r50",39:"r50",40:"r50",41:"r50",42:"r50",43:"r50",44:"r50",45:"r50",46:"r50",47:"r50",48:"r50",49:"r50",50:"r50",51:"r50",52:"r50",53:"r50",54:"r50",55:"r50",57:"r50"},{25:"s12",31:"s90"},{23:"r51",24:"r51",25:"r51",26:"r51",27:"r51",28:"r51",29:"r51",30:"r51",31:"r51",32:"r51",33:"r51",34:"r51",35:"r51",36:"r51",37:"r51",38:"r51",39:"r51",40:"r51",41:"r51",42:"r51",43:"r51",44:"r51",45:"r51",46:"r51",47:"r51",48:"r51",49:"r51",50:"r51",51:"r51",52:"r51",53:"r51",54:"r51",55:"r51",57:"r51"}],l=[],v=void 0,b=[[/^#[^\n]+/,function(){}],[/^\s+/,function(){}],[/^-/,function(){return"DASH"}],[/^\//,function(){return"CHAR"}],[/^#/,function(){return"CHAR"}],[/^\|/,function(){return"CHAR"}],[/^\./,function(){return"CHAR"}],[/^\{/,function(){return"CHAR"}],[/^\{\d+\}/,function(){return"RANGE_EXACT"}],[/^\{\d+,\}/,function(){return"RANGE_OPEN"}],[/^\{\d+,\d+\}/,function(){return"RANGE_CLOSED"}],[/^\\k<(([\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\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00-\ude03\ude05-\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return E(d.slice(3,-1),this.getCurrentState()),"NAMED_GROUP_REF"}],[/^\\b/,function(){return"ESC_b"}],[/^\\B/,function(){return"ESC_B"}],[/^\\c[a-zA-Z]/,function(){return"CTRL_CH"}],[/^\\0\d{1,2}/,function(){return"OCT_CODE"}],[/^\\0/,function(){return"DEC_CODE"}],[/^\\\d{1,3}/,function(){return"DEC_CODE"}],[/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/,function(){return"U_CODE_SURROGATE"}],[/^\\u\{[0-9a-fA-F]{1,}\}/,function(){return"U_CODE"}],[/^\\u[0-9a-fA-F]{4}/,function(){return"U_CODE"}],[/^\\[pP]\{\w+(?:=\w+)?\}/,function(){return"U_PROP_VALUE_EXP"}],[/^\\x[0-9a-fA-F]{2}/,function(){return"HEX_CODE"}],[/^\\[tnrdDsSwWvf]/,function(){return"META_CHAR"}],[/^\\\//,function(){return"ESC_CHAR"}],[/^\\[ #]/,function(){return"ESC_CHAR"}],[/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/,function(){return"ESC_CHAR"}],[/^\\[^*?+\[()\\|]/,function(){var e=this.getCurrentState();if("u_class"===e&&"\\-"===d)return"ESC_CHAR";if("u"===e||"xu"===e||"u_class"===e)throw new SyntaxError("invalid Unicode escape "+d);return"ESC_CHAR"}],[/^\(/,function(){return"CHAR"}],[/^\)/,function(){return"CHAR"}],[/^\(\?=/,function(){return"POS_LA_ASSERT"}],[/^\(\?!/,function(){return"NEG_LA_ASSERT"}],[/^\(\?<=/,function(){return"POS_LB_ASSERT"}],[/^\(\?<!/,function(){return"NEG_LB_ASSERT"}],[/^\(\?:/,function(){return"NON_CAPTURE_GROUP"}],[/^\(\?<(([\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\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00-\ude03\ude05-\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return E(d=d.slice(3,-1),this.getCurrentState()),"NAMED_CAPTURE_GROUP"}],[/^\(/,function(){return"L_PAREN"}],[/^\)/,function(){return"R_PAREN"}],[/^[*?+[^$]/,function(){return"CHAR"}],[/^\\\]/,function(){return"ESC_CHAR"}],[/^\]/,function(){return this.popState(),"R_BRACKET"}],[/^\^/,function(){return"BOS"}],[/^\$/,function(){return"EOS"}],[/^\*/,function(){return"STAR"}],[/^\?/,function(){return"Q_MARK"}],[/^\+/,function(){return"PLUS"}],[/^\|/,function(){return"BAR"}],[/^\./,function(){return"ANY"}],[/^\//,function(){return"SLASH"}],[/^[^*?+\[()\\|]/,function(){return"CHAR"}],[/^\[\^/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"NEG_CLASS"}],[/^\[/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"L_BRACKET"}]],p={INITIAL:[8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],xu:[0,1,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],x:[0,1,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u_class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]},m={type:"$",value:""};v={initString:function(e){return this._string=e,this._cursor=0,this._states=["INITIAL"],this._tokensQueue=[],this._currentLine=1,this._currentColumn=0,this._currentLineBeginOffset=0,this._tokenStartOffset=0,this._tokenEndOffset=0,this._tokenStartLine=1,this._tokenEndLine=1,this._tokenStartColumn=0,this._tokenEndColumn=0,this},getStates:function(){return this._states},getCurrentState:function(){return this._states[this._states.length-1]},pushState:function(e){this._states.push(e)},begin:function(e){this.pushState(e)},popState:function(){return this._states.length>1?this._states.pop():this._states[0]},getNextToken:function(){if(this._tokensQueue.length>0)return this.onToken(this._toToken(this._tokensQueue.shift()));if(!this.hasMoreTokens())return this.onToken(m);for(var e=this._string.slice(this._cursor),u=p[this.getCurrentState()],r=0;r<u.length;r++){var t=u[r],a=b[t],s=this._match(e,a[0]);if(""===e&&""===s&&this._cursor++,null!==s){(d=s).length;var i=a[1].call(this);if(!i)return this.getNextToken();if(Array.isArray(i)){var f,o=i.slice(1);i=i[0],o.length>0&&(f=this._tokensQueue).unshift.apply(f,n(o))}return this.onToken(this._toToken(i,d))}}if(this.isEOF())return this._cursor++,m;this.throwUnexpectedToken(e[0],this._currentLine,this._currentColumn)},throwUnexpectedToken:function(e,u,r){var n=this._string.split("\n")[u-1],d="";throw n&&(d="\n\n"+n+"\n"+" ".repeat(r)+"^\n"),new SyntaxError(d+'Unexpected token: "'+e+'" at '+u+":"+r+".")},getCursor:function(){return this._cursor},getCurrentLine:function(){return this._currentLine},getCurrentColumn:function(){return this._currentColumn},_captureLocation:function(e){var u=/\n/g;this._tokenStartOffset=this._cursor,this._tokenStartLine=this._currentLine,this._tokenStartColumn=this._tokenStartOffset-this._currentLineBeginOffset;for(var r=void 0;null!==(r=u.exec(e));)this._currentLine++,this._currentLineBeginOffset=this._tokenStartOffset+r.index+1;this._tokenEndOffset=this._cursor+e.length,this._tokenEndLine=this._currentLine,this._tokenEndColumn=this._currentColumn=this._tokenEndOffset-this._currentLineBeginOffset},_toToken:function(e){return{type:e,value:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",startOffset:this._tokenStartOffset,endOffset:this._tokenEndOffset,startLine:this._tokenStartLine,endLine:this._tokenEndLine,startColumn:this._tokenStartColumn,endColumn:this._tokenEndColumn}},isEOF:function(){return this._cursor===this._string.length},hasMoreTokens:function(){return this._cursor<=this._string.length},_match:function(e,u){var r=e.match(u);return r?(this._captureLocation(r[0]),this._cursor+=r[0].length,r[0]):null},onToken:function(e){return e}},t.lexer=v,t.tokenizer=v,t.options={captureLocations:!0};var h={setOptions:function(e){return t.options=e,this},getOptions:function(){return t.options},parse:function(e,u){if(!v)throw new Error("Tokenizer instance wasn't specified.");v.initString(e);var r=t.options;u&&(t.options=Object.assign({},t.options,u)),h.onParseBegin(e,v,t.options),l.length=0,l.push(0);var i=v.getNextToken(),b=null;do{i||(t.options=r,L());var p=l[l.length-1],m=o[i.type];c[p].hasOwnProperty(m)||(t.options=r,N(i));var y=c[p][m];if("s"===y[0]){var g=null;t.options.captureLocations&&(g={startOffset:i.startOffset,endOffset:i.endOffset,startLine:i.startLine,endLine:i.endLine,startColumn:i.startColumn,endColumn:i.endColumn}),b=this.onShift(i),l.push({symbol:o[b.type],semanticValue:b.value,loc:g},Number(y.slice(1))),i=v.getNextToken()}else if("r"===y[0]){var C=y.slice(1),B=f[C],_="function"==typeof B[2],x=_?[]:null,A=_&&t.options.captureLocations?[]:null;if(0!==B[1])for(var j=B[1];j-- >0;){l.pop();var S=l.pop();_&&(x.unshift(S.semanticValue),A&&A.unshift(S.loc))}var w={symbol:B[0]};if(_){d=b?b.value:null,b&&b.value.length;var k=null!==A?x.concat(A):x;B[2].apply(B,n(k)),w.semanticValue=a,A&&(w.loc=s)}var P=l[l.length-1],E=B[0];l.push(w,c[P][E])}else if("acc"===y){l.pop();var O=l.pop();return(1!==l.length||0!==l[0]||v.hasMoreTokens())&&(t.options=r,N(i)),O.hasOwnProperty("semanticValue")?(t.options=r,h.onParseEnd(O.semanticValue),O.semanticValue):(h.onParseEnd(),t.options=r,!0)}}while(v.hasMoreTokens()||l.length>1)},setTokenizer:function(e){return v=e,h},getTokenizer:function(){return v},onParseBegin:function(e,u,r){},onParseEnd:function(e){},onShift:function(e){return e}},y=0,g={},C="";function B(e){var u=e.match(/\d+/g).map(Number);if(Number.isFinite(u[1])&&u[1]<u[0])throw new SyntaxError("Numbers out of order in "+e+" quantifier");return u}function _(e,u){if("control"===e.kind||"control"===u.kind||!isNaN(e.codePoint)&&!isNaN(u.codePoint)&&e.codePoint>u.codePoint)throw new SyntaxError("Range "+e.value+"-"+u.value+" out of order in character class")}h.onParseBegin=function(e,u){C=e,y=0,g={};var r=e.lastIndexOf("/"),n=e.slice(r);n.includes("x")&&n.includes("u")?u.pushState("xu"):(n.includes("x")&&u.pushState("x"),n.includes("u")&&u.pushState("u"))},h.onShift=function(e){return"L_PAREN"!==e.type&&"NAMED_CAPTURE_GROUP"!==e.type||(e.value=new String(e.value),e.value.groupNumber=++y),e};var x=r(37047);function A(e,u,r){var n=void 0,d=void 0;switch(u){case"decimal":d=Number(e.slice(1)),n=String.fromCodePoint(d);break;case"oct":d=parseInt(e.slice(1),8),n=String.fromCodePoint(d);break;case"hex":case"unicode":if(e.lastIndexOf("\\u")>0){var t=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(e.split("\\u").slice(1),2),a=t[0],s=t[1];d=1024*((a=parseInt(a,16))-55296)+((s=parseInt(s,16))-56320)+65536,n=String.fromCodePoint(d)}else{var i=e.slice(2).replace("{","");if((d=parseInt(i,16))>1114111)throw new SyntaxError("Bad character escape sequence: "+e);n=String.fromCodePoint(d)}break;case"meta":switch(e){case"\\t":d=(n="\t").codePointAt(0);break;case"\\n":d=(n="\n").codePointAt(0);break;case"\\r":d=(n="\r").codePointAt(0);break;case"\\v":d=(n="\v").codePointAt(0);break;case"\\f":d=(n="\f").codePointAt(0);break;case"\\b":d=(n="\b").codePointAt(0);case"\\0":n="\0",d=0;case".":n=".",d=NaN;break;default:d=NaN}break;case"simple":d=(n=e).codePointAt(0)}return T({type:"Char",value:e,kind:u,symbol:n,codePoint:d},r)}var j="gimsuxy";function S(e){var u=new Set,r=!0,n=!1,d=void 0;try{for(var t,a=e[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var s=t.value;if(u.has(s)||!j.includes(s))throw new SyntaxError("Invalid flags: "+e);u.add(s)}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}return e.split("").sort().join("")}var w=/^\\u[0-9a-fA-F]{4}/,k=/^\\u\{[0-9a-fA-F]{1,}\}/,P=/\\u\{[0-9a-fA-F]{1,}\}/;function E(e,u){if(P.test(e)&&"u"!==u&&"xu"!==u&&"u_class"!==u)throw new SyntaxError('invalid group Unicode name "'+e+'", use `u` flag.');return e}var O=/\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/;function D(e){return e.replace(new RegExp(O,"g"),(function(e,u,r,n,d,t,a){return u?String.fromCodePoint(parseInt(u,16),parseInt(r,16)):n?String.fromCodePoint(parseInt(n,16)):d?String.fromCodePoint(parseInt(d,16)):t?String.fromCodePoint(parseInt(t,16)):a?String.fromCodePoint(parseInt(a,16)):e}))}function T(e,u){return t.options.captureLocations&&(e.loc={source:C.slice(u.startOffset,u.endOffset),start:{line:u.startLine,column:u.startColumn,offset:u.startOffset},end:{line:u.endLine,column:u.endColumn,offset:u.endOffset}}),e}function R(e,u){return t.options.captureLocations?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:null}function N(e){"$"===e.type&&L(),v.throwUnexpectedToken(e.value,e.startLine,e.startColumn)}function L(){!function(){throw new SyntaxError("Unexpected end of input.")}()}e.exports=h},23810:(e,u,r)=>{"use strict";var n=r(97e3),d=n.parse.bind(n);n.parse=function(e,u){return d(""+e,u)},n.setOptions({captureLocations:!1}),e.exports=n},37047:e=>{"use strict";var u={General_Category:"gc",Script:"sc",Script_Extensions:"scx"},r=f(u),n={ASCII:"ASCII",ASCII_Hex_Digit:"AHex",Alphabetic:"Alpha",Any:"Any",Assigned:"Assigned",Bidi_Control:"Bidi_C",Bidi_Mirrored:"Bidi_M",Case_Ignorable:"CI",Cased:"Cased",Changes_When_Casefolded:"CWCF",Changes_When_Casemapped:"CWCM",Changes_When_Lowercased:"CWL",Changes_When_NFKC_Casefolded:"CWKCF",Changes_When_Titlecased:"CWT",Changes_When_Uppercased:"CWU",Dash:"Dash",Default_Ignorable_Code_Point:"DI",Deprecated:"Dep",Diacritic:"Dia",Emoji:"Emoji",Emoji_Component:"Emoji_Component",Emoji_Modifier:"Emoji_Modifier",Emoji_Modifier_Base:"Emoji_Modifier_Base",Emoji_Presentation:"Emoji_Presentation",Extended_Pictographic:"Extended_Pictographic",Extender:"Ext",Grapheme_Base:"Gr_Base",Grapheme_Extend:"Gr_Ext",Hex_Digit:"Hex",IDS_Binary_Operator:"IDSB",IDS_Trinary_Operator:"IDST",ID_Continue:"IDC",ID_Start:"IDS",Ideographic:"Ideo",Join_Control:"Join_C",Logical_Order_Exception:"LOE",Lowercase:"Lower",Math:"Math",Noncharacter_Code_Point:"NChar",Pattern_Syntax:"Pat_Syn",Pattern_White_Space:"Pat_WS",Quotation_Mark:"QMark",Radical:"Radical",Regional_Indicator:"RI",Sentence_Terminal:"STerm",Soft_Dotted:"SD",Terminal_Punctuation:"Term",Unified_Ideograph:"UIdeo",Uppercase:"Upper",Variation_Selector:"VS",White_Space:"space",XID_Continue:"XIDC",XID_Start:"XIDS"},d=f(n),t={Cased_Letter:"LC",Close_Punctuation:"Pe",Connector_Punctuation:"Pc",Control:["Cc","cntrl"],Currency_Symbol:"Sc",Dash_Punctuation:"Pd",Decimal_Number:["Nd","digit"],Enclosing_Mark:"Me",Final_Punctuation:"Pf",Format:"Cf",Initial_Punctuation:"Pi",Letter:"L",Letter_Number:"Nl",Line_Separator:"Zl",Lowercase_Letter:"Ll",Mark:["M","Combining_Mark"],Math_Symbol:"Sm",Modifier_Letter:"Lm",Modifier_Symbol:"Sk",Nonspacing_Mark:"Mn",Number:"N",Open_Punctuation:"Ps",Other:"C",Other_Letter:"Lo",Other_Number:"No",Other_Punctuation:"Po",Other_Symbol:"So",Paragraph_Separator:"Zp",Private_Use:"Co",Punctuation:["P","punct"],Separator:"Z",Space_Separator:"Zs",Spacing_Mark:"Mc",Surrogate:"Cs",Symbol:"S",Titlecase_Letter:"Lt",Unassigned:"Cn",Uppercase_Letter:"Lu"},a=f(t),s={Adlam:"Adlm",Ahom:"Ahom",Anatolian_Hieroglyphs:"Hluw",Arabic:"Arab",Armenian:"Armn",Avestan:"Avst",Balinese:"Bali",Bamum:"Bamu",Bassa_Vah:"Bass",Batak:"Batk",Bengali:"Beng",Bhaiksuki:"Bhks",Bopomofo:"Bopo",Brahmi:"Brah",Braille:"Brai",Buginese:"Bugi",Buhid:"Buhd",Canadian_Aboriginal:"Cans",Carian:"Cari",Caucasian_Albanian:"Aghb",Chakma:"Cakm",Cham:"Cham",Cherokee:"Cher",Common:"Zyyy",Coptic:["Copt","Qaac"],Cuneiform:"Xsux",Cypriot:"Cprt",Cyrillic:"Cyrl",Deseret:"Dsrt",Devanagari:"Deva",Dogra:"Dogr",Duployan:"Dupl",Egyptian_Hieroglyphs:"Egyp",Elbasan:"Elba",Ethiopic:"Ethi",Georgian:"Geor",Glagolitic:"Glag",Gothic:"Goth",Grantha:"Gran",Greek:"Grek",Gujarati:"Gujr",Gunjala_Gondi:"Gong",Gurmukhi:"Guru",Han:"Hani",Hangul:"Hang",Hanifi_Rohingya:"Rohg",Hanunoo:"Hano",Hatran:"Hatr",Hebrew:"Hebr",Hiragana:"Hira",Imperial_Aramaic:"Armi",Inherited:["Zinh","Qaai"],Inscriptional_Pahlavi:"Phli",Inscriptional_Parthian:"Prti",Javanese:"Java",Kaithi:"Kthi",Kannada:"Knda",Katakana:"Kana",Kayah_Li:"Kali",Kharoshthi:"Khar",Khmer:"Khmr",Khojki:"Khoj",Khudawadi:"Sind",Lao:"Laoo",Latin:"Latn",Lepcha:"Lepc",Limbu:"Limb",Linear_A:"Lina",Linear_B:"Linb",Lisu:"Lisu",Lycian:"Lyci",Lydian:"Lydi",Mahajani:"Mahj",Makasar:"Maka",Malayalam:"Mlym",Mandaic:"Mand",Manichaean:"Mani",Marchen:"Marc",Medefaidrin:"Medf",Masaram_Gondi:"Gonm",Meetei_Mayek:"Mtei",Mende_Kikakui:"Mend",Meroitic_Cursive:"Merc",Meroitic_Hieroglyphs:"Mero",Miao:"Plrd",Modi:"Modi",Mongolian:"Mong",Mro:"Mroo",Multani:"Mult",Myanmar:"Mymr",Nabataean:"Nbat",New_Tai_Lue:"Talu",Newa:"Newa",Nko:"Nkoo",Nushu:"Nshu",Ogham:"Ogam",Ol_Chiki:"Olck",Old_Hungarian:"Hung",Old_Italic:"Ital",Old_North_Arabian:"Narb",Old_Permic:"Perm",Old_Persian:"Xpeo",Old_Sogdian:"Sogo",Old_South_Arabian:"Sarb",Old_Turkic:"Orkh",Oriya:"Orya",Osage:"Osge",Osmanya:"Osma",Pahawh_Hmong:"Hmng",Palmyrene:"Palm",Pau_Cin_Hau:"Pauc",Phags_Pa:"Phag",Phoenician:"Phnx",Psalter_Pahlavi:"Phlp",Rejang:"Rjng",Runic:"Runr",Samaritan:"Samr",Saurashtra:"Saur",Sharada:"Shrd",Shavian:"Shaw",Siddham:"Sidd",SignWriting:"Sgnw",Sinhala:"Sinh",Sogdian:"Sogd",Sora_Sompeng:"Sora",Soyombo:"Soyo",Sundanese:"Sund",Syloti_Nagri:"Sylo",Syriac:"Syrc",Tagalog:"Tglg",Tagbanwa:"Tagb",Tai_Le:"Tale",Tai_Tham:"Lana",Tai_Viet:"Tavt",Takri:"Takr",Tamil:"Taml",Tangut:"Tang",Telugu:"Telu",Thaana:"Thaa",Thai:"Thai",Tibetan:"Tibt",Tifinagh:"Tfng",Tirhuta:"Tirh",Ugaritic:"Ugar",Vai:"Vaii",Warang_Citi:"Wara",Yi:"Yiii",Zanabazar_Square:"Zanb"},i=f(s);function f(e){var u={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(Array.isArray(n))for(var d=0;d<n.length;d++)u[n[d]]=r;else u[n]=r}return u}function o(e){return t.hasOwnProperty(e)||a.hasOwnProperty(e)}function c(e){return s.hasOwnProperty(e)||i.hasOwnProperty(e)}e.exports={isAlias:function(e){return r.hasOwnProperty(e)||d.hasOwnProperty(e)},isValidName:function(e){return u.hasOwnProperty(e)||r.hasOwnProperty(e)||n.hasOwnProperty(e)||d.hasOwnProperty(e)},isValidValue:function(e,u){return function(e){return"General_Category"===e||"gc"==e}(e)?o(u):!!function(e){return"Script"===e||"Script_Extensions"===e||"sc"===e||"scx"===e}(e)&&c(u)},isGeneralCategoryValue:o,isScriptCategoryValue:c,isBinaryPropertyName:function(e){return n.hasOwnProperty(e)||d.hasOwnProperty(e)},getCanonicalName:function(e){return r.hasOwnProperty(e)?r[e]:d.hasOwnProperty(e)?d[e]:null},getCanonicalValue:function(e){return a.hasOwnProperty(e)?a[e]:i.hasOwnProperty(e)?i[e]:d.hasOwnProperty(e)?d[e]:null},NON_BINARY_PROP_NAMES_TO_ALIASES:u,NON_BINARY_ALIASES_TO_PROP_NAMES:r,BINARY_PROP_NAMES_TO_ALIASES:n,BINARY_ALIASES_TO_PROP_NAMES:d,GENERAL_CATEGORY_VALUE_TO_ALIASES:t,GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES:a,SCRIPT_VALUE_TO_ALIASES:s,SCRIPT_VALUE_ALIASES_TO_VALUE:i}},54676:(e,u,r)=>{"use strict";var n=r(9182),d=r(20042),t=r(63072),a=r(23810),s=r(2003),i=r(29171),f=r(36734),o=r(51537).RegExpTree,c={parser:a,fa:f,TransformResult:s.TransformResult,parse:function(e,u){return a.parse(""+e,u)},traverse:function(e,u,r){return i.traverse(e,u,r)},transform:function(e,u){return s.transform(e,u)},generate:function(e){return d.generate(e)},toRegExp:function(e){var u=this.compatTranspile(e);return new RegExp(u.getSource(),u.getFlags())},optimize:function(e,u){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).blacklist;return t.optimize(e,{whitelist:u,blacklist:r})},compatTranspile:function(e,u){return n.transform(e,u)},exec:function(e,u){if("string"==typeof e){var r=this.compatTranspile(e),n=r.getExtra();e=n.namedCapturingGroups?new o(r.toRegExp(),{flags:r.getFlags(),source:r.getSource(),groups:n.namedCapturingGroups}):r.toRegExp()}return e.exec(u)}};e.exports=c},2003:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),d=r(20042),t=r(23810),a=r(29171),s=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._ast=u,this._source=null,this._string=null,this._regexp=null,this._extra=r}return n(e,[{key:"getAST",value:function(){return this._ast}},{key:"setExtra",value:function(e){this._extra=e}},{key:"getExtra",value:function(){return this._extra}},{key:"toRegExp",value:function(){return this._regexp||(this._regexp=new RegExp(this.getSource(),this._ast.flags)),this._regexp}},{key:"getSource",value:function(){return this._source||(this._source=d.generate(this._ast.body)),this._source}},{key:"getFlags",value:function(){return this._ast.flags}},{key:"toString",value:function(){return this._string||(this._string=d.generate(this._ast)),this._string}}]),e}();e.exports={TransformResult:s,transform:function(e,u){var r=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(r=t.parse(e,{captureLocations:!0})),a.traverse(r,u),new s(r)}}},33166:e=>{"use strict";e.exports={disjunctionToList:function e(u){if("Disjunction"!==u.type)throw new TypeError('Expected "Disjunction" node, got "'+u.type+'"');var r=[];return u.left&&"Disjunction"===u.left.type?r.push.apply(r,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(e(u.left)).concat([u.right])):r.push(u.left,u.right),r},listToDisjunction:function(e){return e.reduce((function(e,u){return{type:"Disjunction",left:e,right:u}}))},increaseQuantifierByOne:function(e){"*"===e.kind?e.kind="+":"+"===e.kind?(e.kind="Range",e.from=2,delete e.to):"?"===e.kind?(e.kind="Range",e.from=1,e.to=2):"Range"===e.kind&&(e.from+=1,e.to&&(e.to+=1))}}},29171:(e,u,r)=>{"use strict";var n=r(41059);e.exports={traverse:function(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{asNodes:!1};function d(e,u,r,d){var t=n.getForNode(u);return n.getForNode(e,t,r,d)}Array.isArray(u)||(u=[u]),u=u.filter((function(u){return"function"!=typeof u.shouldRun||u.shouldRun(e)})),n.initRegistry(),u.forEach((function(u){"function"==typeof u.init&&u.init(e)})),function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.pre,d=u.post,t=u.skipProperty;!function e(u,a,s,i){if(u&&"string"==typeof u.type){var f=void 0;if(r&&(f=r(u,a,s,i)),!1!==f)for(var o in a&&a[s]&&(u=isNaN(i)?a[s]:a[s][i]),u)if(u.hasOwnProperty(o)){if(t?t(o,u):"$"===o[0])continue;var c=u[o];if(Array.isArray(c)){var l=0;for(n.traversingIndexStack.push(l);l<c.length;)e(c[l],u,o,l),l=n.updateTraversingIndex(1);n.traversingIndexStack.pop()}else e(c,u,o)}d&&d(u,a,s,i)}}(e,null)}(e,{pre:function(e,n,t,a){var s=void 0;r.asNodes||(s=d(e,n,t,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value;if("function"==typeof v["*"])if(s){if(!s.isRemoved()&&!1===v["*"](s))return!1}else v["*"](e,n,t,a);var b=void 0;if("function"==typeof v[e.type]?b=v[e.type]:"object"==typeof v[e.type]&&"function"==typeof v[e.type].pre&&(b=v[e.type].pre),b)if(s){if(!s.isRemoved()&&!1===b.call(v,s))return!1}else b.call(v,e,n,t,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}},post:function(e,n,t,a){if(e){var s=void 0;r.asNodes||(s=d(e,n,t,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value,b=void 0;if("object"==typeof v[e.type]&&"function"==typeof v[e.type].post&&(b=v[e.type].post),b)if(s){if(!s.isRemoved()&&!1===b.call(v,s))return!1}else b.call(v,e,n,t,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}}},skipProperty:function(e){return"loc"===e}})}}},41059:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r="expressions",n="expression",d=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.node=u,this.parentPath=r,this.parent=r?r.node:null,this.property=n,this.index=d}return u(e,[{key:"_enforceProp",value:function(e){if(!this.node.hasOwnProperty(e))throw new Error("Node of type "+this.node.type+" doesn't have \""+e+'" collection.')}},{key:"setChild",value:function(u){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=void 0;return null!=d?(t||(t=r),this._enforceProp(t),this.node[t][d]=u,a=e.getForNode(u,this,t,d)):(t||(t=n),this._enforceProp(t),this.node[t]=u,a=e.getForNode(u,this,t,null)),a}},{key:"appendChild",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u||(u=r),this._enforceProp(u);var n=this.node[u].length;return this.setChild(e,n,u)}},{key:"insertChildAt",value:function(u,n){var d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;this._enforceProp(d),this.node[d].splice(n,0,u),n<=e.getTraversingIndex()&&e.updateTraversingIndex(1),this._rebuildIndex(this.node,d)}},{key:"remove",value:function(){if(!this.isRemoved()&&(e.registry.delete(this.node),this.node=null,this.parent)){if(null!==this.index)return this.parent[this.property].splice(this.index,1),this.index<=e.getTraversingIndex()&&e.updateTraversingIndex(-1),this._rebuildIndex(this.parent,this.property),this.index=null,void(this.property=null);delete this.parent[this.property],this.property=null}}},{key:"_rebuildIndex",value:function(u,r){for(var n=e.getForNode(u),d=0;d<u[r].length;d++)e.getForNode(u[r][d],n,r,d).index=d}},{key:"isRemoved",value:function(){return null===this.node}},{key:"replace",value:function(u){return e.registry.delete(this.node),this.node=u,this.parent?(null!==this.index?this.parent[this.property][this.index]=u:this.parent[this.property]=u,e.getForNode(u,this.parentPath,this.property,this.index)):null}},{key:"update",value:function(e){Object.assign(this.node,e)}},{key:"getParent",value:function(){return this.parentPath}},{key:"getChild",value:function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.node.expressions?e.getForNode(this.node.expressions[u],this,r,u):this.node.expression&&0==u?e.getForNode(this.node.expression,this,n):null}},{key:"hasEqualSource",value:function(e){return JSON.stringify(this.node,t)===JSON.stringify(e.node,t)}},{key:"jsonEncode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.format,r=e.useLoc;return JSON.stringify(this.node,r?null:t,u)}},{key:"getPreviousSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index-1],e.getForNode(this.parent),this.property,this.index-1):null}},{key:"getNextSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index+1],e.getForNode(this.parent),this.property,this.index+1):null}}],[{key:"getForNode",value:function(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;if(!u)return null;e.registry.has(u)||e.registry.set(u,new e(u,r,n,-1==d?null:d));var t=e.registry.get(u);return null!==r&&(t.parentPath=r,t.parent=t.parentPath.node),null!==n&&(t.property=n),d>=0&&(t.index=d),t}},{key:"initRegistry",value:function(){e.registry||(e.registry=new Map),e.registry.clear()}},{key:"updateTraversingIndex",value:function(u){return e.traversingIndexStack[e.traversingIndexStack.length-1]+=u}},{key:"getTraversingIndex",value:function(){return e.traversingIndexStack[e.traversingIndexStack.length-1]}}]),e}();function t(e,u){if("loc"!==e)return u}d.initRegistry(),d.traversingIndexStack=[],e.exports=d},1379:e=>{"use strict";e.exports=function e(u){if(null===u||"object"!=typeof u)return u;var r=void 0;for(var n in r=Array.isArray(u)?[]:{},u)r[n]=e(u[n]);return r}},34999:(e,u,r)=>{"use strict";e.exports=r(54676)},18411:()=>{},3211:(e,u,r)=>{"use strict";r.d(u,{yS:()=>I});var n,d=r(94364),t=r(34999),a=r(20043);function s(e){return"number"==typeof e?e:1===e.length?e[0]:[e[0],e[e.length-1]]}function i(e){const u=Array.isArray(e)?e:e.toString().split(".");if("all"===u[0])return[1/0,0,0];let r=null,n=null;const d=[0,0,0];for(let e=0;e<3;e++)if(r=u[e],void 0!==r){if(n="number"==typeof r?r:parseInt(r,10),isNaN(n))return null;d[e]=n}return d}function f(e,u,r){const[n,d,t]=e,[a,s,i]=u,{ignoreMinor:f,ignorePatch:o,allowHigherVersions:c}=r;if(a===1/0)return!0;const l=!f,v=l&&!o;return c?!(v&&t<i||l&&d<s)&&n>=a:!(v&&t!==i||l&&d!==s)&&n===a}function o(e,u,r=0){const n=e.length;for(let d=r;d<n;d++)if(e[d]!==u[d])return!1;return!0}function c(e){if(null===e||"object"!=typeof e)return e;const u=Array.isArray(e)?[]:{};let r;for(r in e)u[r]=c(e[r]);return u}function l(e){return[].concat(...e)}function v(...e){const u=l(e).filter(Boolean);return 1===u.length?u[0]:{type:"Alternative",expressions:u}}function b(e){return{type:"Char",kind:"simple",value:String(e),codePoint:NaN}}function p(e,u){return{type:"ClassRange",from:e,to:u}}function m(...e){return{type:"CharacterClass",expressions:l(e).filter(Boolean)}}function h(e){return{type:"Group",capturing:!0,expression:e,number:null}}function y(...e){const u=function(...e){const u=l(e).filter(Boolean);if(1===u.length)return u[0];const r={type:"Disjunction",left:null,right:u.pop()};return u.reduceRight(((e,u,r)=>0===r?(e.left=u,e):(e.left={type:"Disjunction",left:null,right:u},e.left)),r),r}(...e);return"Disjunction"===u.type?h(u):u}function g(){return{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}}function C(e={type:"Quantifier",kind:"+",greedy:!0}){const u=function(e,u){return{type:"Repetition",expression:{type:"Char",kind:"meta",value:"\\d",codePoint:NaN},quantifier:u}}(0,e);return u}function B(e){return v(Array.from(String(e),b))}function _(e){if("Group"===e.type&&"Repetition"===e.expression.type){const{expression:u,quantifier:r}=e.expression;return"Char"===u.type&&"\\d"===u.value&&"+"===r.kind&&r.greedy}return!1}function x(e,u){return!(!e||"Char"!==e.type)&&(void 0===u||u instanceof RegExp&&u.test(e.value)||String(u)===e.value)}function A(e){if("CharacterClass"===e.type&&1===e.expressions.length){const[u]=e.expressions;return"ClassRange"===u.type&&x(u.from,/\d/)&&x(u.to,/\d/)}return!1}function j(e){return"RegExp"!==e.type&&"ClassRange"!==e.type&&"Quantifier"!==e.type}function S(e){return"string"==typeof e?t.parse(e.replace(/^([^/])/,"/$1").replace(/([^/])$/,"$1/")):e instanceof RegExp?t.parse(e):e}!function(e){e[e.Major=0]="Major",e[e.Minor=1]="Minor",e[e.Patch=2]="Patch"}(n||(n={}));const w=["RegExp","Disjunction","Alternative","Assertion","Char","CharacterClass","ClassRange","Backreference","Group","Repetition","Quantifier"];function k(e){const{every:u}=e;return u?"function"==typeof u?{"*":u,...e}:w.reduce(((r,n)=>{const d=e[n],t=d?"pre"in d?d.pre:d:null,a=d&&"post"in d?d.post:null;return r[n]={pre:e=>!1===u.pre(e)||!t||t(e),post:e=>!1===u.post(e)||!a||a(e)},r}),{}):e}function P(e){return Array.from(e.toString(),Number)}function E(e,u){const r=e+Number(!u);return 0===r?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:9===r?b("9"):r>9?null:m(p(b(r),b("9")))}function O(e,u,r){if(u<e)return null;const n=b(e),d=b(u),t="number"==typeof r&&r>0?Array.from({length:r},(()=>b(0))):[];return(t.length?e=>v(t,e):e=>e)(e===u?n:0===e&&9===u?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:u-e==1?m(n,d):m(p(n,d)))}function D(e,u,r=0){const n=P(e),d=n.length;if(e<10&&u<10||e===u)return[O(e,u,r-d)];const t=P(u);if(d!==t.length){const n=function(e,u){const r=[];let n=e,d=1;do{d*=10,n<d&&(r.push([n,Math.min(d-1,u)]),n=d)}while(d<=u);return r}(e,u),d=l(n.map((([e,u])=>D(e,u,r))));return d}const a=function(e,u){const r=e.length;if(r!==u.length||e[0]!==u[0])return null;let n=e[0].toString(),d=0,t=0,a="",s="";for(let i=1;i<r;i++)d=e[i],t=u[i],d===t&&""===a&&""===s?n+=d:(a+=d,s+=t);return[n,parseInt(a,10),parseInt(s,10)]}(n,t);if(Array.isArray(a)){const[e,u,r]=a,n=D(u,r,d-e.length);return[v(Array.from(e,b),y(n))]}const s=Array.from({length:d-1}),i=O(n[0]+1,t[0]-1);return[...s.map(((e,u)=>{const r=d-u-1,t=Number(u>0);return v(n.map(((e,u)=>u<r?b(e):O(u>r?0:e+t,9))))})),...i?[v(i,Array.from({length:d-1},(()=>({type:"Char",kind:"meta",value:"\\d",codePoint:NaN}))))]:[],...s.map(((e,u)=>{const r=d-u-1,n=Number(u>0);return v(t.map(((e,u)=>u<r?b(e):O(0,u>r?9:e-n))))}))].reduce(((e,u)=>{const r=e[e.length-1];if(r&&"Alternative"===u.type&&"Alternative"===r.type&&u.expressions.length===r.expressions.length){const n=r.expressions.reduceRight(((e,r,n)=>{if(!e)return e;const d=(t=r,a=u.expressions[n],x(t)&&x(a)&&t.value===a.value?a:x(t,/\d/)&&A(a)&&Number(a.expressions[0].from.value)-Number(t.value)==1?{...a,expressions:[{...a.expressions[0],from:t}]}:A(t)&&x(a,/\d/)&&Number(a.value)-Number(t.expressions[0].to.value)==1?{...t,expressions:[{...t.expressions[0],to:a}]}:null);var t,a;return d?(e.unshift(d),e):null}),[]);n&&(u.expressions=n,e.pop())}return e.push(u),e}),[])}function T(e,u=1/0){return e===1/0?C():y(u===1/0?function(e){if(0===e)return[C()];const u=P(e),r=u.length,n=C(function(e){return{type:"Quantifier",kind:"Range",from:e,to:void 0,greedy:!0}}(r+1)),d=r-1;if(e/Math.pow(10,d)===u[0])return[v(E(u[0],!0),Array.from({length:d},g)),n];const t=u.reduce(((e,n,d)=>{const t=r-d-1,a=0===d;let s=b("");const i=u.reduce(((e,u,r)=>{if(r<t)e.push(b(u));else if(s)if(r>t)e.push({type:"Char",kind:"meta",value:"\\d",codePoint:NaN});else{if(s=E(u,a),!s)return[];e.push(s)}return e}),[]);return i.length&&e.push(i),e}),[]).map((e=>v(e)));return t.push(n),t}(e):D(e,u))}function R(e,u){const r=S(e),n=Math.min(function(e){const u=S(e);let r=0;return t.traverse(u,{Group(e){_(e.node)&&r++}}),r}(r),u||1/0),d=[];let a=0,s=!1;return t.traverse(r,k({every:{pre:({node:e,parent:u})=>e===r||!!j(e)&&(u===r&&(s=!1),a<n),post({node:e,parent:u}){e!==r&&u===r&&j(e)&&(s||a>0&&a<n)&&d.push(e)}},Group:e=>!(_(e.node)&&a<n&&(s=!0,a++,1))})),1!==d.length||_(d[0])?d:R(d[0],n)}function N(e,u,r){const{allowHigherVersions:n}=r,d=S(e),a=n&&u.length?[u[0]]:u,s=a.reduce(((e,u)=>Math.max(e,function(e,u){const{ignoreMinor:r,ignorePatch:n,allowZeroSubversions:d}=u;let t=r?1:n?2:3;if(d)for(let u=t-1;u>0&&0===e[u]&&1!==t;u--)t--;return t}(u,r))),1),i=R(d,s),f=y(...a.map((e=>function(e,u){const{ignoreMinor:r,ignorePatch:n,allowHigherVersions:d}=u,t=e[0]===1/0?0:r?1:n?2:3;if(d){const u=[];let r=!0,n=0,d=0;const a=e=>(u,r)=>r>=t?C():(d=Array.isArray(u)?u[0]:u,r<e?B(d):r>e?C():T(d+n));for(let d=t-1;d>=0;d--)r&&!e[d]||(r=!1,u.push(e.map(a(d))),n=1);return u}return[e.map(((e,u)=>u>=t?C():Array.isArray(e)?T(e[0],e[1]):B(e)))]}(e,r).map((e=>function(e,u,r){let n=S(e);const d="number"==typeof r&&r<u.length?u.slice(0,r):u.slice();return t.traverse(n,k({every:()=>Boolean(d.length),Group:e=>!_(e.node)||!d.length||(n===e.node?n=d.shift():e.replace(d.shift()),!1)})),n}(v(c(i)),e,s))))));return t.traverse(d,k({every:e=>!!i.length&&(e.node===i[0]&&(1===i.length?e.replace(f):e.remove(),i.shift()),!0)})),d}const L={ignoreMinor:!1,ignorePatch:!0,allowZeroSubversions:!1,allowHigherVersions:!1};function F(e={}){const u={...L,...e};return function(e,u){return e.map((({regex:e,version:r,maxVersion:d,matchedVersions:t,...a})=>{let i=S(e);return r||(i=N(i,function(e){if(e.length<2)return e;const u=e.length+1,r=[];let d=null,t=e[0],a=[t[n.Major]],i=[t[n.Minor]],f=[t[n.Patch]],c=null;for(let l=1;l<u;l++){d=e[l-1],t=e[l]||[];for(let e=n.Major;e<=n.Patch;e++){if((e===c||null===c)&&d[e]+1===t[e]&&o(d,t,e+1)){c=e,e===n.Major?a.push(t[n.Major]):a=t[n.Major],e===n.Minor?i.push(t[n.Minor]):i=t[n.Minor],e===n.Patch?f.push(t[n.Patch]):f=t[n.Patch];break}if(c===e||d[e]!==t[e]){r.push([s(a),s(i),s(f)]),a=[t[n.Major]],i=[t[n.Minor]],f=[t[n.Patch]],c=null;break}}}return r}(t),{...u,allowHigherVersions:!d&&u.allowHigherVersions})),{regex:null,sourceRegex:e,regexAst:i,version:r,maxVersion:d,matchedVersions:t,...a}}))}(function(e,u,r=a.A){const n=[];let d="",t=!1;return r.forEach((r=>{const a=e.get(r.family);if(!a)return;let{version:s,minVersion:i,maxVersion:o}=r;s&&(i=s,o=s);let c=function(e,u,r,n){const d={...n,allowHigherVersions:!0},t=u=>f(u,e,d),a=e=>f(u,e,d),s=e&&u?e=>t(e)&&a(e):e?t:u?a:()=>!0;return r.filter(s)}(i,o,a,u);c.length&&(d===r.family&&t&&(s=void 0,i=void 0,o=void 0,c=a,n.pop()),n.push({...r,version:s,minVersion:i,maxVersion:o,requestVersions:a,matchedVersions:c})),t=!s&&!i&&!o,d=r.family})),n}(function(e){const u=new Map;return e.forEach((({family:e,version:r})=>{const n=u.get(e);if(n){const e=r.join(".");n.every((u=>u.join(".")!==e))&&n.push(r)}else u.set(e,[r])})),u.forEach((e=>{e.sort(((e,u)=>{for(const r in e)if(e[r]!==u[r])return e[r]-u[r];return 0}))})),u}(function(e={}){const{browsers:u,...r}=e;return d(u,r).reduce(((e,u)=>{const[r,n,d]=u.split(/ |-/),t=i(n);return(t?d?function(e,u){let r=0;const n=[];for(let n=2;n>=0;n--)if(e[n]!==u[n]){r=n;break}for(let d=e[r],t=u[r];d<=t;d++)n.push(e.map(((e,u)=>u===r?d:e)));return n}(t,i(d)):[t]:[]).reduce(((e,u)=>(u&&e.push({family:r,version:u}),e)),e)}),[])}(u)),u),u)}function I(e={}){return"string"==typeof(u=function(e){const u=t.optimize(S((r=e,"string"==typeof r?r:r instanceof RegExp?r.toString():t.generate(r)))).getAST();var r;return t.traverse(u,{Group(e){const{parent:u,node:r}=e,{expression:n}=r;r.capturing=!0,("RegExp"===u.type||"Disjunction"!==n.type&&"Repetition"!==u.type||"Disjunction"===n.type&&"Disjunction"===u.type)&&e.replace(e.node.expression)}}),u}({type:"RegExp",body:y(F(e).map((({regexAst:e})=>h(e.body)))),flags:""}))?new RegExp(u):new RegExp(t.generate(u.body),u.flags);var u}},20043:(e,u,r)=>{"use strict";r.d(u,{A:()=>n});const n=[{regex:/IE (\d+)\.(\d+)/,family:"ie",maxVersion:[7,1/0,1/0]},{regex:/Trident\/4\.0/,family:"ie",version:[8,0,0]},{regex:/Trident\/5\.0/,family:"ie",version:[9,0,0]},{regex:/Trident\/6\.0/,family:"ie",version:[10,0,0]},{regex:/Trident\/[78]\.0/,family:"ie",version:[11,0,0]},{regex:/Edge?\/(\d+)\.(\d+)(\.(\d+)|)/,family:"edge"},{regex:/Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"firefox"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"chrome"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/,family:"chrome",maxVersion:[70,1/0,1/0]},{regex:/(Maci|X11).+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//,family:"safari"},{regex:/Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/,family:"opera",maxVersion:[12,15,0]},{regex:/Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"opera",minVersion:[15,0,0]},{regex:/(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf"},{regex:/[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf",version:[7,0,3]},{regex:/Opera Mini/,family:"op_mini"},{regex:/Android Donut/,family:"android",version:[1,2,0]},{regex:/Android Eclair/,family:"android",version:[2,1,0]},{regex:/Android Froyo/,family:"android",version:[2,2,0]},{regex:/Android Gingerbread/,family:"android",version:[2,3,0]},{regex:/Android Honeycomb/,family:"android",version:[3,0,0]},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"android"},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/,family:"android",version:[4,0,0]},{regex:/PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/,family:"op_mob",maxVersion:[12,16,0]},{regex:/Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"op_mob",minVersion:[14,0,0]},{regex:/Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_ff"},{regex:/Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_chr"},{regex:/IEMobile[ /](\d+)\.(\d+)/,family:"ie_mob"},{regex:/Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/,family:"and_uc"},{regex:/SamsungBrowser\/(\d+)\.(\d+)/,family:"samsung"},{regex:/Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"and_qq"},{regex:/baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"baidu"},{regex:/K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/,family:"kaios"}]},73909:e=>{"use strict";e.exports=JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.17.0","date":"2023-07-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.18.0","date":"2023-09-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.19.0","date":"2023-11-29","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.20.0","date":"2024-03-26","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.5.0","date":"2023-07-19","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.6.0","date":"2023-08-23","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.7.0","date":"2023-09-18","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.8.0","date":"2023-09-28","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.9.0","date":"2023-10-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.10.0","date":"2023-11-22","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.11.0","date":"2024-01-09","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.12.0","date":"2024-03-26","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.13.0","date":"2024-05-07","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.14.0","date":"2024-05-28","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.15.0","date":"2024-06-20","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"21.0.0","date":"2023-10-17","lts":false,"security":false,"v8":"11.8.172.13"},{"name":"nodejs","version":"21.1.0","date":"2023-10-24","lts":false,"security":false,"v8":"11.8.172.15"},{"name":"nodejs","version":"21.2.0","date":"2023-11-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.3.0","date":"2023-11-30","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.4.0","date":"2023-12-05","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.5.0","date":"2023-12-19","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.6.0","date":"2024-01-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.7.0","date":"2024-03-06","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"22.0.0","date":"2024-04-24","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.1.0","date":"2024-05-02","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.2.0","date":"2024-05-15","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.3.0","date":"2024-06-11","lts":false,"security":false,"v8":"12.4.254.20"},{"name":"nodejs","version":"22.4.0","date":"2024-07-02","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.5.0","date":"2024-07-17","lts":false,"security":false,"v8":"12.4.254.21"}]')},93147:e=>{"use strict";e.exports=JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":"Iron"},"v21":{"start":"2023-10-17","maintenance":"2024-04-01","end":"2024-06-01"},"v22":{"start":"2024-04-24","lts":"2024-10-29","maintenance":"2025-10-21","end":"2027-04-30","codename":""},"v23":{"start":"2024-10-15","maintenance":"2025-04-01","end":"2025-06-01"},"v24":{"start":"2025-04-22","lts":"2025-10-28","maintenance":"2026-10-20","end":"2028-04-30","codename":""}}')}}]); -//# sourceMappingURL=7883-7883.js.map?v=c0c28c3b24eedff40f45
\ No newline at end of file +(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[7883],{54380:e=>{e.exports=[">0.25%","not op_mini all","not dead","Firefox ESR"]},95635:(e,u,r)=>{"use strict";r.d(u,{A:()=>t});var n=r(21777),d=r(35947);const t=null===(a=(0,n.HW)())?(0,d.YK)().setApp("core").build():(0,d.YK)().setApp("core").setUid(a.uid).build();var a;(0,d.YK)().setApp("unified-search").detectUser().build()},43740:(e,u,r)=>{"use strict";r.d(u,{A:()=>n});const n=(0,r(59097).c0)("core").clearOnLogout().persist().build()},55348:(e,u,r)=>{"use strict";r.d(u,{j:()=>i});var n=r(3211),d=r(94364),t=r.n(d),a=r(54380),s=r.n(a);const i=(0,n.yS)({allowHigherVersions:!0,browsers:s()});t()(s())},77883:(e,u,r)=>{"use strict";r.d(u,{testSupportedBrowser:()=>o});var n=r(63814),d=r(55348),t=r(43740),a=r(95635),s=r(62045).hp;const i=(0,n.Jv)("/unsupported"),f="true"===t.A.getItem("unsupported-browser-ignore"),o=function(){if(d.j.test(navigator.userAgent))a.A.debug("this browser is officially supported ! 🚀");else if(f)a.A.debug("this browser is NOT supported but has been manually overridden ! ⚠️");else if(-1===window.location.pathname.indexOf(i)){const e=window.location.href.replace(window.location.origin,""),u=s.from(e).toString("base64");history.pushState(null,null,`${i}?redirect_url=${u}`),window.location.reload()}}},93928:(e,u,r)=>{var n=r(74150);function d(){}e.exports={loadQueries:function(){throw new n("Sharable configs are not supported in client-side build of Browserslist")},getStat:function(e){return e.stats},loadConfig:function(e){if(e.config)throw new n("Browserslist config are not supported in client-side build")},loadCountry:function(){throw new n("Country statistics are not supported in client-side build of Browserslist")},loadFeature:function(){throw new n("Supports queries are not available in client-side build of Browserslist")},currentNode:function(e,u){return e(["maintained node versions"],u)[0]},parseConfig:d,readConfig:d,findConfig:d,findConfigFile:d,clearCaches:d,oldDataWarning:d,env:{}}},74150:e=>{function u(e){this.name="BrowserslistError",this.message=e,this.browserslist=!0,Error.captureStackTrace&&Error.captureStackTrace(this,u)}u.prototype=Error.prototype,e.exports=u},94364:(e,u,r)=>{var n=r(73909),d=r(76019).X,t=r(68093),a=r(93147),s=r(18411),i=r(74150),f=r(93928),o=r(6319),c="37";function l(e,u){return 0===(e+".").indexOf(u+".")}function v(e){return e.filter((function(e){return"string"==typeof e}))}function b(e){var u=e;return 3===e.split(".").length&&(u=e.split(".").slice(0,-1).join(".")),u}function p(e){return function(u){return e+" "+u}}function m(e){return parseInt(e.split(".")[0])}function h(e,u){if(0===e.length)return[];var r=y(e.map(m)),n=r[r.length-u];if(!n)return e;for(var d=[],t=e.length-1;t>=0&&!(n>m(e[t]));t--)d.unshift(e[t]);return d}function y(e){for(var u=[],r=0;r<e.length;r++)-1===u.indexOf(e[r])&&u.push(e[r]);return u}function g(e,u,r){for(var n in r)e[u+" "+n]=r[n]}function C(e,u){return u=parseFloat(u),">"===e?function(e){return r(e)>u}:">="===e?function(e){return r(e)>=u}:"<"===e?function(e){return parseFloat(e)<u}:function(e){return parseFloat(e)<=u};function r(e){return parseFloat(e.split("-")[1]||e)}}function B(e){return parseInt(e)}function _(e,u){return e<u?-1:e>u?1:0}function x(e,u){return _(parseInt(e[0]),parseInt(u[0]))||_(parseInt(e[1]||"0"),parseInt(u[1]||"0"))||_(parseInt(e[2]||"0"),parseInt(u[2]||"0"))}function j(e,u){return void 0===(u=u.split(".").map(B))[1]&&(u[1]="x"),"<="===e?function(e){return A(e=e.split(".").map(B),u)<=0}:function(e){return A(e=e.split(".").map(B),u)>=0}}function A(e,u){return e[0]!==u[0]?e[0]<u[0]?-1:1:"x"===u[1]?0:e[1]!==u[1]?e[1]<u[1]?-1:1:0}function S(e,u){var r=function(e,u){return-1!==e.versions.indexOf(u)?u:!!U.versionAliases[e.name][u]&&U.versionAliases[e.name][u]}(e,u);return r||1===e.versions.length&&e.versions[0]}function w(e,u){return e/=1e3,Object.keys(d).reduce((function(r,n){var d=P(n,u);if(!d)return r;var t=Object.keys(d.releaseDate).filter((function(u){var r=d.releaseDate[u];return null!==r&&r>=e}));return r.concat(t.map(p(d.name)))}),[])}function k(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function P(e,u){if(e=e.toLowerCase(),e=U.aliases[e]||e,u.mobileToDesktop&&U.desktopNames[e]){var r=U.data[U.desktopNames[e]];if("android"===e)return d=k(U.data[e]),t=r,d.released=E(d.released,t.released),d.versions=E(d.versions,t.versions),d.releaseDate=function(e){var u={};for(var r in e)u[r]=e[r];return u}(d.releaseDate),d.released.forEach((function(e){void 0===d.releaseDate[e]&&(d.releaseDate[e]=t.releaseDate[e])})),d;var n=k(r);return n.name=e,n}var d,t;return U.data[e]}function E(e,u){var r=u.indexOf(c);return e.filter((function(e){return/^(?:[2-4]\.|[34]$)/.test(e)})).concat(u.slice(r))}function D(e,u){var r=P(e,u);if(!r)throw new i("Unknown browser "+e);return r}function O(e,u,r,n){var d=1;switch(u){case"android":if(n.mobileToDesktop)return e;var t=U.data.chrome.released;d=t.length-t.indexOf(c);break;case"op_mob":d=m(U.data.op_mob.released.slice(-1)[0])-14+1;break;default:return e}return r<=d?e.slice(-1):e.slice(d-1-r)}function T(e,u){return"string"==typeof e&&(e.indexOf("y")>=0||u&&e.indexOf("a")>=0)}function R(e,u){return G(e).reduce((function(e,r,n){if(r.not&&0===n)throw new i("Write any browsers query (for instance, `defaults`) before `"+r.query+"`");var d=$[r.type].select.call(U,u,r).map((function(e){var r=e.split(" ");return"0"===r[1]?r[0]+" "+P(r[0],u).versions[0]:e}));if("and"===r.compose)return r.not?e.filter((function(e){return-1===d.indexOf(e)})):e.filter((function(e){return-1!==d.indexOf(e)}));if(r.not){var t={};return d.forEach((function(e){t[e]=!0})),e.filter((function(e){return!t[e]}))}return e.concat(d)}),[])}function N(e){return void 0===e&&(e={}),void 0===e.path&&(e.path=s.resolve?s.resolve("."):"."),e}function L(e,u){null==e&&(e=U.loadConfig(u)||U.defaults);return e}function F(e){if("string"!=typeof e&&!Array.isArray(e))throw new i("Browser queries must be an array or string. Got "+typeof e+".")}var I={},M={};function U(e,u){F(e=L(e,u=N(u)));var r=G(e).some((function(e){return $[e.type].needsPath})),n={ignoreUnknownVersions:u.ignoreUnknownVersions,dangerousExtend:u.dangerousExtend,mobileToDesktop:u.mobileToDesktop,env:u.env};r&&(n.path=u.path),f.oldDataWarning(U.data);var d=f.getStat(u,U.data);if(d)for(var t in n.customUsage={},d)g(n.customUsage,t,d[t]);var a=JSON.stringify([e,n]);if(I[a])return I[a];var s=y(R(e,n)).sort((function(e,u){if(e=e.split(" "),u=u.split(" "),e[0]===u[0]){var r=e[1].split("-")[0];return x(u[1].split("-")[0].split("."),r.split("."))}return _(e[0],u[0])}));return f.env.BROWSERSLIST_DISABLE_CACHE||(I[a]=s),s}function G(e){var u=JSON.stringify(e);if(u in M)return M[u];var r=o($,e);return f.env.BROWSERSLIST_DISABLE_CACHE||(M[u]=r),r}function H(e,u){var r=U.nodeVersions.filter((function(e){return l(e,u.version)}));if(0===r.length){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+u.version+" of Node.js")}return["node "+r[r.length-1]]}function V(e,u){var r=parseInt(u.year),n=parseInt(u.month||"01")-1,d=parseInt(u.day||"01");return w(Date.UTC(r,n,d,0,0,0),e)}function q(e,u){var r=parseFloat(u.coverage),n=U.usage.global;if(u.place)if(u.place.match(/^my\s+stats$/i)){if(!e.customUsage)throw new i("Custom usage statistics was not provided");n=e.customUsage}else{var d;d=2===u.place.length?u.place.toUpperCase():u.place.toLowerCase(),f.loadCountry(U.usage,d,U.data),n=U.usage[d]}for(var t,a=Object.keys(n).sort((function(e,u){return n[u]-n[e]})),s=0,o=[],c=0;c<a.length&&(t=a[c],0!==n[t])&&(s+=n[t],o.push(t),!(s>=r));c++);return o}U.parse=function(e,u){return F(e=L(e,u=N(u))),G(e)},U.cache={},U.data={},U.usage={global:{},custom:null},U.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"],U.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"},U.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",android:"chrome"},U.versionAliases={},U.clearCaches=f.clearCaches,U.parseConfig=f.parseConfig,U.readConfig=f.readConfig,U.findConfigFile=f.findConfigFile,U.findConfig=f.findConfig,U.loadConfig=f.loadConfig,U.coverage=function(e,u){var r;if(void 0===u)r=U.usage.global;else if("my stats"===u){var n={};n.path=s.resolve?s.resolve("."):".";var d=f.getStat(n);if(!d)throw new i("Custom usage statistics was not provided");for(var t in r={},d)g(r,t,d[t])}else if("string"==typeof u)u=u.length>2?u.toLowerCase():u.toUpperCase(),f.loadCountry(U.usage,u,U.data),r=U.usage[u];else for(var a in"dataByBrowser"in u&&(u=u.dataByBrowser),r={},u)for(var o in u[a])r[a+" "+o]=u[a][o];return e.reduce((function(e,u){var n=r[u];return void 0===n&&(n=r[u.replace(/ \S+$/," 0")]),e+(n||0)}),0)};var $={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(e,u){return Object.keys(d).reduce((function(r,n){var d=P(n,e);if(!d)return r;var t=h(d.released,u.versions);return t=O(t=t.map(p(d.name)),d.name,u.versions,e),r.concat(t)}),[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(e,u){return Object.keys(d).reduce((function(r,n){var d=P(n,e);if(!d)return r;var t=d.released.slice(-u.versions);return t=O(t=t.map(p(d.name)),d.name,u.versions,e),r.concat(t)}),[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(e,u){return h(Object.keys(t),u.versions).map((function(e){return"chrome "+t[e]}))}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(e,u){return h(U.nodeVersions,u.versions).map((function(e){return"node "+e}))}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(e,u){var r=D(u.browser,e),n=h(r.released,u.versions).map(p(r.name));return O(n,r.name,u.versions,e)}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(e,u){return Object.keys(t).slice(-u.versions).map((function(e){return"chrome "+t[e]}))}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(e,u){return U.nodeVersions.slice(-u.versions).map((function(e){return"node "+e}))}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(e,u){var r=D(u.browser,e),n=r.released.slice(-u.versions).map(p(r.name));return O(n,r.name,u.versions,e)}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(e){return Object.keys(d).reduce((function(u,r){var n=P(r,e);if(!n)return u;var d=n.versions.filter((function(e){return-1===n.released.indexOf(e)}));return d=d.map(p(n.name)),u.concat(d)}),[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(e,u){var r=D(u.browser,e);return r.versions.filter((function(e){return-1===r.released.indexOf(e)})).map(p(r.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(e,u){return w(Date.now()-31558432982.4*u.years,e)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:V},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:V},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:V},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(e,u){var r=parseFloat(u.popularity),n=U.usage.global;return Object.keys(n).reduce((function(e,d){return">"===u.sign?n[d]>r&&e.push(d):"<"===u.sign?n[d]<r&&e.push(d):"<="===u.sign?n[d]<=r&&e.push(d):n[d]>=r&&e.push(d),e}),[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var n=e.customUsage;return Object.keys(n).reduce((function(e,d){var t=n[d];return null==t||(">"===u.sign?t>r&&e.push(d):"<"===u.sign?t<r&&e.push(d):"<="===u.sign?t<=r&&e.push(d):t>=r&&e.push(d)),e}),[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity),n=f.loadStat(e,u.config,U.data);if(n)for(var d in e.customUsage={},n)g(e.customUsage,d,n[d]);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var t=e.customUsage;return Object.keys(t).reduce((function(e,n){var d=t[n];return null==d||(">"===u.sign?d>r&&e.push(n):"<"===u.sign?d<r&&e.push(n):"<="===u.sign?d<=r&&e.push(n):d>=r&&e.push(n)),e}),[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(e,u){var r=parseFloat(u.popularity),n=u.place;n=2===n.length?n.toUpperCase():n.toLowerCase(),f.loadCountry(U.usage,n,U.data);var d=U.usage[n];return Object.keys(d).reduce((function(e,n){var t=d[n];return null==t||(">"===u.sign?t>r&&e.push(n):"<"===u.sign?t<r&&e.push(n):"<="===u.sign?t<=r&&e.push(n):t>=r&&e.push(n)),e}),[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:q},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:q},supports:{matches:["supportType","feature"],regexp:/^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/,select:function(e,u){f.loadFeature(U.cache,u.feature);var r="fully"!==u.supportType,n=U.cache[u.feature],d=[];for(var t in n){for(var a=P(t,e),s=a.released.length-1;s>=0&&!(a.released[s]in n[t]);)s--;var i=e.mobileToDesktop&&t in U.desktopNames&&T(n[t][a.released[s]],r);a.versions.forEach((function(e){var u=n[t][e];void 0===u&&i&&(u=n[U.desktopNames[t]][e]),T(u,r)&&d.push(t+" "+e)}))}return d}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=b(u.from),n=b(u.to),d=parseFloat(u.from),a=parseFloat(u.to);if(!t[r])throw new i("Unknown version "+d+" of electron");if(!t[n])throw new i("Unknown version "+a+" of electron");return Object.keys(t).filter((function(e){var u=parseFloat(e);return u>=d&&u<=a})).map((function(e){return"chrome "+t[e]}))}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){return U.nodeVersions.filter(j(">=",u.from)).filter(j("<=",u.to)).map((function(e){return"node "+e}))}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=D(u.browser,e),n=parseFloat(S(r,u.from)||u.from),d=parseFloat(S(r,u.to)||u.to);return r.released.filter((function(e){var u=parseFloat(e);return u>=n&&u<=d})).map(p(r.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){var r=b(u.version);return Object.keys(t).filter(C(u.sign,r)).map((function(e){return"chrome "+t[e]}))}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){return U.nodeVersions.filter((r=u.sign,n=u.version,(n=n.split(".").map(B))[1]=n[1]||0,n[2]=n[2]||0,">"===r?function(e){return x(e=e.split(".").map(B),n)>0}:">="===r?function(e){return x(e=e.split(".").map(B),n)>=0}:"<"===r?function(e){return e=e.split(".").map(B),x(n,e)>0}:function(e){return e=e.split(".").map(B),x(n,e)>=0})).map((function(e){return"node "+e}));var r,n}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(e,u){var r=u.version,n=D(u.browser,e),d=U.versionAliases[n.name][r];return d&&(r=d),n.released.filter(C(u.sign,r)).map((function(e){return n.name+" "+e}))}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 128"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(e,u){var r=b(u.version),n=t[r];if(!n)throw new i("Unknown version "+u.version+" of electron");return["chrome "+n]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:H},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:H},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:H},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(e){return[f.currentNode(R,e)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(e){var u=Date.now();return R(Object.keys(a).filter((function(e){return u<Date.parse(a[e].end)&&u>Date.parse(a[e].start)&&(r=e.slice(1),U.nodeVersions.some((function(e){return l(e,r)})));var r})).map((function(e){return"node "+e.slice(1)})),e)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(e,u){var r=u.version;/^tp$/i.test(r)&&(r="TP");var n=D(u.browser,e),d=S(n,r);if(d)r=d;else{if(!(d=S(n,d=-1===r.indexOf(".")?r+".0":r.replace(/\.0$/,"")))){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+r+" of "+u.browser)}r=d}return[n.name+" "+r]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,needsPath:!0,select:function(e){return U(void 0,e)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,needsPath:!0,select:function(e,u){return R(f.loadQueries(e,u.config),e)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(e){return R(U.defaults,e)}},dead:{matches:[],regexp:/^dead$/i,select:function(e){return R(["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"],e)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(e,u){throw P(u.query,e)?new i("Specify versions in Browserslist query for browser "+u.query):(r=u.query,new i("Unknown browser query `"+r+"`. Maybe you are using old Browserslist or made typo in query."));var r}}};!function(){for(var e in d){var u=d[e];U.data[e]={name:e,versions:v(d[e].versions),released:v(d[e].versions.slice(0,-3)),releaseDate:d[e].release_date},g(U.usage.global,e,u.usage_global),U.versionAliases[e]={};for(var r=0;r<u.versions.length;r++){var t=u.versions[r];if(t&&-1!==t.indexOf("-"))for(var a=t.split("-"),s=0;s<a.length;s++)U.versionAliases[e][a[s]]=t}}U.nodeVersions=n.map((function(e){return e.version}))}(),e.exports=U},6319:e=>{var u=/^\s+and\s+(.*)/i,r=/^(?:,\s*|\s+or\s+)(.*)/i;function n(e){return Array.isArray(e)?e.reduce((function(e,u){return e.concat(n(u))}),[]):[e]}function d(e,u){var r={query:u};for(var n in 0===u.indexOf("not ")&&(r.not=!0,u=u.slice(4)),e){var d=e[n],t=u.match(d.regexp);if(t){r.type=n;for(var a=0;a<d.matches.length;a++)r[d.matches[a]]=t[a+1];return r}}return r.type="unknown",r}function t(e,n,t){var a;return function(e,u){for(var r=e.length,n=1;n<=r;n++)if(u(e.substr(-n,n),n,r))return e.slice(0,-n);return""}(n,(function(n,s,i){return u.test(n)?((a=d(e,n.match(u)[1])).compose="and",t.unshift(a),!0):r.test(n)?((a=d(e,n.match(r)[1])).compose="or",t.unshift(a),!0):s===i&&((a=d(e,n.trim())).compose="or",t.unshift(a),!0)}))}e.exports=function(e,u){return Array.isArray(u)||(u=[u]),n(u.map((function(u){var r=[];do{u=t(e,u,r)}while(u);return r})))}},96481:e=>{e.exports={A:{A:{K:0,E:0,F:0,G:.033801,A:0,B:.371811,kC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","kC","K","E","F","G","A","B","","",""],E:"IE",F:{kC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968e3}},B:{A:{6:.003558,7:0,8:.003558,9:.003558,C:0,L:0,M:0,H:0,N:0,O:.003558,P:.117414,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:.010674,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:.003558,s:.049812,t:0,u:.003558,v:.007116,w:.007116,x:.010674,AB:.003558,BB:.021348,CB:.010674,DB:.014232,EB:.007116,FB:.010674,GB:.010674,HB:.021348,IB:.021348,JB:.01779,KB:.021348,LB:.067602,MB:2.88198,D:1.62245},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","H","N","O","P","Q","I","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","D","","",""],E:"Edge",F:{6:1689897600,7:1692576e3,8:1694649600,9:1697155200,C:1438128e3,L:1447286400,M:1470096e3,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I:1581033600,R:1586736e3,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:161136e4,Y:1614816e3,Z:1618358400,a:1622073600,b:1626912e3,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,v:1680825600,w:1683158400,x:1685664e3,AB:1698969600,BB:1701993600,CB:1706227200,DB:1708732800,EB:1711152e3,FB:1713398400,GB:1715990400,HB:1718841600,IB:1721865600,JB:1724371200,KB:1726704e3,LB:1729123200,MB:1731542400,D:1737417600},D:{C:"ms",L:"ms",M:"ms",H:"ms",N:"ms",O:"ms",P:"ms"}},C:{A:{0:0,1:0,2:0,3:0,4:0,5:0,6:.234828,7:0,8:0,9:.085392,lC:0,IC:0,J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:.021348,C:0,L:0,M:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:.007116,fB:.003558,gB:0,hB:0,iB:.003558,jB:0,kB:0,lB:0,mB:0,nB:.028464,oB:0,pB:0,qB:.003558,rB:.014232,sB:0,tB:0,JC:.003558,uB:0,KC:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0,"7B":0,"8B":0,"9B":0,AC:0,BC:.010674,Q:0,I:0,R:0,LC:0,S:0,T:0,U:0,V:0,W:0,X:.003558,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:.007116,n:0,o:0,p:0,q:0,r:0,s:.003558,t:0,u:0,v:0,w:.007116,x:0,AB:0,BB:.003558,CB:.003558,DB:0,EB:0,FB:0,GB:.01779,HB:0,IB:.007116,JB:.078276,KB:.003558,LB:.007116,MB:.010674,D:.021348,MC:.49812,NC:1.02826,OC:.007116,PC:0,mC:0,nC:0,oC:0,pC:0},B:"moz",C:["lC","IC","oC","pC","J","NB","K","E","F","G","A","B","C","L","M","H","N","O","P","OB","y","z","0","1","2","3","4","5","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","JC","uB","KC","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","9B","AC","BC","Q","I","R","LC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","D","MC","NC","OC","PC","mC","nC"],E:"Firefox",F:{0:1368489600,1:1372118400,2:1375747200,3:1379376e3,4:1386633600,5:1391472e3,6:1688428800,7:1690848e3,8:1693267200,9:1695686400,lC:1161648e3,IC:1213660800,oC:124632e4,pC:1264032e3,J:1300752e3,NB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968e3,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112e3,O:1349740800,P:1353628800,OB:1357603200,y:1361232e3,z:1364860800,PB:1395100800,QB:1398729600,RB:1402358400,SB:1405987200,TB:1409616e3,UB:1413244800,VB:1417392e3,WB:1421107200,XB:1424736e3,YB:1428278400,ZB:1431475200,aB:1435881600,bB:1439251200,cB:144288e4,dB:1446508800,eB:1450137600,fB:1453852800,gB:1457395200,hB:1461628800,iB:1465257600,jB:1470096e3,kB:1474329600,lB:1479168e3,mB:1485216e3,nB:1488844800,oB:149256e4,pB:1497312e3,qB:1502150400,rB:1506556800,sB:1510617600,tB:1516665600,JC:1520985600,uB:1525824e3,KC:1529971200,vB:1536105600,wB:1540252800,xB:1544486400,yB:154872e4,zB:1552953600,"0B":1558396800,"1B":1562630400,"2B":1567468800,"3B":1571788800,"4B":1575331200,"5B":1578355200,"6B":1581379200,"7B":1583798400,"8B":1586304e3,"9B":1588636800,AC:1591056e3,BC:1593475200,Q:1595894400,I:1598313600,R:1600732800,LC:1603152e3,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392e3,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536e3,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632e3,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752e3,v:1681171200,w:1683590400,x:1686009600,AB:1698105600,BB:1700524800,CB:1702944e3,DB:1705968e3,EB:1708387200,FB:1710806400,GB:1713225600,HB:1715644800,IB:1718064e3,JB:1720483200,KB:1722902400,LB:1725321600,MB:1727740800,D:173016e4,MC:1732579200,NC:1736208e3,OC:1738627200,PC:null,mC:null,nC:null}},D:{A:{0:0,1:0,2:0,3:0,4:0,5:0,6:.024906,7:.110298,8:.067602,9:.056928,J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:.007116,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:.003558,hB:0,iB:.003558,jB:.014232,kB:.014232,lB:.024906,mB:0,nB:.007116,oB:.007116,pB:0,qB:0,rB:.010674,sB:0,tB:.007116,JC:0,uB:0,KC:.007116,vB:0,wB:0,xB:0,yB:0,zB:.021348,"0B":0,"1B":0,"2B":.007116,"3B":.010674,"4B":0,"5B":0,"6B":.007116,"7B":.007116,"8B":.003558,"9B":.003558,AC:.010674,BC:.010674,Q:.08895,I:.010674,R:.024906,S:.032022,T:0,U:.010674,V:.01779,W:.067602,X:.010674,Y:.007116,Z:.007116,a:.03558,b:.010674,c:.010674,d:.032022,e:.014232,f:.007116,g:.014232,h:.039138,i:.010674,j:.007116,k:.014232,l:.010674,m:.099624,n:.042696,o:.010674,p:.01779,q:.024906,r:.039138,s:1.04605,t:.021348,u:.028464,v:.039138,w:.145878,x:.07116,AB:.039138,BB:.056928,CB:.08895,DB:.074718,EB:.078276,FB:.138762,GB:.814782,HB:.295314,IB:.224154,JB:.156552,KB:.14232,LB:.384264,MB:12.7946,D:3.25201,MC:.014232,NC:.007116,OC:0,PC:0},B:"webkit",C:["","","","","","","","J","NB","K","E","F","G","A","B","C","L","M","H","N","O","P","OB","y","z","0","1","2","3","4","5","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","JC","uB","KC","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","9B","AC","BC","Q","I","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","D","MC","NC","OC","PC"],E:"Chrome",F:{0:1343692800,1:1348531200,2:1352246400,3:1357862400,4:1361404800,5:1364428800,6:1689724800,7:1692057600,8:1694476800,9:1696896e3,J:1264377600,NB:1274745600,K:1283385600,E:1287619200,F:1291248e3,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,OB:1332892800,y:133704e4,z:1340668800,PB:1369094400,QB:1374105600,RB:1376956800,SB:1384214400,TB:1389657600,UB:1392940800,VB:1397001600,WB:1400544e3,XB:1405468800,YB:1409011200,ZB:141264e4,aB:1416268800,bB:1421798400,cB:1425513600,dB:1429401600,eB:143208e4,fB:1437523200,gB:1441152e3,hB:1444780800,iB:1449014400,jB:1453248e3,kB:1456963200,lB:1460592e3,mB:1464134400,nB:1469059200,oB:1472601600,pB:1476230400,qB:1480550400,rB:1485302400,sB:1489017600,tB:149256e4,JC:1496707200,uB:1500940800,KC:1504569600,vB:1508198400,wB:1512518400,xB:1516752e3,yB:1520294400,zB:1523923200,"0B":1527552e3,"1B":1532390400,"2B":1536019200,"3B":1539648e3,"4B":1543968e3,"5B":154872e4,"6B":1552348800,"7B":1555977600,"8B":1559606400,"9B":1564444800,AC:1568073600,BC:1571702400,Q:1575936e3,I:1580860800,R:1586304e3,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272e3,a:1621987200,b:1626739200,c:1630368e3,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512e3,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656e3,r:166968e4,s:1673308800,t:1675728e3,u:1678147200,v:1680566400,w:1682985600,x:1685404800,AB:1698710400,BB:1701993600,CB:1705968e3,DB:1708387200,EB:1710806400,FB:1713225600,GB:1715644800,HB:1718064e3,IB:1721174400,JB:1724112e3,KB:1726531200,LB:1728950400,MB:1731369600,D:1736812800,MC:1738627200,NC:null,OC:null,PC:null}},E:{A:{J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:.003558,M:.01779,H:.003558,qC:0,QC:0,rC:0,sC:0,tC:0,uC:0,RC:0,CC:.003558,DC:.007116,vC:.039138,wC:.05337,xC:.010674,SC:.007116,TC:.014232,EC:.01779,yC:.167226,FC:.024906,UC:.028464,VC:.021348,WC:.049812,XC:.01779,YC:.028464,zC:.224154,GC:.014232,ZC:.024906,aC:.024906,bC:.028464,cC:.064044,dC:.131646,"0C":.39138,HC:.067602,eC:.939312,fC:.416286,gC:.028464,hC:0,"1C":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","qC","QC","J","NB","rC","K","sC","E","tC","F","G","uC","A","RC","B","CC","C","DC","L","vC","M","wC","H","xC","SC","TC","EC","yC","FC","UC","VC","WC","XC","YC","zC","GC","ZC","aC","bC","cC","dC","0C","HC","eC","fC","gC","hC","1C",""],E:"Safari",F:{qC:1205798400,QC:1226534400,J:1244419200,NB:1275868800,rC:131112e4,K:1343174400,sC:13824e5,E:13824e5,tC:1410998400,F:1413417600,G:1443657600,uC:1458518400,A:1474329600,RC:1490572800,B:1505779200,CC:1522281600,C:1537142400,DC:1553472e3,L:1568851200,vC:1585008e3,M:1600214400,wC:1619395200,H:1632096e3,xC:1635292800,SC:1639353600,TC:1647216e3,EC:1652745600,yC:1658275200,FC:1662940800,UC:1666569600,VC:1670889600,WC:1674432e3,XC:1679875200,YC:1684368e3,zC:1690156800,GC:1695686400,ZC:1698192e3,aC:1702252800,bC:1705881600,cC:1709596800,dC:1715558400,"0C":1722211200,HC:1726444800,eC:1730073600,fC:1733875200,gC:1737936e3,hC:null,"1C":null}},F:{A:{0:0,1:0,2:0,3:0,4:0,5:0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:.003558,cB:0,dB:0,eB:0,fB:0,gB:0,hB:.014232,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0,"7B":0,"8B":0,"9B":0,AC:0,BC:0,Q:0,I:0,R:0,LC:0,S:0,T:0,U:0,V:.032022,W:.010674,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:.032022,f:0,g:0,h:0,i:0,j:0,k:0,l:.010674,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:.313104,"2C":0,"3C":0,"4C":0,"5C":0,CC:0,iC:0,"6C":0,DC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","G","2C","3C","4C","5C","B","CC","iC","6C","C","DC","H","N","O","P","OB","y","z","0","1","2","3","4","5","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","9B","AC","BC","Q","I","R","LC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","","",""],E:"Opera",F:{0:1401753600,1:1405987200,2:1409616e3,3:1413331200,4:1417132800,5:1422316800,G:1150761600,"2C":1223424e3,"3C":1251763200,"4C":1267488e3,"5C":1277942400,B:1292457600,CC:1302566400,iC:1309219200,"6C":1323129600,C:1323129600,DC:1352073600,H:1372723200,N:1377561600,O:1381104e3,P:1386288e3,OB:1390867200,y:1393891200,z:1399334400,PB:1425945600,QB:1430179200,RB:1433808e3,SB:1438646400,TB:1442448e3,UB:1445904e3,VB:1449100800,WB:1454371200,XB:1457308800,YB:146232e4,ZB:1465344e3,aB:1470096e3,bB:1474329600,cB:1477267200,dB:1481587200,eB:1486425600,fB:1490054400,gB:1494374400,hB:1498003200,iB:1502236800,jB:1506470400,kB:1510099200,lB:1515024e3,mB:1517961600,nB:1521676800,oB:1525910400,pB:1530144e3,qB:1534982400,rB:1537833600,sB:1543363200,tB:1548201600,uB:1554768e3,vB:1561593600,wB:1566259200,xB:1570406400,yB:1573689600,zB:1578441600,"0B":1583971200,"1B":1587513600,"2B":1592956800,"3B":1595894400,"4B":1600128e3,"5B":1603238400,"6B":161352e4,"7B":1612224e3,"8B":1616544e3,"9B":1619568e3,AC:1623715200,BC:1627948800,Q:1631577600,I:1633392e3,R:1635984e3,LC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152e3,Z:1660780800,a:1663113600,b:1668816e3,c:1668643200,d:1671062400,e:1675209600,f:1677024e3,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:169992e4,o:169992e4,p:1702944e3,q:1707264e3,r:1710115200,s:1711497600,t:1716336e3,u:1719273600,v:1721088e3,w:1724284800,x:1727222400},D:{G:"o",B:"o",C:"o","2C":"o","3C":"o","4C":"o","5C":"o",CC:"o",iC:"o","6C":"o",DC:"o"}},G:{A:{F:0,QC:0,"7C":0,jC:.00293498,"8C":0,"9C":.00733744,AD:.00880493,BD:0,CD:.00293498,DD:.0220123,ED:.00440246,FD:.0322847,GD:.0924517,HD:.0102724,ID:.00586995,JD:.155554,KD:.00293498,LD:.0176099,MD:.00586995,ND:.0220123,OD:.143814,PD:.0689719,QD:.0352197,SC:.0366872,TC:.0425571,EC:.0498946,RD:.585528,FC:.0880493,UC:.192241,VC:.0983217,WC:.171696,XC:.0366872,YC:.0704394,SD:.713199,GC:.0454921,ZC:.0807118,aC:.063102,bC:.0895167,cC:.192241,dC:.463726,TD:1.59369,HC:.490141,eC:6.52592,fC:2.20123,gC:.190773,hC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","QC","7C","jC","8C","9C","AD","F","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","SC","TC","EC","RD","FC","UC","VC","WC","XC","YC","SD","GC","ZC","aC","bC","cC","dC","TD","HC","eC","fC","gC","hC","",""],E:"Safari on iOS",F:{QC:1270252800,"7C":1283904e3,jC:1299628800,"8C":1331078400,"9C":1359331200,AD:1394409600,F:1410912e3,BD:1413763200,CD:1442361600,DD:1458518400,ED:1473724800,FD:1490572800,GD:1505779200,HD:1522281600,ID:1537142400,JD:1553472e3,KD:1568851200,LD:1572220800,MD:1580169600,ND:1585008e3,OD:1600214400,PD:1619395200,QD:1632096e3,SC:1639353600,TC:1647216e3,EC:1652659200,RD:1658275200,FC:1662940800,UC:1666569600,VC:1670889600,WC:1674432e3,XC:1679875200,YC:1684368e3,SD:1690156800,GC:1694995200,ZC:1698192e3,aC:1702252800,bC:1705881600,cC:1709596800,dC:1715558400,TD:1722211200,HC:1726444800,eC:1730073600,fC:1733875200,gC:1737936e3,hC:null}},H:{A:{UD:.04},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","UD","","",""],E:"Opera Mini",F:{UD:1426464e3}},I:{A:{IC:0,J:0,D:.308567,VD:0,WD:0,XD:0,YD:309216e-10,jC:618432e-10,ZD:0,aD:371059e-9},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","VD","WD","XD","IC","J","YD","jC","ZD","aD","D","","",""],E:"Android Browser",F:{VD:1256515200,WD:1274313600,XD:1291593600,IC:1298332800,J:1318896e3,YD:1341792e3,jC:1374624e3,ZD:1386547200,aD:1401667200,D:1737676800}},J:{A:{E:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","A","","",""],E:"Blackberry Browser",F:{E:1325376e3,A:1359504e3}},K:{A:{A:0,B:0,C:0,I:1.03581,CC:0,iC:0,DC:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","CC","iC","C","DC","I","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752e3,CC:1314835200,iC:1318291200,C:1330300800,DC:1349740800,I:1709769600},D:{I:"webkit"}},L:{A:{D:46.1904},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Chrome for Android",F:{D:1737676800}},M:{A:{D:.334984},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Firefox for Android",F:{D:173016e4}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456e3}},O:{A:{EC:.83746},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","EC","","",""],E:"UC Browser for Android",F:{EC:1710115200},D:{EC:"webkit"}},P:{A:{0:.0330772,1:.0330772,2:.0441029,3:.0441029,4:.110257,5:1.90745,J:.0661544,y:0,z:.0220515,bD:.0110257,cD:0,dD:.0110257,eD:0,fD:0,RC:0,gD:0,hD:0,iD:0,jD:0,kD:0,FC:0,GC:.0110257,HC:0,lD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","bD","cD","dD","eD","fD","RC","gD","hD","iD","jD","kD","FC","GC","HC","lD","y","z","0","1","2","3","4","5","","",""],E:"Samsung Internet",F:{0:1689292800,1:1697587200,2:1711497600,3:1715126400,4:1717718400,5:1725667200,J:1461024e3,bD:1481846400,cD:1509408e3,dD:1528329600,eD:1546128e3,fD:1554163200,RC:1567900800,gD:1582588800,hD:1593475200,iD:1605657600,jD:1618531200,kD:1629072e3,FC:1640736e3,GC:1651708800,HC:1659657600,lD:1667260800,y:1677369600,z:1684454400}},Q:{A:{mD:.199702},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mD","","",""],E:"QQ Browser",F:{mD:1710288e3}},R:{A:{nD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","nD","","",""],E:"Baidu Browser",F:{nD:1710201600}},S:{A:{oD:.019326,pD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","oD","pD","","",""],E:"KaiOS Browser",F:{oD:1527811200,pD:1631664e3}}}},56438:e=>{e.exports={0:"22",1:"23",2:"24",3:"25",4:"26",5:"27",6:"115",7:"116",8:"117",9:"118",A:"10",B:"11",C:"12",D:"132",E:"7",F:"8",G:"9",H:"15",I:"80",J:"4",K:"6",L:"13",M:"14",N:"16",O:"17",P:"18",Q:"79",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"107",r:"108",s:"109",t:"110",u:"111",v:"112",w:"113",x:"114",y:"20",z:"21",AB:"119",BB:"120",CB:"121",DB:"122",EB:"123",FB:"124",GB:"125",HB:"126",IB:"127",JB:"128",KB:"129",LB:"130",MB:"131",NB:"5",OB:"19",PB:"28",QB:"29",RB:"30",SB:"31",TB:"32",UB:"33",VB:"34",WB:"35",XB:"36",YB:"37",ZB:"38",aB:"39",bB:"40",cB:"41",dB:"42",eB:"43",fB:"44",gB:"45",hB:"46",iB:"47",jB:"48",kB:"49",lB:"50",mB:"51",nB:"52",oB:"53",pB:"54",qB:"55",rB:"56",sB:"57",tB:"58",uB:"60",vB:"62",wB:"63",xB:"64",yB:"65",zB:"66","0B":"67","1B":"68","2B":"69","3B":"70","4B":"71","5B":"72","6B":"73","7B":"74","8B":"75","9B":"76",AC:"77",BC:"78",CC:"11.1",DC:"12.1",EC:"15.5",FC:"16.0",GC:"17.0",HC:"18.0",IC:"3",JC:"59",KC:"61",LC:"82",MC:"133",NC:"134",OC:"135",PC:"136",QC:"3.2",RC:"10.1",SC:"15.2-15.3",TC:"15.4",UC:"16.1",VC:"16.2",WC:"16.3",XC:"16.4",YC:"16.5",ZC:"17.1",aC:"17.2",bC:"17.3",cC:"17.4",dC:"17.5",eC:"18.1",fC:"18.2",gC:"18.3",hC:"18.4",iC:"11.5",jC:"4.2-4.3",kC:"5.5",lC:"2",mC:"137",nC:"138",oC:"3.5",pC:"3.6",qC:"3.1",rC:"5.1",sC:"6.1",tC:"7.1",uC:"9.1",vC:"13.1",wC:"14.1",xC:"15.1",yC:"15.6",zC:"16.6","0C":"17.6","1C":"TP","2C":"9.5-9.6","3C":"10.0-10.1","4C":"10.5","5C":"10.6","6C":"11.6","7C":"4.0-4.1","8C":"5.0-5.1","9C":"6.0-6.1",AD:"7.0-7.1",BD:"8.1-8.4",CD:"9.0-9.2",DD:"9.3",ED:"10.0-10.2",FD:"10.3",GD:"11.0-11.2",HD:"11.3-11.4",ID:"12.0-12.1",JD:"12.2-12.5",KD:"13.0-13.1",LD:"13.2",MD:"13.3",ND:"13.4-13.7",OD:"14.0-14.4",PD:"14.5-14.8",QD:"15.0-15.1",RD:"15.6-15.8",SD:"16.6-16.7",TD:"17.6-17.7",UD:"all",VD:"2.1",WD:"2.2",XD:"2.3",YD:"4.1",ZD:"4.4",aD:"4.4.3-4.4.4",bD:"5.0-5.4",cD:"6.2-6.4",dD:"7.2-7.4",eD:"8.2",fD:"9.2",gD:"11.1-11.2",hD:"12.0",iD:"13.0",jD:"14.0",kD:"15.0",lD:"19.0",mD:"14.9",nD:"13.52",oD:"2.5",pD:"3.0-3.1"}},90562:e=>{e.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}},76019:(e,u,r)=>{"use strict";const n=r(62660).browsers,d=r(5040).browserVersions,t=r(96481);function a(e){return Object.keys(e).reduce(((u,r)=>(u[d[r]]=e[r],u)),{})}e.exports.X=Object.keys(t).reduce(((e,u)=>{let r=t[u];return e[n[u]]=Object.keys(r).reduce(((e,u)=>("A"===u?e.usage_global=a(r[u]):"C"===u?e.versions=r[u].reduce(((e,u)=>(""===u?e.push(null):e.push(d[u]),e)),[]):"D"===u?e.prefix_exceptions=a(r[u]):"E"===u?e.browser=r[u]:"F"===u?e.release_date=Object.keys(r[u]).reduce(((e,n)=>(e[d[n]]=r[u][n],e)),{}):e.prefix=r[u],e)),{}),e}),{})},5040:(e,u,r)=>{e.exports.browserVersions=r(56438)},62660:(e,u,r)=>{e.exports.browsers=r(90562)},68093:e=>{e.exports={"0.20":"39",.21:"41",.22:"41",.23:"41",.24:"41",.25:"42",.26:"42",.27:"43",.28:"43",.29:"43","0.30":"44",.31:"45",.32:"45",.33:"45",.34:"45",.35:"45",.36:"47",.37:"49","1.0":"49",1.1:"50",1.2:"51",1.3:"52",1.4:"53",1.5:"54",1.6:"56",1.7:"58",1.8:"59","2.0":"61",2.1:"61","3.0":"66",3.1:"66","4.0":"69",4.1:"69",4.2:"69","5.0":"73","6.0":"76",6.1:"76","7.0":"78",7.1:"78",7.2:"78",7.3:"78","8.0":"80",8.1:"80",8.2:"80",8.3:"80",8.4:"80",8.5:"80","9.0":"83",9.1:"83",9.2:"83",9.3:"83",9.4:"83","10.0":"85",10.1:"85",10.2:"85",10.3:"85",10.4:"85","11.0":"87",11.1:"87",11.2:"87",11.3:"87",11.4:"87",11.5:"87","12.0":"89",12.1:"89",12.2:"89","13.0":"91",13.1:"91",13.2:"91",13.3:"91",13.4:"91",13.5:"91",13.6:"91","14.0":"93",14.1:"93",14.2:"93","15.0":"94",15.1:"94",15.2:"94",15.3:"94",15.4:"94",15.5:"94","16.0":"96",16.1:"96",16.2:"96","17.0":"98",17.1:"98",17.2:"98",17.3:"98",17.4:"98","18.0":"100",18.1:"100",18.2:"100",18.3:"100","19.0":"102",19.1:"102","20.0":"104",20.1:"104",20.2:"104",20.3:"104","21.0":"106",21.1:"106",21.2:"106",21.3:"106",21.4:"106","22.0":"108",22.1:"108",22.2:"108",22.3:"108","23.0":"110",23.1:"110",23.2:"110",23.3:"110","24.0":"112",24.1:"112",24.2:"112",24.3:"112",24.4:"112",24.5:"112",24.6:"112",24.7:"112",24.8:"112","25.0":"114",25.1:"114",25.2:"114",25.3:"114",25.4:"114",25.5:"114",25.6:"114",25.7:"114",25.8:"114",25.9:"114","26.0":"116",26.1:"116",26.2:"116",26.3:"116",26.4:"116",26.5:"116",26.6:"116","27.0":"118",27.1:"118",27.2:"118",27.3:"118","28.0":"120",28.1:"120",28.2:"120",28.3:"120","29.0":"122",29.1:"122",29.2:"122",29.3:"122",29.4:"122","30.0":"124",30.1:"124",30.2:"124",30.3:"124",30.4:"124",30.5:"124","31.0":"126",31.1:"126",31.2:"126",31.3:"126",31.4:"126",31.5:"126",31.6:"126",31.7:"126","32.0":"128",32.1:"128",32.2:"128",32.3:"128","33.0":"130",33.1:"130",33.2:"130",33.3:"130",33.4:"130","34.0":"132",34.1:"132",34.2:"132","35.0":"134"}},9182:(e,u,r)=>{"use strict";var n=r(43034),d=r(2003);e.exports={transform:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=u.length>0?u:Object.keys(n),t=void 0,a={};return r.forEach((function(u){if(!n.hasOwnProperty(u))throw new Error("Unknown compat-transform: "+u+". Available transforms are: "+Object.keys(n).join(", "));var r=n[u];t=d.transform(e,r),e=t.getAST(),"function"==typeof r.getExtra&&(a[u]=r.getExtra())})),t.setExtra(a),t}}},51537:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(u,r){var n=r.flags,d=r.groups,t=r.source;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._re=u,this._groups=d,this.flags=n,this.source=t||u.source,this.dotAll=n.includes("s"),this.global=u.global,this.ignoreCase=u.ignoreCase,this.multiline=u.multiline,this.sticky=u.sticky,this.unicode=u.unicode}return u(e,[{key:"test",value:function(e){return this._re.test(e)}},{key:"compile",value:function(e){return this._re.compile(e)}},{key:"toString",value:function(){return this._toStringResult||(this._toStringResult="/"+this.source+"/"+this.flags),this._toStringResult}},{key:"exec",value:function(e){var u=this._re.exec(e);if(!this._groups||!u)return u;for(var r in u.groups={},this._groups){var n=this._groups[r];u.groups[r]=u[n]}return u}}]),e}();e.exports={RegExpTree:r}},45640:e=>{"use strict";e.exports={_hasUFlag:!1,shouldRun:function(e){return!!e.flags.includes("s")&&(e.flags=e.flags.replace("s",""),this._hasUFlag=e.flags.includes("u"),!0)},Char:function(e){var u=e.node;if("meta"===u.kind&&"."===u.value){var r="\\uFFFF",n="";this._hasUFlag&&(r="\\u{10FFFF}",n=""),e.replace({type:"CharacterClass",expressions:[{type:"ClassRange",from:{type:"Char",value:"\\0",kind:"decimal",symbol:"\0"},to:{type:"Char",value:r,kind:"unicode",symbol:n}}]})}}}},62514:e=>{"use strict";e.exports={_groupNames:{},init:function(){this._groupNames={}},getExtra:function(){return this._groupNames},Group:function(e){var u=e.node;u.name&&(this._groupNames[u.name]=u.number,delete u.name,delete u.nameRaw)},Backreference:function(e){var u=e.node;"name"===u.kind&&(u.kind="number",u.reference=u.number,delete u.referenceRaw)}}},57559:e=>{"use strict";e.exports={RegExp:function(e){var u=e.node;u.flags.includes("x")&&(u.flags=u.flags.replace("x",""))}}},43034:(e,u,r)=>{"use strict";e.exports={dotAll:r(45640),namedCapturingGroups:r(62514),xFlag:r(57559)}},20042:e=>{"use strict";function u(e){return e?r[e.type](e):""}var r={RegExp:function(e){return"/"+u(e.body)+"/"+e.flags},Alternative:function(e){return(e.expressions||[]).map(u).join("")},Disjunction:function(e){return u(e.left)+"|"+u(e.right)},Group:function(e){var r=u(e.expression);return e.capturing?e.name?"(?<"+(e.nameRaw||e.name)+">"+r+")":"("+r+")":"(?:"+r+")"},Backreference:function(e){switch(e.kind){case"number":return"\\"+e.reference;case"name":return"\\k<"+(e.referenceRaw||e.reference)+">";default:throw new TypeError("Unknown Backreference kind: "+e.kind)}},Assertion:function(e){switch(e.kind){case"^":case"$":case"\\b":case"\\B":return e.kind;case"Lookahead":var r=u(e.assertion);return e.negative?"(?!"+r+")":"(?="+r+")";case"Lookbehind":var n=u(e.assertion);return e.negative?"(?<!"+n+")":"(?<="+n+")";default:throw new TypeError("Unknown Assertion kind: "+e.kind)}},CharacterClass:function(e){var r=e.expressions.map(u).join("");return e.negative?"[^"+r+"]":"["+r+"]"},ClassRange:function(e){return u(e.from)+"-"+u(e.to)},Repetition:function(e){return""+u(e.expression)+u(e.quantifier)},Quantifier:function(e){var u=void 0,r=e.greedy?"":"?";switch(e.kind){case"+":case"?":case"*":u=e.kind;break;case"Range":u=e.from===e.to?"{"+e.from+"}":e.to?"{"+e.from+","+e.to+"}":"{"+e.from+",}";break;default:throw new TypeError("Unknown Quantifier kind: "+e.kind)}return""+u+r},Char:function(e){var u=e.value;switch(e.kind){case"simple":return e.escaped?"\\"+u:u;case"hex":case"unicode":case"oct":case"decimal":case"control":case"meta":return u;default:throw new TypeError("Unknown Char kind: "+e.kind)}},UnicodeProperty:function(e){return"\\"+(e.negative?"P":"p")+"{"+(e.shorthand||e.binary?"":e.name+"=")+e.value+"}"}};e.exports={generate:u}},85162:e=>{"use strict";var u=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function r(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var n=null;function d(e,u){if(!u)return!1;if(e.length!==u.length)return!1;for(var n=0;n<e.length;n++){var d=e[n],t=u[n];if(d.size!==t.size)return!1;if([].concat(r(d)).sort().join(",")!==[].concat(r(t)).sort().join(","))return!1}return!0}function t(e,u,r,n){var d=!0,t=!1,s=void 0;try{for(var i,f=n[Symbol.iterator]();!(d=(i=f.next()).done);d=!0)if(!a(e,u,r,i.value))return!1}catch(e){t=!0,s=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw s}}return!0}function a(e,u,r,d){if(!n[e]||!n[u])return!1;var t=r[e][d],a=r[u][d];return!t&&!a||n[e].has(t)&&n[u].has(a)}e.exports={minimize:function(e){var a=e.getTransitionTable(),s=Object.keys(a),i=e.getAlphabet(),f=e.getAcceptingStateNumbers();n={};var o=new Set;s.forEach((function(e){e=Number(e),f.has(e)?n[e]=f:(o.add(e),n[e]=o)}));var c=[[o,f].filter((function(e){return e.size>0}))],l=void 0,v=void 0;l=c[c.length-1],v=c[c.length-2];for(var b=function(){var e,u={},d=!0,s=!1,f=void 0;try{for(var o,b=l[Symbol.iterator]();!(d=(o=b.next()).done);d=!0){var p=o.value,m={},h=(e=p,Array.isArray(e)?e:Array.from(e)),y=h[0],g=h.slice(1);m[y]=new Set([y]);var C=!0,B=!1,_=void 0;try{e:for(var x,j=g[Symbol.iterator]();!(C=(x=j.next()).done);C=!0){var A=x.value,S=!0,w=!1,k=void 0;try{for(var P,E=Object.keys(m)[Symbol.iterator]();!(S=(P=E.next()).done);S=!0){var D=P.value;if(t(A,D,a,i)){m[D].add(A),m[A]=m[D];continue e}}}catch(e){w=!0,k=e}finally{try{!S&&E.return&&E.return()}finally{if(w)throw k}}m[A]=new Set([A])}}catch(e){B=!0,_=e}finally{try{!C&&j.return&&j.return()}finally{if(B)throw _}}Object.assign(u,m)}}catch(e){s=!0,f=e}finally{try{!d&&b.return&&b.return()}finally{if(s)throw f}}n=u;var O=new Set(Object.keys(u).map((function(e){return u[e]})));c.push([].concat(r(O))),l=c[c.length-1],v=c[c.length-2]};!d(l,v);)b();var p=new Map,m=1;l.forEach((function(e){return p.set(e,m++)}));var h={},y=new Set,g=function(e,u){var r=!0,n=!1,d=void 0;try{for(var t,a=e[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var s=t.value;f.has(s)&&y.add(u)}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}},C=!0,B=!1,_=void 0;try{for(var x,j=p.entries()[Symbol.iterator]();!(C=(x=j.next()).done);C=!0){var A=x.value,S=u(A,2),w=S[0],k=S[1];h[k]={};var P=!0,E=!1,D=void 0;try{for(var O,T=i[Symbol.iterator]();!(P=(O=T.next()).done);P=!0){var R=O.value;g(w,k);var N=void 0,L=!0,F=!1,I=void 0;try{for(var M,U=w[Symbol.iterator]();!(L=(M=U.next()).done);L=!0){var G=M.value;if(N=a[G][R])break}}catch(e){F=!0,I=e}finally{try{!L&&U.return&&U.return()}finally{if(F)throw I}}N&&(h[k][R]=p.get(n[N]))}}catch(e){E=!0,D=e}finally{try{!P&&T.return&&T.return()}finally{if(E)throw D}}}}catch(e){B=!0,_=e}finally{try{!C&&j.return&&j.return()}finally{if(B)throw _}}return e.setTransitionTable(h),e.setAcceptingStateNumbers(y),e}}},32569:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}();function d(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var t=r(85162),a=r(75821).EPSILON_CLOSURE,s=function(){function e(u){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._nfa=u}return n(e,[{key:"minimize",value:function(){this.getTransitionTable(),this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._originalTransitionTable=this._transitionTable,t.minimize(this)}},{key:"getAlphabet",value:function(){return this._nfa.getAlphabet()}},{key:"getAcceptingStateNumbers",value:function(){return this._acceptingStateNumbers||this.getTransitionTable(),this._acceptingStateNumbers}},{key:"getOriginaAcceptingStateNumbers",value:function(){return this._originalAcceptingStateNumbers||this.getTransitionTable(),this._originalAcceptingStateNumbers}},{key:"setTransitionTable",value:function(e){this._transitionTable=e}},{key:"setAcceptingStateNumbers",value:function(e){this._acceptingStateNumbers=e}},{key:"getTransitionTable",value:function(){var e=this;if(this._transitionTable)return this._transitionTable;var u=this._nfa.getTransitionTable(),r=Object.keys(u);this._acceptingStateNumbers=new Set;for(var n=[u[r[0]][a]],t=this.getAlphabet(),s=this._nfa.getAcceptingStateNumbers(),i={},f=function(u){var r=!0,n=!1,d=void 0;try{for(var t,a=s[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var i=t.value;if(-1!==u.indexOf(i)){e._acceptingStateNumbers.add(u.join(","));break}}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}};n.length>0;){var o=n.shift(),c=o.join(",");i[c]={};var l=!0,v=!1,b=void 0;try{for(var p,m=t[Symbol.iterator]();!(l=(p=m.next()).done);l=!0){var h=p.value,y=[];f(o);var g=!0,C=!1,B=void 0;try{for(var _,x=o[Symbol.iterator]();!(g=(_=x.next()).done);g=!0){var j=u[_.value][h];if(j){var A=!0,S=!1,w=void 0;try{for(var k,P=j[Symbol.iterator]();!(A=(k=P.next()).done);A=!0){var E=k.value;u[E]&&y.push.apply(y,d(u[E][a]))}}catch(e){S=!0,w=e}finally{try{!A&&P.return&&P.return()}finally{if(S)throw w}}}}}catch(e){C=!0,B=e}finally{try{!g&&x.return&&x.return()}finally{if(C)throw B}}var D=new Set(y),O=[].concat(d(D));if(O.length>0){var T=O.join(",");i[c][h]=T,i.hasOwnProperty(T)||n.unshift(O)}}}catch(e){v=!0,b=e}finally{try{!l&&m.return&&m.return()}finally{if(v)throw b}}}return this._transitionTable=this._remapStateNumbers(i)}},{key:"_remapStateNumbers",value:function(e){var u={};this._originalTransitionTable=e;var r={};for(var n in Object.keys(e).forEach((function(e,r){u[e]=r+1})),e){var d=e[n],t={};for(var a in d)t[a]=u[d[a]];r[u[n]]=t}this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._acceptingStateNumbers=new Set;var s=!0,i=!1,f=void 0;try{for(var o,c=this._originalAcceptingStateNumbers[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value;this._acceptingStateNumbers.add(u[l])}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}return r}},{key:"getOriginalTransitionTable",value:function(){return this._originalTransitionTable||this.getTransitionTable(),this._originalTransitionTable}},{key:"matches",value:function(e){for(var u=1,r=0,n=this.getTransitionTable();e[r];)if(!(u=n[u][e[r++]]))return!1;return!!this.getAcceptingStateNumbers().has(u)}}]),e}();e.exports=s},36734:(e,u,r)=>{"use strict";var n=r(91909),d=r(32569),t=r(28398),a=r(70860);e.exports={NFA:n,DFA:d,builders:a,toNFA:function(e){return t.build(e)},toDFA:function(e){return new d(this.toNFA(e))},test:function(e,u){return this.toDFA(e).matches(u)}}},70860:(e,u,r)=>{"use strict";var n=r(91909),d=r(48617),t=r(75821).EPSILON;function a(e){var u=new d,r=new d({accepting:!0});return new n(u.addTransition(e,r),r)}function s(e,u){return e.out.accepting=!1,u.out.accepting=!0,e.out.addTransition(t,u.in),new n(e.in,u.out)}function i(e,u){var r=new d,a=new d;return r.addTransition(t,e.in),r.addTransition(t,u.in),a.accepting=!0,e.out.accepting=!1,u.out.accepting=!1,e.out.addTransition(t,a),u.out.addTransition(t,a),new n(r,a)}e.exports={alt:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var d=!0,t=!1,a=void 0;try{for(var i,f=r[Symbol.iterator]();!(d=(i=f.next()).done);d=!0)e=s(e,i.value)}catch(e){t=!0,a=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw a}}return e},char:a,e:function(){return a(t)},or:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var d=!0,t=!1,a=void 0;try{for(var s,f=r[Symbol.iterator]();!(d=(s=f.next()).done);d=!0)e=i(e,s.value)}catch(e){t=!0,a=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw a}}return e},rep:function(e){return e.in.addTransition(t,e.out),e.out.addTransition(t,e.in),e},repExplicit:function(e){var u=new d,r=new d({accepting:!0});return u.addTransition(t,e.in),u.addTransition(t,r),e.out.accepting=!1,e.out.addTransition(t,r),r.addTransition(t,e.in),new n(u,r)},plusRep:function(e){return e.out.addTransition(t,e.in),e},questionRep:function(e){return e.in.addTransition(t,e.out),e}}},28398:(e,u,r)=>{"use strict";var n=r(23810),d=r(70860),t=d.alt,a=d.char,s=d.or,i=d.rep,f=d.plusRep,o=d.questionRep;function c(e){if(e&&!l[e.type])throw new Error(e.type+" is not supported in NFA/DFA interpreter.");return e?l[e.type](e):""}var l={RegExp:function(e){if(""!==e.flags)throw new Error("NFA/DFA: Flags are not supported yet.");return c(e.body)},Alternative:function(e){var u=(e.expressions||[]).map(c);return t.apply(void 0,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u))},Disjunction:function(e){return s(c(e.left),c(e.right))},Repetition:function(e){switch(e.quantifier.kind){case"*":return i(c(e.expression));case"+":return f(c(e.expression));case"?":return o(c(e.expression));default:throw new Error("Unknown repeatition: "+e.quantifier.kind+".")}},Char:function(e){if("simple"!==e.kind)throw new Error("NFA/DFA: Only simple chars are supported yet.");return a(e.value)},Group:function(e){return c(e.expression)}};e.exports={build:function(e){var u=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(u=n.parse(e,{captureLocations:!0})),c(u)}}},48617:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),d=r(81191),t=r(75821).EPSILON,a=function(e){function u(){return function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,u),function(e,u){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!u||"object"!=typeof u&&"function"!=typeof u?e:u}(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return function(e,u){if("function"!=typeof u&&null!==u)throw new TypeError("Super expression must either be null or a function, not "+typeof u);e.prototype=Object.create(u&&u.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(e,u):e.__proto__=u)}(u,e),n(u,[{key:"matches",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;if(u.has(this))return!1;if(u.add(this),0===e.length){if(this.accepting)return!0;var r=!0,n=!1,d=void 0;try{for(var a,s=this.getTransitionsOnSymbol(t)[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(a.value.matches("",u))return!0}catch(e){n=!0,d=e}finally{try{!r&&s.return&&s.return()}finally{if(n)throw d}}return!1}var i=e[0],f=e.slice(1),o=this.getTransitionsOnSymbol(i),c=!0,l=!1,v=void 0;try{for(var b,p=o[Symbol.iterator]();!(c=(b=p.next()).done);c=!0)if(b.value.matches(f))return!0}catch(e){l=!0,v=e}finally{try{!c&&p.return&&p.return()}finally{if(l)throw v}}var m=!0,h=!1,y=void 0;try{for(var g,C=this.getTransitionsOnSymbol(t)[Symbol.iterator]();!(m=(g=C.next()).done);m=!0)if(g.value.matches(e,u))return!0}catch(e){h=!0,y=e}finally{try{!m&&C.return&&C.return()}finally{if(h)throw y}}return!1}},{key:"getEpsilonClosure",value:function(){var e=this;return this._epsilonClosure||function(){var u=e.getTransitionsOnSymbol(t),r=e._epsilonClosure=new Set;r.add(e);var n=!0,d=!1,a=void 0;try{for(var s,i=u[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){var f=s.value;r.has(f)||(r.add(f),f.getEpsilonClosure().forEach((function(e){return r.add(e)})))}}catch(e){d=!0,a=e}finally{try{!n&&i.return&&i.return()}finally{if(d)throw a}}}(),this._epsilonClosure}}]),u}(d);e.exports=a},91909:(e,u,r)=>{"use strict";var n=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")},d=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),t=r(75821),a=t.EPSILON,s=t.EPSILON_CLOSURE,i=function(){function e(u,r){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.in=u,this.out=r}return d(e,[{key:"matches",value:function(e){return this.in.matches(e)}},{key:"getAlphabet",value:function(){if(!this._alphabet){this._alphabet=new Set;var e=this.getTransitionTable();for(var u in e){var r=e[u];for(var n in r)n!==s&&this._alphabet.add(n)}}return this._alphabet}},{key:"getAcceptingStates",value:function(){return this._acceptingStates||this.getTransitionTable(),this._acceptingStates}},{key:"getAcceptingStateNumbers",value:function(){if(!this._acceptingStateNumbers){this._acceptingStateNumbers=new Set;var e=!0,u=!1,r=void 0;try{for(var n,d=this.getAcceptingStates()[Symbol.iterator]();!(e=(n=d.next()).done);e=!0){var t=n.value;this._acceptingStateNumbers.add(t.number)}}catch(e){u=!0,r=e}finally{try{!e&&d.return&&d.return()}finally{if(u)throw r}}}return this._acceptingStateNumbers}},{key:"getTransitionTable",value:function(){var e=this;if(!this._transitionTable){this._transitionTable={},this._acceptingStates=new Set;var u=new Set,r=new Set;!function d(t){if(!u.has(t)){u.add(t),t.number=u.size,e._transitionTable[t.number]={},t.accepting&&e._acceptingStates.add(t);var a=t.getTransitions(),s=!0,i=!1,f=void 0;try{for(var o,c=a[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value,v=n(l,2),b=v[0],p=v[1],m=[];r.add(b);var h=!0,y=!1,g=void 0;try{for(var C,B=p[Symbol.iterator]();!(h=(C=B.next()).done);h=!0){var _=C.value;d(_),m.push(_.number)}}catch(e){y=!0,g=e}finally{try{!h&&B.return&&B.return()}finally{if(y)throw g}}e._transitionTable[t.number][b]=m}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}}}(this.in),u.forEach((function(u){delete e._transitionTable[u.number][a],e._transitionTable[u.number][s]=[].concat(function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u.getEpsilonClosure())).map((function(e){return e.number}))}))}return this._transitionTable}}]),e}();e.exports=i},75821:e=>{"use strict";e.exports={EPSILON:"ε",EPSILON_CLOSURE:"ε*"}},81191:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(){var u=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).accepting,r=void 0!==u&&u;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._transitions=new Map,this.accepting=r}return u(e,[{key:"getTransitions",value:function(){return this._transitions}},{key:"addTransition",value:function(e,u){return this.getTransitionsOnSymbol(e).add(u),this}},{key:"getTransitionsOnSymbol",value:function(e){var u=this._transitions.get(e);return u||(u=new Set,this._transitions.set(e,u)),u}}]),e}();e.exports=r},63072:(e,u,r)=>{"use strict";var n=r(1379),d=r(23810),t=r(2003),a=r(53256);e.exports={optimize:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.whitelist,s=void 0===r?[]:r,i=u.blacklist,f=void 0===i?[]:i,o=(s.length>0?s:Array.from(a.keys())).filter((function(e){return!f.includes(e)})),c=e;e instanceof RegExp&&(e=""+e),"string"==typeof e&&(c=d.parse(e));var l=new t.TransformResult(c),v=void 0;do{v=l.toString(),c=n(l.getAST()),o.forEach((function(e){if(!a.has(e))throw new Error("Unknown optimization-transform: "+e+". Available transforms are: "+Array.from(a.keys()).join(", "));var u=a.get(e),r=t.transform(c,u);r.toString()!==l.toString()&&(r.toString().length<=l.toString().length?l=r:c=n(l.getAST()))}))}while(l.toString()!==v);return l}}},98002:e=>{"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0);e.exports={_AZClassRanges:null,_hasUFlag:!1,init:function(e){this._AZClassRanges=new Set,this._hasUFlag=e.flags.includes("u")},shouldRun:function(e){return e.flags.includes("i")},Char:function(e){var n=e.node,d=e.parent;if(!isNaN(n.codePoint)&&(this._hasUFlag||!(n.codePoint>=4096))){if("ClassRange"===d.type){if(!(this._AZClassRanges.has(d)||(t=d,a=t.from,s=t.to,a.codePoint>=u&&a.codePoint<=r&&s.codePoint>=u&&s.codePoint<=r)))return;this._AZClassRanges.add(d)}var t,a,s,i=n.symbol.toLowerCase();i!==n.symbol&&(n.value=function(e,u){var r=e.codePointAt(0);if("decimal"===u.kind)return"\\"+r;if("oct"===u.kind)return"\\0"+r.toString(8);if("hex"===u.kind)return"\\x"+r.toString(16);if("unicode"===u.kind){if(u.isSurrogatePair){var n=function(e){var u=(e-65536)%1024+56320;return{lead:(Math.floor((e-65536)/1024)+55296).toString(16),trail:u.toString(16)}}(r),d=n.lead,t=n.trail;return"\\u"+"0".repeat(4-d.length)+d+"\\u"+"0".repeat(4-t.length)+t}if(u.value.includes("{"))return"\\u{"+r.toString(16)+"}";var a=r.toString(16);return"\\u"+"0".repeat(4-a.length)+a}return e}(i,n),n.symbol=i,n.codePoint=i.codePointAt(0))}}}},70436:e=>{"use strict";function u(e,u){var t=r(e),a=r(u);if(t===a){if("ClassRange"===e.type&&"ClassRange"!==u.type)return-1;if("ClassRange"===u.type&&"ClassRange"!==e.type)return 1;if("ClassRange"===e.type&&"ClassRange"===u.type)return r(e.to)-r(u.to);if(n(e)&&n(u)||d(e)&&d(u))return e.value<u.value?-1:1}return t-a}function r(e){return"Char"===e.type?"-"===e.value||"control"===e.kind?1/0:"meta"===e.kind&&isNaN(e.codePoint)?-1:e.codePoint:e.from.codePoint}function n(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return"Char"===e.type&&"meta"===e.kind&&(u?e.value===u:/^\\[dws]$/i.test(e.value))}function d(e){return"Char"===e.type&&"control"===e.kind}function t(e,u,r){for(var n=0;n<u.length;n++)if(a(e,u[n],r))return!0;return!1}function a(e,u,r){return"ClassRange"===e.type?a(e.from,u,r)&&a(e.to,u,r):!("\\S"!==u||!n(e,"\\w")&&!n(e,"\\d"))||!("\\D"!==u||!n(e,"\\W")&&!n(e,"\\s"))||!("\\w"!==u||!n(e,"\\d"))||!("\\W"!==u||!n(e,"\\s"))||"Char"===e.type&&!isNaN(e.codePoint)&&("\\s"===u?s(e):"\\S"===u?!s(e):"\\d"===u?i(e):"\\D"===u?!i(e):"\\w"===u?f(e,r):"\\W"===u&&!f(e,r))}function s(e){return 9===e.codePoint||10===e.codePoint||11===e.codePoint||12===e.codePoint||13===e.codePoint||32===e.codePoint||160===e.codePoint||5760===e.codePoint||e.codePoint>=8192&&e.codePoint<=8202||8232===e.codePoint||8233===e.codePoint||8239===e.codePoint||8287===e.codePoint||12288===e.codePoint||65279===e.codePoint}function i(e){return e.codePoint>=48&&e.codePoint<=57}function f(e,u){return i(e)||e.codePoint>=65&&e.codePoint<=90||e.codePoint>=97&&e.codePoint<=122||"_"===e.value||u&&(383===e.codePoint||8490===e.codePoint)}function o(e,u){if(u&&"ClassRange"===u.type){if(l(e,u))return!0;if(b(e)&&u.to.codePoint===e.codePoint-1)return u.to=e,!0;if("ClassRange"===e.type&&e.from.codePoint<=u.to.codePoint+1&&e.to.codePoint>=u.from.codePoint-1)return e.from.codePoint<u.from.codePoint&&(u.from=e.from),e.to.codePoint>u.to.codePoint&&(u.to=e.to),!0}return!1}function c(e,u){return!(!u||"ClassRange"!==u.type||!b(e)||u.from.codePoint!==e.codePoint+1||(u.from=e,0))}function l(e,u){return("Char"!==e.type||!isNaN(e.codePoint))&&("ClassRange"===e.type?l(e.from,u)&&l(e.to,u):e.codePoint>=u.from.codePoint&&e.codePoint<=u.to.codePoint)}function v(e,u,r){if(!b(e))return 0;for(var n=0;u>0;){var d=r[u],t=r[u-1];if(!b(t)||t.codePoint!==d.codePoint-1)break;n++,u--}return n>1?(r[u]={type:"ClassRange",from:r[u],to:e},n):0}function b(e){return e&&"Char"===e.type&&!isNaN(e.codePoint)&&(f(e,!1)||"unicode"===e.kind||"hex"===e.kind||"oct"===e.kind||"decimal"===e.kind)}e.exports={_hasIUFlags:!1,init:function(e){this._hasIUFlags=e.flags.includes("i")&&e.flags.includes("u")},CharacterClass:function(e){var r=e.node.expressions,d=[];r.forEach((function(e){n(e)&&d.push(e.value)})),r.sort(u);for(var a=0;a<r.length;a++){var s=r[a];if(t(s,d,this._hasIUFlags)||o(s,r[a-1])||c(s,r[a+1]))r.splice(a,1),a--;else{var i=v(s,a,r);r.splice(a-i+1,i),a-=i}}}}},76953:e=>{"use strict";e.exports={ClassRange:function(e){var u=e.node;u.from.codePoint===u.to.codePoint?e.replace(u.from):u.from.codePoint===u.to.codePoint-1&&(e.getParent().insertChildAt(u.to,e.index+1),e.replace(u.from))}}},322:e=>{"use strict";e.exports={CharacterClass:function(e){for(var u=e.node,r={},n=0;n<u.expressions.length;n++){var d=e.getChild(n),t=d.jsonEncode();r.hasOwnProperty(t)&&(d.remove(),n--),r[t]=!0}}}},4090:e=>{"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={_hasIFlag:!1,_hasUFlag:!1,init:function(e){this._hasIFlag=e.flags.includes("i"),this._hasUFlag=e.flags.includes("u")},CharacterClass:function(e){!function(e){e.node.expressions.forEach((function(u,r){(function(e){return"ClassRange"===e.type&&"0"===e.from.value&&"9"===e.to.value})(u)&&e.getChild(r).replace({type:"Char",value:"\\d",kind:"meta"})}))}(e),function(e,u,r){var n=e.node,a=null,s=null,i=null,f=null,o=null,c=null;n.expressions.forEach((function(n,l){d(n,"\\d")?a=e.getChild(l):function(e){return"ClassRange"===e.type&&"a"===e.from.value&&"z"===e.to.value}(n)?s=e.getChild(l):function(e){return"ClassRange"===e.type&&"A"===e.from.value&&"Z"===e.to.value}(n)?i=e.getChild(l):function(e){return"Char"===e.type&&"_"===e.value&&"simple"===e.kind}(n)?f=e.getChild(l):u&&r&&t(n,383)?o=e.getChild(l):u&&r&&t(n,8490)&&(c=e.getChild(l))})),a&&(s&&i||u&&(s||i))&&f&&(!r||!u||o&&c)&&(a.replace({type:"Char",value:"\\w",kind:"meta"}),s&&s.remove(),i&&i.remove(),f.remove(),o&&o.remove(),c&&c.remove())}(e,this._hasIFlag,this._hasUFlag),function(e){var u=e.node;if(!(u.expressions.length<r.length)&&r.every((function(e){return u.expressions.some((function(u){return e(u)}))}))){var n=u.expressions.find((function(e){return d(e,"\\n")}));n.value="\\s",n.symbol=void 0,n.codePoint=NaN,u.expressions.map((function(u,n){return r.some((function(e){return e(u)}))?e.getChild(n):void 0})).filter(Boolean).forEach((function(e){return e.remove()}))}}(e)}};var r=[function(e){return n(e," ")}].concat(u(["\\f","\\n","\\r","\\t","\\v"].map((function(e){return function(u){return d(u,e)}}))),u([160,5760,8232,8233,8239,8287,12288,65279].map((function(e){return function(u){return t(u,e)}}))),[function(e){return"ClassRange"===e.type&&t(e.from,8192)&&t(e.to,8202)}]);function n(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"simple";return"Char"===e.type&&e.value===u&&e.kind===r}function d(e,u){return n(e,u,"meta")}function t(e,u){return"Char"===e.type&&"unicode"===e.kind&&e.codePoint===u}},11810:e=>{"use strict";function u(e){return/[*[()+?$./{}|]/.test(e)}e.exports={CharacterClass:function(e){var r=e.node;if(1===r.expressions.length&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&function(e){return"Char"===e.type&&"\\b"!==e.value}(r.expressions[0])){var n=r.expressions[0],d=n.value,t=n.kind,a=n.escaped;if(r.negative){if(!function(e){return/^\\[dwsDWS]$/.test(e)}(d))return;d=function(e){return/[dws]/.test(e)?e.toUpperCase():e.toLowerCase()}(d)}e.replace({type:"Char",value:d,kind:t,escaped:a||u(d)})}}}},88111:e=>{"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0),n="a".codePointAt(0),d="z".codePointAt(0),t="0".codePointAt(0),a="9".codePointAt(0);e.exports={Char:function(e){var s,i,f,o=e.node,c=e.parent;if(!isNaN(o.codePoint)&&"simple"!==o.kind&&("ClassRange"!==c.type||(i=(s=c).from,f=s.to,i.codePoint>=t&&i.codePoint<=a&&f.codePoint>=t&&f.codePoint<=a||i.codePoint>=u&&i.codePoint<=r&&f.codePoint>=u&&f.codePoint<=r||i.codePoint>=n&&i.codePoint<=d&&f.codePoint>=n&&f.codePoint<=d))&&(l=o.codePoint)>=32&&l<=126){var l,v=String.fromCodePoint(o.codePoint),b={type:"Char",kind:"simple",value:v,symbol:v,codePoint:o.codePoint};(function(e,u){return"ClassRange"===u||"CharacterClass"===u?/[\]\\^-]/.test(e):/[*[()+?^$./\\|{}]/.test(e)})(v,c.type)&&(b.escaped=!0),e.replace(b)}}}},6632:e=>{"use strict";function u(e,u,r){for(var n=e,d=(r?n>=0:n<u.expressions.length)&&u.expressions[n];d&&"Char"===d.type&&"simple"===d.kind&&!d.escaped&&/\d/.test(d.value);)r?n--:n++,d=(r?n>=0:n<u.expressions.length)&&u.expressions[n];return Math.abs(e-n)}function r(e,u){return e&&"Char"===e.type&&"simple"===e.kind&&!e.escaped&&e.value===u}e.exports={_hasXFlag:!1,init:function(e){this._hasXFlag=e.flags.includes("x")},Char:function(e){var n=e.node;n.escaped&&function(e,n){var d=e.node.value,t=e.index,a=e.parent;return"CharacterClass"!==a.type&&"ClassRange"!==a.type?!function(e,n,d,t){return"{"===e?function(e,n){if(null==e)return!1;var d=u(e+1,n),t=e+d+1,a=t<n.expressions.length&&n.expressions[t];if(d){if(r(a,"}"))return!0;if(r(a,","))return r(a=(t=t+(d=u(t+1,n))+1)<n.expressions.length&&n.expressions[t],"}")}return!1}(n,d):"}"===e?function(e,n){if(null==e)return!1;var d=u(e-1,n,!0),t=e-d-1,a=t>=0&&n.expressions[t];return!(!d||!r(a,"{"))||!!r(a,",")&&(a=(t=t-(d=u(t-1,n,!0))-1)<n.expressions.length&&n.expressions[t],d&&r(a,"{"))}(n,d):!(!t||!/[ #]/.test(e))||/[*[()+?^$./\\|]/.test(e)}(d,t,a,n):!function(e,u,r){return"^"===e?0===u&&!r.negative:"-"===e||/[\]\\]/.test(e)}(d,t,a)}(e,this._hasXFlag)&&delete n.escaped}}},8988:e=>{"use strict";e.exports={shouldRun:function(e){return e.flags.includes("u")},Char:function(e){var u=e.node;"unicode"===u.kind&&u.isSurrogatePair&&!isNaN(u.codePoint)&&(u.value="\\u{"+u.codePoint.toString(16)+"}",delete u.isSurrogatePair)}}},97648:(e,u,r)=>{"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=r(41059),t=r(33166).increaseQuantifierByOne;function a(e,u,r){for(var t=e.node,a=Math.ceil(r/2),s=0;s<a;){var i=r-2*s-1,f=void 0,o=void 0;if(0===s?(f=u,o=e.getChild(i)):(f=d.getForNode({type:"Alternative",expressions:[].concat(n(t.expressions.slice(r-s,r)),[u.node])}),o=d.getForNode({type:"Alternative",expressions:[].concat(n(t.expressions.slice(i,r-s)))})),f.hasEqualSource(o)){for(var c=0;c<2*s+1;c++)e.getChild(i).remove();return u.replace({type:"Repetition",expression:0===s&&"Repetition"!==f.node.type?f.node:{type:"Group",capturing:!1,expression:f.node},quantifier:{type:"Quantifier",kind:"Range",from:2,to:2,greedy:!0}}),i}s++}return r}function s(e,u,r){for(var a=e.node,s=0;s<r;){var i=e.getChild(s);if("Repetition"===i.node.type&&i.node.quantifier.greedy){var f=i.getChild(),o=void 0;if("Group"!==f.node.type||f.node.capturing||(f=f.getChild()),s+1===r?"Group"!==(o=u).node.type||o.node.capturing||(o=o.getChild()):o=d.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(s+1,r+1)))}),f.hasEqualSource(o)){for(var c=s;c<r;c++)e.getChild(s+1).remove();return t(i.node.quantifier),s}}s++}return r}function i(e,u,r){var a=e.node;if("Repetition"===u.node.type&&u.node.quantifier.greedy){var s=u.getChild(),i=void 0;"Group"!==s.node.type||s.node.capturing||(s=s.getChild());var f=void 0;if("Alternative"===s.node.type?(f=s.node.expressions.length,i=d.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(r-f,r)))})):(f=1,"Group"!==(i=e.getChild(r-1)).node.type||i.node.capturing||(i=i.getChild())),i.hasEqualSource(s)){for(var o=r-f;o<r;o++)e.getChild(r-f).remove();return t(u.node.quantifier),r-f}}return r}e.exports={Alternative:function(e){for(var u=e.node,r=1;r<u.expressions.length;){var n=e.getChild(r);if((r=Math.max(1,a(e,n,r)))>=u.expressions.length)break;if(n=e.getChild(r),(r=Math.max(1,s(e,n,r)))>=u.expressions.length)break;n=e.getChild(r),r=Math.max(1,i(e,n,r)),r++}}}},61013:(e,u,r)=>{"use strict";var n=r(41059),d=r(33166),t=d.disjunctionToList,a=d.listToDisjunction;e.exports={Disjunction:function(e){var u=e.node,r={},d=t(u).filter((function(e){var u=e?n.getForNode(e).jsonEncode():"null";return!r.hasOwnProperty(u)&&(r[u]=e,!0)}));e.replace(a(d))}}},83427:e=>{"use strict";e.exports={Disjunction:function(e){var n=e.node,d=e.parent;if(u[d.type]){var t=new Map;if(r(n,t)&&t.size){var a={type:"CharacterClass",expressions:Array.from(t.keys()).sort().map((function(e){return t.get(e)}))};u[d.type](e.getParent(),a)}}}};var u={RegExp:function(e,u){e.node.body=u},Group:function(e,u){var r=e.node;r.capturing?r.expression=u:e.replace(u)}};function r(e,u){if(!e)return!1;var n=e.type;if("Disjunction"===n){var d=e.left,t=e.right;return r(d,u)&&r(t,u)}if("Char"===n){if("meta"===e.kind&&"."===e.symbol)return!1;var a=e.value;return u.set(a,e),!0}return"CharacterClass"===n&&!e.negative&&e.expressions.every((function(e){return r(e,u)}))}},53256:(e,u,r)=>{"use strict";e.exports=new Map([["charSurrogatePairToSingleUnicode",r(8988)],["charCodeToSimpleChar",r(88111)],["charCaseInsensitiveLowerCaseTransform",r(98002)],["charClassRemoveDuplicates",r(322)],["quantifiersMerge",r(31837)],["quantifierRangeToSymbol",r(88190)],["charClassClassrangesToChars",r(76953)],["charClassToMeta",r(4090)],["charClassToSingleChar",r(11810)],["charEscapeUnescape",r(6632)],["charClassClassrangesMerge",r(70436)],["disjunctionRemoveDuplicates",r(61013)],["groupSingleCharsToCharClass",r(83427)],["removeEmptyGroup",r(72097)],["ungroup",r(95435)],["combineRepeatingPatterns",r(97648)]])},88190:e=>{"use strict";e.exports={Quantifier:function(e){"Range"===e.node.kind&&(function(e){var u=e.node;0!==u.from||u.to||(u.kind="*",delete u.from)}(e),function(e){var u=e.node;1!==u.from||u.to||(u.kind="+",delete u.from)}(e),function(e){var u=e.node;1===u.from&&1===u.to&&e.parentPath.replace(e.parentPath.node.expression)}(e))}}},31837:(e,u,r)=>{"use strict";var n=r(33166).increaseQuantifierByOne;function d(e){return e.greedy&&("+"===e.kind||"*"===e.kind||"Range"===e.kind&&!e.to)}function t(e){var u=void 0,r=void 0;return"*"===e.kind?u=0:"+"===e.kind?u=1:"?"===e.kind?(u=0,r=1):(u=e.from,e.to&&(r=e.to)),{from:u,to:r}}e.exports={Repetition:function(e){var u=e.node;if("Alternative"===e.parent.type&&e.index){var r=e.getPreviousSibling();if(r)if("Repetition"===r.node.type){if(!r.getChild().hasEqualSource(e.getChild()))return;var a=t(r.node.quantifier),s=a.from,i=a.to,f=t(u.quantifier),o=f.from,c=f.to;if(r.node.quantifier.greedy!==u.quantifier.greedy&&!d(r.node.quantifier)&&!d(u.quantifier))return;u.quantifier.kind="Range",u.quantifier.from=s+o,i&&c?u.quantifier.to=i+c:delete u.quantifier.to,(d(r.node.quantifier)||d(u.quantifier))&&(u.quantifier.greedy=!0),r.remove()}else{if(!r.hasEqualSource(e.getChild()))return;n(u.quantifier),r.remove()}}}}},72097:e=>{"use strict";e.exports={Group:function(e){var u=e.node,r=e.parent,n=e.getChild();u.capturing||n||("Repetition"===r.type?e.getParent().replace(u):"RegExp"!==r.type&&e.remove())}}},95435:e=>{"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={Group:function(e){var r=e.node,n=e.parent,d=e.getChild();if(!r.capturing&&d&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&!("Disjunction"===d.node.type&&"RegExp"!==n.type||"Repetition"===n.type&&"Char"!==d.node.type&&"CharacterClass"!==d.node.type))if("Alternative"===d.node.type){var t=e.getParent();"Alternative"===t.node.type&&t.replace({type:"Alternative",expressions:[].concat(u(n.expressions.slice(0,e.index)),u(d.node.expressions),u(n.expressions.slice(e.index+1)))})}else e.replace(d.node)}}},97e3:(e,u,r)=>{"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=void 0,t={},a=void 0,s=void 0;function i(e,u){return t.options.captureLocations?e&&u?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:e||u:null}var f=[[-1,1,function(e,u){s=i(u,u),a=e}],[0,4,function(e,u,r,n,d,t,f,o){s=i(d,o),a=T({type:"RegExp",body:u,flags:S(n)},R(d,o||f))}],[1,1,function(e,u){s=i(u,u),a=e}],[1,0,function(){s=null,a=""}],[2,1,function(e,u){s=i(u,u),a=e}],[2,2,function(e,u,r,n){s=i(r,n),a=e+u}],[3,1,function(e,u){s=i(u,u),a=e}],[4,1,function(e,u){s=i(u,u),a=e}],[4,3,function(e,u,r,n,d,t){s=i(n,t);var f=null;d&&(f=R(n||d,t||d)),a=T({type:"Disjunction",left:e,right:r},f)}],[5,1,function(e,u){s=i(u,u),a=0!==e.length?1===e.length?T(e[0],s):T({type:"Alternative",expressions:e},s):null}],[6,0,function(){s=null,a=[]}],[6,2,function(e,u,r,n){s=i(r,n),a=e.concat(u)}],[7,1,function(e,u){s=i(u,u),a=T(Object.assign({type:"Assertion"},e),s)}],[7,2,function(e,u,r,n){s=i(r,n),a=e,u&&(a=T({type:"Repetition",expression:e,quantifier:u},s))}],[8,1,function(e,u){s=i(u,u),a={kind:"^"}}],[8,1,function(e,u){s=i(u,u),a={kind:"$"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\b"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\B"}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookahead",assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookahead",negative:!0,assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookbehind",assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookbehind",negative:!0,assertion:u}}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[10,1,function(e,u){s=i(u,u),a=j(e,"simple",s)}],[10,1,function(e,u){s=i(u,u),(a=j(e.slice(1),"simple",s)).escaped=!0}],[10,1,function(e,u){s=i(u,u),(a=j(e,"unicode",s)).isSurrogatePair=!0}],[10,1,function(e,u){s=i(u,u),a=j(e,"unicode",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r="P"===e[1],n=e.indexOf("="),d=e.slice(3,-1!==n?n:-1),t=void 0,a=-1===n&&x.isGeneralCategoryValue(d),s=-1===n&&x.isBinaryPropertyName(d);if(a)t=d,d="General_Category";else if(s)t=d;else{if(!x.isValidName(d))throw new SyntaxError("Invalid unicode property name: "+d+".");if(t=e.slice(n+1,-1),!x.isValidValue(d,t))throw new SyntaxError("Invalid "+d+" unicode property value: "+t+".")}return T({type:"UnicodeProperty",name:d,value:t,negative:r,shorthand:a,binary:s,canonicalName:x.getCanonicalName(d)||d,canonicalValue:x.getCanonicalValue(t)||t},u)}(e,s)}],[10,1,function(e,u){s=i(u,u),a=j(e,"control",s)}],[10,1,function(e,u){s=i(u,u),a=j(e,"hex",s)}],[10,1,function(e,u){s=i(u,u),a=j(e,"oct",s)}],[10,1,function(e,u){var r,n,d;s=i(u,u),r=e,n=s,d=Number(r.slice(1)),a=d>0&&d<=y?T({type:"Backreference",kind:"number",number:d,reference:d},n):j(r,"decimal",n)}],[10,1,function(e,u){s=i(u,u),a=j(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=j(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r=e.slice(3,-1),n=O(r);if(g.hasOwnProperty(n))return T({type:"Backreference",kind:"name",number:g[n],reference:n,referenceRaw:r},u);var d=null,t=null,a=null,s=null;u&&(d=u.startOffset,t=u.startLine,a=u.endLine,s=u.startColumn);var i=/^[\w$<>]/,f=void 0,o=[j(e.slice(1,2),"simple",d?{startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:d+=2,endColumn:s+=2}:null)];for(o[0].escaped=!0,e=e.slice(2);e.length>0;){var c=null;(c=e.match(w))||(c=e.match(k))?(d&&(f={startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:d+=c[0].length,endColumn:s+=c[0].length}),o.push(j(c[0],"unicode",f)),e=e.slice(c[0].length)):(c=e.match(i))&&(d&&(f={startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:++d,endColumn:++s}),o.push(j(c[0],"simple",f)),e=e.slice(1))}return o}(e,u)}],[11,1,function(e,u){s=i(u,u),a=e}],[11,0],[12,1,function(e,u){s=i(u,u),a=e}],[12,2,function(e,u,r,n){s=i(r,n),e.greedy=!1,a=e}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=T({type:"Quantifier",kind:"Range",from:r[0],to:r[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:"Range",from:B(e)[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=T({type:"Quantifier",kind:"Range",from:r[0],to:r[1],greedy:!0},s)}],[14,1,function(e,u){s=i(u,u),a=e}],[14,1,function(e,u){s=i(u,u),a=e}],[15,3,function(e,u,r,n,d,f){s=i(n,f);var o=String(e),c=O(o);if(!t.options.allowGroupNameDuplicates&&g.hasOwnProperty(c))throw new SyntaxError('Duplicate of the named group "'+c+'".');g[c]=e.groupNumber,a=T({type:"Group",capturing:!0,name:c,nameRaw:o,number:e.groupNumber,expression:u},s)}],[15,3,function(e,u,r,n,d,t){s=i(n,t),a=T({type:"Group",capturing:!0,number:e.groupNumber,expression:u},s)}],[16,3,function(e,u,r,n,d,t){s=i(n,t),a=T({type:"Group",capturing:!1,expression:u},s)}],[17,3,function(e,u,r,n,d,t){s=i(n,t),a=T({type:"CharacterClass",negative:!0,expressions:u},s)}],[17,3,function(e,u,r,n,d,t){s=i(n,t),a=T({type:"CharacterClass",expressions:u},s)}],[18,0,function(){s=null,a=[]}],[18,1,function(e,u){s=i(u,u),a=e}],[19,1,function(e,u){s=i(u,u),a=[e]}],[19,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[19,4,function(e,u,r,n,d,t,f,o){s=i(d,o),_(e,r),a=[T({type:"ClassRange",from:e,to:r},R(d,f))],n&&(a=a.concat(n))}],[20,1,function(e,u){s=i(u,u),a=e}],[20,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[20,4,function(e,u,r,n,d,t,f,o){s=i(d,o),_(e,r),a=[T({type:"ClassRange",from:e,to:r},R(d,f))],n&&(a=a.concat(n))}],[21,1,function(e,u){s=i(u,u),a=j(e,"simple",s)}],[21,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=j(e,"meta",s)}]],o={SLASH:"23",CHAR:"24",BAR:"25",BOS:"26",EOS:"27",ESC_b:"28",ESC_B:"29",POS_LA_ASSERT:"30",R_PAREN:"31",NEG_LA_ASSERT:"32",POS_LB_ASSERT:"33",NEG_LB_ASSERT:"34",ESC_CHAR:"35",U_CODE_SURROGATE:"36",U_CODE:"37",U_PROP_VALUE_EXP:"38",CTRL_CH:"39",HEX_CODE:"40",OCT_CODE:"41",DEC_CODE:"42",META_CHAR:"43",ANY:"44",NAMED_GROUP_REF:"45",Q_MARK:"46",STAR:"47",PLUS:"48",RANGE_EXACT:"49",RANGE_OPEN:"50",RANGE_CLOSED:"51",NAMED_CAPTURE_GROUP:"52",L_PAREN:"53",NON_CAPTURE_GROUP:"54",NEG_CLASS:"55",R_BRACKET:"56",L_BRACKET:"57",DASH:"58",$:"59"},c=[{0:1,23:"s2"},{59:"acc"},{3:3,4:4,5:5,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"s7"},{23:"r6",25:"s12"},{23:"r7",25:"r7",31:"r7"},{7:14,8:15,9:16,10:25,14:27,15:42,16:43,17:26,23:"r9",24:"s28",25:"r9",26:"s17",27:"s18",28:"s19",29:"s20",30:"s21",31:"r9",32:"s22",33:"s23",34:"s24",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",52:"s44",53:"s45",54:"s46",55:"s40",57:"s41"},{1:8,2:9,24:"s10",59:"r3"},{59:"r1"},{24:"s11",59:"r2"},{24:"r4",59:"r4"},{24:"r5",59:"r5"},{5:13,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r8",25:"r8",31:"r8"},{23:"r11",24:"r11",25:"r11",26:"r11",27:"r11",28:"r11",29:"r11",30:"r11",31:"r11",32:"r11",33:"r11",34:"r11",35:"r11",36:"r11",37:"r11",38:"r11",39:"r11",40:"r11",41:"r11",42:"r11",43:"r11",44:"r11",45:"r11",52:"r11",53:"r11",54:"r11",55:"r11",57:"r11"},{23:"r12",24:"r12",25:"r12",26:"r12",27:"r12",28:"r12",29:"r12",30:"r12",31:"r12",32:"r12",33:"r12",34:"r12",35:"r12",36:"r12",37:"r12",38:"r12",39:"r12",40:"r12",41:"r12",42:"r12",43:"r12",44:"r12",45:"r12",52:"r12",53:"r12",54:"r12",55:"r12",57:"r12"},{11:47,12:48,13:49,23:"r38",24:"r38",25:"r38",26:"r38",27:"r38",28:"r38",29:"r38",30:"r38",31:"r38",32:"r38",33:"r38",34:"r38",35:"r38",36:"r38",37:"r38",38:"r38",39:"r38",40:"r38",41:"r38",42:"r38",43:"r38",44:"r38",45:"r38",46:"s52",47:"s50",48:"s51",49:"s53",50:"s54",51:"s55",52:"r38",53:"r38",54:"r38",55:"r38",57:"r38"},{23:"r14",24:"r14",25:"r14",26:"r14",27:"r14",28:"r14",29:"r14",30:"r14",31:"r14",32:"r14",33:"r14",34:"r14",35:"r14",36:"r14",37:"r14",38:"r14",39:"r14",40:"r14",41:"r14",42:"r14",43:"r14",44:"r14",45:"r14",52:"r14",53:"r14",54:"r14",55:"r14",57:"r14"},{23:"r15",24:"r15",25:"r15",26:"r15",27:"r15",28:"r15",29:"r15",30:"r15",31:"r15",32:"r15",33:"r15",34:"r15",35:"r15",36:"r15",37:"r15",38:"r15",39:"r15",40:"r15",41:"r15",42:"r15",43:"r15",44:"r15",45:"r15",52:"r15",53:"r15",54:"r15",55:"r15",57:"r15"},{23:"r16",24:"r16",25:"r16",26:"r16",27:"r16",28:"r16",29:"r16",30:"r16",31:"r16",32:"r16",33:"r16",34:"r16",35:"r16",36:"r16",37:"r16",38:"r16",39:"r16",40:"r16",41:"r16",42:"r16",43:"r16",44:"r16",45:"r16",52:"r16",53:"r16",54:"r16",55:"r16",57:"r16"},{23:"r17",24:"r17",25:"r17",26:"r17",27:"r17",28:"r17",29:"r17",30:"r17",31:"r17",32:"r17",33:"r17",34:"r17",35:"r17",36:"r17",37:"r17",38:"r17",39:"r17",40:"r17",41:"r17",42:"r17",43:"r17",44:"r17",45:"r17",52:"r17",53:"r17",54:"r17",55:"r17",57:"r17"},{4:57,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:59,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:61,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:63,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r22",24:"r22",25:"r22",26:"r22",27:"r22",28:"r22",29:"r22",30:"r22",31:"r22",32:"r22",33:"r22",34:"r22",35:"r22",36:"r22",37:"r22",38:"r22",39:"r22",40:"r22",41:"r22",42:"r22",43:"r22",44:"r22",45:"r22",46:"r22",47:"r22",48:"r22",49:"r22",50:"r22",51:"r22",52:"r22",53:"r22",54:"r22",55:"r22",57:"r22"},{23:"r23",24:"r23",25:"r23",26:"r23",27:"r23",28:"r23",29:"r23",30:"r23",31:"r23",32:"r23",33:"r23",34:"r23",35:"r23",36:"r23",37:"r23",38:"r23",39:"r23",40:"r23",41:"r23",42:"r23",43:"r23",44:"r23",45:"r23",46:"r23",47:"r23",48:"r23",49:"r23",50:"r23",51:"r23",52:"r23",53:"r23",54:"r23",55:"r23",57:"r23"},{23:"r24",24:"r24",25:"r24",26:"r24",27:"r24",28:"r24",29:"r24",30:"r24",31:"r24",32:"r24",33:"r24",34:"r24",35:"r24",36:"r24",37:"r24",38:"r24",39:"r24",40:"r24",41:"r24",42:"r24",43:"r24",44:"r24",45:"r24",46:"r24",47:"r24",48:"r24",49:"r24",50:"r24",51:"r24",52:"r24",53:"r24",54:"r24",55:"r24",57:"r24"},{23:"r25",24:"r25",25:"r25",26:"r25",27:"r25",28:"r25",29:"r25",30:"r25",31:"r25",32:"r25",33:"r25",34:"r25",35:"r25",36:"r25",37:"r25",38:"r25",39:"r25",40:"r25",41:"r25",42:"r25",43:"r25",44:"r25",45:"r25",46:"r25",47:"r25",48:"r25",49:"r25",50:"r25",51:"r25",52:"r25",53:"r25",54:"r25",55:"r25",56:"r25",57:"r25",58:"r25"},{23:"r26",24:"r26",25:"r26",26:"r26",27:"r26",28:"r26",29:"r26",30:"r26",31:"r26",32:"r26",33:"r26",34:"r26",35:"r26",36:"r26",37:"r26",38:"r26",39:"r26",40:"r26",41:"r26",42:"r26",43:"r26",44:"r26",45:"r26",46:"r26",47:"r26",48:"r26",49:"r26",50:"r26",51:"r26",52:"r26",53:"r26",54:"r26",55:"r26",56:"r26",57:"r26",58:"r26"},{23:"r27",24:"r27",25:"r27",26:"r27",27:"r27",28:"r27",29:"r27",30:"r27",31:"r27",32:"r27",33:"r27",34:"r27",35:"r27",36:"r27",37:"r27",38:"r27",39:"r27",40:"r27",41:"r27",42:"r27",43:"r27",44:"r27",45:"r27",46:"r27",47:"r27",48:"r27",49:"r27",50:"r27",51:"r27",52:"r27",53:"r27",54:"r27",55:"r27",56:"r27",57:"r27",58:"r27"},{23:"r28",24:"r28",25:"r28",26:"r28",27:"r28",28:"r28",29:"r28",30:"r28",31:"r28",32:"r28",33:"r28",34:"r28",35:"r28",36:"r28",37:"r28",38:"r28",39:"r28",40:"r28",41:"r28",42:"r28",43:"r28",44:"r28",45:"r28",46:"r28",47:"r28",48:"r28",49:"r28",50:"r28",51:"r28",52:"r28",53:"r28",54:"r28",55:"r28",56:"r28",57:"r28",58:"r28"},{23:"r29",24:"r29",25:"r29",26:"r29",27:"r29",28:"r29",29:"r29",30:"r29",31:"r29",32:"r29",33:"r29",34:"r29",35:"r29",36:"r29",37:"r29",38:"r29",39:"r29",40:"r29",41:"r29",42:"r29",43:"r29",44:"r29",45:"r29",46:"r29",47:"r29",48:"r29",49:"r29",50:"r29",51:"r29",52:"r29",53:"r29",54:"r29",55:"r29",56:"r29",57:"r29",58:"r29"},{23:"r30",24:"r30",25:"r30",26:"r30",27:"r30",28:"r30",29:"r30",30:"r30",31:"r30",32:"r30",33:"r30",34:"r30",35:"r30",36:"r30",37:"r30",38:"r30",39:"r30",40:"r30",41:"r30",42:"r30",43:"r30",44:"r30",45:"r30",46:"r30",47:"r30",48:"r30",49:"r30",50:"r30",51:"r30",52:"r30",53:"r30",54:"r30",55:"r30",56:"r30",57:"r30",58:"r30"},{23:"r31",24:"r31",25:"r31",26:"r31",27:"r31",28:"r31",29:"r31",30:"r31",31:"r31",32:"r31",33:"r31",34:"r31",35:"r31",36:"r31",37:"r31",38:"r31",39:"r31",40:"r31",41:"r31",42:"r31",43:"r31",44:"r31",45:"r31",46:"r31",47:"r31",48:"r31",49:"r31",50:"r31",51:"r31",52:"r31",53:"r31",54:"r31",55:"r31",56:"r31",57:"r31",58:"r31"},{23:"r32",24:"r32",25:"r32",26:"r32",27:"r32",28:"r32",29:"r32",30:"r32",31:"r32",32:"r32",33:"r32",34:"r32",35:"r32",36:"r32",37:"r32",38:"r32",39:"r32",40:"r32",41:"r32",42:"r32",43:"r32",44:"r32",45:"r32",46:"r32",47:"r32",48:"r32",49:"r32",50:"r32",51:"r32",52:"r32",53:"r32",54:"r32",55:"r32",56:"r32",57:"r32",58:"r32"},{23:"r33",24:"r33",25:"r33",26:"r33",27:"r33",28:"r33",29:"r33",30:"r33",31:"r33",32:"r33",33:"r33",34:"r33",35:"r33",36:"r33",37:"r33",38:"r33",39:"r33",40:"r33",41:"r33",42:"r33",43:"r33",44:"r33",45:"r33",46:"r33",47:"r33",48:"r33",49:"r33",50:"r33",51:"r33",52:"r33",53:"r33",54:"r33",55:"r33",56:"r33",57:"r33",58:"r33"},{23:"r34",24:"r34",25:"r34",26:"r34",27:"r34",28:"r34",29:"r34",30:"r34",31:"r34",32:"r34",33:"r34",34:"r34",35:"r34",36:"r34",37:"r34",38:"r34",39:"r34",40:"r34",41:"r34",42:"r34",43:"r34",44:"r34",45:"r34",46:"r34",47:"r34",48:"r34",49:"r34",50:"r34",51:"r34",52:"r34",53:"r34",54:"r34",55:"r34",56:"r34",57:"r34",58:"r34"},{23:"r35",24:"r35",25:"r35",26:"r35",27:"r35",28:"r35",29:"r35",30:"r35",31:"r35",32:"r35",33:"r35",34:"r35",35:"r35",36:"r35",37:"r35",38:"r35",39:"r35",40:"r35",41:"r35",42:"r35",43:"r35",44:"r35",45:"r35",46:"r35",47:"r35",48:"r35",49:"r35",50:"r35",51:"r35",52:"r35",53:"r35",54:"r35",55:"r35",56:"r35",57:"r35",58:"r35"},{23:"r36",24:"r36",25:"r36",26:"r36",27:"r36",28:"r36",29:"r36",30:"r36",31:"r36",32:"r36",33:"r36",34:"r36",35:"r36",36:"r36",37:"r36",38:"r36",39:"r36",40:"r36",41:"r36",42:"r36",43:"r36",44:"r36",45:"r36",46:"r36",47:"r36",48:"r36",49:"r36",50:"r36",51:"r36",52:"r36",53:"r36",54:"r36",55:"r36",56:"r36",57:"r36",58:"r36"},{10:70,18:65,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{10:70,18:83,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{23:"r47",24:"r47",25:"r47",26:"r47",27:"r47",28:"r47",29:"r47",30:"r47",31:"r47",32:"r47",33:"r47",34:"r47",35:"r47",36:"r47",37:"r47",38:"r47",39:"r47",40:"r47",41:"r47",42:"r47",43:"r47",44:"r47",45:"r47",46:"r47",47:"r47",48:"r47",49:"r47",50:"r47",51:"r47",52:"r47",53:"r47",54:"r47",55:"r47",57:"r47"},{23:"r48",24:"r48",25:"r48",26:"r48",27:"r48",28:"r48",29:"r48",30:"r48",31:"r48",32:"r48",33:"r48",34:"r48",35:"r48",36:"r48",37:"r48",38:"r48",39:"r48",40:"r48",41:"r48",42:"r48",43:"r48",44:"r48",45:"r48",46:"r48",47:"r48",48:"r48",49:"r48",50:"r48",51:"r48",52:"r48",53:"r48",54:"r48",55:"r48",57:"r48"},{4:85,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:87,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:89,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r13",24:"r13",25:"r13",26:"r13",27:"r13",28:"r13",29:"r13",30:"r13",31:"r13",32:"r13",33:"r13",34:"r13",35:"r13",36:"r13",37:"r13",38:"r13",39:"r13",40:"r13",41:"r13",42:"r13",43:"r13",44:"r13",45:"r13",52:"r13",53:"r13",54:"r13",55:"r13",57:"r13"},{23:"r37",24:"r37",25:"r37",26:"r37",27:"r37",28:"r37",29:"r37",30:"r37",31:"r37",32:"r37",33:"r37",34:"r37",35:"r37",36:"r37",37:"r37",38:"r37",39:"r37",40:"r37",41:"r37",42:"r37",43:"r37",44:"r37",45:"r37",52:"r37",53:"r37",54:"r37",55:"r37",57:"r37"},{23:"r39",24:"r39",25:"r39",26:"r39",27:"r39",28:"r39",29:"r39",30:"r39",31:"r39",32:"r39",33:"r39",34:"r39",35:"r39",36:"r39",37:"r39",38:"r39",39:"r39",40:"r39",41:"r39",42:"r39",43:"r39",44:"r39",45:"r39",46:"s56",52:"r39",53:"r39",54:"r39",55:"r39",57:"r39"},{23:"r41",24:"r41",25:"r41",26:"r41",27:"r41",28:"r41",29:"r41",30:"r41",31:"r41",32:"r41",33:"r41",34:"r41",35:"r41",36:"r41",37:"r41",38:"r41",39:"r41",40:"r41",41:"r41",42:"r41",43:"r41",44:"r41",45:"r41",46:"r41",52:"r41",53:"r41",54:"r41",55:"r41",57:"r41"},{23:"r42",24:"r42",25:"r42",26:"r42",27:"r42",28:"r42",29:"r42",30:"r42",31:"r42",32:"r42",33:"r42",34:"r42",35:"r42",36:"r42",37:"r42",38:"r42",39:"r42",40:"r42",41:"r42",42:"r42",43:"r42",44:"r42",45:"r42",46:"r42",52:"r42",53:"r42",54:"r42",55:"r42",57:"r42"},{23:"r43",24:"r43",25:"r43",26:"r43",27:"r43",28:"r43",29:"r43",30:"r43",31:"r43",32:"r43",33:"r43",34:"r43",35:"r43",36:"r43",37:"r43",38:"r43",39:"r43",40:"r43",41:"r43",42:"r43",43:"r43",44:"r43",45:"r43",46:"r43",52:"r43",53:"r43",54:"r43",55:"r43",57:"r43"},{23:"r44",24:"r44",25:"r44",26:"r44",27:"r44",28:"r44",29:"r44",30:"r44",31:"r44",32:"r44",33:"r44",34:"r44",35:"r44",36:"r44",37:"r44",38:"r44",39:"r44",40:"r44",41:"r44",42:"r44",43:"r44",44:"r44",45:"r44",46:"r44",52:"r44",53:"r44",54:"r44",55:"r44",57:"r44"},{23:"r45",24:"r45",25:"r45",26:"r45",27:"r45",28:"r45",29:"r45",30:"r45",31:"r45",32:"r45",33:"r45",34:"r45",35:"r45",36:"r45",37:"r45",38:"r45",39:"r45",40:"r45",41:"r45",42:"r45",43:"r45",44:"r45",45:"r45",46:"r45",52:"r45",53:"r45",54:"r45",55:"r45",57:"r45"},{23:"r46",24:"r46",25:"r46",26:"r46",27:"r46",28:"r46",29:"r46",30:"r46",31:"r46",32:"r46",33:"r46",34:"r46",35:"r46",36:"r46",37:"r46",38:"r46",39:"r46",40:"r46",41:"r46",42:"r46",43:"r46",44:"r46",45:"r46",46:"r46",52:"r46",53:"r46",54:"r46",55:"r46",57:"r46"},{23:"r40",24:"r40",25:"r40",26:"r40",27:"r40",28:"r40",29:"r40",30:"r40",31:"r40",32:"r40",33:"r40",34:"r40",35:"r40",36:"r40",37:"r40",38:"r40",39:"r40",40:"r40",41:"r40",42:"r40",43:"r40",44:"r40",45:"r40",52:"r40",53:"r40",54:"r40",55:"r40",57:"r40"},{25:"s12",31:"s58"},{23:"r18",24:"r18",25:"r18",26:"r18",27:"r18",28:"r18",29:"r18",30:"r18",31:"r18",32:"r18",33:"r18",34:"r18",35:"r18",36:"r18",37:"r18",38:"r18",39:"r18",40:"r18",41:"r18",42:"r18",43:"r18",44:"r18",45:"r18",52:"r18",53:"r18",54:"r18",55:"r18",57:"r18"},{25:"s12",31:"s60"},{23:"r19",24:"r19",25:"r19",26:"r19",27:"r19",28:"r19",29:"r19",30:"r19",31:"r19",32:"r19",33:"r19",34:"r19",35:"r19",36:"r19",37:"r19",38:"r19",39:"r19",40:"r19",41:"r19",42:"r19",43:"r19",44:"r19",45:"r19",52:"r19",53:"r19",54:"r19",55:"r19",57:"r19"},{25:"s12",31:"s62"},{23:"r20",24:"r20",25:"r20",26:"r20",27:"r20",28:"r20",29:"r20",30:"r20",31:"r20",32:"r20",33:"r20",34:"r20",35:"r20",36:"r20",37:"r20",38:"r20",39:"r20",40:"r20",41:"r20",42:"r20",43:"r20",44:"r20",45:"r20",52:"r20",53:"r20",54:"r20",55:"r20",57:"r20"},{25:"s12",31:"s64"},{23:"r21",24:"r21",25:"r21",26:"r21",27:"r21",28:"r21",29:"r21",30:"r21",31:"r21",32:"r21",33:"r21",34:"r21",35:"r21",36:"r21",37:"r21",38:"r21",39:"r21",40:"r21",41:"r21",42:"r21",43:"r21",44:"r21",45:"r21",52:"r21",53:"r21",54:"r21",55:"r21",57:"r21"},{56:"s72"},{56:"r55"},{10:70,20:73,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r56",58:"s74"},{24:"r62",28:"r62",35:"r62",36:"r62",37:"r62",38:"r62",39:"r62",40:"r62",41:"r62",42:"r62",43:"r62",44:"r62",45:"r62",56:"r62",58:"r62"},{24:"r63",28:"r63",35:"r63",36:"r63",37:"r63",38:"r63",39:"r63",40:"r63",41:"r63",42:"r63",43:"r63",44:"r63",45:"r63",56:"r63",58:"r63"},{24:"r64",28:"r64",35:"r64",36:"r64",37:"r64",38:"r64",39:"r64",40:"r64",41:"r64",42:"r64",43:"r64",44:"r64",45:"r64",56:"r64",58:"r64"},{24:"r65",28:"r65",35:"r65",36:"r65",37:"r65",38:"r65",39:"r65",40:"r65",41:"r65",42:"r65",43:"r65",44:"r65",45:"r65",56:"r65",58:"r65"},{23:"r52",24:"r52",25:"r52",26:"r52",27:"r52",28:"r52",29:"r52",30:"r52",31:"r52",32:"r52",33:"r52",34:"r52",35:"r52",36:"r52",37:"r52",38:"r52",39:"r52",40:"r52",41:"r52",42:"r52",43:"r52",44:"r52",45:"r52",46:"r52",47:"r52",48:"r52",49:"r52",50:"r52",51:"r52",52:"r52",53:"r52",54:"r52",55:"r52",57:"r52"},{56:"r57"},{10:70,21:77,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{56:"r59"},{10:70,20:79,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r63",58:"s80"},{10:70,18:78,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r58"},{56:"r60"},{10:70,21:81,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{10:70,18:82,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r61"},{56:"s84"},{23:"r53",24:"r53",25:"r53",26:"r53",27:"r53",28:"r53",29:"r53",30:"r53",31:"r53",32:"r53",33:"r53",34:"r53",35:"r53",36:"r53",37:"r53",38:"r53",39:"r53",40:"r53",41:"r53",42:"r53",43:"r53",44:"r53",45:"r53",46:"r53",47:"r53",48:"r53",49:"r53",50:"r53",51:"r53",52:"r53",53:"r53",54:"r53",55:"r53",57:"r53"},{25:"s12",31:"s86"},{23:"r49",24:"r49",25:"r49",26:"r49",27:"r49",28:"r49",29:"r49",30:"r49",31:"r49",32:"r49",33:"r49",34:"r49",35:"r49",36:"r49",37:"r49",38:"r49",39:"r49",40:"r49",41:"r49",42:"r49",43:"r49",44:"r49",45:"r49",46:"r49",47:"r49",48:"r49",49:"r49",50:"r49",51:"r49",52:"r49",53:"r49",54:"r49",55:"r49",57:"r49"},{25:"s12",31:"s88"},{23:"r50",24:"r50",25:"r50",26:"r50",27:"r50",28:"r50",29:"r50",30:"r50",31:"r50",32:"r50",33:"r50",34:"r50",35:"r50",36:"r50",37:"r50",38:"r50",39:"r50",40:"r50",41:"r50",42:"r50",43:"r50",44:"r50",45:"r50",46:"r50",47:"r50",48:"r50",49:"r50",50:"r50",51:"r50",52:"r50",53:"r50",54:"r50",55:"r50",57:"r50"},{25:"s12",31:"s90"},{23:"r51",24:"r51",25:"r51",26:"r51",27:"r51",28:"r51",29:"r51",30:"r51",31:"r51",32:"r51",33:"r51",34:"r51",35:"r51",36:"r51",37:"r51",38:"r51",39:"r51",40:"r51",41:"r51",42:"r51",43:"r51",44:"r51",45:"r51",46:"r51",47:"r51",48:"r51",49:"r51",50:"r51",51:"r51",52:"r51",53:"r51",54:"r51",55:"r51",57:"r51"}],l=[],v=void 0,b=[[/^#[^\n]+/,function(){}],[/^\s+/,function(){}],[/^-/,function(){return"DASH"}],[/^\//,function(){return"CHAR"}],[/^#/,function(){return"CHAR"}],[/^\|/,function(){return"CHAR"}],[/^\./,function(){return"CHAR"}],[/^\{/,function(){return"CHAR"}],[/^\{\d+\}/,function(){return"RANGE_EXACT"}],[/^\{\d+,\}/,function(){return"RANGE_OPEN"}],[/^\{\d+,\d+\}/,function(){return"RANGE_CLOSED"}],[/^\\k<(([\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\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00-\ude03\ude05-\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return E(d.slice(3,-1),this.getCurrentState()),"NAMED_GROUP_REF"}],[/^\\b/,function(){return"ESC_b"}],[/^\\B/,function(){return"ESC_B"}],[/^\\c[a-zA-Z]/,function(){return"CTRL_CH"}],[/^\\0\d{1,2}/,function(){return"OCT_CODE"}],[/^\\0/,function(){return"DEC_CODE"}],[/^\\\d{1,3}/,function(){return"DEC_CODE"}],[/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/,function(){return"U_CODE_SURROGATE"}],[/^\\u\{[0-9a-fA-F]{1,}\}/,function(){return"U_CODE"}],[/^\\u[0-9a-fA-F]{4}/,function(){return"U_CODE"}],[/^\\[pP]\{\w+(?:=\w+)?\}/,function(){return"U_PROP_VALUE_EXP"}],[/^\\x[0-9a-fA-F]{2}/,function(){return"HEX_CODE"}],[/^\\[tnrdDsSwWvf]/,function(){return"META_CHAR"}],[/^\\\//,function(){return"ESC_CHAR"}],[/^\\[ #]/,function(){return"ESC_CHAR"}],[/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/,function(){return"ESC_CHAR"}],[/^\\[^*?+\[()\\|]/,function(){var e=this.getCurrentState();if("u_class"===e&&"\\-"===d)return"ESC_CHAR";if("u"===e||"xu"===e||"u_class"===e)throw new SyntaxError("invalid Unicode escape "+d);return"ESC_CHAR"}],[/^\(/,function(){return"CHAR"}],[/^\)/,function(){return"CHAR"}],[/^\(\?=/,function(){return"POS_LA_ASSERT"}],[/^\(\?!/,function(){return"NEG_LA_ASSERT"}],[/^\(\?<=/,function(){return"POS_LB_ASSERT"}],[/^\(\?<!/,function(){return"NEG_LB_ASSERT"}],[/^\(\?:/,function(){return"NON_CAPTURE_GROUP"}],[/^\(\?<(([\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\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00-\ude03\ude05-\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return E(d=d.slice(3,-1),this.getCurrentState()),"NAMED_CAPTURE_GROUP"}],[/^\(/,function(){return"L_PAREN"}],[/^\)/,function(){return"R_PAREN"}],[/^[*?+[^$]/,function(){return"CHAR"}],[/^\\\]/,function(){return"ESC_CHAR"}],[/^\]/,function(){return this.popState(),"R_BRACKET"}],[/^\^/,function(){return"BOS"}],[/^\$/,function(){return"EOS"}],[/^\*/,function(){return"STAR"}],[/^\?/,function(){return"Q_MARK"}],[/^\+/,function(){return"PLUS"}],[/^\|/,function(){return"BAR"}],[/^\./,function(){return"ANY"}],[/^\//,function(){return"SLASH"}],[/^[^*?+\[()\\|]/,function(){return"CHAR"}],[/^\[\^/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"NEG_CLASS"}],[/^\[/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"L_BRACKET"}]],p={INITIAL:[8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],xu:[0,1,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],x:[0,1,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u_class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]},m={type:"$",value:""};v={initString:function(e){return this._string=e,this._cursor=0,this._states=["INITIAL"],this._tokensQueue=[],this._currentLine=1,this._currentColumn=0,this._currentLineBeginOffset=0,this._tokenStartOffset=0,this._tokenEndOffset=0,this._tokenStartLine=1,this._tokenEndLine=1,this._tokenStartColumn=0,this._tokenEndColumn=0,this},getStates:function(){return this._states},getCurrentState:function(){return this._states[this._states.length-1]},pushState:function(e){this._states.push(e)},begin:function(e){this.pushState(e)},popState:function(){return this._states.length>1?this._states.pop():this._states[0]},getNextToken:function(){if(this._tokensQueue.length>0)return this.onToken(this._toToken(this._tokensQueue.shift()));if(!this.hasMoreTokens())return this.onToken(m);for(var e=this._string.slice(this._cursor),u=p[this.getCurrentState()],r=0;r<u.length;r++){var t=u[r],a=b[t],s=this._match(e,a[0]);if(""===e&&""===s&&this._cursor++,null!==s){(d=s).length;var i=a[1].call(this);if(!i)return this.getNextToken();if(Array.isArray(i)){var f,o=i.slice(1);i=i[0],o.length>0&&(f=this._tokensQueue).unshift.apply(f,n(o))}return this.onToken(this._toToken(i,d))}}if(this.isEOF())return this._cursor++,m;this.throwUnexpectedToken(e[0],this._currentLine,this._currentColumn)},throwUnexpectedToken:function(e,u,r){var n=this._string.split("\n")[u-1],d="";throw n&&(d="\n\n"+n+"\n"+" ".repeat(r)+"^\n"),new SyntaxError(d+'Unexpected token: "'+e+'" at '+u+":"+r+".")},getCursor:function(){return this._cursor},getCurrentLine:function(){return this._currentLine},getCurrentColumn:function(){return this._currentColumn},_captureLocation:function(e){var u=/\n/g;this._tokenStartOffset=this._cursor,this._tokenStartLine=this._currentLine,this._tokenStartColumn=this._tokenStartOffset-this._currentLineBeginOffset;for(var r=void 0;null!==(r=u.exec(e));)this._currentLine++,this._currentLineBeginOffset=this._tokenStartOffset+r.index+1;this._tokenEndOffset=this._cursor+e.length,this._tokenEndLine=this._currentLine,this._tokenEndColumn=this._currentColumn=this._tokenEndOffset-this._currentLineBeginOffset},_toToken:function(e){return{type:e,value:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",startOffset:this._tokenStartOffset,endOffset:this._tokenEndOffset,startLine:this._tokenStartLine,endLine:this._tokenEndLine,startColumn:this._tokenStartColumn,endColumn:this._tokenEndColumn}},isEOF:function(){return this._cursor===this._string.length},hasMoreTokens:function(){return this._cursor<=this._string.length},_match:function(e,u){var r=e.match(u);return r?(this._captureLocation(r[0]),this._cursor+=r[0].length,r[0]):null},onToken:function(e){return e}},t.lexer=v,t.tokenizer=v,t.options={captureLocations:!0};var h={setOptions:function(e){return t.options=e,this},getOptions:function(){return t.options},parse:function(e,u){if(!v)throw new Error("Tokenizer instance wasn't specified.");v.initString(e);var r=t.options;u&&(t.options=Object.assign({},t.options,u)),h.onParseBegin(e,v,t.options),l.length=0,l.push(0);var i=v.getNextToken(),b=null;do{i||(t.options=r,L());var p=l[l.length-1],m=o[i.type];c[p].hasOwnProperty(m)||(t.options=r,N(i));var y=c[p][m];if("s"===y[0]){var g=null;t.options.captureLocations&&(g={startOffset:i.startOffset,endOffset:i.endOffset,startLine:i.startLine,endLine:i.endLine,startColumn:i.startColumn,endColumn:i.endColumn}),b=this.onShift(i),l.push({symbol:o[b.type],semanticValue:b.value,loc:g},Number(y.slice(1))),i=v.getNextToken()}else if("r"===y[0]){var C=y.slice(1),B=f[C],_="function"==typeof B[2],x=_?[]:null,j=_&&t.options.captureLocations?[]:null;if(0!==B[1])for(var A=B[1];A-- >0;){l.pop();var S=l.pop();_&&(x.unshift(S.semanticValue),j&&j.unshift(S.loc))}var w={symbol:B[0]};if(_){d=b?b.value:null,b&&b.value.length;var k=null!==j?x.concat(j):x;B[2].apply(B,n(k)),w.semanticValue=a,j&&(w.loc=s)}var P=l[l.length-1],E=B[0];l.push(w,c[P][E])}else if("acc"===y){l.pop();var D=l.pop();return(1!==l.length||0!==l[0]||v.hasMoreTokens())&&(t.options=r,N(i)),D.hasOwnProperty("semanticValue")?(t.options=r,h.onParseEnd(D.semanticValue),D.semanticValue):(h.onParseEnd(),t.options=r,!0)}}while(v.hasMoreTokens()||l.length>1)},setTokenizer:function(e){return v=e,h},getTokenizer:function(){return v},onParseBegin:function(e,u,r){},onParseEnd:function(e){},onShift:function(e){return e}},y=0,g={},C="";function B(e){var u=e.match(/\d+/g).map(Number);if(Number.isFinite(u[1])&&u[1]<u[0])throw new SyntaxError("Numbers out of order in "+e+" quantifier");return u}function _(e,u){if("control"===e.kind||"control"===u.kind||!isNaN(e.codePoint)&&!isNaN(u.codePoint)&&e.codePoint>u.codePoint)throw new SyntaxError("Range "+e.value+"-"+u.value+" out of order in character class")}h.onParseBegin=function(e,u){C=e,y=0,g={};var r=e.lastIndexOf("/"),n=e.slice(r);n.includes("x")&&n.includes("u")?u.pushState("xu"):(n.includes("x")&&u.pushState("x"),n.includes("u")&&u.pushState("u"))},h.onShift=function(e){return"L_PAREN"!==e.type&&"NAMED_CAPTURE_GROUP"!==e.type||(e.value=new String(e.value),e.value.groupNumber=++y),e};var x=r(37047);function j(e,u,r){var n=void 0,d=void 0;switch(u){case"decimal":d=Number(e.slice(1)),n=String.fromCodePoint(d);break;case"oct":d=parseInt(e.slice(1),8),n=String.fromCodePoint(d);break;case"hex":case"unicode":if(e.lastIndexOf("\\u")>0){var t=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(e.split("\\u").slice(1),2),a=t[0],s=t[1];d=1024*((a=parseInt(a,16))-55296)+((s=parseInt(s,16))-56320)+65536,n=String.fromCodePoint(d)}else{var i=e.slice(2).replace("{","");if((d=parseInt(i,16))>1114111)throw new SyntaxError("Bad character escape sequence: "+e);n=String.fromCodePoint(d)}break;case"meta":switch(e){case"\\t":d=(n="\t").codePointAt(0);break;case"\\n":d=(n="\n").codePointAt(0);break;case"\\r":d=(n="\r").codePointAt(0);break;case"\\v":d=(n="\v").codePointAt(0);break;case"\\f":d=(n="\f").codePointAt(0);break;case"\\b":d=(n="\b").codePointAt(0);case"\\0":n="\0",d=0;case".":n=".",d=NaN;break;default:d=NaN}break;case"simple":d=(n=e).codePointAt(0)}return T({type:"Char",value:e,kind:u,symbol:n,codePoint:d},r)}var A="gimsuxy";function S(e){var u=new Set,r=!0,n=!1,d=void 0;try{for(var t,a=e[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var s=t.value;if(u.has(s)||!A.includes(s))throw new SyntaxError("Invalid flags: "+e);u.add(s)}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}return e.split("").sort().join("")}var w=/^\\u[0-9a-fA-F]{4}/,k=/^\\u\{[0-9a-fA-F]{1,}\}/,P=/\\u\{[0-9a-fA-F]{1,}\}/;function E(e,u){if(P.test(e)&&"u"!==u&&"xu"!==u&&"u_class"!==u)throw new SyntaxError('invalid group Unicode name "'+e+'", use `u` flag.');return e}var D=/\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/;function O(e){return e.replace(new RegExp(D,"g"),(function(e,u,r,n,d,t,a){return u?String.fromCodePoint(parseInt(u,16),parseInt(r,16)):n?String.fromCodePoint(parseInt(n,16)):d?String.fromCodePoint(parseInt(d,16)):t?String.fromCodePoint(parseInt(t,16)):a?String.fromCodePoint(parseInt(a,16)):e}))}function T(e,u){return t.options.captureLocations&&(e.loc={source:C.slice(u.startOffset,u.endOffset),start:{line:u.startLine,column:u.startColumn,offset:u.startOffset},end:{line:u.endLine,column:u.endColumn,offset:u.endOffset}}),e}function R(e,u){return t.options.captureLocations?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:null}function N(e){"$"===e.type&&L(),v.throwUnexpectedToken(e.value,e.startLine,e.startColumn)}function L(){!function(){throw new SyntaxError("Unexpected end of input.")}()}e.exports=h},23810:(e,u,r)=>{"use strict";var n=r(97e3),d=n.parse.bind(n);n.parse=function(e,u){return d(""+e,u)},n.setOptions({captureLocations:!1}),e.exports=n},37047:e=>{"use strict";var u={General_Category:"gc",Script:"sc",Script_Extensions:"scx"},r=f(u),n={ASCII:"ASCII",ASCII_Hex_Digit:"AHex",Alphabetic:"Alpha",Any:"Any",Assigned:"Assigned",Bidi_Control:"Bidi_C",Bidi_Mirrored:"Bidi_M",Case_Ignorable:"CI",Cased:"Cased",Changes_When_Casefolded:"CWCF",Changes_When_Casemapped:"CWCM",Changes_When_Lowercased:"CWL",Changes_When_NFKC_Casefolded:"CWKCF",Changes_When_Titlecased:"CWT",Changes_When_Uppercased:"CWU",Dash:"Dash",Default_Ignorable_Code_Point:"DI",Deprecated:"Dep",Diacritic:"Dia",Emoji:"Emoji",Emoji_Component:"Emoji_Component",Emoji_Modifier:"Emoji_Modifier",Emoji_Modifier_Base:"Emoji_Modifier_Base",Emoji_Presentation:"Emoji_Presentation",Extended_Pictographic:"Extended_Pictographic",Extender:"Ext",Grapheme_Base:"Gr_Base",Grapheme_Extend:"Gr_Ext",Hex_Digit:"Hex",IDS_Binary_Operator:"IDSB",IDS_Trinary_Operator:"IDST",ID_Continue:"IDC",ID_Start:"IDS",Ideographic:"Ideo",Join_Control:"Join_C",Logical_Order_Exception:"LOE",Lowercase:"Lower",Math:"Math",Noncharacter_Code_Point:"NChar",Pattern_Syntax:"Pat_Syn",Pattern_White_Space:"Pat_WS",Quotation_Mark:"QMark",Radical:"Radical",Regional_Indicator:"RI",Sentence_Terminal:"STerm",Soft_Dotted:"SD",Terminal_Punctuation:"Term",Unified_Ideograph:"UIdeo",Uppercase:"Upper",Variation_Selector:"VS",White_Space:"space",XID_Continue:"XIDC",XID_Start:"XIDS"},d=f(n),t={Cased_Letter:"LC",Close_Punctuation:"Pe",Connector_Punctuation:"Pc",Control:["Cc","cntrl"],Currency_Symbol:"Sc",Dash_Punctuation:"Pd",Decimal_Number:["Nd","digit"],Enclosing_Mark:"Me",Final_Punctuation:"Pf",Format:"Cf",Initial_Punctuation:"Pi",Letter:"L",Letter_Number:"Nl",Line_Separator:"Zl",Lowercase_Letter:"Ll",Mark:["M","Combining_Mark"],Math_Symbol:"Sm",Modifier_Letter:"Lm",Modifier_Symbol:"Sk",Nonspacing_Mark:"Mn",Number:"N",Open_Punctuation:"Ps",Other:"C",Other_Letter:"Lo",Other_Number:"No",Other_Punctuation:"Po",Other_Symbol:"So",Paragraph_Separator:"Zp",Private_Use:"Co",Punctuation:["P","punct"],Separator:"Z",Space_Separator:"Zs",Spacing_Mark:"Mc",Surrogate:"Cs",Symbol:"S",Titlecase_Letter:"Lt",Unassigned:"Cn",Uppercase_Letter:"Lu"},a=f(t),s={Adlam:"Adlm",Ahom:"Ahom",Anatolian_Hieroglyphs:"Hluw",Arabic:"Arab",Armenian:"Armn",Avestan:"Avst",Balinese:"Bali",Bamum:"Bamu",Bassa_Vah:"Bass",Batak:"Batk",Bengali:"Beng",Bhaiksuki:"Bhks",Bopomofo:"Bopo",Brahmi:"Brah",Braille:"Brai",Buginese:"Bugi",Buhid:"Buhd",Canadian_Aboriginal:"Cans",Carian:"Cari",Caucasian_Albanian:"Aghb",Chakma:"Cakm",Cham:"Cham",Cherokee:"Cher",Common:"Zyyy",Coptic:["Copt","Qaac"],Cuneiform:"Xsux",Cypriot:"Cprt",Cyrillic:"Cyrl",Deseret:"Dsrt",Devanagari:"Deva",Dogra:"Dogr",Duployan:"Dupl",Egyptian_Hieroglyphs:"Egyp",Elbasan:"Elba",Ethiopic:"Ethi",Georgian:"Geor",Glagolitic:"Glag",Gothic:"Goth",Grantha:"Gran",Greek:"Grek",Gujarati:"Gujr",Gunjala_Gondi:"Gong",Gurmukhi:"Guru",Han:"Hani",Hangul:"Hang",Hanifi_Rohingya:"Rohg",Hanunoo:"Hano",Hatran:"Hatr",Hebrew:"Hebr",Hiragana:"Hira",Imperial_Aramaic:"Armi",Inherited:["Zinh","Qaai"],Inscriptional_Pahlavi:"Phli",Inscriptional_Parthian:"Prti",Javanese:"Java",Kaithi:"Kthi",Kannada:"Knda",Katakana:"Kana",Kayah_Li:"Kali",Kharoshthi:"Khar",Khmer:"Khmr",Khojki:"Khoj",Khudawadi:"Sind",Lao:"Laoo",Latin:"Latn",Lepcha:"Lepc",Limbu:"Limb",Linear_A:"Lina",Linear_B:"Linb",Lisu:"Lisu",Lycian:"Lyci",Lydian:"Lydi",Mahajani:"Mahj",Makasar:"Maka",Malayalam:"Mlym",Mandaic:"Mand",Manichaean:"Mani",Marchen:"Marc",Medefaidrin:"Medf",Masaram_Gondi:"Gonm",Meetei_Mayek:"Mtei",Mende_Kikakui:"Mend",Meroitic_Cursive:"Merc",Meroitic_Hieroglyphs:"Mero",Miao:"Plrd",Modi:"Modi",Mongolian:"Mong",Mro:"Mroo",Multani:"Mult",Myanmar:"Mymr",Nabataean:"Nbat",New_Tai_Lue:"Talu",Newa:"Newa",Nko:"Nkoo",Nushu:"Nshu",Ogham:"Ogam",Ol_Chiki:"Olck",Old_Hungarian:"Hung",Old_Italic:"Ital",Old_North_Arabian:"Narb",Old_Permic:"Perm",Old_Persian:"Xpeo",Old_Sogdian:"Sogo",Old_South_Arabian:"Sarb",Old_Turkic:"Orkh",Oriya:"Orya",Osage:"Osge",Osmanya:"Osma",Pahawh_Hmong:"Hmng",Palmyrene:"Palm",Pau_Cin_Hau:"Pauc",Phags_Pa:"Phag",Phoenician:"Phnx",Psalter_Pahlavi:"Phlp",Rejang:"Rjng",Runic:"Runr",Samaritan:"Samr",Saurashtra:"Saur",Sharada:"Shrd",Shavian:"Shaw",Siddham:"Sidd",SignWriting:"Sgnw",Sinhala:"Sinh",Sogdian:"Sogd",Sora_Sompeng:"Sora",Soyombo:"Soyo",Sundanese:"Sund",Syloti_Nagri:"Sylo",Syriac:"Syrc",Tagalog:"Tglg",Tagbanwa:"Tagb",Tai_Le:"Tale",Tai_Tham:"Lana",Tai_Viet:"Tavt",Takri:"Takr",Tamil:"Taml",Tangut:"Tang",Telugu:"Telu",Thaana:"Thaa",Thai:"Thai",Tibetan:"Tibt",Tifinagh:"Tfng",Tirhuta:"Tirh",Ugaritic:"Ugar",Vai:"Vaii",Warang_Citi:"Wara",Yi:"Yiii",Zanabazar_Square:"Zanb"},i=f(s);function f(e){var u={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(Array.isArray(n))for(var d=0;d<n.length;d++)u[n[d]]=r;else u[n]=r}return u}function o(e){return t.hasOwnProperty(e)||a.hasOwnProperty(e)}function c(e){return s.hasOwnProperty(e)||i.hasOwnProperty(e)}e.exports={isAlias:function(e){return r.hasOwnProperty(e)||d.hasOwnProperty(e)},isValidName:function(e){return u.hasOwnProperty(e)||r.hasOwnProperty(e)||n.hasOwnProperty(e)||d.hasOwnProperty(e)},isValidValue:function(e,u){return function(e){return"General_Category"===e||"gc"==e}(e)?o(u):!!function(e){return"Script"===e||"Script_Extensions"===e||"sc"===e||"scx"===e}(e)&&c(u)},isGeneralCategoryValue:o,isScriptCategoryValue:c,isBinaryPropertyName:function(e){return n.hasOwnProperty(e)||d.hasOwnProperty(e)},getCanonicalName:function(e){return r.hasOwnProperty(e)?r[e]:d.hasOwnProperty(e)?d[e]:null},getCanonicalValue:function(e){return a.hasOwnProperty(e)?a[e]:i.hasOwnProperty(e)?i[e]:d.hasOwnProperty(e)?d[e]:null},NON_BINARY_PROP_NAMES_TO_ALIASES:u,NON_BINARY_ALIASES_TO_PROP_NAMES:r,BINARY_PROP_NAMES_TO_ALIASES:n,BINARY_ALIASES_TO_PROP_NAMES:d,GENERAL_CATEGORY_VALUE_TO_ALIASES:t,GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES:a,SCRIPT_VALUE_TO_ALIASES:s,SCRIPT_VALUE_ALIASES_TO_VALUE:i}},54676:(e,u,r)=>{"use strict";var n=r(9182),d=r(20042),t=r(63072),a=r(23810),s=r(2003),i=r(29171),f=r(36734),o=r(51537).RegExpTree,c={parser:a,fa:f,TransformResult:s.TransformResult,parse:function(e,u){return a.parse(""+e,u)},traverse:function(e,u,r){return i.traverse(e,u,r)},transform:function(e,u){return s.transform(e,u)},generate:function(e){return d.generate(e)},toRegExp:function(e){var u=this.compatTranspile(e);return new RegExp(u.getSource(),u.getFlags())},optimize:function(e,u){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).blacklist;return t.optimize(e,{whitelist:u,blacklist:r})},compatTranspile:function(e,u){return n.transform(e,u)},exec:function(e,u){if("string"==typeof e){var r=this.compatTranspile(e),n=r.getExtra();e=n.namedCapturingGroups?new o(r.toRegExp(),{flags:r.getFlags(),source:r.getSource(),groups:n.namedCapturingGroups}):r.toRegExp()}return e.exec(u)}};e.exports=c},2003:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),d=r(20042),t=r(23810),a=r(29171),s=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._ast=u,this._source=null,this._string=null,this._regexp=null,this._extra=r}return n(e,[{key:"getAST",value:function(){return this._ast}},{key:"setExtra",value:function(e){this._extra=e}},{key:"getExtra",value:function(){return this._extra}},{key:"toRegExp",value:function(){return this._regexp||(this._regexp=new RegExp(this.getSource(),this._ast.flags)),this._regexp}},{key:"getSource",value:function(){return this._source||(this._source=d.generate(this._ast.body)),this._source}},{key:"getFlags",value:function(){return this._ast.flags}},{key:"toString",value:function(){return this._string||(this._string=d.generate(this._ast)),this._string}}]),e}();e.exports={TransformResult:s,transform:function(e,u){var r=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(r=t.parse(e,{captureLocations:!0})),a.traverse(r,u),new s(r)}}},33166:e=>{"use strict";e.exports={disjunctionToList:function e(u){if("Disjunction"!==u.type)throw new TypeError('Expected "Disjunction" node, got "'+u.type+'"');var r=[];return u.left&&"Disjunction"===u.left.type?r.push.apply(r,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(e(u.left)).concat([u.right])):r.push(u.left,u.right),r},listToDisjunction:function(e){return e.reduce((function(e,u){return{type:"Disjunction",left:e,right:u}}))},increaseQuantifierByOne:function(e){"*"===e.kind?e.kind="+":"+"===e.kind?(e.kind="Range",e.from=2,delete e.to):"?"===e.kind?(e.kind="Range",e.from=1,e.to=2):"Range"===e.kind&&(e.from+=1,e.to&&(e.to+=1))}}},29171:(e,u,r)=>{"use strict";var n=r(41059);e.exports={traverse:function(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{asNodes:!1};function d(e,u,r,d){var t=n.getForNode(u);return n.getForNode(e,t,r,d)}Array.isArray(u)||(u=[u]),u=u.filter((function(u){return"function"!=typeof u.shouldRun||u.shouldRun(e)})),n.initRegistry(),u.forEach((function(u){"function"==typeof u.init&&u.init(e)})),function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.pre,d=u.post,t=u.skipProperty;!function e(u,a,s,i){if(u&&"string"==typeof u.type){var f=void 0;if(r&&(f=r(u,a,s,i)),!1!==f)for(var o in a&&a[s]&&(u=isNaN(i)?a[s]:a[s][i]),u)if(u.hasOwnProperty(o)){if(t?t(o,u):"$"===o[0])continue;var c=u[o];if(Array.isArray(c)){var l=0;for(n.traversingIndexStack.push(l);l<c.length;)e(c[l],u,o,l),l=n.updateTraversingIndex(1);n.traversingIndexStack.pop()}else e(c,u,o)}d&&d(u,a,s,i)}}(e,null)}(e,{pre:function(e,n,t,a){var s=void 0;r.asNodes||(s=d(e,n,t,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value;if("function"==typeof v["*"])if(s){if(!s.isRemoved()&&!1===v["*"](s))return!1}else v["*"](e,n,t,a);var b=void 0;if("function"==typeof v[e.type]?b=v[e.type]:"object"==typeof v[e.type]&&"function"==typeof v[e.type].pre&&(b=v[e.type].pre),b)if(s){if(!s.isRemoved()&&!1===b.call(v,s))return!1}else b.call(v,e,n,t,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}},post:function(e,n,t,a){if(e){var s=void 0;r.asNodes||(s=d(e,n,t,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value,b=void 0;if("object"==typeof v[e.type]&&"function"==typeof v[e.type].post&&(b=v[e.type].post),b)if(s){if(!s.isRemoved()&&!1===b.call(v,s))return!1}else b.call(v,e,n,t,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}}},skipProperty:function(e){return"loc"===e}})}}},41059:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r="expressions",n="expression",d=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.node=u,this.parentPath=r,this.parent=r?r.node:null,this.property=n,this.index=d}return u(e,[{key:"_enforceProp",value:function(e){if(!this.node.hasOwnProperty(e))throw new Error("Node of type "+this.node.type+" doesn't have \""+e+'" collection.')}},{key:"setChild",value:function(u){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=void 0;return null!=d?(t||(t=r),this._enforceProp(t),this.node[t][d]=u,a=e.getForNode(u,this,t,d)):(t||(t=n),this._enforceProp(t),this.node[t]=u,a=e.getForNode(u,this,t,null)),a}},{key:"appendChild",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u||(u=r),this._enforceProp(u);var n=this.node[u].length;return this.setChild(e,n,u)}},{key:"insertChildAt",value:function(u,n){var d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;this._enforceProp(d),this.node[d].splice(n,0,u),n<=e.getTraversingIndex()&&e.updateTraversingIndex(1),this._rebuildIndex(this.node,d)}},{key:"remove",value:function(){if(!this.isRemoved()&&(e.registry.delete(this.node),this.node=null,this.parent)){if(null!==this.index)return this.parent[this.property].splice(this.index,1),this.index<=e.getTraversingIndex()&&e.updateTraversingIndex(-1),this._rebuildIndex(this.parent,this.property),this.index=null,void(this.property=null);delete this.parent[this.property],this.property=null}}},{key:"_rebuildIndex",value:function(u,r){for(var n=e.getForNode(u),d=0;d<u[r].length;d++)e.getForNode(u[r][d],n,r,d).index=d}},{key:"isRemoved",value:function(){return null===this.node}},{key:"replace",value:function(u){return e.registry.delete(this.node),this.node=u,this.parent?(null!==this.index?this.parent[this.property][this.index]=u:this.parent[this.property]=u,e.getForNode(u,this.parentPath,this.property,this.index)):null}},{key:"update",value:function(e){Object.assign(this.node,e)}},{key:"getParent",value:function(){return this.parentPath}},{key:"getChild",value:function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.node.expressions?e.getForNode(this.node.expressions[u],this,r,u):this.node.expression&&0==u?e.getForNode(this.node.expression,this,n):null}},{key:"hasEqualSource",value:function(e){return JSON.stringify(this.node,t)===JSON.stringify(e.node,t)}},{key:"jsonEncode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.format,r=e.useLoc;return JSON.stringify(this.node,r?null:t,u)}},{key:"getPreviousSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index-1],e.getForNode(this.parent),this.property,this.index-1):null}},{key:"getNextSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index+1],e.getForNode(this.parent),this.property,this.index+1):null}}],[{key:"getForNode",value:function(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;if(!u)return null;e.registry.has(u)||e.registry.set(u,new e(u,r,n,-1==d?null:d));var t=e.registry.get(u);return null!==r&&(t.parentPath=r,t.parent=t.parentPath.node),null!==n&&(t.property=n),d>=0&&(t.index=d),t}},{key:"initRegistry",value:function(){e.registry||(e.registry=new Map),e.registry.clear()}},{key:"updateTraversingIndex",value:function(u){return e.traversingIndexStack[e.traversingIndexStack.length-1]+=u}},{key:"getTraversingIndex",value:function(){return e.traversingIndexStack[e.traversingIndexStack.length-1]}}]),e}();function t(e,u){if("loc"!==e)return u}d.initRegistry(),d.traversingIndexStack=[],e.exports=d},1379:e=>{"use strict";e.exports=function e(u){if(null===u||"object"!=typeof u)return u;var r=void 0;for(var n in r=Array.isArray(u)?[]:{},u)r[n]=e(u[n]);return r}},34999:(e,u,r)=>{"use strict";e.exports=r(54676)},18411:()=>{},3211:(e,u,r)=>{"use strict";r.d(u,{yS:()=>I});var n,d=r(94364),t=r(34999),a=r(20043);function s(e){return"number"==typeof e?e:1===e.length?e[0]:[e[0],e[e.length-1]]}function i(e){const u=Array.isArray(e)?e:e.toString().split(".");if("all"===u[0])return[1/0,0,0];let r=null,n=null;const d=[0,0,0];for(let e=0;e<3;e++)if(r=u[e],void 0!==r){if(n="number"==typeof r?r:parseInt(r,10),isNaN(n))return null;d[e]=n}return d}function f(e,u,r){const[n,d,t]=e,[a,s,i]=u,{ignoreMinor:f,ignorePatch:o,allowHigherVersions:c}=r;if(a===1/0)return!0;const l=!f,v=l&&!o;return c?!(v&&t<i||l&&d<s)&&n>=a:!(v&&t!==i||l&&d!==s)&&n===a}function o(e,u,r=0){const n=e.length;for(let d=r;d<n;d++)if(e[d]!==u[d])return!1;return!0}function c(e){if(null===e||"object"!=typeof e)return e;const u=Array.isArray(e)?[]:{};let r;for(r in e)u[r]=c(e[r]);return u}function l(e){return[].concat(...e)}function v(...e){const u=l(e).filter(Boolean);return 1===u.length?u[0]:{type:"Alternative",expressions:u}}function b(e){return{type:"Char",kind:"simple",value:String(e),codePoint:NaN}}function p(e,u){return{type:"ClassRange",from:e,to:u}}function m(...e){return{type:"CharacterClass",expressions:l(e).filter(Boolean)}}function h(e){return{type:"Group",capturing:!0,expression:e,number:null}}function y(...e){const u=function(...e){const u=l(e).filter(Boolean);if(1===u.length)return u[0];const r={type:"Disjunction",left:null,right:u.pop()};return u.reduceRight(((e,u,r)=>0===r?(e.left=u,e):(e.left={type:"Disjunction",left:null,right:u},e.left)),r),r}(...e);return"Disjunction"===u.type?h(u):u}function g(){return{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}}function C(e={type:"Quantifier",kind:"+",greedy:!0}){const u=function(e,u){return{type:"Repetition",expression:{type:"Char",kind:"meta",value:"\\d",codePoint:NaN},quantifier:u}}(0,e);return u}function B(e){return v(Array.from(String(e),b))}function _(e){if("Group"===e.type&&"Repetition"===e.expression.type){const{expression:u,quantifier:r}=e.expression;return"Char"===u.type&&"\\d"===u.value&&"+"===r.kind&&r.greedy}return!1}function x(e,u){return!(!e||"Char"!==e.type)&&(void 0===u||u instanceof RegExp&&u.test(e.value)||String(u)===e.value)}function j(e){if("CharacterClass"===e.type&&1===e.expressions.length){const[u]=e.expressions;return"ClassRange"===u.type&&x(u.from,/\d/)&&x(u.to,/\d/)}return!1}function A(e){return"RegExp"!==e.type&&"ClassRange"!==e.type&&"Quantifier"!==e.type}function S(e){return"string"==typeof e?t.parse(e.replace(/^([^/])/,"/$1").replace(/([^/])$/,"$1/")):e instanceof RegExp?t.parse(e):e}!function(e){e[e.Major=0]="Major",e[e.Minor=1]="Minor",e[e.Patch=2]="Patch"}(n||(n={}));const w=["RegExp","Disjunction","Alternative","Assertion","Char","CharacterClass","ClassRange","Backreference","Group","Repetition","Quantifier"];function k(e){const{every:u}=e;return u?"function"==typeof u?{"*":u,...e}:w.reduce(((r,n)=>{const d=e[n],t=d?"pre"in d?d.pre:d:null,a=d&&"post"in d?d.post:null;return r[n]={pre:e=>!1===u.pre(e)||!t||t(e),post:e=>!1===u.post(e)||!a||a(e)},r}),{}):e}function P(e){return Array.from(e.toString(),Number)}function E(e,u){const r=e+Number(!u);return 0===r?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:9===r?b("9"):r>9?null:m(p(b(r),b("9")))}function D(e,u,r){if(u<e)return null;const n=b(e),d=b(u),t="number"==typeof r&&r>0?Array.from({length:r},(()=>b(0))):[];return(t.length?e=>v(t,e):e=>e)(e===u?n:0===e&&9===u?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:u-e==1?m(n,d):m(p(n,d)))}function O(e,u,r=0){const n=P(e),d=n.length;if(e<10&&u<10||e===u)return[D(e,u,r-d)];const t=P(u);if(d!==t.length){const n=function(e,u){const r=[];let n=e,d=1;do{d*=10,n<d&&(r.push([n,Math.min(d-1,u)]),n=d)}while(d<=u);return r}(e,u),d=l(n.map((([e,u])=>O(e,u,r))));return d}const a=function(e,u){const r=e.length;if(r!==u.length||e[0]!==u[0])return null;let n=e[0].toString(),d=0,t=0,a="",s="";for(let i=1;i<r;i++)d=e[i],t=u[i],d===t&&""===a&&""===s?n+=d:(a+=d,s+=t);return[n,parseInt(a,10),parseInt(s,10)]}(n,t);if(Array.isArray(a)){const[e,u,r]=a,n=O(u,r,d-e.length);return[v(Array.from(e,b),y(n))]}const s=Array.from({length:d-1}),i=D(n[0]+1,t[0]-1);return[...s.map(((e,u)=>{const r=d-u-1,t=Number(u>0);return v(n.map(((e,u)=>u<r?b(e):D(u>r?0:e+t,9))))})),...i?[v(i,Array.from({length:d-1},(()=>({type:"Char",kind:"meta",value:"\\d",codePoint:NaN}))))]:[],...s.map(((e,u)=>{const r=d-u-1,n=Number(u>0);return v(t.map(((e,u)=>u<r?b(e):D(0,u>r?9:e-n))))}))].reduce(((e,u)=>{const r=e[e.length-1];if(r&&"Alternative"===u.type&&"Alternative"===r.type&&u.expressions.length===r.expressions.length){const n=r.expressions.reduceRight(((e,r,n)=>{if(!e)return e;const d=(t=r,a=u.expressions[n],x(t)&&x(a)&&t.value===a.value?a:x(t,/\d/)&&j(a)&&Number(a.expressions[0].from.value)-Number(t.value)==1?{...a,expressions:[{...a.expressions[0],from:t}]}:j(t)&&x(a,/\d/)&&Number(a.value)-Number(t.expressions[0].to.value)==1?{...t,expressions:[{...t.expressions[0],to:a}]}:null);var t,a;return d?(e.unshift(d),e):null}),[]);n&&(u.expressions=n,e.pop())}return e.push(u),e}),[])}function T(e,u=1/0){return e===1/0?C():y(u===1/0?function(e){if(0===e)return[C()];const u=P(e),r=u.length,n=C(function(e){return{type:"Quantifier",kind:"Range",from:e,to:void 0,greedy:!0}}(r+1)),d=r-1;if(e/Math.pow(10,d)===u[0])return[v(E(u[0],!0),Array.from({length:d},g)),n];const t=u.reduce(((e,n,d)=>{const t=r-d-1,a=0===d;let s=b("");const i=u.reduce(((e,u,r)=>{if(r<t)e.push(b(u));else if(s)if(r>t)e.push({type:"Char",kind:"meta",value:"\\d",codePoint:NaN});else{if(s=E(u,a),!s)return[];e.push(s)}return e}),[]);return i.length&&e.push(i),e}),[]).map((e=>v(e)));return t.push(n),t}(e):O(e,u))}function R(e,u){const r=S(e),n=Math.min(function(e){const u=S(e);let r=0;return t.traverse(u,{Group(e){_(e.node)&&r++}}),r}(r),u||1/0),d=[];let a=0,s=!1;return t.traverse(r,k({every:{pre:({node:e,parent:u})=>e===r||!!A(e)&&(u===r&&(s=!1),a<n),post({node:e,parent:u}){e!==r&&u===r&&A(e)&&(s||a>0&&a<n)&&d.push(e)}},Group:e=>!(_(e.node)&&a<n&&(s=!0,a++,1))})),1!==d.length||_(d[0])?d:R(d[0],n)}function N(e,u,r){const{allowHigherVersions:n}=r,d=S(e),a=n&&u.length?[u[0]]:u,s=a.reduce(((e,u)=>Math.max(e,function(e,u){const{ignoreMinor:r,ignorePatch:n,allowZeroSubversions:d}=u;let t=r?1:n?2:3;if(d)for(let u=t-1;u>0&&0===e[u]&&1!==t;u--)t--;return t}(u,r))),1),i=R(d,s),f=y(...a.map((e=>function(e,u){const{ignoreMinor:r,ignorePatch:n,allowHigherVersions:d}=u,t=e[0]===1/0?0:r?1:n?2:3;if(d){const u=[];let r=!0,n=0,d=0;const a=e=>(u,r)=>r>=t?C():(d=Array.isArray(u)?u[0]:u,r<e?B(d):r>e?C():T(d+n));for(let d=t-1;d>=0;d--)r&&!e[d]||(r=!1,u.push(e.map(a(d))),n=1);return u}return[e.map(((e,u)=>u>=t?C():Array.isArray(e)?T(e[0],e[1]):B(e)))]}(e,r).map((e=>function(e,u,r){let n=S(e);const d="number"==typeof r&&r<u.length?u.slice(0,r):u.slice();return t.traverse(n,k({every:()=>Boolean(d.length),Group:e=>!_(e.node)||!d.length||(n===e.node?n=d.shift():e.replace(d.shift()),!1)})),n}(v(c(i)),e,s))))));return t.traverse(d,k({every:e=>!!i.length&&(e.node===i[0]&&(1===i.length?e.replace(f):e.remove(),i.shift()),!0)})),d}const L={ignoreMinor:!1,ignorePatch:!0,allowZeroSubversions:!1,allowHigherVersions:!1};function F(e={}){const u={...L,...e};return function(e,u){return e.map((({regex:e,version:r,maxVersion:d,matchedVersions:t,...a})=>{let i=S(e);return r||(i=N(i,function(e){if(e.length<2)return e;const u=e.length+1,r=[];let d=null,t=e[0],a=[t[n.Major]],i=[t[n.Minor]],f=[t[n.Patch]],c=null;for(let l=1;l<u;l++){d=e[l-1],t=e[l]||[];for(let e=n.Major;e<=n.Patch;e++){if((e===c||null===c)&&d[e]+1===t[e]&&o(d,t,e+1)){c=e,e===n.Major?a.push(t[n.Major]):a=t[n.Major],e===n.Minor?i.push(t[n.Minor]):i=t[n.Minor],e===n.Patch?f.push(t[n.Patch]):f=t[n.Patch];break}if(c===e||d[e]!==t[e]){r.push([s(a),s(i),s(f)]),a=[t[n.Major]],i=[t[n.Minor]],f=[t[n.Patch]],c=null;break}}}return r}(t),{...u,allowHigherVersions:!d&&u.allowHigherVersions})),{regex:null,sourceRegex:e,regexAst:i,version:r,maxVersion:d,matchedVersions:t,...a}}))}(function(e,u,r=a.A){const n=[];let d="",t=!1;return r.forEach((r=>{const a=e.get(r.family);if(!a)return;let{version:s,minVersion:i,maxVersion:o}=r;s&&(i=s,o=s);let c=function(e,u,r,n){const d={...n,allowHigherVersions:!0},t=u=>f(u,e,d),a=e=>f(u,e,d),s=e&&u?e=>t(e)&&a(e):e?t:u?a:()=>!0;return r.filter(s)}(i,o,a,u);c.length&&(d===r.family&&t&&(s=void 0,i=void 0,o=void 0,c=a,n.pop()),n.push({...r,version:s,minVersion:i,maxVersion:o,requestVersions:a,matchedVersions:c})),t=!s&&!i&&!o,d=r.family})),n}(function(e){const u=new Map;return e.forEach((({family:e,version:r})=>{const n=u.get(e);if(n){const e=r.join(".");n.every((u=>u.join(".")!==e))&&n.push(r)}else u.set(e,[r])})),u.forEach((e=>{e.sort(((e,u)=>{for(const r in e)if(e[r]!==u[r])return e[r]-u[r];return 0}))})),u}(function(e={}){const{browsers:u,...r}=e;return d(u,r).reduce(((e,u)=>{const[r,n,d]=u.split(/ |-/),t=i(n);return(t?d?function(e,u){let r=0;const n=[];for(let n=2;n>=0;n--)if(e[n]!==u[n]){r=n;break}for(let d=e[r],t=u[r];d<=t;d++)n.push(e.map(((e,u)=>u===r?d:e)));return n}(t,i(d)):[t]:[]).reduce(((e,u)=>(u&&e.push({family:r,version:u}),e)),e)}),[])}(u)),u),u)}function I(e={}){return"string"==typeof(u=function(e){const u=t.optimize(S((r=e,"string"==typeof r?r:r instanceof RegExp?r.toString():t.generate(r)))).getAST();var r;return t.traverse(u,{Group(e){const{parent:u,node:r}=e,{expression:n}=r;r.capturing=!0,("RegExp"===u.type||"Disjunction"!==n.type&&"Repetition"!==u.type||"Disjunction"===n.type&&"Disjunction"===u.type)&&e.replace(e.node.expression)}}),u}({type:"RegExp",body:y(F(e).map((({regexAst:e})=>h(e.body)))),flags:""}))?new RegExp(u):new RegExp(t.generate(u.body),u.flags);var u}},20043:(e,u,r)=>{"use strict";r.d(u,{A:()=>n});const n=[{regex:/IE (\d+)\.(\d+)/,family:"ie",maxVersion:[7,1/0,1/0]},{regex:/Trident\/4\.0/,family:"ie",version:[8,0,0]},{regex:/Trident\/5\.0/,family:"ie",version:[9,0,0]},{regex:/Trident\/6\.0/,family:"ie",version:[10,0,0]},{regex:/Trident\/[78]\.0/,family:"ie",version:[11,0,0]},{regex:/Edge?\/(\d+)\.(\d+)(\.(\d+)|)/,family:"edge"},{regex:/Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"firefox"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"chrome"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/,family:"chrome",maxVersion:[70,1/0,1/0]},{regex:/(Maci|X11).+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//,family:"safari"},{regex:/Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/,family:"opera",maxVersion:[12,15,0]},{regex:/Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"opera",minVersion:[15,0,0]},{regex:/(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf"},{regex:/[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf",version:[7,0,3]},{regex:/Opera Mini/,family:"op_mini"},{regex:/Android Donut/,family:"android",version:[1,2,0]},{regex:/Android Eclair/,family:"android",version:[2,1,0]},{regex:/Android Froyo/,family:"android",version:[2,2,0]},{regex:/Android Gingerbread/,family:"android",version:[2,3,0]},{regex:/Android Honeycomb/,family:"android",version:[3,0,0]},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"android"},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/,family:"android",version:[4,0,0]},{regex:/PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/,family:"op_mob",maxVersion:[12,16,0]},{regex:/Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"op_mob",minVersion:[14,0,0]},{regex:/Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_ff"},{regex:/Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_chr"},{regex:/IEMobile[ /](\d+)\.(\d+)/,family:"ie_mob"},{regex:/Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/,family:"and_uc"},{regex:/SamsungBrowser\/(\d+)\.(\d+)/,family:"samsung"},{regex:/Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"and_qq"},{regex:/baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"baidu"},{regex:/K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/,family:"kaios"}]},73909:e=>{"use strict";e.exports=JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.17.0","date":"2023-07-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.18.0","date":"2023-09-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.19.0","date":"2023-11-29","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.20.0","date":"2024-03-26","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.5.0","date":"2023-07-19","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.6.0","date":"2023-08-23","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.7.0","date":"2023-09-18","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.8.0","date":"2023-09-28","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.9.0","date":"2023-10-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.10.0","date":"2023-11-22","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.11.0","date":"2024-01-09","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.12.0","date":"2024-03-26","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.13.0","date":"2024-05-07","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.14.0","date":"2024-05-28","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.15.0","date":"2024-06-20","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.16.0","date":"2024-07-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.17.0","date":"2024-08-21","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.18.0","date":"2024-10-03","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"21.0.0","date":"2023-10-17","lts":false,"security":false,"v8":"11.8.172.13"},{"name":"nodejs","version":"21.1.0","date":"2023-10-24","lts":false,"security":false,"v8":"11.8.172.15"},{"name":"nodejs","version":"21.2.0","date":"2023-11-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.3.0","date":"2023-11-30","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.4.0","date":"2023-12-05","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.5.0","date":"2023-12-19","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.6.0","date":"2024-01-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.7.0","date":"2024-03-06","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"22.0.0","date":"2024-04-24","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.1.0","date":"2024-05-02","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.2.0","date":"2024-05-15","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.3.0","date":"2024-06-11","lts":false,"security":false,"v8":"12.4.254.20"},{"name":"nodejs","version":"22.4.0","date":"2024-07-02","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.5.0","date":"2024-07-17","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.6.0","date":"2024-08-06","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.7.0","date":"2024-08-21","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.8.0","date":"2024-09-03","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.9.0","date":"2024-09-17","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.10.0","date":"2024-10-16","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.11.0","date":"2024-10-29","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.12.0","date":"2024-12-02","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"23.0.0","date":"2024-10-16","lts":false,"security":false,"v8":"12.9.202.26"},{"name":"nodejs","version":"23.1.0","date":"2024-10-24","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.2.0","date":"2024-11-11","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.3.0","date":"2024-11-20","lts":false,"security":false,"v8":"12.9.202.28"}]')},93147:e=>{"use strict";e.exports=JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":"Iron"},"v21":{"start":"2023-10-17","maintenance":"2024-04-01","end":"2024-06-01"},"v22":{"start":"2024-04-24","lts":"2024-10-29","maintenance":"2025-10-21","end":"2027-04-30","codename":"Jod"},"v23":{"start":"2024-10-16","maintenance":"2025-04-01","end":"2025-06-01"},"v24":{"start":"2025-04-22","lts":"2025-10-28","maintenance":"2026-10-20","end":"2028-04-30","codename":""}}')}}]); +//# sourceMappingURL=7883-7883.js.map?v=e3fe4aa37dc59d0f9e90
\ No newline at end of file diff --git a/dist/7883-7883.js.license b/dist/7883-7883.js.license index ff05c4e99b1..d415ab650ea 100644 --- a/dist/7883-7883.js.license +++ b/dist/7883-7883.js.license @@ -59,13 +59,13 @@ This file is generated from multiple sources. Included packages: - version: 4.1.3 - license: MIT - browserslist - - version: 4.23.3 + - version: 4.24.4 - license: MIT - call-bind - version: 1.0.7 - license: MIT - caniuse-lite - - version: 1.0.30001647 + - version: 1.0.30001700 - license: CC-BY-4.0 - console-browserify - version: 1.2.0 @@ -77,7 +77,7 @@ This file is generated from multiple sources. Included packages: - version: 1.2.1 - license: MIT - electron-to-chromium - - version: 1.5.4 + - version: 1.5.103 - license: ISC - es-define-property - version: 1.0.0 @@ -137,7 +137,7 @@ This file is generated from multiple sources. Included packages: - version: 6.0.3 - license: MIT - node-releases - - version: 2.0.18 + - version: 2.0.19 - license: MIT - object-is - version: 1.1.6 diff --git a/dist/7883-7883.js.map b/dist/7883-7883.js.map index 84dcb761d53..a31c90ebef4 100644 --- a/dist/7883-7883.js.map +++ b/dist/7883-7883.js.map @@ -1 +1 @@ -{"version":3,"file":"7883-7883.js?v=c0c28c3b24eedff40f45","mappings":"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CP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MA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KAAM,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,KAAM,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,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G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAM,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,QAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAA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","sources":["webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js"],"sourcesContent":["module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseLatestFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseLatestFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n\n function parseLatestFloat(v) {\n return parseFloat(v.split('-')[1] || v)\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var iMax = data.released.length - 1\n while (iMax >= 0) {\n if (data.released[iMax] in features[name]) break\n iMax--\n }\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released[iMax]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115', 'firefox 128']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{K:0,E:0,F:0.0300576,G:0.0601152,A:0,B:0.541037,bC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"bC\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{bC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{\"1\":0.007426,\"2\":0.014852,\"3\":0.011139,\"4\":0.007426,\"5\":0.007426,\"6\":0.011139,\"7\":0.007426,\"8\":0.014852,\"9\":0.03713,C:0,L:0,M:0,H:0,N:0,O:0.003713,P:0.03713,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0.011139,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0.003713,r:0.007426,s:0.063121,t:0.007426,u:0.007426,AB:0.018565,BB:0.044556,CB:0.059408,DB:0.133668,EB:2.41716,FB:2.03844,D:0.007426},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"D\",\"\",\"\",\"\"],E:\"Edge\",F:{\"1\":1680825600,\"2\":1683158400,\"3\":1685664000,\"4\":1689897600,\"5\":1692576000,\"6\":1694649600,\"7\":1697155200,\"8\":1698969600,\"9\":1701993600,C:1438128000,L:1447286400,M:1470096000,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,AB:1706227200,BB:1708732800,CB:1711152000,DB:1713398400,EB:1715990400,FB:1718841600,D:1721865600},D:{C:\"ms\",L:\"ms\",M:\"ms\",H:\"ms\",N:\"ms\",O:\"ms\",P:\"ms\"}},C:{A:{\"0\":0,\"1\":0,\"2\":0.014852,\"3\":0,\"4\":0.367587,\"5\":0,\"6\":0.007426,\"7\":0.070547,\"8\":0,\"9\":0.007426,cC:0,DC:0,J:0.003713,GB:0,K:0,E:0,F:0,G:0,A:0,B:0.018565,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0.003713,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0.007426,aB:0.007426,bB:0.007426,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0.051982,jB:0.003713,kB:0.003713,lB:0,mB:0.018565,nB:0,oB:0,EC:0.003713,pB:0,FC:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0.014852,Q:0,I:0,R:0,GC:0,S:0,T:0,U:0,V:0,W:0,X:0.007426,Y:0,Z:0,a:0,b:0,c:0,d:0.003713,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0.007426,m:0.007426,n:0,o:0,p:0,q:0,r:0.003713,s:0.007426,t:0,u:0,AB:0.007426,BB:0.007426,CB:0.011139,DB:0.018565,EB:0.029704,FB:0.790869,D:0.794582,HC:0.007426,IC:0,JC:0,dC:0,eC:0,fC:0},B:\"moz\",C:[\"cC\",\"DC\",\"eC\",\"fC\",\"J\",\"GB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"HB\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"EC\",\"pB\",\"FC\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"Q\",\"I\",\"R\",\"GC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"D\",\"HC\",\"IC\",\"JC\",\"dC\"],E:\"Firefox\",F:{\"0\":1379376000,\"1\":1681171200,\"2\":1683590400,\"3\":1686009600,\"4\":1688428800,\"5\":1690848000,\"6\":1693267200,\"7\":1695686400,\"8\":1698105600,\"9\":1700524800,cC:1161648000,DC:1213660800,eC:1246320000,fC:1264032000,J:1300752000,GB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112000,O:1349740800,P:1353628800,HB:1357603200,v:1361232000,w:1364860800,x:1368489600,y:1372118400,z:1375747200,IB:1386633600,JB:1391472000,KB:1395100800,LB:1398729600,MB:1402358400,NB:1405987200,OB:1409616000,PB:1413244800,QB:1417392000,RB:1421107200,SB:1424736000,TB:1428278400,UB:1431475200,VB:1435881600,WB:1439251200,XB:1442880000,YB:1446508800,ZB:1450137600,aB:1453852800,bB:1457395200,cB:1461628800,dB:1465257600,eB:1470096000,fB:1474329600,gB:1479168000,hB:1485216000,iB:1488844800,jB:1492560000,kB:1497312000,lB:1502150400,mB:1506556800,nB:1510617600,oB:1516665600,EC:1520985600,pB:1525824000,FC:1529971200,qB:1536105600,rB:1540252800,sB:1544486400,tB:1548720000,uB:1552953600,vB:1558396800,wB:1562630400,xB:1567468800,yB:1571788800,zB:1575331200,\"0B\":1578355200,\"1B\":1581379200,\"2B\":1583798400,\"3B\":1586304000,\"4B\":1588636800,\"5B\":1591056000,\"6B\":1593475200,Q:1595894400,I:1598313600,R:1600732800,GC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752000,AB:1702944000,BB:1705968000,CB:1708387200,DB:1710806400,EB:1713225600,FB:1715644800,D:1718064000,HC:1720483200,IC:null,JC:null,dC:null}},D:{A:{\"0\":0,\"1\":0.044556,\"2\":0.096538,\"3\":0.092825,\"4\":0.029704,\"5\":0.189363,\"6\":0.107677,\"7\":0.081686,\"8\":0.066834,\"9\":0.133668,J:0,GB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0.003713,RB:0,SB:0,TB:0,UB:0.011139,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0.007426,eB:0.025991,fB:0.022278,gB:0.011139,hB:0,iB:0.003713,jB:0.007426,kB:0,lB:0,mB:0.011139,nB:0,oB:0.003713,EC:0,pB:0,FC:0.003713,qB:0,rB:0.003713,sB:0,tB:0,uB:0.022278,vB:0.003713,wB:0,xB:0.022278,yB:0.070547,zB:0.003713,\"0B\":0,\"1B\":0.011139,\"2B\":0.007426,\"3B\":0.007426,\"4B\":0.007426,\"5B\":0.029704,\"6B\":0.018565,Q:0.107677,I:0.011139,R:0.018565,S:0.033417,T:0.007426,U:0.011139,V:0.044556,W:0.070547,X:0.011139,Y:0.011139,Z:0.014852,a:0.059408,b:0.018565,c:0.025991,d:0.059408,e:0.011139,f:0.014852,g:0.018565,h:0.070547,i:0.03713,j:0.040843,k:0.055695,l:0.03713,m:0.167085,n:0.096538,o:0.014852,p:0.033417,q:0.033417,r:0.051982,s:1.4852,t:0.159659,u:0.040843,AB:0.211641,BB:0.181937,CB:0.278475,DB:0.983945,EB:10.1922,FB:6.28982,D:0.025991,HC:0.007426,IC:0,JC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"GB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"HB\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"EC\",\"pB\",\"FC\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"D\",\"HC\",\"IC\",\"JC\"],E:\"Chrome\",F:{\"0\":1357862400,\"1\":1680566400,\"2\":1682985600,\"3\":1685404800,\"4\":1689724800,\"5\":1692057600,\"6\":1694476800,\"7\":1696896000,\"8\":1698710400,\"9\":1701993600,J:1264377600,GB:1274745600,K:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,HB:1332892800,v:1337040000,w:1340668800,x:1343692800,y:1348531200,z:1352246400,IB:1361404800,JB:1364428800,KB:1369094400,LB:1374105600,MB:1376956800,NB:1384214400,OB:1389657600,PB:1392940800,QB:1397001600,RB:1400544000,SB:1405468800,TB:1409011200,UB:1412640000,VB:1416268800,WB:1421798400,XB:1425513600,YB:1429401600,ZB:1432080000,aB:1437523200,bB:1441152000,cB:1444780800,dB:1449014400,eB:1453248000,fB:1456963200,gB:1460592000,hB:1464134400,iB:1469059200,jB:1472601600,kB:1476230400,lB:1480550400,mB:1485302400,nB:1489017600,oB:1492560000,EC:1496707200,pB:1500940800,FC:1504569600,qB:1508198400,rB:1512518400,sB:1516752000,tB:1520294400,uB:1523923200,vB:1527552000,wB:1532390400,xB:1536019200,yB:1539648000,zB:1543968000,\"0B\":1548720000,\"1B\":1552348800,\"2B\":1555977600,\"3B\":1559606400,\"4B\":1564444800,\"5B\":1568073600,\"6B\":1571702400,Q:1575936000,I:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656000,r:1669680000,s:1673308800,t:1675728000,u:1678147200,AB:1705968000,BB:1708387200,CB:1710806400,DB:1713225600,EB:1715644800,FB:1718064000,D:1721174400,HC:null,IC:null,JC:null}},E:{A:{J:0,GB:0,K:0,E:0,F:0.003713,G:0.003713,A:0,B:0,C:0,L:0.007426,M:0.033417,H:0.007426,gC:0,KC:0,hC:0,iC:0,jC:0,kC:0,LC:0,\"7B\":0.007426,\"8B\":0.011139,lC:0.063121,mC:0.089112,nC:0.025991,MC:0.011139,NC:0.022278,\"9B\":0.033417,oC:0.241345,AC:0.029704,OC:0.044556,PC:0.03713,QC:0.089112,RC:0.033417,SC:0.055695,pC:0.33417,BC:0.025991,TC:0.055695,UC:0.066834,VC:0.07426,WC:0.360161,XC:1.48891,YC:0,CC:0.003713,qC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"gC\",\"KC\",\"J\",\"GB\",\"hC\",\"K\",\"iC\",\"E\",\"jC\",\"F\",\"G\",\"kC\",\"A\",\"LC\",\"B\",\"7B\",\"C\",\"8B\",\"L\",\"lC\",\"M\",\"mC\",\"H\",\"nC\",\"MC\",\"NC\",\"9B\",\"oC\",\"AC\",\"OC\",\"PC\",\"QC\",\"RC\",\"SC\",\"pC\",\"BC\",\"TC\",\"UC\",\"VC\",\"WC\",\"XC\",\"YC\",\"CC\",\"qC\"],E:\"Safari\",F:{gC:1205798400,KC:1226534400,J:1244419200,GB:1275868800,hC:1311120000,K:1343174400,iC:1382400000,E:1382400000,jC:1410998400,F:1413417600,G:1443657600,kC:1458518400,A:1474329600,LC:1490572800,B:1505779200,\"7B\":1522281600,C:1537142400,\"8B\":1553472000,L:1568851200,lC:1585008000,M:1600214400,mC:1619395200,H:1632096000,nC:1635292800,MC:1639353600,NC:1647216000,\"9B\":1652745600,oC:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432000,RC:1679875200,SC:1684368000,pC:1690156800,BC:1695686400,TC:1698192000,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null,qC:null}},F:{A:{\"0\":0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.003713,TB:0,UB:0,VB:0,WB:0.003713,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0.014852,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,Q:0,I:0,R:0,GC:0,S:0.007426,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.040843,f:0,g:0,h:0,i:0,j:0,k:0,l:0.044556,m:0,n:0,o:0,p:0,q:0.003713,r:0,s:0.497542,t:0.326744,u:0.048269,rC:0,sC:0,tC:0,uC:0,\"7B\":0,ZC:0,vC:0,\"8B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"G\",\"rC\",\"sC\",\"tC\",\"uC\",\"B\",\"7B\",\"ZC\",\"vC\",\"C\",\"8B\",\"H\",\"N\",\"O\",\"P\",\"HB\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"Q\",\"I\",\"R\",\"GC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"\",\"\",\"\"],E:\"Opera\",F:{\"0\":1413331200,G:1150761600,rC:1223424000,sC:1251763200,tC:1267488000,uC:1277942400,B:1292457600,\"7B\":1302566400,ZC:1309219200,vC:1323129600,C:1323129600,\"8B\":1352073600,H:1372723200,N:1377561600,O:1381104000,P:1386288000,HB:1390867200,v:1393891200,w:1399334400,x:1401753600,y:1405987200,z:1409616000,IB:1417132800,JB:1422316800,KB:1425945600,LB:1430179200,MB:1433808000,NB:1438646400,OB:1442448000,PB:1445904000,QB:1449100800,RB:1454371200,SB:1457308800,TB:1462320000,UB:1465344000,VB:1470096000,WB:1474329600,XB:1477267200,YB:1481587200,ZB:1486425600,aB:1490054400,bB:1494374400,cB:1498003200,dB:1502236800,eB:1506470400,fB:1510099200,gB:1515024000,hB:1517961600,iB:1521676800,jB:1525910400,kB:1530144000,lB:1534982400,mB:1537833600,nB:1543363200,oB:1548201600,pB:1554768000,qB:1561593600,rB:1566259200,sB:1570406400,tB:1573689600,uB:1578441600,vB:1583971200,wB:1587513600,xB:1592956800,yB:1595894400,zB:1600128000,\"0B\":1603238400,\"1B\":1613520000,\"2B\":1612224000,\"3B\":1616544000,\"4B\":1619568000,\"5B\":1623715200,\"6B\":1627948800,Q:1631577600,I:1633392000,R:1635984000,GC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000,q:1707264000,r:1710115200,s:1711497600,t:1716336000,u:1719273600},D:{G:\"o\",B:\"o\",C:\"o\",rC:\"o\",sC:\"o\",tC:\"o\",uC:\"o\",\"7B\":\"o\",ZC:\"o\",vC:\"o\",\"8B\":\"o\"}},G:{A:{F:0,KC:0,wC:0,aC:0.00284927,xC:0.00142463,yC:0.00854781,zC:0.00854781,\"0C\":0.00142463,\"1C\":0.00712317,\"2C\":0.0299173,\"3C\":0.00569854,\"4C\":0.0512868,\"5C\":0.108272,\"6C\":0.0128217,\"7C\":0.00997244,\"8C\":0.189476,\"9C\":0.00284927,AD:0.0185202,BD:0.00997244,CD:0.0370405,DD:0.105423,ED:0.112546,FD:0.0569854,MC:0.0612593,NC:0.0698071,\"9B\":0.0840534,GD:0.755056,AC:0.169531,OC:0.354734,PC:0.173805,QC:0.299173,RC:0.0641085,SC:0.126792,HD:1.01149,BC:0.103998,TC:0.165258,UC:0.166682,VC:0.274954,WC:1.95317,XC:7.56766,YC:0.0128217,CC:0.0384651},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"KC\",\"wC\",\"aC\",\"xC\",\"yC\",\"zC\",\"F\",\"0C\",\"1C\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"7C\",\"8C\",\"9C\",\"AD\",\"BD\",\"CD\",\"DD\",\"ED\",\"FD\",\"MC\",\"NC\",\"9B\",\"GD\",\"AC\",\"OC\",\"PC\",\"QC\",\"RC\",\"SC\",\"HD\",\"BC\",\"TC\",\"UC\",\"VC\",\"WC\",\"XC\",\"YC\",\"CC\",\"\"],E:\"Safari on iOS\",F:{KC:1270252800,wC:1283904000,aC:1299628800,xC:1331078400,yC:1359331200,zC:1394409600,F:1410912000,\"0C\":1413763200,\"1C\":1442361600,\"2C\":1458518400,\"3C\":1473724800,\"4C\":1490572800,\"5C\":1505779200,\"6C\":1522281600,\"7C\":1537142400,\"8C\":1553472000,\"9C\":1568851200,AD:1572220800,BD:1580169600,CD:1585008000,DD:1600214400,ED:1619395200,FD:1632096000,MC:1639353600,NC:1647216000,\"9B\":1652659200,GD:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432000,RC:1679875200,SC:1684368000,HD:1690156800,BC:1694995200,TC:1698192000,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null}},H:{A:{ID:0.05},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"ID\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{ID:1426464000}},I:{A:{DC:0,J:0.0000653848,D:0.651756,JD:0,KD:0,LD:0,MD:0.00013077,aC:0.000326924,ND:0,OD:0.00117693},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"JD\",\"KD\",\"LD\",\"DC\",\"J\",\"MD\",\"aC\",\"ND\",\"OD\",\"D\",\"\",\"\",\"\"],E:\"Android Browser\",F:{JD:1256515200,KD:1274313600,LD:1291593600,DC:1298332800,J:1318896000,MD:1341792000,aC:1374624000,ND:1386547200,OD:1401667200,D:1721692800}},J:{A:{E:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,I:1.12567,\"7B\":0,ZC:0,\"8B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"7B\",\"ZC\",\"C\",\"8B\",\"I\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,\"7B\":1314835200,ZC:1318291200,C:1330300800,\"8B\":1349740800,I:1709769600},D:{I:\"webkit\"}},L:{A:{D:43.5971},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{D:1721692800}},M:{A:{D:0.333211},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{D:1718064000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"9B\":0.993346},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"9B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"9B\":1710115200},D:{\"9B\":\"webkit\"}},P:{A:{\"0\":2.06723,J:0.0969013,v:0.0215336,w:0.053834,x:0.0646008,y:0.0861344,z:0.107668,PD:0.0107668,QD:0.0107668,RD:0.0430672,SD:0,TD:0,LC:0,UD:0.0107668,VD:0,WD:0.0107668,XD:0,YD:0,AC:0,BC:0.0215336,CC:0.0107668,ZD:0.0215336},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"PD\",\"QD\",\"RD\",\"SD\",\"TD\",\"LC\",\"UD\",\"VD\",\"WD\",\"XD\",\"YD\",\"AC\",\"BC\",\"CC\",\"ZD\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{\"0\":1715126400,J:1461024000,PD:1481846400,QD:1509408000,RD:1528329600,SD:1546128000,TD:1554163200,LC:1567900800,UD:1582588800,VD:1593475200,WD:1605657600,XD:1618531200,YD:1629072000,AC:1640736000,BC:1651708800,CC:1659657600,ZD:1667260800,v:1677369600,w:1684454400,x:1689292800,y:1697587200,z:1711497600}},Q:{A:{aD:0.31435},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"aD\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{aD:1710288000}},R:{A:{bD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"bD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{bD:1710201600}},S:{A:{cD:0.081731,dD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"cD\",\"dD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{cD:1527811200,dD:1631664000}}};\n","module.exports={\"0\":\"25\",\"1\":\"112\",\"2\":\"113\",\"3\":\"114\",\"4\":\"115\",\"5\":\"116\",\"6\":\"117\",\"7\":\"118\",\"8\":\"119\",\"9\":\"120\",A:\"10\",B:\"11\",C:\"12\",D:\"127\",E:\"7\",F:\"8\",G:\"9\",H:\"15\",I:\"80\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"17\",P:\"18\",Q:\"79\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"107\",r:\"108\",s:\"109\",t:\"110\",u:\"111\",v:\"20\",w:\"21\",x:\"22\",y:\"23\",z:\"24\",AB:\"121\",BB:\"122\",CB:\"123\",DB:\"124\",EB:\"125\",FB:\"126\",GB:\"5\",HB:\"19\",IB:\"26\",JB:\"27\",KB:\"28\",LB:\"29\",MB:\"30\",NB:\"31\",OB:\"32\",PB:\"33\",QB:\"34\",RB:\"35\",SB:\"36\",TB:\"37\",UB:\"38\",VB:\"39\",WB:\"40\",XB:\"41\",YB:\"42\",ZB:\"43\",aB:\"44\",bB:\"45\",cB:\"46\",dB:\"47\",eB:\"48\",fB:\"49\",gB:\"50\",hB:\"51\",iB:\"52\",jB:\"53\",kB:\"54\",lB:\"55\",mB:\"56\",nB:\"57\",oB:\"58\",pB:\"60\",qB:\"62\",rB:\"63\",sB:\"64\",tB:\"65\",uB:\"66\",vB:\"67\",wB:\"68\",xB:\"69\",yB:\"70\",zB:\"71\",\"0B\":\"72\",\"1B\":\"73\",\"2B\":\"74\",\"3B\":\"75\",\"4B\":\"76\",\"5B\":\"77\",\"6B\":\"78\",\"7B\":\"11.1\",\"8B\":\"12.1\",\"9B\":\"15.5\",AC:\"16.0\",BC:\"17.0\",CC:\"18.0\",DC:\"3\",EC:\"59\",FC:\"61\",GC:\"82\",HC:\"128\",IC:\"129\",JC:\"130\",KC:\"3.2\",LC:\"10.1\",MC:\"15.2-15.3\",NC:\"15.4\",OC:\"16.1\",PC:\"16.2\",QC:\"16.3\",RC:\"16.4\",SC:\"16.5\",TC:\"17.1\",UC:\"17.2\",VC:\"17.3\",WC:\"17.4\",XC:\"17.5\",YC:\"17.6\",ZC:\"11.5\",aC:\"4.2-4.3\",bC:\"5.5\",cC:\"2\",dC:\"131\",eC:\"3.5\",fC:\"3.6\",gC:\"3.1\",hC:\"5.1\",iC:\"6.1\",jC:\"7.1\",kC:\"9.1\",lC:\"13.1\",mC:\"14.1\",nC:\"15.1\",oC:\"15.6\",pC:\"16.6\",qC:\"TP\",rC:\"9.5-9.6\",sC:\"10.0-10.1\",tC:\"10.5\",uC:\"10.6\",vC:\"11.6\",wC:\"4.0-4.1\",xC:\"5.0-5.1\",yC:\"6.0-6.1\",zC:\"7.0-7.1\",\"0C\":\"8.1-8.4\",\"1C\":\"9.0-9.2\",\"2C\":\"9.3\",\"3C\":\"10.0-10.2\",\"4C\":\"10.3\",\"5C\":\"11.0-11.2\",\"6C\":\"11.3-11.4\",\"7C\":\"12.0-12.1\",\"8C\":\"12.2-12.5\",\"9C\":\"13.0-13.1\",AD:\"13.2\",BD:\"13.3\",CD:\"13.4-13.7\",DD:\"14.0-14.4\",ED:\"14.5-14.8\",FD:\"15.0-15.1\",GD:\"15.6-15.8\",HD:\"16.6-16.7\",ID:\"all\",JD:\"2.1\",KD:\"2.2\",LD:\"2.3\",MD:\"4.1\",ND:\"4.4\",OD:\"4.4.3-4.4.4\",PD:\"5.0-5.4\",QD:\"6.2-6.4\",RD:\"7.2-7.4\",SD:\"8.2\",TD:\"9.2\",UD:\"11.1-11.2\",VD:\"12.0\",WD:\"13.0\",XD:\"14.0\",YD:\"15.0\",ZD:\"19.0\",aD:\"14.9\",bD:\"13.52\",cD:\"2.5\",dD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"28.3\": \"120\",\n\t\"29.0\": \"122\",\n\t\"29.1\": \"122\",\n\t\"29.2\": \"122\",\n\t\"29.3\": \"122\",\n\t\"29.4\": \"122\",\n\t\"30.0\": \"124\",\n\t\"30.1\": \"124\",\n\t\"30.2\": \"124\",\n\t\"30.3\": \"124\",\n\t\"31.0\": \"126\",\n\t\"31.1\": \"126\",\n\t\"31.2\": \"126\",\n\t\"31.3\": \"126\",\n\t\"32.0\": \"128\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?<name>a)\\k<name>/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?<!' + _assertion + ')';\n }\n\n return '(?<=' + _assertion + ')';\n }\n\n default:\n throw new TypeError('Unknown Assertion kind: ' + node.kind);\n }\n },\n CharacterClass: function CharacterClass(node) {\n var expressions = node.expressions.map(gen).join('');\n\n if (node.negative) {\n return '[^' + expressions + ']';\n }\n\n return '[' + expressions + ']';\n },\n ClassRange: function ClassRange(node) {\n return gen(node.from) + '-' + gen(node.to);\n },\n Repetition: function Repetition(node) {\n return '' + gen(node.expression) + gen(node.quantifier);\n },\n Quantifier: function Quantifier(node) {\n var quantifier = void 0;\n var greedy = node.greedy ? '' : '?';\n\n switch (node.kind) {\n case '+':\n case '?':\n case '*':\n quantifier = node.kind;\n break;\n case 'Range':\n // Exact: {1}\n if (node.from === node.to) {\n quantifier = '{' + node.from + '}';\n }\n // Open: {1,}\n else if (!node.to) {\n quantifier = '{' + node.from + ',}';\n }\n // Closed: {1,3}\n else {\n quantifier = '{' + node.from + ',' + node.to + '}';\n }\n break;\n default:\n throw new TypeError('Unknown Quantifier kind: ' + node.kind);\n }\n\n return '' + quantifier + greedy;\n },\n Char: function Char(node) {\n var value = node.value;\n\n switch (node.kind) {\n case 'simple':\n {\n if (node.escaped) {\n return '\\\\' + value;\n }\n return value;\n }\n\n case 'hex':\n case 'unicode':\n case 'oct':\n case 'decimal':\n case 'control':\n case 'meta':\n return value;\n\n default:\n throw new TypeError('Unknown Char kind: ' + node.kind);\n }\n },\n UnicodeProperty: function UnicodeProperty(node) {\n var escapeChar = node.negative ? 'P' : 'p';\n var namePart = void 0;\n\n if (!node.shorthand && !node.binary) {\n namePart = node.name + '=';\n } else {\n namePart = '';\n }\n\n return '\\\\' + escapeChar + '{' + namePart + node.value + '}';\n }\n};\n\nmodule.exports = {\n /**\n * Generates a regexp string from an AST.\n *\n * @param Object ast - an AST node\n */\n generate: gen\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode <parsing-mode> \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\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\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\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\\u0af9\\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-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?<!/, function () {\n return 'NEG_LB_ASSERT';\n}], [/^\\(\\?:/, function () {\n return 'NON_CAPTURE_GROUP';\n}], [/^\\(\\?<(([\\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\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\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\\u0af9\\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-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k<foo>` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k<foo>` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array<Object> handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array<Object> handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array<Object>:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array<Object> handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB && diffA === \"\" && diffB === \"\") {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n * GNOME Web (X11) is based on WebKit and should be detected as Safari\n */\n {\n regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n"],"names":["module","exports","user","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","detectUser","getBuilder","clearOnLogout","persist","supportedBrowsersRegExp","getUserAgentRegex","allowHigherVersions","browsers","browserslistConfig","browserslist","redirectPath","generateUrl","isBrowserOverridden","browserStorage","getItem","testSupportedBrowser","test","navigator","userAgent","logger","debug","window","location","pathname","indexOf","redirectUrl","href","replace","origin","base64Param","Buffer","from","toString","history","pushState","reload","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","this","name","Error","captureStackTrace","prototype","jsReleases","agents","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","normalize","versions","filter","version","normalizeElectron","versionToUse","split","length","slice","join","nameMapper","getMajor","parseInt","getMajorVersions","released","number","majorVersions","uniq","map","minimum","selected","i","unshift","array","filtered","push","fillUsage","result","data","generateFilter","sign","parseFloat","v","parseLatestFloat","parseSimpleInt","x","compare","a","b","compareSemver","semverFilterLoose","operator","range","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","Object","keys","reduce","byName","releaseDate","date","concat","cloneData","toLowerCase","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","obj","copy","key","copyObject","forEach","undefined","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","list","nVersions","jump","op_mob","isSupported","flags","withPartial","queries","QUERIES","node","index","not","query","type","select","call","j","parts","compose","prepareOpts","prepareQueries","defaults","checkQueries","Array","isArray","cache","ignoreUnknownVersions","dangerousExtend","browser","customUsage","cacheKey","JSON","stringify","sort","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","supportType","features","iMax","checkDesktop","electron_range","fromToUse","toToUse","to","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","start","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","n","max","substr","find","trim","block","A","K","E","F","G","B","bC","C","L","M","H","N","O","P","Q","I","R","S","T","U","V","W","X","Y","Z","c","d","e","f","g","h","k","l","m","o","p","q","r","s","t","u","AB","BB","CB","DB","EB","FB","D","cC","DC","J","GB","HB","w","y","z","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","EC","pB","FC","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","GC","HC","IC","JC","dC","eC","fC","gC","KC","hC","iC","jC","kC","LC","lC","mC","nC","MC","NC","oC","AC","OC","PC","QC","RC","SC","pC","BC","TC","UC","VC","WC","XC","YC","CC","qC","rC","sC","tC","uC","ZC","vC","wC","aC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","RD","SD","TD","UD","VD","WD","XD","YD","ZD","aD","bD","cD","dD","agentsData","unpackBrowserVersions","versionsData","entry","prefix_exceptions","map2","key2","prefix","browserVersions","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getAST","getExtra","setExtra","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","includes","ignoreCase","multiline","sticky","unicode","value","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","kind","toValue","toSymbol","expressions","symbol","_groupNames","init","Group","nameRaw","Backreference","reference","referenceRaw","RegExp","namedCapturingGroups","xFlag","gen","generator","body","Alternative","Disjunction","left","right","expression","capturing","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","quantifier","Quantifier","greedy","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","size","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","has","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","Number","add","set","current","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","Map","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","get","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","shift","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","clone","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","parent","isNaN","codePoint","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","Math","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","Infinity","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","remove","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","every","nNode","NaN","Boolean","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","String","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","part","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","options","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","pop","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","_","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","pre","post","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","nodePath","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","SemverPart","numbersToRanges","numbers","semverify","versionParts","versionPart","semverPart","semver","compareSemvers","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","compareMinor","comparePatch","compareArrays","len","items","AlternativeNode","exps","SimpleCharNode","ClassRangeNode","CharacterClassNode","CapturingGroupNode","DisjunctionCapturingGroupNode","expr","exprs","disjunction","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","isCharNode","isDigitRangeNode","isExpressionNode","parseRegex","regex","classes","visitors","newVisitors","className","visitor","visitorPre","visitorPost","numberToDigits","num","rayRangeDigitPattern","digit","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","min","splitToDecadeRanges","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","middleSegment","ri","patterns","prevNode","merged","exp","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","getNumberPatternsCount","numbersCounter","containsNumberPattern","applyVersionsToRegex","finalVersions","maxRequiredPartsCount","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","createMapper","rangedSemverToRegex","numbersToReplace","replaceNumberPatterns","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","maxVersion","matchedVersions","Major","Minor","Patch","versionsListToRanges","applyVersionsToRegexes","targetRegexes","prevFamily","prevRegexIsGlobal","requestVersions","family","minVersion","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","getRegexesForBrowsers","merge","strVersion","mergeBrowserVersions","browserslistOptions","versionString","versionStringTo","partIndex","i1","rangeSemver","getBrowsersList","src","optimizeRegex","regexes"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"7883-7883.js?v=e3fe4aa37dc59d0f9e90","mappings":"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O,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAA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","sources":["webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js"],"sourcesContent":["module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n findConfigFile: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar e2c = require('electron-to-chromium/versions')\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\n\nvar BrowserslistError = require('./error')\nvar env = require('./node')\nvar parseWithoutCache = require('./parse') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseLatestFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseLatestFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n\n function parseLatestFloat(v) {\n return parseFloat(v.split('-')[1] || v)\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parseQueries(queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\nvar parseCache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var needsPath = parseQueries(queries).some(function (node) {\n return QUERIES[node.type].needsPath\n })\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n env: opts.env\n }\n // Removing to avoid using context.path without marking query as needsPath\n if (needsPath) {\n context.path = opts.path\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nfunction parseQueries(queries) {\n var cacheKey = JSON.stringify(queries)\n if (cacheKey in parseCache) return parseCache[cacheKey]\n var result = parseWithoutCache(QUERIES, queries)\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n parseCache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parseQueries(queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfigFile = env.findConfigFile\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var iMax = data.released.length - 1\n while (iMax >= 0) {\n if (data.released[iMax] in features[name]) break\n iMax--\n }\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released[iMax]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 128']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n needsPath: true,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n needsPath: true,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var max = string.length, n = 1; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{K:0,E:0,F:0,G:0.033801,A:0,B:0.371811,kC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"kC\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{kC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{\"6\":0.003558,\"7\":0,\"8\":0.003558,\"9\":0.003558,C:0,L:0,M:0,H:0,N:0,O:0.003558,P:0.117414,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0.010674,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0.003558,s:0.049812,t:0,u:0.003558,v:0.007116,w:0.007116,x:0.010674,AB:0.003558,BB:0.021348,CB:0.010674,DB:0.014232,EB:0.007116,FB:0.010674,GB:0.010674,HB:0.021348,IB:0.021348,JB:0.01779,KB:0.021348,LB:0.067602,MB:2.88198,D:1.62245},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"D\",\"\",\"\",\"\"],E:\"Edge\",F:{\"6\":1689897600,\"7\":1692576000,\"8\":1694649600,\"9\":1697155200,C:1438128000,L:1447286400,M:1470096000,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,v:1680825600,w:1683158400,x:1685664000,AB:1698969600,BB:1701993600,CB:1706227200,DB:1708732800,EB:1711152000,FB:1713398400,GB:1715990400,HB:1718841600,IB:1721865600,JB:1724371200,KB:1726704000,LB:1729123200,MB:1731542400,D:1737417600},D:{C:\"ms\",L:\"ms\",M:\"ms\",H:\"ms\",N:\"ms\",O:\"ms\",P:\"ms\"}},C:{A:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0.234828,\"7\":0,\"8\":0,\"9\":0.085392,lC:0,IC:0,J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:0.021348,C:0,L:0,M:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0.007116,fB:0.003558,gB:0,hB:0,iB:0.003558,jB:0,kB:0,lB:0,mB:0,nB:0.028464,oB:0,pB:0,qB:0.003558,rB:0.014232,sB:0,tB:0,JC:0.003558,uB:0,KC:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,\"7B\":0,\"8B\":0,\"9B\":0,AC:0,BC:0.010674,Q:0,I:0,R:0,LC:0,S:0,T:0,U:0,V:0,W:0,X:0.003558,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0.007116,n:0,o:0,p:0,q:0,r:0,s:0.003558,t:0,u:0,v:0,w:0.007116,x:0,AB:0,BB:0.003558,CB:0.003558,DB:0,EB:0,FB:0,GB:0.01779,HB:0,IB:0.007116,JB:0.078276,KB:0.003558,LB:0.007116,MB:0.010674,D:0.021348,MC:0.49812,NC:1.02826,OC:0.007116,PC:0,mC:0,nC:0,oC:0,pC:0},B:\"moz\",C:[\"lC\",\"IC\",\"oC\",\"pC\",\"J\",\"NB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"OB\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"JC\",\"uB\",\"KC\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"AC\",\"BC\",\"Q\",\"I\",\"R\",\"LC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"D\",\"MC\",\"NC\",\"OC\",\"PC\",\"mC\",\"nC\"],E:\"Firefox\",F:{\"0\":1368489600,\"1\":1372118400,\"2\":1375747200,\"3\":1379376000,\"4\":1386633600,\"5\":1391472000,\"6\":1688428800,\"7\":1690848000,\"8\":1693267200,\"9\":1695686400,lC:1161648000,IC:1213660800,oC:1246320000,pC:1264032000,J:1300752000,NB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112000,O:1349740800,P:1353628800,OB:1357603200,y:1361232000,z:1364860800,PB:1395100800,QB:1398729600,RB:1402358400,SB:1405987200,TB:1409616000,UB:1413244800,VB:1417392000,WB:1421107200,XB:1424736000,YB:1428278400,ZB:1431475200,aB:1435881600,bB:1439251200,cB:1442880000,dB:1446508800,eB:1450137600,fB:1453852800,gB:1457395200,hB:1461628800,iB:1465257600,jB:1470096000,kB:1474329600,lB:1479168000,mB:1485216000,nB:1488844800,oB:1492560000,pB:1497312000,qB:1502150400,rB:1506556800,sB:1510617600,tB:1516665600,JC:1520985600,uB:1525824000,KC:1529971200,vB:1536105600,wB:1540252800,xB:1544486400,yB:1548720000,zB:1552953600,\"0B\":1558396800,\"1B\":1562630400,\"2B\":1567468800,\"3B\":1571788800,\"4B\":1575331200,\"5B\":1578355200,\"6B\":1581379200,\"7B\":1583798400,\"8B\":1586304000,\"9B\":1588636800,AC:1591056000,BC:1593475200,Q:1595894400,I:1598313600,R:1600732800,LC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752000,v:1681171200,w:1683590400,x:1686009600,AB:1698105600,BB:1700524800,CB:1702944000,DB:1705968000,EB:1708387200,FB:1710806400,GB:1713225600,HB:1715644800,IB:1718064000,JB:1720483200,KB:1722902400,LB:1725321600,MB:1727740800,D:1730160000,MC:1732579200,NC:1736208000,OC:1738627200,PC:null,mC:null,nC:null}},D:{A:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0.024906,\"7\":0.110298,\"8\":0.067602,\"9\":0.056928,J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0.007116,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0.003558,hB:0,iB:0.003558,jB:0.014232,kB:0.014232,lB:0.024906,mB:0,nB:0.007116,oB:0.007116,pB:0,qB:0,rB:0.010674,sB:0,tB:0.007116,JC:0,uB:0,KC:0.007116,vB:0,wB:0,xB:0,yB:0,zB:0.021348,\"0B\":0,\"1B\":0,\"2B\":0.007116,\"3B\":0.010674,\"4B\":0,\"5B\":0,\"6B\":0.007116,\"7B\":0.007116,\"8B\":0.003558,\"9B\":0.003558,AC:0.010674,BC:0.010674,Q:0.08895,I:0.010674,R:0.024906,S:0.032022,T:0,U:0.010674,V:0.01779,W:0.067602,X:0.010674,Y:0.007116,Z:0.007116,a:0.03558,b:0.010674,c:0.010674,d:0.032022,e:0.014232,f:0.007116,g:0.014232,h:0.039138,i:0.010674,j:0.007116,k:0.014232,l:0.010674,m:0.099624,n:0.042696,o:0.010674,p:0.01779,q:0.024906,r:0.039138,s:1.04605,t:0.021348,u:0.028464,v:0.039138,w:0.145878,x:0.07116,AB:0.039138,BB:0.056928,CB:0.08895,DB:0.074718,EB:0.078276,FB:0.138762,GB:0.814782,HB:0.295314,IB:0.224154,JB:0.156552,KB:0.14232,LB:0.384264,MB:12.7946,D:3.25201,MC:0.014232,NC:0.007116,OC:0,PC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"NB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"OB\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"JC\",\"uB\",\"KC\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"AC\",\"BC\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"D\",\"MC\",\"NC\",\"OC\",\"PC\"],E:\"Chrome\",F:{\"0\":1343692800,\"1\":1348531200,\"2\":1352246400,\"3\":1357862400,\"4\":1361404800,\"5\":1364428800,\"6\":1689724800,\"7\":1692057600,\"8\":1694476800,\"9\":1696896000,J:1264377600,NB:1274745600,K:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,OB:1332892800,y:1337040000,z:1340668800,PB:1369094400,QB:1374105600,RB:1376956800,SB:1384214400,TB:1389657600,UB:1392940800,VB:1397001600,WB:1400544000,XB:1405468800,YB:1409011200,ZB:1412640000,aB:1416268800,bB:1421798400,cB:1425513600,dB:1429401600,eB:1432080000,fB:1437523200,gB:1441152000,hB:1444780800,iB:1449014400,jB:1453248000,kB:1456963200,lB:1460592000,mB:1464134400,nB:1469059200,oB:1472601600,pB:1476230400,qB:1480550400,rB:1485302400,sB:1489017600,tB:1492560000,JC:1496707200,uB:1500940800,KC:1504569600,vB:1508198400,wB:1512518400,xB:1516752000,yB:1520294400,zB:1523923200,\"0B\":1527552000,\"1B\":1532390400,\"2B\":1536019200,\"3B\":1539648000,\"4B\":1543968000,\"5B\":1548720000,\"6B\":1552348800,\"7B\":1555977600,\"8B\":1559606400,\"9B\":1564444800,AC:1568073600,BC:1571702400,Q:1575936000,I:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656000,r:1669680000,s:1673308800,t:1675728000,u:1678147200,v:1680566400,w:1682985600,x:1685404800,AB:1698710400,BB:1701993600,CB:1705968000,DB:1708387200,EB:1710806400,FB:1713225600,GB:1715644800,HB:1718064000,IB:1721174400,JB:1724112000,KB:1726531200,LB:1728950400,MB:1731369600,D:1736812800,MC:1738627200,NC:null,OC:null,PC:null}},E:{A:{J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0.003558,M:0.01779,H:0.003558,qC:0,QC:0,rC:0,sC:0,tC:0,uC:0,RC:0,CC:0.003558,DC:0.007116,vC:0.039138,wC:0.05337,xC:0.010674,SC:0.007116,TC:0.014232,EC:0.01779,yC:0.167226,FC:0.024906,UC:0.028464,VC:0.021348,WC:0.049812,XC:0.01779,YC:0.028464,zC:0.224154,GC:0.014232,ZC:0.024906,aC:0.024906,bC:0.028464,cC:0.064044,dC:0.131646,\"0C\":0.39138,HC:0.067602,eC:0.939312,fC:0.416286,gC:0.028464,hC:0,\"1C\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"qC\",\"QC\",\"J\",\"NB\",\"rC\",\"K\",\"sC\",\"E\",\"tC\",\"F\",\"G\",\"uC\",\"A\",\"RC\",\"B\",\"CC\",\"C\",\"DC\",\"L\",\"vC\",\"M\",\"wC\",\"H\",\"xC\",\"SC\",\"TC\",\"EC\",\"yC\",\"FC\",\"UC\",\"VC\",\"WC\",\"XC\",\"YC\",\"zC\",\"GC\",\"ZC\",\"aC\",\"bC\",\"cC\",\"dC\",\"0C\",\"HC\",\"eC\",\"fC\",\"gC\",\"hC\",\"1C\",\"\"],E:\"Safari\",F:{qC:1205798400,QC:1226534400,J:1244419200,NB:1275868800,rC:1311120000,K:1343174400,sC:1382400000,E:1382400000,tC:1410998400,F:1413417600,G:1443657600,uC:1458518400,A:1474329600,RC:1490572800,B:1505779200,CC:1522281600,C:1537142400,DC:1553472000,L:1568851200,vC:1585008000,M:1600214400,wC:1619395200,H:1632096000,xC:1635292800,SC:1639353600,TC:1647216000,EC:1652745600,yC:1658275200,FC:1662940800,UC:1666569600,VC:1670889600,WC:1674432000,XC:1679875200,YC:1684368000,zC:1690156800,GC:1695686400,ZC:1698192000,aC:1702252800,bC:1705881600,cC:1709596800,dC:1715558400,\"0C\":1722211200,HC:1726444800,eC:1730073600,fC:1733875200,gC:1737936000,hC:null,\"1C\":null}},F:{A:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0.003558,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0.014232,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,\"7B\":0,\"8B\":0,\"9B\":0,AC:0,BC:0,Q:0,I:0,R:0,LC:0,S:0,T:0,U:0,V:0.032022,W:0.010674,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.032022,f:0,g:0,h:0,i:0,j:0,k:0,l:0.010674,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:0.313104,\"2C\":0,\"3C\":0,\"4C\":0,\"5C\":0,CC:0,iC:0,\"6C\":0,DC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"G\",\"2C\",\"3C\",\"4C\",\"5C\",\"B\",\"CC\",\"iC\",\"6C\",\"C\",\"DC\",\"H\",\"N\",\"O\",\"P\",\"OB\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"AC\",\"BC\",\"Q\",\"I\",\"R\",\"LC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"\",\"\",\"\"],E:\"Opera\",F:{\"0\":1401753600,\"1\":1405987200,\"2\":1409616000,\"3\":1413331200,\"4\":1417132800,\"5\":1422316800,G:1150761600,\"2C\":1223424000,\"3C\":1251763200,\"4C\":1267488000,\"5C\":1277942400,B:1292457600,CC:1302566400,iC:1309219200,\"6C\":1323129600,C:1323129600,DC:1352073600,H:1372723200,N:1377561600,O:1381104000,P:1386288000,OB:1390867200,y:1393891200,z:1399334400,PB:1425945600,QB:1430179200,RB:1433808000,SB:1438646400,TB:1442448000,UB:1445904000,VB:1449100800,WB:1454371200,XB:1457308800,YB:1462320000,ZB:1465344000,aB:1470096000,bB:1474329600,cB:1477267200,dB:1481587200,eB:1486425600,fB:1490054400,gB:1494374400,hB:1498003200,iB:1502236800,jB:1506470400,kB:1510099200,lB:1515024000,mB:1517961600,nB:1521676800,oB:1525910400,pB:1530144000,qB:1534982400,rB:1537833600,sB:1543363200,tB:1548201600,uB:1554768000,vB:1561593600,wB:1566259200,xB:1570406400,yB:1573689600,zB:1578441600,\"0B\":1583971200,\"1B\":1587513600,\"2B\":1592956800,\"3B\":1595894400,\"4B\":1600128000,\"5B\":1603238400,\"6B\":1613520000,\"7B\":1612224000,\"8B\":1616544000,\"9B\":1619568000,AC:1623715200,BC:1627948800,Q:1631577600,I:1633392000,R:1635984000,LC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000,q:1707264000,r:1710115200,s:1711497600,t:1716336000,u:1719273600,v:1721088000,w:1724284800,x:1727222400},D:{G:\"o\",B:\"o\",C:\"o\",\"2C\":\"o\",\"3C\":\"o\",\"4C\":\"o\",\"5C\":\"o\",CC:\"o\",iC:\"o\",\"6C\":\"o\",DC:\"o\"}},G:{A:{F:0,QC:0,\"7C\":0,jC:0.00293498,\"8C\":0,\"9C\":0.00733744,AD:0.00880493,BD:0,CD:0.00293498,DD:0.0220123,ED:0.00440246,FD:0.0322847,GD:0.0924517,HD:0.0102724,ID:0.00586995,JD:0.155554,KD:0.00293498,LD:0.0176099,MD:0.00586995,ND:0.0220123,OD:0.143814,PD:0.0689719,QD:0.0352197,SC:0.0366872,TC:0.0425571,EC:0.0498946,RD:0.585528,FC:0.0880493,UC:0.192241,VC:0.0983217,WC:0.171696,XC:0.0366872,YC:0.0704394,SD:0.713199,GC:0.0454921,ZC:0.0807118,aC:0.063102,bC:0.0895167,cC:0.192241,dC:0.463726,TD:1.59369,HC:0.490141,eC:6.52592,fC:2.20123,gC:0.190773,hC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"QC\",\"7C\",\"jC\",\"8C\",\"9C\",\"AD\",\"F\",\"BD\",\"CD\",\"DD\",\"ED\",\"FD\",\"GD\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"MD\",\"ND\",\"OD\",\"PD\",\"QD\",\"SC\",\"TC\",\"EC\",\"RD\",\"FC\",\"UC\",\"VC\",\"WC\",\"XC\",\"YC\",\"SD\",\"GC\",\"ZC\",\"aC\",\"bC\",\"cC\",\"dC\",\"TD\",\"HC\",\"eC\",\"fC\",\"gC\",\"hC\",\"\",\"\"],E:\"Safari on iOS\",F:{QC:1270252800,\"7C\":1283904000,jC:1299628800,\"8C\":1331078400,\"9C\":1359331200,AD:1394409600,F:1410912000,BD:1413763200,CD:1442361600,DD:1458518400,ED:1473724800,FD:1490572800,GD:1505779200,HD:1522281600,ID:1537142400,JD:1553472000,KD:1568851200,LD:1572220800,MD:1580169600,ND:1585008000,OD:1600214400,PD:1619395200,QD:1632096000,SC:1639353600,TC:1647216000,EC:1652659200,RD:1658275200,FC:1662940800,UC:1666569600,VC:1670889600,WC:1674432000,XC:1679875200,YC:1684368000,SD:1690156800,GC:1694995200,ZC:1698192000,aC:1702252800,bC:1705881600,cC:1709596800,dC:1715558400,TD:1722211200,HC:1726444800,eC:1730073600,fC:1733875200,gC:1737936000,hC:null}},H:{A:{UD:0.04},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"UD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{UD:1426464000}},I:{A:{IC:0,J:0,D:0.308567,VD:0,WD:0,XD:0,YD:0.0000309216,jC:0.0000618432,ZD:0,aD:0.000371059},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"VD\",\"WD\",\"XD\",\"IC\",\"J\",\"YD\",\"jC\",\"ZD\",\"aD\",\"D\",\"\",\"\",\"\"],E:\"Android Browser\",F:{VD:1256515200,WD:1274313600,XD:1291593600,IC:1298332800,J:1318896000,YD:1341792000,jC:1374624000,ZD:1386547200,aD:1401667200,D:1737676800}},J:{A:{E:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,I:1.03581,CC:0,iC:0,DC:0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"CC\",\"iC\",\"C\",\"DC\",\"I\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,CC:1314835200,iC:1318291200,C:1330300800,DC:1349740800,I:1709769600},D:{I:\"webkit\"}},L:{A:{D:46.1904},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{D:1737676800}},M:{A:{D:0.334984},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{D:1730160000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{EC:0.83746},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"EC\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{EC:1710115200},D:{EC:\"webkit\"}},P:{A:{\"0\":0.0330772,\"1\":0.0330772,\"2\":0.0441029,\"3\":0.0441029,\"4\":0.110257,\"5\":1.90745,J:0.0661544,y:0,z:0.0220515,bD:0.0110257,cD:0,dD:0.0110257,eD:0,fD:0,RC:0,gD:0,hD:0,iD:0,jD:0,kD:0,FC:0,GC:0.0110257,HC:0,lD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"bD\",\"cD\",\"dD\",\"eD\",\"fD\",\"RC\",\"gD\",\"hD\",\"iD\",\"jD\",\"kD\",\"FC\",\"GC\",\"HC\",\"lD\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{\"0\":1689292800,\"1\":1697587200,\"2\":1711497600,\"3\":1715126400,\"4\":1717718400,\"5\":1725667200,J:1461024000,bD:1481846400,cD:1509408000,dD:1528329600,eD:1546128000,fD:1554163200,RC:1567900800,gD:1582588800,hD:1593475200,iD:1605657600,jD:1618531200,kD:1629072000,FC:1640736000,GC:1651708800,HC:1659657600,lD:1667260800,y:1677369600,z:1684454400}},Q:{A:{mD:0.199702},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"mD\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{mD:1710288000}},R:{A:{nD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"nD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{nD:1710201600}},S:{A:{oD:0.019326,pD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"oD\",\"pD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{oD:1527811200,pD:1631664000}}};\n","module.exports={\"0\":\"22\",\"1\":\"23\",\"2\":\"24\",\"3\":\"25\",\"4\":\"26\",\"5\":\"27\",\"6\":\"115\",\"7\":\"116\",\"8\":\"117\",\"9\":\"118\",A:\"10\",B:\"11\",C:\"12\",D:\"132\",E:\"7\",F:\"8\",G:\"9\",H:\"15\",I:\"80\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"17\",P:\"18\",Q:\"79\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"107\",r:\"108\",s:\"109\",t:\"110\",u:\"111\",v:\"112\",w:\"113\",x:\"114\",y:\"20\",z:\"21\",AB:\"119\",BB:\"120\",CB:\"121\",DB:\"122\",EB:\"123\",FB:\"124\",GB:\"125\",HB:\"126\",IB:\"127\",JB:\"128\",KB:\"129\",LB:\"130\",MB:\"131\",NB:\"5\",OB:\"19\",PB:\"28\",QB:\"29\",RB:\"30\",SB:\"31\",TB:\"32\",UB:\"33\",VB:\"34\",WB:\"35\",XB:\"36\",YB:\"37\",ZB:\"38\",aB:\"39\",bB:\"40\",cB:\"41\",dB:\"42\",eB:\"43\",fB:\"44\",gB:\"45\",hB:\"46\",iB:\"47\",jB:\"48\",kB:\"49\",lB:\"50\",mB:\"51\",nB:\"52\",oB:\"53\",pB:\"54\",qB:\"55\",rB:\"56\",sB:\"57\",tB:\"58\",uB:\"60\",vB:\"62\",wB:\"63\",xB:\"64\",yB:\"65\",zB:\"66\",\"0B\":\"67\",\"1B\":\"68\",\"2B\":\"69\",\"3B\":\"70\",\"4B\":\"71\",\"5B\":\"72\",\"6B\":\"73\",\"7B\":\"74\",\"8B\":\"75\",\"9B\":\"76\",AC:\"77\",BC:\"78\",CC:\"11.1\",DC:\"12.1\",EC:\"15.5\",FC:\"16.0\",GC:\"17.0\",HC:\"18.0\",IC:\"3\",JC:\"59\",KC:\"61\",LC:\"82\",MC:\"133\",NC:\"134\",OC:\"135\",PC:\"136\",QC:\"3.2\",RC:\"10.1\",SC:\"15.2-15.3\",TC:\"15.4\",UC:\"16.1\",VC:\"16.2\",WC:\"16.3\",XC:\"16.4\",YC:\"16.5\",ZC:\"17.1\",aC:\"17.2\",bC:\"17.3\",cC:\"17.4\",dC:\"17.5\",eC:\"18.1\",fC:\"18.2\",gC:\"18.3\",hC:\"18.4\",iC:\"11.5\",jC:\"4.2-4.3\",kC:\"5.5\",lC:\"2\",mC:\"137\",nC:\"138\",oC:\"3.5\",pC:\"3.6\",qC:\"3.1\",rC:\"5.1\",sC:\"6.1\",tC:\"7.1\",uC:\"9.1\",vC:\"13.1\",wC:\"14.1\",xC:\"15.1\",yC:\"15.6\",zC:\"16.6\",\"0C\":\"17.6\",\"1C\":\"TP\",\"2C\":\"9.5-9.6\",\"3C\":\"10.0-10.1\",\"4C\":\"10.5\",\"5C\":\"10.6\",\"6C\":\"11.6\",\"7C\":\"4.0-4.1\",\"8C\":\"5.0-5.1\",\"9C\":\"6.0-6.1\",AD:\"7.0-7.1\",BD:\"8.1-8.4\",CD:\"9.0-9.2\",DD:\"9.3\",ED:\"10.0-10.2\",FD:\"10.3\",GD:\"11.0-11.2\",HD:\"11.3-11.4\",ID:\"12.0-12.1\",JD:\"12.2-12.5\",KD:\"13.0-13.1\",LD:\"13.2\",MD:\"13.3\",ND:\"13.4-13.7\",OD:\"14.0-14.4\",PD:\"14.5-14.8\",QD:\"15.0-15.1\",RD:\"15.6-15.8\",SD:\"16.6-16.7\",TD:\"17.6-17.7\",UD:\"all\",VD:\"2.1\",WD:\"2.2\",XD:\"2.3\",YD:\"4.1\",ZD:\"4.4\",aD:\"4.4.3-4.4.4\",bD:\"5.0-5.4\",cD:\"6.2-6.4\",dD:\"7.2-7.4\",eD:\"8.2\",fD:\"9.2\",gD:\"11.1-11.2\",hD:\"12.0\",iD:\"13.0\",jD:\"14.0\",kD:\"15.0\",lD:\"19.0\",mD:\"14.9\",nD:\"13.52\",oD:\"2.5\",pD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"28.3\": \"120\",\n\t\"29.0\": \"122\",\n\t\"29.1\": \"122\",\n\t\"29.2\": \"122\",\n\t\"29.3\": \"122\",\n\t\"29.4\": \"122\",\n\t\"30.0\": \"124\",\n\t\"30.1\": \"124\",\n\t\"30.2\": \"124\",\n\t\"30.3\": \"124\",\n\t\"30.4\": \"124\",\n\t\"30.5\": \"124\",\n\t\"31.0\": \"126\",\n\t\"31.1\": \"126\",\n\t\"31.2\": \"126\",\n\t\"31.3\": \"126\",\n\t\"31.4\": \"126\",\n\t\"31.5\": \"126\",\n\t\"31.6\": \"126\",\n\t\"31.7\": \"126\",\n\t\"32.0\": \"128\",\n\t\"32.1\": \"128\",\n\t\"32.2\": \"128\",\n\t\"32.3\": \"128\",\n\t\"33.0\": \"130\",\n\t\"33.1\": \"130\",\n\t\"33.2\": \"130\",\n\t\"33.3\": \"130\",\n\t\"33.4\": \"130\",\n\t\"34.0\": \"132\",\n\t\"34.1\": \"132\",\n\t\"34.2\": \"132\",\n\t\"35.0\": \"134\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?<name>a)\\k<name>/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?<!' + _assertion + ')';\n }\n\n return '(?<=' + _assertion + ')';\n }\n\n default:\n throw new TypeError('Unknown Assertion kind: ' + node.kind);\n }\n },\n CharacterClass: function CharacterClass(node) {\n var expressions = node.expressions.map(gen).join('');\n\n if (node.negative) {\n return '[^' + expressions + ']';\n }\n\n return '[' + expressions + ']';\n },\n ClassRange: function ClassRange(node) {\n return gen(node.from) + '-' + gen(node.to);\n },\n Repetition: function Repetition(node) {\n return '' + gen(node.expression) + gen(node.quantifier);\n },\n Quantifier: function Quantifier(node) {\n var quantifier = void 0;\n var greedy = node.greedy ? '' : '?';\n\n switch (node.kind) {\n case '+':\n case '?':\n case '*':\n quantifier = node.kind;\n break;\n case 'Range':\n // Exact: {1}\n if (node.from === node.to) {\n quantifier = '{' + node.from + '}';\n }\n // Open: {1,}\n else if (!node.to) {\n quantifier = '{' + node.from + ',}';\n }\n // Closed: {1,3}\n else {\n quantifier = '{' + node.from + ',' + node.to + '}';\n }\n break;\n default:\n throw new TypeError('Unknown Quantifier kind: ' + node.kind);\n }\n\n return '' + quantifier + greedy;\n },\n Char: function Char(node) {\n var value = node.value;\n\n switch (node.kind) {\n case 'simple':\n {\n if (node.escaped) {\n return '\\\\' + value;\n }\n return value;\n }\n\n case 'hex':\n case 'unicode':\n case 'oct':\n case 'decimal':\n case 'control':\n case 'meta':\n return value;\n\n default:\n throw new TypeError('Unknown Char kind: ' + node.kind);\n }\n },\n UnicodeProperty: function UnicodeProperty(node) {\n var escapeChar = node.negative ? 'P' : 'p';\n var namePart = void 0;\n\n if (!node.shorthand && !node.binary) {\n namePart = node.name + '=';\n } else {\n namePart = '';\n }\n\n return '\\\\' + escapeChar + '{' + namePart + node.value + '}';\n }\n};\n\nmodule.exports = {\n /**\n * Generates a regexp string from an AST.\n *\n * @param Object ast - an AST node\n */\n generate: gen\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode <parsing-mode> \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\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\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\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\\u0af9\\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-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?<!/, function () {\n return 'NEG_LB_ASSERT';\n}], [/^\\(\\?:/, function () {\n return 'NON_CAPTURE_GROUP';\n}], [/^\\(\\?<(([\\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\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\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\\u0af9\\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-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k<foo>` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k<foo>` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array<Object> handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array<Object> handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array<Object>:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array<Object> handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB && diffA === \"\" && diffB === \"\") {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n * GNOME Web (X11) is based on WebKit and should be detected as Safari\n */\n {\n regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n"],"names":["module","exports","user","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","detectUser","getBuilder","clearOnLogout","persist","supportedBrowsersRegExp","getUserAgentRegex","allowHigherVersions","browsers","browserslistConfig","browserslist","redirectPath","generateUrl","isBrowserOverridden","browserStorage","getItem","testSupportedBrowser","test","navigator","userAgent","logger","debug","window","location","pathname","indexOf","redirectUrl","href","replace","origin","base64Param","Buffer","from","toString","history","pushState","reload","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","findConfigFile","clearCaches","oldDataWarning","env","message","this","name","Error","captureStackTrace","prototype","jsReleases","agents","e2c","jsEOL","path","parseWithoutCache","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","normalize","versions","filter","version","normalizeElectron","versionToUse","split","length","slice","join","nameMapper","getMajor","parseInt","getMajorVersions","released","number","majorVersions","uniq","map","minimum","selected","i","unshift","array","filtered","push","fillUsage","result","data","generateFilter","sign","parseFloat","v","parseLatestFloat","parseSimpleInt","x","compare","a","b","compareSemver","semverFilterLoose","operator","range","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","Object","keys","reduce","byName","releaseDate","date","concat","cloneData","toLowerCase","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","obj","copy","key","copyObject","forEach","undefined","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","list","nVersions","jump","op_mob","isSupported","flags","withPartial","queries","parseQueries","node","index","not","query","QUERIES","type","select","call","j","parts","compose","prepareOpts","prepareQueries","defaults","checkQueries","Array","isArray","cache","parseCache","needsPath","some","ignoreUnknownVersions","dangerousExtend","browser","customUsage","cacheKey","JSON","stringify","sort","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","parse","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","supportType","features","iMax","checkDesktop","electron_range","fromToUse","toToUse","to","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","start","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","max","n","substr","find","trim","block","A","K","E","F","G","B","kC","C","L","M","H","N","O","P","Q","I","R","S","T","U","V","W","X","Y","Z","c","d","e","f","g","h","k","l","m","o","p","q","r","s","t","u","w","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","D","lC","IC","J","NB","OB","y","z","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","JC","uB","KC","vB","wB","xB","yB","zB","AC","BC","LC","MC","NC","OC","PC","mC","nC","oC","pC","qC","QC","rC","sC","tC","uC","RC","CC","DC","vC","wC","xC","SC","TC","EC","yC","FC","UC","VC","WC","XC","YC","zC","GC","ZC","aC","bC","cC","dC","HC","eC","fC","gC","hC","iC","jC","AD","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","RD","SD","TD","UD","VD","WD","XD","YD","ZD","aD","bD","cD","dD","eD","fD","gD","hD","iD","jD","kD","lD","mD","nD","oD","pD","agentsData","unpackBrowserVersions","versionsData","entry","prefix_exceptions","map2","key2","prefix","browserVersions","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getAST","getExtra","setExtra","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","includes","ignoreCase","multiline","sticky","unicode","value","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","kind","toValue","toSymbol","expressions","symbol","_groupNames","init","Group","nameRaw","Backreference","reference","referenceRaw","RegExp","namedCapturingGroups","xFlag","gen","generator","body","Alternative","Disjunction","left","right","expression","capturing","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","quantifier","Quantifier","greedy","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","size","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","has","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","Number","add","set","current","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","Map","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","get","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","shift","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","clone","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","parent","isNaN","codePoint","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","Math","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","Infinity","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","remove","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","every","nNode","NaN","Boolean","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","String","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","part","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","options","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","pop","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","_","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","pre","post","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","nodePath","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","SemverPart","numbersToRanges","numbers","semverify","versionParts","versionPart","semverPart","semver","compareSemvers","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","compareMinor","comparePatch","compareArrays","len","items","AlternativeNode","exps","SimpleCharNode","ClassRangeNode","CharacterClassNode","CapturingGroupNode","DisjunctionCapturingGroupNode","expr","exprs","disjunction","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","isCharNode","isDigitRangeNode","isExpressionNode","parseRegex","regex","classes","visitors","newVisitors","className","visitor","visitorPre","visitorPost","numberToDigits","num","rayRangeDigitPattern","digit","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","min","splitToDecadeRanges","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","middleSegment","ri","patterns","prevNode","merged","exp","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","getNumberPatternsCount","numbersCounter","containsNumberPattern","applyVersionsToRegex","finalVersions","maxRequiredPartsCount","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","createMapper","rangedSemverToRegex","numbersToReplace","replaceNumberPatterns","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","maxVersion","matchedVersions","Major","Minor","Patch","versionsListToRanges","applyVersionsToRegexes","targetRegexes","prevFamily","prevRegexIsGlobal","requestVersions","family","minVersion","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","getRegexesForBrowsers","merge","strVersion","mergeBrowserVersions","browserslistOptions","versionString","versionStringTo","partIndex","i1","rangeSemver","getBrowsersList","src","optimizeRegex","regexes"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/core-unsupported-browser-redirect.js b/dist/core-unsupported-browser-redirect.js index bca29c72f39..e1b04251834 100644 --- a/dist/core-unsupported-browser-redirect.js +++ b/dist/core-unsupported-browser-redirect.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e,r,t,o={47210:(e,r,t)=>{var o=t(21777);t.nc=(0,o.aV)(),window.TESTING||OC?.config?.no_unsupported_browser_warning||window.addEventListener("DOMContentLoaded",(async function(){const{testSupportedBrowser:e}=await Promise.all([t.e(4208),t.e(7883)]).then(t.bind(t,77883));e()}))}},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={id:e,loaded:!1,exports:{}};return o[e].call(t.exports,t,t.exports,a),t.loaded=!0,t.exports}a.m=o,e=[],a.O=(r,t,o,n)=>{if(!t){var i=1/0;for(s=0;s<e.length;s++){t=e[s][0],o=e[s][1],n=e[s][2];for(var l=!0,c=0;c<t.length;c++)(!1&n||i>=n)&&Object.keys(a.O).every((e=>a.O[e](t[c])))?t.splice(c--,1):(l=!1,n<i&&(i=n));if(l){e.splice(s--,1);var d=o();void 0!==d&&(r=d)}}return r}n=n||0;for(var s=e.length;s>0&&e[s-1][2]>n;s--)e[s]=e[s-1];e[s]=[t,o,n]},a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,t)=>(a.f[t](e,r),r)),[])),a.u=e=>e+"-"+e+".js?v=c0c28c3b24eedff40f45",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="nextcloud:",a.l=(e,o,n,i)=>{if(r[e])r[e].push(o);else{var l,c;if(void 0!==n)for(var d=document.getElementsByTagName("script"),s=0;s<d.length;s++){var u=d[s];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==t+n){l=u;break}}l||(c=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,a.nc&&l.setAttribute("nonce",a.nc),l.setAttribute("data-webpack",t+n),l.src=e),r[e]=[o];var p=(t,o)=>{l.onerror=l.onload=null,clearTimeout(f);var n=r[e];if(delete r[e],l.parentNode&&l.parentNode.removeChild(l),n&&n.forEach((e=>e(o))),t)return t(o)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),c&&document.head.appendChild(l)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=3604,(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var r=a.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=document.baseURI||self.location.href;var e={3604:0};a.f.j=(r,t)=>{var o=a.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else{var n=new Promise(((t,n)=>o=e[r]=[t,n]));t.push(o[2]=n);var i=a.p+a.u(r),l=new Error;a.l(i,(t=>{if(a.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var n=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;l.message="Loading chunk "+r+" failed.\n("+n+": "+i+")",l.name="ChunkLoadError",l.type=n,l.request=i,o[1](l)}}),"chunk-"+r,r)}},a.O.j=r=>0===e[r];var r=(r,t)=>{var o,n,i=t[0],l=t[1],c=t[2],d=0;if(i.some((r=>0!==e[r]))){for(o in l)a.o(l,o)&&(a.m[o]=l[o]);if(c)var s=c(a)}for(r&&r(t);d<i.length;d++)n=i[d],a.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return a.O(s)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),a.nc=void 0;var i=a.O(void 0,[4208],(()=>a(47210)));i=a.O(i)})(); -//# sourceMappingURL=core-unsupported-browser-redirect.js.map?v=8c3ee5313da69a863baf
\ No newline at end of file +(()=>{"use strict";var e,r,t,o={47210:(e,r,t)=>{var o=t(21777);t.nc=(0,o.aV)(),window.TESTING||OC?.config?.no_unsupported_browser_warning||window.addEventListener("DOMContentLoaded",(async function(){const{testSupportedBrowser:e}=await Promise.all([t.e(4208),t.e(7883)]).then(t.bind(t,77883));e()}))}},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={id:e,loaded:!1,exports:{}};return o[e].call(t.exports,t,t.exports,a),t.loaded=!0,t.exports}a.m=o,e=[],a.O=(r,t,o,n)=>{if(!t){var i=1/0;for(s=0;s<e.length;s++){t=e[s][0],o=e[s][1],n=e[s][2];for(var l=!0,d=0;d<t.length;d++)(!1&n||i>=n)&&Object.keys(a.O).every((e=>a.O[e](t[d])))?t.splice(d--,1):(l=!1,n<i&&(i=n));if(l){e.splice(s--,1);var c=o();void 0!==c&&(r=c)}}return r}n=n||0;for(var s=e.length;s>0&&e[s-1][2]>n;s--)e[s]=e[s-1];e[s]=[t,o,n]},a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,t)=>(a.f[t](e,r),r)),[])),a.u=e=>e+"-"+e+".js?v=e3fe4aa37dc59d0f9e90",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="nextcloud:",a.l=(e,o,n,i)=>{if(r[e])r[e].push(o);else{var l,d;if(void 0!==n)for(var c=document.getElementsByTagName("script"),s=0;s<c.length;s++){var u=c[s];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==t+n){l=u;break}}l||(d=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,a.nc&&l.setAttribute("nonce",a.nc),l.setAttribute("data-webpack",t+n),l.src=e),r[e]=[o];var p=(t,o)=>{l.onerror=l.onload=null,clearTimeout(f);var n=r[e];if(delete r[e],l.parentNode&&l.parentNode.removeChild(l),n&&n.forEach((e=>e(o))),t)return t(o)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),d&&document.head.appendChild(l)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=3604,(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var r=a.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=document.baseURI||self.location.href;var e={3604:0};a.f.j=(r,t)=>{var o=a.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else{var n=new Promise(((t,n)=>o=e[r]=[t,n]));t.push(o[2]=n);var i=a.p+a.u(r),l=new Error;a.l(i,(t=>{if(a.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var n=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;l.message="Loading chunk "+r+" failed.\n("+n+": "+i+")",l.name="ChunkLoadError",l.type=n,l.request=i,o[1](l)}}),"chunk-"+r,r)}},a.O.j=r=>0===e[r];var r=(r,t)=>{var o,n,i=t[0],l=t[1],d=t[2],c=0;if(i.some((r=>0!==e[r]))){for(o in l)a.o(l,o)&&(a.m[o]=l[o]);if(d)var s=d(a)}for(r&&r(t);c<i.length;c++)n=i[c],a.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return a.O(s)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),a.nc=void 0;var i=a.O(void 0,[4208],(()=>a(47210)));i=a.O(i)})(); +//# sourceMappingURL=core-unsupported-browser-redirect.js.map?v=13975d9b579da4ee56d2
\ No newline at end of file diff --git a/dist/core-unsupported-browser-redirect.js.map b/dist/core-unsupported-browser-redirect.js.map index 6d0eae9f2cb..059ddbc0eae 100644 --- a/dist/core-unsupported-browser-redirect.js.map +++ b/dist/core-unsupported-browser-redirect.js.map @@ -1 +1 @@ -{"version":3,"file":"core-unsupported-browser-redirect.js?v=8c3ee5313da69a863baf","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/core/src/unsupported-browser-redirect.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\nif (!window.TESTING && !OC?.config?.no_unsupported_browser_warning) {\n\twindow.addEventListener('DOMContentLoaded', async function() {\n\t\tconst { testSupportedBrowser } = await import('./utils/RedirectUnsupportedBrowsers.js')\n\t\ttestSupportedBrowser()\n\t})\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"c0c28c3b24eedff40f45\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 3604;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3604: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(47210)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","__webpack_nonce__","getCSPNonce","window","TESTING","OC","config","no_unsupported_browser_warning","addEventListener","async","testSupportedBrowser","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","g","globalThis","this","Function","obj","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"core-unsupported-browser-redirect.js?v=13975d9b579da4ee56d2","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/core/src/unsupported-browser-redirect.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\nif (!window.TESTING && !OC?.config?.no_unsupported_browser_warning) {\n\twindow.addEventListener('DOMContentLoaded', async function() {\n\t\tconst { testSupportedBrowser } = await import('./utils/RedirectUnsupportedBrowsers.js')\n\t\ttestSupportedBrowser()\n\t})\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"e3fe4aa37dc59d0f9e90\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 3604;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3604: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(47210)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","__webpack_nonce__","getCSPNonce","window","TESTING","OC","config","no_unsupported_browser_warning","addEventListener","async","testSupportedBrowser","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","g","globalThis","this","Function","obj","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/core-unsupported-browser.js b/dist/core-unsupported-browser.js index d88d7a540fe..c90701b4131 100644 --- a/dist/core-unsupported-browser.js +++ b/dist/core-unsupported-browser.js @@ -1,2 +1,2 @@ -(()=>{var e,u={54380:e=>{e.exports=[">0.25%","not op_mini all","not dead","Firefox ESR"]},14813:(e,u,r)=>{"use strict";var n=r(63814),t=r(85471),d=r(94364),a=r.n(d),s=r(34999);const i=[{regex:/IE (\d+)\.(\d+)/,family:"ie",maxVersion:[7,1/0,1/0]},{regex:/Trident\/4\.0/,family:"ie",version:[8,0,0]},{regex:/Trident\/5\.0/,family:"ie",version:[9,0,0]},{regex:/Trident\/6\.0/,family:"ie",version:[10,0,0]},{regex:/Trident\/[78]\.0/,family:"ie",version:[11,0,0]},{regex:/Edge?\/(\d+)\.(\d+)(\.(\d+)|)/,family:"edge"},{regex:/Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"firefox"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"chrome"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/,family:"chrome",maxVersion:[70,1/0,1/0]},{regex:/(Maci|X11).+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//,family:"safari"},{regex:/Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/,family:"opera",maxVersion:[12,15,0]},{regex:/Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"opera",minVersion:[15,0,0]},{regex:/(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf"},{regex:/[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf",version:[7,0,3]},{regex:/Opera Mini/,family:"op_mini"},{regex:/Android Donut/,family:"android",version:[1,2,0]},{regex:/Android Eclair/,family:"android",version:[2,1,0]},{regex:/Android Froyo/,family:"android",version:[2,2,0]},{regex:/Android Gingerbread/,family:"android",version:[2,3,0]},{regex:/Android Honeycomb/,family:"android",version:[3,0,0]},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"android"},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/,family:"android",version:[4,0,0]},{regex:/PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/,family:"op_mob",maxVersion:[12,16,0]},{regex:/Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"op_mob",minVersion:[14,0,0]},{regex:/Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_ff"},{regex:/Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_chr"},{regex:/IEMobile[ /](\d+)\.(\d+)/,family:"ie_mob"},{regex:/Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/,family:"and_uc"},{regex:/SamsungBrowser\/(\d+)\.(\d+)/,family:"samsung"},{regex:/Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"and_qq"},{regex:/baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"baidu"},{regex:/K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/,family:"kaios"}];function f(e){return"number"==typeof e?e:1===e.length?e[0]:[e[0],e[e.length-1]]}var o;function c(e){const u=Array.isArray(e)?e:e.toString().split(".");if("all"===u[0])return[1/0,0,0];let r=null,n=null;const t=[0,0,0];for(let e=0;e<3;e++)if(r=u[e],void 0!==r){if(n="number"==typeof r?r:parseInt(r,10),isNaN(n))return null;t[e]=n}return t}function l(e,u,r){const[n,t,d]=e,[a,s,i]=u,{ignoreMinor:f,ignorePatch:o,allowHigherVersions:c}=r;if(a===1/0)return!0;const l=!f,v=l&&!o;return c?!(v&&d<i||l&&t<s)&&n>=a:!(v&&d!==i||l&&t!==s)&&n===a}function v(e,u,r=0){const n=e.length;for(let t=r;t<n;t++)if(e[t]!==u[t])return!1;return!0}function p(e){if(null===e||"object"!=typeof e)return e;const u=Array.isArray(e)?[]:{};let r;for(r in e)u[r]=p(e[r]);return u}function b(e){return[].concat(...e)}function m(...e){const u=b(e).filter(Boolean);return 1===u.length?u[0]:{type:"Alternative",expressions:u}}function h(e){return{type:"Char",kind:"simple",value:String(e),codePoint:NaN}}function y(e,u){return{type:"ClassRange",from:e,to:u}}function g(...e){return{type:"CharacterClass",expressions:b(e).filter(Boolean)}}function C(e){return{type:"Group",capturing:!0,expression:e,number:null}}function B(...e){const u=function(...e){const u=b(e).filter(Boolean);if(1===u.length)return u[0];const r={type:"Disjunction",left:null,right:u.pop()};return u.reduceRight(((e,u,r)=>0===r?(e.left=u,e):(e.left={type:"Disjunction",left:null,right:u},e.left)),r),r}(...e);return"Disjunction"===u.type?C(u):u}function _(){return{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}}function A(e={type:"Quantifier",kind:"+",greedy:!0}){const u=function(e,u){return{type:"Repetition",expression:{type:"Char",kind:"meta",value:"\\d",codePoint:NaN},quantifier:u}}(0,e);return u}function x(e){return m(Array.from(String(e),h))}function w(e){if("Group"===e.type&&"Repetition"===e.expression.type){const{expression:u,quantifier:r}=e.expression;return"Char"===u.type&&"\\d"===u.value&&"+"===r.kind&&r.greedy}return!1}function S(e,u){return!(!e||"Char"!==e.type)&&(void 0===u||u instanceof RegExp&&u.test(e.value)||String(u)===e.value)}function j(e){if("CharacterClass"===e.type&&1===e.expressions.length){const[u]=e.expressions;return"ClassRange"===u.type&&S(u.from,/\d/)&&S(u.to,/\d/)}return!1}function k(e){return"RegExp"!==e.type&&"ClassRange"!==e.type&&"Quantifier"!==e.type}function P(e){return"string"==typeof e?s.parse(e.replace(/^([^/])/,"/$1").replace(/([^/])$/,"$1/")):e instanceof RegExp?s.parse(e):e}!function(e){e[e.Major=0]="Major",e[e.Minor=1]="Minor",e[e.Patch=2]="Patch"}(o||(o={}));const E=["RegExp","Disjunction","Alternative","Assertion","Char","CharacterClass","ClassRange","Backreference","Group","Repetition","Quantifier"];function O(e){const{every:u}=e;return u?"function"==typeof u?{"*":u,...e}:E.reduce(((r,n)=>{const t=e[n],d=t?"pre"in t?t.pre:t:null,a=t&&"post"in t?t.post:null;return r[n]={pre:e=>!1===u.pre(e)||!d||d(e),post:e=>!1===u.post(e)||!a||a(e)},r}),{}):e}function D(e){return Array.from(e.toString(),Number)}function T(e,u){const r=e+Number(!u);return 0===r?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:9===r?h("9"):r>9?null:g(y(h(r),h("9")))}function R(e,u,r){if(u<e)return null;const n=h(e),t=h(u),d="number"==typeof r&&r>0?Array.from({length:r},(()=>h(0))):[];return(d.length?e=>m(d,e):e=>e)(e===u?n:0===e&&9===u?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:u-e==1?g(n,t):g(y(n,t)))}function N(e,u,r=0){const n=D(e),t=n.length;if(e<10&&u<10||e===u)return[R(e,u,r-t)];const d=D(u);if(t!==d.length){const n=function(e,u){const r=[];let n=e,t=1;do{t*=10,n<t&&(r.push([n,Math.min(t-1,u)]),n=t)}while(t<=u);return r}(e,u),t=b(n.map((([e,u])=>N(e,u,r))));return t}const a=function(e,u){const r=e.length;if(r!==u.length||e[0]!==u[0])return null;let n=e[0].toString(),t=0,d=0,a="",s="";for(let i=1;i<r;i++)t=e[i],d=u[i],t===d&&""===a&&""===s?n+=t:(a+=t,s+=d);return[n,parseInt(a,10),parseInt(s,10)]}(n,d);if(Array.isArray(a)){const[e,u,r]=a,n=N(u,r,t-e.length);return[m(Array.from(e,h),B(n))]}const s=Array.from({length:t-1}),i=R(n[0]+1,d[0]-1);return[...s.map(((e,u)=>{const r=t-u-1,d=Number(u>0);return m(n.map(((e,u)=>u<r?h(e):R(u>r?0:e+d,9))))})),...i?[m(i,Array.from({length:t-1},(()=>({type:"Char",kind:"meta",value:"\\d",codePoint:NaN}))))]:[],...s.map(((e,u)=>{const r=t-u-1,n=Number(u>0);return m(d.map(((e,u)=>u<r?h(e):R(0,u>r?9:e-n))))}))].reduce(((e,u)=>{const r=e[e.length-1];if(r&&"Alternative"===u.type&&"Alternative"===r.type&&u.expressions.length===r.expressions.length){const n=r.expressions.reduceRight(((e,r,n)=>{if(!e)return e;const t=(d=r,a=u.expressions[n],S(d)&&S(a)&&d.value===a.value?a:S(d,/\d/)&&j(a)&&Number(a.expressions[0].from.value)-Number(d.value)==1?{...a,expressions:[{...a.expressions[0],from:d}]}:j(d)&&S(a,/\d/)&&Number(a.value)-Number(d.expressions[0].to.value)==1?{...d,expressions:[{...d.expressions[0],to:a}]}:null);var d,a;return t?(e.unshift(t),e):null}),[]);n&&(u.expressions=n,e.pop())}return e.push(u),e}),[])}function L(e,u=1/0){return e===1/0?A():B(u===1/0?function(e){if(0===e)return[A()];const u=D(e),r=u.length,n=A(function(e){return{type:"Quantifier",kind:"Range",from:e,to:void 0,greedy:!0}}(r+1)),t=r-1;if(e/Math.pow(10,t)===u[0])return[m(T(u[0],!0),Array.from({length:t},_)),n];const d=u.reduce(((e,n,t)=>{const d=r-t-1,a=0===t;let s=h("");const i=u.reduce(((e,u,r)=>{if(r<d)e.push(h(u));else if(s)if(r>d)e.push({type:"Char",kind:"meta",value:"\\d",codePoint:NaN});else{if(s=T(u,a),!s)return[];e.push(s)}return e}),[]);return i.length&&e.push(i),e}),[]).map((e=>m(e)));return d.push(n),d}(e):N(e,u))}function F(e,u){const r=P(e),n=Math.min(function(e){const u=P(e);let r=0;return s.traverse(u,{Group(e){w(e.node)&&r++}}),r}(r),u||1/0),t=[];let d=0,a=!1;return s.traverse(r,O({every:{pre:({node:e,parent:u})=>e===r||!!k(e)&&(u===r&&(a=!1),d<n),post({node:e,parent:u}){e!==r&&u===r&&k(e)&&(a||d>0&&d<n)&&t.push(e)}},Group:e=>!(w(e.node)&&d<n&&(a=!0,d++,1))})),1!==t.length||w(t[0])?t:F(t[0],n)}function I(e,u,r){const{allowHigherVersions:n}=r,t=P(e),d=n&&u.length?[u[0]]:u,a=d.reduce(((e,u)=>Math.max(e,function(e,u){const{ignoreMinor:r,ignorePatch:n,allowZeroSubversions:t}=u;let d=r?1:n?2:3;if(t)for(let u=d-1;u>0&&0===e[u]&&1!==d;u--)d--;return d}(u,r))),1),i=F(t,a),f=B(...d.map((e=>function(e,u){const{ignoreMinor:r,ignorePatch:n,allowHigherVersions:t}=u,d=e[0]===1/0?0:r?1:n?2:3;if(t){const u=[];let r=!0,n=0,t=0;const a=e=>(u,r)=>r>=d?A():(t=Array.isArray(u)?u[0]:u,r<e?x(t):r>e?A():L(t+n));for(let t=d-1;t>=0;t--)r&&!e[t]||(r=!1,u.push(e.map(a(t))),n=1);return u}return[e.map(((e,u)=>u>=d?A():Array.isArray(e)?L(e[0],e[1]):x(e)))]}(e,r).map((e=>function(e,u,r){let n=P(e);const t="number"==typeof r&&r<u.length?u.slice(0,r):u.slice();return s.traverse(n,O({every:()=>Boolean(t.length),Group:e=>!w(e.node)||!t.length||(n===e.node?n=t.shift():e.replace(t.shift()),!1)})),n}(m(p(i)),e,a))))));return s.traverse(t,O({every:e=>!!i.length&&(e.node===i[0]&&(1===i.length?e.replace(f):e.remove(),i.shift()),!0)})),t}const M={ignoreMinor:!1,ignorePatch:!0,allowZeroSubversions:!1,allowHigherVersions:!1};function U(e={}){const u={...M,...e};return function(e,u){return e.map((({regex:e,version:r,maxVersion:n,matchedVersions:t,...d})=>{let a=P(e);return r||(a=I(a,function(e){if(e.length<2)return e;const u=e.length+1,r=[];let n=null,t=e[0],d=[t[o.Major]],a=[t[o.Minor]],s=[t[o.Patch]],i=null;for(let c=1;c<u;c++){n=e[c-1],t=e[c]||[];for(let e=o.Major;e<=o.Patch;e++){if((e===i||null===i)&&n[e]+1===t[e]&&v(n,t,e+1)){i=e,e===o.Major?d.push(t[o.Major]):d=t[o.Major],e===o.Minor?a.push(t[o.Minor]):a=t[o.Minor],e===o.Patch?s.push(t[o.Patch]):s=t[o.Patch];break}if(i===e||n[e]!==t[e]){r.push([f(d),f(a),f(s)]),d=[t[o.Major]],a=[t[o.Minor]],s=[t[o.Patch]],i=null;break}}}return r}(t),{...u,allowHigherVersions:!n&&u.allowHigherVersions})),{regex:null,sourceRegex:e,regexAst:a,version:r,maxVersion:n,matchedVersions:t,...d}}))}(function(e,u,r=i){const n=[];let t="",d=!1;return r.forEach((r=>{const a=e.get(r.family);if(!a)return;let{version:s,minVersion:i,maxVersion:f}=r;s&&(i=s,f=s);let o=function(e,u,r,n){const t={...n,allowHigherVersions:!0},d=u=>l(u,e,t),a=e=>l(u,e,t),s=e&&u?e=>d(e)&&a(e):e?d:u?a:()=>!0;return r.filter(s)}(i,f,a,u);o.length&&(t===r.family&&d&&(s=void 0,i=void 0,f=void 0,o=a,n.pop()),n.push({...r,version:s,minVersion:i,maxVersion:f,requestVersions:a,matchedVersions:o})),d=!s&&!i&&!f,t=r.family})),n}(function(e){const u=new Map;return e.forEach((({family:e,version:r})=>{const n=u.get(e);if(n){const e=r.join(".");n.every((u=>u.join(".")!==e))&&n.push(r)}else u.set(e,[r])})),u.forEach((e=>{e.sort(((e,u)=>{for(const r in e)if(e[r]!==u[r])return e[r]-u[r];return 0}))})),u}(function(e={}){const{browsers:u,...r}=e;return d(u,r).reduce(((e,u)=>{const[r,n,t]=u.split(/ |-/),d=c(n);return(d?t?function(e,u){let r=0;const n=[];for(let n=2;n>=0;n--)if(e[n]!==u[n]){r=n;break}for(let t=e[r],d=u[r];t<=d;t++)n.push(e.map(((e,u)=>u===r?t:e)));return n}(d,c(t)):[d]:[]).reduce(((e,u)=>(u&&e.push({family:r,version:u}),e)),e)}),[])}(u)),u),u)}var G=r(54380),H=r.n(G);!function(e={}){!function(e){const u=e.map((({regexAst:e})=>C(e.body)));var r;"string"==typeof(r=function(e){const u=s.optimize(P((r=e,"string"==typeof r?r:r instanceof RegExp?r.toString():s.generate(r)))).getAST();var r;return s.traverse(u,{Group(e){const{parent:u,node:r}=e,{expression:n}=r;r.capturing=!0,("RegExp"===u.type||"Disjunction"!==n.type&&"Repetition"!==u.type||"Disjunction"===n.type&&"Disjunction"===u.type)&&e.replace(e.node.expression)}}),u}({type:"RegExp",body:B(u),flags:""}))?new RegExp(r):new RegExp(s.generate(r.body),r.flags)}(U(e))}({allowHigherVersions:!0,browsers:H()});const V=a()(H()),q=(0,r(59097).c0)("core").clearOnLogout().persist().build();var $=r(21777),Q=r(35947);const W=null===(K=(0,$.HW)())?(0,Q.YK)().setApp("core").build():(0,Q.YK)().setApp("core").setUid(K.uid).build();var K;(0,Q.YK)().setApp("unified-search").detectUser().build(),r(62045).hp;const z="unsupported-browser-ignore";(0,n.Jv)("/unsupported"),q.getItem(z);var X=r(76019),Z=r(53334),J=r(32051),Y=r(28326);const ee={name:"WebIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var ue=r(14486);const re=(0,ue.A)(ee,(function(){var e=this,u=e._self._c;return u("span",e._b({staticClass:"material-design-icon web-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(u){return e.$emit("click",u)}}},"span",e.$attrs,!1),[u("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[u("path",{attrs:{d:"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"}},[e.title?u("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var ne=r(62045).hp;W.debug("Supported browsers",{supportedBrowsers:V});const te={name:"UnsupportedBrowser",components:{Web:re,NcButton:J.A,NcEmptyContent:Y.A},computed:{isMobile:()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),filteredSupportedBrowsers(){return V.filter((e=>!!e&&(this.isMobile?this.isMobileBrowser(e):!this.isMobileBrowser(e))))},formattedBrowsersList(){const e={};return this.filteredSupportedBrowsers.forEach((u=>{const[r,n]=u.split(" ");(!e[r]||e[r]<parseFloat(n,10))&&(e[r]=parseFloat(n,10))})),Object.keys(e).map((u=>{if(!X.X[u]?.browser)return null;const r=e[u],n=X.X[u]?.browser;return this.t("core","{name} version {version} and above",{name:n,version:r})})).filter((e=>null!==e))}},methods:{t:Z.Tl,n:Z.zw,forceBrowsing(){q.setItem(z,!0);const e=new URLSearchParams(window.location.search);if(e.has("redirect_url")){let u=ne.from(e.get("redirect_url"),"base64").toString()||"/";if(u=u.replace("index.php","").replace((0,n.aU)(),"").replace(/\/\//g,"/"),u.startsWith("/"))return void(window.location=(0,n.Jv)(u))}window.location=(0,n.Jv)("/")},isMobileBrowser:e=>(e=e.toLowerCase()).includes("and_")||e.includes("android")||e.includes("ios_")||e.includes("mobile")||e.includes("_mob")||e.includes("samsung")}};var de=r(85072),ae=r.n(de),se=r(97825),ie=r.n(se),fe=r(77659),oe=r.n(fe),ce=r(55056),le=r.n(ce),ve=r(10540),pe=r.n(ve),be=r(41113),me=r.n(be),he=r(27086),ye={};ye.styleTagTransform=me(),ye.setAttributes=le(),ye.insert=oe().bind(null,"head"),ye.domAPI=ie(),ye.insertStyleElement=pe(),ae()(he.A,ye),he.A&&he.A.locals&&he.A.locals;const ge=(0,ue.A)(te,(function(){var e=this,u=e._self._c;return u("div",{staticClass:"content-unsupported-browser guest-box"},[u("NcEmptyContent",{scopedSlots:e._u([{key:"icon",fn:function(){return[u("Web")]},proxy:!0},{key:"action",fn:function(){return[u("div",[u("h2",[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Your browser is not supported. Please upgrade to a newer version or a supported one."))+"\n\t\t\t\t")]),e._v(" "),u("NcButton",{staticClass:"content-unsupported-browser__continue",attrs:{type:"primary"},on:{click:e.forceBrowsing}},[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Continue with this unsupported browser"))+"\n\t\t\t\t")])],1),e._v(" "),u("ul",{staticClass:"content-unsupported-browser__list"},[u("h3",[e._v(e._s(e.t("core","Supported versions")))]),e._v(" "),e._l(e.formattedBrowsersList,(function(r){return u("li",{key:r},[e._v("\n\t\t\t\t\t"+e._s(r)+"\n\t\t\t\t")])}))],2)]},proxy:!0}])},[e._v("\n\t\t"+e._s(e.t("core","This browser is not supported"))+"\n\t\t")])],1)}),[],!1,null,"7e9eda06",null).exports;"true"===q.getItem(z)&&(window.location=(0,n.Jv)("/")),new t.Ay({el:"#unsupported-browser",name:"UnsupportedBrowserRoot",render:e=>e(ge)})},93928:(e,u,r)=>{var n=r(74150);function t(){}e.exports={loadQueries:function(){throw new n("Sharable configs are not supported in client-side build of Browserslist")},getStat:function(e){return e.stats},loadConfig:function(e){if(e.config)throw new n("Browserslist config are not supported in client-side build")},loadCountry:function(){throw new n("Country statistics are not supported in client-side build of Browserslist")},loadFeature:function(){throw new n("Supports queries are not available in client-side build of Browserslist")},currentNode:function(e,u){return e(["maintained node versions"],u)[0]},parseConfig:t,readConfig:t,findConfig:t,clearCaches:t,oldDataWarning:t,env:{}}},74150:e=>{function u(e){this.name="BrowserslistError",this.message=e,this.browserslist=!0,Error.captureStackTrace&&Error.captureStackTrace(this,u)}u.prototype=Error.prototype,e.exports=u},94364:(e,u,r)=>{var n=r(73909),t=r(76019).X,d=r(93147),a=r(18411),s=r(68093),i=r(74150),f=r(6319),o=r(93928),c="37";function l(e,u){return 0===(e+".").indexOf(u+".")}function v(e){return e.filter((function(e){return"string"==typeof e}))}function p(e){var u=e;return 3===e.split(".").length&&(u=e.split(".").slice(0,-1).join(".")),u}function b(e){return function(u){return e+" "+u}}function m(e){return parseInt(e.split(".")[0])}function h(e,u){if(0===e.length)return[];var r=y(e.map(m)),n=r[r.length-u];if(!n)return e;for(var t=[],d=e.length-1;d>=0&&!(n>m(e[d]));d--)t.unshift(e[d]);return t}function y(e){for(var u=[],r=0;r<e.length;r++)-1===u.indexOf(e[r])&&u.push(e[r]);return u}function g(e,u,r){for(var n in r)e[u+" "+n]=r[n]}function C(e,u){return u=parseFloat(u),">"===e?function(e){return r(e)>u}:">="===e?function(e){return r(e)>=u}:"<"===e?function(e){return parseFloat(e)<u}:function(e){return parseFloat(e)<=u};function r(e){return parseFloat(e.split("-")[1]||e)}}function B(e){return parseInt(e)}function _(e,u){return e<u?-1:e>u?1:0}function A(e,u){return _(parseInt(e[0]),parseInt(u[0]))||_(parseInt(e[1]||"0"),parseInt(u[1]||"0"))||_(parseInt(e[2]||"0"),parseInt(u[2]||"0"))}function x(e,u){return void 0===(u=u.split(".").map(B))[1]&&(u[1]="x"),"<="===e?function(e){return w(e=e.split(".").map(B),u)<=0}:function(e){return w(e=e.split(".").map(B),u)>=0}}function w(e,u){return e[0]!==u[0]?e[0]<u[0]?-1:1:"x"===u[1]?0:e[1]!==u[1]?e[1]<u[1]?-1:1:0}function S(e,u){var r=function(e,u){return-1!==e.versions.indexOf(u)?u:!!M.versionAliases[e.name][u]&&M.versionAliases[e.name][u]}(e,u);return r||1===e.versions.length&&e.versions[0]}function j(e,u){return e/=1e3,Object.keys(t).reduce((function(r,n){var t=P(n,u);if(!t)return r;var d=Object.keys(t.releaseDate).filter((function(u){var r=t.releaseDate[u];return null!==r&&r>=e}));return r.concat(d.map(b(t.name)))}),[])}function k(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function P(e,u){if(e=e.toLowerCase(),e=M.aliases[e]||e,u.mobileToDesktop&&M.desktopNames[e]){var r=M.data[M.desktopNames[e]];if("android"===e)return t=k(M.data[e]),d=r,t.released=E(t.released,d.released),t.versions=E(t.versions,d.versions),t.releaseDate=function(e){var u={};for(var r in e)u[r]=e[r];return u}(t.releaseDate),t.released.forEach((function(e){void 0===t.releaseDate[e]&&(t.releaseDate[e]=d.releaseDate[e])})),t;var n=k(r);return n.name=e,n}var t,d;return M.data[e]}function E(e,u){var r=u.indexOf(c);return e.filter((function(e){return/^(?:[2-4]\.|[34]$)/.test(e)})).concat(u.slice(r))}function O(e,u){var r=P(e,u);if(!r)throw new i("Unknown browser "+e);return r}function D(e,u,r,n){var t=1;switch(u){case"android":if(n.mobileToDesktop)return e;var d=M.data.chrome.released;t=d.length-d.indexOf(c);break;case"op_mob":t=m(M.data.op_mob.released.slice(-1)[0])-14+1;break;default:return e}return r<=t?e.slice(-1):e.slice(t-1-r)}function T(e,u){return"string"==typeof e&&(e.indexOf("y")>=0||u&&e.indexOf("a")>=0)}function R(e,u){return f(V,e).reduce((function(e,r,n){if(r.not&&0===n)throw new i("Write any browsers query (for instance, `defaults`) before `"+r.query+"`");var t=V[r.type].select.call(M,u,r).map((function(e){var r=e.split(" ");return"0"===r[1]?r[0]+" "+P(r[0],u).versions[0]:e}));if("and"===r.compose)return r.not?e.filter((function(e){return-1===t.indexOf(e)})):e.filter((function(e){return-1!==t.indexOf(e)}));if(r.not){var d={};return t.forEach((function(e){d[e]=!0})),e.filter((function(e){return!d[e]}))}return e.concat(t)}),[])}function N(e){return void 0===e&&(e={}),void 0===e.path&&(e.path=a.resolve?a.resolve("."):"."),e}function L(e,u){null==e&&(e=M.loadConfig(u)||M.defaults);return e}function F(e){if("string"!=typeof e&&!Array.isArray(e))throw new i("Browser queries must be an array or string. Got "+typeof e+".")}var I={};function M(e,u){F(e=L(e,u=N(u)));var r={ignoreUnknownVersions:u.ignoreUnknownVersions,dangerousExtend:u.dangerousExtend,mobileToDesktop:u.mobileToDesktop,path:u.path,env:u.env};o.oldDataWarning(M.data);var n=o.getStat(u,M.data);if(n)for(var t in r.customUsage={},n)g(r.customUsage,t,n[t]);var d=JSON.stringify([e,r]);if(I[d])return I[d];var a=y(R(e,r)).sort((function(e,u){if(e=e.split(" "),u=u.split(" "),e[0]===u[0]){var r=e[1].split("-")[0];return A(u[1].split("-")[0].split("."),r.split("."))}return _(e[0],u[0])}));return o.env.BROWSERSLIST_DISABLE_CACHE||(I[d]=a),a}function U(e,u){var r=M.nodeVersions.filter((function(e){return l(e,u.version)}));if(0===r.length){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+u.version+" of Node.js")}return["node "+r[r.length-1]]}function G(e,u){var r=parseInt(u.year),n=parseInt(u.month||"01")-1,t=parseInt(u.day||"01");return j(Date.UTC(r,n,t,0,0,0),e)}function H(e,u){var r=parseFloat(u.coverage),n=M.usage.global;if(u.place)if(u.place.match(/^my\s+stats$/i)){if(!e.customUsage)throw new i("Custom usage statistics was not provided");n=e.customUsage}else{var t;t=2===u.place.length?u.place.toUpperCase():u.place.toLowerCase(),o.loadCountry(M.usage,t,M.data),n=M.usage[t]}for(var d,a=Object.keys(n).sort((function(e,u){return n[u]-n[e]})),s=0,f=[],c=0;c<a.length&&(d=a[c],0!==n[d])&&(s+=n[d],f.push(d),!(s>=r));c++);return f}M.parse=function(e,u){return F(e=L(e,u=N(u))),f(V,e)},M.cache={},M.data={},M.usage={global:{},custom:null},M.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"],M.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"},M.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",android:"chrome"},M.versionAliases={},M.clearCaches=o.clearCaches,M.parseConfig=o.parseConfig,M.readConfig=o.readConfig,M.findConfig=o.findConfig,M.loadConfig=o.loadConfig,M.coverage=function(e,u){var r;if(void 0===u)r=M.usage.global;else if("my stats"===u){var n={};n.path=a.resolve?a.resolve("."):".";var t=o.getStat(n);if(!t)throw new i("Custom usage statistics was not provided");for(var d in r={},t)g(r,d,t[d])}else if("string"==typeof u)u=u.length>2?u.toLowerCase():u.toUpperCase(),o.loadCountry(M.usage,u,M.data),r=M.usage[u];else for(var s in"dataByBrowser"in u&&(u=u.dataByBrowser),r={},u)for(var f in u[s])r[s+" "+f]=u[s][f];return e.reduce((function(e,u){var n=r[u];return void 0===n&&(n=r[u.replace(/ \S+$/," 0")]),e+(n||0)}),0)};var V={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(e,u){return Object.keys(t).reduce((function(r,n){var t=P(n,e);if(!t)return r;var d=h(t.released,u.versions);return d=D(d=d.map(b(t.name)),t.name,u.versions,e),r.concat(d)}),[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(e,u){return Object.keys(t).reduce((function(r,n){var t=P(n,e);if(!t)return r;var d=t.released.slice(-u.versions);return d=D(d=d.map(b(t.name)),t.name,u.versions,e),r.concat(d)}),[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(e,u){return h(Object.keys(s),u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(e,u){return h(M.nodeVersions,u.versions).map((function(e){return"node "+e}))}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),n=h(r.released,u.versions).map(b(r.name));return D(n,r.name,u.versions,e)}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(e,u){return Object.keys(s).slice(-u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(e,u){return M.nodeVersions.slice(-u.versions).map((function(e){return"node "+e}))}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),n=r.released.slice(-u.versions).map(b(r.name));return D(n,r.name,u.versions,e)}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(e){return Object.keys(t).reduce((function(u,r){var n=P(r,e);if(!n)return u;var t=n.versions.filter((function(e){return-1===n.released.indexOf(e)}));return t=t.map(b(n.name)),u.concat(t)}),[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e);return r.versions.filter((function(e){return-1===r.released.indexOf(e)})).map(b(r.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(e,u){return j(Date.now()-31558432982.4*u.years,e)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:G},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:G},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:G},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(e,u){var r=parseFloat(u.popularity),n=M.usage.global;return Object.keys(n).reduce((function(e,t){return">"===u.sign?n[t]>r&&e.push(t):"<"===u.sign?n[t]<r&&e.push(t):"<="===u.sign?n[t]<=r&&e.push(t):n[t]>=r&&e.push(t),e}),[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var n=e.customUsage;return Object.keys(n).reduce((function(e,t){var d=n[t];return null==d||(">"===u.sign?d>r&&e.push(t):"<"===u.sign?d<r&&e.push(t):"<="===u.sign?d<=r&&e.push(t):d>=r&&e.push(t)),e}),[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity),n=o.loadStat(e,u.config,M.data);if(n)for(var t in e.customUsage={},n)g(e.customUsage,t,n[t]);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var d=e.customUsage;return Object.keys(d).reduce((function(e,n){var t=d[n];return null==t||(">"===u.sign?t>r&&e.push(n):"<"===u.sign?t<r&&e.push(n):"<="===u.sign?t<=r&&e.push(n):t>=r&&e.push(n)),e}),[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(e,u){var r=parseFloat(u.popularity),n=u.place;n=2===n.length?n.toUpperCase():n.toLowerCase(),o.loadCountry(M.usage,n,M.data);var t=M.usage[n];return Object.keys(t).reduce((function(e,n){var d=t[n];return null==d||(">"===u.sign?d>r&&e.push(n):"<"===u.sign?d<r&&e.push(n):"<="===u.sign?d<=r&&e.push(n):d>=r&&e.push(n)),e}),[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:H},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:H},supports:{matches:["supportType","feature"],regexp:/^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/,select:function(e,u){o.loadFeature(M.cache,u.feature);var r="fully"!==u.supportType,n=M.cache[u.feature],t=[];for(var d in n){for(var a=P(d,e),s=a.released.length-1;s>=0&&!(a.released[s]in n[d]);)s--;var i=e.mobileToDesktop&&d in M.desktopNames&&T(n[d][a.released[s]],r);a.versions.forEach((function(e){var u=n[d][e];void 0===u&&i&&(u=n[M.desktopNames[d]][e]),T(u,r)&&t.push(d+" "+e)}))}return t}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=p(u.from),n=p(u.to),t=parseFloat(u.from),d=parseFloat(u.to);if(!s[r])throw new i("Unknown version "+t+" of electron");if(!s[n])throw new i("Unknown version "+d+" of electron");return Object.keys(s).filter((function(e){var u=parseFloat(e);return u>=t&&u<=d})).map((function(e){return"chrome "+s[e]}))}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter(x(">=",u.from)).filter(x("<=",u.to)).map((function(e){return"node "+e}))}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=O(u.browser,e),n=parseFloat(S(r,u.from)||u.from),t=parseFloat(S(r,u.to)||u.to);return r.released.filter((function(e){var u=parseFloat(e);return u>=n&&u<=t})).map(b(r.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){var r=p(u.version);return Object.keys(s).filter(C(u.sign,r)).map((function(e){return"chrome "+s[e]}))}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter((r=u.sign,n=u.version,(n=n.split(".").map(B))[1]=n[1]||0,n[2]=n[2]||0,">"===r?function(e){return A(e=e.split(".").map(B),n)>0}:">="===r?function(e){return A(e=e.split(".").map(B),n)>=0}:"<"===r?function(e){return e=e.split(".").map(B),A(n,e)>0}:function(e){return e=e.split(".").map(B),A(n,e)>=0})).map((function(e){return"node "+e}));var r,n}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(e,u){var r=u.version,n=O(u.browser,e),t=M.versionAliases[n.name][r];return t&&(r=t),n.released.filter(C(u.sign,r)).map((function(e){return n.name+" "+e}))}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 115","firefox 128"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(e,u){var r=p(u.version),n=s[r];if(!n)throw new i("Unknown version "+u.version+" of electron");return["chrome "+n]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:U},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:U},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:U},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(e){return[o.currentNode(R,e)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(e){var u=Date.now();return R(Object.keys(d).filter((function(e){return u<Date.parse(d[e].end)&&u>Date.parse(d[e].start)&&(r=e.slice(1),M.nodeVersions.some((function(e){return l(e,r)})));var r})).map((function(e){return"node "+e.slice(1)})),e)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(e,u){var r=u.version;/^tp$/i.test(r)&&(r="TP");var n=O(u.browser,e),t=S(n,r);if(t)r=t;else{if(!(t=S(n,t=-1===r.indexOf(".")?r+".0":r.replace(/\.0$/,"")))){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+r+" of "+u.browser)}r=t}return[n.name+" "+r]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,select:function(e){return M(void 0,e)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,select:function(e,u){return R(o.loadQueries(e,u.config),e)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(e){return R(M.defaults,e)}},dead:{matches:[],regexp:/^dead$/i,select:function(e){return R(["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"],e)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(e,u){throw P(u.query,e)?new i("Specify versions in Browserslist query for browser "+u.query):(r=u.query,new i("Unknown browser query `"+r+"`. Maybe you are using old Browserslist or made typo in query."));var r}}};!function(){for(var e in t){var u=t[e];M.data[e]={name:e,versions:v(t[e].versions),released:v(t[e].versions.slice(0,-3)),releaseDate:t[e].release_date},g(M.usage.global,e,u.usage_global),M.versionAliases[e]={};for(var r=0;r<u.versions.length;r++){var d=u.versions[r];if(d&&-1!==d.indexOf("-"))for(var a=d.split("-"),s=0;s<a.length;s++)M.versionAliases[e][a[s]]=d}}M.nodeVersions=n.map((function(e){return e.version}))}(),e.exports=M},6319:e=>{var u=/^\s+and\s+(.*)/i,r=/^(?:,\s*|\s+or\s+)(.*)/i;function n(e){return Array.isArray(e)?e.reduce((function(e,u){return e.concat(n(u))}),[]):[e]}function t(e,u){var r={query:u};for(var n in 0===u.indexOf("not ")&&(r.not=!0,u=u.slice(4)),e){var t=e[n],d=u.match(t.regexp);if(d){r.type=n;for(var a=0;a<t.matches.length;a++)r[t.matches[a]]=d[a+1];return r}}return r.type="unknown",r}function d(e,n,d){var a;return function(e,u){for(var r=1,n=e.length;r<=n;r++)if(u(e.substr(-r,r),r,n))return e.slice(0,-r);return""}(n,(function(n,s,i){return u.test(n)?((a=t(e,n.match(u)[1])).compose="and",d.unshift(a),!0):r.test(n)?((a=t(e,n.match(r)[1])).compose="or",d.unshift(a),!0):s===i&&((a=t(e,n.trim())).compose="or",d.unshift(a),!0)}))}e.exports=function(e,u){return Array.isArray(u)||(u=[u]),n(u.map((function(u){var r=[];do{u=d(e,u,r)}while(u);return r})))}},96481:e=>{e.exports={A:{A:{K:0,E:0,F:.0300576,G:.0601152,A:0,B:.541037,bC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bC","K","E","F","G","A","B","","",""],E:"IE",F:{bC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968e3}},B:{A:{1:.007426,2:.014852,3:.011139,4:.007426,5:.007426,6:.011139,7:.007426,8:.014852,9:.03713,C:0,L:0,M:0,H:0,N:0,O:.003713,P:.03713,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:.011139,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:.003713,r:.007426,s:.063121,t:.007426,u:.007426,AB:.018565,BB:.044556,CB:.059408,DB:.133668,EB:2.41716,FB:2.03844,D:.007426},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","H","N","O","P","Q","I","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","D","","",""],E:"Edge",F:{1:1680825600,2:1683158400,3:1685664e3,4:1689897600,5:1692576e3,6:1694649600,7:1697155200,8:1698969600,9:1701993600,C:1438128e3,L:1447286400,M:1470096e3,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I:1581033600,R:1586736e3,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:161136e4,Y:1614816e3,Z:1618358400,a:1622073600,b:1626912e3,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,AB:1706227200,BB:1708732800,CB:1711152e3,DB:1713398400,EB:1715990400,FB:1718841600,D:1721865600},D:{C:"ms",L:"ms",M:"ms",H:"ms",N:"ms",O:"ms",P:"ms"}},C:{A:{0:0,1:0,2:.014852,3:0,4:.367587,5:0,6:.007426,7:.070547,8:0,9:.007426,cC:0,DC:0,J:.003713,GB:0,K:0,E:0,F:0,G:0,A:0,B:.018565,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:.003713,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:.007426,aB:.007426,bB:.007426,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:.051982,jB:.003713,kB:.003713,lB:0,mB:.018565,nB:0,oB:0,EC:.003713,pB:0,FC:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":.014852,Q:0,I:0,R:0,GC:0,S:0,T:0,U:0,V:0,W:0,X:.007426,Y:0,Z:0,a:0,b:0,c:0,d:.003713,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:.007426,m:.007426,n:0,o:0,p:0,q:0,r:.003713,s:.007426,t:0,u:0,AB:.007426,BB:.007426,CB:.011139,DB:.018565,EB:.029704,FB:.790869,D:.794582,HC:.007426,IC:0,JC:0,dC:0,eC:0,fC:0},B:"moz",C:["cC","DC","eC","fC","J","GB","K","E","F","G","A","B","C","L","M","H","N","O","P","HB","v","w","x","y","z","0","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","EC","pB","FC","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","Q","I","R","GC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","D","HC","IC","JC","dC"],E:"Firefox",F:{0:1379376e3,1:1681171200,2:1683590400,3:1686009600,4:1688428800,5:1690848e3,6:1693267200,7:1695686400,8:1698105600,9:1700524800,cC:1161648e3,DC:1213660800,eC:124632e4,fC:1264032e3,J:1300752e3,GB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968e3,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112e3,O:1349740800,P:1353628800,HB:1357603200,v:1361232e3,w:1364860800,x:1368489600,y:1372118400,z:1375747200,IB:1386633600,JB:1391472e3,KB:1395100800,LB:1398729600,MB:1402358400,NB:1405987200,OB:1409616e3,PB:1413244800,QB:1417392e3,RB:1421107200,SB:1424736e3,TB:1428278400,UB:1431475200,VB:1435881600,WB:1439251200,XB:144288e4,YB:1446508800,ZB:1450137600,aB:1453852800,bB:1457395200,cB:1461628800,dB:1465257600,eB:1470096e3,fB:1474329600,gB:1479168e3,hB:1485216e3,iB:1488844800,jB:149256e4,kB:1497312e3,lB:1502150400,mB:1506556800,nB:1510617600,oB:1516665600,EC:1520985600,pB:1525824e3,FC:1529971200,qB:1536105600,rB:1540252800,sB:1544486400,tB:154872e4,uB:1552953600,vB:1558396800,wB:1562630400,xB:1567468800,yB:1571788800,zB:1575331200,"0B":1578355200,"1B":1581379200,"2B":1583798400,"3B":1586304e3,"4B":1588636800,"5B":1591056e3,"6B":1593475200,Q:1595894400,I:1598313600,R:1600732800,GC:1603152e3,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392e3,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536e3,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632e3,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752e3,AB:1702944e3,BB:1705968e3,CB:1708387200,DB:1710806400,EB:1713225600,FB:1715644800,D:1718064e3,HC:1720483200,IC:null,JC:null,dC:null}},D:{A:{0:0,1:.044556,2:.096538,3:.092825,4:.029704,5:.189363,6:.107677,7:.081686,8:.066834,9:.133668,J:0,GB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:.003713,RB:0,SB:0,TB:0,UB:.011139,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:.007426,eB:.025991,fB:.022278,gB:.011139,hB:0,iB:.003713,jB:.007426,kB:0,lB:0,mB:.011139,nB:0,oB:.003713,EC:0,pB:0,FC:.003713,qB:0,rB:.003713,sB:0,tB:0,uB:.022278,vB:.003713,wB:0,xB:.022278,yB:.070547,zB:.003713,"0B":0,"1B":.011139,"2B":.007426,"3B":.007426,"4B":.007426,"5B":.029704,"6B":.018565,Q:.107677,I:.011139,R:.018565,S:.033417,T:.007426,U:.011139,V:.044556,W:.070547,X:.011139,Y:.011139,Z:.014852,a:.059408,b:.018565,c:.025991,d:.059408,e:.011139,f:.014852,g:.018565,h:.070547,i:.03713,j:.040843,k:.055695,l:.03713,m:.167085,n:.096538,o:.014852,p:.033417,q:.033417,r:.051982,s:1.4852,t:.159659,u:.040843,AB:.211641,BB:.181937,CB:.278475,DB:.983945,EB:10.1922,FB:6.28982,D:.025991,HC:.007426,IC:0,JC:0},B:"webkit",C:["","","","","","","J","GB","K","E","F","G","A","B","C","L","M","H","N","O","P","HB","v","w","x","y","z","0","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","EC","pB","FC","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","Q","I","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","D","HC","IC","JC"],E:"Chrome",F:{0:1357862400,1:1680566400,2:1682985600,3:1685404800,4:1689724800,5:1692057600,6:1694476800,7:1696896e3,8:1698710400,9:1701993600,J:1264377600,GB:1274745600,K:1283385600,E:1287619200,F:1291248e3,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,HB:1332892800,v:133704e4,w:1340668800,x:1343692800,y:1348531200,z:1352246400,IB:1361404800,JB:1364428800,KB:1369094400,LB:1374105600,MB:1376956800,NB:1384214400,OB:1389657600,PB:1392940800,QB:1397001600,RB:1400544e3,SB:1405468800,TB:1409011200,UB:141264e4,VB:1416268800,WB:1421798400,XB:1425513600,YB:1429401600,ZB:143208e4,aB:1437523200,bB:1441152e3,cB:1444780800,dB:1449014400,eB:1453248e3,fB:1456963200,gB:1460592e3,hB:1464134400,iB:1469059200,jB:1472601600,kB:1476230400,lB:1480550400,mB:1485302400,nB:1489017600,oB:149256e4,EC:1496707200,pB:1500940800,FC:1504569600,qB:1508198400,rB:1512518400,sB:1516752e3,tB:1520294400,uB:1523923200,vB:1527552e3,wB:1532390400,xB:1536019200,yB:1539648e3,zB:1543968e3,"0B":154872e4,"1B":1552348800,"2B":1555977600,"3B":1559606400,"4B":1564444800,"5B":1568073600,"6B":1571702400,Q:1575936e3,I:1580860800,R:1586304e3,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272e3,a:1621987200,b:1626739200,c:1630368e3,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512e3,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656e3,r:166968e4,s:1673308800,t:1675728e3,u:1678147200,AB:1705968e3,BB:1708387200,CB:1710806400,DB:1713225600,EB:1715644800,FB:1718064e3,D:1721174400,HC:null,IC:null,JC:null}},E:{A:{J:0,GB:0,K:0,E:0,F:.003713,G:.003713,A:0,B:0,C:0,L:.007426,M:.033417,H:.007426,gC:0,KC:0,hC:0,iC:0,jC:0,kC:0,LC:0,"7B":.007426,"8B":.011139,lC:.063121,mC:.089112,nC:.025991,MC:.011139,NC:.022278,"9B":.033417,oC:.241345,AC:.029704,OC:.044556,PC:.03713,QC:.089112,RC:.033417,SC:.055695,pC:.33417,BC:.025991,TC:.055695,UC:.066834,VC:.07426,WC:.360161,XC:1.48891,YC:0,CC:.003713,qC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","gC","KC","J","GB","hC","K","iC","E","jC","F","G","kC","A","LC","B","7B","C","8B","L","lC","M","mC","H","nC","MC","NC","9B","oC","AC","OC","PC","QC","RC","SC","pC","BC","TC","UC","VC","WC","XC","YC","CC","qC"],E:"Safari",F:{gC:1205798400,KC:1226534400,J:1244419200,GB:1275868800,hC:131112e4,K:1343174400,iC:13824e5,E:13824e5,jC:1410998400,F:1413417600,G:1443657600,kC:1458518400,A:1474329600,LC:1490572800,B:1505779200,"7B":1522281600,C:1537142400,"8B":1553472e3,L:1568851200,lC:1585008e3,M:1600214400,mC:1619395200,H:1632096e3,nC:1635292800,MC:1639353600,NC:1647216e3,"9B":1652745600,oC:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432e3,RC:1679875200,SC:1684368e3,pC:1690156800,BC:1695686400,TC:1698192e3,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null,qC:null}},F:{A:{0:0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:.003713,TB:0,UB:0,VB:0,WB:.003713,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:.014852,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0,Q:0,I:0,R:0,GC:0,S:.007426,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:.040843,f:0,g:0,h:0,i:0,j:0,k:0,l:.044556,m:0,n:0,o:0,p:0,q:.003713,r:0,s:.497542,t:.326744,u:.048269,rC:0,sC:0,tC:0,uC:0,"7B":0,ZC:0,vC:0,"8B":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","G","rC","sC","tC","uC","B","7B","ZC","vC","C","8B","H","N","O","P","HB","v","w","x","y","z","0","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","Q","I","R","GC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","","",""],E:"Opera",F:{0:1413331200,G:1150761600,rC:1223424e3,sC:1251763200,tC:1267488e3,uC:1277942400,B:1292457600,"7B":1302566400,ZC:1309219200,vC:1323129600,C:1323129600,"8B":1352073600,H:1372723200,N:1377561600,O:1381104e3,P:1386288e3,HB:1390867200,v:1393891200,w:1399334400,x:1401753600,y:1405987200,z:1409616e3,IB:1417132800,JB:1422316800,KB:1425945600,LB:1430179200,MB:1433808e3,NB:1438646400,OB:1442448e3,PB:1445904e3,QB:1449100800,RB:1454371200,SB:1457308800,TB:146232e4,UB:1465344e3,VB:1470096e3,WB:1474329600,XB:1477267200,YB:1481587200,ZB:1486425600,aB:1490054400,bB:1494374400,cB:1498003200,dB:1502236800,eB:1506470400,fB:1510099200,gB:1515024e3,hB:1517961600,iB:1521676800,jB:1525910400,kB:1530144e3,lB:1534982400,mB:1537833600,nB:1543363200,oB:1548201600,pB:1554768e3,qB:1561593600,rB:1566259200,sB:1570406400,tB:1573689600,uB:1578441600,vB:1583971200,wB:1587513600,xB:1592956800,yB:1595894400,zB:1600128e3,"0B":1603238400,"1B":161352e4,"2B":1612224e3,"3B":1616544e3,"4B":1619568e3,"5B":1623715200,"6B":1627948800,Q:1631577600,I:1633392e3,R:1635984e3,GC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152e3,Z:1660780800,a:1663113600,b:1668816e3,c:1668643200,d:1671062400,e:1675209600,f:1677024e3,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:169992e4,o:169992e4,p:1702944e3,q:1707264e3,r:1710115200,s:1711497600,t:1716336e3,u:1719273600},D:{G:"o",B:"o",C:"o",rC:"o",sC:"o",tC:"o",uC:"o","7B":"o",ZC:"o",vC:"o","8B":"o"}},G:{A:{F:0,KC:0,wC:0,aC:.00284927,xC:.00142463,yC:.00854781,zC:.00854781,"0C":.00142463,"1C":.00712317,"2C":.0299173,"3C":.00569854,"4C":.0512868,"5C":.108272,"6C":.0128217,"7C":.00997244,"8C":.189476,"9C":.00284927,AD:.0185202,BD:.00997244,CD:.0370405,DD:.105423,ED:.112546,FD:.0569854,MC:.0612593,NC:.0698071,"9B":.0840534,GD:.755056,AC:.169531,OC:.354734,PC:.173805,QC:.299173,RC:.0641085,SC:.126792,HD:1.01149,BC:.103998,TC:.165258,UC:.166682,VC:.274954,WC:1.95317,XC:7.56766,YC:.0128217,CC:.0384651},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","KC","wC","aC","xC","yC","zC","F","0C","1C","2C","3C","4C","5C","6C","7C","8C","9C","AD","BD","CD","DD","ED","FD","MC","NC","9B","GD","AC","OC","PC","QC","RC","SC","HD","BC","TC","UC","VC","WC","XC","YC","CC",""],E:"Safari on iOS",F:{KC:1270252800,wC:1283904e3,aC:1299628800,xC:1331078400,yC:1359331200,zC:1394409600,F:1410912e3,"0C":1413763200,"1C":1442361600,"2C":1458518400,"3C":1473724800,"4C":1490572800,"5C":1505779200,"6C":1522281600,"7C":1537142400,"8C":1553472e3,"9C":1568851200,AD:1572220800,BD:1580169600,CD:1585008e3,DD:1600214400,ED:1619395200,FD:1632096e3,MC:1639353600,NC:1647216e3,"9B":1652659200,GD:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432e3,RC:1679875200,SC:1684368e3,HD:1690156800,BC:1694995200,TC:1698192e3,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null}},H:{A:{ID:.05},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ID","","",""],E:"Opera Mini",F:{ID:1426464e3}},I:{A:{DC:0,J:653848e-10,D:.651756,JD:0,KD:0,LD:0,MD:13077e-8,aC:326924e-9,ND:0,OD:.00117693},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","JD","KD","LD","DC","J","MD","aC","ND","OD","D","","",""],E:"Android Browser",F:{JD:1256515200,KD:1274313600,LD:1291593600,DC:1298332800,J:1318896e3,MD:1341792e3,aC:1374624e3,ND:1386547200,OD:1401667200,D:1721692800}},J:{A:{E:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","A","","",""],E:"Blackberry Browser",F:{E:1325376e3,A:1359504e3}},K:{A:{A:0,B:0,C:0,I:1.12567,"7B":0,ZC:0,"8B":0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","7B","ZC","C","8B","I","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752e3,"7B":1314835200,ZC:1318291200,C:1330300800,"8B":1349740800,I:1709769600},D:{I:"webkit"}},L:{A:{D:43.5971},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Chrome for Android",F:{D:1721692800}},M:{A:{D:.333211},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Firefox for Android",F:{D:1718064e3}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456e3}},O:{A:{"9B":.993346},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","9B","","",""],E:"UC Browser for Android",F:{"9B":1710115200},D:{"9B":"webkit"}},P:{A:{0:2.06723,J:.0969013,v:.0215336,w:.053834,x:.0646008,y:.0861344,z:.107668,PD:.0107668,QD:.0107668,RD:.0430672,SD:0,TD:0,LC:0,UD:.0107668,VD:0,WD:.0107668,XD:0,YD:0,AC:0,BC:.0215336,CC:.0107668,ZD:.0215336},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","PD","QD","RD","SD","TD","LC","UD","VD","WD","XD","YD","AC","BC","CC","ZD","v","w","x","y","z","0","","",""],E:"Samsung Internet",F:{0:1715126400,J:1461024e3,PD:1481846400,QD:1509408e3,RD:1528329600,SD:1546128e3,TD:1554163200,LC:1567900800,UD:1582588800,VD:1593475200,WD:1605657600,XD:1618531200,YD:1629072e3,AC:1640736e3,BC:1651708800,CC:1659657600,ZD:1667260800,v:1677369600,w:1684454400,x:1689292800,y:1697587200,z:1711497600}},Q:{A:{aD:.31435},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","aD","","",""],E:"QQ Browser",F:{aD:1710288e3}},R:{A:{bD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bD","","",""],E:"Baidu Browser",F:{bD:1710201600}},S:{A:{cD:.081731,dD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","cD","dD","","",""],E:"KaiOS Browser",F:{cD:1527811200,dD:1631664e3}}}},56438:e=>{e.exports={0:"25",1:"112",2:"113",3:"114",4:"115",5:"116",6:"117",7:"118",8:"119",9:"120",A:"10",B:"11",C:"12",D:"127",E:"7",F:"8",G:"9",H:"15",I:"80",J:"4",K:"6",L:"13",M:"14",N:"16",O:"17",P:"18",Q:"79",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"107",r:"108",s:"109",t:"110",u:"111",v:"20",w:"21",x:"22",y:"23",z:"24",AB:"121",BB:"122",CB:"123",DB:"124",EB:"125",FB:"126",GB:"5",HB:"19",IB:"26",JB:"27",KB:"28",LB:"29",MB:"30",NB:"31",OB:"32",PB:"33",QB:"34",RB:"35",SB:"36",TB:"37",UB:"38",VB:"39",WB:"40",XB:"41",YB:"42",ZB:"43",aB:"44",bB:"45",cB:"46",dB:"47",eB:"48",fB:"49",gB:"50",hB:"51",iB:"52",jB:"53",kB:"54",lB:"55",mB:"56",nB:"57",oB:"58",pB:"60",qB:"62",rB:"63",sB:"64",tB:"65",uB:"66",vB:"67",wB:"68",xB:"69",yB:"70",zB:"71","0B":"72","1B":"73","2B":"74","3B":"75","4B":"76","5B":"77","6B":"78","7B":"11.1","8B":"12.1","9B":"15.5",AC:"16.0",BC:"17.0",CC:"18.0",DC:"3",EC:"59",FC:"61",GC:"82",HC:"128",IC:"129",JC:"130",KC:"3.2",LC:"10.1",MC:"15.2-15.3",NC:"15.4",OC:"16.1",PC:"16.2",QC:"16.3",RC:"16.4",SC:"16.5",TC:"17.1",UC:"17.2",VC:"17.3",WC:"17.4",XC:"17.5",YC:"17.6",ZC:"11.5",aC:"4.2-4.3",bC:"5.5",cC:"2",dC:"131",eC:"3.5",fC:"3.6",gC:"3.1",hC:"5.1",iC:"6.1",jC:"7.1",kC:"9.1",lC:"13.1",mC:"14.1",nC:"15.1",oC:"15.6",pC:"16.6",qC:"TP",rC:"9.5-9.6",sC:"10.0-10.1",tC:"10.5",uC:"10.6",vC:"11.6",wC:"4.0-4.1",xC:"5.0-5.1",yC:"6.0-6.1",zC:"7.0-7.1","0C":"8.1-8.4","1C":"9.0-9.2","2C":"9.3","3C":"10.0-10.2","4C":"10.3","5C":"11.0-11.2","6C":"11.3-11.4","7C":"12.0-12.1","8C":"12.2-12.5","9C":"13.0-13.1",AD:"13.2",BD:"13.3",CD:"13.4-13.7",DD:"14.0-14.4",ED:"14.5-14.8",FD:"15.0-15.1",GD:"15.6-15.8",HD:"16.6-16.7",ID:"all",JD:"2.1",KD:"2.2",LD:"2.3",MD:"4.1",ND:"4.4",OD:"4.4.3-4.4.4",PD:"5.0-5.4",QD:"6.2-6.4",RD:"7.2-7.4",SD:"8.2",TD:"9.2",UD:"11.1-11.2",VD:"12.0",WD:"13.0",XD:"14.0",YD:"15.0",ZD:"19.0",aD:"14.9",bD:"13.52",cD:"2.5",dD:"3.0-3.1"}},90562:e=>{e.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}},76019:(e,u,r)=>{"use strict";const n=r(62660).browsers,t=r(5040).browserVersions,d=r(96481);function a(e){return Object.keys(e).reduce(((u,r)=>(u[t[r]]=e[r],u)),{})}e.exports.X=Object.keys(d).reduce(((e,u)=>{let r=d[u];return e[n[u]]=Object.keys(r).reduce(((e,u)=>("A"===u?e.usage_global=a(r[u]):"C"===u?e.versions=r[u].reduce(((e,u)=>(""===u?e.push(null):e.push(t[u]),e)),[]):"D"===u?e.prefix_exceptions=a(r[u]):"E"===u?e.browser=r[u]:"F"===u?e.release_date=Object.keys(r[u]).reduce(((e,n)=>(e[t[n]]=r[u][n],e)),{}):e.prefix=r[u],e)),{}),e}),{})},5040:(e,u,r)=>{e.exports.browserVersions=r(56438)},62660:(e,u,r)=>{e.exports.browsers=r(90562)},27086:(e,u,r)=>{"use strict";r.d(u,{A:()=>s});var n=r(71354),t=r.n(n),d=r(76314),a=r.n(d)()(t());a.push([e.id,".content-unsupported-browser[data-v-7e9eda06]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-7e9eda06]{margin:0}.content-unsupported-browser .empty-content[data-v-7e9eda06] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-7e9eda06]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-7e9eda06]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-7e9eda06]{text-align:left}","",{version:3,sources:["webpack://./core/src/views/UnsupportedBrowser.vue"],names:[],mappings:"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA",sourcesContent:["\n$spacing: 30px;\n\n.content-unsupported-browser {\n\tdisplay: flex;\n\tjustify-content: center;\n\twidth: 400px;\n\tmax-width: calc(90vw - 2 * $spacing);\n\tmargin: auto;\n\tpadding: $spacing;\n\n\t.empty-content {\n\t\tmargin: 0;\n\t\t&::v-deep .empty-content__icon {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t&__continue {\n\t\tdisplay: block;\n\t\tmargin: $spacing auto;\n\t}\n\n\t&__list {\n\t\tmargin-top: 2 * $spacing;\n\t\tmargin-bottom: $spacing;\n\t\tli {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]);const s=a},68093:e=>{e.exports={"0.20":"39",.21:"41",.22:"41",.23:"41",.24:"41",.25:"42",.26:"42",.27:"43",.28:"43",.29:"43","0.30":"44",.31:"45",.32:"45",.33:"45",.34:"45",.35:"45",.36:"47",.37:"49","1.0":"49",1.1:"50",1.2:"51",1.3:"52",1.4:"53",1.5:"54",1.6:"56",1.7:"58",1.8:"59","2.0":"61",2.1:"61","3.0":"66",3.1:"66","4.0":"69",4.1:"69",4.2:"69","5.0":"73","6.0":"76",6.1:"76","7.0":"78",7.1:"78",7.2:"78",7.3:"78","8.0":"80",8.1:"80",8.2:"80",8.3:"80",8.4:"80",8.5:"80","9.0":"83",9.1:"83",9.2:"83",9.3:"83",9.4:"83","10.0":"85",10.1:"85",10.2:"85",10.3:"85",10.4:"85","11.0":"87",11.1:"87",11.2:"87",11.3:"87",11.4:"87",11.5:"87","12.0":"89",12.1:"89",12.2:"89","13.0":"91",13.1:"91",13.2:"91",13.3:"91",13.4:"91",13.5:"91",13.6:"91","14.0":"93",14.1:"93",14.2:"93","15.0":"94",15.1:"94",15.2:"94",15.3:"94",15.4:"94",15.5:"94","16.0":"96",16.1:"96",16.2:"96","17.0":"98",17.1:"98",17.2:"98",17.3:"98",17.4:"98","18.0":"100",18.1:"100",18.2:"100",18.3:"100","19.0":"102",19.1:"102","20.0":"104",20.1:"104",20.2:"104",20.3:"104","21.0":"106",21.1:"106",21.2:"106",21.3:"106",21.4:"106","22.0":"108",22.1:"108",22.2:"108",22.3:"108","23.0":"110",23.1:"110",23.2:"110",23.3:"110","24.0":"112",24.1:"112",24.2:"112",24.3:"112",24.4:"112",24.5:"112",24.6:"112",24.7:"112",24.8:"112","25.0":"114",25.1:"114",25.2:"114",25.3:"114",25.4:"114",25.5:"114",25.6:"114",25.7:"114",25.8:"114",25.9:"114","26.0":"116",26.1:"116",26.2:"116",26.3:"116",26.4:"116",26.5:"116",26.6:"116","27.0":"118",27.1:"118",27.2:"118",27.3:"118","28.0":"120",28.1:"120",28.2:"120",28.3:"120","29.0":"122",29.1:"122",29.2:"122",29.3:"122",29.4:"122","30.0":"124",30.1:"124",30.2:"124",30.3:"124","31.0":"126",31.1:"126",31.2:"126",31.3:"126","32.0":"128"}},9182:(e,u,r)=>{"use strict";var n=r(43034),t=r(2003);e.exports={transform:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=u.length>0?u:Object.keys(n),d=void 0,a={};return r.forEach((function(u){if(!n.hasOwnProperty(u))throw new Error("Unknown compat-transform: "+u+". Available transforms are: "+Object.keys(n).join(", "));var r=n[u];d=t.transform(e,r),e=d.getAST(),"function"==typeof r.getExtra&&(a[u]=r.getExtra())})),d.setExtra(a),d}}},51537:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(u,r){var n=r.flags,t=r.groups,d=r.source;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._re=u,this._groups=t,this.flags=n,this.source=d||u.source,this.dotAll=n.includes("s"),this.global=u.global,this.ignoreCase=u.ignoreCase,this.multiline=u.multiline,this.sticky=u.sticky,this.unicode=u.unicode}return u(e,[{key:"test",value:function(e){return this._re.test(e)}},{key:"compile",value:function(e){return this._re.compile(e)}},{key:"toString",value:function(){return this._toStringResult||(this._toStringResult="/"+this.source+"/"+this.flags),this._toStringResult}},{key:"exec",value:function(e){var u=this._re.exec(e);if(!this._groups||!u)return u;for(var r in u.groups={},this._groups){var n=this._groups[r];u.groups[r]=u[n]}return u}}]),e}();e.exports={RegExpTree:r}},45640:e=>{"use strict";e.exports={_hasUFlag:!1,shouldRun:function(e){return!!e.flags.includes("s")&&(e.flags=e.flags.replace("s",""),this._hasUFlag=e.flags.includes("u"),!0)},Char:function(e){var u=e.node;if("meta"===u.kind&&"."===u.value){var r="\\uFFFF",n="";this._hasUFlag&&(r="\\u{10FFFF}",n=""),e.replace({type:"CharacterClass",expressions:[{type:"ClassRange",from:{type:"Char",value:"\\0",kind:"decimal",symbol:"\0"},to:{type:"Char",value:r,kind:"unicode",symbol:n}}]})}}}},62514:e=>{"use strict";e.exports={_groupNames:{},init:function(){this._groupNames={}},getExtra:function(){return this._groupNames},Group:function(e){var u=e.node;u.name&&(this._groupNames[u.name]=u.number,delete u.name,delete u.nameRaw)},Backreference:function(e){var u=e.node;"name"===u.kind&&(u.kind="number",u.reference=u.number,delete u.referenceRaw)}}},57559:e=>{"use strict";e.exports={RegExp:function(e){var u=e.node;u.flags.includes("x")&&(u.flags=u.flags.replace("x",""))}}},43034:(e,u,r)=>{"use strict";e.exports={dotAll:r(45640),namedCapturingGroups:r(62514),xFlag:r(57559)}},20042:e=>{"use strict";function u(e){return e?r[e.type](e):""}var r={RegExp:function(e){return"/"+u(e.body)+"/"+e.flags},Alternative:function(e){return(e.expressions||[]).map(u).join("")},Disjunction:function(e){return u(e.left)+"|"+u(e.right)},Group:function(e){var r=u(e.expression);return e.capturing?e.name?"(?<"+(e.nameRaw||e.name)+">"+r+")":"("+r+")":"(?:"+r+")"},Backreference:function(e){switch(e.kind){case"number":return"\\"+e.reference;case"name":return"\\k<"+(e.referenceRaw||e.reference)+">";default:throw new TypeError("Unknown Backreference kind: "+e.kind)}},Assertion:function(e){switch(e.kind){case"^":case"$":case"\\b":case"\\B":return e.kind;case"Lookahead":var r=u(e.assertion);return e.negative?"(?!"+r+")":"(?="+r+")";case"Lookbehind":var n=u(e.assertion);return e.negative?"(?<!"+n+")":"(?<="+n+")";default:throw new TypeError("Unknown Assertion kind: "+e.kind)}},CharacterClass:function(e){var r=e.expressions.map(u).join("");return e.negative?"[^"+r+"]":"["+r+"]"},ClassRange:function(e){return u(e.from)+"-"+u(e.to)},Repetition:function(e){return""+u(e.expression)+u(e.quantifier)},Quantifier:function(e){var u=void 0,r=e.greedy?"":"?";switch(e.kind){case"+":case"?":case"*":u=e.kind;break;case"Range":u=e.from===e.to?"{"+e.from+"}":e.to?"{"+e.from+","+e.to+"}":"{"+e.from+",}";break;default:throw new TypeError("Unknown Quantifier kind: "+e.kind)}return""+u+r},Char:function(e){var u=e.value;switch(e.kind){case"simple":return e.escaped?"\\"+u:u;case"hex":case"unicode":case"oct":case"decimal":case"control":case"meta":return u;default:throw new TypeError("Unknown Char kind: "+e.kind)}},UnicodeProperty:function(e){return"\\"+(e.negative?"P":"p")+"{"+(e.shorthand||e.binary?"":e.name+"=")+e.value+"}"}};e.exports={generate:u}},85162:e=>{"use strict";var u=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,t=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){t=!0,d=e}finally{try{!n&&s.return&&s.return()}finally{if(t)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function r(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var n=null;function t(e,u){if(!u)return!1;if(e.length!==u.length)return!1;for(var n=0;n<e.length;n++){var t=e[n],d=u[n];if(t.size!==d.size)return!1;if([].concat(r(t)).sort().join(",")!==[].concat(r(d)).sort().join(","))return!1}return!0}function d(e,u,r,n){var t=!0,d=!1,s=void 0;try{for(var i,f=n[Symbol.iterator]();!(t=(i=f.next()).done);t=!0)if(!a(e,u,r,i.value))return!1}catch(e){d=!0,s=e}finally{try{!t&&f.return&&f.return()}finally{if(d)throw s}}return!0}function a(e,u,r,t){if(!n[e]||!n[u])return!1;var d=r[e][t],a=r[u][t];return!d&&!a||n[e].has(d)&&n[u].has(a)}e.exports={minimize:function(e){var a=e.getTransitionTable(),s=Object.keys(a),i=e.getAlphabet(),f=e.getAcceptingStateNumbers();n={};var o=new Set;s.forEach((function(e){e=Number(e),f.has(e)?n[e]=f:(o.add(e),n[e]=o)}));var c=[[o,f].filter((function(e){return e.size>0}))],l=void 0,v=void 0;l=c[c.length-1],v=c[c.length-2];for(var p=function(){var e,u={},t=!0,s=!1,f=void 0;try{for(var o,p=l[Symbol.iterator]();!(t=(o=p.next()).done);t=!0){var b=o.value,m={},h=(e=b,Array.isArray(e)?e:Array.from(e)),y=h[0],g=h.slice(1);m[y]=new Set([y]);var C=!0,B=!1,_=void 0;try{e:for(var A,x=g[Symbol.iterator]();!(C=(A=x.next()).done);C=!0){var w=A.value,S=!0,j=!1,k=void 0;try{for(var P,E=Object.keys(m)[Symbol.iterator]();!(S=(P=E.next()).done);S=!0){var O=P.value;if(d(w,O,a,i)){m[O].add(w),m[w]=m[O];continue e}}}catch(e){j=!0,k=e}finally{try{!S&&E.return&&E.return()}finally{if(j)throw k}}m[w]=new Set([w])}}catch(e){B=!0,_=e}finally{try{!C&&x.return&&x.return()}finally{if(B)throw _}}Object.assign(u,m)}}catch(e){s=!0,f=e}finally{try{!t&&p.return&&p.return()}finally{if(s)throw f}}n=u;var D=new Set(Object.keys(u).map((function(e){return u[e]})));c.push([].concat(r(D))),l=c[c.length-1],v=c[c.length-2]};!t(l,v);)p();var b=new Map,m=1;l.forEach((function(e){return b.set(e,m++)}));var h={},y=new Set,g=function(e,u){var r=!0,n=!1,t=void 0;try{for(var d,a=e[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var s=d.value;f.has(s)&&y.add(u)}}catch(e){n=!0,t=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw t}}},C=!0,B=!1,_=void 0;try{for(var A,x=b.entries()[Symbol.iterator]();!(C=(A=x.next()).done);C=!0){var w=A.value,S=u(w,2),j=S[0],k=S[1];h[k]={};var P=!0,E=!1,O=void 0;try{for(var D,T=i[Symbol.iterator]();!(P=(D=T.next()).done);P=!0){var R=D.value;g(j,k);var N=void 0,L=!0,F=!1,I=void 0;try{for(var M,U=j[Symbol.iterator]();!(L=(M=U.next()).done);L=!0){var G=M.value;if(N=a[G][R])break}}catch(e){F=!0,I=e}finally{try{!L&&U.return&&U.return()}finally{if(F)throw I}}N&&(h[k][R]=b.get(n[N]))}}catch(e){E=!0,O=e}finally{try{!P&&T.return&&T.return()}finally{if(E)throw O}}}}catch(e){B=!0,_=e}finally{try{!C&&x.return&&x.return()}finally{if(B)throw _}}return e.setTransitionTable(h),e.setAcceptingStateNumbers(y),e}}},32569:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}();function t(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=r(85162),a=r(75821).EPSILON_CLOSURE,s=function(){function e(u){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._nfa=u}return n(e,[{key:"minimize",value:function(){this.getTransitionTable(),this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._originalTransitionTable=this._transitionTable,d.minimize(this)}},{key:"getAlphabet",value:function(){return this._nfa.getAlphabet()}},{key:"getAcceptingStateNumbers",value:function(){return this._acceptingStateNumbers||this.getTransitionTable(),this._acceptingStateNumbers}},{key:"getOriginaAcceptingStateNumbers",value:function(){return this._originalAcceptingStateNumbers||this.getTransitionTable(),this._originalAcceptingStateNumbers}},{key:"setTransitionTable",value:function(e){this._transitionTable=e}},{key:"setAcceptingStateNumbers",value:function(e){this._acceptingStateNumbers=e}},{key:"getTransitionTable",value:function(){var e=this;if(this._transitionTable)return this._transitionTable;var u=this._nfa.getTransitionTable(),r=Object.keys(u);this._acceptingStateNumbers=new Set;for(var n=[u[r[0]][a]],d=this.getAlphabet(),s=this._nfa.getAcceptingStateNumbers(),i={},f=function(u){var r=!0,n=!1,t=void 0;try{for(var d,a=s[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var i=d.value;if(-1!==u.indexOf(i)){e._acceptingStateNumbers.add(u.join(","));break}}}catch(e){n=!0,t=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw t}}};n.length>0;){var o=n.shift(),c=o.join(",");i[c]={};var l=!0,v=!1,p=void 0;try{for(var b,m=d[Symbol.iterator]();!(l=(b=m.next()).done);l=!0){var h=b.value,y=[];f(o);var g=!0,C=!1,B=void 0;try{for(var _,A=o[Symbol.iterator]();!(g=(_=A.next()).done);g=!0){var x=u[_.value][h];if(x){var w=!0,S=!1,j=void 0;try{for(var k,P=x[Symbol.iterator]();!(w=(k=P.next()).done);w=!0){var E=k.value;u[E]&&y.push.apply(y,t(u[E][a]))}}catch(e){S=!0,j=e}finally{try{!w&&P.return&&P.return()}finally{if(S)throw j}}}}}catch(e){C=!0,B=e}finally{try{!g&&A.return&&A.return()}finally{if(C)throw B}}var O=new Set(y),D=[].concat(t(O));if(D.length>0){var T=D.join(",");i[c][h]=T,i.hasOwnProperty(T)||n.unshift(D)}}}catch(e){v=!0,p=e}finally{try{!l&&m.return&&m.return()}finally{if(v)throw p}}}return this._transitionTable=this._remapStateNumbers(i)}},{key:"_remapStateNumbers",value:function(e){var u={};this._originalTransitionTable=e;var r={};for(var n in Object.keys(e).forEach((function(e,r){u[e]=r+1})),e){var t=e[n],d={};for(var a in t)d[a]=u[t[a]];r[u[n]]=d}this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._acceptingStateNumbers=new Set;var s=!0,i=!1,f=void 0;try{for(var o,c=this._originalAcceptingStateNumbers[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value;this._acceptingStateNumbers.add(u[l])}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}return r}},{key:"getOriginalTransitionTable",value:function(){return this._originalTransitionTable||this.getTransitionTable(),this._originalTransitionTable}},{key:"matches",value:function(e){for(var u=1,r=0,n=this.getTransitionTable();e[r];)if(!(u=n[u][e[r++]]))return!1;return!!this.getAcceptingStateNumbers().has(u)}}]),e}();e.exports=s},36734:(e,u,r)=>{"use strict";var n=r(91909),t=r(32569),d=r(28398),a=r(70860);e.exports={NFA:n,DFA:t,builders:a,toNFA:function(e){return d.build(e)},toDFA:function(e){return new t(this.toNFA(e))},test:function(e,u){return this.toDFA(e).matches(u)}}},70860:(e,u,r)=>{"use strict";var n=r(91909),t=r(48617),d=r(75821).EPSILON;function a(e){var u=new t,r=new t({accepting:!0});return new n(u.addTransition(e,r),r)}function s(e,u){return e.out.accepting=!1,u.out.accepting=!0,e.out.addTransition(d,u.in),new n(e.in,u.out)}function i(e,u){var r=new t,a=new t;return r.addTransition(d,e.in),r.addTransition(d,u.in),a.accepting=!0,e.out.accepting=!1,u.out.accepting=!1,e.out.addTransition(d,a),u.out.addTransition(d,a),new n(r,a)}e.exports={alt:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var t=!0,d=!1,a=void 0;try{for(var i,f=r[Symbol.iterator]();!(t=(i=f.next()).done);t=!0)e=s(e,i.value)}catch(e){d=!0,a=e}finally{try{!t&&f.return&&f.return()}finally{if(d)throw a}}return e},char:a,e:function(){return a(d)},or:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var t=!0,d=!1,a=void 0;try{for(var s,f=r[Symbol.iterator]();!(t=(s=f.next()).done);t=!0)e=i(e,s.value)}catch(e){d=!0,a=e}finally{try{!t&&f.return&&f.return()}finally{if(d)throw a}}return e},rep:function(e){return e.in.addTransition(d,e.out),e.out.addTransition(d,e.in),e},repExplicit:function(e){var u=new t,r=new t({accepting:!0});return u.addTransition(d,e.in),u.addTransition(d,r),e.out.accepting=!1,e.out.addTransition(d,r),r.addTransition(d,e.in),new n(u,r)},plusRep:function(e){return e.out.addTransition(d,e.in),e},questionRep:function(e){return e.in.addTransition(d,e.out),e}}},28398:(e,u,r)=>{"use strict";var n=r(23810),t=r(70860),d=t.alt,a=t.char,s=t.or,i=t.rep,f=t.plusRep,o=t.questionRep;function c(e){if(e&&!l[e.type])throw new Error(e.type+" is not supported in NFA/DFA interpreter.");return e?l[e.type](e):""}var l={RegExp:function(e){if(""!==e.flags)throw new Error("NFA/DFA: Flags are not supported yet.");return c(e.body)},Alternative:function(e){var u=(e.expressions||[]).map(c);return d.apply(void 0,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u))},Disjunction:function(e){return s(c(e.left),c(e.right))},Repetition:function(e){switch(e.quantifier.kind){case"*":return i(c(e.expression));case"+":return f(c(e.expression));case"?":return o(c(e.expression));default:throw new Error("Unknown repeatition: "+e.quantifier.kind+".")}},Char:function(e){if("simple"!==e.kind)throw new Error("NFA/DFA: Only simple chars are supported yet.");return a(e.value)},Group:function(e){return c(e.expression)}};e.exports={build:function(e){var u=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(u=n.parse(e,{captureLocations:!0})),c(u)}}},48617:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),t=r(81191),d=r(75821).EPSILON,a=function(e){function u(){return function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,u),function(e,u){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!u||"object"!=typeof u&&"function"!=typeof u?e:u}(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return function(e,u){if("function"!=typeof u&&null!==u)throw new TypeError("Super expression must either be null or a function, not "+typeof u);e.prototype=Object.create(u&&u.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(e,u):e.__proto__=u)}(u,e),n(u,[{key:"matches",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;if(u.has(this))return!1;if(u.add(this),0===e.length){if(this.accepting)return!0;var r=!0,n=!1,t=void 0;try{for(var a,s=this.getTransitionsOnSymbol(d)[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(a.value.matches("",u))return!0}catch(e){n=!0,t=e}finally{try{!r&&s.return&&s.return()}finally{if(n)throw t}}return!1}var i=e[0],f=e.slice(1),o=this.getTransitionsOnSymbol(i),c=!0,l=!1,v=void 0;try{for(var p,b=o[Symbol.iterator]();!(c=(p=b.next()).done);c=!0)if(p.value.matches(f))return!0}catch(e){l=!0,v=e}finally{try{!c&&b.return&&b.return()}finally{if(l)throw v}}var m=!0,h=!1,y=void 0;try{for(var g,C=this.getTransitionsOnSymbol(d)[Symbol.iterator]();!(m=(g=C.next()).done);m=!0)if(g.value.matches(e,u))return!0}catch(e){h=!0,y=e}finally{try{!m&&C.return&&C.return()}finally{if(h)throw y}}return!1}},{key:"getEpsilonClosure",value:function(){var e=this;return this._epsilonClosure||function(){var u=e.getTransitionsOnSymbol(d),r=e._epsilonClosure=new Set;r.add(e);var n=!0,t=!1,a=void 0;try{for(var s,i=u[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){var f=s.value;r.has(f)||(r.add(f),f.getEpsilonClosure().forEach((function(e){return r.add(e)})))}}catch(e){t=!0,a=e}finally{try{!n&&i.return&&i.return()}finally{if(t)throw a}}}(),this._epsilonClosure}}]),u}(t);e.exports=a},91909:(e,u,r)=>{"use strict";var n=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,t=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){t=!0,d=e}finally{try{!n&&s.return&&s.return()}finally{if(t)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")},t=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),d=r(75821),a=d.EPSILON,s=d.EPSILON_CLOSURE,i=function(){function e(u,r){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.in=u,this.out=r}return t(e,[{key:"matches",value:function(e){return this.in.matches(e)}},{key:"getAlphabet",value:function(){if(!this._alphabet){this._alphabet=new Set;var e=this.getTransitionTable();for(var u in e){var r=e[u];for(var n in r)n!==s&&this._alphabet.add(n)}}return this._alphabet}},{key:"getAcceptingStates",value:function(){return this._acceptingStates||this.getTransitionTable(),this._acceptingStates}},{key:"getAcceptingStateNumbers",value:function(){if(!this._acceptingStateNumbers){this._acceptingStateNumbers=new Set;var e=!0,u=!1,r=void 0;try{for(var n,t=this.getAcceptingStates()[Symbol.iterator]();!(e=(n=t.next()).done);e=!0){var d=n.value;this._acceptingStateNumbers.add(d.number)}}catch(e){u=!0,r=e}finally{try{!e&&t.return&&t.return()}finally{if(u)throw r}}}return this._acceptingStateNumbers}},{key:"getTransitionTable",value:function(){var e=this;if(!this._transitionTable){this._transitionTable={},this._acceptingStates=new Set;var u=new Set,r=new Set;!function t(d){if(!u.has(d)){u.add(d),d.number=u.size,e._transitionTable[d.number]={},d.accepting&&e._acceptingStates.add(d);var a=d.getTransitions(),s=!0,i=!1,f=void 0;try{for(var o,c=a[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value,v=n(l,2),p=v[0],b=v[1],m=[];r.add(p);var h=!0,y=!1,g=void 0;try{for(var C,B=b[Symbol.iterator]();!(h=(C=B.next()).done);h=!0){var _=C.value;t(_),m.push(_.number)}}catch(e){y=!0,g=e}finally{try{!h&&B.return&&B.return()}finally{if(y)throw g}}e._transitionTable[d.number][p]=m}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}}}(this.in),u.forEach((function(u){delete e._transitionTable[u.number][a],e._transitionTable[u.number][s]=[].concat(function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u.getEpsilonClosure())).map((function(e){return e.number}))}))}return this._transitionTable}}]),e}();e.exports=i},75821:e=>{"use strict";e.exports={EPSILON:"ε",EPSILON_CLOSURE:"ε*"}},81191:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(){var u=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).accepting,r=void 0!==u&&u;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._transitions=new Map,this.accepting=r}return u(e,[{key:"getTransitions",value:function(){return this._transitions}},{key:"addTransition",value:function(e,u){return this.getTransitionsOnSymbol(e).add(u),this}},{key:"getTransitionsOnSymbol",value:function(e){var u=this._transitions.get(e);return u||(u=new Set,this._transitions.set(e,u)),u}}]),e}();e.exports=r},63072:(e,u,r)=>{"use strict";var n=r(1379),t=r(23810),d=r(2003),a=r(53256);e.exports={optimize:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.whitelist,s=void 0===r?[]:r,i=u.blacklist,f=void 0===i?[]:i,o=(s.length>0?s:Array.from(a.keys())).filter((function(e){return!f.includes(e)})),c=e;e instanceof RegExp&&(e=""+e),"string"==typeof e&&(c=t.parse(e));var l=new d.TransformResult(c),v=void 0;do{v=l.toString(),c=n(l.getAST()),o.forEach((function(e){if(!a.has(e))throw new Error("Unknown optimization-transform: "+e+". Available transforms are: "+Array.from(a.keys()).join(", "));var u=a.get(e),r=d.transform(c,u);r.toString()!==l.toString()&&(r.toString().length<=l.toString().length?l=r:c=n(l.getAST()))}))}while(l.toString()!==v);return l}}},98002:e=>{"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0);e.exports={_AZClassRanges:null,_hasUFlag:!1,init:function(e){this._AZClassRanges=new Set,this._hasUFlag=e.flags.includes("u")},shouldRun:function(e){return e.flags.includes("i")},Char:function(e){var n=e.node,t=e.parent;if(!isNaN(n.codePoint)&&(this._hasUFlag||!(n.codePoint>=4096))){if("ClassRange"===t.type){if(!(this._AZClassRanges.has(t)||(d=t,a=d.from,s=d.to,a.codePoint>=u&&a.codePoint<=r&&s.codePoint>=u&&s.codePoint<=r)))return;this._AZClassRanges.add(t)}var d,a,s,i=n.symbol.toLowerCase();i!==n.symbol&&(n.value=function(e,u){var r=e.codePointAt(0);if("decimal"===u.kind)return"\\"+r;if("oct"===u.kind)return"\\0"+r.toString(8);if("hex"===u.kind)return"\\x"+r.toString(16);if("unicode"===u.kind){if(u.isSurrogatePair){var n=function(e){var u=(e-65536)%1024+56320;return{lead:(Math.floor((e-65536)/1024)+55296).toString(16),trail:u.toString(16)}}(r),t=n.lead,d=n.trail;return"\\u"+"0".repeat(4-t.length)+t+"\\u"+"0".repeat(4-d.length)+d}if(u.value.includes("{"))return"\\u{"+r.toString(16)+"}";var a=r.toString(16);return"\\u"+"0".repeat(4-a.length)+a}return e}(i,n),n.symbol=i,n.codePoint=i.codePointAt(0))}}}},70436:e=>{"use strict";function u(e,u){var d=r(e),a=r(u);if(d===a){if("ClassRange"===e.type&&"ClassRange"!==u.type)return-1;if("ClassRange"===u.type&&"ClassRange"!==e.type)return 1;if("ClassRange"===e.type&&"ClassRange"===u.type)return r(e.to)-r(u.to);if(n(e)&&n(u)||t(e)&&t(u))return e.value<u.value?-1:1}return d-a}function r(e){return"Char"===e.type?"-"===e.value||"control"===e.kind?1/0:"meta"===e.kind&&isNaN(e.codePoint)?-1:e.codePoint:e.from.codePoint}function n(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return"Char"===e.type&&"meta"===e.kind&&(u?e.value===u:/^\\[dws]$/i.test(e.value))}function t(e){return"Char"===e.type&&"control"===e.kind}function d(e,u,r){for(var n=0;n<u.length;n++)if(a(e,u[n],r))return!0;return!1}function a(e,u,r){return"ClassRange"===e.type?a(e.from,u,r)&&a(e.to,u,r):!("\\S"!==u||!n(e,"\\w")&&!n(e,"\\d"))||!("\\D"!==u||!n(e,"\\W")&&!n(e,"\\s"))||!("\\w"!==u||!n(e,"\\d"))||!("\\W"!==u||!n(e,"\\s"))||"Char"===e.type&&!isNaN(e.codePoint)&&("\\s"===u?s(e):"\\S"===u?!s(e):"\\d"===u?i(e):"\\D"===u?!i(e):"\\w"===u?f(e,r):"\\W"===u&&!f(e,r))}function s(e){return 9===e.codePoint||10===e.codePoint||11===e.codePoint||12===e.codePoint||13===e.codePoint||32===e.codePoint||160===e.codePoint||5760===e.codePoint||e.codePoint>=8192&&e.codePoint<=8202||8232===e.codePoint||8233===e.codePoint||8239===e.codePoint||8287===e.codePoint||12288===e.codePoint||65279===e.codePoint}function i(e){return e.codePoint>=48&&e.codePoint<=57}function f(e,u){return i(e)||e.codePoint>=65&&e.codePoint<=90||e.codePoint>=97&&e.codePoint<=122||"_"===e.value||u&&(383===e.codePoint||8490===e.codePoint)}function o(e,u){if(u&&"ClassRange"===u.type){if(l(e,u))return!0;if(p(e)&&u.to.codePoint===e.codePoint-1)return u.to=e,!0;if("ClassRange"===e.type&&e.from.codePoint<=u.to.codePoint+1&&e.to.codePoint>=u.from.codePoint-1)return e.from.codePoint<u.from.codePoint&&(u.from=e.from),e.to.codePoint>u.to.codePoint&&(u.to=e.to),!0}return!1}function c(e,u){return!(!u||"ClassRange"!==u.type||!p(e)||u.from.codePoint!==e.codePoint+1||(u.from=e,0))}function l(e,u){return("Char"!==e.type||!isNaN(e.codePoint))&&("ClassRange"===e.type?l(e.from,u)&&l(e.to,u):e.codePoint>=u.from.codePoint&&e.codePoint<=u.to.codePoint)}function v(e,u,r){if(!p(e))return 0;for(var n=0;u>0;){var t=r[u],d=r[u-1];if(!p(d)||d.codePoint!==t.codePoint-1)break;n++,u--}return n>1?(r[u]={type:"ClassRange",from:r[u],to:e},n):0}function p(e){return e&&"Char"===e.type&&!isNaN(e.codePoint)&&(f(e,!1)||"unicode"===e.kind||"hex"===e.kind||"oct"===e.kind||"decimal"===e.kind)}e.exports={_hasIUFlags:!1,init:function(e){this._hasIUFlags=e.flags.includes("i")&&e.flags.includes("u")},CharacterClass:function(e){var r=e.node.expressions,t=[];r.forEach((function(e){n(e)&&t.push(e.value)})),r.sort(u);for(var a=0;a<r.length;a++){var s=r[a];if(d(s,t,this._hasIUFlags)||o(s,r[a-1])||c(s,r[a+1]))r.splice(a,1),a--;else{var i=v(s,a,r);r.splice(a-i+1,i),a-=i}}}}},76953:e=>{"use strict";e.exports={ClassRange:function(e){var u=e.node;u.from.codePoint===u.to.codePoint?e.replace(u.from):u.from.codePoint===u.to.codePoint-1&&(e.getParent().insertChildAt(u.to,e.index+1),e.replace(u.from))}}},322:e=>{"use strict";e.exports={CharacterClass:function(e){for(var u=e.node,r={},n=0;n<u.expressions.length;n++){var t=e.getChild(n),d=t.jsonEncode();r.hasOwnProperty(d)&&(t.remove(),n--),r[d]=!0}}}},4090:e=>{"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={_hasIFlag:!1,_hasUFlag:!1,init:function(e){this._hasIFlag=e.flags.includes("i"),this._hasUFlag=e.flags.includes("u")},CharacterClass:function(e){!function(e){e.node.expressions.forEach((function(u,r){(function(e){return"ClassRange"===e.type&&"0"===e.from.value&&"9"===e.to.value})(u)&&e.getChild(r).replace({type:"Char",value:"\\d",kind:"meta"})}))}(e),function(e,u,r){var n=e.node,a=null,s=null,i=null,f=null,o=null,c=null;n.expressions.forEach((function(n,l){t(n,"\\d")?a=e.getChild(l):function(e){return"ClassRange"===e.type&&"a"===e.from.value&&"z"===e.to.value}(n)?s=e.getChild(l):function(e){return"ClassRange"===e.type&&"A"===e.from.value&&"Z"===e.to.value}(n)?i=e.getChild(l):function(e){return"Char"===e.type&&"_"===e.value&&"simple"===e.kind}(n)?f=e.getChild(l):u&&r&&d(n,383)?o=e.getChild(l):u&&r&&d(n,8490)&&(c=e.getChild(l))})),a&&(s&&i||u&&(s||i))&&f&&(!r||!u||o&&c)&&(a.replace({type:"Char",value:"\\w",kind:"meta"}),s&&s.remove(),i&&i.remove(),f.remove(),o&&o.remove(),c&&c.remove())}(e,this._hasIFlag,this._hasUFlag),function(e){var u=e.node;if(!(u.expressions.length<r.length)&&r.every((function(e){return u.expressions.some((function(u){return e(u)}))}))){var n=u.expressions.find((function(e){return t(e,"\\n")}));n.value="\\s",n.symbol=void 0,n.codePoint=NaN,u.expressions.map((function(u,n){return r.some((function(e){return e(u)}))?e.getChild(n):void 0})).filter(Boolean).forEach((function(e){return e.remove()}))}}(e)}};var r=[function(e){return n(e," ")}].concat(u(["\\f","\\n","\\r","\\t","\\v"].map((function(e){return function(u){return t(u,e)}}))),u([160,5760,8232,8233,8239,8287,12288,65279].map((function(e){return function(u){return d(u,e)}}))),[function(e){return"ClassRange"===e.type&&d(e.from,8192)&&d(e.to,8202)}]);function n(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"simple";return"Char"===e.type&&e.value===u&&e.kind===r}function t(e,u){return n(e,u,"meta")}function d(e,u){return"Char"===e.type&&"unicode"===e.kind&&e.codePoint===u}},11810:e=>{"use strict";function u(e){return/[*[()+?$./{}|]/.test(e)}e.exports={CharacterClass:function(e){var r=e.node;if(1===r.expressions.length&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&function(e){return"Char"===e.type&&"\\b"!==e.value}(r.expressions[0])){var n=r.expressions[0],t=n.value,d=n.kind,a=n.escaped;if(r.negative){if(!function(e){return/^\\[dwsDWS]$/.test(e)}(t))return;t=function(e){return/[dws]/.test(e)?e.toUpperCase():e.toLowerCase()}(t)}e.replace({type:"Char",value:t,kind:d,escaped:a||u(t)})}}}},88111:e=>{"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0),n="a".codePointAt(0),t="z".codePointAt(0),d="0".codePointAt(0),a="9".codePointAt(0);e.exports={Char:function(e){var s,i,f,o=e.node,c=e.parent;if(!isNaN(o.codePoint)&&"simple"!==o.kind&&("ClassRange"!==c.type||(i=(s=c).from,f=s.to,i.codePoint>=d&&i.codePoint<=a&&f.codePoint>=d&&f.codePoint<=a||i.codePoint>=u&&i.codePoint<=r&&f.codePoint>=u&&f.codePoint<=r||i.codePoint>=n&&i.codePoint<=t&&f.codePoint>=n&&f.codePoint<=t))&&(l=o.codePoint)>=32&&l<=126){var l,v=String.fromCodePoint(o.codePoint),p={type:"Char",kind:"simple",value:v,symbol:v,codePoint:o.codePoint};(function(e,u){return"ClassRange"===u||"CharacterClass"===u?/[\]\\^-]/.test(e):/[*[()+?^$./\\|{}]/.test(e)})(v,c.type)&&(p.escaped=!0),e.replace(p)}}}},6632:e=>{"use strict";function u(e,u,r){for(var n=e,t=(r?n>=0:n<u.expressions.length)&&u.expressions[n];t&&"Char"===t.type&&"simple"===t.kind&&!t.escaped&&/\d/.test(t.value);)r?n--:n++,t=(r?n>=0:n<u.expressions.length)&&u.expressions[n];return Math.abs(e-n)}function r(e,u){return e&&"Char"===e.type&&"simple"===e.kind&&!e.escaped&&e.value===u}e.exports={_hasXFlag:!1,init:function(e){this._hasXFlag=e.flags.includes("x")},Char:function(e){var n=e.node;n.escaped&&function(e,n){var t=e.node.value,d=e.index,a=e.parent;return"CharacterClass"!==a.type&&"ClassRange"!==a.type?!function(e,n,t,d){return"{"===e?function(e,n){if(null==e)return!1;var t=u(e+1,n),d=e+t+1,a=d<n.expressions.length&&n.expressions[d];if(t){if(r(a,"}"))return!0;if(r(a,","))return r(a=(d=d+(t=u(d+1,n))+1)<n.expressions.length&&n.expressions[d],"}")}return!1}(n,t):"}"===e?function(e,n){if(null==e)return!1;var t=u(e-1,n,!0),d=e-t-1,a=d>=0&&n.expressions[d];return!(!t||!r(a,"{"))||!!r(a,",")&&(a=(d=d-(t=u(d-1,n,!0))-1)<n.expressions.length&&n.expressions[d],t&&r(a,"{"))}(n,t):!(!d||!/[ #]/.test(e))||/[*[()+?^$./\\|]/.test(e)}(t,d,a,n):!function(e,u,r){return"^"===e?0===u&&!r.negative:"-"===e||/[\]\\]/.test(e)}(t,d,a)}(e,this._hasXFlag)&&delete n.escaped}}},8988:e=>{"use strict";e.exports={shouldRun:function(e){return e.flags.includes("u")},Char:function(e){var u=e.node;"unicode"===u.kind&&u.isSurrogatePair&&!isNaN(u.codePoint)&&(u.value="\\u{"+u.codePoint.toString(16)+"}",delete u.isSurrogatePair)}}},97648:(e,u,r)=>{"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var t=r(41059),d=r(33166).increaseQuantifierByOne;function a(e,u,r){for(var d=e.node,a=Math.ceil(r/2),s=0;s<a;){var i=r-2*s-1,f=void 0,o=void 0;if(0===s?(f=u,o=e.getChild(i)):(f=t.getForNode({type:"Alternative",expressions:[].concat(n(d.expressions.slice(r-s,r)),[u.node])}),o=t.getForNode({type:"Alternative",expressions:[].concat(n(d.expressions.slice(i,r-s)))})),f.hasEqualSource(o)){for(var c=0;c<2*s+1;c++)e.getChild(i).remove();return u.replace({type:"Repetition",expression:0===s&&"Repetition"!==f.node.type?f.node:{type:"Group",capturing:!1,expression:f.node},quantifier:{type:"Quantifier",kind:"Range",from:2,to:2,greedy:!0}}),i}s++}return r}function s(e,u,r){for(var a=e.node,s=0;s<r;){var i=e.getChild(s);if("Repetition"===i.node.type&&i.node.quantifier.greedy){var f=i.getChild(),o=void 0;if("Group"!==f.node.type||f.node.capturing||(f=f.getChild()),s+1===r?"Group"!==(o=u).node.type||o.node.capturing||(o=o.getChild()):o=t.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(s+1,r+1)))}),f.hasEqualSource(o)){for(var c=s;c<r;c++)e.getChild(s+1).remove();return d(i.node.quantifier),s}}s++}return r}function i(e,u,r){var a=e.node;if("Repetition"===u.node.type&&u.node.quantifier.greedy){var s=u.getChild(),i=void 0;"Group"!==s.node.type||s.node.capturing||(s=s.getChild());var f=void 0;if("Alternative"===s.node.type?(f=s.node.expressions.length,i=t.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(r-f,r)))})):(f=1,"Group"!==(i=e.getChild(r-1)).node.type||i.node.capturing||(i=i.getChild())),i.hasEqualSource(s)){for(var o=r-f;o<r;o++)e.getChild(r-f).remove();return d(u.node.quantifier),r-f}}return r}e.exports={Alternative:function(e){for(var u=e.node,r=1;r<u.expressions.length;){var n=e.getChild(r);if((r=Math.max(1,a(e,n,r)))>=u.expressions.length)break;if(n=e.getChild(r),(r=Math.max(1,s(e,n,r)))>=u.expressions.length)break;n=e.getChild(r),r=Math.max(1,i(e,n,r)),r++}}}},61013:(e,u,r)=>{"use strict";var n=r(41059),t=r(33166),d=t.disjunctionToList,a=t.listToDisjunction;e.exports={Disjunction:function(e){var u=e.node,r={},t=d(u).filter((function(e){var u=e?n.getForNode(e).jsonEncode():"null";return!r.hasOwnProperty(u)&&(r[u]=e,!0)}));e.replace(a(t))}}},83427:e=>{"use strict";e.exports={Disjunction:function(e){var n=e.node,t=e.parent;if(u[t.type]){var d=new Map;if(r(n,d)&&d.size){var a={type:"CharacterClass",expressions:Array.from(d.keys()).sort().map((function(e){return d.get(e)}))};u[t.type](e.getParent(),a)}}}};var u={RegExp:function(e,u){e.node.body=u},Group:function(e,u){var r=e.node;r.capturing?r.expression=u:e.replace(u)}};function r(e,u){if(!e)return!1;var n=e.type;if("Disjunction"===n){var t=e.left,d=e.right;return r(t,u)&&r(d,u)}if("Char"===n){if("meta"===e.kind&&"."===e.symbol)return!1;var a=e.value;return u.set(a,e),!0}return"CharacterClass"===n&&!e.negative&&e.expressions.every((function(e){return r(e,u)}))}},53256:(e,u,r)=>{"use strict";e.exports=new Map([["charSurrogatePairToSingleUnicode",r(8988)],["charCodeToSimpleChar",r(88111)],["charCaseInsensitiveLowerCaseTransform",r(98002)],["charClassRemoveDuplicates",r(322)],["quantifiersMerge",r(31837)],["quantifierRangeToSymbol",r(88190)],["charClassClassrangesToChars",r(76953)],["charClassToMeta",r(4090)],["charClassToSingleChar",r(11810)],["charEscapeUnescape",r(6632)],["charClassClassrangesMerge",r(70436)],["disjunctionRemoveDuplicates",r(61013)],["groupSingleCharsToCharClass",r(83427)],["removeEmptyGroup",r(72097)],["ungroup",r(95435)],["combineRepeatingPatterns",r(97648)]])},88190:e=>{"use strict";e.exports={Quantifier:function(e){"Range"===e.node.kind&&(function(e){var u=e.node;0!==u.from||u.to||(u.kind="*",delete u.from)}(e),function(e){var u=e.node;1!==u.from||u.to||(u.kind="+",delete u.from)}(e),function(e){var u=e.node;1===u.from&&1===u.to&&e.parentPath.replace(e.parentPath.node.expression)}(e))}}},31837:(e,u,r)=>{"use strict";var n=r(33166).increaseQuantifierByOne;function t(e){return e.greedy&&("+"===e.kind||"*"===e.kind||"Range"===e.kind&&!e.to)}function d(e){var u=void 0,r=void 0;return"*"===e.kind?u=0:"+"===e.kind?u=1:"?"===e.kind?(u=0,r=1):(u=e.from,e.to&&(r=e.to)),{from:u,to:r}}e.exports={Repetition:function(e){var u=e.node;if("Alternative"===e.parent.type&&e.index){var r=e.getPreviousSibling();if(r)if("Repetition"===r.node.type){if(!r.getChild().hasEqualSource(e.getChild()))return;var a=d(r.node.quantifier),s=a.from,i=a.to,f=d(u.quantifier),o=f.from,c=f.to;if(r.node.quantifier.greedy!==u.quantifier.greedy&&!t(r.node.quantifier)&&!t(u.quantifier))return;u.quantifier.kind="Range",u.quantifier.from=s+o,i&&c?u.quantifier.to=i+c:delete u.quantifier.to,(t(r.node.quantifier)||t(u.quantifier))&&(u.quantifier.greedy=!0),r.remove()}else{if(!r.hasEqualSource(e.getChild()))return;n(u.quantifier),r.remove()}}}}},72097:e=>{"use strict";e.exports={Group:function(e){var u=e.node,r=e.parent,n=e.getChild();u.capturing||n||("Repetition"===r.type?e.getParent().replace(u):"RegExp"!==r.type&&e.remove())}}},95435:e=>{"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={Group:function(e){var r=e.node,n=e.parent,t=e.getChild();if(!r.capturing&&t&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&!("Disjunction"===t.node.type&&"RegExp"!==n.type||"Repetition"===n.type&&"Char"!==t.node.type&&"CharacterClass"!==t.node.type))if("Alternative"===t.node.type){var d=e.getParent();"Alternative"===d.node.type&&d.replace({type:"Alternative",expressions:[].concat(u(n.expressions.slice(0,e.index)),u(t.node.expressions),u(n.expressions.slice(e.index+1)))})}else e.replace(t.node)}}},97e3:(e,u,r)=>{"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var t=void 0,d={},a=void 0,s=void 0;function i(e,u){return d.options.captureLocations?e&&u?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:e||u:null}var f=[[-1,1,function(e,u){s=i(u,u),a=e}],[0,4,function(e,u,r,n,t,d,f,o){s=i(t,o),a=T({type:"RegExp",body:u,flags:S(n)},R(t,o||f))}],[1,1,function(e,u){s=i(u,u),a=e}],[1,0,function(){s=null,a=""}],[2,1,function(e,u){s=i(u,u),a=e}],[2,2,function(e,u,r,n){s=i(r,n),a=e+u}],[3,1,function(e,u){s=i(u,u),a=e}],[4,1,function(e,u){s=i(u,u),a=e}],[4,3,function(e,u,r,n,t,d){s=i(n,d);var f=null;t&&(f=R(n||t,d||t)),a=T({type:"Disjunction",left:e,right:r},f)}],[5,1,function(e,u){s=i(u,u),a=0!==e.length?1===e.length?T(e[0],s):T({type:"Alternative",expressions:e},s):null}],[6,0,function(){s=null,a=[]}],[6,2,function(e,u,r,n){s=i(r,n),a=e.concat(u)}],[7,1,function(e,u){s=i(u,u),a=T(Object.assign({type:"Assertion"},e),s)}],[7,2,function(e,u,r,n){s=i(r,n),a=e,u&&(a=T({type:"Repetition",expression:e,quantifier:u},s))}],[8,1,function(e,u){s=i(u,u),a={kind:"^"}}],[8,1,function(e,u){s=i(u,u),a={kind:"$"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\b"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\B"}}],[8,3,function(e,u,r,n,t,d){s=i(n,d),a={kind:"Lookahead",assertion:u}}],[8,3,function(e,u,r,n,t,d){s=i(n,d),a={kind:"Lookahead",negative:!0,assertion:u}}],[8,3,function(e,u,r,n,t,d){s=i(n,d),a={kind:"Lookbehind",assertion:u}}],[8,3,function(e,u,r,n,t,d){s=i(n,d),a={kind:"Lookbehind",negative:!0,assertion:u}}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[10,1,function(e,u){s=i(u,u),a=x(e,"simple",s)}],[10,1,function(e,u){s=i(u,u),(a=x(e.slice(1),"simple",s)).escaped=!0}],[10,1,function(e,u){s=i(u,u),(a=x(e,"unicode",s)).isSurrogatePair=!0}],[10,1,function(e,u){s=i(u,u),a=x(e,"unicode",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r="P"===e[1],n=e.indexOf("="),t=e.slice(3,-1!==n?n:-1),d=void 0,a=-1===n&&A.isGeneralCategoryValue(t),s=-1===n&&A.isBinaryPropertyName(t);if(a)d=t,t="General_Category";else if(s)d=t;else{if(!A.isValidName(t))throw new SyntaxError("Invalid unicode property name: "+t+".");if(d=e.slice(n+1,-1),!A.isValidValue(t,d))throw new SyntaxError("Invalid "+t+" unicode property value: "+d+".")}return T({type:"UnicodeProperty",name:t,value:d,negative:r,shorthand:a,binary:s,canonicalName:A.getCanonicalName(t)||t,canonicalValue:A.getCanonicalValue(d)||d},u)}(e,s)}],[10,1,function(e,u){s=i(u,u),a=x(e,"control",s)}],[10,1,function(e,u){s=i(u,u),a=x(e,"hex",s)}],[10,1,function(e,u){s=i(u,u),a=x(e,"oct",s)}],[10,1,function(e,u){var r,n,t;s=i(u,u),r=e,n=s,t=Number(r.slice(1)),a=t>0&&t<=y?T({type:"Backreference",kind:"number",number:t,reference:t},n):x(r,"decimal",n)}],[10,1,function(e,u){s=i(u,u),a=x(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=x(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r=e.slice(3,-1),n=D(r);if(g.hasOwnProperty(n))return T({type:"Backreference",kind:"name",number:g[n],reference:n,referenceRaw:r},u);var t=null,d=null,a=null,s=null;u&&(t=u.startOffset,d=u.startLine,a=u.endLine,s=u.startColumn);var i=/^[\w$<>]/,f=void 0,o=[x(e.slice(1,2),"simple",t?{startLine:d,endLine:a,startColumn:s,startOffset:t,endOffset:t+=2,endColumn:s+=2}:null)];for(o[0].escaped=!0,e=e.slice(2);e.length>0;){var c=null;(c=e.match(j))||(c=e.match(k))?(t&&(f={startLine:d,endLine:a,startColumn:s,startOffset:t,endOffset:t+=c[0].length,endColumn:s+=c[0].length}),o.push(x(c[0],"unicode",f)),e=e.slice(c[0].length)):(c=e.match(i))&&(t&&(f={startLine:d,endLine:a,startColumn:s,startOffset:t,endOffset:++t,endColumn:++s}),o.push(x(c[0],"simple",f)),e=e.slice(1))}return o}(e,u)}],[11,1,function(e,u){s=i(u,u),a=e}],[11,0],[12,1,function(e,u){s=i(u,u),a=e}],[12,2,function(e,u,r,n){s=i(r,n),e.greedy=!1,a=e}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=T({type:"Quantifier",kind:"Range",from:r[0],to:r[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:"Range",from:B(e)[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=T({type:"Quantifier",kind:"Range",from:r[0],to:r[1],greedy:!0},s)}],[14,1,function(e,u){s=i(u,u),a=e}],[14,1,function(e,u){s=i(u,u),a=e}],[15,3,function(e,u,r,n,t,f){s=i(n,f);var o=String(e),c=D(o);if(!d.options.allowGroupNameDuplicates&&g.hasOwnProperty(c))throw new SyntaxError('Duplicate of the named group "'+c+'".');g[c]=e.groupNumber,a=T({type:"Group",capturing:!0,name:c,nameRaw:o,number:e.groupNumber,expression:u},s)}],[15,3,function(e,u,r,n,t,d){s=i(n,d),a=T({type:"Group",capturing:!0,number:e.groupNumber,expression:u},s)}],[16,3,function(e,u,r,n,t,d){s=i(n,d),a=T({type:"Group",capturing:!1,expression:u},s)}],[17,3,function(e,u,r,n,t,d){s=i(n,d),a=T({type:"CharacterClass",negative:!0,expressions:u},s)}],[17,3,function(e,u,r,n,t,d){s=i(n,d),a=T({type:"CharacterClass",expressions:u},s)}],[18,0,function(){s=null,a=[]}],[18,1,function(e,u){s=i(u,u),a=e}],[19,1,function(e,u){s=i(u,u),a=[e]}],[19,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[19,4,function(e,u,r,n,t,d,f,o){s=i(t,o),_(e,r),a=[T({type:"ClassRange",from:e,to:r},R(t,f))],n&&(a=a.concat(n))}],[20,1,function(e,u){s=i(u,u),a=e}],[20,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[20,4,function(e,u,r,n,t,d,f,o){s=i(t,o),_(e,r),a=[T({type:"ClassRange",from:e,to:r},R(t,f))],n&&(a=a.concat(n))}],[21,1,function(e,u){s=i(u,u),a=x(e,"simple",s)}],[21,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=x(e,"meta",s)}]],o={SLASH:"23",CHAR:"24",BAR:"25",BOS:"26",EOS:"27",ESC_b:"28",ESC_B:"29",POS_LA_ASSERT:"30",R_PAREN:"31",NEG_LA_ASSERT:"32",POS_LB_ASSERT:"33",NEG_LB_ASSERT:"34",ESC_CHAR:"35",U_CODE_SURROGATE:"36",U_CODE:"37",U_PROP_VALUE_EXP:"38",CTRL_CH:"39",HEX_CODE:"40",OCT_CODE:"41",DEC_CODE:"42",META_CHAR:"43",ANY:"44",NAMED_GROUP_REF:"45",Q_MARK:"46",STAR:"47",PLUS:"48",RANGE_EXACT:"49",RANGE_OPEN:"50",RANGE_CLOSED:"51",NAMED_CAPTURE_GROUP:"52",L_PAREN:"53",NON_CAPTURE_GROUP:"54",NEG_CLASS:"55",R_BRACKET:"56",L_BRACKET:"57",DASH:"58",$:"59"},c=[{0:1,23:"s2"},{59:"acc"},{3:3,4:4,5:5,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"s7"},{23:"r6",25:"s12"},{23:"r7",25:"r7",31:"r7"},{7:14,8:15,9:16,10:25,14:27,15:42,16:43,17:26,23:"r9",24:"s28",25:"r9",26:"s17",27:"s18",28:"s19",29:"s20",30:"s21",31:"r9",32:"s22",33:"s23",34:"s24",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",52:"s44",53:"s45",54:"s46",55:"s40",57:"s41"},{1:8,2:9,24:"s10",59:"r3"},{59:"r1"},{24:"s11",59:"r2"},{24:"r4",59:"r4"},{24:"r5",59:"r5"},{5:13,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r8",25:"r8",31:"r8"},{23:"r11",24:"r11",25:"r11",26:"r11",27:"r11",28:"r11",29:"r11",30:"r11",31:"r11",32:"r11",33:"r11",34:"r11",35:"r11",36:"r11",37:"r11",38:"r11",39:"r11",40:"r11",41:"r11",42:"r11",43:"r11",44:"r11",45:"r11",52:"r11",53:"r11",54:"r11",55:"r11",57:"r11"},{23:"r12",24:"r12",25:"r12",26:"r12",27:"r12",28:"r12",29:"r12",30:"r12",31:"r12",32:"r12",33:"r12",34:"r12",35:"r12",36:"r12",37:"r12",38:"r12",39:"r12",40:"r12",41:"r12",42:"r12",43:"r12",44:"r12",45:"r12",52:"r12",53:"r12",54:"r12",55:"r12",57:"r12"},{11:47,12:48,13:49,23:"r38",24:"r38",25:"r38",26:"r38",27:"r38",28:"r38",29:"r38",30:"r38",31:"r38",32:"r38",33:"r38",34:"r38",35:"r38",36:"r38",37:"r38",38:"r38",39:"r38",40:"r38",41:"r38",42:"r38",43:"r38",44:"r38",45:"r38",46:"s52",47:"s50",48:"s51",49:"s53",50:"s54",51:"s55",52:"r38",53:"r38",54:"r38",55:"r38",57:"r38"},{23:"r14",24:"r14",25:"r14",26:"r14",27:"r14",28:"r14",29:"r14",30:"r14",31:"r14",32:"r14",33:"r14",34:"r14",35:"r14",36:"r14",37:"r14",38:"r14",39:"r14",40:"r14",41:"r14",42:"r14",43:"r14",44:"r14",45:"r14",52:"r14",53:"r14",54:"r14",55:"r14",57:"r14"},{23:"r15",24:"r15",25:"r15",26:"r15",27:"r15",28:"r15",29:"r15",30:"r15",31:"r15",32:"r15",33:"r15",34:"r15",35:"r15",36:"r15",37:"r15",38:"r15",39:"r15",40:"r15",41:"r15",42:"r15",43:"r15",44:"r15",45:"r15",52:"r15",53:"r15",54:"r15",55:"r15",57:"r15"},{23:"r16",24:"r16",25:"r16",26:"r16",27:"r16",28:"r16",29:"r16",30:"r16",31:"r16",32:"r16",33:"r16",34:"r16",35:"r16",36:"r16",37:"r16",38:"r16",39:"r16",40:"r16",41:"r16",42:"r16",43:"r16",44:"r16",45:"r16",52:"r16",53:"r16",54:"r16",55:"r16",57:"r16"},{23:"r17",24:"r17",25:"r17",26:"r17",27:"r17",28:"r17",29:"r17",30:"r17",31:"r17",32:"r17",33:"r17",34:"r17",35:"r17",36:"r17",37:"r17",38:"r17",39:"r17",40:"r17",41:"r17",42:"r17",43:"r17",44:"r17",45:"r17",52:"r17",53:"r17",54:"r17",55:"r17",57:"r17"},{4:57,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:59,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:61,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:63,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r22",24:"r22",25:"r22",26:"r22",27:"r22",28:"r22",29:"r22",30:"r22",31:"r22",32:"r22",33:"r22",34:"r22",35:"r22",36:"r22",37:"r22",38:"r22",39:"r22",40:"r22",41:"r22",42:"r22",43:"r22",44:"r22",45:"r22",46:"r22",47:"r22",48:"r22",49:"r22",50:"r22",51:"r22",52:"r22",53:"r22",54:"r22",55:"r22",57:"r22"},{23:"r23",24:"r23",25:"r23",26:"r23",27:"r23",28:"r23",29:"r23",30:"r23",31:"r23",32:"r23",33:"r23",34:"r23",35:"r23",36:"r23",37:"r23",38:"r23",39:"r23",40:"r23",41:"r23",42:"r23",43:"r23",44:"r23",45:"r23",46:"r23",47:"r23",48:"r23",49:"r23",50:"r23",51:"r23",52:"r23",53:"r23",54:"r23",55:"r23",57:"r23"},{23:"r24",24:"r24",25:"r24",26:"r24",27:"r24",28:"r24",29:"r24",30:"r24",31:"r24",32:"r24",33:"r24",34:"r24",35:"r24",36:"r24",37:"r24",38:"r24",39:"r24",40:"r24",41:"r24",42:"r24",43:"r24",44:"r24",45:"r24",46:"r24",47:"r24",48:"r24",49:"r24",50:"r24",51:"r24",52:"r24",53:"r24",54:"r24",55:"r24",57:"r24"},{23:"r25",24:"r25",25:"r25",26:"r25",27:"r25",28:"r25",29:"r25",30:"r25",31:"r25",32:"r25",33:"r25",34:"r25",35:"r25",36:"r25",37:"r25",38:"r25",39:"r25",40:"r25",41:"r25",42:"r25",43:"r25",44:"r25",45:"r25",46:"r25",47:"r25",48:"r25",49:"r25",50:"r25",51:"r25",52:"r25",53:"r25",54:"r25",55:"r25",56:"r25",57:"r25",58:"r25"},{23:"r26",24:"r26",25:"r26",26:"r26",27:"r26",28:"r26",29:"r26",30:"r26",31:"r26",32:"r26",33:"r26",34:"r26",35:"r26",36:"r26",37:"r26",38:"r26",39:"r26",40:"r26",41:"r26",42:"r26",43:"r26",44:"r26",45:"r26",46:"r26",47:"r26",48:"r26",49:"r26",50:"r26",51:"r26",52:"r26",53:"r26",54:"r26",55:"r26",56:"r26",57:"r26",58:"r26"},{23:"r27",24:"r27",25:"r27",26:"r27",27:"r27",28:"r27",29:"r27",30:"r27",31:"r27",32:"r27",33:"r27",34:"r27",35:"r27",36:"r27",37:"r27",38:"r27",39:"r27",40:"r27",41:"r27",42:"r27",43:"r27",44:"r27",45:"r27",46:"r27",47:"r27",48:"r27",49:"r27",50:"r27",51:"r27",52:"r27",53:"r27",54:"r27",55:"r27",56:"r27",57:"r27",58:"r27"},{23:"r28",24:"r28",25:"r28",26:"r28",27:"r28",28:"r28",29:"r28",30:"r28",31:"r28",32:"r28",33:"r28",34:"r28",35:"r28",36:"r28",37:"r28",38:"r28",39:"r28",40:"r28",41:"r28",42:"r28",43:"r28",44:"r28",45:"r28",46:"r28",47:"r28",48:"r28",49:"r28",50:"r28",51:"r28",52:"r28",53:"r28",54:"r28",55:"r28",56:"r28",57:"r28",58:"r28"},{23:"r29",24:"r29",25:"r29",26:"r29",27:"r29",28:"r29",29:"r29",30:"r29",31:"r29",32:"r29",33:"r29",34:"r29",35:"r29",36:"r29",37:"r29",38:"r29",39:"r29",40:"r29",41:"r29",42:"r29",43:"r29",44:"r29",45:"r29",46:"r29",47:"r29",48:"r29",49:"r29",50:"r29",51:"r29",52:"r29",53:"r29",54:"r29",55:"r29",56:"r29",57:"r29",58:"r29"},{23:"r30",24:"r30",25:"r30",26:"r30",27:"r30",28:"r30",29:"r30",30:"r30",31:"r30",32:"r30",33:"r30",34:"r30",35:"r30",36:"r30",37:"r30",38:"r30",39:"r30",40:"r30",41:"r30",42:"r30",43:"r30",44:"r30",45:"r30",46:"r30",47:"r30",48:"r30",49:"r30",50:"r30",51:"r30",52:"r30",53:"r30",54:"r30",55:"r30",56:"r30",57:"r30",58:"r30"},{23:"r31",24:"r31",25:"r31",26:"r31",27:"r31",28:"r31",29:"r31",30:"r31",31:"r31",32:"r31",33:"r31",34:"r31",35:"r31",36:"r31",37:"r31",38:"r31",39:"r31",40:"r31",41:"r31",42:"r31",43:"r31",44:"r31",45:"r31",46:"r31",47:"r31",48:"r31",49:"r31",50:"r31",51:"r31",52:"r31",53:"r31",54:"r31",55:"r31",56:"r31",57:"r31",58:"r31"},{23:"r32",24:"r32",25:"r32",26:"r32",27:"r32",28:"r32",29:"r32",30:"r32",31:"r32",32:"r32",33:"r32",34:"r32",35:"r32",36:"r32",37:"r32",38:"r32",39:"r32",40:"r32",41:"r32",42:"r32",43:"r32",44:"r32",45:"r32",46:"r32",47:"r32",48:"r32",49:"r32",50:"r32",51:"r32",52:"r32",53:"r32",54:"r32",55:"r32",56:"r32",57:"r32",58:"r32"},{23:"r33",24:"r33",25:"r33",26:"r33",27:"r33",28:"r33",29:"r33",30:"r33",31:"r33",32:"r33",33:"r33",34:"r33",35:"r33",36:"r33",37:"r33",38:"r33",39:"r33",40:"r33",41:"r33",42:"r33",43:"r33",44:"r33",45:"r33",46:"r33",47:"r33",48:"r33",49:"r33",50:"r33",51:"r33",52:"r33",53:"r33",54:"r33",55:"r33",56:"r33",57:"r33",58:"r33"},{23:"r34",24:"r34",25:"r34",26:"r34",27:"r34",28:"r34",29:"r34",30:"r34",31:"r34",32:"r34",33:"r34",34:"r34",35:"r34",36:"r34",37:"r34",38:"r34",39:"r34",40:"r34",41:"r34",42:"r34",43:"r34",44:"r34",45:"r34",46:"r34",47:"r34",48:"r34",49:"r34",50:"r34",51:"r34",52:"r34",53:"r34",54:"r34",55:"r34",56:"r34",57:"r34",58:"r34"},{23:"r35",24:"r35",25:"r35",26:"r35",27:"r35",28:"r35",29:"r35",30:"r35",31:"r35",32:"r35",33:"r35",34:"r35",35:"r35",36:"r35",37:"r35",38:"r35",39:"r35",40:"r35",41:"r35",42:"r35",43:"r35",44:"r35",45:"r35",46:"r35",47:"r35",48:"r35",49:"r35",50:"r35",51:"r35",52:"r35",53:"r35",54:"r35",55:"r35",56:"r35",57:"r35",58:"r35"},{23:"r36",24:"r36",25:"r36",26:"r36",27:"r36",28:"r36",29:"r36",30:"r36",31:"r36",32:"r36",33:"r36",34:"r36",35:"r36",36:"r36",37:"r36",38:"r36",39:"r36",40:"r36",41:"r36",42:"r36",43:"r36",44:"r36",45:"r36",46:"r36",47:"r36",48:"r36",49:"r36",50:"r36",51:"r36",52:"r36",53:"r36",54:"r36",55:"r36",56:"r36",57:"r36",58:"r36"},{10:70,18:65,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{10:70,18:83,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{23:"r47",24:"r47",25:"r47",26:"r47",27:"r47",28:"r47",29:"r47",30:"r47",31:"r47",32:"r47",33:"r47",34:"r47",35:"r47",36:"r47",37:"r47",38:"r47",39:"r47",40:"r47",41:"r47",42:"r47",43:"r47",44:"r47",45:"r47",46:"r47",47:"r47",48:"r47",49:"r47",50:"r47",51:"r47",52:"r47",53:"r47",54:"r47",55:"r47",57:"r47"},{23:"r48",24:"r48",25:"r48",26:"r48",27:"r48",28:"r48",29:"r48",30:"r48",31:"r48",32:"r48",33:"r48",34:"r48",35:"r48",36:"r48",37:"r48",38:"r48",39:"r48",40:"r48",41:"r48",42:"r48",43:"r48",44:"r48",45:"r48",46:"r48",47:"r48",48:"r48",49:"r48",50:"r48",51:"r48",52:"r48",53:"r48",54:"r48",55:"r48",57:"r48"},{4:85,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:87,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:89,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r13",24:"r13",25:"r13",26:"r13",27:"r13",28:"r13",29:"r13",30:"r13",31:"r13",32:"r13",33:"r13",34:"r13",35:"r13",36:"r13",37:"r13",38:"r13",39:"r13",40:"r13",41:"r13",42:"r13",43:"r13",44:"r13",45:"r13",52:"r13",53:"r13",54:"r13",55:"r13",57:"r13"},{23:"r37",24:"r37",25:"r37",26:"r37",27:"r37",28:"r37",29:"r37",30:"r37",31:"r37",32:"r37",33:"r37",34:"r37",35:"r37",36:"r37",37:"r37",38:"r37",39:"r37",40:"r37",41:"r37",42:"r37",43:"r37",44:"r37",45:"r37",52:"r37",53:"r37",54:"r37",55:"r37",57:"r37"},{23:"r39",24:"r39",25:"r39",26:"r39",27:"r39",28:"r39",29:"r39",30:"r39",31:"r39",32:"r39",33:"r39",34:"r39",35:"r39",36:"r39",37:"r39",38:"r39",39:"r39",40:"r39",41:"r39",42:"r39",43:"r39",44:"r39",45:"r39",46:"s56",52:"r39",53:"r39",54:"r39",55:"r39",57:"r39"},{23:"r41",24:"r41",25:"r41",26:"r41",27:"r41",28:"r41",29:"r41",30:"r41",31:"r41",32:"r41",33:"r41",34:"r41",35:"r41",36:"r41",37:"r41",38:"r41",39:"r41",40:"r41",41:"r41",42:"r41",43:"r41",44:"r41",45:"r41",46:"r41",52:"r41",53:"r41",54:"r41",55:"r41",57:"r41"},{23:"r42",24:"r42",25:"r42",26:"r42",27:"r42",28:"r42",29:"r42",30:"r42",31:"r42",32:"r42",33:"r42",34:"r42",35:"r42",36:"r42",37:"r42",38:"r42",39:"r42",40:"r42",41:"r42",42:"r42",43:"r42",44:"r42",45:"r42",46:"r42",52:"r42",53:"r42",54:"r42",55:"r42",57:"r42"},{23:"r43",24:"r43",25:"r43",26:"r43",27:"r43",28:"r43",29:"r43",30:"r43",31:"r43",32:"r43",33:"r43",34:"r43",35:"r43",36:"r43",37:"r43",38:"r43",39:"r43",40:"r43",41:"r43",42:"r43",43:"r43",44:"r43",45:"r43",46:"r43",52:"r43",53:"r43",54:"r43",55:"r43",57:"r43"},{23:"r44",24:"r44",25:"r44",26:"r44",27:"r44",28:"r44",29:"r44",30:"r44",31:"r44",32:"r44",33:"r44",34:"r44",35:"r44",36:"r44",37:"r44",38:"r44",39:"r44",40:"r44",41:"r44",42:"r44",43:"r44",44:"r44",45:"r44",46:"r44",52:"r44",53:"r44",54:"r44",55:"r44",57:"r44"},{23:"r45",24:"r45",25:"r45",26:"r45",27:"r45",28:"r45",29:"r45",30:"r45",31:"r45",32:"r45",33:"r45",34:"r45",35:"r45",36:"r45",37:"r45",38:"r45",39:"r45",40:"r45",41:"r45",42:"r45",43:"r45",44:"r45",45:"r45",46:"r45",52:"r45",53:"r45",54:"r45",55:"r45",57:"r45"},{23:"r46",24:"r46",25:"r46",26:"r46",27:"r46",28:"r46",29:"r46",30:"r46",31:"r46",32:"r46",33:"r46",34:"r46",35:"r46",36:"r46",37:"r46",38:"r46",39:"r46",40:"r46",41:"r46",42:"r46",43:"r46",44:"r46",45:"r46",46:"r46",52:"r46",53:"r46",54:"r46",55:"r46",57:"r46"},{23:"r40",24:"r40",25:"r40",26:"r40",27:"r40",28:"r40",29:"r40",30:"r40",31:"r40",32:"r40",33:"r40",34:"r40",35:"r40",36:"r40",37:"r40",38:"r40",39:"r40",40:"r40",41:"r40",42:"r40",43:"r40",44:"r40",45:"r40",52:"r40",53:"r40",54:"r40",55:"r40",57:"r40"},{25:"s12",31:"s58"},{23:"r18",24:"r18",25:"r18",26:"r18",27:"r18",28:"r18",29:"r18",30:"r18",31:"r18",32:"r18",33:"r18",34:"r18",35:"r18",36:"r18",37:"r18",38:"r18",39:"r18",40:"r18",41:"r18",42:"r18",43:"r18",44:"r18",45:"r18",52:"r18",53:"r18",54:"r18",55:"r18",57:"r18"},{25:"s12",31:"s60"},{23:"r19",24:"r19",25:"r19",26:"r19",27:"r19",28:"r19",29:"r19",30:"r19",31:"r19",32:"r19",33:"r19",34:"r19",35:"r19",36:"r19",37:"r19",38:"r19",39:"r19",40:"r19",41:"r19",42:"r19",43:"r19",44:"r19",45:"r19",52:"r19",53:"r19",54:"r19",55:"r19",57:"r19"},{25:"s12",31:"s62"},{23:"r20",24:"r20",25:"r20",26:"r20",27:"r20",28:"r20",29:"r20",30:"r20",31:"r20",32:"r20",33:"r20",34:"r20",35:"r20",36:"r20",37:"r20",38:"r20",39:"r20",40:"r20",41:"r20",42:"r20",43:"r20",44:"r20",45:"r20",52:"r20",53:"r20",54:"r20",55:"r20",57:"r20"},{25:"s12",31:"s64"},{23:"r21",24:"r21",25:"r21",26:"r21",27:"r21",28:"r21",29:"r21",30:"r21",31:"r21",32:"r21",33:"r21",34:"r21",35:"r21",36:"r21",37:"r21",38:"r21",39:"r21",40:"r21",41:"r21",42:"r21",43:"r21",44:"r21",45:"r21",52:"r21",53:"r21",54:"r21",55:"r21",57:"r21"},{56:"s72"},{56:"r55"},{10:70,20:73,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r56",58:"s74"},{24:"r62",28:"r62",35:"r62",36:"r62",37:"r62",38:"r62",39:"r62",40:"r62",41:"r62",42:"r62",43:"r62",44:"r62",45:"r62",56:"r62",58:"r62"},{24:"r63",28:"r63",35:"r63",36:"r63",37:"r63",38:"r63",39:"r63",40:"r63",41:"r63",42:"r63",43:"r63",44:"r63",45:"r63",56:"r63",58:"r63"},{24:"r64",28:"r64",35:"r64",36:"r64",37:"r64",38:"r64",39:"r64",40:"r64",41:"r64",42:"r64",43:"r64",44:"r64",45:"r64",56:"r64",58:"r64"},{24:"r65",28:"r65",35:"r65",36:"r65",37:"r65",38:"r65",39:"r65",40:"r65",41:"r65",42:"r65",43:"r65",44:"r65",45:"r65",56:"r65",58:"r65"},{23:"r52",24:"r52",25:"r52",26:"r52",27:"r52",28:"r52",29:"r52",30:"r52",31:"r52",32:"r52",33:"r52",34:"r52",35:"r52",36:"r52",37:"r52",38:"r52",39:"r52",40:"r52",41:"r52",42:"r52",43:"r52",44:"r52",45:"r52",46:"r52",47:"r52",48:"r52",49:"r52",50:"r52",51:"r52",52:"r52",53:"r52",54:"r52",55:"r52",57:"r52"},{56:"r57"},{10:70,21:77,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{56:"r59"},{10:70,20:79,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r63",58:"s80"},{10:70,18:78,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r58"},{56:"r60"},{10:70,21:81,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{10:70,18:82,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r61"},{56:"s84"},{23:"r53",24:"r53",25:"r53",26:"r53",27:"r53",28:"r53",29:"r53",30:"r53",31:"r53",32:"r53",33:"r53",34:"r53",35:"r53",36:"r53",37:"r53",38:"r53",39:"r53",40:"r53",41:"r53",42:"r53",43:"r53",44:"r53",45:"r53",46:"r53",47:"r53",48:"r53",49:"r53",50:"r53",51:"r53",52:"r53",53:"r53",54:"r53",55:"r53",57:"r53"},{25:"s12",31:"s86"},{23:"r49",24:"r49",25:"r49",26:"r49",27:"r49",28:"r49",29:"r49",30:"r49",31:"r49",32:"r49",33:"r49",34:"r49",35:"r49",36:"r49",37:"r49",38:"r49",39:"r49",40:"r49",41:"r49",42:"r49",43:"r49",44:"r49",45:"r49",46:"r49",47:"r49",48:"r49",49:"r49",50:"r49",51:"r49",52:"r49",53:"r49",54:"r49",55:"r49",57:"r49"},{25:"s12",31:"s88"},{23:"r50",24:"r50",25:"r50",26:"r50",27:"r50",28:"r50",29:"r50",30:"r50",31:"r50",32:"r50",33:"r50",34:"r50",35:"r50",36:"r50",37:"r50",38:"r50",39:"r50",40:"r50",41:"r50",42:"r50",43:"r50",44:"r50",45:"r50",46:"r50",47:"r50",48:"r50",49:"r50",50:"r50",51:"r50",52:"r50",53:"r50",54:"r50",55:"r50",57:"r50"},{25:"s12",31:"s90"},{23:"r51",24:"r51",25:"r51",26:"r51",27:"r51",28:"r51",29:"r51",30:"r51",31:"r51",32:"r51",33:"r51",34:"r51",35:"r51",36:"r51",37:"r51",38:"r51",39:"r51",40:"r51",41:"r51",42:"r51",43:"r51",44:"r51",45:"r51",46:"r51",47:"r51",48:"r51",49:"r51",50:"r51",51:"r51",52:"r51",53:"r51",54:"r51",55:"r51",57:"r51"}],l=[],v=void 0,p=[[/^#[^\n]+/,function(){}],[/^\s+/,function(){}],[/^-/,function(){return"DASH"}],[/^\//,function(){return"CHAR"}],[/^#/,function(){return"CHAR"}],[/^\|/,function(){return"CHAR"}],[/^\./,function(){return"CHAR"}],[/^\{/,function(){return"CHAR"}],[/^\{\d+\}/,function(){return"RANGE_EXACT"}],[/^\{\d+,\}/,function(){return"RANGE_OPEN"}],[/^\{\d+,\d+\}/,function(){return"RANGE_CLOSED"}],[/^\\k<(([\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\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00-\ude03\ude05-\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return E(t.slice(3,-1),this.getCurrentState()),"NAMED_GROUP_REF"}],[/^\\b/,function(){return"ESC_b"}],[/^\\B/,function(){return"ESC_B"}],[/^\\c[a-zA-Z]/,function(){return"CTRL_CH"}],[/^\\0\d{1,2}/,function(){return"OCT_CODE"}],[/^\\0/,function(){return"DEC_CODE"}],[/^\\\d{1,3}/,function(){return"DEC_CODE"}],[/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/,function(){return"U_CODE_SURROGATE"}],[/^\\u\{[0-9a-fA-F]{1,}\}/,function(){return"U_CODE"}],[/^\\u[0-9a-fA-F]{4}/,function(){return"U_CODE"}],[/^\\[pP]\{\w+(?:=\w+)?\}/,function(){return"U_PROP_VALUE_EXP"}],[/^\\x[0-9a-fA-F]{2}/,function(){return"HEX_CODE"}],[/^\\[tnrdDsSwWvf]/,function(){return"META_CHAR"}],[/^\\\//,function(){return"ESC_CHAR"}],[/^\\[ #]/,function(){return"ESC_CHAR"}],[/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/,function(){return"ESC_CHAR"}],[/^\\[^*?+\[()\\|]/,function(){var e=this.getCurrentState();if("u_class"===e&&"\\-"===t)return"ESC_CHAR";if("u"===e||"xu"===e||"u_class"===e)throw new SyntaxError("invalid Unicode escape "+t);return"ESC_CHAR"}],[/^\(/,function(){return"CHAR"}],[/^\)/,function(){return"CHAR"}],[/^\(\?=/,function(){return"POS_LA_ASSERT"}],[/^\(\?!/,function(){return"NEG_LA_ASSERT"}],[/^\(\?<=/,function(){return"POS_LB_ASSERT"}],[/^\(\?<!/,function(){return"NEG_LB_ASSERT"}],[/^\(\?:/,function(){return"NON_CAPTURE_GROUP"}],[/^\(\?<(([\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\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00-\ude03\ude05-\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return E(t=t.slice(3,-1),this.getCurrentState()),"NAMED_CAPTURE_GROUP"}],[/^\(/,function(){return"L_PAREN"}],[/^\)/,function(){return"R_PAREN"}],[/^[*?+[^$]/,function(){return"CHAR"}],[/^\\\]/,function(){return"ESC_CHAR"}],[/^\]/,function(){return this.popState(),"R_BRACKET"}],[/^\^/,function(){return"BOS"}],[/^\$/,function(){return"EOS"}],[/^\*/,function(){return"STAR"}],[/^\?/,function(){return"Q_MARK"}],[/^\+/,function(){return"PLUS"}],[/^\|/,function(){return"BAR"}],[/^\./,function(){return"ANY"}],[/^\//,function(){return"SLASH"}],[/^[^*?+\[()\\|]/,function(){return"CHAR"}],[/^\[\^/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"NEG_CLASS"}],[/^\[/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"L_BRACKET"}]],b={INITIAL:[8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],xu:[0,1,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],x:[0,1,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u_class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]},m={type:"$",value:""};v={initString:function(e){return this._string=e,this._cursor=0,this._states=["INITIAL"],this._tokensQueue=[],this._currentLine=1,this._currentColumn=0,this._currentLineBeginOffset=0,this._tokenStartOffset=0,this._tokenEndOffset=0,this._tokenStartLine=1,this._tokenEndLine=1,this._tokenStartColumn=0,this._tokenEndColumn=0,this},getStates:function(){return this._states},getCurrentState:function(){return this._states[this._states.length-1]},pushState:function(e){this._states.push(e)},begin:function(e){this.pushState(e)},popState:function(){return this._states.length>1?this._states.pop():this._states[0]},getNextToken:function(){if(this._tokensQueue.length>0)return this.onToken(this._toToken(this._tokensQueue.shift()));if(!this.hasMoreTokens())return this.onToken(m);for(var e=this._string.slice(this._cursor),u=b[this.getCurrentState()],r=0;r<u.length;r++){var d=u[r],a=p[d],s=this._match(e,a[0]);if(""===e&&""===s&&this._cursor++,null!==s){(t=s).length;var i=a[1].call(this);if(!i)return this.getNextToken();if(Array.isArray(i)){var f,o=i.slice(1);i=i[0],o.length>0&&(f=this._tokensQueue).unshift.apply(f,n(o))}return this.onToken(this._toToken(i,t))}}if(this.isEOF())return this._cursor++,m;this.throwUnexpectedToken(e[0],this._currentLine,this._currentColumn)},throwUnexpectedToken:function(e,u,r){var n=this._string.split("\n")[u-1],t="";throw n&&(t="\n\n"+n+"\n"+" ".repeat(r)+"^\n"),new SyntaxError(t+'Unexpected token: "'+e+'" at '+u+":"+r+".")},getCursor:function(){return this._cursor},getCurrentLine:function(){return this._currentLine},getCurrentColumn:function(){return this._currentColumn},_captureLocation:function(e){var u=/\n/g;this._tokenStartOffset=this._cursor,this._tokenStartLine=this._currentLine,this._tokenStartColumn=this._tokenStartOffset-this._currentLineBeginOffset;for(var r=void 0;null!==(r=u.exec(e));)this._currentLine++,this._currentLineBeginOffset=this._tokenStartOffset+r.index+1;this._tokenEndOffset=this._cursor+e.length,this._tokenEndLine=this._currentLine,this._tokenEndColumn=this._currentColumn=this._tokenEndOffset-this._currentLineBeginOffset},_toToken:function(e){return{type:e,value:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",startOffset:this._tokenStartOffset,endOffset:this._tokenEndOffset,startLine:this._tokenStartLine,endLine:this._tokenEndLine,startColumn:this._tokenStartColumn,endColumn:this._tokenEndColumn}},isEOF:function(){return this._cursor===this._string.length},hasMoreTokens:function(){return this._cursor<=this._string.length},_match:function(e,u){var r=e.match(u);return r?(this._captureLocation(r[0]),this._cursor+=r[0].length,r[0]):null},onToken:function(e){return e}},d.lexer=v,d.tokenizer=v,d.options={captureLocations:!0};var h={setOptions:function(e){return d.options=e,this},getOptions:function(){return d.options},parse:function(e,u){if(!v)throw new Error("Tokenizer instance wasn't specified.");v.initString(e);var r=d.options;u&&(d.options=Object.assign({},d.options,u)),h.onParseBegin(e,v,d.options),l.length=0,l.push(0);var i=v.getNextToken(),p=null;do{i||(d.options=r,L());var b=l[l.length-1],m=o[i.type];c[b].hasOwnProperty(m)||(d.options=r,N(i));var y=c[b][m];if("s"===y[0]){var g=null;d.options.captureLocations&&(g={startOffset:i.startOffset,endOffset:i.endOffset,startLine:i.startLine,endLine:i.endLine,startColumn:i.startColumn,endColumn:i.endColumn}),p=this.onShift(i),l.push({symbol:o[p.type],semanticValue:p.value,loc:g},Number(y.slice(1))),i=v.getNextToken()}else if("r"===y[0]){var C=y.slice(1),B=f[C],_="function"==typeof B[2],A=_?[]:null,x=_&&d.options.captureLocations?[]:null;if(0!==B[1])for(var w=B[1];w-- >0;){l.pop();var S=l.pop();_&&(A.unshift(S.semanticValue),x&&x.unshift(S.loc))}var j={symbol:B[0]};if(_){t=p?p.value:null,p&&p.value.length;var k=null!==x?A.concat(x):A;B[2].apply(B,n(k)),j.semanticValue=a,x&&(j.loc=s)}var P=l[l.length-1],E=B[0];l.push(j,c[P][E])}else if("acc"===y){l.pop();var O=l.pop();return(1!==l.length||0!==l[0]||v.hasMoreTokens())&&(d.options=r,N(i)),O.hasOwnProperty("semanticValue")?(d.options=r,h.onParseEnd(O.semanticValue),O.semanticValue):(h.onParseEnd(),d.options=r,!0)}}while(v.hasMoreTokens()||l.length>1)},setTokenizer:function(e){return v=e,h},getTokenizer:function(){return v},onParseBegin:function(e,u,r){},onParseEnd:function(e){},onShift:function(e){return e}},y=0,g={},C="";function B(e){var u=e.match(/\d+/g).map(Number);if(Number.isFinite(u[1])&&u[1]<u[0])throw new SyntaxError("Numbers out of order in "+e+" quantifier");return u}function _(e,u){if("control"===e.kind||"control"===u.kind||!isNaN(e.codePoint)&&!isNaN(u.codePoint)&&e.codePoint>u.codePoint)throw new SyntaxError("Range "+e.value+"-"+u.value+" out of order in character class")}h.onParseBegin=function(e,u){C=e,y=0,g={};var r=e.lastIndexOf("/"),n=e.slice(r);n.includes("x")&&n.includes("u")?u.pushState("xu"):(n.includes("x")&&u.pushState("x"),n.includes("u")&&u.pushState("u"))},h.onShift=function(e){return"L_PAREN"!==e.type&&"NAMED_CAPTURE_GROUP"!==e.type||(e.value=new String(e.value),e.value.groupNumber=++y),e};var A=r(37047);function x(e,u,r){var n=void 0,t=void 0;switch(u){case"decimal":t=Number(e.slice(1)),n=String.fromCodePoint(t);break;case"oct":t=parseInt(e.slice(1),8),n=String.fromCodePoint(t);break;case"hex":case"unicode":if(e.lastIndexOf("\\u")>0){var d=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,t=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){t=!0,d=e}finally{try{!n&&s.return&&s.return()}finally{if(t)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(e.split("\\u").slice(1),2),a=d[0],s=d[1];t=1024*((a=parseInt(a,16))-55296)+((s=parseInt(s,16))-56320)+65536,n=String.fromCodePoint(t)}else{var i=e.slice(2).replace("{","");if((t=parseInt(i,16))>1114111)throw new SyntaxError("Bad character escape sequence: "+e);n=String.fromCodePoint(t)}break;case"meta":switch(e){case"\\t":t=(n="\t").codePointAt(0);break;case"\\n":t=(n="\n").codePointAt(0);break;case"\\r":t=(n="\r").codePointAt(0);break;case"\\v":t=(n="\v").codePointAt(0);break;case"\\f":t=(n="\f").codePointAt(0);break;case"\\b":t=(n="\b").codePointAt(0);case"\\0":n="\0",t=0;case".":n=".",t=NaN;break;default:t=NaN}break;case"simple":t=(n=e).codePointAt(0)}return T({type:"Char",value:e,kind:u,symbol:n,codePoint:t},r)}var w="gimsuxy";function S(e){var u=new Set,r=!0,n=!1,t=void 0;try{for(var d,a=e[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var s=d.value;if(u.has(s)||!w.includes(s))throw new SyntaxError("Invalid flags: "+e);u.add(s)}}catch(e){n=!0,t=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw t}}return e.split("").sort().join("")}var j=/^\\u[0-9a-fA-F]{4}/,k=/^\\u\{[0-9a-fA-F]{1,}\}/,P=/\\u\{[0-9a-fA-F]{1,}\}/;function E(e,u){if(P.test(e)&&"u"!==u&&"xu"!==u&&"u_class"!==u)throw new SyntaxError('invalid group Unicode name "'+e+'", use `u` flag.');return e}var O=/\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/;function D(e){return e.replace(new RegExp(O,"g"),(function(e,u,r,n,t,d,a){return u?String.fromCodePoint(parseInt(u,16),parseInt(r,16)):n?String.fromCodePoint(parseInt(n,16)):t?String.fromCodePoint(parseInt(t,16)):d?String.fromCodePoint(parseInt(d,16)):a?String.fromCodePoint(parseInt(a,16)):e}))}function T(e,u){return d.options.captureLocations&&(e.loc={source:C.slice(u.startOffset,u.endOffset),start:{line:u.startLine,column:u.startColumn,offset:u.startOffset},end:{line:u.endLine,column:u.endColumn,offset:u.endOffset}}),e}function R(e,u){return d.options.captureLocations?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:null}function N(e){"$"===e.type&&L(),v.throwUnexpectedToken(e.value,e.startLine,e.startColumn)}function L(){!function(){throw new SyntaxError("Unexpected end of input.")}()}e.exports=h},23810:(e,u,r)=>{"use strict";var n=r(97e3),t=n.parse.bind(n);n.parse=function(e,u){return t(""+e,u)},n.setOptions({captureLocations:!1}),e.exports=n},37047:e=>{"use strict";var u={General_Category:"gc",Script:"sc",Script_Extensions:"scx"},r=f(u),n={ASCII:"ASCII",ASCII_Hex_Digit:"AHex",Alphabetic:"Alpha",Any:"Any",Assigned:"Assigned",Bidi_Control:"Bidi_C",Bidi_Mirrored:"Bidi_M",Case_Ignorable:"CI",Cased:"Cased",Changes_When_Casefolded:"CWCF",Changes_When_Casemapped:"CWCM",Changes_When_Lowercased:"CWL",Changes_When_NFKC_Casefolded:"CWKCF",Changes_When_Titlecased:"CWT",Changes_When_Uppercased:"CWU",Dash:"Dash",Default_Ignorable_Code_Point:"DI",Deprecated:"Dep",Diacritic:"Dia",Emoji:"Emoji",Emoji_Component:"Emoji_Component",Emoji_Modifier:"Emoji_Modifier",Emoji_Modifier_Base:"Emoji_Modifier_Base",Emoji_Presentation:"Emoji_Presentation",Extended_Pictographic:"Extended_Pictographic",Extender:"Ext",Grapheme_Base:"Gr_Base",Grapheme_Extend:"Gr_Ext",Hex_Digit:"Hex",IDS_Binary_Operator:"IDSB",IDS_Trinary_Operator:"IDST",ID_Continue:"IDC",ID_Start:"IDS",Ideographic:"Ideo",Join_Control:"Join_C",Logical_Order_Exception:"LOE",Lowercase:"Lower",Math:"Math",Noncharacter_Code_Point:"NChar",Pattern_Syntax:"Pat_Syn",Pattern_White_Space:"Pat_WS",Quotation_Mark:"QMark",Radical:"Radical",Regional_Indicator:"RI",Sentence_Terminal:"STerm",Soft_Dotted:"SD",Terminal_Punctuation:"Term",Unified_Ideograph:"UIdeo",Uppercase:"Upper",Variation_Selector:"VS",White_Space:"space",XID_Continue:"XIDC",XID_Start:"XIDS"},t=f(n),d={Cased_Letter:"LC",Close_Punctuation:"Pe",Connector_Punctuation:"Pc",Control:["Cc","cntrl"],Currency_Symbol:"Sc",Dash_Punctuation:"Pd",Decimal_Number:["Nd","digit"],Enclosing_Mark:"Me",Final_Punctuation:"Pf",Format:"Cf",Initial_Punctuation:"Pi",Letter:"L",Letter_Number:"Nl",Line_Separator:"Zl",Lowercase_Letter:"Ll",Mark:["M","Combining_Mark"],Math_Symbol:"Sm",Modifier_Letter:"Lm",Modifier_Symbol:"Sk",Nonspacing_Mark:"Mn",Number:"N",Open_Punctuation:"Ps",Other:"C",Other_Letter:"Lo",Other_Number:"No",Other_Punctuation:"Po",Other_Symbol:"So",Paragraph_Separator:"Zp",Private_Use:"Co",Punctuation:["P","punct"],Separator:"Z",Space_Separator:"Zs",Spacing_Mark:"Mc",Surrogate:"Cs",Symbol:"S",Titlecase_Letter:"Lt",Unassigned:"Cn",Uppercase_Letter:"Lu"},a=f(d),s={Adlam:"Adlm",Ahom:"Ahom",Anatolian_Hieroglyphs:"Hluw",Arabic:"Arab",Armenian:"Armn",Avestan:"Avst",Balinese:"Bali",Bamum:"Bamu",Bassa_Vah:"Bass",Batak:"Batk",Bengali:"Beng",Bhaiksuki:"Bhks",Bopomofo:"Bopo",Brahmi:"Brah",Braille:"Brai",Buginese:"Bugi",Buhid:"Buhd",Canadian_Aboriginal:"Cans",Carian:"Cari",Caucasian_Albanian:"Aghb",Chakma:"Cakm",Cham:"Cham",Cherokee:"Cher",Common:"Zyyy",Coptic:["Copt","Qaac"],Cuneiform:"Xsux",Cypriot:"Cprt",Cyrillic:"Cyrl",Deseret:"Dsrt",Devanagari:"Deva",Dogra:"Dogr",Duployan:"Dupl",Egyptian_Hieroglyphs:"Egyp",Elbasan:"Elba",Ethiopic:"Ethi",Georgian:"Geor",Glagolitic:"Glag",Gothic:"Goth",Grantha:"Gran",Greek:"Grek",Gujarati:"Gujr",Gunjala_Gondi:"Gong",Gurmukhi:"Guru",Han:"Hani",Hangul:"Hang",Hanifi_Rohingya:"Rohg",Hanunoo:"Hano",Hatran:"Hatr",Hebrew:"Hebr",Hiragana:"Hira",Imperial_Aramaic:"Armi",Inherited:["Zinh","Qaai"],Inscriptional_Pahlavi:"Phli",Inscriptional_Parthian:"Prti",Javanese:"Java",Kaithi:"Kthi",Kannada:"Knda",Katakana:"Kana",Kayah_Li:"Kali",Kharoshthi:"Khar",Khmer:"Khmr",Khojki:"Khoj",Khudawadi:"Sind",Lao:"Laoo",Latin:"Latn",Lepcha:"Lepc",Limbu:"Limb",Linear_A:"Lina",Linear_B:"Linb",Lisu:"Lisu",Lycian:"Lyci",Lydian:"Lydi",Mahajani:"Mahj",Makasar:"Maka",Malayalam:"Mlym",Mandaic:"Mand",Manichaean:"Mani",Marchen:"Marc",Medefaidrin:"Medf",Masaram_Gondi:"Gonm",Meetei_Mayek:"Mtei",Mende_Kikakui:"Mend",Meroitic_Cursive:"Merc",Meroitic_Hieroglyphs:"Mero",Miao:"Plrd",Modi:"Modi",Mongolian:"Mong",Mro:"Mroo",Multani:"Mult",Myanmar:"Mymr",Nabataean:"Nbat",New_Tai_Lue:"Talu",Newa:"Newa",Nko:"Nkoo",Nushu:"Nshu",Ogham:"Ogam",Ol_Chiki:"Olck",Old_Hungarian:"Hung",Old_Italic:"Ital",Old_North_Arabian:"Narb",Old_Permic:"Perm",Old_Persian:"Xpeo",Old_Sogdian:"Sogo",Old_South_Arabian:"Sarb",Old_Turkic:"Orkh",Oriya:"Orya",Osage:"Osge",Osmanya:"Osma",Pahawh_Hmong:"Hmng",Palmyrene:"Palm",Pau_Cin_Hau:"Pauc",Phags_Pa:"Phag",Phoenician:"Phnx",Psalter_Pahlavi:"Phlp",Rejang:"Rjng",Runic:"Runr",Samaritan:"Samr",Saurashtra:"Saur",Sharada:"Shrd",Shavian:"Shaw",Siddham:"Sidd",SignWriting:"Sgnw",Sinhala:"Sinh",Sogdian:"Sogd",Sora_Sompeng:"Sora",Soyombo:"Soyo",Sundanese:"Sund",Syloti_Nagri:"Sylo",Syriac:"Syrc",Tagalog:"Tglg",Tagbanwa:"Tagb",Tai_Le:"Tale",Tai_Tham:"Lana",Tai_Viet:"Tavt",Takri:"Takr",Tamil:"Taml",Tangut:"Tang",Telugu:"Telu",Thaana:"Thaa",Thai:"Thai",Tibetan:"Tibt",Tifinagh:"Tfng",Tirhuta:"Tirh",Ugaritic:"Ugar",Vai:"Vaii",Warang_Citi:"Wara",Yi:"Yiii",Zanabazar_Square:"Zanb"},i=f(s);function f(e){var u={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(Array.isArray(n))for(var t=0;t<n.length;t++)u[n[t]]=r;else u[n]=r}return u}function o(e){return d.hasOwnProperty(e)||a.hasOwnProperty(e)}function c(e){return s.hasOwnProperty(e)||i.hasOwnProperty(e)}e.exports={isAlias:function(e){return r.hasOwnProperty(e)||t.hasOwnProperty(e)},isValidName:function(e){return u.hasOwnProperty(e)||r.hasOwnProperty(e)||n.hasOwnProperty(e)||t.hasOwnProperty(e)},isValidValue:function(e,u){return function(e){return"General_Category"===e||"gc"==e}(e)?o(u):!!function(e){return"Script"===e||"Script_Extensions"===e||"sc"===e||"scx"===e}(e)&&c(u)},isGeneralCategoryValue:o,isScriptCategoryValue:c,isBinaryPropertyName:function(e){return n.hasOwnProperty(e)||t.hasOwnProperty(e)},getCanonicalName:function(e){return r.hasOwnProperty(e)?r[e]:t.hasOwnProperty(e)?t[e]:null},getCanonicalValue:function(e){return a.hasOwnProperty(e)?a[e]:i.hasOwnProperty(e)?i[e]:t.hasOwnProperty(e)?t[e]:null},NON_BINARY_PROP_NAMES_TO_ALIASES:u,NON_BINARY_ALIASES_TO_PROP_NAMES:r,BINARY_PROP_NAMES_TO_ALIASES:n,BINARY_ALIASES_TO_PROP_NAMES:t,GENERAL_CATEGORY_VALUE_TO_ALIASES:d,GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES:a,SCRIPT_VALUE_TO_ALIASES:s,SCRIPT_VALUE_ALIASES_TO_VALUE:i}},54676:(e,u,r)=>{"use strict";var n=r(9182),t=r(20042),d=r(63072),a=r(23810),s=r(2003),i=r(29171),f=r(36734),o=r(51537).RegExpTree,c={parser:a,fa:f,TransformResult:s.TransformResult,parse:function(e,u){return a.parse(""+e,u)},traverse:function(e,u,r){return i.traverse(e,u,r)},transform:function(e,u){return s.transform(e,u)},generate:function(e){return t.generate(e)},toRegExp:function(e){var u=this.compatTranspile(e);return new RegExp(u.getSource(),u.getFlags())},optimize:function(e,u){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).blacklist;return d.optimize(e,{whitelist:u,blacklist:r})},compatTranspile:function(e,u){return n.transform(e,u)},exec:function(e,u){if("string"==typeof e){var r=this.compatTranspile(e),n=r.getExtra();e=n.namedCapturingGroups?new o(r.toRegExp(),{flags:r.getFlags(),source:r.getSource(),groups:n.namedCapturingGroups}):r.toRegExp()}return e.exec(u)}};e.exports=c},2003:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),t=r(20042),d=r(23810),a=r(29171),s=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._ast=u,this._source=null,this._string=null,this._regexp=null,this._extra=r}return n(e,[{key:"getAST",value:function(){return this._ast}},{key:"setExtra",value:function(e){this._extra=e}},{key:"getExtra",value:function(){return this._extra}},{key:"toRegExp",value:function(){return this._regexp||(this._regexp=new RegExp(this.getSource(),this._ast.flags)),this._regexp}},{key:"getSource",value:function(){return this._source||(this._source=t.generate(this._ast.body)),this._source}},{key:"getFlags",value:function(){return this._ast.flags}},{key:"toString",value:function(){return this._string||(this._string=t.generate(this._ast)),this._string}}]),e}();e.exports={TransformResult:s,transform:function(e,u){var r=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(r=d.parse(e,{captureLocations:!0})),a.traverse(r,u),new s(r)}}},33166:e=>{"use strict";e.exports={disjunctionToList:function e(u){if("Disjunction"!==u.type)throw new TypeError('Expected "Disjunction" node, got "'+u.type+'"');var r=[];return u.left&&"Disjunction"===u.left.type?r.push.apply(r,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(e(u.left)).concat([u.right])):r.push(u.left,u.right),r},listToDisjunction:function(e){return e.reduce((function(e,u){return{type:"Disjunction",left:e,right:u}}))},increaseQuantifierByOne:function(e){"*"===e.kind?e.kind="+":"+"===e.kind?(e.kind="Range",e.from=2,delete e.to):"?"===e.kind?(e.kind="Range",e.from=1,e.to=2):"Range"===e.kind&&(e.from+=1,e.to&&(e.to+=1))}}},29171:(e,u,r)=>{"use strict";var n=r(41059);e.exports={traverse:function(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{asNodes:!1};function t(e,u,r,t){var d=n.getForNode(u);return n.getForNode(e,d,r,t)}Array.isArray(u)||(u=[u]),u=u.filter((function(u){return"function"!=typeof u.shouldRun||u.shouldRun(e)})),n.initRegistry(),u.forEach((function(u){"function"==typeof u.init&&u.init(e)})),function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.pre,t=u.post,d=u.skipProperty;!function e(u,a,s,i){if(u&&"string"==typeof u.type){var f=void 0;if(r&&(f=r(u,a,s,i)),!1!==f)for(var o in a&&a[s]&&(u=isNaN(i)?a[s]:a[s][i]),u)if(u.hasOwnProperty(o)){if(d?d(o,u):"$"===o[0])continue;var c=u[o];if(Array.isArray(c)){var l=0;for(n.traversingIndexStack.push(l);l<c.length;)e(c[l],u,o,l),l=n.updateTraversingIndex(1);n.traversingIndexStack.pop()}else e(c,u,o)}t&&t(u,a,s,i)}}(e,null)}(e,{pre:function(e,n,d,a){var s=void 0;r.asNodes||(s=t(e,n,d,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value;if("function"==typeof v["*"])if(s){if(!s.isRemoved()&&!1===v["*"](s))return!1}else v["*"](e,n,d,a);var p=void 0;if("function"==typeof v[e.type]?p=v[e.type]:"object"==typeof v[e.type]&&"function"==typeof v[e.type].pre&&(p=v[e.type].pre),p)if(s){if(!s.isRemoved()&&!1===p.call(v,s))return!1}else p.call(v,e,n,d,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}},post:function(e,n,d,a){if(e){var s=void 0;r.asNodes||(s=t(e,n,d,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value,p=void 0;if("object"==typeof v[e.type]&&"function"==typeof v[e.type].post&&(p=v[e.type].post),p)if(s){if(!s.isRemoved()&&!1===p.call(v,s))return!1}else p.call(v,e,n,d,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}}},skipProperty:function(e){return"loc"===e}})}}},41059:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r="expressions",n="expression",t=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,t=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.node=u,this.parentPath=r,this.parent=r?r.node:null,this.property=n,this.index=t}return u(e,[{key:"_enforceProp",value:function(e){if(!this.node.hasOwnProperty(e))throw new Error("Node of type "+this.node.type+" doesn't have \""+e+'" collection.')}},{key:"setChild",value:function(u){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=void 0;return null!=t?(d||(d=r),this._enforceProp(d),this.node[d][t]=u,a=e.getForNode(u,this,d,t)):(d||(d=n),this._enforceProp(d),this.node[d]=u,a=e.getForNode(u,this,d,null)),a}},{key:"appendChild",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u||(u=r),this._enforceProp(u);var n=this.node[u].length;return this.setChild(e,n,u)}},{key:"insertChildAt",value:function(u,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;this._enforceProp(t),this.node[t].splice(n,0,u),n<=e.getTraversingIndex()&&e.updateTraversingIndex(1),this._rebuildIndex(this.node,t)}},{key:"remove",value:function(){if(!this.isRemoved()&&(e.registry.delete(this.node),this.node=null,this.parent)){if(null!==this.index)return this.parent[this.property].splice(this.index,1),this.index<=e.getTraversingIndex()&&e.updateTraversingIndex(-1),this._rebuildIndex(this.parent,this.property),this.index=null,void(this.property=null);delete this.parent[this.property],this.property=null}}},{key:"_rebuildIndex",value:function(u,r){for(var n=e.getForNode(u),t=0;t<u[r].length;t++)e.getForNode(u[r][t],n,r,t).index=t}},{key:"isRemoved",value:function(){return null===this.node}},{key:"replace",value:function(u){return e.registry.delete(this.node),this.node=u,this.parent?(null!==this.index?this.parent[this.property][this.index]=u:this.parent[this.property]=u,e.getForNode(u,this.parentPath,this.property,this.index)):null}},{key:"update",value:function(e){Object.assign(this.node,e)}},{key:"getParent",value:function(){return this.parentPath}},{key:"getChild",value:function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.node.expressions?e.getForNode(this.node.expressions[u],this,r,u):this.node.expression&&0==u?e.getForNode(this.node.expression,this,n):null}},{key:"hasEqualSource",value:function(e){return JSON.stringify(this.node,d)===JSON.stringify(e.node,d)}},{key:"jsonEncode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.format,r=e.useLoc;return JSON.stringify(this.node,r?null:d,u)}},{key:"getPreviousSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index-1],e.getForNode(this.parent),this.property,this.index-1):null}},{key:"getNextSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index+1],e.getForNode(this.parent),this.property,this.index+1):null}}],[{key:"getForNode",value:function(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,t=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;if(!u)return null;e.registry.has(u)||e.registry.set(u,new e(u,r,n,-1==t?null:t));var d=e.registry.get(u);return null!==r&&(d.parentPath=r,d.parent=d.parentPath.node),null!==n&&(d.property=n),t>=0&&(d.index=t),d}},{key:"initRegistry",value:function(){e.registry||(e.registry=new Map),e.registry.clear()}},{key:"updateTraversingIndex",value:function(u){return e.traversingIndexStack[e.traversingIndexStack.length-1]+=u}},{key:"getTraversingIndex",value:function(){return e.traversingIndexStack[e.traversingIndexStack.length-1]}}]),e}();function d(e,u){if("loc"!==e)return u}t.initRegistry(),t.traversingIndexStack=[],e.exports=t},1379:e=>{"use strict";e.exports=function e(u){if(null===u||"object"!=typeof u)return u;var r=void 0;for(var n in r=Array.isArray(u)?[]:{},u)r[n]=e(u[n]);return r}},34999:(e,u,r)=>{"use strict";e.exports=r(54676)},18411:()=>{},73909:e=>{"use strict";e.exports=JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.17.0","date":"2023-07-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.18.0","date":"2023-09-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.19.0","date":"2023-11-29","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.20.0","date":"2024-03-26","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.5.0","date":"2023-07-19","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.6.0","date":"2023-08-23","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.7.0","date":"2023-09-18","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.8.0","date":"2023-09-28","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.9.0","date":"2023-10-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.10.0","date":"2023-11-22","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.11.0","date":"2024-01-09","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.12.0","date":"2024-03-26","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.13.0","date":"2024-05-07","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.14.0","date":"2024-05-28","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.15.0","date":"2024-06-20","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"21.0.0","date":"2023-10-17","lts":false,"security":false,"v8":"11.8.172.13"},{"name":"nodejs","version":"21.1.0","date":"2023-10-24","lts":false,"security":false,"v8":"11.8.172.15"},{"name":"nodejs","version":"21.2.0","date":"2023-11-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.3.0","date":"2023-11-30","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.4.0","date":"2023-12-05","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.5.0","date":"2023-12-19","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.6.0","date":"2024-01-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.7.0","date":"2024-03-06","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"22.0.0","date":"2024-04-24","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.1.0","date":"2024-05-02","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.2.0","date":"2024-05-15","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.3.0","date":"2024-06-11","lts":false,"security":false,"v8":"12.4.254.20"},{"name":"nodejs","version":"22.4.0","date":"2024-07-02","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.5.0","date":"2024-07-17","lts":false,"security":false,"v8":"12.4.254.21"}]')},93147:e=>{"use strict";e.exports=JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":"Iron"},"v21":{"start":"2023-10-17","maintenance":"2024-04-01","end":"2024-06-01"},"v22":{"start":"2024-04-24","lts":"2024-10-29","maintenance":"2025-10-21","end":"2027-04-30","codename":""},"v23":{"start":"2024-10-15","maintenance":"2025-04-01","end":"2025-06-01"},"v24":{"start":"2025-04-22","lts":"2025-10-28","maintenance":"2026-10-20","end":"2028-04-30","codename":""}}')}},r={};function n(e){var t=r[e];if(void 0!==t)return t.exports;var d=r[e]={id:e,loaded:!1,exports:{}};return u[e].call(d.exports,d,d.exports,n),d.loaded=!0,d.exports}n.m=u,e=[],n.O=(u,r,t,d)=>{if(!r){var a=1/0;for(o=0;o<e.length;o++){r=e[o][0],t=e[o][1],d=e[o][2];for(var s=!0,i=0;i<r.length;i++)(!1&d||a>=d)&&Object.keys(n.O).every((e=>n.O[e](r[i])))?r.splice(i--,1):(s=!1,d<a&&(a=d));if(s){e.splice(o--,1);var f=t();void 0!==f&&(u=f)}}return u}d=d||0;for(var o=e.length;o>0&&e[o-1][2]>d;o--)e[o]=e[o-1];e[o]=[r,t,d]},n.n=e=>{var u=e&&e.__esModule?()=>e.default:()=>e;return n.d(u,{a:u}),u},n.d=(e,u)=>{for(var r in u)n.o(u,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:u[r]})},n.e=()=>Promise.resolve(),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,u)=>Object.prototype.hasOwnProperty.call(e,u),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=7843,(()=>{n.b=document.baseURI||self.location.href;var e={7843:0};n.O.j=u=>0===e[u];var u=(u,r)=>{var t,d,a=r[0],s=r[1],i=r[2],f=0;if(a.some((u=>0!==e[u]))){for(t in s)n.o(s,t)&&(n.m[t]=s[t]);if(i)var o=i(n)}for(u&&u(r);f<a.length;f++)d=a[f],n.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return n.O(o)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(u.bind(null,0)),r.push=u.bind(null,r.push.bind(r))})(),n.nc=void 0;var t=n.O(void 0,[4208],(()=>n(14813)));t=n.O(t)})(); -//# sourceMappingURL=core-unsupported-browser.js.map?v=f5e73a4508449ab5abfa
\ No newline at end of file +(()=>{var e,u={54380:e=>{e.exports=[">0.25%","not op_mini all","not dead","Firefox ESR"]},14813:(e,u,r)=>{"use strict";var n=r(63814),t=r(85471),d=r(94364),a=r.n(d),s=r(34999);const i=[{regex:/IE (\d+)\.(\d+)/,family:"ie",maxVersion:[7,1/0,1/0]},{regex:/Trident\/4\.0/,family:"ie",version:[8,0,0]},{regex:/Trident\/5\.0/,family:"ie",version:[9,0,0]},{regex:/Trident\/6\.0/,family:"ie",version:[10,0,0]},{regex:/Trident\/[78]\.0/,family:"ie",version:[11,0,0]},{regex:/Edge?\/(\d+)\.(\d+)(\.(\d+)|)/,family:"edge"},{regex:/Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"firefox"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"chrome"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/,family:"chrome",maxVersion:[70,1/0,1/0]},{regex:/(Maci|X11).+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//,family:"safari"},{regex:/Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/,family:"opera",maxVersion:[12,15,0]},{regex:/Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"opera",minVersion:[15,0,0]},{regex:/(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf"},{regex:/[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf",version:[7,0,3]},{regex:/Opera Mini/,family:"op_mini"},{regex:/Android Donut/,family:"android",version:[1,2,0]},{regex:/Android Eclair/,family:"android",version:[2,1,0]},{regex:/Android Froyo/,family:"android",version:[2,2,0]},{regex:/Android Gingerbread/,family:"android",version:[2,3,0]},{regex:/Android Honeycomb/,family:"android",version:[3,0,0]},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"android"},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/,family:"android",version:[4,0,0]},{regex:/PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/,family:"op_mob",maxVersion:[12,16,0]},{regex:/Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"op_mob",minVersion:[14,0,0]},{regex:/Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_ff"},{regex:/Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_chr"},{regex:/IEMobile[ /](\d+)\.(\d+)/,family:"ie_mob"},{regex:/Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/,family:"and_uc"},{regex:/SamsungBrowser\/(\d+)\.(\d+)/,family:"samsung"},{regex:/Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"and_qq"},{regex:/baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"baidu"},{regex:/K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/,family:"kaios"}];function f(e){return"number"==typeof e?e:1===e.length?e[0]:[e[0],e[e.length-1]]}var o;function c(e){const u=Array.isArray(e)?e:e.toString().split(".");if("all"===u[0])return[1/0,0,0];let r=null,n=null;const t=[0,0,0];for(let e=0;e<3;e++)if(r=u[e],void 0!==r){if(n="number"==typeof r?r:parseInt(r,10),isNaN(n))return null;t[e]=n}return t}function l(e,u,r){const[n,t,d]=e,[a,s,i]=u,{ignoreMinor:f,ignorePatch:o,allowHigherVersions:c}=r;if(a===1/0)return!0;const l=!f,v=l&&!o;return c?!(v&&d<i||l&&t<s)&&n>=a:!(v&&d!==i||l&&t!==s)&&n===a}function v(e,u,r=0){const n=e.length;for(let t=r;t<n;t++)if(e[t]!==u[t])return!1;return!0}function p(e){if(null===e||"object"!=typeof e)return e;const u=Array.isArray(e)?[]:{};let r;for(r in e)u[r]=p(e[r]);return u}function b(e){return[].concat(...e)}function m(...e){const u=b(e).filter(Boolean);return 1===u.length?u[0]:{type:"Alternative",expressions:u}}function h(e){return{type:"Char",kind:"simple",value:String(e),codePoint:NaN}}function y(e,u){return{type:"ClassRange",from:e,to:u}}function g(...e){return{type:"CharacterClass",expressions:b(e).filter(Boolean)}}function C(e){return{type:"Group",capturing:!0,expression:e,number:null}}function B(...e){const u=function(...e){const u=b(e).filter(Boolean);if(1===u.length)return u[0];const r={type:"Disjunction",left:null,right:u.pop()};return u.reduceRight(((e,u,r)=>0===r?(e.left=u,e):(e.left={type:"Disjunction",left:null,right:u},e.left)),r),r}(...e);return"Disjunction"===u.type?C(u):u}function _(){return{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}}function A(e={type:"Quantifier",kind:"+",greedy:!0}){const u=function(e,u){return{type:"Repetition",expression:{type:"Char",kind:"meta",value:"\\d",codePoint:NaN},quantifier:u}}(0,e);return u}function x(e){return m(Array.from(String(e),h))}function j(e){if("Group"===e.type&&"Repetition"===e.expression.type){const{expression:u,quantifier:r}=e.expression;return"Char"===u.type&&"\\d"===u.value&&"+"===r.kind&&r.greedy}return!1}function w(e,u){return!(!e||"Char"!==e.type)&&(void 0===u||u instanceof RegExp&&u.test(e.value)||String(u)===e.value)}function S(e){if("CharacterClass"===e.type&&1===e.expressions.length){const[u]=e.expressions;return"ClassRange"===u.type&&w(u.from,/\d/)&&w(u.to,/\d/)}return!1}function k(e){return"RegExp"!==e.type&&"ClassRange"!==e.type&&"Quantifier"!==e.type}function P(e){return"string"==typeof e?s.parse(e.replace(/^([^/])/,"/$1").replace(/([^/])$/,"$1/")):e instanceof RegExp?s.parse(e):e}!function(e){e[e.Major=0]="Major",e[e.Minor=1]="Minor",e[e.Patch=2]="Patch"}(o||(o={}));const E=["RegExp","Disjunction","Alternative","Assertion","Char","CharacterClass","ClassRange","Backreference","Group","Repetition","Quantifier"];function D(e){const{every:u}=e;return u?"function"==typeof u?{"*":u,...e}:E.reduce(((r,n)=>{const t=e[n],d=t?"pre"in t?t.pre:t:null,a=t&&"post"in t?t.post:null;return r[n]={pre:e=>!1===u.pre(e)||!d||d(e),post:e=>!1===u.post(e)||!a||a(e)},r}),{}):e}function O(e){return Array.from(e.toString(),Number)}function T(e,u){const r=e+Number(!u);return 0===r?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:9===r?h("9"):r>9?null:g(y(h(r),h("9")))}function R(e,u,r){if(u<e)return null;const n=h(e),t=h(u),d="number"==typeof r&&r>0?Array.from({length:r},(()=>h(0))):[];return(d.length?e=>m(d,e):e=>e)(e===u?n:0===e&&9===u?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:u-e==1?g(n,t):g(y(n,t)))}function N(e,u,r=0){const n=O(e),t=n.length;if(e<10&&u<10||e===u)return[R(e,u,r-t)];const d=O(u);if(t!==d.length){const n=function(e,u){const r=[];let n=e,t=1;do{t*=10,n<t&&(r.push([n,Math.min(t-1,u)]),n=t)}while(t<=u);return r}(e,u),t=b(n.map((([e,u])=>N(e,u,r))));return t}const a=function(e,u){const r=e.length;if(r!==u.length||e[0]!==u[0])return null;let n=e[0].toString(),t=0,d=0,a="",s="";for(let i=1;i<r;i++)t=e[i],d=u[i],t===d&&""===a&&""===s?n+=t:(a+=t,s+=d);return[n,parseInt(a,10),parseInt(s,10)]}(n,d);if(Array.isArray(a)){const[e,u,r]=a,n=N(u,r,t-e.length);return[m(Array.from(e,h),B(n))]}const s=Array.from({length:t-1}),i=R(n[0]+1,d[0]-1);return[...s.map(((e,u)=>{const r=t-u-1,d=Number(u>0);return m(n.map(((e,u)=>u<r?h(e):R(u>r?0:e+d,9))))})),...i?[m(i,Array.from({length:t-1},(()=>({type:"Char",kind:"meta",value:"\\d",codePoint:NaN}))))]:[],...s.map(((e,u)=>{const r=t-u-1,n=Number(u>0);return m(d.map(((e,u)=>u<r?h(e):R(0,u>r?9:e-n))))}))].reduce(((e,u)=>{const r=e[e.length-1];if(r&&"Alternative"===u.type&&"Alternative"===r.type&&u.expressions.length===r.expressions.length){const n=r.expressions.reduceRight(((e,r,n)=>{if(!e)return e;const t=(d=r,a=u.expressions[n],w(d)&&w(a)&&d.value===a.value?a:w(d,/\d/)&&S(a)&&Number(a.expressions[0].from.value)-Number(d.value)==1?{...a,expressions:[{...a.expressions[0],from:d}]}:S(d)&&w(a,/\d/)&&Number(a.value)-Number(d.expressions[0].to.value)==1?{...d,expressions:[{...d.expressions[0],to:a}]}:null);var d,a;return t?(e.unshift(t),e):null}),[]);n&&(u.expressions=n,e.pop())}return e.push(u),e}),[])}function L(e,u=1/0){return e===1/0?A():B(u===1/0?function(e){if(0===e)return[A()];const u=O(e),r=u.length,n=A(function(e){return{type:"Quantifier",kind:"Range",from:e,to:void 0,greedy:!0}}(r+1)),t=r-1;if(e/Math.pow(10,t)===u[0])return[m(T(u[0],!0),Array.from({length:t},_)),n];const d=u.reduce(((e,n,t)=>{const d=r-t-1,a=0===t;let s=h("");const i=u.reduce(((e,u,r)=>{if(r<d)e.push(h(u));else if(s)if(r>d)e.push({type:"Char",kind:"meta",value:"\\d",codePoint:NaN});else{if(s=T(u,a),!s)return[];e.push(s)}return e}),[]);return i.length&&e.push(i),e}),[]).map((e=>m(e)));return d.push(n),d}(e):N(e,u))}function F(e,u){const r=P(e),n=Math.min(function(e){const u=P(e);let r=0;return s.traverse(u,{Group(e){j(e.node)&&r++}}),r}(r),u||1/0),t=[];let d=0,a=!1;return s.traverse(r,D({every:{pre:({node:e,parent:u})=>e===r||!!k(e)&&(u===r&&(a=!1),d<n),post({node:e,parent:u}){e!==r&&u===r&&k(e)&&(a||d>0&&d<n)&&t.push(e)}},Group:e=>!(j(e.node)&&d<n&&(a=!0,d++,1))})),1!==t.length||j(t[0])?t:F(t[0],n)}function I(e,u,r){const{allowHigherVersions:n}=r,t=P(e),d=n&&u.length?[u[0]]:u,a=d.reduce(((e,u)=>Math.max(e,function(e,u){const{ignoreMinor:r,ignorePatch:n,allowZeroSubversions:t}=u;let d=r?1:n?2:3;if(t)for(let u=d-1;u>0&&0===e[u]&&1!==d;u--)d--;return d}(u,r))),1),i=F(t,a),f=B(...d.map((e=>function(e,u){const{ignoreMinor:r,ignorePatch:n,allowHigherVersions:t}=u,d=e[0]===1/0?0:r?1:n?2:3;if(t){const u=[];let r=!0,n=0,t=0;const a=e=>(u,r)=>r>=d?A():(t=Array.isArray(u)?u[0]:u,r<e?x(t):r>e?A():L(t+n));for(let t=d-1;t>=0;t--)r&&!e[t]||(r=!1,u.push(e.map(a(t))),n=1);return u}return[e.map(((e,u)=>u>=d?A():Array.isArray(e)?L(e[0],e[1]):x(e)))]}(e,r).map((e=>function(e,u,r){let n=P(e);const t="number"==typeof r&&r<u.length?u.slice(0,r):u.slice();return s.traverse(n,D({every:()=>Boolean(t.length),Group:e=>!j(e.node)||!t.length||(n===e.node?n=t.shift():e.replace(t.shift()),!1)})),n}(m(p(i)),e,a))))));return s.traverse(t,D({every:e=>!!i.length&&(e.node===i[0]&&(1===i.length?e.replace(f):e.remove(),i.shift()),!0)})),t}const M={ignoreMinor:!1,ignorePatch:!0,allowZeroSubversions:!1,allowHigherVersions:!1};function U(e={}){const u={...M,...e};return function(e,u){return e.map((({regex:e,version:r,maxVersion:n,matchedVersions:t,...d})=>{let a=P(e);return r||(a=I(a,function(e){if(e.length<2)return e;const u=e.length+1,r=[];let n=null,t=e[0],d=[t[o.Major]],a=[t[o.Minor]],s=[t[o.Patch]],i=null;for(let c=1;c<u;c++){n=e[c-1],t=e[c]||[];for(let e=o.Major;e<=o.Patch;e++){if((e===i||null===i)&&n[e]+1===t[e]&&v(n,t,e+1)){i=e,e===o.Major?d.push(t[o.Major]):d=t[o.Major],e===o.Minor?a.push(t[o.Minor]):a=t[o.Minor],e===o.Patch?s.push(t[o.Patch]):s=t[o.Patch];break}if(i===e||n[e]!==t[e]){r.push([f(d),f(a),f(s)]),d=[t[o.Major]],a=[t[o.Minor]],s=[t[o.Patch]],i=null;break}}}return r}(t),{...u,allowHigherVersions:!n&&u.allowHigherVersions})),{regex:null,sourceRegex:e,regexAst:a,version:r,maxVersion:n,matchedVersions:t,...d}}))}(function(e,u,r=i){const n=[];let t="",d=!1;return r.forEach((r=>{const a=e.get(r.family);if(!a)return;let{version:s,minVersion:i,maxVersion:f}=r;s&&(i=s,f=s);let o=function(e,u,r,n){const t={...n,allowHigherVersions:!0},d=u=>l(u,e,t),a=e=>l(u,e,t),s=e&&u?e=>d(e)&&a(e):e?d:u?a:()=>!0;return r.filter(s)}(i,f,a,u);o.length&&(t===r.family&&d&&(s=void 0,i=void 0,f=void 0,o=a,n.pop()),n.push({...r,version:s,minVersion:i,maxVersion:f,requestVersions:a,matchedVersions:o})),d=!s&&!i&&!f,t=r.family})),n}(function(e){const u=new Map;return e.forEach((({family:e,version:r})=>{const n=u.get(e);if(n){const e=r.join(".");n.every((u=>u.join(".")!==e))&&n.push(r)}else u.set(e,[r])})),u.forEach((e=>{e.sort(((e,u)=>{for(const r in e)if(e[r]!==u[r])return e[r]-u[r];return 0}))})),u}(function(e={}){const{browsers:u,...r}=e;return d(u,r).reduce(((e,u)=>{const[r,n,t]=u.split(/ |-/),d=c(n);return(d?t?function(e,u){let r=0;const n=[];for(let n=2;n>=0;n--)if(e[n]!==u[n]){r=n;break}for(let t=e[r],d=u[r];t<=d;t++)n.push(e.map(((e,u)=>u===r?t:e)));return n}(d,c(t)):[d]:[]).reduce(((e,u)=>(u&&e.push({family:r,version:u}),e)),e)}),[])}(u)),u),u)}var G=r(54380),H=r.n(G);!function(e={}){!function(e){const u=e.map((({regexAst:e})=>C(e.body)));var r;"string"==typeof(r=function(e){const u=s.optimize(P((r=e,"string"==typeof r?r:r instanceof RegExp?r.toString():s.generate(r)))).getAST();var r;return s.traverse(u,{Group(e){const{parent:u,node:r}=e,{expression:n}=r;r.capturing=!0,("RegExp"===u.type||"Disjunction"!==n.type&&"Repetition"!==u.type||"Disjunction"===n.type&&"Disjunction"===u.type)&&e.replace(e.node.expression)}}),u}({type:"RegExp",body:B(u),flags:""}))?new RegExp(r):new RegExp(s.generate(r.body),r.flags)}(U(e))}({allowHigherVersions:!0,browsers:H()});const V=a()(H()),q=(0,r(59097).c0)("core").clearOnLogout().persist().build();var $=r(21777),Q=r(35947);const W=null===(K=(0,$.HW)())?(0,Q.YK)().setApp("core").build():(0,Q.YK)().setApp("core").setUid(K.uid).build();var K;(0,Q.YK)().setApp("unified-search").detectUser().build(),r(62045).hp;const J="unsupported-browser-ignore";(0,n.Jv)("/unsupported"),q.getItem(J);var z=r(76019),X=r(53334),Z=r(32051),Y=r(28326);const ee={name:"WebIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var ue=r(14486);const re=(0,ue.A)(ee,(function(){var e=this,u=e._self._c;return u("span",e._b({staticClass:"material-design-icon web-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(u){return e.$emit("click",u)}}},"span",e.$attrs,!1),[u("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[u("path",{attrs:{d:"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"}},[e.title?u("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var ne=r(62045).hp;W.debug("Supported browsers",{supportedBrowsers:V});const te={name:"UnsupportedBrowser",components:{Web:re,NcButton:Z.A,NcEmptyContent:Y.A},computed:{isMobile:()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),filteredSupportedBrowsers(){return V.filter((e=>!!e&&(this.isMobile?this.isMobileBrowser(e):!this.isMobileBrowser(e))))},formattedBrowsersList(){const e={};return this.filteredSupportedBrowsers.forEach((u=>{const[r,n]=u.split(" ");(!e[r]||e[r]<parseFloat(n,10))&&(e[r]=parseFloat(n,10))})),Object.keys(e).map((u=>{if(!z.X[u]?.browser)return null;const r=e[u],n=z.X[u]?.browser;return this.t("core","{name} version {version} and above",{name:n,version:r})})).filter((e=>null!==e))}},methods:{t:X.Tl,n:X.zw,forceBrowsing(){q.setItem(J,!0);const e=new URLSearchParams(window.location.search);if(e.has("redirect_url")){let u=ne.from(e.get("redirect_url"),"base64").toString()||"/";if(u=u.replace("index.php","").replace((0,n.aU)(),"").replace(/\/\//g,"/"),u.startsWith("/"))return void(window.location=(0,n.Jv)(u))}window.location=(0,n.Jv)("/")},isMobileBrowser:e=>(e=e.toLowerCase()).includes("and_")||e.includes("android")||e.includes("ios_")||e.includes("mobile")||e.includes("_mob")||e.includes("samsung")}};var de=r(85072),ae=r.n(de),se=r(97825),ie=r.n(se),fe=r(77659),oe=r.n(fe),ce=r(55056),le=r.n(ce),ve=r(10540),pe=r.n(ve),be=r(41113),me=r.n(be),he=r(27086),ye={};ye.styleTagTransform=me(),ye.setAttributes=le(),ye.insert=oe().bind(null,"head"),ye.domAPI=ie(),ye.insertStyleElement=pe(),ae()(he.A,ye),he.A&&he.A.locals&&he.A.locals;const ge=(0,ue.A)(te,(function(){var e=this,u=e._self._c;return u("div",{staticClass:"content-unsupported-browser guest-box"},[u("NcEmptyContent",{scopedSlots:e._u([{key:"icon",fn:function(){return[u("Web")]},proxy:!0},{key:"action",fn:function(){return[u("div",[u("h2",[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Your browser is not supported. Please upgrade to a newer version or a supported one."))+"\n\t\t\t\t")]),e._v(" "),u("NcButton",{staticClass:"content-unsupported-browser__continue",attrs:{type:"primary"},on:{click:e.forceBrowsing}},[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Continue with this unsupported browser"))+"\n\t\t\t\t")])],1),e._v(" "),u("ul",{staticClass:"content-unsupported-browser__list"},[u("h3",[e._v(e._s(e.t("core","Supported versions")))]),e._v(" "),e._l(e.formattedBrowsersList,(function(r){return u("li",{key:r},[e._v("\n\t\t\t\t\t"+e._s(r)+"\n\t\t\t\t")])}))],2)]},proxy:!0}])},[e._v("\n\t\t"+e._s(e.t("core","This browser is not supported"))+"\n\t\t")])],1)}),[],!1,null,"7e9eda06",null).exports;"true"===q.getItem(J)&&(window.location=(0,n.Jv)("/")),new t.Ay({el:"#unsupported-browser",name:"UnsupportedBrowserRoot",render:e=>e(ge)})},93928:(e,u,r)=>{var n=r(74150);function t(){}e.exports={loadQueries:function(){throw new n("Sharable configs are not supported in client-side build of Browserslist")},getStat:function(e){return e.stats},loadConfig:function(e){if(e.config)throw new n("Browserslist config are not supported in client-side build")},loadCountry:function(){throw new n("Country statistics are not supported in client-side build of Browserslist")},loadFeature:function(){throw new n("Supports queries are not available in client-side build of Browserslist")},currentNode:function(e,u){return e(["maintained node versions"],u)[0]},parseConfig:t,readConfig:t,findConfig:t,findConfigFile:t,clearCaches:t,oldDataWarning:t,env:{}}},74150:e=>{function u(e){this.name="BrowserslistError",this.message=e,this.browserslist=!0,Error.captureStackTrace&&Error.captureStackTrace(this,u)}u.prototype=Error.prototype,e.exports=u},94364:(e,u,r)=>{var n=r(73909),t=r(76019).X,d=r(68093),a=r(93147),s=r(18411),i=r(74150),f=r(93928),o=r(6319),c="37";function l(e,u){return 0===(e+".").indexOf(u+".")}function v(e){return e.filter((function(e){return"string"==typeof e}))}function p(e){var u=e;return 3===e.split(".").length&&(u=e.split(".").slice(0,-1).join(".")),u}function b(e){return function(u){return e+" "+u}}function m(e){return parseInt(e.split(".")[0])}function h(e,u){if(0===e.length)return[];var r=y(e.map(m)),n=r[r.length-u];if(!n)return e;for(var t=[],d=e.length-1;d>=0&&!(n>m(e[d]));d--)t.unshift(e[d]);return t}function y(e){for(var u=[],r=0;r<e.length;r++)-1===u.indexOf(e[r])&&u.push(e[r]);return u}function g(e,u,r){for(var n in r)e[u+" "+n]=r[n]}function C(e,u){return u=parseFloat(u),">"===e?function(e){return r(e)>u}:">="===e?function(e){return r(e)>=u}:"<"===e?function(e){return parseFloat(e)<u}:function(e){return parseFloat(e)<=u};function r(e){return parseFloat(e.split("-")[1]||e)}}function B(e){return parseInt(e)}function _(e,u){return e<u?-1:e>u?1:0}function A(e,u){return _(parseInt(e[0]),parseInt(u[0]))||_(parseInt(e[1]||"0"),parseInt(u[1]||"0"))||_(parseInt(e[2]||"0"),parseInt(u[2]||"0"))}function x(e,u){return void 0===(u=u.split(".").map(B))[1]&&(u[1]="x"),"<="===e?function(e){return j(e=e.split(".").map(B),u)<=0}:function(e){return j(e=e.split(".").map(B),u)>=0}}function j(e,u){return e[0]!==u[0]?e[0]<u[0]?-1:1:"x"===u[1]?0:e[1]!==u[1]?e[1]<u[1]?-1:1:0}function w(e,u){var r=function(e,u){return-1!==e.versions.indexOf(u)?u:!!U.versionAliases[e.name][u]&&U.versionAliases[e.name][u]}(e,u);return r||1===e.versions.length&&e.versions[0]}function S(e,u){return e/=1e3,Object.keys(t).reduce((function(r,n){var t=P(n,u);if(!t)return r;var d=Object.keys(t.releaseDate).filter((function(u){var r=t.releaseDate[u];return null!==r&&r>=e}));return r.concat(d.map(b(t.name)))}),[])}function k(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function P(e,u){if(e=e.toLowerCase(),e=U.aliases[e]||e,u.mobileToDesktop&&U.desktopNames[e]){var r=U.data[U.desktopNames[e]];if("android"===e)return t=k(U.data[e]),d=r,t.released=E(t.released,d.released),t.versions=E(t.versions,d.versions),t.releaseDate=function(e){var u={};for(var r in e)u[r]=e[r];return u}(t.releaseDate),t.released.forEach((function(e){void 0===t.releaseDate[e]&&(t.releaseDate[e]=d.releaseDate[e])})),t;var n=k(r);return n.name=e,n}var t,d;return U.data[e]}function E(e,u){var r=u.indexOf(c);return e.filter((function(e){return/^(?:[2-4]\.|[34]$)/.test(e)})).concat(u.slice(r))}function D(e,u){var r=P(e,u);if(!r)throw new i("Unknown browser "+e);return r}function O(e,u,r,n){var t=1;switch(u){case"android":if(n.mobileToDesktop)return e;var d=U.data.chrome.released;t=d.length-d.indexOf(c);break;case"op_mob":t=m(U.data.op_mob.released.slice(-1)[0])-14+1;break;default:return e}return r<=t?e.slice(-1):e.slice(t-1-r)}function T(e,u){return"string"==typeof e&&(e.indexOf("y")>=0||u&&e.indexOf("a")>=0)}function R(e,u){return G(e).reduce((function(e,r,n){if(r.not&&0===n)throw new i("Write any browsers query (for instance, `defaults`) before `"+r.query+"`");var t=$[r.type].select.call(U,u,r).map((function(e){var r=e.split(" ");return"0"===r[1]?r[0]+" "+P(r[0],u).versions[0]:e}));if("and"===r.compose)return r.not?e.filter((function(e){return-1===t.indexOf(e)})):e.filter((function(e){return-1!==t.indexOf(e)}));if(r.not){var d={};return t.forEach((function(e){d[e]=!0})),e.filter((function(e){return!d[e]}))}return e.concat(t)}),[])}function N(e){return void 0===e&&(e={}),void 0===e.path&&(e.path=s.resolve?s.resolve("."):"."),e}function L(e,u){null==e&&(e=U.loadConfig(u)||U.defaults);return e}function F(e){if("string"!=typeof e&&!Array.isArray(e))throw new i("Browser queries must be an array or string. Got "+typeof e+".")}var I={},M={};function U(e,u){F(e=L(e,u=N(u)));var r=G(e).some((function(e){return $[e.type].needsPath})),n={ignoreUnknownVersions:u.ignoreUnknownVersions,dangerousExtend:u.dangerousExtend,mobileToDesktop:u.mobileToDesktop,env:u.env};r&&(n.path=u.path),f.oldDataWarning(U.data);var t=f.getStat(u,U.data);if(t)for(var d in n.customUsage={},t)g(n.customUsage,d,t[d]);var a=JSON.stringify([e,n]);if(I[a])return I[a];var s=y(R(e,n)).sort((function(e,u){if(e=e.split(" "),u=u.split(" "),e[0]===u[0]){var r=e[1].split("-")[0];return A(u[1].split("-")[0].split("."),r.split("."))}return _(e[0],u[0])}));return f.env.BROWSERSLIST_DISABLE_CACHE||(I[a]=s),s}function G(e){var u=JSON.stringify(e);if(u in M)return M[u];var r=o($,e);return f.env.BROWSERSLIST_DISABLE_CACHE||(M[u]=r),r}function H(e,u){var r=U.nodeVersions.filter((function(e){return l(e,u.version)}));if(0===r.length){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+u.version+" of Node.js")}return["node "+r[r.length-1]]}function V(e,u){var r=parseInt(u.year),n=parseInt(u.month||"01")-1,t=parseInt(u.day||"01");return S(Date.UTC(r,n,t,0,0,0),e)}function q(e,u){var r=parseFloat(u.coverage),n=U.usage.global;if(u.place)if(u.place.match(/^my\s+stats$/i)){if(!e.customUsage)throw new i("Custom usage statistics was not provided");n=e.customUsage}else{var t;t=2===u.place.length?u.place.toUpperCase():u.place.toLowerCase(),f.loadCountry(U.usage,t,U.data),n=U.usage[t]}for(var d,a=Object.keys(n).sort((function(e,u){return n[u]-n[e]})),s=0,o=[],c=0;c<a.length&&(d=a[c],0!==n[d])&&(s+=n[d],o.push(d),!(s>=r));c++);return o}U.parse=function(e,u){return F(e=L(e,u=N(u))),G(e)},U.cache={},U.data={},U.usage={global:{},custom:null},U.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"],U.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"},U.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",android:"chrome"},U.versionAliases={},U.clearCaches=f.clearCaches,U.parseConfig=f.parseConfig,U.readConfig=f.readConfig,U.findConfigFile=f.findConfigFile,U.findConfig=f.findConfig,U.loadConfig=f.loadConfig,U.coverage=function(e,u){var r;if(void 0===u)r=U.usage.global;else if("my stats"===u){var n={};n.path=s.resolve?s.resolve("."):".";var t=f.getStat(n);if(!t)throw new i("Custom usage statistics was not provided");for(var d in r={},t)g(r,d,t[d])}else if("string"==typeof u)u=u.length>2?u.toLowerCase():u.toUpperCase(),f.loadCountry(U.usage,u,U.data),r=U.usage[u];else for(var a in"dataByBrowser"in u&&(u=u.dataByBrowser),r={},u)for(var o in u[a])r[a+" "+o]=u[a][o];return e.reduce((function(e,u){var n=r[u];return void 0===n&&(n=r[u.replace(/ \S+$/," 0")]),e+(n||0)}),0)};var $={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(e,u){return Object.keys(t).reduce((function(r,n){var t=P(n,e);if(!t)return r;var d=h(t.released,u.versions);return d=O(d=d.map(b(t.name)),t.name,u.versions,e),r.concat(d)}),[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(e,u){return Object.keys(t).reduce((function(r,n){var t=P(n,e);if(!t)return r;var d=t.released.slice(-u.versions);return d=O(d=d.map(b(t.name)),t.name,u.versions,e),r.concat(d)}),[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(e,u){return h(Object.keys(d),u.versions).map((function(e){return"chrome "+d[e]}))}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(e,u){return h(U.nodeVersions,u.versions).map((function(e){return"node "+e}))}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(e,u){var r=D(u.browser,e),n=h(r.released,u.versions).map(b(r.name));return O(n,r.name,u.versions,e)}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(e,u){return Object.keys(d).slice(-u.versions).map((function(e){return"chrome "+d[e]}))}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(e,u){return U.nodeVersions.slice(-u.versions).map((function(e){return"node "+e}))}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(e,u){var r=D(u.browser,e),n=r.released.slice(-u.versions).map(b(r.name));return O(n,r.name,u.versions,e)}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(e){return Object.keys(t).reduce((function(u,r){var n=P(r,e);if(!n)return u;var t=n.versions.filter((function(e){return-1===n.released.indexOf(e)}));return t=t.map(b(n.name)),u.concat(t)}),[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(e,u){var r=D(u.browser,e);return r.versions.filter((function(e){return-1===r.released.indexOf(e)})).map(b(r.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(e,u){return S(Date.now()-31558432982.4*u.years,e)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:V},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:V},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:V},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(e,u){var r=parseFloat(u.popularity),n=U.usage.global;return Object.keys(n).reduce((function(e,t){return">"===u.sign?n[t]>r&&e.push(t):"<"===u.sign?n[t]<r&&e.push(t):"<="===u.sign?n[t]<=r&&e.push(t):n[t]>=r&&e.push(t),e}),[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var n=e.customUsage;return Object.keys(n).reduce((function(e,t){var d=n[t];return null==d||(">"===u.sign?d>r&&e.push(t):"<"===u.sign?d<r&&e.push(t):"<="===u.sign?d<=r&&e.push(t):d>=r&&e.push(t)),e}),[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity),n=f.loadStat(e,u.config,U.data);if(n)for(var t in e.customUsage={},n)g(e.customUsage,t,n[t]);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var d=e.customUsage;return Object.keys(d).reduce((function(e,n){var t=d[n];return null==t||(">"===u.sign?t>r&&e.push(n):"<"===u.sign?t<r&&e.push(n):"<="===u.sign?t<=r&&e.push(n):t>=r&&e.push(n)),e}),[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(e,u){var r=parseFloat(u.popularity),n=u.place;n=2===n.length?n.toUpperCase():n.toLowerCase(),f.loadCountry(U.usage,n,U.data);var t=U.usage[n];return Object.keys(t).reduce((function(e,n){var d=t[n];return null==d||(">"===u.sign?d>r&&e.push(n):"<"===u.sign?d<r&&e.push(n):"<="===u.sign?d<=r&&e.push(n):d>=r&&e.push(n)),e}),[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:q},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:q},supports:{matches:["supportType","feature"],regexp:/^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/,select:function(e,u){f.loadFeature(U.cache,u.feature);var r="fully"!==u.supportType,n=U.cache[u.feature],t=[];for(var d in n){for(var a=P(d,e),s=a.released.length-1;s>=0&&!(a.released[s]in n[d]);)s--;var i=e.mobileToDesktop&&d in U.desktopNames&&T(n[d][a.released[s]],r);a.versions.forEach((function(e){var u=n[d][e];void 0===u&&i&&(u=n[U.desktopNames[d]][e]),T(u,r)&&t.push(d+" "+e)}))}return t}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=p(u.from),n=p(u.to),t=parseFloat(u.from),a=parseFloat(u.to);if(!d[r])throw new i("Unknown version "+t+" of electron");if(!d[n])throw new i("Unknown version "+a+" of electron");return Object.keys(d).filter((function(e){var u=parseFloat(e);return u>=t&&u<=a})).map((function(e){return"chrome "+d[e]}))}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){return U.nodeVersions.filter(x(">=",u.from)).filter(x("<=",u.to)).map((function(e){return"node "+e}))}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=D(u.browser,e),n=parseFloat(w(r,u.from)||u.from),t=parseFloat(w(r,u.to)||u.to);return r.released.filter((function(e){var u=parseFloat(e);return u>=n&&u<=t})).map(b(r.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){var r=p(u.version);return Object.keys(d).filter(C(u.sign,r)).map((function(e){return"chrome "+d[e]}))}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){return U.nodeVersions.filter((r=u.sign,n=u.version,(n=n.split(".").map(B))[1]=n[1]||0,n[2]=n[2]||0,">"===r?function(e){return A(e=e.split(".").map(B),n)>0}:">="===r?function(e){return A(e=e.split(".").map(B),n)>=0}:"<"===r?function(e){return e=e.split(".").map(B),A(n,e)>0}:function(e){return e=e.split(".").map(B),A(n,e)>=0})).map((function(e){return"node "+e}));var r,n}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(e,u){var r=u.version,n=D(u.browser,e),t=U.versionAliases[n.name][r];return t&&(r=t),n.released.filter(C(u.sign,r)).map((function(e){return n.name+" "+e}))}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 128"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(e,u){var r=p(u.version),n=d[r];if(!n)throw new i("Unknown version "+u.version+" of electron");return["chrome "+n]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:H},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:H},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:H},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(e){return[f.currentNode(R,e)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(e){var u=Date.now();return R(Object.keys(a).filter((function(e){return u<Date.parse(a[e].end)&&u>Date.parse(a[e].start)&&(r=e.slice(1),U.nodeVersions.some((function(e){return l(e,r)})));var r})).map((function(e){return"node "+e.slice(1)})),e)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(e,u){var r=u.version;/^tp$/i.test(r)&&(r="TP");var n=D(u.browser,e),t=w(n,r);if(t)r=t;else{if(!(t=w(n,t=-1===r.indexOf(".")?r+".0":r.replace(/\.0$/,"")))){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+r+" of "+u.browser)}r=t}return[n.name+" "+r]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,needsPath:!0,select:function(e){return U(void 0,e)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,needsPath:!0,select:function(e,u){return R(f.loadQueries(e,u.config),e)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(e){return R(U.defaults,e)}},dead:{matches:[],regexp:/^dead$/i,select:function(e){return R(["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"],e)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(e,u){throw P(u.query,e)?new i("Specify versions in Browserslist query for browser "+u.query):(r=u.query,new i("Unknown browser query `"+r+"`. Maybe you are using old Browserslist or made typo in query."));var r}}};!function(){for(var e in t){var u=t[e];U.data[e]={name:e,versions:v(t[e].versions),released:v(t[e].versions.slice(0,-3)),releaseDate:t[e].release_date},g(U.usage.global,e,u.usage_global),U.versionAliases[e]={};for(var r=0;r<u.versions.length;r++){var d=u.versions[r];if(d&&-1!==d.indexOf("-"))for(var a=d.split("-"),s=0;s<a.length;s++)U.versionAliases[e][a[s]]=d}}U.nodeVersions=n.map((function(e){return e.version}))}(),e.exports=U},6319:e=>{var u=/^\s+and\s+(.*)/i,r=/^(?:,\s*|\s+or\s+)(.*)/i;function n(e){return Array.isArray(e)?e.reduce((function(e,u){return e.concat(n(u))}),[]):[e]}function t(e,u){var r={query:u};for(var n in 0===u.indexOf("not ")&&(r.not=!0,u=u.slice(4)),e){var t=e[n],d=u.match(t.regexp);if(d){r.type=n;for(var a=0;a<t.matches.length;a++)r[t.matches[a]]=d[a+1];return r}}return r.type="unknown",r}function d(e,n,d){var a;return function(e,u){for(var r=e.length,n=1;n<=r;n++)if(u(e.substr(-n,n),n,r))return e.slice(0,-n);return""}(n,(function(n,s,i){return u.test(n)?((a=t(e,n.match(u)[1])).compose="and",d.unshift(a),!0):r.test(n)?((a=t(e,n.match(r)[1])).compose="or",d.unshift(a),!0):s===i&&((a=t(e,n.trim())).compose="or",d.unshift(a),!0)}))}e.exports=function(e,u){return Array.isArray(u)||(u=[u]),n(u.map((function(u){var r=[];do{u=d(e,u,r)}while(u);return r})))}},96481:e=>{e.exports={A:{A:{K:0,E:0,F:0,G:.033801,A:0,B:.371811,kC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","kC","K","E","F","G","A","B","","",""],E:"IE",F:{kC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968e3}},B:{A:{6:.003558,7:0,8:.003558,9:.003558,C:0,L:0,M:0,H:0,N:0,O:.003558,P:.117414,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:.010674,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:.003558,s:.049812,t:0,u:.003558,v:.007116,w:.007116,x:.010674,AB:.003558,BB:.021348,CB:.010674,DB:.014232,EB:.007116,FB:.010674,GB:.010674,HB:.021348,IB:.021348,JB:.01779,KB:.021348,LB:.067602,MB:2.88198,D:1.62245},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","H","N","O","P","Q","I","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","D","","",""],E:"Edge",F:{6:1689897600,7:1692576e3,8:1694649600,9:1697155200,C:1438128e3,L:1447286400,M:1470096e3,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I:1581033600,R:1586736e3,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:161136e4,Y:1614816e3,Z:1618358400,a:1622073600,b:1626912e3,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,v:1680825600,w:1683158400,x:1685664e3,AB:1698969600,BB:1701993600,CB:1706227200,DB:1708732800,EB:1711152e3,FB:1713398400,GB:1715990400,HB:1718841600,IB:1721865600,JB:1724371200,KB:1726704e3,LB:1729123200,MB:1731542400,D:1737417600},D:{C:"ms",L:"ms",M:"ms",H:"ms",N:"ms",O:"ms",P:"ms"}},C:{A:{0:0,1:0,2:0,3:0,4:0,5:0,6:.234828,7:0,8:0,9:.085392,lC:0,IC:0,J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:.021348,C:0,L:0,M:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:.007116,fB:.003558,gB:0,hB:0,iB:.003558,jB:0,kB:0,lB:0,mB:0,nB:.028464,oB:0,pB:0,qB:.003558,rB:.014232,sB:0,tB:0,JC:.003558,uB:0,KC:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0,"7B":0,"8B":0,"9B":0,AC:0,BC:.010674,Q:0,I:0,R:0,LC:0,S:0,T:0,U:0,V:0,W:0,X:.003558,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:.007116,n:0,o:0,p:0,q:0,r:0,s:.003558,t:0,u:0,v:0,w:.007116,x:0,AB:0,BB:.003558,CB:.003558,DB:0,EB:0,FB:0,GB:.01779,HB:0,IB:.007116,JB:.078276,KB:.003558,LB:.007116,MB:.010674,D:.021348,MC:.49812,NC:1.02826,OC:.007116,PC:0,mC:0,nC:0,oC:0,pC:0},B:"moz",C:["lC","IC","oC","pC","J","NB","K","E","F","G","A","B","C","L","M","H","N","O","P","OB","y","z","0","1","2","3","4","5","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","JC","uB","KC","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","9B","AC","BC","Q","I","R","LC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","D","MC","NC","OC","PC","mC","nC"],E:"Firefox",F:{0:1368489600,1:1372118400,2:1375747200,3:1379376e3,4:1386633600,5:1391472e3,6:1688428800,7:1690848e3,8:1693267200,9:1695686400,lC:1161648e3,IC:1213660800,oC:124632e4,pC:1264032e3,J:1300752e3,NB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968e3,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112e3,O:1349740800,P:1353628800,OB:1357603200,y:1361232e3,z:1364860800,PB:1395100800,QB:1398729600,RB:1402358400,SB:1405987200,TB:1409616e3,UB:1413244800,VB:1417392e3,WB:1421107200,XB:1424736e3,YB:1428278400,ZB:1431475200,aB:1435881600,bB:1439251200,cB:144288e4,dB:1446508800,eB:1450137600,fB:1453852800,gB:1457395200,hB:1461628800,iB:1465257600,jB:1470096e3,kB:1474329600,lB:1479168e3,mB:1485216e3,nB:1488844800,oB:149256e4,pB:1497312e3,qB:1502150400,rB:1506556800,sB:1510617600,tB:1516665600,JC:1520985600,uB:1525824e3,KC:1529971200,vB:1536105600,wB:1540252800,xB:1544486400,yB:154872e4,zB:1552953600,"0B":1558396800,"1B":1562630400,"2B":1567468800,"3B":1571788800,"4B":1575331200,"5B":1578355200,"6B":1581379200,"7B":1583798400,"8B":1586304e3,"9B":1588636800,AC:1591056e3,BC:1593475200,Q:1595894400,I:1598313600,R:1600732800,LC:1603152e3,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392e3,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536e3,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632e3,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752e3,v:1681171200,w:1683590400,x:1686009600,AB:1698105600,BB:1700524800,CB:1702944e3,DB:1705968e3,EB:1708387200,FB:1710806400,GB:1713225600,HB:1715644800,IB:1718064e3,JB:1720483200,KB:1722902400,LB:1725321600,MB:1727740800,D:173016e4,MC:1732579200,NC:1736208e3,OC:1738627200,PC:null,mC:null,nC:null}},D:{A:{0:0,1:0,2:0,3:0,4:0,5:0,6:.024906,7:.110298,8:.067602,9:.056928,J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:.007116,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:.003558,hB:0,iB:.003558,jB:.014232,kB:.014232,lB:.024906,mB:0,nB:.007116,oB:.007116,pB:0,qB:0,rB:.010674,sB:0,tB:.007116,JC:0,uB:0,KC:.007116,vB:0,wB:0,xB:0,yB:0,zB:.021348,"0B":0,"1B":0,"2B":.007116,"3B":.010674,"4B":0,"5B":0,"6B":.007116,"7B":.007116,"8B":.003558,"9B":.003558,AC:.010674,BC:.010674,Q:.08895,I:.010674,R:.024906,S:.032022,T:0,U:.010674,V:.01779,W:.067602,X:.010674,Y:.007116,Z:.007116,a:.03558,b:.010674,c:.010674,d:.032022,e:.014232,f:.007116,g:.014232,h:.039138,i:.010674,j:.007116,k:.014232,l:.010674,m:.099624,n:.042696,o:.010674,p:.01779,q:.024906,r:.039138,s:1.04605,t:.021348,u:.028464,v:.039138,w:.145878,x:.07116,AB:.039138,BB:.056928,CB:.08895,DB:.074718,EB:.078276,FB:.138762,GB:.814782,HB:.295314,IB:.224154,JB:.156552,KB:.14232,LB:.384264,MB:12.7946,D:3.25201,MC:.014232,NC:.007116,OC:0,PC:0},B:"webkit",C:["","","","","","","","J","NB","K","E","F","G","A","B","C","L","M","H","N","O","P","OB","y","z","0","1","2","3","4","5","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","JC","uB","KC","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","9B","AC","BC","Q","I","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","D","MC","NC","OC","PC"],E:"Chrome",F:{0:1343692800,1:1348531200,2:1352246400,3:1357862400,4:1361404800,5:1364428800,6:1689724800,7:1692057600,8:1694476800,9:1696896e3,J:1264377600,NB:1274745600,K:1283385600,E:1287619200,F:1291248e3,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,OB:1332892800,y:133704e4,z:1340668800,PB:1369094400,QB:1374105600,RB:1376956800,SB:1384214400,TB:1389657600,UB:1392940800,VB:1397001600,WB:1400544e3,XB:1405468800,YB:1409011200,ZB:141264e4,aB:1416268800,bB:1421798400,cB:1425513600,dB:1429401600,eB:143208e4,fB:1437523200,gB:1441152e3,hB:1444780800,iB:1449014400,jB:1453248e3,kB:1456963200,lB:1460592e3,mB:1464134400,nB:1469059200,oB:1472601600,pB:1476230400,qB:1480550400,rB:1485302400,sB:1489017600,tB:149256e4,JC:1496707200,uB:1500940800,KC:1504569600,vB:1508198400,wB:1512518400,xB:1516752e3,yB:1520294400,zB:1523923200,"0B":1527552e3,"1B":1532390400,"2B":1536019200,"3B":1539648e3,"4B":1543968e3,"5B":154872e4,"6B":1552348800,"7B":1555977600,"8B":1559606400,"9B":1564444800,AC:1568073600,BC:1571702400,Q:1575936e3,I:1580860800,R:1586304e3,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272e3,a:1621987200,b:1626739200,c:1630368e3,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512e3,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656e3,r:166968e4,s:1673308800,t:1675728e3,u:1678147200,v:1680566400,w:1682985600,x:1685404800,AB:1698710400,BB:1701993600,CB:1705968e3,DB:1708387200,EB:1710806400,FB:1713225600,GB:1715644800,HB:1718064e3,IB:1721174400,JB:1724112e3,KB:1726531200,LB:1728950400,MB:1731369600,D:1736812800,MC:1738627200,NC:null,OC:null,PC:null}},E:{A:{J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:.003558,M:.01779,H:.003558,qC:0,QC:0,rC:0,sC:0,tC:0,uC:0,RC:0,CC:.003558,DC:.007116,vC:.039138,wC:.05337,xC:.010674,SC:.007116,TC:.014232,EC:.01779,yC:.167226,FC:.024906,UC:.028464,VC:.021348,WC:.049812,XC:.01779,YC:.028464,zC:.224154,GC:.014232,ZC:.024906,aC:.024906,bC:.028464,cC:.064044,dC:.131646,"0C":.39138,HC:.067602,eC:.939312,fC:.416286,gC:.028464,hC:0,"1C":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","qC","QC","J","NB","rC","K","sC","E","tC","F","G","uC","A","RC","B","CC","C","DC","L","vC","M","wC","H","xC","SC","TC","EC","yC","FC","UC","VC","WC","XC","YC","zC","GC","ZC","aC","bC","cC","dC","0C","HC","eC","fC","gC","hC","1C",""],E:"Safari",F:{qC:1205798400,QC:1226534400,J:1244419200,NB:1275868800,rC:131112e4,K:1343174400,sC:13824e5,E:13824e5,tC:1410998400,F:1413417600,G:1443657600,uC:1458518400,A:1474329600,RC:1490572800,B:1505779200,CC:1522281600,C:1537142400,DC:1553472e3,L:1568851200,vC:1585008e3,M:1600214400,wC:1619395200,H:1632096e3,xC:1635292800,SC:1639353600,TC:1647216e3,EC:1652745600,yC:1658275200,FC:1662940800,UC:1666569600,VC:1670889600,WC:1674432e3,XC:1679875200,YC:1684368e3,zC:1690156800,GC:1695686400,ZC:1698192e3,aC:1702252800,bC:1705881600,cC:1709596800,dC:1715558400,"0C":1722211200,HC:1726444800,eC:1730073600,fC:1733875200,gC:1737936e3,hC:null,"1C":null}},F:{A:{0:0,1:0,2:0,3:0,4:0,5:0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:.003558,cB:0,dB:0,eB:0,fB:0,gB:0,hB:.014232,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0,"7B":0,"8B":0,"9B":0,AC:0,BC:0,Q:0,I:0,R:0,LC:0,S:0,T:0,U:0,V:.032022,W:.010674,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:.032022,f:0,g:0,h:0,i:0,j:0,k:0,l:.010674,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:.313104,"2C":0,"3C":0,"4C":0,"5C":0,CC:0,iC:0,"6C":0,DC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","G","2C","3C","4C","5C","B","CC","iC","6C","C","DC","H","N","O","P","OB","y","z","0","1","2","3","4","5","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","9B","AC","BC","Q","I","R","LC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","","",""],E:"Opera",F:{0:1401753600,1:1405987200,2:1409616e3,3:1413331200,4:1417132800,5:1422316800,G:1150761600,"2C":1223424e3,"3C":1251763200,"4C":1267488e3,"5C":1277942400,B:1292457600,CC:1302566400,iC:1309219200,"6C":1323129600,C:1323129600,DC:1352073600,H:1372723200,N:1377561600,O:1381104e3,P:1386288e3,OB:1390867200,y:1393891200,z:1399334400,PB:1425945600,QB:1430179200,RB:1433808e3,SB:1438646400,TB:1442448e3,UB:1445904e3,VB:1449100800,WB:1454371200,XB:1457308800,YB:146232e4,ZB:1465344e3,aB:1470096e3,bB:1474329600,cB:1477267200,dB:1481587200,eB:1486425600,fB:1490054400,gB:1494374400,hB:1498003200,iB:1502236800,jB:1506470400,kB:1510099200,lB:1515024e3,mB:1517961600,nB:1521676800,oB:1525910400,pB:1530144e3,qB:1534982400,rB:1537833600,sB:1543363200,tB:1548201600,uB:1554768e3,vB:1561593600,wB:1566259200,xB:1570406400,yB:1573689600,zB:1578441600,"0B":1583971200,"1B":1587513600,"2B":1592956800,"3B":1595894400,"4B":1600128e3,"5B":1603238400,"6B":161352e4,"7B":1612224e3,"8B":1616544e3,"9B":1619568e3,AC:1623715200,BC:1627948800,Q:1631577600,I:1633392e3,R:1635984e3,LC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152e3,Z:1660780800,a:1663113600,b:1668816e3,c:1668643200,d:1671062400,e:1675209600,f:1677024e3,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:169992e4,o:169992e4,p:1702944e3,q:1707264e3,r:1710115200,s:1711497600,t:1716336e3,u:1719273600,v:1721088e3,w:1724284800,x:1727222400},D:{G:"o",B:"o",C:"o","2C":"o","3C":"o","4C":"o","5C":"o",CC:"o",iC:"o","6C":"o",DC:"o"}},G:{A:{F:0,QC:0,"7C":0,jC:.00293498,"8C":0,"9C":.00733744,AD:.00880493,BD:0,CD:.00293498,DD:.0220123,ED:.00440246,FD:.0322847,GD:.0924517,HD:.0102724,ID:.00586995,JD:.155554,KD:.00293498,LD:.0176099,MD:.00586995,ND:.0220123,OD:.143814,PD:.0689719,QD:.0352197,SC:.0366872,TC:.0425571,EC:.0498946,RD:.585528,FC:.0880493,UC:.192241,VC:.0983217,WC:.171696,XC:.0366872,YC:.0704394,SD:.713199,GC:.0454921,ZC:.0807118,aC:.063102,bC:.0895167,cC:.192241,dC:.463726,TD:1.59369,HC:.490141,eC:6.52592,fC:2.20123,gC:.190773,hC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","QC","7C","jC","8C","9C","AD","F","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","SC","TC","EC","RD","FC","UC","VC","WC","XC","YC","SD","GC","ZC","aC","bC","cC","dC","TD","HC","eC","fC","gC","hC","",""],E:"Safari on iOS",F:{QC:1270252800,"7C":1283904e3,jC:1299628800,"8C":1331078400,"9C":1359331200,AD:1394409600,F:1410912e3,BD:1413763200,CD:1442361600,DD:1458518400,ED:1473724800,FD:1490572800,GD:1505779200,HD:1522281600,ID:1537142400,JD:1553472e3,KD:1568851200,LD:1572220800,MD:1580169600,ND:1585008e3,OD:1600214400,PD:1619395200,QD:1632096e3,SC:1639353600,TC:1647216e3,EC:1652659200,RD:1658275200,FC:1662940800,UC:1666569600,VC:1670889600,WC:1674432e3,XC:1679875200,YC:1684368e3,SD:1690156800,GC:1694995200,ZC:1698192e3,aC:1702252800,bC:1705881600,cC:1709596800,dC:1715558400,TD:1722211200,HC:1726444800,eC:1730073600,fC:1733875200,gC:1737936e3,hC:null}},H:{A:{UD:.04},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","UD","","",""],E:"Opera Mini",F:{UD:1426464e3}},I:{A:{IC:0,J:0,D:.308567,VD:0,WD:0,XD:0,YD:309216e-10,jC:618432e-10,ZD:0,aD:371059e-9},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","VD","WD","XD","IC","J","YD","jC","ZD","aD","D","","",""],E:"Android Browser",F:{VD:1256515200,WD:1274313600,XD:1291593600,IC:1298332800,J:1318896e3,YD:1341792e3,jC:1374624e3,ZD:1386547200,aD:1401667200,D:1737676800}},J:{A:{E:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","A","","",""],E:"Blackberry Browser",F:{E:1325376e3,A:1359504e3}},K:{A:{A:0,B:0,C:0,I:1.03581,CC:0,iC:0,DC:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","CC","iC","C","DC","I","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752e3,CC:1314835200,iC:1318291200,C:1330300800,DC:1349740800,I:1709769600},D:{I:"webkit"}},L:{A:{D:46.1904},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Chrome for Android",F:{D:1737676800}},M:{A:{D:.334984},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Firefox for Android",F:{D:173016e4}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456e3}},O:{A:{EC:.83746},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","EC","","",""],E:"UC Browser for Android",F:{EC:1710115200},D:{EC:"webkit"}},P:{A:{0:.0330772,1:.0330772,2:.0441029,3:.0441029,4:.110257,5:1.90745,J:.0661544,y:0,z:.0220515,bD:.0110257,cD:0,dD:.0110257,eD:0,fD:0,RC:0,gD:0,hD:0,iD:0,jD:0,kD:0,FC:0,GC:.0110257,HC:0,lD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","bD","cD","dD","eD","fD","RC","gD","hD","iD","jD","kD","FC","GC","HC","lD","y","z","0","1","2","3","4","5","","",""],E:"Samsung Internet",F:{0:1689292800,1:1697587200,2:1711497600,3:1715126400,4:1717718400,5:1725667200,J:1461024e3,bD:1481846400,cD:1509408e3,dD:1528329600,eD:1546128e3,fD:1554163200,RC:1567900800,gD:1582588800,hD:1593475200,iD:1605657600,jD:1618531200,kD:1629072e3,FC:1640736e3,GC:1651708800,HC:1659657600,lD:1667260800,y:1677369600,z:1684454400}},Q:{A:{mD:.199702},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mD","","",""],E:"QQ Browser",F:{mD:1710288e3}},R:{A:{nD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","nD","","",""],E:"Baidu Browser",F:{nD:1710201600}},S:{A:{oD:.019326,pD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","oD","pD","","",""],E:"KaiOS Browser",F:{oD:1527811200,pD:1631664e3}}}},56438:e=>{e.exports={0:"22",1:"23",2:"24",3:"25",4:"26",5:"27",6:"115",7:"116",8:"117",9:"118",A:"10",B:"11",C:"12",D:"132",E:"7",F:"8",G:"9",H:"15",I:"80",J:"4",K:"6",L:"13",M:"14",N:"16",O:"17",P:"18",Q:"79",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"107",r:"108",s:"109",t:"110",u:"111",v:"112",w:"113",x:"114",y:"20",z:"21",AB:"119",BB:"120",CB:"121",DB:"122",EB:"123",FB:"124",GB:"125",HB:"126",IB:"127",JB:"128",KB:"129",LB:"130",MB:"131",NB:"5",OB:"19",PB:"28",QB:"29",RB:"30",SB:"31",TB:"32",UB:"33",VB:"34",WB:"35",XB:"36",YB:"37",ZB:"38",aB:"39",bB:"40",cB:"41",dB:"42",eB:"43",fB:"44",gB:"45",hB:"46",iB:"47",jB:"48",kB:"49",lB:"50",mB:"51",nB:"52",oB:"53",pB:"54",qB:"55",rB:"56",sB:"57",tB:"58",uB:"60",vB:"62",wB:"63",xB:"64",yB:"65",zB:"66","0B":"67","1B":"68","2B":"69","3B":"70","4B":"71","5B":"72","6B":"73","7B":"74","8B":"75","9B":"76",AC:"77",BC:"78",CC:"11.1",DC:"12.1",EC:"15.5",FC:"16.0",GC:"17.0",HC:"18.0",IC:"3",JC:"59",KC:"61",LC:"82",MC:"133",NC:"134",OC:"135",PC:"136",QC:"3.2",RC:"10.1",SC:"15.2-15.3",TC:"15.4",UC:"16.1",VC:"16.2",WC:"16.3",XC:"16.4",YC:"16.5",ZC:"17.1",aC:"17.2",bC:"17.3",cC:"17.4",dC:"17.5",eC:"18.1",fC:"18.2",gC:"18.3",hC:"18.4",iC:"11.5",jC:"4.2-4.3",kC:"5.5",lC:"2",mC:"137",nC:"138",oC:"3.5",pC:"3.6",qC:"3.1",rC:"5.1",sC:"6.1",tC:"7.1",uC:"9.1",vC:"13.1",wC:"14.1",xC:"15.1",yC:"15.6",zC:"16.6","0C":"17.6","1C":"TP","2C":"9.5-9.6","3C":"10.0-10.1","4C":"10.5","5C":"10.6","6C":"11.6","7C":"4.0-4.1","8C":"5.0-5.1","9C":"6.0-6.1",AD:"7.0-7.1",BD:"8.1-8.4",CD:"9.0-9.2",DD:"9.3",ED:"10.0-10.2",FD:"10.3",GD:"11.0-11.2",HD:"11.3-11.4",ID:"12.0-12.1",JD:"12.2-12.5",KD:"13.0-13.1",LD:"13.2",MD:"13.3",ND:"13.4-13.7",OD:"14.0-14.4",PD:"14.5-14.8",QD:"15.0-15.1",RD:"15.6-15.8",SD:"16.6-16.7",TD:"17.6-17.7",UD:"all",VD:"2.1",WD:"2.2",XD:"2.3",YD:"4.1",ZD:"4.4",aD:"4.4.3-4.4.4",bD:"5.0-5.4",cD:"6.2-6.4",dD:"7.2-7.4",eD:"8.2",fD:"9.2",gD:"11.1-11.2",hD:"12.0",iD:"13.0",jD:"14.0",kD:"15.0",lD:"19.0",mD:"14.9",nD:"13.52",oD:"2.5",pD:"3.0-3.1"}},90562:e=>{e.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}},76019:(e,u,r)=>{"use strict";const n=r(62660).browsers,t=r(5040).browserVersions,d=r(96481);function a(e){return Object.keys(e).reduce(((u,r)=>(u[t[r]]=e[r],u)),{})}e.exports.X=Object.keys(d).reduce(((e,u)=>{let r=d[u];return e[n[u]]=Object.keys(r).reduce(((e,u)=>("A"===u?e.usage_global=a(r[u]):"C"===u?e.versions=r[u].reduce(((e,u)=>(""===u?e.push(null):e.push(t[u]),e)),[]):"D"===u?e.prefix_exceptions=a(r[u]):"E"===u?e.browser=r[u]:"F"===u?e.release_date=Object.keys(r[u]).reduce(((e,n)=>(e[t[n]]=r[u][n],e)),{}):e.prefix=r[u],e)),{}),e}),{})},5040:(e,u,r)=>{e.exports.browserVersions=r(56438)},62660:(e,u,r)=>{e.exports.browsers=r(90562)},27086:(e,u,r)=>{"use strict";r.d(u,{A:()=>s});var n=r(71354),t=r.n(n),d=r(76314),a=r.n(d)()(t());a.push([e.id,".content-unsupported-browser[data-v-7e9eda06]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-7e9eda06]{margin:0}.content-unsupported-browser .empty-content[data-v-7e9eda06] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-7e9eda06]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-7e9eda06]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-7e9eda06]{text-align:left}","",{version:3,sources:["webpack://./core/src/views/UnsupportedBrowser.vue"],names:[],mappings:"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA",sourcesContent:["\n$spacing: 30px;\n\n.content-unsupported-browser {\n\tdisplay: flex;\n\tjustify-content: center;\n\twidth: 400px;\n\tmax-width: calc(90vw - 2 * $spacing);\n\tmargin: auto;\n\tpadding: $spacing;\n\n\t.empty-content {\n\t\tmargin: 0;\n\t\t&::v-deep .empty-content__icon {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t&__continue {\n\t\tdisplay: block;\n\t\tmargin: $spacing auto;\n\t}\n\n\t&__list {\n\t\tmargin-top: 2 * $spacing;\n\t\tmargin-bottom: $spacing;\n\t\tli {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]);const s=a},68093:e=>{e.exports={"0.20":"39",.21:"41",.22:"41",.23:"41",.24:"41",.25:"42",.26:"42",.27:"43",.28:"43",.29:"43","0.30":"44",.31:"45",.32:"45",.33:"45",.34:"45",.35:"45",.36:"47",.37:"49","1.0":"49",1.1:"50",1.2:"51",1.3:"52",1.4:"53",1.5:"54",1.6:"56",1.7:"58",1.8:"59","2.0":"61",2.1:"61","3.0":"66",3.1:"66","4.0":"69",4.1:"69",4.2:"69","5.0":"73","6.0":"76",6.1:"76","7.0":"78",7.1:"78",7.2:"78",7.3:"78","8.0":"80",8.1:"80",8.2:"80",8.3:"80",8.4:"80",8.5:"80","9.0":"83",9.1:"83",9.2:"83",9.3:"83",9.4:"83","10.0":"85",10.1:"85",10.2:"85",10.3:"85",10.4:"85","11.0":"87",11.1:"87",11.2:"87",11.3:"87",11.4:"87",11.5:"87","12.0":"89",12.1:"89",12.2:"89","13.0":"91",13.1:"91",13.2:"91",13.3:"91",13.4:"91",13.5:"91",13.6:"91","14.0":"93",14.1:"93",14.2:"93","15.0":"94",15.1:"94",15.2:"94",15.3:"94",15.4:"94",15.5:"94","16.0":"96",16.1:"96",16.2:"96","17.0":"98",17.1:"98",17.2:"98",17.3:"98",17.4:"98","18.0":"100",18.1:"100",18.2:"100",18.3:"100","19.0":"102",19.1:"102","20.0":"104",20.1:"104",20.2:"104",20.3:"104","21.0":"106",21.1:"106",21.2:"106",21.3:"106",21.4:"106","22.0":"108",22.1:"108",22.2:"108",22.3:"108","23.0":"110",23.1:"110",23.2:"110",23.3:"110","24.0":"112",24.1:"112",24.2:"112",24.3:"112",24.4:"112",24.5:"112",24.6:"112",24.7:"112",24.8:"112","25.0":"114",25.1:"114",25.2:"114",25.3:"114",25.4:"114",25.5:"114",25.6:"114",25.7:"114",25.8:"114",25.9:"114","26.0":"116",26.1:"116",26.2:"116",26.3:"116",26.4:"116",26.5:"116",26.6:"116","27.0":"118",27.1:"118",27.2:"118",27.3:"118","28.0":"120",28.1:"120",28.2:"120",28.3:"120","29.0":"122",29.1:"122",29.2:"122",29.3:"122",29.4:"122","30.0":"124",30.1:"124",30.2:"124",30.3:"124",30.4:"124",30.5:"124","31.0":"126",31.1:"126",31.2:"126",31.3:"126",31.4:"126",31.5:"126",31.6:"126",31.7:"126","32.0":"128",32.1:"128",32.2:"128",32.3:"128","33.0":"130",33.1:"130",33.2:"130",33.3:"130",33.4:"130","34.0":"132",34.1:"132",34.2:"132","35.0":"134"}},9182:(e,u,r)=>{"use strict";var n=r(43034),t=r(2003);e.exports={transform:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=u.length>0?u:Object.keys(n),d=void 0,a={};return r.forEach((function(u){if(!n.hasOwnProperty(u))throw new Error("Unknown compat-transform: "+u+". Available transforms are: "+Object.keys(n).join(", "));var r=n[u];d=t.transform(e,r),e=d.getAST(),"function"==typeof r.getExtra&&(a[u]=r.getExtra())})),d.setExtra(a),d}}},51537:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(u,r){var n=r.flags,t=r.groups,d=r.source;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._re=u,this._groups=t,this.flags=n,this.source=d||u.source,this.dotAll=n.includes("s"),this.global=u.global,this.ignoreCase=u.ignoreCase,this.multiline=u.multiline,this.sticky=u.sticky,this.unicode=u.unicode}return u(e,[{key:"test",value:function(e){return this._re.test(e)}},{key:"compile",value:function(e){return this._re.compile(e)}},{key:"toString",value:function(){return this._toStringResult||(this._toStringResult="/"+this.source+"/"+this.flags),this._toStringResult}},{key:"exec",value:function(e){var u=this._re.exec(e);if(!this._groups||!u)return u;for(var r in u.groups={},this._groups){var n=this._groups[r];u.groups[r]=u[n]}return u}}]),e}();e.exports={RegExpTree:r}},45640:e=>{"use strict";e.exports={_hasUFlag:!1,shouldRun:function(e){return!!e.flags.includes("s")&&(e.flags=e.flags.replace("s",""),this._hasUFlag=e.flags.includes("u"),!0)},Char:function(e){var u=e.node;if("meta"===u.kind&&"."===u.value){var r="\\uFFFF",n="";this._hasUFlag&&(r="\\u{10FFFF}",n=""),e.replace({type:"CharacterClass",expressions:[{type:"ClassRange",from:{type:"Char",value:"\\0",kind:"decimal",symbol:"\0"},to:{type:"Char",value:r,kind:"unicode",symbol:n}}]})}}}},62514:e=>{"use strict";e.exports={_groupNames:{},init:function(){this._groupNames={}},getExtra:function(){return this._groupNames},Group:function(e){var u=e.node;u.name&&(this._groupNames[u.name]=u.number,delete u.name,delete u.nameRaw)},Backreference:function(e){var u=e.node;"name"===u.kind&&(u.kind="number",u.reference=u.number,delete u.referenceRaw)}}},57559:e=>{"use strict";e.exports={RegExp:function(e){var u=e.node;u.flags.includes("x")&&(u.flags=u.flags.replace("x",""))}}},43034:(e,u,r)=>{"use strict";e.exports={dotAll:r(45640),namedCapturingGroups:r(62514),xFlag:r(57559)}},20042:e=>{"use strict";function u(e){return e?r[e.type](e):""}var r={RegExp:function(e){return"/"+u(e.body)+"/"+e.flags},Alternative:function(e){return(e.expressions||[]).map(u).join("")},Disjunction:function(e){return u(e.left)+"|"+u(e.right)},Group:function(e){var r=u(e.expression);return e.capturing?e.name?"(?<"+(e.nameRaw||e.name)+">"+r+")":"("+r+")":"(?:"+r+")"},Backreference:function(e){switch(e.kind){case"number":return"\\"+e.reference;case"name":return"\\k<"+(e.referenceRaw||e.reference)+">";default:throw new TypeError("Unknown Backreference kind: "+e.kind)}},Assertion:function(e){switch(e.kind){case"^":case"$":case"\\b":case"\\B":return e.kind;case"Lookahead":var r=u(e.assertion);return e.negative?"(?!"+r+")":"(?="+r+")";case"Lookbehind":var n=u(e.assertion);return e.negative?"(?<!"+n+")":"(?<="+n+")";default:throw new TypeError("Unknown Assertion kind: "+e.kind)}},CharacterClass:function(e){var r=e.expressions.map(u).join("");return e.negative?"[^"+r+"]":"["+r+"]"},ClassRange:function(e){return u(e.from)+"-"+u(e.to)},Repetition:function(e){return""+u(e.expression)+u(e.quantifier)},Quantifier:function(e){var u=void 0,r=e.greedy?"":"?";switch(e.kind){case"+":case"?":case"*":u=e.kind;break;case"Range":u=e.from===e.to?"{"+e.from+"}":e.to?"{"+e.from+","+e.to+"}":"{"+e.from+",}";break;default:throw new TypeError("Unknown Quantifier kind: "+e.kind)}return""+u+r},Char:function(e){var u=e.value;switch(e.kind){case"simple":return e.escaped?"\\"+u:u;case"hex":case"unicode":case"oct":case"decimal":case"control":case"meta":return u;default:throw new TypeError("Unknown Char kind: "+e.kind)}},UnicodeProperty:function(e){return"\\"+(e.negative?"P":"p")+"{"+(e.shorthand||e.binary?"":e.name+"=")+e.value+"}"}};e.exports={generate:u}},85162:e=>{"use strict";var u=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,t=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){t=!0,d=e}finally{try{!n&&s.return&&s.return()}finally{if(t)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function r(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var n=null;function t(e,u){if(!u)return!1;if(e.length!==u.length)return!1;for(var n=0;n<e.length;n++){var t=e[n],d=u[n];if(t.size!==d.size)return!1;if([].concat(r(t)).sort().join(",")!==[].concat(r(d)).sort().join(","))return!1}return!0}function d(e,u,r,n){var t=!0,d=!1,s=void 0;try{for(var i,f=n[Symbol.iterator]();!(t=(i=f.next()).done);t=!0)if(!a(e,u,r,i.value))return!1}catch(e){d=!0,s=e}finally{try{!t&&f.return&&f.return()}finally{if(d)throw s}}return!0}function a(e,u,r,t){if(!n[e]||!n[u])return!1;var d=r[e][t],a=r[u][t];return!d&&!a||n[e].has(d)&&n[u].has(a)}e.exports={minimize:function(e){var a=e.getTransitionTable(),s=Object.keys(a),i=e.getAlphabet(),f=e.getAcceptingStateNumbers();n={};var o=new Set;s.forEach((function(e){e=Number(e),f.has(e)?n[e]=f:(o.add(e),n[e]=o)}));var c=[[o,f].filter((function(e){return e.size>0}))],l=void 0,v=void 0;l=c[c.length-1],v=c[c.length-2];for(var p=function(){var e,u={},t=!0,s=!1,f=void 0;try{for(var o,p=l[Symbol.iterator]();!(t=(o=p.next()).done);t=!0){var b=o.value,m={},h=(e=b,Array.isArray(e)?e:Array.from(e)),y=h[0],g=h.slice(1);m[y]=new Set([y]);var C=!0,B=!1,_=void 0;try{e:for(var A,x=g[Symbol.iterator]();!(C=(A=x.next()).done);C=!0){var j=A.value,w=!0,S=!1,k=void 0;try{for(var P,E=Object.keys(m)[Symbol.iterator]();!(w=(P=E.next()).done);w=!0){var D=P.value;if(d(j,D,a,i)){m[D].add(j),m[j]=m[D];continue e}}}catch(e){S=!0,k=e}finally{try{!w&&E.return&&E.return()}finally{if(S)throw k}}m[j]=new Set([j])}}catch(e){B=!0,_=e}finally{try{!C&&x.return&&x.return()}finally{if(B)throw _}}Object.assign(u,m)}}catch(e){s=!0,f=e}finally{try{!t&&p.return&&p.return()}finally{if(s)throw f}}n=u;var O=new Set(Object.keys(u).map((function(e){return u[e]})));c.push([].concat(r(O))),l=c[c.length-1],v=c[c.length-2]};!t(l,v);)p();var b=new Map,m=1;l.forEach((function(e){return b.set(e,m++)}));var h={},y=new Set,g=function(e,u){var r=!0,n=!1,t=void 0;try{for(var d,a=e[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var s=d.value;f.has(s)&&y.add(u)}}catch(e){n=!0,t=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw t}}},C=!0,B=!1,_=void 0;try{for(var A,x=b.entries()[Symbol.iterator]();!(C=(A=x.next()).done);C=!0){var j=A.value,w=u(j,2),S=w[0],k=w[1];h[k]={};var P=!0,E=!1,D=void 0;try{for(var O,T=i[Symbol.iterator]();!(P=(O=T.next()).done);P=!0){var R=O.value;g(S,k);var N=void 0,L=!0,F=!1,I=void 0;try{for(var M,U=S[Symbol.iterator]();!(L=(M=U.next()).done);L=!0){var G=M.value;if(N=a[G][R])break}}catch(e){F=!0,I=e}finally{try{!L&&U.return&&U.return()}finally{if(F)throw I}}N&&(h[k][R]=b.get(n[N]))}}catch(e){E=!0,D=e}finally{try{!P&&T.return&&T.return()}finally{if(E)throw D}}}}catch(e){B=!0,_=e}finally{try{!C&&x.return&&x.return()}finally{if(B)throw _}}return e.setTransitionTable(h),e.setAcceptingStateNumbers(y),e}}},32569:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}();function t(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=r(85162),a=r(75821).EPSILON_CLOSURE,s=function(){function e(u){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._nfa=u}return n(e,[{key:"minimize",value:function(){this.getTransitionTable(),this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._originalTransitionTable=this._transitionTable,d.minimize(this)}},{key:"getAlphabet",value:function(){return this._nfa.getAlphabet()}},{key:"getAcceptingStateNumbers",value:function(){return this._acceptingStateNumbers||this.getTransitionTable(),this._acceptingStateNumbers}},{key:"getOriginaAcceptingStateNumbers",value:function(){return this._originalAcceptingStateNumbers||this.getTransitionTable(),this._originalAcceptingStateNumbers}},{key:"setTransitionTable",value:function(e){this._transitionTable=e}},{key:"setAcceptingStateNumbers",value:function(e){this._acceptingStateNumbers=e}},{key:"getTransitionTable",value:function(){var e=this;if(this._transitionTable)return this._transitionTable;var u=this._nfa.getTransitionTable(),r=Object.keys(u);this._acceptingStateNumbers=new Set;for(var n=[u[r[0]][a]],d=this.getAlphabet(),s=this._nfa.getAcceptingStateNumbers(),i={},f=function(u){var r=!0,n=!1,t=void 0;try{for(var d,a=s[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var i=d.value;if(-1!==u.indexOf(i)){e._acceptingStateNumbers.add(u.join(","));break}}}catch(e){n=!0,t=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw t}}};n.length>0;){var o=n.shift(),c=o.join(",");i[c]={};var l=!0,v=!1,p=void 0;try{for(var b,m=d[Symbol.iterator]();!(l=(b=m.next()).done);l=!0){var h=b.value,y=[];f(o);var g=!0,C=!1,B=void 0;try{for(var _,A=o[Symbol.iterator]();!(g=(_=A.next()).done);g=!0){var x=u[_.value][h];if(x){var j=!0,w=!1,S=void 0;try{for(var k,P=x[Symbol.iterator]();!(j=(k=P.next()).done);j=!0){var E=k.value;u[E]&&y.push.apply(y,t(u[E][a]))}}catch(e){w=!0,S=e}finally{try{!j&&P.return&&P.return()}finally{if(w)throw S}}}}}catch(e){C=!0,B=e}finally{try{!g&&A.return&&A.return()}finally{if(C)throw B}}var D=new Set(y),O=[].concat(t(D));if(O.length>0){var T=O.join(",");i[c][h]=T,i.hasOwnProperty(T)||n.unshift(O)}}}catch(e){v=!0,p=e}finally{try{!l&&m.return&&m.return()}finally{if(v)throw p}}}return this._transitionTable=this._remapStateNumbers(i)}},{key:"_remapStateNumbers",value:function(e){var u={};this._originalTransitionTable=e;var r={};for(var n in Object.keys(e).forEach((function(e,r){u[e]=r+1})),e){var t=e[n],d={};for(var a in t)d[a]=u[t[a]];r[u[n]]=d}this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._acceptingStateNumbers=new Set;var s=!0,i=!1,f=void 0;try{for(var o,c=this._originalAcceptingStateNumbers[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value;this._acceptingStateNumbers.add(u[l])}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}return r}},{key:"getOriginalTransitionTable",value:function(){return this._originalTransitionTable||this.getTransitionTable(),this._originalTransitionTable}},{key:"matches",value:function(e){for(var u=1,r=0,n=this.getTransitionTable();e[r];)if(!(u=n[u][e[r++]]))return!1;return!!this.getAcceptingStateNumbers().has(u)}}]),e}();e.exports=s},36734:(e,u,r)=>{"use strict";var n=r(91909),t=r(32569),d=r(28398),a=r(70860);e.exports={NFA:n,DFA:t,builders:a,toNFA:function(e){return d.build(e)},toDFA:function(e){return new t(this.toNFA(e))},test:function(e,u){return this.toDFA(e).matches(u)}}},70860:(e,u,r)=>{"use strict";var n=r(91909),t=r(48617),d=r(75821).EPSILON;function a(e){var u=new t,r=new t({accepting:!0});return new n(u.addTransition(e,r),r)}function s(e,u){return e.out.accepting=!1,u.out.accepting=!0,e.out.addTransition(d,u.in),new n(e.in,u.out)}function i(e,u){var r=new t,a=new t;return r.addTransition(d,e.in),r.addTransition(d,u.in),a.accepting=!0,e.out.accepting=!1,u.out.accepting=!1,e.out.addTransition(d,a),u.out.addTransition(d,a),new n(r,a)}e.exports={alt:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var t=!0,d=!1,a=void 0;try{for(var i,f=r[Symbol.iterator]();!(t=(i=f.next()).done);t=!0)e=s(e,i.value)}catch(e){d=!0,a=e}finally{try{!t&&f.return&&f.return()}finally{if(d)throw a}}return e},char:a,e:function(){return a(d)},or:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var t=!0,d=!1,a=void 0;try{for(var s,f=r[Symbol.iterator]();!(t=(s=f.next()).done);t=!0)e=i(e,s.value)}catch(e){d=!0,a=e}finally{try{!t&&f.return&&f.return()}finally{if(d)throw a}}return e},rep:function(e){return e.in.addTransition(d,e.out),e.out.addTransition(d,e.in),e},repExplicit:function(e){var u=new t,r=new t({accepting:!0});return u.addTransition(d,e.in),u.addTransition(d,r),e.out.accepting=!1,e.out.addTransition(d,r),r.addTransition(d,e.in),new n(u,r)},plusRep:function(e){return e.out.addTransition(d,e.in),e},questionRep:function(e){return e.in.addTransition(d,e.out),e}}},28398:(e,u,r)=>{"use strict";var n=r(23810),t=r(70860),d=t.alt,a=t.char,s=t.or,i=t.rep,f=t.plusRep,o=t.questionRep;function c(e){if(e&&!l[e.type])throw new Error(e.type+" is not supported in NFA/DFA interpreter.");return e?l[e.type](e):""}var l={RegExp:function(e){if(""!==e.flags)throw new Error("NFA/DFA: Flags are not supported yet.");return c(e.body)},Alternative:function(e){var u=(e.expressions||[]).map(c);return d.apply(void 0,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u))},Disjunction:function(e){return s(c(e.left),c(e.right))},Repetition:function(e){switch(e.quantifier.kind){case"*":return i(c(e.expression));case"+":return f(c(e.expression));case"?":return o(c(e.expression));default:throw new Error("Unknown repeatition: "+e.quantifier.kind+".")}},Char:function(e){if("simple"!==e.kind)throw new Error("NFA/DFA: Only simple chars are supported yet.");return a(e.value)},Group:function(e){return c(e.expression)}};e.exports={build:function(e){var u=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(u=n.parse(e,{captureLocations:!0})),c(u)}}},48617:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),t=r(81191),d=r(75821).EPSILON,a=function(e){function u(){return function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,u),function(e,u){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!u||"object"!=typeof u&&"function"!=typeof u?e:u}(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return function(e,u){if("function"!=typeof u&&null!==u)throw new TypeError("Super expression must either be null or a function, not "+typeof u);e.prototype=Object.create(u&&u.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(e,u):e.__proto__=u)}(u,e),n(u,[{key:"matches",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;if(u.has(this))return!1;if(u.add(this),0===e.length){if(this.accepting)return!0;var r=!0,n=!1,t=void 0;try{for(var a,s=this.getTransitionsOnSymbol(d)[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(a.value.matches("",u))return!0}catch(e){n=!0,t=e}finally{try{!r&&s.return&&s.return()}finally{if(n)throw t}}return!1}var i=e[0],f=e.slice(1),o=this.getTransitionsOnSymbol(i),c=!0,l=!1,v=void 0;try{for(var p,b=o[Symbol.iterator]();!(c=(p=b.next()).done);c=!0)if(p.value.matches(f))return!0}catch(e){l=!0,v=e}finally{try{!c&&b.return&&b.return()}finally{if(l)throw v}}var m=!0,h=!1,y=void 0;try{for(var g,C=this.getTransitionsOnSymbol(d)[Symbol.iterator]();!(m=(g=C.next()).done);m=!0)if(g.value.matches(e,u))return!0}catch(e){h=!0,y=e}finally{try{!m&&C.return&&C.return()}finally{if(h)throw y}}return!1}},{key:"getEpsilonClosure",value:function(){var e=this;return this._epsilonClosure||function(){var u=e.getTransitionsOnSymbol(d),r=e._epsilonClosure=new Set;r.add(e);var n=!0,t=!1,a=void 0;try{for(var s,i=u[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){var f=s.value;r.has(f)||(r.add(f),f.getEpsilonClosure().forEach((function(e){return r.add(e)})))}}catch(e){t=!0,a=e}finally{try{!n&&i.return&&i.return()}finally{if(t)throw a}}}(),this._epsilonClosure}}]),u}(t);e.exports=a},91909:(e,u,r)=>{"use strict";var n=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,t=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){t=!0,d=e}finally{try{!n&&s.return&&s.return()}finally{if(t)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")},t=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),d=r(75821),a=d.EPSILON,s=d.EPSILON_CLOSURE,i=function(){function e(u,r){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.in=u,this.out=r}return t(e,[{key:"matches",value:function(e){return this.in.matches(e)}},{key:"getAlphabet",value:function(){if(!this._alphabet){this._alphabet=new Set;var e=this.getTransitionTable();for(var u in e){var r=e[u];for(var n in r)n!==s&&this._alphabet.add(n)}}return this._alphabet}},{key:"getAcceptingStates",value:function(){return this._acceptingStates||this.getTransitionTable(),this._acceptingStates}},{key:"getAcceptingStateNumbers",value:function(){if(!this._acceptingStateNumbers){this._acceptingStateNumbers=new Set;var e=!0,u=!1,r=void 0;try{for(var n,t=this.getAcceptingStates()[Symbol.iterator]();!(e=(n=t.next()).done);e=!0){var d=n.value;this._acceptingStateNumbers.add(d.number)}}catch(e){u=!0,r=e}finally{try{!e&&t.return&&t.return()}finally{if(u)throw r}}}return this._acceptingStateNumbers}},{key:"getTransitionTable",value:function(){var e=this;if(!this._transitionTable){this._transitionTable={},this._acceptingStates=new Set;var u=new Set,r=new Set;!function t(d){if(!u.has(d)){u.add(d),d.number=u.size,e._transitionTable[d.number]={},d.accepting&&e._acceptingStates.add(d);var a=d.getTransitions(),s=!0,i=!1,f=void 0;try{for(var o,c=a[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value,v=n(l,2),p=v[0],b=v[1],m=[];r.add(p);var h=!0,y=!1,g=void 0;try{for(var C,B=b[Symbol.iterator]();!(h=(C=B.next()).done);h=!0){var _=C.value;t(_),m.push(_.number)}}catch(e){y=!0,g=e}finally{try{!h&&B.return&&B.return()}finally{if(y)throw g}}e._transitionTable[d.number][p]=m}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}}}(this.in),u.forEach((function(u){delete e._transitionTable[u.number][a],e._transitionTable[u.number][s]=[].concat(function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u.getEpsilonClosure())).map((function(e){return e.number}))}))}return this._transitionTable}}]),e}();e.exports=i},75821:e=>{"use strict";e.exports={EPSILON:"ε",EPSILON_CLOSURE:"ε*"}},81191:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(){var u=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).accepting,r=void 0!==u&&u;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._transitions=new Map,this.accepting=r}return u(e,[{key:"getTransitions",value:function(){return this._transitions}},{key:"addTransition",value:function(e,u){return this.getTransitionsOnSymbol(e).add(u),this}},{key:"getTransitionsOnSymbol",value:function(e){var u=this._transitions.get(e);return u||(u=new Set,this._transitions.set(e,u)),u}}]),e}();e.exports=r},63072:(e,u,r)=>{"use strict";var n=r(1379),t=r(23810),d=r(2003),a=r(53256);e.exports={optimize:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.whitelist,s=void 0===r?[]:r,i=u.blacklist,f=void 0===i?[]:i,o=(s.length>0?s:Array.from(a.keys())).filter((function(e){return!f.includes(e)})),c=e;e instanceof RegExp&&(e=""+e),"string"==typeof e&&(c=t.parse(e));var l=new d.TransformResult(c),v=void 0;do{v=l.toString(),c=n(l.getAST()),o.forEach((function(e){if(!a.has(e))throw new Error("Unknown optimization-transform: "+e+". Available transforms are: "+Array.from(a.keys()).join(", "));var u=a.get(e),r=d.transform(c,u);r.toString()!==l.toString()&&(r.toString().length<=l.toString().length?l=r:c=n(l.getAST()))}))}while(l.toString()!==v);return l}}},98002:e=>{"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0);e.exports={_AZClassRanges:null,_hasUFlag:!1,init:function(e){this._AZClassRanges=new Set,this._hasUFlag=e.flags.includes("u")},shouldRun:function(e){return e.flags.includes("i")},Char:function(e){var n=e.node,t=e.parent;if(!isNaN(n.codePoint)&&(this._hasUFlag||!(n.codePoint>=4096))){if("ClassRange"===t.type){if(!(this._AZClassRanges.has(t)||(d=t,a=d.from,s=d.to,a.codePoint>=u&&a.codePoint<=r&&s.codePoint>=u&&s.codePoint<=r)))return;this._AZClassRanges.add(t)}var d,a,s,i=n.symbol.toLowerCase();i!==n.symbol&&(n.value=function(e,u){var r=e.codePointAt(0);if("decimal"===u.kind)return"\\"+r;if("oct"===u.kind)return"\\0"+r.toString(8);if("hex"===u.kind)return"\\x"+r.toString(16);if("unicode"===u.kind){if(u.isSurrogatePair){var n=function(e){var u=(e-65536)%1024+56320;return{lead:(Math.floor((e-65536)/1024)+55296).toString(16),trail:u.toString(16)}}(r),t=n.lead,d=n.trail;return"\\u"+"0".repeat(4-t.length)+t+"\\u"+"0".repeat(4-d.length)+d}if(u.value.includes("{"))return"\\u{"+r.toString(16)+"}";var a=r.toString(16);return"\\u"+"0".repeat(4-a.length)+a}return e}(i,n),n.symbol=i,n.codePoint=i.codePointAt(0))}}}},70436:e=>{"use strict";function u(e,u){var d=r(e),a=r(u);if(d===a){if("ClassRange"===e.type&&"ClassRange"!==u.type)return-1;if("ClassRange"===u.type&&"ClassRange"!==e.type)return 1;if("ClassRange"===e.type&&"ClassRange"===u.type)return r(e.to)-r(u.to);if(n(e)&&n(u)||t(e)&&t(u))return e.value<u.value?-1:1}return d-a}function r(e){return"Char"===e.type?"-"===e.value||"control"===e.kind?1/0:"meta"===e.kind&&isNaN(e.codePoint)?-1:e.codePoint:e.from.codePoint}function n(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return"Char"===e.type&&"meta"===e.kind&&(u?e.value===u:/^\\[dws]$/i.test(e.value))}function t(e){return"Char"===e.type&&"control"===e.kind}function d(e,u,r){for(var n=0;n<u.length;n++)if(a(e,u[n],r))return!0;return!1}function a(e,u,r){return"ClassRange"===e.type?a(e.from,u,r)&&a(e.to,u,r):!("\\S"!==u||!n(e,"\\w")&&!n(e,"\\d"))||!("\\D"!==u||!n(e,"\\W")&&!n(e,"\\s"))||!("\\w"!==u||!n(e,"\\d"))||!("\\W"!==u||!n(e,"\\s"))||"Char"===e.type&&!isNaN(e.codePoint)&&("\\s"===u?s(e):"\\S"===u?!s(e):"\\d"===u?i(e):"\\D"===u?!i(e):"\\w"===u?f(e,r):"\\W"===u&&!f(e,r))}function s(e){return 9===e.codePoint||10===e.codePoint||11===e.codePoint||12===e.codePoint||13===e.codePoint||32===e.codePoint||160===e.codePoint||5760===e.codePoint||e.codePoint>=8192&&e.codePoint<=8202||8232===e.codePoint||8233===e.codePoint||8239===e.codePoint||8287===e.codePoint||12288===e.codePoint||65279===e.codePoint}function i(e){return e.codePoint>=48&&e.codePoint<=57}function f(e,u){return i(e)||e.codePoint>=65&&e.codePoint<=90||e.codePoint>=97&&e.codePoint<=122||"_"===e.value||u&&(383===e.codePoint||8490===e.codePoint)}function o(e,u){if(u&&"ClassRange"===u.type){if(l(e,u))return!0;if(p(e)&&u.to.codePoint===e.codePoint-1)return u.to=e,!0;if("ClassRange"===e.type&&e.from.codePoint<=u.to.codePoint+1&&e.to.codePoint>=u.from.codePoint-1)return e.from.codePoint<u.from.codePoint&&(u.from=e.from),e.to.codePoint>u.to.codePoint&&(u.to=e.to),!0}return!1}function c(e,u){return!(!u||"ClassRange"!==u.type||!p(e)||u.from.codePoint!==e.codePoint+1||(u.from=e,0))}function l(e,u){return("Char"!==e.type||!isNaN(e.codePoint))&&("ClassRange"===e.type?l(e.from,u)&&l(e.to,u):e.codePoint>=u.from.codePoint&&e.codePoint<=u.to.codePoint)}function v(e,u,r){if(!p(e))return 0;for(var n=0;u>0;){var t=r[u],d=r[u-1];if(!p(d)||d.codePoint!==t.codePoint-1)break;n++,u--}return n>1?(r[u]={type:"ClassRange",from:r[u],to:e},n):0}function p(e){return e&&"Char"===e.type&&!isNaN(e.codePoint)&&(f(e,!1)||"unicode"===e.kind||"hex"===e.kind||"oct"===e.kind||"decimal"===e.kind)}e.exports={_hasIUFlags:!1,init:function(e){this._hasIUFlags=e.flags.includes("i")&&e.flags.includes("u")},CharacterClass:function(e){var r=e.node.expressions,t=[];r.forEach((function(e){n(e)&&t.push(e.value)})),r.sort(u);for(var a=0;a<r.length;a++){var s=r[a];if(d(s,t,this._hasIUFlags)||o(s,r[a-1])||c(s,r[a+1]))r.splice(a,1),a--;else{var i=v(s,a,r);r.splice(a-i+1,i),a-=i}}}}},76953:e=>{"use strict";e.exports={ClassRange:function(e){var u=e.node;u.from.codePoint===u.to.codePoint?e.replace(u.from):u.from.codePoint===u.to.codePoint-1&&(e.getParent().insertChildAt(u.to,e.index+1),e.replace(u.from))}}},322:e=>{"use strict";e.exports={CharacterClass:function(e){for(var u=e.node,r={},n=0;n<u.expressions.length;n++){var t=e.getChild(n),d=t.jsonEncode();r.hasOwnProperty(d)&&(t.remove(),n--),r[d]=!0}}}},4090:e=>{"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={_hasIFlag:!1,_hasUFlag:!1,init:function(e){this._hasIFlag=e.flags.includes("i"),this._hasUFlag=e.flags.includes("u")},CharacterClass:function(e){!function(e){e.node.expressions.forEach((function(u,r){(function(e){return"ClassRange"===e.type&&"0"===e.from.value&&"9"===e.to.value})(u)&&e.getChild(r).replace({type:"Char",value:"\\d",kind:"meta"})}))}(e),function(e,u,r){var n=e.node,a=null,s=null,i=null,f=null,o=null,c=null;n.expressions.forEach((function(n,l){t(n,"\\d")?a=e.getChild(l):function(e){return"ClassRange"===e.type&&"a"===e.from.value&&"z"===e.to.value}(n)?s=e.getChild(l):function(e){return"ClassRange"===e.type&&"A"===e.from.value&&"Z"===e.to.value}(n)?i=e.getChild(l):function(e){return"Char"===e.type&&"_"===e.value&&"simple"===e.kind}(n)?f=e.getChild(l):u&&r&&d(n,383)?o=e.getChild(l):u&&r&&d(n,8490)&&(c=e.getChild(l))})),a&&(s&&i||u&&(s||i))&&f&&(!r||!u||o&&c)&&(a.replace({type:"Char",value:"\\w",kind:"meta"}),s&&s.remove(),i&&i.remove(),f.remove(),o&&o.remove(),c&&c.remove())}(e,this._hasIFlag,this._hasUFlag),function(e){var u=e.node;if(!(u.expressions.length<r.length)&&r.every((function(e){return u.expressions.some((function(u){return e(u)}))}))){var n=u.expressions.find((function(e){return t(e,"\\n")}));n.value="\\s",n.symbol=void 0,n.codePoint=NaN,u.expressions.map((function(u,n){return r.some((function(e){return e(u)}))?e.getChild(n):void 0})).filter(Boolean).forEach((function(e){return e.remove()}))}}(e)}};var r=[function(e){return n(e," ")}].concat(u(["\\f","\\n","\\r","\\t","\\v"].map((function(e){return function(u){return t(u,e)}}))),u([160,5760,8232,8233,8239,8287,12288,65279].map((function(e){return function(u){return d(u,e)}}))),[function(e){return"ClassRange"===e.type&&d(e.from,8192)&&d(e.to,8202)}]);function n(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"simple";return"Char"===e.type&&e.value===u&&e.kind===r}function t(e,u){return n(e,u,"meta")}function d(e,u){return"Char"===e.type&&"unicode"===e.kind&&e.codePoint===u}},11810:e=>{"use strict";function u(e){return/[*[()+?$./{}|]/.test(e)}e.exports={CharacterClass:function(e){var r=e.node;if(1===r.expressions.length&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&function(e){return"Char"===e.type&&"\\b"!==e.value}(r.expressions[0])){var n=r.expressions[0],t=n.value,d=n.kind,a=n.escaped;if(r.negative){if(!function(e){return/^\\[dwsDWS]$/.test(e)}(t))return;t=function(e){return/[dws]/.test(e)?e.toUpperCase():e.toLowerCase()}(t)}e.replace({type:"Char",value:t,kind:d,escaped:a||u(t)})}}}},88111:e=>{"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0),n="a".codePointAt(0),t="z".codePointAt(0),d="0".codePointAt(0),a="9".codePointAt(0);e.exports={Char:function(e){var s,i,f,o=e.node,c=e.parent;if(!isNaN(o.codePoint)&&"simple"!==o.kind&&("ClassRange"!==c.type||(i=(s=c).from,f=s.to,i.codePoint>=d&&i.codePoint<=a&&f.codePoint>=d&&f.codePoint<=a||i.codePoint>=u&&i.codePoint<=r&&f.codePoint>=u&&f.codePoint<=r||i.codePoint>=n&&i.codePoint<=t&&f.codePoint>=n&&f.codePoint<=t))&&(l=o.codePoint)>=32&&l<=126){var l,v=String.fromCodePoint(o.codePoint),p={type:"Char",kind:"simple",value:v,symbol:v,codePoint:o.codePoint};(function(e,u){return"ClassRange"===u||"CharacterClass"===u?/[\]\\^-]/.test(e):/[*[()+?^$./\\|{}]/.test(e)})(v,c.type)&&(p.escaped=!0),e.replace(p)}}}},6632:e=>{"use strict";function u(e,u,r){for(var n=e,t=(r?n>=0:n<u.expressions.length)&&u.expressions[n];t&&"Char"===t.type&&"simple"===t.kind&&!t.escaped&&/\d/.test(t.value);)r?n--:n++,t=(r?n>=0:n<u.expressions.length)&&u.expressions[n];return Math.abs(e-n)}function r(e,u){return e&&"Char"===e.type&&"simple"===e.kind&&!e.escaped&&e.value===u}e.exports={_hasXFlag:!1,init:function(e){this._hasXFlag=e.flags.includes("x")},Char:function(e){var n=e.node;n.escaped&&function(e,n){var t=e.node.value,d=e.index,a=e.parent;return"CharacterClass"!==a.type&&"ClassRange"!==a.type?!function(e,n,t,d){return"{"===e?function(e,n){if(null==e)return!1;var t=u(e+1,n),d=e+t+1,a=d<n.expressions.length&&n.expressions[d];if(t){if(r(a,"}"))return!0;if(r(a,","))return r(a=(d=d+(t=u(d+1,n))+1)<n.expressions.length&&n.expressions[d],"}")}return!1}(n,t):"}"===e?function(e,n){if(null==e)return!1;var t=u(e-1,n,!0),d=e-t-1,a=d>=0&&n.expressions[d];return!(!t||!r(a,"{"))||!!r(a,",")&&(a=(d=d-(t=u(d-1,n,!0))-1)<n.expressions.length&&n.expressions[d],t&&r(a,"{"))}(n,t):!(!d||!/[ #]/.test(e))||/[*[()+?^$./\\|]/.test(e)}(t,d,a,n):!function(e,u,r){return"^"===e?0===u&&!r.negative:"-"===e||/[\]\\]/.test(e)}(t,d,a)}(e,this._hasXFlag)&&delete n.escaped}}},8988:e=>{"use strict";e.exports={shouldRun:function(e){return e.flags.includes("u")},Char:function(e){var u=e.node;"unicode"===u.kind&&u.isSurrogatePair&&!isNaN(u.codePoint)&&(u.value="\\u{"+u.codePoint.toString(16)+"}",delete u.isSurrogatePair)}}},97648:(e,u,r)=>{"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var t=r(41059),d=r(33166).increaseQuantifierByOne;function a(e,u,r){for(var d=e.node,a=Math.ceil(r/2),s=0;s<a;){var i=r-2*s-1,f=void 0,o=void 0;if(0===s?(f=u,o=e.getChild(i)):(f=t.getForNode({type:"Alternative",expressions:[].concat(n(d.expressions.slice(r-s,r)),[u.node])}),o=t.getForNode({type:"Alternative",expressions:[].concat(n(d.expressions.slice(i,r-s)))})),f.hasEqualSource(o)){for(var c=0;c<2*s+1;c++)e.getChild(i).remove();return u.replace({type:"Repetition",expression:0===s&&"Repetition"!==f.node.type?f.node:{type:"Group",capturing:!1,expression:f.node},quantifier:{type:"Quantifier",kind:"Range",from:2,to:2,greedy:!0}}),i}s++}return r}function s(e,u,r){for(var a=e.node,s=0;s<r;){var i=e.getChild(s);if("Repetition"===i.node.type&&i.node.quantifier.greedy){var f=i.getChild(),o=void 0;if("Group"!==f.node.type||f.node.capturing||(f=f.getChild()),s+1===r?"Group"!==(o=u).node.type||o.node.capturing||(o=o.getChild()):o=t.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(s+1,r+1)))}),f.hasEqualSource(o)){for(var c=s;c<r;c++)e.getChild(s+1).remove();return d(i.node.quantifier),s}}s++}return r}function i(e,u,r){var a=e.node;if("Repetition"===u.node.type&&u.node.quantifier.greedy){var s=u.getChild(),i=void 0;"Group"!==s.node.type||s.node.capturing||(s=s.getChild());var f=void 0;if("Alternative"===s.node.type?(f=s.node.expressions.length,i=t.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(r-f,r)))})):(f=1,"Group"!==(i=e.getChild(r-1)).node.type||i.node.capturing||(i=i.getChild())),i.hasEqualSource(s)){for(var o=r-f;o<r;o++)e.getChild(r-f).remove();return d(u.node.quantifier),r-f}}return r}e.exports={Alternative:function(e){for(var u=e.node,r=1;r<u.expressions.length;){var n=e.getChild(r);if((r=Math.max(1,a(e,n,r)))>=u.expressions.length)break;if(n=e.getChild(r),(r=Math.max(1,s(e,n,r)))>=u.expressions.length)break;n=e.getChild(r),r=Math.max(1,i(e,n,r)),r++}}}},61013:(e,u,r)=>{"use strict";var n=r(41059),t=r(33166),d=t.disjunctionToList,a=t.listToDisjunction;e.exports={Disjunction:function(e){var u=e.node,r={},t=d(u).filter((function(e){var u=e?n.getForNode(e).jsonEncode():"null";return!r.hasOwnProperty(u)&&(r[u]=e,!0)}));e.replace(a(t))}}},83427:e=>{"use strict";e.exports={Disjunction:function(e){var n=e.node,t=e.parent;if(u[t.type]){var d=new Map;if(r(n,d)&&d.size){var a={type:"CharacterClass",expressions:Array.from(d.keys()).sort().map((function(e){return d.get(e)}))};u[t.type](e.getParent(),a)}}}};var u={RegExp:function(e,u){e.node.body=u},Group:function(e,u){var r=e.node;r.capturing?r.expression=u:e.replace(u)}};function r(e,u){if(!e)return!1;var n=e.type;if("Disjunction"===n){var t=e.left,d=e.right;return r(t,u)&&r(d,u)}if("Char"===n){if("meta"===e.kind&&"."===e.symbol)return!1;var a=e.value;return u.set(a,e),!0}return"CharacterClass"===n&&!e.negative&&e.expressions.every((function(e){return r(e,u)}))}},53256:(e,u,r)=>{"use strict";e.exports=new Map([["charSurrogatePairToSingleUnicode",r(8988)],["charCodeToSimpleChar",r(88111)],["charCaseInsensitiveLowerCaseTransform",r(98002)],["charClassRemoveDuplicates",r(322)],["quantifiersMerge",r(31837)],["quantifierRangeToSymbol",r(88190)],["charClassClassrangesToChars",r(76953)],["charClassToMeta",r(4090)],["charClassToSingleChar",r(11810)],["charEscapeUnescape",r(6632)],["charClassClassrangesMerge",r(70436)],["disjunctionRemoveDuplicates",r(61013)],["groupSingleCharsToCharClass",r(83427)],["removeEmptyGroup",r(72097)],["ungroup",r(95435)],["combineRepeatingPatterns",r(97648)]])},88190:e=>{"use strict";e.exports={Quantifier:function(e){"Range"===e.node.kind&&(function(e){var u=e.node;0!==u.from||u.to||(u.kind="*",delete u.from)}(e),function(e){var u=e.node;1!==u.from||u.to||(u.kind="+",delete u.from)}(e),function(e){var u=e.node;1===u.from&&1===u.to&&e.parentPath.replace(e.parentPath.node.expression)}(e))}}},31837:(e,u,r)=>{"use strict";var n=r(33166).increaseQuantifierByOne;function t(e){return e.greedy&&("+"===e.kind||"*"===e.kind||"Range"===e.kind&&!e.to)}function d(e){var u=void 0,r=void 0;return"*"===e.kind?u=0:"+"===e.kind?u=1:"?"===e.kind?(u=0,r=1):(u=e.from,e.to&&(r=e.to)),{from:u,to:r}}e.exports={Repetition:function(e){var u=e.node;if("Alternative"===e.parent.type&&e.index){var r=e.getPreviousSibling();if(r)if("Repetition"===r.node.type){if(!r.getChild().hasEqualSource(e.getChild()))return;var a=d(r.node.quantifier),s=a.from,i=a.to,f=d(u.quantifier),o=f.from,c=f.to;if(r.node.quantifier.greedy!==u.quantifier.greedy&&!t(r.node.quantifier)&&!t(u.quantifier))return;u.quantifier.kind="Range",u.quantifier.from=s+o,i&&c?u.quantifier.to=i+c:delete u.quantifier.to,(t(r.node.quantifier)||t(u.quantifier))&&(u.quantifier.greedy=!0),r.remove()}else{if(!r.hasEqualSource(e.getChild()))return;n(u.quantifier),r.remove()}}}}},72097:e=>{"use strict";e.exports={Group:function(e){var u=e.node,r=e.parent,n=e.getChild();u.capturing||n||("Repetition"===r.type?e.getParent().replace(u):"RegExp"!==r.type&&e.remove())}}},95435:e=>{"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={Group:function(e){var r=e.node,n=e.parent,t=e.getChild();if(!r.capturing&&t&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&!("Disjunction"===t.node.type&&"RegExp"!==n.type||"Repetition"===n.type&&"Char"!==t.node.type&&"CharacterClass"!==t.node.type))if("Alternative"===t.node.type){var d=e.getParent();"Alternative"===d.node.type&&d.replace({type:"Alternative",expressions:[].concat(u(n.expressions.slice(0,e.index)),u(t.node.expressions),u(n.expressions.slice(e.index+1)))})}else e.replace(t.node)}}},97e3:(e,u,r)=>{"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var t=void 0,d={},a=void 0,s=void 0;function i(e,u){return d.options.captureLocations?e&&u?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:e||u:null}var f=[[-1,1,function(e,u){s=i(u,u),a=e}],[0,4,function(e,u,r,n,t,d,f,o){s=i(t,o),a=T({type:"RegExp",body:u,flags:w(n)},R(t,o||f))}],[1,1,function(e,u){s=i(u,u),a=e}],[1,0,function(){s=null,a=""}],[2,1,function(e,u){s=i(u,u),a=e}],[2,2,function(e,u,r,n){s=i(r,n),a=e+u}],[3,1,function(e,u){s=i(u,u),a=e}],[4,1,function(e,u){s=i(u,u),a=e}],[4,3,function(e,u,r,n,t,d){s=i(n,d);var f=null;t&&(f=R(n||t,d||t)),a=T({type:"Disjunction",left:e,right:r},f)}],[5,1,function(e,u){s=i(u,u),a=0!==e.length?1===e.length?T(e[0],s):T({type:"Alternative",expressions:e},s):null}],[6,0,function(){s=null,a=[]}],[6,2,function(e,u,r,n){s=i(r,n),a=e.concat(u)}],[7,1,function(e,u){s=i(u,u),a=T(Object.assign({type:"Assertion"},e),s)}],[7,2,function(e,u,r,n){s=i(r,n),a=e,u&&(a=T({type:"Repetition",expression:e,quantifier:u},s))}],[8,1,function(e,u){s=i(u,u),a={kind:"^"}}],[8,1,function(e,u){s=i(u,u),a={kind:"$"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\b"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\B"}}],[8,3,function(e,u,r,n,t,d){s=i(n,d),a={kind:"Lookahead",assertion:u}}],[8,3,function(e,u,r,n,t,d){s=i(n,d),a={kind:"Lookahead",negative:!0,assertion:u}}],[8,3,function(e,u,r,n,t,d){s=i(n,d),a={kind:"Lookbehind",assertion:u}}],[8,3,function(e,u,r,n,t,d){s=i(n,d),a={kind:"Lookbehind",negative:!0,assertion:u}}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[10,1,function(e,u){s=i(u,u),a=x(e,"simple",s)}],[10,1,function(e,u){s=i(u,u),(a=x(e.slice(1),"simple",s)).escaped=!0}],[10,1,function(e,u){s=i(u,u),(a=x(e,"unicode",s)).isSurrogatePair=!0}],[10,1,function(e,u){s=i(u,u),a=x(e,"unicode",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r="P"===e[1],n=e.indexOf("="),t=e.slice(3,-1!==n?n:-1),d=void 0,a=-1===n&&A.isGeneralCategoryValue(t),s=-1===n&&A.isBinaryPropertyName(t);if(a)d=t,t="General_Category";else if(s)d=t;else{if(!A.isValidName(t))throw new SyntaxError("Invalid unicode property name: "+t+".");if(d=e.slice(n+1,-1),!A.isValidValue(t,d))throw new SyntaxError("Invalid "+t+" unicode property value: "+d+".")}return T({type:"UnicodeProperty",name:t,value:d,negative:r,shorthand:a,binary:s,canonicalName:A.getCanonicalName(t)||t,canonicalValue:A.getCanonicalValue(d)||d},u)}(e,s)}],[10,1,function(e,u){s=i(u,u),a=x(e,"control",s)}],[10,1,function(e,u){s=i(u,u),a=x(e,"hex",s)}],[10,1,function(e,u){s=i(u,u),a=x(e,"oct",s)}],[10,1,function(e,u){var r,n,t;s=i(u,u),r=e,n=s,t=Number(r.slice(1)),a=t>0&&t<=y?T({type:"Backreference",kind:"number",number:t,reference:t},n):x(r,"decimal",n)}],[10,1,function(e,u){s=i(u,u),a=x(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=x(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r=e.slice(3,-1),n=O(r);if(g.hasOwnProperty(n))return T({type:"Backreference",kind:"name",number:g[n],reference:n,referenceRaw:r},u);var t=null,d=null,a=null,s=null;u&&(t=u.startOffset,d=u.startLine,a=u.endLine,s=u.startColumn);var i=/^[\w$<>]/,f=void 0,o=[x(e.slice(1,2),"simple",t?{startLine:d,endLine:a,startColumn:s,startOffset:t,endOffset:t+=2,endColumn:s+=2}:null)];for(o[0].escaped=!0,e=e.slice(2);e.length>0;){var c=null;(c=e.match(S))||(c=e.match(k))?(t&&(f={startLine:d,endLine:a,startColumn:s,startOffset:t,endOffset:t+=c[0].length,endColumn:s+=c[0].length}),o.push(x(c[0],"unicode",f)),e=e.slice(c[0].length)):(c=e.match(i))&&(t&&(f={startLine:d,endLine:a,startColumn:s,startOffset:t,endOffset:++t,endColumn:++s}),o.push(x(c[0],"simple",f)),e=e.slice(1))}return o}(e,u)}],[11,1,function(e,u){s=i(u,u),a=e}],[11,0],[12,1,function(e,u){s=i(u,u),a=e}],[12,2,function(e,u,r,n){s=i(r,n),e.greedy=!1,a=e}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=T({type:"Quantifier",kind:"Range",from:r[0],to:r[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=T({type:"Quantifier",kind:"Range",from:B(e)[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=T({type:"Quantifier",kind:"Range",from:r[0],to:r[1],greedy:!0},s)}],[14,1,function(e,u){s=i(u,u),a=e}],[14,1,function(e,u){s=i(u,u),a=e}],[15,3,function(e,u,r,n,t,f){s=i(n,f);var o=String(e),c=O(o);if(!d.options.allowGroupNameDuplicates&&g.hasOwnProperty(c))throw new SyntaxError('Duplicate of the named group "'+c+'".');g[c]=e.groupNumber,a=T({type:"Group",capturing:!0,name:c,nameRaw:o,number:e.groupNumber,expression:u},s)}],[15,3,function(e,u,r,n,t,d){s=i(n,d),a=T({type:"Group",capturing:!0,number:e.groupNumber,expression:u},s)}],[16,3,function(e,u,r,n,t,d){s=i(n,d),a=T({type:"Group",capturing:!1,expression:u},s)}],[17,3,function(e,u,r,n,t,d){s=i(n,d),a=T({type:"CharacterClass",negative:!0,expressions:u},s)}],[17,3,function(e,u,r,n,t,d){s=i(n,d),a=T({type:"CharacterClass",expressions:u},s)}],[18,0,function(){s=null,a=[]}],[18,1,function(e,u){s=i(u,u),a=e}],[19,1,function(e,u){s=i(u,u),a=[e]}],[19,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[19,4,function(e,u,r,n,t,d,f,o){s=i(t,o),_(e,r),a=[T({type:"ClassRange",from:e,to:r},R(t,f))],n&&(a=a.concat(n))}],[20,1,function(e,u){s=i(u,u),a=e}],[20,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[20,4,function(e,u,r,n,t,d,f,o){s=i(t,o),_(e,r),a=[T({type:"ClassRange",from:e,to:r},R(t,f))],n&&(a=a.concat(n))}],[21,1,function(e,u){s=i(u,u),a=x(e,"simple",s)}],[21,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=x(e,"meta",s)}]],o={SLASH:"23",CHAR:"24",BAR:"25",BOS:"26",EOS:"27",ESC_b:"28",ESC_B:"29",POS_LA_ASSERT:"30",R_PAREN:"31",NEG_LA_ASSERT:"32",POS_LB_ASSERT:"33",NEG_LB_ASSERT:"34",ESC_CHAR:"35",U_CODE_SURROGATE:"36",U_CODE:"37",U_PROP_VALUE_EXP:"38",CTRL_CH:"39",HEX_CODE:"40",OCT_CODE:"41",DEC_CODE:"42",META_CHAR:"43",ANY:"44",NAMED_GROUP_REF:"45",Q_MARK:"46",STAR:"47",PLUS:"48",RANGE_EXACT:"49",RANGE_OPEN:"50",RANGE_CLOSED:"51",NAMED_CAPTURE_GROUP:"52",L_PAREN:"53",NON_CAPTURE_GROUP:"54",NEG_CLASS:"55",R_BRACKET:"56",L_BRACKET:"57",DASH:"58",$:"59"},c=[{0:1,23:"s2"},{59:"acc"},{3:3,4:4,5:5,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"s7"},{23:"r6",25:"s12"},{23:"r7",25:"r7",31:"r7"},{7:14,8:15,9:16,10:25,14:27,15:42,16:43,17:26,23:"r9",24:"s28",25:"r9",26:"s17",27:"s18",28:"s19",29:"s20",30:"s21",31:"r9",32:"s22",33:"s23",34:"s24",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",52:"s44",53:"s45",54:"s46",55:"s40",57:"s41"},{1:8,2:9,24:"s10",59:"r3"},{59:"r1"},{24:"s11",59:"r2"},{24:"r4",59:"r4"},{24:"r5",59:"r5"},{5:13,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r8",25:"r8",31:"r8"},{23:"r11",24:"r11",25:"r11",26:"r11",27:"r11",28:"r11",29:"r11",30:"r11",31:"r11",32:"r11",33:"r11",34:"r11",35:"r11",36:"r11",37:"r11",38:"r11",39:"r11",40:"r11",41:"r11",42:"r11",43:"r11",44:"r11",45:"r11",52:"r11",53:"r11",54:"r11",55:"r11",57:"r11"},{23:"r12",24:"r12",25:"r12",26:"r12",27:"r12",28:"r12",29:"r12",30:"r12",31:"r12",32:"r12",33:"r12",34:"r12",35:"r12",36:"r12",37:"r12",38:"r12",39:"r12",40:"r12",41:"r12",42:"r12",43:"r12",44:"r12",45:"r12",52:"r12",53:"r12",54:"r12",55:"r12",57:"r12"},{11:47,12:48,13:49,23:"r38",24:"r38",25:"r38",26:"r38",27:"r38",28:"r38",29:"r38",30:"r38",31:"r38",32:"r38",33:"r38",34:"r38",35:"r38",36:"r38",37:"r38",38:"r38",39:"r38",40:"r38",41:"r38",42:"r38",43:"r38",44:"r38",45:"r38",46:"s52",47:"s50",48:"s51",49:"s53",50:"s54",51:"s55",52:"r38",53:"r38",54:"r38",55:"r38",57:"r38"},{23:"r14",24:"r14",25:"r14",26:"r14",27:"r14",28:"r14",29:"r14",30:"r14",31:"r14",32:"r14",33:"r14",34:"r14",35:"r14",36:"r14",37:"r14",38:"r14",39:"r14",40:"r14",41:"r14",42:"r14",43:"r14",44:"r14",45:"r14",52:"r14",53:"r14",54:"r14",55:"r14",57:"r14"},{23:"r15",24:"r15",25:"r15",26:"r15",27:"r15",28:"r15",29:"r15",30:"r15",31:"r15",32:"r15",33:"r15",34:"r15",35:"r15",36:"r15",37:"r15",38:"r15",39:"r15",40:"r15",41:"r15",42:"r15",43:"r15",44:"r15",45:"r15",52:"r15",53:"r15",54:"r15",55:"r15",57:"r15"},{23:"r16",24:"r16",25:"r16",26:"r16",27:"r16",28:"r16",29:"r16",30:"r16",31:"r16",32:"r16",33:"r16",34:"r16",35:"r16",36:"r16",37:"r16",38:"r16",39:"r16",40:"r16",41:"r16",42:"r16",43:"r16",44:"r16",45:"r16",52:"r16",53:"r16",54:"r16",55:"r16",57:"r16"},{23:"r17",24:"r17",25:"r17",26:"r17",27:"r17",28:"r17",29:"r17",30:"r17",31:"r17",32:"r17",33:"r17",34:"r17",35:"r17",36:"r17",37:"r17",38:"r17",39:"r17",40:"r17",41:"r17",42:"r17",43:"r17",44:"r17",45:"r17",52:"r17",53:"r17",54:"r17",55:"r17",57:"r17"},{4:57,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:59,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:61,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:63,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r22",24:"r22",25:"r22",26:"r22",27:"r22",28:"r22",29:"r22",30:"r22",31:"r22",32:"r22",33:"r22",34:"r22",35:"r22",36:"r22",37:"r22",38:"r22",39:"r22",40:"r22",41:"r22",42:"r22",43:"r22",44:"r22",45:"r22",46:"r22",47:"r22",48:"r22",49:"r22",50:"r22",51:"r22",52:"r22",53:"r22",54:"r22",55:"r22",57:"r22"},{23:"r23",24:"r23",25:"r23",26:"r23",27:"r23",28:"r23",29:"r23",30:"r23",31:"r23",32:"r23",33:"r23",34:"r23",35:"r23",36:"r23",37:"r23",38:"r23",39:"r23",40:"r23",41:"r23",42:"r23",43:"r23",44:"r23",45:"r23",46:"r23",47:"r23",48:"r23",49:"r23",50:"r23",51:"r23",52:"r23",53:"r23",54:"r23",55:"r23",57:"r23"},{23:"r24",24:"r24",25:"r24",26:"r24",27:"r24",28:"r24",29:"r24",30:"r24",31:"r24",32:"r24",33:"r24",34:"r24",35:"r24",36:"r24",37:"r24",38:"r24",39:"r24",40:"r24",41:"r24",42:"r24",43:"r24",44:"r24",45:"r24",46:"r24",47:"r24",48:"r24",49:"r24",50:"r24",51:"r24",52:"r24",53:"r24",54:"r24",55:"r24",57:"r24"},{23:"r25",24:"r25",25:"r25",26:"r25",27:"r25",28:"r25",29:"r25",30:"r25",31:"r25",32:"r25",33:"r25",34:"r25",35:"r25",36:"r25",37:"r25",38:"r25",39:"r25",40:"r25",41:"r25",42:"r25",43:"r25",44:"r25",45:"r25",46:"r25",47:"r25",48:"r25",49:"r25",50:"r25",51:"r25",52:"r25",53:"r25",54:"r25",55:"r25",56:"r25",57:"r25",58:"r25"},{23:"r26",24:"r26",25:"r26",26:"r26",27:"r26",28:"r26",29:"r26",30:"r26",31:"r26",32:"r26",33:"r26",34:"r26",35:"r26",36:"r26",37:"r26",38:"r26",39:"r26",40:"r26",41:"r26",42:"r26",43:"r26",44:"r26",45:"r26",46:"r26",47:"r26",48:"r26",49:"r26",50:"r26",51:"r26",52:"r26",53:"r26",54:"r26",55:"r26",56:"r26",57:"r26",58:"r26"},{23:"r27",24:"r27",25:"r27",26:"r27",27:"r27",28:"r27",29:"r27",30:"r27",31:"r27",32:"r27",33:"r27",34:"r27",35:"r27",36:"r27",37:"r27",38:"r27",39:"r27",40:"r27",41:"r27",42:"r27",43:"r27",44:"r27",45:"r27",46:"r27",47:"r27",48:"r27",49:"r27",50:"r27",51:"r27",52:"r27",53:"r27",54:"r27",55:"r27",56:"r27",57:"r27",58:"r27"},{23:"r28",24:"r28",25:"r28",26:"r28",27:"r28",28:"r28",29:"r28",30:"r28",31:"r28",32:"r28",33:"r28",34:"r28",35:"r28",36:"r28",37:"r28",38:"r28",39:"r28",40:"r28",41:"r28",42:"r28",43:"r28",44:"r28",45:"r28",46:"r28",47:"r28",48:"r28",49:"r28",50:"r28",51:"r28",52:"r28",53:"r28",54:"r28",55:"r28",56:"r28",57:"r28",58:"r28"},{23:"r29",24:"r29",25:"r29",26:"r29",27:"r29",28:"r29",29:"r29",30:"r29",31:"r29",32:"r29",33:"r29",34:"r29",35:"r29",36:"r29",37:"r29",38:"r29",39:"r29",40:"r29",41:"r29",42:"r29",43:"r29",44:"r29",45:"r29",46:"r29",47:"r29",48:"r29",49:"r29",50:"r29",51:"r29",52:"r29",53:"r29",54:"r29",55:"r29",56:"r29",57:"r29",58:"r29"},{23:"r30",24:"r30",25:"r30",26:"r30",27:"r30",28:"r30",29:"r30",30:"r30",31:"r30",32:"r30",33:"r30",34:"r30",35:"r30",36:"r30",37:"r30",38:"r30",39:"r30",40:"r30",41:"r30",42:"r30",43:"r30",44:"r30",45:"r30",46:"r30",47:"r30",48:"r30",49:"r30",50:"r30",51:"r30",52:"r30",53:"r30",54:"r30",55:"r30",56:"r30",57:"r30",58:"r30"},{23:"r31",24:"r31",25:"r31",26:"r31",27:"r31",28:"r31",29:"r31",30:"r31",31:"r31",32:"r31",33:"r31",34:"r31",35:"r31",36:"r31",37:"r31",38:"r31",39:"r31",40:"r31",41:"r31",42:"r31",43:"r31",44:"r31",45:"r31",46:"r31",47:"r31",48:"r31",49:"r31",50:"r31",51:"r31",52:"r31",53:"r31",54:"r31",55:"r31",56:"r31",57:"r31",58:"r31"},{23:"r32",24:"r32",25:"r32",26:"r32",27:"r32",28:"r32",29:"r32",30:"r32",31:"r32",32:"r32",33:"r32",34:"r32",35:"r32",36:"r32",37:"r32",38:"r32",39:"r32",40:"r32",41:"r32",42:"r32",43:"r32",44:"r32",45:"r32",46:"r32",47:"r32",48:"r32",49:"r32",50:"r32",51:"r32",52:"r32",53:"r32",54:"r32",55:"r32",56:"r32",57:"r32",58:"r32"},{23:"r33",24:"r33",25:"r33",26:"r33",27:"r33",28:"r33",29:"r33",30:"r33",31:"r33",32:"r33",33:"r33",34:"r33",35:"r33",36:"r33",37:"r33",38:"r33",39:"r33",40:"r33",41:"r33",42:"r33",43:"r33",44:"r33",45:"r33",46:"r33",47:"r33",48:"r33",49:"r33",50:"r33",51:"r33",52:"r33",53:"r33",54:"r33",55:"r33",56:"r33",57:"r33",58:"r33"},{23:"r34",24:"r34",25:"r34",26:"r34",27:"r34",28:"r34",29:"r34",30:"r34",31:"r34",32:"r34",33:"r34",34:"r34",35:"r34",36:"r34",37:"r34",38:"r34",39:"r34",40:"r34",41:"r34",42:"r34",43:"r34",44:"r34",45:"r34",46:"r34",47:"r34",48:"r34",49:"r34",50:"r34",51:"r34",52:"r34",53:"r34",54:"r34",55:"r34",56:"r34",57:"r34",58:"r34"},{23:"r35",24:"r35",25:"r35",26:"r35",27:"r35",28:"r35",29:"r35",30:"r35",31:"r35",32:"r35",33:"r35",34:"r35",35:"r35",36:"r35",37:"r35",38:"r35",39:"r35",40:"r35",41:"r35",42:"r35",43:"r35",44:"r35",45:"r35",46:"r35",47:"r35",48:"r35",49:"r35",50:"r35",51:"r35",52:"r35",53:"r35",54:"r35",55:"r35",56:"r35",57:"r35",58:"r35"},{23:"r36",24:"r36",25:"r36",26:"r36",27:"r36",28:"r36",29:"r36",30:"r36",31:"r36",32:"r36",33:"r36",34:"r36",35:"r36",36:"r36",37:"r36",38:"r36",39:"r36",40:"r36",41:"r36",42:"r36",43:"r36",44:"r36",45:"r36",46:"r36",47:"r36",48:"r36",49:"r36",50:"r36",51:"r36",52:"r36",53:"r36",54:"r36",55:"r36",56:"r36",57:"r36",58:"r36"},{10:70,18:65,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{10:70,18:83,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{23:"r47",24:"r47",25:"r47",26:"r47",27:"r47",28:"r47",29:"r47",30:"r47",31:"r47",32:"r47",33:"r47",34:"r47",35:"r47",36:"r47",37:"r47",38:"r47",39:"r47",40:"r47",41:"r47",42:"r47",43:"r47",44:"r47",45:"r47",46:"r47",47:"r47",48:"r47",49:"r47",50:"r47",51:"r47",52:"r47",53:"r47",54:"r47",55:"r47",57:"r47"},{23:"r48",24:"r48",25:"r48",26:"r48",27:"r48",28:"r48",29:"r48",30:"r48",31:"r48",32:"r48",33:"r48",34:"r48",35:"r48",36:"r48",37:"r48",38:"r48",39:"r48",40:"r48",41:"r48",42:"r48",43:"r48",44:"r48",45:"r48",46:"r48",47:"r48",48:"r48",49:"r48",50:"r48",51:"r48",52:"r48",53:"r48",54:"r48",55:"r48",57:"r48"},{4:85,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:87,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:89,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r13",24:"r13",25:"r13",26:"r13",27:"r13",28:"r13",29:"r13",30:"r13",31:"r13",32:"r13",33:"r13",34:"r13",35:"r13",36:"r13",37:"r13",38:"r13",39:"r13",40:"r13",41:"r13",42:"r13",43:"r13",44:"r13",45:"r13",52:"r13",53:"r13",54:"r13",55:"r13",57:"r13"},{23:"r37",24:"r37",25:"r37",26:"r37",27:"r37",28:"r37",29:"r37",30:"r37",31:"r37",32:"r37",33:"r37",34:"r37",35:"r37",36:"r37",37:"r37",38:"r37",39:"r37",40:"r37",41:"r37",42:"r37",43:"r37",44:"r37",45:"r37",52:"r37",53:"r37",54:"r37",55:"r37",57:"r37"},{23:"r39",24:"r39",25:"r39",26:"r39",27:"r39",28:"r39",29:"r39",30:"r39",31:"r39",32:"r39",33:"r39",34:"r39",35:"r39",36:"r39",37:"r39",38:"r39",39:"r39",40:"r39",41:"r39",42:"r39",43:"r39",44:"r39",45:"r39",46:"s56",52:"r39",53:"r39",54:"r39",55:"r39",57:"r39"},{23:"r41",24:"r41",25:"r41",26:"r41",27:"r41",28:"r41",29:"r41",30:"r41",31:"r41",32:"r41",33:"r41",34:"r41",35:"r41",36:"r41",37:"r41",38:"r41",39:"r41",40:"r41",41:"r41",42:"r41",43:"r41",44:"r41",45:"r41",46:"r41",52:"r41",53:"r41",54:"r41",55:"r41",57:"r41"},{23:"r42",24:"r42",25:"r42",26:"r42",27:"r42",28:"r42",29:"r42",30:"r42",31:"r42",32:"r42",33:"r42",34:"r42",35:"r42",36:"r42",37:"r42",38:"r42",39:"r42",40:"r42",41:"r42",42:"r42",43:"r42",44:"r42",45:"r42",46:"r42",52:"r42",53:"r42",54:"r42",55:"r42",57:"r42"},{23:"r43",24:"r43",25:"r43",26:"r43",27:"r43",28:"r43",29:"r43",30:"r43",31:"r43",32:"r43",33:"r43",34:"r43",35:"r43",36:"r43",37:"r43",38:"r43",39:"r43",40:"r43",41:"r43",42:"r43",43:"r43",44:"r43",45:"r43",46:"r43",52:"r43",53:"r43",54:"r43",55:"r43",57:"r43"},{23:"r44",24:"r44",25:"r44",26:"r44",27:"r44",28:"r44",29:"r44",30:"r44",31:"r44",32:"r44",33:"r44",34:"r44",35:"r44",36:"r44",37:"r44",38:"r44",39:"r44",40:"r44",41:"r44",42:"r44",43:"r44",44:"r44",45:"r44",46:"r44",52:"r44",53:"r44",54:"r44",55:"r44",57:"r44"},{23:"r45",24:"r45",25:"r45",26:"r45",27:"r45",28:"r45",29:"r45",30:"r45",31:"r45",32:"r45",33:"r45",34:"r45",35:"r45",36:"r45",37:"r45",38:"r45",39:"r45",40:"r45",41:"r45",42:"r45",43:"r45",44:"r45",45:"r45",46:"r45",52:"r45",53:"r45",54:"r45",55:"r45",57:"r45"},{23:"r46",24:"r46",25:"r46",26:"r46",27:"r46",28:"r46",29:"r46",30:"r46",31:"r46",32:"r46",33:"r46",34:"r46",35:"r46",36:"r46",37:"r46",38:"r46",39:"r46",40:"r46",41:"r46",42:"r46",43:"r46",44:"r46",45:"r46",46:"r46",52:"r46",53:"r46",54:"r46",55:"r46",57:"r46"},{23:"r40",24:"r40",25:"r40",26:"r40",27:"r40",28:"r40",29:"r40",30:"r40",31:"r40",32:"r40",33:"r40",34:"r40",35:"r40",36:"r40",37:"r40",38:"r40",39:"r40",40:"r40",41:"r40",42:"r40",43:"r40",44:"r40",45:"r40",52:"r40",53:"r40",54:"r40",55:"r40",57:"r40"},{25:"s12",31:"s58"},{23:"r18",24:"r18",25:"r18",26:"r18",27:"r18",28:"r18",29:"r18",30:"r18",31:"r18",32:"r18",33:"r18",34:"r18",35:"r18",36:"r18",37:"r18",38:"r18",39:"r18",40:"r18",41:"r18",42:"r18",43:"r18",44:"r18",45:"r18",52:"r18",53:"r18",54:"r18",55:"r18",57:"r18"},{25:"s12",31:"s60"},{23:"r19",24:"r19",25:"r19",26:"r19",27:"r19",28:"r19",29:"r19",30:"r19",31:"r19",32:"r19",33:"r19",34:"r19",35:"r19",36:"r19",37:"r19",38:"r19",39:"r19",40:"r19",41:"r19",42:"r19",43:"r19",44:"r19",45:"r19",52:"r19",53:"r19",54:"r19",55:"r19",57:"r19"},{25:"s12",31:"s62"},{23:"r20",24:"r20",25:"r20",26:"r20",27:"r20",28:"r20",29:"r20",30:"r20",31:"r20",32:"r20",33:"r20",34:"r20",35:"r20",36:"r20",37:"r20",38:"r20",39:"r20",40:"r20",41:"r20",42:"r20",43:"r20",44:"r20",45:"r20",52:"r20",53:"r20",54:"r20",55:"r20",57:"r20"},{25:"s12",31:"s64"},{23:"r21",24:"r21",25:"r21",26:"r21",27:"r21",28:"r21",29:"r21",30:"r21",31:"r21",32:"r21",33:"r21",34:"r21",35:"r21",36:"r21",37:"r21",38:"r21",39:"r21",40:"r21",41:"r21",42:"r21",43:"r21",44:"r21",45:"r21",52:"r21",53:"r21",54:"r21",55:"r21",57:"r21"},{56:"s72"},{56:"r55"},{10:70,20:73,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r56",58:"s74"},{24:"r62",28:"r62",35:"r62",36:"r62",37:"r62",38:"r62",39:"r62",40:"r62",41:"r62",42:"r62",43:"r62",44:"r62",45:"r62",56:"r62",58:"r62"},{24:"r63",28:"r63",35:"r63",36:"r63",37:"r63",38:"r63",39:"r63",40:"r63",41:"r63",42:"r63",43:"r63",44:"r63",45:"r63",56:"r63",58:"r63"},{24:"r64",28:"r64",35:"r64",36:"r64",37:"r64",38:"r64",39:"r64",40:"r64",41:"r64",42:"r64",43:"r64",44:"r64",45:"r64",56:"r64",58:"r64"},{24:"r65",28:"r65",35:"r65",36:"r65",37:"r65",38:"r65",39:"r65",40:"r65",41:"r65",42:"r65",43:"r65",44:"r65",45:"r65",56:"r65",58:"r65"},{23:"r52",24:"r52",25:"r52",26:"r52",27:"r52",28:"r52",29:"r52",30:"r52",31:"r52",32:"r52",33:"r52",34:"r52",35:"r52",36:"r52",37:"r52",38:"r52",39:"r52",40:"r52",41:"r52",42:"r52",43:"r52",44:"r52",45:"r52",46:"r52",47:"r52",48:"r52",49:"r52",50:"r52",51:"r52",52:"r52",53:"r52",54:"r52",55:"r52",57:"r52"},{56:"r57"},{10:70,21:77,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{56:"r59"},{10:70,20:79,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r63",58:"s80"},{10:70,18:78,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r58"},{56:"r60"},{10:70,21:81,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{10:70,18:82,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r61"},{56:"s84"},{23:"r53",24:"r53",25:"r53",26:"r53",27:"r53",28:"r53",29:"r53",30:"r53",31:"r53",32:"r53",33:"r53",34:"r53",35:"r53",36:"r53",37:"r53",38:"r53",39:"r53",40:"r53",41:"r53",42:"r53",43:"r53",44:"r53",45:"r53",46:"r53",47:"r53",48:"r53",49:"r53",50:"r53",51:"r53",52:"r53",53:"r53",54:"r53",55:"r53",57:"r53"},{25:"s12",31:"s86"},{23:"r49",24:"r49",25:"r49",26:"r49",27:"r49",28:"r49",29:"r49",30:"r49",31:"r49",32:"r49",33:"r49",34:"r49",35:"r49",36:"r49",37:"r49",38:"r49",39:"r49",40:"r49",41:"r49",42:"r49",43:"r49",44:"r49",45:"r49",46:"r49",47:"r49",48:"r49",49:"r49",50:"r49",51:"r49",52:"r49",53:"r49",54:"r49",55:"r49",57:"r49"},{25:"s12",31:"s88"},{23:"r50",24:"r50",25:"r50",26:"r50",27:"r50",28:"r50",29:"r50",30:"r50",31:"r50",32:"r50",33:"r50",34:"r50",35:"r50",36:"r50",37:"r50",38:"r50",39:"r50",40:"r50",41:"r50",42:"r50",43:"r50",44:"r50",45:"r50",46:"r50",47:"r50",48:"r50",49:"r50",50:"r50",51:"r50",52:"r50",53:"r50",54:"r50",55:"r50",57:"r50"},{25:"s12",31:"s90"},{23:"r51",24:"r51",25:"r51",26:"r51",27:"r51",28:"r51",29:"r51",30:"r51",31:"r51",32:"r51",33:"r51",34:"r51",35:"r51",36:"r51",37:"r51",38:"r51",39:"r51",40:"r51",41:"r51",42:"r51",43:"r51",44:"r51",45:"r51",46:"r51",47:"r51",48:"r51",49:"r51",50:"r51",51:"r51",52:"r51",53:"r51",54:"r51",55:"r51",57:"r51"}],l=[],v=void 0,p=[[/^#[^\n]+/,function(){}],[/^\s+/,function(){}],[/^-/,function(){return"DASH"}],[/^\//,function(){return"CHAR"}],[/^#/,function(){return"CHAR"}],[/^\|/,function(){return"CHAR"}],[/^\./,function(){return"CHAR"}],[/^\{/,function(){return"CHAR"}],[/^\{\d+\}/,function(){return"RANGE_EXACT"}],[/^\{\d+,\}/,function(){return"RANGE_OPEN"}],[/^\{\d+,\d+\}/,function(){return"RANGE_CLOSED"}],[/^\\k<(([\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\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00-\ude03\ude05-\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return E(t.slice(3,-1),this.getCurrentState()),"NAMED_GROUP_REF"}],[/^\\b/,function(){return"ESC_b"}],[/^\\B/,function(){return"ESC_B"}],[/^\\c[a-zA-Z]/,function(){return"CTRL_CH"}],[/^\\0\d{1,2}/,function(){return"OCT_CODE"}],[/^\\0/,function(){return"DEC_CODE"}],[/^\\\d{1,3}/,function(){return"DEC_CODE"}],[/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/,function(){return"U_CODE_SURROGATE"}],[/^\\u\{[0-9a-fA-F]{1,}\}/,function(){return"U_CODE"}],[/^\\u[0-9a-fA-F]{4}/,function(){return"U_CODE"}],[/^\\[pP]\{\w+(?:=\w+)?\}/,function(){return"U_PROP_VALUE_EXP"}],[/^\\x[0-9a-fA-F]{2}/,function(){return"HEX_CODE"}],[/^\\[tnrdDsSwWvf]/,function(){return"META_CHAR"}],[/^\\\//,function(){return"ESC_CHAR"}],[/^\\[ #]/,function(){return"ESC_CHAR"}],[/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/,function(){return"ESC_CHAR"}],[/^\\[^*?+\[()\\|]/,function(){var e=this.getCurrentState();if("u_class"===e&&"\\-"===t)return"ESC_CHAR";if("u"===e||"xu"===e||"u_class"===e)throw new SyntaxError("invalid Unicode escape "+t);return"ESC_CHAR"}],[/^\(/,function(){return"CHAR"}],[/^\)/,function(){return"CHAR"}],[/^\(\?=/,function(){return"POS_LA_ASSERT"}],[/^\(\?!/,function(){return"NEG_LA_ASSERT"}],[/^\(\?<=/,function(){return"POS_LB_ASSERT"}],[/^\(\?<!/,function(){return"NEG_LB_ASSERT"}],[/^\(\?:/,function(){return"NON_CAPTURE_GROUP"}],[/^\(\?<(([\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\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\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\u0af9\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-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00-\ude03\ude05-\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return E(t=t.slice(3,-1),this.getCurrentState()),"NAMED_CAPTURE_GROUP"}],[/^\(/,function(){return"L_PAREN"}],[/^\)/,function(){return"R_PAREN"}],[/^[*?+[^$]/,function(){return"CHAR"}],[/^\\\]/,function(){return"ESC_CHAR"}],[/^\]/,function(){return this.popState(),"R_BRACKET"}],[/^\^/,function(){return"BOS"}],[/^\$/,function(){return"EOS"}],[/^\*/,function(){return"STAR"}],[/^\?/,function(){return"Q_MARK"}],[/^\+/,function(){return"PLUS"}],[/^\|/,function(){return"BAR"}],[/^\./,function(){return"ANY"}],[/^\//,function(){return"SLASH"}],[/^[^*?+\[()\\|]/,function(){return"CHAR"}],[/^\[\^/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"NEG_CLASS"}],[/^\[/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"L_BRACKET"}]],b={INITIAL:[8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],xu:[0,1,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],x:[0,1,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u_class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]},m={type:"$",value:""};v={initString:function(e){return this._string=e,this._cursor=0,this._states=["INITIAL"],this._tokensQueue=[],this._currentLine=1,this._currentColumn=0,this._currentLineBeginOffset=0,this._tokenStartOffset=0,this._tokenEndOffset=0,this._tokenStartLine=1,this._tokenEndLine=1,this._tokenStartColumn=0,this._tokenEndColumn=0,this},getStates:function(){return this._states},getCurrentState:function(){return this._states[this._states.length-1]},pushState:function(e){this._states.push(e)},begin:function(e){this.pushState(e)},popState:function(){return this._states.length>1?this._states.pop():this._states[0]},getNextToken:function(){if(this._tokensQueue.length>0)return this.onToken(this._toToken(this._tokensQueue.shift()));if(!this.hasMoreTokens())return this.onToken(m);for(var e=this._string.slice(this._cursor),u=b[this.getCurrentState()],r=0;r<u.length;r++){var d=u[r],a=p[d],s=this._match(e,a[0]);if(""===e&&""===s&&this._cursor++,null!==s){(t=s).length;var i=a[1].call(this);if(!i)return this.getNextToken();if(Array.isArray(i)){var f,o=i.slice(1);i=i[0],o.length>0&&(f=this._tokensQueue).unshift.apply(f,n(o))}return this.onToken(this._toToken(i,t))}}if(this.isEOF())return this._cursor++,m;this.throwUnexpectedToken(e[0],this._currentLine,this._currentColumn)},throwUnexpectedToken:function(e,u,r){var n=this._string.split("\n")[u-1],t="";throw n&&(t="\n\n"+n+"\n"+" ".repeat(r)+"^\n"),new SyntaxError(t+'Unexpected token: "'+e+'" at '+u+":"+r+".")},getCursor:function(){return this._cursor},getCurrentLine:function(){return this._currentLine},getCurrentColumn:function(){return this._currentColumn},_captureLocation:function(e){var u=/\n/g;this._tokenStartOffset=this._cursor,this._tokenStartLine=this._currentLine,this._tokenStartColumn=this._tokenStartOffset-this._currentLineBeginOffset;for(var r=void 0;null!==(r=u.exec(e));)this._currentLine++,this._currentLineBeginOffset=this._tokenStartOffset+r.index+1;this._tokenEndOffset=this._cursor+e.length,this._tokenEndLine=this._currentLine,this._tokenEndColumn=this._currentColumn=this._tokenEndOffset-this._currentLineBeginOffset},_toToken:function(e){return{type:e,value:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",startOffset:this._tokenStartOffset,endOffset:this._tokenEndOffset,startLine:this._tokenStartLine,endLine:this._tokenEndLine,startColumn:this._tokenStartColumn,endColumn:this._tokenEndColumn}},isEOF:function(){return this._cursor===this._string.length},hasMoreTokens:function(){return this._cursor<=this._string.length},_match:function(e,u){var r=e.match(u);return r?(this._captureLocation(r[0]),this._cursor+=r[0].length,r[0]):null},onToken:function(e){return e}},d.lexer=v,d.tokenizer=v,d.options={captureLocations:!0};var h={setOptions:function(e){return d.options=e,this},getOptions:function(){return d.options},parse:function(e,u){if(!v)throw new Error("Tokenizer instance wasn't specified.");v.initString(e);var r=d.options;u&&(d.options=Object.assign({},d.options,u)),h.onParseBegin(e,v,d.options),l.length=0,l.push(0);var i=v.getNextToken(),p=null;do{i||(d.options=r,L());var b=l[l.length-1],m=o[i.type];c[b].hasOwnProperty(m)||(d.options=r,N(i));var y=c[b][m];if("s"===y[0]){var g=null;d.options.captureLocations&&(g={startOffset:i.startOffset,endOffset:i.endOffset,startLine:i.startLine,endLine:i.endLine,startColumn:i.startColumn,endColumn:i.endColumn}),p=this.onShift(i),l.push({symbol:o[p.type],semanticValue:p.value,loc:g},Number(y.slice(1))),i=v.getNextToken()}else if("r"===y[0]){var C=y.slice(1),B=f[C],_="function"==typeof B[2],A=_?[]:null,x=_&&d.options.captureLocations?[]:null;if(0!==B[1])for(var j=B[1];j-- >0;){l.pop();var w=l.pop();_&&(A.unshift(w.semanticValue),x&&x.unshift(w.loc))}var S={symbol:B[0]};if(_){t=p?p.value:null,p&&p.value.length;var k=null!==x?A.concat(x):A;B[2].apply(B,n(k)),S.semanticValue=a,x&&(S.loc=s)}var P=l[l.length-1],E=B[0];l.push(S,c[P][E])}else if("acc"===y){l.pop();var D=l.pop();return(1!==l.length||0!==l[0]||v.hasMoreTokens())&&(d.options=r,N(i)),D.hasOwnProperty("semanticValue")?(d.options=r,h.onParseEnd(D.semanticValue),D.semanticValue):(h.onParseEnd(),d.options=r,!0)}}while(v.hasMoreTokens()||l.length>1)},setTokenizer:function(e){return v=e,h},getTokenizer:function(){return v},onParseBegin:function(e,u,r){},onParseEnd:function(e){},onShift:function(e){return e}},y=0,g={},C="";function B(e){var u=e.match(/\d+/g).map(Number);if(Number.isFinite(u[1])&&u[1]<u[0])throw new SyntaxError("Numbers out of order in "+e+" quantifier");return u}function _(e,u){if("control"===e.kind||"control"===u.kind||!isNaN(e.codePoint)&&!isNaN(u.codePoint)&&e.codePoint>u.codePoint)throw new SyntaxError("Range "+e.value+"-"+u.value+" out of order in character class")}h.onParseBegin=function(e,u){C=e,y=0,g={};var r=e.lastIndexOf("/"),n=e.slice(r);n.includes("x")&&n.includes("u")?u.pushState("xu"):(n.includes("x")&&u.pushState("x"),n.includes("u")&&u.pushState("u"))},h.onShift=function(e){return"L_PAREN"!==e.type&&"NAMED_CAPTURE_GROUP"!==e.type||(e.value=new String(e.value),e.value.groupNumber=++y),e};var A=r(37047);function x(e,u,r){var n=void 0,t=void 0;switch(u){case"decimal":t=Number(e.slice(1)),n=String.fromCodePoint(t);break;case"oct":t=parseInt(e.slice(1),8),n=String.fromCodePoint(t);break;case"hex":case"unicode":if(e.lastIndexOf("\\u")>0){var d=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,t=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){t=!0,d=e}finally{try{!n&&s.return&&s.return()}finally{if(t)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(e.split("\\u").slice(1),2),a=d[0],s=d[1];t=1024*((a=parseInt(a,16))-55296)+((s=parseInt(s,16))-56320)+65536,n=String.fromCodePoint(t)}else{var i=e.slice(2).replace("{","");if((t=parseInt(i,16))>1114111)throw new SyntaxError("Bad character escape sequence: "+e);n=String.fromCodePoint(t)}break;case"meta":switch(e){case"\\t":t=(n="\t").codePointAt(0);break;case"\\n":t=(n="\n").codePointAt(0);break;case"\\r":t=(n="\r").codePointAt(0);break;case"\\v":t=(n="\v").codePointAt(0);break;case"\\f":t=(n="\f").codePointAt(0);break;case"\\b":t=(n="\b").codePointAt(0);case"\\0":n="\0",t=0;case".":n=".",t=NaN;break;default:t=NaN}break;case"simple":t=(n=e).codePointAt(0)}return T({type:"Char",value:e,kind:u,symbol:n,codePoint:t},r)}var j="gimsuxy";function w(e){var u=new Set,r=!0,n=!1,t=void 0;try{for(var d,a=e[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var s=d.value;if(u.has(s)||!j.includes(s))throw new SyntaxError("Invalid flags: "+e);u.add(s)}}catch(e){n=!0,t=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw t}}return e.split("").sort().join("")}var S=/^\\u[0-9a-fA-F]{4}/,k=/^\\u\{[0-9a-fA-F]{1,}\}/,P=/\\u\{[0-9a-fA-F]{1,}\}/;function E(e,u){if(P.test(e)&&"u"!==u&&"xu"!==u&&"u_class"!==u)throw new SyntaxError('invalid group Unicode name "'+e+'", use `u` flag.');return e}var D=/\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/;function O(e){return e.replace(new RegExp(D,"g"),(function(e,u,r,n,t,d,a){return u?String.fromCodePoint(parseInt(u,16),parseInt(r,16)):n?String.fromCodePoint(parseInt(n,16)):t?String.fromCodePoint(parseInt(t,16)):d?String.fromCodePoint(parseInt(d,16)):a?String.fromCodePoint(parseInt(a,16)):e}))}function T(e,u){return d.options.captureLocations&&(e.loc={source:C.slice(u.startOffset,u.endOffset),start:{line:u.startLine,column:u.startColumn,offset:u.startOffset},end:{line:u.endLine,column:u.endColumn,offset:u.endOffset}}),e}function R(e,u){return d.options.captureLocations?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:null}function N(e){"$"===e.type&&L(),v.throwUnexpectedToken(e.value,e.startLine,e.startColumn)}function L(){!function(){throw new SyntaxError("Unexpected end of input.")}()}e.exports=h},23810:(e,u,r)=>{"use strict";var n=r(97e3),t=n.parse.bind(n);n.parse=function(e,u){return t(""+e,u)},n.setOptions({captureLocations:!1}),e.exports=n},37047:e=>{"use strict";var u={General_Category:"gc",Script:"sc",Script_Extensions:"scx"},r=f(u),n={ASCII:"ASCII",ASCII_Hex_Digit:"AHex",Alphabetic:"Alpha",Any:"Any",Assigned:"Assigned",Bidi_Control:"Bidi_C",Bidi_Mirrored:"Bidi_M",Case_Ignorable:"CI",Cased:"Cased",Changes_When_Casefolded:"CWCF",Changes_When_Casemapped:"CWCM",Changes_When_Lowercased:"CWL",Changes_When_NFKC_Casefolded:"CWKCF",Changes_When_Titlecased:"CWT",Changes_When_Uppercased:"CWU",Dash:"Dash",Default_Ignorable_Code_Point:"DI",Deprecated:"Dep",Diacritic:"Dia",Emoji:"Emoji",Emoji_Component:"Emoji_Component",Emoji_Modifier:"Emoji_Modifier",Emoji_Modifier_Base:"Emoji_Modifier_Base",Emoji_Presentation:"Emoji_Presentation",Extended_Pictographic:"Extended_Pictographic",Extender:"Ext",Grapheme_Base:"Gr_Base",Grapheme_Extend:"Gr_Ext",Hex_Digit:"Hex",IDS_Binary_Operator:"IDSB",IDS_Trinary_Operator:"IDST",ID_Continue:"IDC",ID_Start:"IDS",Ideographic:"Ideo",Join_Control:"Join_C",Logical_Order_Exception:"LOE",Lowercase:"Lower",Math:"Math",Noncharacter_Code_Point:"NChar",Pattern_Syntax:"Pat_Syn",Pattern_White_Space:"Pat_WS",Quotation_Mark:"QMark",Radical:"Radical",Regional_Indicator:"RI",Sentence_Terminal:"STerm",Soft_Dotted:"SD",Terminal_Punctuation:"Term",Unified_Ideograph:"UIdeo",Uppercase:"Upper",Variation_Selector:"VS",White_Space:"space",XID_Continue:"XIDC",XID_Start:"XIDS"},t=f(n),d={Cased_Letter:"LC",Close_Punctuation:"Pe",Connector_Punctuation:"Pc",Control:["Cc","cntrl"],Currency_Symbol:"Sc",Dash_Punctuation:"Pd",Decimal_Number:["Nd","digit"],Enclosing_Mark:"Me",Final_Punctuation:"Pf",Format:"Cf",Initial_Punctuation:"Pi",Letter:"L",Letter_Number:"Nl",Line_Separator:"Zl",Lowercase_Letter:"Ll",Mark:["M","Combining_Mark"],Math_Symbol:"Sm",Modifier_Letter:"Lm",Modifier_Symbol:"Sk",Nonspacing_Mark:"Mn",Number:"N",Open_Punctuation:"Ps",Other:"C",Other_Letter:"Lo",Other_Number:"No",Other_Punctuation:"Po",Other_Symbol:"So",Paragraph_Separator:"Zp",Private_Use:"Co",Punctuation:["P","punct"],Separator:"Z",Space_Separator:"Zs",Spacing_Mark:"Mc",Surrogate:"Cs",Symbol:"S",Titlecase_Letter:"Lt",Unassigned:"Cn",Uppercase_Letter:"Lu"},a=f(d),s={Adlam:"Adlm",Ahom:"Ahom",Anatolian_Hieroglyphs:"Hluw",Arabic:"Arab",Armenian:"Armn",Avestan:"Avst",Balinese:"Bali",Bamum:"Bamu",Bassa_Vah:"Bass",Batak:"Batk",Bengali:"Beng",Bhaiksuki:"Bhks",Bopomofo:"Bopo",Brahmi:"Brah",Braille:"Brai",Buginese:"Bugi",Buhid:"Buhd",Canadian_Aboriginal:"Cans",Carian:"Cari",Caucasian_Albanian:"Aghb",Chakma:"Cakm",Cham:"Cham",Cherokee:"Cher",Common:"Zyyy",Coptic:["Copt","Qaac"],Cuneiform:"Xsux",Cypriot:"Cprt",Cyrillic:"Cyrl",Deseret:"Dsrt",Devanagari:"Deva",Dogra:"Dogr",Duployan:"Dupl",Egyptian_Hieroglyphs:"Egyp",Elbasan:"Elba",Ethiopic:"Ethi",Georgian:"Geor",Glagolitic:"Glag",Gothic:"Goth",Grantha:"Gran",Greek:"Grek",Gujarati:"Gujr",Gunjala_Gondi:"Gong",Gurmukhi:"Guru",Han:"Hani",Hangul:"Hang",Hanifi_Rohingya:"Rohg",Hanunoo:"Hano",Hatran:"Hatr",Hebrew:"Hebr",Hiragana:"Hira",Imperial_Aramaic:"Armi",Inherited:["Zinh","Qaai"],Inscriptional_Pahlavi:"Phli",Inscriptional_Parthian:"Prti",Javanese:"Java",Kaithi:"Kthi",Kannada:"Knda",Katakana:"Kana",Kayah_Li:"Kali",Kharoshthi:"Khar",Khmer:"Khmr",Khojki:"Khoj",Khudawadi:"Sind",Lao:"Laoo",Latin:"Latn",Lepcha:"Lepc",Limbu:"Limb",Linear_A:"Lina",Linear_B:"Linb",Lisu:"Lisu",Lycian:"Lyci",Lydian:"Lydi",Mahajani:"Mahj",Makasar:"Maka",Malayalam:"Mlym",Mandaic:"Mand",Manichaean:"Mani",Marchen:"Marc",Medefaidrin:"Medf",Masaram_Gondi:"Gonm",Meetei_Mayek:"Mtei",Mende_Kikakui:"Mend",Meroitic_Cursive:"Merc",Meroitic_Hieroglyphs:"Mero",Miao:"Plrd",Modi:"Modi",Mongolian:"Mong",Mro:"Mroo",Multani:"Mult",Myanmar:"Mymr",Nabataean:"Nbat",New_Tai_Lue:"Talu",Newa:"Newa",Nko:"Nkoo",Nushu:"Nshu",Ogham:"Ogam",Ol_Chiki:"Olck",Old_Hungarian:"Hung",Old_Italic:"Ital",Old_North_Arabian:"Narb",Old_Permic:"Perm",Old_Persian:"Xpeo",Old_Sogdian:"Sogo",Old_South_Arabian:"Sarb",Old_Turkic:"Orkh",Oriya:"Orya",Osage:"Osge",Osmanya:"Osma",Pahawh_Hmong:"Hmng",Palmyrene:"Palm",Pau_Cin_Hau:"Pauc",Phags_Pa:"Phag",Phoenician:"Phnx",Psalter_Pahlavi:"Phlp",Rejang:"Rjng",Runic:"Runr",Samaritan:"Samr",Saurashtra:"Saur",Sharada:"Shrd",Shavian:"Shaw",Siddham:"Sidd",SignWriting:"Sgnw",Sinhala:"Sinh",Sogdian:"Sogd",Sora_Sompeng:"Sora",Soyombo:"Soyo",Sundanese:"Sund",Syloti_Nagri:"Sylo",Syriac:"Syrc",Tagalog:"Tglg",Tagbanwa:"Tagb",Tai_Le:"Tale",Tai_Tham:"Lana",Tai_Viet:"Tavt",Takri:"Takr",Tamil:"Taml",Tangut:"Tang",Telugu:"Telu",Thaana:"Thaa",Thai:"Thai",Tibetan:"Tibt",Tifinagh:"Tfng",Tirhuta:"Tirh",Ugaritic:"Ugar",Vai:"Vaii",Warang_Citi:"Wara",Yi:"Yiii",Zanabazar_Square:"Zanb"},i=f(s);function f(e){var u={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(Array.isArray(n))for(var t=0;t<n.length;t++)u[n[t]]=r;else u[n]=r}return u}function o(e){return d.hasOwnProperty(e)||a.hasOwnProperty(e)}function c(e){return s.hasOwnProperty(e)||i.hasOwnProperty(e)}e.exports={isAlias:function(e){return r.hasOwnProperty(e)||t.hasOwnProperty(e)},isValidName:function(e){return u.hasOwnProperty(e)||r.hasOwnProperty(e)||n.hasOwnProperty(e)||t.hasOwnProperty(e)},isValidValue:function(e,u){return function(e){return"General_Category"===e||"gc"==e}(e)?o(u):!!function(e){return"Script"===e||"Script_Extensions"===e||"sc"===e||"scx"===e}(e)&&c(u)},isGeneralCategoryValue:o,isScriptCategoryValue:c,isBinaryPropertyName:function(e){return n.hasOwnProperty(e)||t.hasOwnProperty(e)},getCanonicalName:function(e){return r.hasOwnProperty(e)?r[e]:t.hasOwnProperty(e)?t[e]:null},getCanonicalValue:function(e){return a.hasOwnProperty(e)?a[e]:i.hasOwnProperty(e)?i[e]:t.hasOwnProperty(e)?t[e]:null},NON_BINARY_PROP_NAMES_TO_ALIASES:u,NON_BINARY_ALIASES_TO_PROP_NAMES:r,BINARY_PROP_NAMES_TO_ALIASES:n,BINARY_ALIASES_TO_PROP_NAMES:t,GENERAL_CATEGORY_VALUE_TO_ALIASES:d,GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES:a,SCRIPT_VALUE_TO_ALIASES:s,SCRIPT_VALUE_ALIASES_TO_VALUE:i}},54676:(e,u,r)=>{"use strict";var n=r(9182),t=r(20042),d=r(63072),a=r(23810),s=r(2003),i=r(29171),f=r(36734),o=r(51537).RegExpTree,c={parser:a,fa:f,TransformResult:s.TransformResult,parse:function(e,u){return a.parse(""+e,u)},traverse:function(e,u,r){return i.traverse(e,u,r)},transform:function(e,u){return s.transform(e,u)},generate:function(e){return t.generate(e)},toRegExp:function(e){var u=this.compatTranspile(e);return new RegExp(u.getSource(),u.getFlags())},optimize:function(e,u){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).blacklist;return d.optimize(e,{whitelist:u,blacklist:r})},compatTranspile:function(e,u){return n.transform(e,u)},exec:function(e,u){if("string"==typeof e){var r=this.compatTranspile(e),n=r.getExtra();e=n.namedCapturingGroups?new o(r.toRegExp(),{flags:r.getFlags(),source:r.getSource(),groups:n.namedCapturingGroups}):r.toRegExp()}return e.exec(u)}};e.exports=c},2003:(e,u,r)=>{"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),t=r(20042),d=r(23810),a=r(29171),s=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._ast=u,this._source=null,this._string=null,this._regexp=null,this._extra=r}return n(e,[{key:"getAST",value:function(){return this._ast}},{key:"setExtra",value:function(e){this._extra=e}},{key:"getExtra",value:function(){return this._extra}},{key:"toRegExp",value:function(){return this._regexp||(this._regexp=new RegExp(this.getSource(),this._ast.flags)),this._regexp}},{key:"getSource",value:function(){return this._source||(this._source=t.generate(this._ast.body)),this._source}},{key:"getFlags",value:function(){return this._ast.flags}},{key:"toString",value:function(){return this._string||(this._string=t.generate(this._ast)),this._string}}]),e}();e.exports={TransformResult:s,transform:function(e,u){var r=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(r=d.parse(e,{captureLocations:!0})),a.traverse(r,u),new s(r)}}},33166:e=>{"use strict";e.exports={disjunctionToList:function e(u){if("Disjunction"!==u.type)throw new TypeError('Expected "Disjunction" node, got "'+u.type+'"');var r=[];return u.left&&"Disjunction"===u.left.type?r.push.apply(r,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(e(u.left)).concat([u.right])):r.push(u.left,u.right),r},listToDisjunction:function(e){return e.reduce((function(e,u){return{type:"Disjunction",left:e,right:u}}))},increaseQuantifierByOne:function(e){"*"===e.kind?e.kind="+":"+"===e.kind?(e.kind="Range",e.from=2,delete e.to):"?"===e.kind?(e.kind="Range",e.from=1,e.to=2):"Range"===e.kind&&(e.from+=1,e.to&&(e.to+=1))}}},29171:(e,u,r)=>{"use strict";var n=r(41059);e.exports={traverse:function(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{asNodes:!1};function t(e,u,r,t){var d=n.getForNode(u);return n.getForNode(e,d,r,t)}Array.isArray(u)||(u=[u]),u=u.filter((function(u){return"function"!=typeof u.shouldRun||u.shouldRun(e)})),n.initRegistry(),u.forEach((function(u){"function"==typeof u.init&&u.init(e)})),function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.pre,t=u.post,d=u.skipProperty;!function e(u,a,s,i){if(u&&"string"==typeof u.type){var f=void 0;if(r&&(f=r(u,a,s,i)),!1!==f)for(var o in a&&a[s]&&(u=isNaN(i)?a[s]:a[s][i]),u)if(u.hasOwnProperty(o)){if(d?d(o,u):"$"===o[0])continue;var c=u[o];if(Array.isArray(c)){var l=0;for(n.traversingIndexStack.push(l);l<c.length;)e(c[l],u,o,l),l=n.updateTraversingIndex(1);n.traversingIndexStack.pop()}else e(c,u,o)}t&&t(u,a,s,i)}}(e,null)}(e,{pre:function(e,n,d,a){var s=void 0;r.asNodes||(s=t(e,n,d,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value;if("function"==typeof v["*"])if(s){if(!s.isRemoved()&&!1===v["*"](s))return!1}else v["*"](e,n,d,a);var p=void 0;if("function"==typeof v[e.type]?p=v[e.type]:"object"==typeof v[e.type]&&"function"==typeof v[e.type].pre&&(p=v[e.type].pre),p)if(s){if(!s.isRemoved()&&!1===p.call(v,s))return!1}else p.call(v,e,n,d,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}},post:function(e,n,d,a){if(e){var s=void 0;r.asNodes||(s=t(e,n,d,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value,p=void 0;if("object"==typeof v[e.type]&&"function"==typeof v[e.type].post&&(p=v[e.type].post),p)if(s){if(!s.isRemoved()&&!1===p.call(v,s))return!1}else p.call(v,e,n,d,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}}},skipProperty:function(e){return"loc"===e}})}}},41059:e=>{"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r="expressions",n="expression",t=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,t=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.node=u,this.parentPath=r,this.parent=r?r.node:null,this.property=n,this.index=t}return u(e,[{key:"_enforceProp",value:function(e){if(!this.node.hasOwnProperty(e))throw new Error("Node of type "+this.node.type+" doesn't have \""+e+'" collection.')}},{key:"setChild",value:function(u){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=void 0;return null!=t?(d||(d=r),this._enforceProp(d),this.node[d][t]=u,a=e.getForNode(u,this,d,t)):(d||(d=n),this._enforceProp(d),this.node[d]=u,a=e.getForNode(u,this,d,null)),a}},{key:"appendChild",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u||(u=r),this._enforceProp(u);var n=this.node[u].length;return this.setChild(e,n,u)}},{key:"insertChildAt",value:function(u,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;this._enforceProp(t),this.node[t].splice(n,0,u),n<=e.getTraversingIndex()&&e.updateTraversingIndex(1),this._rebuildIndex(this.node,t)}},{key:"remove",value:function(){if(!this.isRemoved()&&(e.registry.delete(this.node),this.node=null,this.parent)){if(null!==this.index)return this.parent[this.property].splice(this.index,1),this.index<=e.getTraversingIndex()&&e.updateTraversingIndex(-1),this._rebuildIndex(this.parent,this.property),this.index=null,void(this.property=null);delete this.parent[this.property],this.property=null}}},{key:"_rebuildIndex",value:function(u,r){for(var n=e.getForNode(u),t=0;t<u[r].length;t++)e.getForNode(u[r][t],n,r,t).index=t}},{key:"isRemoved",value:function(){return null===this.node}},{key:"replace",value:function(u){return e.registry.delete(this.node),this.node=u,this.parent?(null!==this.index?this.parent[this.property][this.index]=u:this.parent[this.property]=u,e.getForNode(u,this.parentPath,this.property,this.index)):null}},{key:"update",value:function(e){Object.assign(this.node,e)}},{key:"getParent",value:function(){return this.parentPath}},{key:"getChild",value:function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.node.expressions?e.getForNode(this.node.expressions[u],this,r,u):this.node.expression&&0==u?e.getForNode(this.node.expression,this,n):null}},{key:"hasEqualSource",value:function(e){return JSON.stringify(this.node,d)===JSON.stringify(e.node,d)}},{key:"jsonEncode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.format,r=e.useLoc;return JSON.stringify(this.node,r?null:d,u)}},{key:"getPreviousSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index-1],e.getForNode(this.parent),this.property,this.index-1):null}},{key:"getNextSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index+1],e.getForNode(this.parent),this.property,this.index+1):null}}],[{key:"getForNode",value:function(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,t=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;if(!u)return null;e.registry.has(u)||e.registry.set(u,new e(u,r,n,-1==t?null:t));var d=e.registry.get(u);return null!==r&&(d.parentPath=r,d.parent=d.parentPath.node),null!==n&&(d.property=n),t>=0&&(d.index=t),d}},{key:"initRegistry",value:function(){e.registry||(e.registry=new Map),e.registry.clear()}},{key:"updateTraversingIndex",value:function(u){return e.traversingIndexStack[e.traversingIndexStack.length-1]+=u}},{key:"getTraversingIndex",value:function(){return e.traversingIndexStack[e.traversingIndexStack.length-1]}}]),e}();function d(e,u){if("loc"!==e)return u}t.initRegistry(),t.traversingIndexStack=[],e.exports=t},1379:e=>{"use strict";e.exports=function e(u){if(null===u||"object"!=typeof u)return u;var r=void 0;for(var n in r=Array.isArray(u)?[]:{},u)r[n]=e(u[n]);return r}},34999:(e,u,r)=>{"use strict";e.exports=r(54676)},18411:()=>{},73909:e=>{"use strict";e.exports=JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.17.0","date":"2023-07-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.18.0","date":"2023-09-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.19.0","date":"2023-11-29","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.20.0","date":"2024-03-26","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.5.0","date":"2023-07-19","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.6.0","date":"2023-08-23","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.7.0","date":"2023-09-18","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.8.0","date":"2023-09-28","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.9.0","date":"2023-10-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.10.0","date":"2023-11-22","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.11.0","date":"2024-01-09","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.12.0","date":"2024-03-26","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.13.0","date":"2024-05-07","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.14.0","date":"2024-05-28","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.15.0","date":"2024-06-20","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.16.0","date":"2024-07-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.17.0","date":"2024-08-21","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.18.0","date":"2024-10-03","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"21.0.0","date":"2023-10-17","lts":false,"security":false,"v8":"11.8.172.13"},{"name":"nodejs","version":"21.1.0","date":"2023-10-24","lts":false,"security":false,"v8":"11.8.172.15"},{"name":"nodejs","version":"21.2.0","date":"2023-11-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.3.0","date":"2023-11-30","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.4.0","date":"2023-12-05","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.5.0","date":"2023-12-19","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.6.0","date":"2024-01-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.7.0","date":"2024-03-06","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"22.0.0","date":"2024-04-24","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.1.0","date":"2024-05-02","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.2.0","date":"2024-05-15","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.3.0","date":"2024-06-11","lts":false,"security":false,"v8":"12.4.254.20"},{"name":"nodejs","version":"22.4.0","date":"2024-07-02","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.5.0","date":"2024-07-17","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.6.0","date":"2024-08-06","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.7.0","date":"2024-08-21","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.8.0","date":"2024-09-03","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.9.0","date":"2024-09-17","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.10.0","date":"2024-10-16","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.11.0","date":"2024-10-29","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.12.0","date":"2024-12-02","lts":"Jod","security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"23.0.0","date":"2024-10-16","lts":false,"security":false,"v8":"12.9.202.26"},{"name":"nodejs","version":"23.1.0","date":"2024-10-24","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.2.0","date":"2024-11-11","lts":false,"security":false,"v8":"12.9.202.28"},{"name":"nodejs","version":"23.3.0","date":"2024-11-20","lts":false,"security":false,"v8":"12.9.202.28"}]')},93147:e=>{"use strict";e.exports=JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":"Iron"},"v21":{"start":"2023-10-17","maintenance":"2024-04-01","end":"2024-06-01"},"v22":{"start":"2024-04-24","lts":"2024-10-29","maintenance":"2025-10-21","end":"2027-04-30","codename":"Jod"},"v23":{"start":"2024-10-16","maintenance":"2025-04-01","end":"2025-06-01"},"v24":{"start":"2025-04-22","lts":"2025-10-28","maintenance":"2026-10-20","end":"2028-04-30","codename":""}}')}},r={};function n(e){var t=r[e];if(void 0!==t)return t.exports;var d=r[e]={id:e,loaded:!1,exports:{}};return u[e].call(d.exports,d,d.exports,n),d.loaded=!0,d.exports}n.m=u,e=[],n.O=(u,r,t,d)=>{if(!r){var a=1/0;for(o=0;o<e.length;o++){r=e[o][0],t=e[o][1],d=e[o][2];for(var s=!0,i=0;i<r.length;i++)(!1&d||a>=d)&&Object.keys(n.O).every((e=>n.O[e](r[i])))?r.splice(i--,1):(s=!1,d<a&&(a=d));if(s){e.splice(o--,1);var f=t();void 0!==f&&(u=f)}}return u}d=d||0;for(var o=e.length;o>0&&e[o-1][2]>d;o--)e[o]=e[o-1];e[o]=[r,t,d]},n.n=e=>{var u=e&&e.__esModule?()=>e.default:()=>e;return n.d(u,{a:u}),u},n.d=(e,u)=>{for(var r in u)n.o(u,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:u[r]})},n.e=()=>Promise.resolve(),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,u)=>Object.prototype.hasOwnProperty.call(e,u),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=7843,(()=>{n.b=document.baseURI||self.location.href;var e={7843:0};n.O.j=u=>0===e[u];var u=(u,r)=>{var t,d,a=r[0],s=r[1],i=r[2],f=0;if(a.some((u=>0!==e[u]))){for(t in s)n.o(s,t)&&(n.m[t]=s[t]);if(i)var o=i(n)}for(u&&u(r);f<a.length;f++)d=a[f],n.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return n.O(o)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(u.bind(null,0)),r.push=u.bind(null,r.push.bind(r))})(),n.nc=void 0;var t=n.O(void 0,[4208],(()=>n(14813)));t=n.O(t)})(); +//# sourceMappingURL=core-unsupported-browser.js.map?v=bbe76fa9ab856ffcd9c3
\ No newline at end of file diff --git a/dist/core-unsupported-browser.js.license b/dist/core-unsupported-browser.js.license index 0017dfdac4b..c5c29025d11 100644 --- a/dist/core-unsupported-browser.js.license +++ b/dist/core-unsupported-browser.js.license @@ -68,13 +68,13 @@ This file is generated from multiple sources. Included packages: - version: 1.5.1 - license: MIT - browserslist - - version: 4.23.3 + - version: 4.24.4 - license: MIT - call-bind - version: 1.0.7 - license: MIT - caniuse-lite - - version: 1.0.30001647 + - version: 1.0.30001700 - license: CC-BY-4.0 - console-browserify - version: 1.2.0 @@ -92,7 +92,7 @@ This file is generated from multiple sources. Included packages: - version: 3.2.4 - license: (MPL-2.0 OR Apache-2.0) - electron-to-chromium - - version: 1.5.4 + - version: 1.5.103 - license: ISC - es-define-property - version: 1.0.0 @@ -155,7 +155,7 @@ This file is generated from multiple sources. Included packages: - version: 6.0.3 - license: MIT - node-releases - - version: 2.0.18 + - version: 2.0.19 - license: MIT - object-is - version: 1.1.6 diff --git a/dist/core-unsupported-browser.js.map b/dist/core-unsupported-browser.js.map index db41b101b32..2d3a417b495 100644 --- a/dist/core-unsupported-browser.js.map +++ b/dist/core-unsupported-browser.js.map @@ -1 +1 @@ -{"version":3,"file":"core-unsupported-browser.js?v=f5e73a4508449ab5abfa","mappings":"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E,GAAM,KAAM,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,KAAM,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAA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AC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAM,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,QAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GA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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?7880","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Web.vue?2edf","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=template&id=704f1c73","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?25ee","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?d53c","webpack:///nextcloud/core/src/unsupported-browser.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=style&index=0&id=7e9eda06&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n * GNOME Web (X11) is based on WebKit and should be detected as Safari\n */\n {\n regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB && diffA === \"\" && diffB === \"\") {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content-unsupported-browser guest-box\"},[_c('NcEmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Web')]},proxy:true},{key:\"action\",fn:function(){return [_c('div',[_c('h2',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticClass:\"content-unsupported-browser__continue\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.forceBrowsing}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Continue with this unsupported browser'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"content-unsupported-browser__list\"},[_c('h3',[_vm._v(_vm._s(_vm.t('core', 'Supported versions')))]),_vm._v(\" \"),_vm._l((_vm.formattedBrowsersList),function(browser){return _c('li',{key:browser},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(browser)+\"\\n\\t\\t\\t\\t\")])})],2)]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'This browser is not supported'))+\"\\n\\t\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon web-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"WebIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Web.vue?vue&type=template&id=704f1c73\"\nimport script from \"./Web.vue?vue&type=script&lang=js\"\nexport * from \"./Web.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon web-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"content-unsupported-browser guest-box\">\n\t\t<NcEmptyContent>\n\t\t\t{{ t('core', 'This browser is not supported') }}\n\t\t\t<template #icon>\n\t\t\t\t<Web />\n\t\t\t</template>\n\t\t\t<template #action>\n\t\t\t\t<div>\n\t\t\t\t\t<h2>\n\t\t\t\t\t\t{{ t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.') }}\n\t\t\t\t\t</h2>\n\t\t\t\t\t<NcButton class=\"content-unsupported-browser__continue\" type=\"primary\" @click=\"forceBrowsing\">\n\t\t\t\t\t\t{{ t('core', 'Continue with this unsupported browser') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\n\t\t\t\t<ul class=\"content-unsupported-browser__list\">\n\t\t\t\t\t<h3>{{ t('core', 'Supported versions') }}</h3>\n\t\t\t\t\t<li v-for=\"browser in formattedBrowsersList\" :key=\"browser\">\n\t\t\t\t\t\t{{ browser }}\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\n// eslint-disable-next-line n/no-extraneous-import\nimport { agents } from 'caniuse-lite/dist/unpacker/agents.js'\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\n\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport Web from 'vue-material-design-icons/Web.vue'\n\nimport { browserStorageKey } from '../utils/RedirectUnsupportedBrowsers.js'\nimport { supportedBrowsers } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nlogger.debug('Supported browsers', { supportedBrowsers })\n\nexport default {\n\tname: 'UnsupportedBrowser',\n\tcomponents: {\n\t\tWeb,\n\t\tNcButton,\n\t\tNcEmptyContent,\n\t},\n\n\tcomputed: {\n\t\tisMobile() {\n\t\t\treturn /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n\t\t},\n\n\t\t/**\n\t\t * Filter out or include mobile/desktop browsers depending\n\t\t * on the current user platform/device\n\t\t */\n\t\tfilteredSupportedBrowsers() {\n\t\t\treturn supportedBrowsers.filter(browser => {\n\t\t\t\tif (!browser) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tif (this.isMobile) {\n\t\t\t\t\treturn this.isMobileBrowser(browser)\n\t\t\t\t}\n\t\t\t\treturn !this.isMobileBrowser(browser)\n\t\t\t})\n\t\t},\n\n\t\tformattedBrowsersList() {\n\t\t\tconst list = {}\n\n\t\t\t// supportedBrowsers is generated by webpack at compilation time\n\t\t\tthis.filteredSupportedBrowsers.forEach(browser => {\n\t\t\t\tconst [id, version] = browser.split(' ')\n\t\t\t\tif (!list[id] || list[id] < parseFloat(version, 10)) {\n\t\t\t\t\tlist[id] = parseFloat(version, 10)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn Object.keys(list).map(id => {\n\t\t\t\tif (!agents[id]?.browser) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst version = list[id]\n\t\t\t\tconst name = agents[id]?.browser\n\t\t\t\treturn this.t('core', '{name} version {version} and above', {\n\t\t\t\t\tname, version,\n\t\t\t\t})\n\t\t\t}).filter(entry => entry !== null)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tn,\n\n\t\t// Set the flag allowing this browser and redirect to home\n\t\tforceBrowsing() {\n\t\t\tbrowserStorage.setItem(browserStorageKey, true)\n\n\t\t\t// Redirect if there is the data\n\t\t\tconst urlParams = new URLSearchParams(window.location.search)\n\t\t\tif (urlParams.has('redirect_url')) {\n\t\t\t\tlet redirectPath = Buffer.from(urlParams.get('redirect_url'), 'base64').toString() || '/'\n\n\t\t\t\t// remove index.php and double slashes\n\t\t\t\tredirectPath = redirectPath\n\t\t\t\t\t.replace('index.php', '')\n\t\t\t\t\t.replace(getRootUrl(), '')\n\t\t\t\t\t.replace(/\\/\\//g, '/')\n\n\t\t\t\t// if we have a valid redirect url, use it\n\t\t\t\tif (redirectPath.startsWith('/')) {\n\t\t\t\t\twindow.location = generateUrl(redirectPath)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// else redirect to root\n\t\t\twindow.location = generateUrl('/')\n\t\t},\n\n\t\t/**\n\t\t * Detect if the browserslist browser is a mobile one\n\t\t * https://github.com/browserslist/browserslist#query-composition\n\t\t *\n\t\t * @param {string} browser a valid browserlist browser. e.g `and_chr 90`\n\t\t */\n\t\tisMobileBrowser(browser) {\n\t\t\tbrowser = browser.toLowerCase()\n\t\t\treturn browser.includes('and_')\n\t\t\t\t|| browser.includes('android')\n\t\t\t\t|| browser.includes('ios_')\n\t\t\t\t|| browser.includes('mobile')\n\t\t\t\t|| browser.includes('_mob')\n\t\t\t\t|| browser.includes('samsung')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$spacing: 30px;\n\n.content-unsupported-browser {\n\tdisplay: flex;\n\tjustify-content: center;\n\twidth: 400px;\n\tmax-width: calc(90vw - 2 * $spacing);\n\tmargin: auto;\n\tpadding: $spacing;\n\n\t.empty-content {\n\t\tmargin: 0;\n\t\t&::v-deep .empty-content__icon {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t&__continue {\n\t\tdisplay: block;\n\t\tmargin: $spacing auto;\n\t}\n\n\t&__list {\n\t\tmargin-top: 2 * $spacing;\n\t\tmargin-bottom: $spacing;\n\t\tli {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=7e9eda06&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=7e9eda06&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnsupportedBrowser.vue?vue&type=template&id=7e9eda06&scoped=true\"\nimport script from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nimport style0 from \"./UnsupportedBrowser.vue?vue&type=style&index=0&id=7e9eda06&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e9eda06\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\n\nimport { browserStorageKey } from './utils/RedirectUnsupportedBrowsers.js'\nimport browserStorage from './services/BrowserStorageService.js'\nimport UnsupportedBrowser from './views/UnsupportedBrowser.vue'\n\n// If the ignore token is set, redirect\nif (browserStorage.getItem(browserStorageKey) === 'true') {\n\twindow.location = generateUrl('/')\n}\n\nexport default new Vue({\n\tel: '#unsupported-browser',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnsupportedBrowserRoot',\n\trender: h => h(UnsupportedBrowser),\n})\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseLatestFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseLatestFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n\n function parseLatestFloat(v) {\n return parseFloat(v.split('-')[1] || v)\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var iMax = data.released.length - 1\n while (iMax >= 0) {\n if (data.released[iMax] in features[name]) break\n iMax--\n }\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released[iMax]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115', 'firefox 128']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{K:0,E:0,F:0.0300576,G:0.0601152,A:0,B:0.541037,bC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"bC\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{bC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{\"1\":0.007426,\"2\":0.014852,\"3\":0.011139,\"4\":0.007426,\"5\":0.007426,\"6\":0.011139,\"7\":0.007426,\"8\":0.014852,\"9\":0.03713,C:0,L:0,M:0,H:0,N:0,O:0.003713,P:0.03713,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0.011139,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0.003713,r:0.007426,s:0.063121,t:0.007426,u:0.007426,AB:0.018565,BB:0.044556,CB:0.059408,DB:0.133668,EB:2.41716,FB:2.03844,D:0.007426},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"D\",\"\",\"\",\"\"],E:\"Edge\",F:{\"1\":1680825600,\"2\":1683158400,\"3\":1685664000,\"4\":1689897600,\"5\":1692576000,\"6\":1694649600,\"7\":1697155200,\"8\":1698969600,\"9\":1701993600,C:1438128000,L:1447286400,M:1470096000,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,AB:1706227200,BB:1708732800,CB:1711152000,DB:1713398400,EB:1715990400,FB:1718841600,D:1721865600},D:{C:\"ms\",L:\"ms\",M:\"ms\",H:\"ms\",N:\"ms\",O:\"ms\",P:\"ms\"}},C:{A:{\"0\":0,\"1\":0,\"2\":0.014852,\"3\":0,\"4\":0.367587,\"5\":0,\"6\":0.007426,\"7\":0.070547,\"8\":0,\"9\":0.007426,cC:0,DC:0,J:0.003713,GB:0,K:0,E:0,F:0,G:0,A:0,B:0.018565,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0.003713,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0.007426,aB:0.007426,bB:0.007426,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0.051982,jB:0.003713,kB:0.003713,lB:0,mB:0.018565,nB:0,oB:0,EC:0.003713,pB:0,FC:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0.014852,Q:0,I:0,R:0,GC:0,S:0,T:0,U:0,V:0,W:0,X:0.007426,Y:0,Z:0,a:0,b:0,c:0,d:0.003713,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0.007426,m:0.007426,n:0,o:0,p:0,q:0,r:0.003713,s:0.007426,t:0,u:0,AB:0.007426,BB:0.007426,CB:0.011139,DB:0.018565,EB:0.029704,FB:0.790869,D:0.794582,HC:0.007426,IC:0,JC:0,dC:0,eC:0,fC:0},B:\"moz\",C:[\"cC\",\"DC\",\"eC\",\"fC\",\"J\",\"GB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"HB\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"EC\",\"pB\",\"FC\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"Q\",\"I\",\"R\",\"GC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"D\",\"HC\",\"IC\",\"JC\",\"dC\"],E:\"Firefox\",F:{\"0\":1379376000,\"1\":1681171200,\"2\":1683590400,\"3\":1686009600,\"4\":1688428800,\"5\":1690848000,\"6\":1693267200,\"7\":1695686400,\"8\":1698105600,\"9\":1700524800,cC:1161648000,DC:1213660800,eC:1246320000,fC:1264032000,J:1300752000,GB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112000,O:1349740800,P:1353628800,HB:1357603200,v:1361232000,w:1364860800,x:1368489600,y:1372118400,z:1375747200,IB:1386633600,JB:1391472000,KB:1395100800,LB:1398729600,MB:1402358400,NB:1405987200,OB:1409616000,PB:1413244800,QB:1417392000,RB:1421107200,SB:1424736000,TB:1428278400,UB:1431475200,VB:1435881600,WB:1439251200,XB:1442880000,YB:1446508800,ZB:1450137600,aB:1453852800,bB:1457395200,cB:1461628800,dB:1465257600,eB:1470096000,fB:1474329600,gB:1479168000,hB:1485216000,iB:1488844800,jB:1492560000,kB:1497312000,lB:1502150400,mB:1506556800,nB:1510617600,oB:1516665600,EC:1520985600,pB:1525824000,FC:1529971200,qB:1536105600,rB:1540252800,sB:1544486400,tB:1548720000,uB:1552953600,vB:1558396800,wB:1562630400,xB:1567468800,yB:1571788800,zB:1575331200,\"0B\":1578355200,\"1B\":1581379200,\"2B\":1583798400,\"3B\":1586304000,\"4B\":1588636800,\"5B\":1591056000,\"6B\":1593475200,Q:1595894400,I:1598313600,R:1600732800,GC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752000,AB:1702944000,BB:1705968000,CB:1708387200,DB:1710806400,EB:1713225600,FB:1715644800,D:1718064000,HC:1720483200,IC:null,JC:null,dC:null}},D:{A:{\"0\":0,\"1\":0.044556,\"2\":0.096538,\"3\":0.092825,\"4\":0.029704,\"5\":0.189363,\"6\":0.107677,\"7\":0.081686,\"8\":0.066834,\"9\":0.133668,J:0,GB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0.003713,RB:0,SB:0,TB:0,UB:0.011139,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0.007426,eB:0.025991,fB:0.022278,gB:0.011139,hB:0,iB:0.003713,jB:0.007426,kB:0,lB:0,mB:0.011139,nB:0,oB:0.003713,EC:0,pB:0,FC:0.003713,qB:0,rB:0.003713,sB:0,tB:0,uB:0.022278,vB:0.003713,wB:0,xB:0.022278,yB:0.070547,zB:0.003713,\"0B\":0,\"1B\":0.011139,\"2B\":0.007426,\"3B\":0.007426,\"4B\":0.007426,\"5B\":0.029704,\"6B\":0.018565,Q:0.107677,I:0.011139,R:0.018565,S:0.033417,T:0.007426,U:0.011139,V:0.044556,W:0.070547,X:0.011139,Y:0.011139,Z:0.014852,a:0.059408,b:0.018565,c:0.025991,d:0.059408,e:0.011139,f:0.014852,g:0.018565,h:0.070547,i:0.03713,j:0.040843,k:0.055695,l:0.03713,m:0.167085,n:0.096538,o:0.014852,p:0.033417,q:0.033417,r:0.051982,s:1.4852,t:0.159659,u:0.040843,AB:0.211641,BB:0.181937,CB:0.278475,DB:0.983945,EB:10.1922,FB:6.28982,D:0.025991,HC:0.007426,IC:0,JC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"GB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"HB\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"EC\",\"pB\",\"FC\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"D\",\"HC\",\"IC\",\"JC\"],E:\"Chrome\",F:{\"0\":1357862400,\"1\":1680566400,\"2\":1682985600,\"3\":1685404800,\"4\":1689724800,\"5\":1692057600,\"6\":1694476800,\"7\":1696896000,\"8\":1698710400,\"9\":1701993600,J:1264377600,GB:1274745600,K:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,HB:1332892800,v:1337040000,w:1340668800,x:1343692800,y:1348531200,z:1352246400,IB:1361404800,JB:1364428800,KB:1369094400,LB:1374105600,MB:1376956800,NB:1384214400,OB:1389657600,PB:1392940800,QB:1397001600,RB:1400544000,SB:1405468800,TB:1409011200,UB:1412640000,VB:1416268800,WB:1421798400,XB:1425513600,YB:1429401600,ZB:1432080000,aB:1437523200,bB:1441152000,cB:1444780800,dB:1449014400,eB:1453248000,fB:1456963200,gB:1460592000,hB:1464134400,iB:1469059200,jB:1472601600,kB:1476230400,lB:1480550400,mB:1485302400,nB:1489017600,oB:1492560000,EC:1496707200,pB:1500940800,FC:1504569600,qB:1508198400,rB:1512518400,sB:1516752000,tB:1520294400,uB:1523923200,vB:1527552000,wB:1532390400,xB:1536019200,yB:1539648000,zB:1543968000,\"0B\":1548720000,\"1B\":1552348800,\"2B\":1555977600,\"3B\":1559606400,\"4B\":1564444800,\"5B\":1568073600,\"6B\":1571702400,Q:1575936000,I:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656000,r:1669680000,s:1673308800,t:1675728000,u:1678147200,AB:1705968000,BB:1708387200,CB:1710806400,DB:1713225600,EB:1715644800,FB:1718064000,D:1721174400,HC:null,IC:null,JC:null}},E:{A:{J:0,GB:0,K:0,E:0,F:0.003713,G:0.003713,A:0,B:0,C:0,L:0.007426,M:0.033417,H:0.007426,gC:0,KC:0,hC:0,iC:0,jC:0,kC:0,LC:0,\"7B\":0.007426,\"8B\":0.011139,lC:0.063121,mC:0.089112,nC:0.025991,MC:0.011139,NC:0.022278,\"9B\":0.033417,oC:0.241345,AC:0.029704,OC:0.044556,PC:0.03713,QC:0.089112,RC:0.033417,SC:0.055695,pC:0.33417,BC:0.025991,TC:0.055695,UC:0.066834,VC:0.07426,WC:0.360161,XC:1.48891,YC:0,CC:0.003713,qC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"gC\",\"KC\",\"J\",\"GB\",\"hC\",\"K\",\"iC\",\"E\",\"jC\",\"F\",\"G\",\"kC\",\"A\",\"LC\",\"B\",\"7B\",\"C\",\"8B\",\"L\",\"lC\",\"M\",\"mC\",\"H\",\"nC\",\"MC\",\"NC\",\"9B\",\"oC\",\"AC\",\"OC\",\"PC\",\"QC\",\"RC\",\"SC\",\"pC\",\"BC\",\"TC\",\"UC\",\"VC\",\"WC\",\"XC\",\"YC\",\"CC\",\"qC\"],E:\"Safari\",F:{gC:1205798400,KC:1226534400,J:1244419200,GB:1275868800,hC:1311120000,K:1343174400,iC:1382400000,E:1382400000,jC:1410998400,F:1413417600,G:1443657600,kC:1458518400,A:1474329600,LC:1490572800,B:1505779200,\"7B\":1522281600,C:1537142400,\"8B\":1553472000,L:1568851200,lC:1585008000,M:1600214400,mC:1619395200,H:1632096000,nC:1635292800,MC:1639353600,NC:1647216000,\"9B\":1652745600,oC:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432000,RC:1679875200,SC:1684368000,pC:1690156800,BC:1695686400,TC:1698192000,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null,qC:null}},F:{A:{\"0\":0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.003713,TB:0,UB:0,VB:0,WB:0.003713,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0.014852,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,Q:0,I:0,R:0,GC:0,S:0.007426,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.040843,f:0,g:0,h:0,i:0,j:0,k:0,l:0.044556,m:0,n:0,o:0,p:0,q:0.003713,r:0,s:0.497542,t:0.326744,u:0.048269,rC:0,sC:0,tC:0,uC:0,\"7B\":0,ZC:0,vC:0,\"8B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"G\",\"rC\",\"sC\",\"tC\",\"uC\",\"B\",\"7B\",\"ZC\",\"vC\",\"C\",\"8B\",\"H\",\"N\",\"O\",\"P\",\"HB\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"Q\",\"I\",\"R\",\"GC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"\",\"\",\"\"],E:\"Opera\",F:{\"0\":1413331200,G:1150761600,rC:1223424000,sC:1251763200,tC:1267488000,uC:1277942400,B:1292457600,\"7B\":1302566400,ZC:1309219200,vC:1323129600,C:1323129600,\"8B\":1352073600,H:1372723200,N:1377561600,O:1381104000,P:1386288000,HB:1390867200,v:1393891200,w:1399334400,x:1401753600,y:1405987200,z:1409616000,IB:1417132800,JB:1422316800,KB:1425945600,LB:1430179200,MB:1433808000,NB:1438646400,OB:1442448000,PB:1445904000,QB:1449100800,RB:1454371200,SB:1457308800,TB:1462320000,UB:1465344000,VB:1470096000,WB:1474329600,XB:1477267200,YB:1481587200,ZB:1486425600,aB:1490054400,bB:1494374400,cB:1498003200,dB:1502236800,eB:1506470400,fB:1510099200,gB:1515024000,hB:1517961600,iB:1521676800,jB:1525910400,kB:1530144000,lB:1534982400,mB:1537833600,nB:1543363200,oB:1548201600,pB:1554768000,qB:1561593600,rB:1566259200,sB:1570406400,tB:1573689600,uB:1578441600,vB:1583971200,wB:1587513600,xB:1592956800,yB:1595894400,zB:1600128000,\"0B\":1603238400,\"1B\":1613520000,\"2B\":1612224000,\"3B\":1616544000,\"4B\":1619568000,\"5B\":1623715200,\"6B\":1627948800,Q:1631577600,I:1633392000,R:1635984000,GC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000,q:1707264000,r:1710115200,s:1711497600,t:1716336000,u:1719273600},D:{G:\"o\",B:\"o\",C:\"o\",rC:\"o\",sC:\"o\",tC:\"o\",uC:\"o\",\"7B\":\"o\",ZC:\"o\",vC:\"o\",\"8B\":\"o\"}},G:{A:{F:0,KC:0,wC:0,aC:0.00284927,xC:0.00142463,yC:0.00854781,zC:0.00854781,\"0C\":0.00142463,\"1C\":0.00712317,\"2C\":0.0299173,\"3C\":0.00569854,\"4C\":0.0512868,\"5C\":0.108272,\"6C\":0.0128217,\"7C\":0.00997244,\"8C\":0.189476,\"9C\":0.00284927,AD:0.0185202,BD:0.00997244,CD:0.0370405,DD:0.105423,ED:0.112546,FD:0.0569854,MC:0.0612593,NC:0.0698071,\"9B\":0.0840534,GD:0.755056,AC:0.169531,OC:0.354734,PC:0.173805,QC:0.299173,RC:0.0641085,SC:0.126792,HD:1.01149,BC:0.103998,TC:0.165258,UC:0.166682,VC:0.274954,WC:1.95317,XC:7.56766,YC:0.0128217,CC:0.0384651},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"KC\",\"wC\",\"aC\",\"xC\",\"yC\",\"zC\",\"F\",\"0C\",\"1C\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"7C\",\"8C\",\"9C\",\"AD\",\"BD\",\"CD\",\"DD\",\"ED\",\"FD\",\"MC\",\"NC\",\"9B\",\"GD\",\"AC\",\"OC\",\"PC\",\"QC\",\"RC\",\"SC\",\"HD\",\"BC\",\"TC\",\"UC\",\"VC\",\"WC\",\"XC\",\"YC\",\"CC\",\"\"],E:\"Safari on iOS\",F:{KC:1270252800,wC:1283904000,aC:1299628800,xC:1331078400,yC:1359331200,zC:1394409600,F:1410912000,\"0C\":1413763200,\"1C\":1442361600,\"2C\":1458518400,\"3C\":1473724800,\"4C\":1490572800,\"5C\":1505779200,\"6C\":1522281600,\"7C\":1537142400,\"8C\":1553472000,\"9C\":1568851200,AD:1572220800,BD:1580169600,CD:1585008000,DD:1600214400,ED:1619395200,FD:1632096000,MC:1639353600,NC:1647216000,\"9B\":1652659200,GD:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432000,RC:1679875200,SC:1684368000,HD:1690156800,BC:1694995200,TC:1698192000,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null}},H:{A:{ID:0.05},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"ID\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{ID:1426464000}},I:{A:{DC:0,J:0.0000653848,D:0.651756,JD:0,KD:0,LD:0,MD:0.00013077,aC:0.000326924,ND:0,OD:0.00117693},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"JD\",\"KD\",\"LD\",\"DC\",\"J\",\"MD\",\"aC\",\"ND\",\"OD\",\"D\",\"\",\"\",\"\"],E:\"Android Browser\",F:{JD:1256515200,KD:1274313600,LD:1291593600,DC:1298332800,J:1318896000,MD:1341792000,aC:1374624000,ND:1386547200,OD:1401667200,D:1721692800}},J:{A:{E:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,I:1.12567,\"7B\":0,ZC:0,\"8B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"7B\",\"ZC\",\"C\",\"8B\",\"I\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,\"7B\":1314835200,ZC:1318291200,C:1330300800,\"8B\":1349740800,I:1709769600},D:{I:\"webkit\"}},L:{A:{D:43.5971},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{D:1721692800}},M:{A:{D:0.333211},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{D:1718064000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"9B\":0.993346},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"9B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"9B\":1710115200},D:{\"9B\":\"webkit\"}},P:{A:{\"0\":2.06723,J:0.0969013,v:0.0215336,w:0.053834,x:0.0646008,y:0.0861344,z:0.107668,PD:0.0107668,QD:0.0107668,RD:0.0430672,SD:0,TD:0,LC:0,UD:0.0107668,VD:0,WD:0.0107668,XD:0,YD:0,AC:0,BC:0.0215336,CC:0.0107668,ZD:0.0215336},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"PD\",\"QD\",\"RD\",\"SD\",\"TD\",\"LC\",\"UD\",\"VD\",\"WD\",\"XD\",\"YD\",\"AC\",\"BC\",\"CC\",\"ZD\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{\"0\":1715126400,J:1461024000,PD:1481846400,QD:1509408000,RD:1528329600,SD:1546128000,TD:1554163200,LC:1567900800,UD:1582588800,VD:1593475200,WD:1605657600,XD:1618531200,YD:1629072000,AC:1640736000,BC:1651708800,CC:1659657600,ZD:1667260800,v:1677369600,w:1684454400,x:1689292800,y:1697587200,z:1711497600}},Q:{A:{aD:0.31435},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"aD\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{aD:1710288000}},R:{A:{bD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"bD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{bD:1710201600}},S:{A:{cD:0.081731,dD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"cD\",\"dD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{cD:1527811200,dD:1631664000}}};\n","module.exports={\"0\":\"25\",\"1\":\"112\",\"2\":\"113\",\"3\":\"114\",\"4\":\"115\",\"5\":\"116\",\"6\":\"117\",\"7\":\"118\",\"8\":\"119\",\"9\":\"120\",A:\"10\",B:\"11\",C:\"12\",D:\"127\",E:\"7\",F:\"8\",G:\"9\",H:\"15\",I:\"80\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"17\",P:\"18\",Q:\"79\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"107\",r:\"108\",s:\"109\",t:\"110\",u:\"111\",v:\"20\",w:\"21\",x:\"22\",y:\"23\",z:\"24\",AB:\"121\",BB:\"122\",CB:\"123\",DB:\"124\",EB:\"125\",FB:\"126\",GB:\"5\",HB:\"19\",IB:\"26\",JB:\"27\",KB:\"28\",LB:\"29\",MB:\"30\",NB:\"31\",OB:\"32\",PB:\"33\",QB:\"34\",RB:\"35\",SB:\"36\",TB:\"37\",UB:\"38\",VB:\"39\",WB:\"40\",XB:\"41\",YB:\"42\",ZB:\"43\",aB:\"44\",bB:\"45\",cB:\"46\",dB:\"47\",eB:\"48\",fB:\"49\",gB:\"50\",hB:\"51\",iB:\"52\",jB:\"53\",kB:\"54\",lB:\"55\",mB:\"56\",nB:\"57\",oB:\"58\",pB:\"60\",qB:\"62\",rB:\"63\",sB:\"64\",tB:\"65\",uB:\"66\",vB:\"67\",wB:\"68\",xB:\"69\",yB:\"70\",zB:\"71\",\"0B\":\"72\",\"1B\":\"73\",\"2B\":\"74\",\"3B\":\"75\",\"4B\":\"76\",\"5B\":\"77\",\"6B\":\"78\",\"7B\":\"11.1\",\"8B\":\"12.1\",\"9B\":\"15.5\",AC:\"16.0\",BC:\"17.0\",CC:\"18.0\",DC:\"3\",EC:\"59\",FC:\"61\",GC:\"82\",HC:\"128\",IC:\"129\",JC:\"130\",KC:\"3.2\",LC:\"10.1\",MC:\"15.2-15.3\",NC:\"15.4\",OC:\"16.1\",PC:\"16.2\",QC:\"16.3\",RC:\"16.4\",SC:\"16.5\",TC:\"17.1\",UC:\"17.2\",VC:\"17.3\",WC:\"17.4\",XC:\"17.5\",YC:\"17.6\",ZC:\"11.5\",aC:\"4.2-4.3\",bC:\"5.5\",cC:\"2\",dC:\"131\",eC:\"3.5\",fC:\"3.6\",gC:\"3.1\",hC:\"5.1\",iC:\"6.1\",jC:\"7.1\",kC:\"9.1\",lC:\"13.1\",mC:\"14.1\",nC:\"15.1\",oC:\"15.6\",pC:\"16.6\",qC:\"TP\",rC:\"9.5-9.6\",sC:\"10.0-10.1\",tC:\"10.5\",uC:\"10.6\",vC:\"11.6\",wC:\"4.0-4.1\",xC:\"5.0-5.1\",yC:\"6.0-6.1\",zC:\"7.0-7.1\",\"0C\":\"8.1-8.4\",\"1C\":\"9.0-9.2\",\"2C\":\"9.3\",\"3C\":\"10.0-10.2\",\"4C\":\"10.3\",\"5C\":\"11.0-11.2\",\"6C\":\"11.3-11.4\",\"7C\":\"12.0-12.1\",\"8C\":\"12.2-12.5\",\"9C\":\"13.0-13.1\",AD:\"13.2\",BD:\"13.3\",CD:\"13.4-13.7\",DD:\"14.0-14.4\",ED:\"14.5-14.8\",FD:\"15.0-15.1\",GD:\"15.6-15.8\",HD:\"16.6-16.7\",ID:\"all\",JD:\"2.1\",KD:\"2.2\",LD:\"2.3\",MD:\"4.1\",ND:\"4.4\",OD:\"4.4.3-4.4.4\",PD:\"5.0-5.4\",QD:\"6.2-6.4\",RD:\"7.2-7.4\",SD:\"8.2\",TD:\"9.2\",UD:\"11.1-11.2\",VD:\"12.0\",WD:\"13.0\",XD:\"14.0\",YD:\"15.0\",ZD:\"19.0\",aD:\"14.9\",bD:\"13.52\",cD:\"2.5\",dD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.content-unsupported-browser[data-v-7e9eda06]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-7e9eda06]{margin:0}.content-unsupported-browser .empty-content[data-v-7e9eda06] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-7e9eda06]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-7e9eda06]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-7e9eda06]{text-align:left}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnsupportedBrowser.vue\"],\"names\":[],\"mappings\":\"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA\",\"sourcesContent\":[\"\\n$spacing: 30px;\\n\\n.content-unsupported-browser {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\twidth: 400px;\\n\\tmax-width: calc(90vw - 2 * $spacing);\\n\\tmargin: auto;\\n\\tpadding: $spacing;\\n\\n\\t.empty-content {\\n\\t\\tmargin: 0;\\n\\t\\t&::v-deep .empty-content__icon {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t&__continue {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $spacing auto;\\n\\t}\\n\\n\\t&__list {\\n\\t\\tmargin-top: 2 * $spacing;\\n\\t\\tmargin-bottom: $spacing;\\n\\t\\tli {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"28.3\": \"120\",\n\t\"29.0\": \"122\",\n\t\"29.1\": \"122\",\n\t\"29.2\": \"122\",\n\t\"29.3\": \"122\",\n\t\"29.4\": \"122\",\n\t\"30.0\": \"124\",\n\t\"30.1\": \"124\",\n\t\"30.2\": \"124\",\n\t\"30.3\": \"124\",\n\t\"31.0\": \"126\",\n\t\"31.1\": \"126\",\n\t\"31.2\": \"126\",\n\t\"31.3\": \"126\",\n\t\"32.0\": \"128\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?<name>a)\\k<name>/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?<!' + _assertion + ')';\n }\n\n return '(?<=' + _assertion + ')';\n }\n\n default:\n throw new TypeError('Unknown Assertion kind: ' + node.kind);\n }\n },\n CharacterClass: function CharacterClass(node) {\n var expressions = node.expressions.map(gen).join('');\n\n if (node.negative) {\n return '[^' + expressions + ']';\n }\n\n return '[' + expressions + ']';\n },\n ClassRange: function ClassRange(node) {\n return gen(node.from) + '-' + gen(node.to);\n },\n Repetition: function Repetition(node) {\n return '' + gen(node.expression) + gen(node.quantifier);\n },\n Quantifier: function Quantifier(node) {\n var quantifier = void 0;\n var greedy = node.greedy ? '' : '?';\n\n switch (node.kind) {\n case '+':\n case '?':\n case '*':\n quantifier = node.kind;\n break;\n case 'Range':\n // Exact: {1}\n if (node.from === node.to) {\n quantifier = '{' + node.from + '}';\n }\n // Open: {1,}\n else if (!node.to) {\n quantifier = '{' + node.from + ',}';\n }\n // Closed: {1,3}\n else {\n quantifier = '{' + node.from + ',' + node.to + '}';\n }\n break;\n default:\n throw new TypeError('Unknown Quantifier kind: ' + node.kind);\n }\n\n return '' + quantifier + greedy;\n },\n Char: function Char(node) {\n var value = node.value;\n\n switch (node.kind) {\n case 'simple':\n {\n if (node.escaped) {\n return '\\\\' + value;\n }\n return value;\n }\n\n case 'hex':\n case 'unicode':\n case 'oct':\n case 'decimal':\n case 'control':\n case 'meta':\n return value;\n\n default:\n throw new TypeError('Unknown Char kind: ' + node.kind);\n }\n },\n UnicodeProperty: function UnicodeProperty(node) {\n var escapeChar = node.negative ? 'P' : 'p';\n var namePart = void 0;\n\n if (!node.shorthand && !node.binary) {\n namePart = node.name + '=';\n } else {\n namePart = '';\n }\n\n return '\\\\' + escapeChar + '{' + namePart + node.value + '}';\n }\n};\n\nmodule.exports = {\n /**\n * Generates a regexp string from an AST.\n *\n * @param Object ast - an AST node\n */\n generate: gen\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode <parsing-mode> \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\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\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\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\\u0af9\\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-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?<!/, function () {\n return 'NEG_LB_ASSERT';\n}], [/^\\(\\?:/, function () {\n return 'NON_CAPTURE_GROUP';\n}], [/^\\(\\?<(([\\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\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\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\\u0af9\\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-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k<foo>` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k<foo>` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array<Object> handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array<Object> handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array<Object>:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array<Object> handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7843;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7843: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(14813)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","regexes","regex","family","maxVersion","Infinity","version","minVersion","numbersToRanges","numbers","length","SemverPart","semverify","versionParts","Array","isArray","toString","split","versionPart","semverPart","semver","i","parseInt","isNaN","compareSemvers","a","b","options","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","allowHigherVersions","compareMinor","comparePatch","compareArrays","from","len","clone","value","copy","concat","items","AlternativeNode","expressions","exps","filter","Boolean","type","SimpleCharNode","kind","String","codePoint","NaN","ClassRangeNode","to","CharacterClassNode","CapturingGroupNode","expression","capturing","number","DisjunctionCapturingGroupNode","expr","exprs","disjunction","left","right","pop","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","quantifier","greedy","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","node","isCharNode","RegExp","test","isDigitRangeNode","isExpressionNode","parseRegex","replace","classes","visitors","every","reduce","newVisitors","className","visitor","visitorPre","pre","visitorPost","post","nodePath","numberToDigits","num","Number","rayRangeDigitPattern","digit","includes","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","push","Math","min","splitToDecadeRanges","parts","map","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","range","middleSegment","_","ri","d","j","patterns","prevNode","merged","exp","unshift","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","Group","getNumberPatternsCount","numbersCounter","containsNumberPattern","parent","applyVersionsToRegex","versions","finalVersions","maxRequiredPartsCount","max","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","start","createMapper","rangedSemverToRegex","numbersToReplace","slice","shift","replaceNumberPatterns","remove","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","matchedVersions","current","Major","Minor","Patch","part","p","versionsListToRanges","applyVersionsToRegexes","browsers","targetRegexes","result","prevFamily","prevRegexIsGlobal","forEach","requestVersions","get","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","undefined","getRegexesForBrowsers","merge","Map","strVersion","join","set","sort","mergeBrowserVersions","browserslistOptions","browserslist","browser","versionString","versionStringTo","partIndex","i1","v","rangeSemver","getBrowsersList","partsRegexes","body","src","getAST","optimizeRegex","flags","compileRegex","getUserAgentRegex","browserslistConfig","supportedBrowsers","getBuilder","clearOnLogout","persist","build","user","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","detectUser","browserStorageKey","generateUrl","browserStorage","getItem","name","emits","props","title","fillColor","default","size","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","logger","debug","components","Web","NcButton","NcEmptyContent","computed","isMobile","navigator","userAgent","filteredSupportedBrowsers","isMobileBrowser","formattedBrowsersList","list","id","parseFloat","Object","keys","agents","t","entry","methods","n","forceBrowsing","setItem","urlParams","URLSearchParams","window","location","search","has","redirectPath","Buffer","getRootUrl","startsWith","toLowerCase","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","scopedSlots","_u","key","fn","proxy","_l","Vue","el","render","h","UnsupportedBrowser","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","Error","captureStackTrace","prototype","jsReleases","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","indexOf","normalize","normalizeElectron","versionToUse","nameMapper","getMajor","getMajorVersions","released","majorVersions","uniq","minimum","selected","array","filtered","fillUsage","data","generateFilter","sign","parseLatestFloat","parseSimpleInt","x","compare","compareSemver","semverFilterLoose","operator","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","obj","copyObject","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","nVersions","jump","op_mob","isSupported","withPartial","queries","QUERIES","index","not","query","select","call","compose","prepareOpts","prepareQueries","defaults","checkQueries","cache","ignoreUnknownVersions","dangerousExtend","customUsage","cacheKey","JSON","stringify","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","supportType","features","iMax","checkDesktop","electron_range","fromToUse","toToUse","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","substr","find","trim","block","A","K","E","F","G","B","bC","C","L","M","H","N","O","P","Q","I","R","S","T","U","V","W","X","Y","Z","c","e","f","g","k","l","m","o","q","r","s","u","AB","BB","CB","DB","EB","FB","D","cC","DC","J","GB","HB","w","y","z","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","EC","pB","FC","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","GC","HC","IC","JC","dC","eC","fC","gC","KC","hC","iC","jC","kC","LC","lC","mC","nC","MC","NC","oC","AC","OC","PC","QC","RC","SC","pC","BC","TC","UC","VC","WC","XC","YC","CC","qC","rC","sC","tC","uC","ZC","vC","wC","aC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","RD","SD","TD","UD","VD","WD","XD","YD","ZD","aD","bD","cD","dD","agentsData","unpackBrowserVersions","versionsData","prefix_exceptions","map2","key2","prefix","browserVersions","___CSS_LOADER_EXPORT___","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getExtra","setExtra","_createClass","defineProperties","target","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","toValue","toSymbol","symbol","_groupNames","init","nameRaw","Backreference","reference","referenceRaw","namedCapturingGroups","xFlag","gen","generator","Alternative","Disjunction","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","Quantifier","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","add","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","nNode","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","pushState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","definition","Promise","globalThis","Function","toStringTag","nmd","paths","children","document","baseURI","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"core-unsupported-browser.js?v=bbe76fa9ab856ffcd9c3","mappings":"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AAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,K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AAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,QAK/txBsX,EAAQ,GAKRC,OAAY,EASZC,EAAW,CAAC,CAAC,WAAY,WAAgC,GAAI,CAAC,OAAQ,WAAkC,GAAI,CAAC,KAAM,WACrH,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,KAAM,WACT,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,WAAY,WACf,MAAO,aACT,GAAI,CAAC,YAAa,WAChB,MAAO,YACT,GAAI,CAAC,eAAgB,WACnB,MAAO,cACT,GAAI,CAAC,qglBAAsglB,WAGzglB,OADAC,EADgBtD,EAAOn+B,MAAM,GAAI,GACGqF,KAAKq8B,mBAClC,iBACT,GAAI,CAAC,OAAQ,WACX,MAAO,OACT,GAAI,CAAC,OAAQ,WACX,MAAO,OACT,GAAI,CAAC,eAAgB,WACnB,MAAO,SACT,GAAI,CAAC,cAAe,WAClB,MAAO,UACT,GAAI,CAAC,OAAQ,WACX,MAAO,UACT,GAAI,CAAC,aAAc,WACjB,MAAO,UACT,GAAI,CAAC,8DAA+D,WAClE,MAAO,kBACT,GAAI,CAAC,0BAA2B,WAC9B,MAAO,QACT,GAAI,CAAC,qBAAsB,WACzB,MAAO,QACT,GAAI,CAAC,0BAA2B,WAC9B,MAAO,kBACT,GAAI,CAAC,qBAAsB,WACzB,MAAO,UACT,GAAI,CAAC,mBAAoB,WACvB,MAAO,WACT,GAAI,CAAC,QAAS,WACZ,MAAO,UACT,GAAI,CAAC,UAAW,WACd,MAAO,UACT,GAAI,CAAC,sCAAuC,WAC1C,MAAO,UACT,GAAI,CAAC,mBAAoB,WACvB,IAAI3nB,EAAI1U,KAAKq8B,kBACb,GAAU,YAAN3nB,GAA8B,QAAXokB,EACrB,MAAO,WACF,GAAU,MAANpkB,GAAmB,OAANA,GAAoB,YAANA,EACpC,MAAM,IAAImmB,YAAY,0BAA4B/B,GAEpD,MAAO,UACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,SAAU,WACb,MAAO,eACT,GAAI,CAAC,SAAU,WACb,MAAO,eACT,GAAI,CAAC,UAAW,WACd,MAAO,eACT,GAAI,CAAC,UAAW,WACd,MAAO,eACT,GAAI,CAAC,SAAU,WACb,MAAO,mBACT,GAAI,CAAC,sglBAAuglB,WAG1glB,OADAsD,EADAtD,EAASA,EAAOn+B,MAAM,GAAI,GACOqF,KAAKq8B,mBAC/B,qBACT,GAAI,CAAC,MAAO,WACV,MAAO,SACT,GAAI,CAAC,MAAO,WACV,MAAO,SACT,GAAI,CAAC,YAAa,WAChB,MAAO,MACT,GAAI,CAAC,QAAS,WACZ,MAAO,UACT,GAAI,CAAC,MAAO,WACM,OAAhBr8B,KAAKs8B,WAAkB,WACzB,GAAI,CAAC,MAAO,WACV,MAAO,KACT,GAAI,CAAC,MAAO,WACV,MAAO,KACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,QACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,KACT,GAAI,CAAC,MAAO,WACV,MAAO,KACT,GAAI,CAAC,MAAO,WACV,MAAO,OACT,GAAI,CAAC,iBAAkB,WACrB,MAAO,MACT,GAAI,CAAC,QAAS,WACZ,IAAI5nB,EAAI1U,KAAKq8B,kBAAgF,OAA9Dr8B,KAAKu8B,UAAgB,MAAN7nB,GAAmB,OAANA,EAAa,UAAY,SAAgB,WACtG,GAAI,CAAC,MAAO,WACV,IAAIA,EAAI1U,KAAKq8B,kBAAgF,OAA9Dr8B,KAAKu8B,UAAgB,MAAN7nB,GAAmB,OAANA,EAAa,UAAY,SAAgB,WACtG,IACI8nB,EAAuB,CAAE,QAAW,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAM,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,QAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAE3gCC,EAAY,CACdpqC,KAhbQ,IAibRT,MAAO,IAGTsqC,EAAY,CACVQ,WAAY,SAAoB1qB,GAqB9B,OApBAhS,KAAK28B,QAAU3qB,EACfhS,KAAK48B,QAAU,EAEf58B,KAAK68B,QAAU,CAAC,WAChB78B,KAAK88B,aAAe,GAEpB98B,KAAK+8B,aAAe,EACpB/8B,KAAKg9B,eAAiB,EACtBh9B,KAAKi9B,wBAA0B,EAK/Bj9B,KAAKk9B,kBAAoB,EACzBl9B,KAAKm9B,gBAAkB,EACvBn9B,KAAKo9B,gBAAkB,EACvBp9B,KAAKq9B,cAAgB,EACrBr9B,KAAKs9B,kBAAoB,EACzBt9B,KAAKu9B,gBAAkB,EAEhBv9B,IACT,EAMAw9B,UAAW,WACT,OAAOx9B,KAAK68B,OACd,EACAR,gBAAiB,WACf,OAAOr8B,KAAK68B,QAAQ78B,KAAK68B,QAAQltC,OAAS,EAC5C,EACA4sC,UAAW,SAAmBxW,GAC5B/lB,KAAK68B,QAAQlmC,KAAKovB,EACpB,EACA0X,MAAO,SAAe1X,GACpB/lB,KAAKu8B,UAAUxW,EACjB,EACAuW,SAAU,WACR,OAAIt8B,KAAK68B,QAAQltC,OAAS,EACjBqQ,KAAK68B,QAAQrpC,MAEfwM,KAAK68B,QAAQ,EACtB,EACAa,aAAc,WAEZ,GAAI19B,KAAK88B,aAAantC,OAAS,EAC7B,OAAOqQ,KAAK29B,QAAQ39B,KAAK49B,SAAS59B,KAAK88B,aAAaliC,UAGtD,IAAKoF,KAAK69B,gBACR,OAAO79B,KAAK29B,QAAQlB,GAMtB,IAHA,IAAIzqB,EAAShS,KAAK28B,QAAQhiC,MAAMqF,KAAK48B,SACjCkB,EAAmBtB,EAAqBx8B,KAAKq8B,mBAExC/rC,EAAI,EAAGA,EAAIwtC,EAAiBnuC,OAAQW,IAAK,CAChD,IAAIytC,EAAeD,EAAiBxtC,GAChC0tC,EAAU7B,EAAS4B,GAEnBxyB,EAAUvL,KAAKi+B,OAAOjsB,EAAQgsB,EAAQ,IAQ1C,GAJe,KAAXhsB,GAA6B,KAAZzG,GACnBvL,KAAK48B,UAGS,OAAZrxB,EAAkB,EACpButB,EAASvtB,GACO5b,OAChB,IAAIuuC,EAAQF,EAAQ,GAAG9zB,KAAKlK,MAE5B,IAAKk+B,EACH,OAAOl+B,KAAK09B,eAMd,GAAI3tC,MAAMC,QAAQkuC,GAAQ,CACxB,IAGMpB,EAHFqB,EAAgBD,EAAMvjC,MAAM,GAChCujC,EAAQA,EAAM,GACVC,EAAcxuC,OAAS,IAGxBmtC,EAAe98B,KAAK88B,cAAczkC,QAAQ6yB,MAAM4R,EAAc5Y,EAAmBia,GAEtF,CAEA,OAAOn+B,KAAK29B,QAAQ39B,KAAK49B,SAASM,EAAOpF,GAC3C,CACF,CAEA,GAAI94B,KAAKo+B,QAEP,OADAp+B,KAAK48B,UACEH,EAGTz8B,KAAKq+B,qBAAqBrsB,EAAO,GAAIhS,KAAK+8B,aAAc/8B,KAAKg9B,eAC/D,EAQAqB,qBAAsB,SAA8Bzc,EAAQ0c,EAAMC,GAChE,IAAIC,EAAax+B,KAAK28B,QAAQzsC,MAAM,MAAMouC,EAAO,GAC7CG,EAAW,GAOf,MALID,IAEFC,EAAW,OAASD,EAAa,KADvB,IAAIlN,OAAOiN,GACyB,OAG1C,IAAI1D,YAAY4D,EAAW,sBAAwB7c,EAAnC6c,QAA4DH,EAAO,IAAMC,EAAS,IAC1G,EACAG,UAAW,WACT,OAAO1+B,KAAK48B,OACd,EACA+B,eAAgB,WACd,OAAO3+B,KAAK+8B,YACd,EACA6B,iBAAkB,WAChB,OAAO5+B,KAAKg9B,cACd,EACA6B,iBAAkB,SAA0BtzB,GAC1C,IAAIuzB,EAAO,MAGX9+B,KAAKk9B,kBAAoBl9B,KAAK48B,QAG9B58B,KAAKo9B,gBAAkBp9B,KAAK+8B,aAC5B/8B,KAAKs9B,kBAAoBt9B,KAAKk9B,kBAAoBl9B,KAAKi9B,wBAIvD,IADA,IAAI8B,OAAU,EAC4B,QAAlCA,EAAUD,EAAK3d,KAAK5V,KAC1BvL,KAAK+8B,eACL/8B,KAAKi9B,wBAA0Bj9B,KAAKk9B,kBAAoB6B,EAAQl1B,MAAQ,EAG1E7J,KAAKm9B,gBAAkBn9B,KAAK48B,QAAUrxB,EAAQ5b,OAG9CqQ,KAAKq9B,cAAgBr9B,KAAK+8B,aAC1B/8B,KAAKu9B,gBAAkBv9B,KAAKg9B,eAAiBh9B,KAAKm9B,gBAAkBn9B,KAAKi9B,uBAC3E,EACAW,SAAU,SAAkBoB,GAG1B,MAAO,CAEL3sC,KAAM2sC,EACNptC,MALWmtB,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,GAQ/Eoa,YAAan5B,KAAKk9B,kBAClB9D,UAAWp5B,KAAKm9B,gBAChB9D,UAAWr5B,KAAKo9B,gBAChB9D,QAASt5B,KAAKq9B,cACd9D,YAAav5B,KAAKs9B,kBAClB9D,UAAWx5B,KAAKu9B,gBAEpB,EACAa,MAAO,WACL,OAAOp+B,KAAK48B,UAAY58B,KAAK28B,QAAQhtC,MACvC,EACAkuC,cAAe,WACb,OAAO79B,KAAK48B,SAAW58B,KAAK28B,QAAQhtC,MACtC,EACAsuC,OAAQ,SAAgBjsB,EAAQnE,GAC9B,IAAItC,EAAUyG,EAAO5F,MAAMyB,GAC3B,OAAItC,GAEFvL,KAAK6+B,iBAAiBtzB,EAAQ,IAC9BvL,KAAK48B,SAAWrxB,EAAQ,GAAG5b,OACpB4b,EAAQ,IAEV,IACT,EAOAoyB,QAAS,SAAiBO,GACxB,OAAOA,CACT,GAMFnF,EAAGkG,MAAQ/C,EACXnD,EAAGmD,UAAYA,EASfnD,EAAGnoC,QAAU,CACXi9B,kBAAkB,GAMpB,IAAIqR,EAAU,CAIZC,WAAY,SAAoBvuC,GAE9B,OADAmoC,EAAGnoC,QAAUA,EACNoP,IACT,EAMAo/B,WAAY,WACV,OAAOrG,EAAGnoC,OACZ,EAMA2b,MAAO,SAAeyF,EAAQqtB,GAC5B,IAAKnD,EACH,MAAM,IAAI32B,MAAM,wCAGlB22B,EAAUQ,WAAW1qB,GAMrB,IAAIstB,EAAgBvG,EAAGnoC,QACnByuC,IACFtG,EAAGnoC,QAAUiR,OAAO6lB,OAAO,CAAC,EAAGqR,EAAGnoC,QAASyuC,IAO7CH,EAAQK,aAAavtB,EAAQkqB,EAAWnD,EAAGnoC,SAE3CqrC,EAAMtsC,OAAS,EACfssC,EAAMtlC,KAAK,GAEX,IAAIunC,EAAQhC,EAAUwB,eAClB8B,EAAe,KAEnB,EAAG,CACItB,IAEHnF,EAAGnoC,QAAU0uC,EACbG,KAGF,IAAI1Z,EAAQkW,EAAMA,EAAMtsC,OAAS,GAC7B4uC,EAASvC,EAAOkC,EAAM7rC,MAErBsyB,EAAMoB,GAAO5G,eAAeof,KAC/BxF,EAAGnoC,QAAU0uC,EACbI,EAAgBxB,IAGlB,IAAIj8B,EAAQ0iB,EAAMoB,GAAOwY,GAGzB,GAAiB,MAAbt8B,EAAM,GAAY,CACpB,IAAI09B,EAAQ,KAER5G,EAAGnoC,QAAQi9B,mBACb8R,EAAQ,CACNxG,YAAa+E,EAAM/E,YACnBC,UAAW8E,EAAM9E,UACjBC,UAAW6E,EAAM7E,UACjBC,QAAS4E,EAAM5E,QACfC,YAAa2E,EAAM3E,YACnBC,UAAW0E,EAAM1E,YAIrBgG,EAAex/B,KAAK4/B,QAAQ1B,GAE5BjC,EAAMtlC,KAAK,CAAEirB,OAAQoa,EAAOwD,EAAantC,MAAOwtC,cAAeL,EAAa5tC,MAAOwoC,IAAKuF,GAASlqC,OAAOwM,EAAMtH,MAAM,KAEpHujC,EAAQhC,EAAUwB,cACpB,MAGK,GAAiB,MAAbz7B,EAAM,GAAY,CACvB,IAAI69B,EAAmB79B,EAAMtH,MAAM,GAC/BolC,EAAatG,EAAYqG,GACzBE,EAA6C,mBAAlBD,EAAW,GACtCE,EAAoBD,EAAoB,GAAK,KAE7CE,EAAeF,GAAqBjH,EAAGnoC,QAAQi9B,iBAAmB,GAAK,KAE3E,GAAsB,IAAlBkS,EAAW,GAEb,IADA,IAAII,EAAYJ,EAAW,GACpBI,KAAc,GAAG,CACtBlE,EAAMzoC,MACN,IAAI4sC,EAAanE,EAAMzoC,MAEnBwsC,IACFC,EAAkB5nC,QAAQ+nC,EAAWP,eAEjCK,GACFA,EAAa7nC,QAAQ+nC,EAAWhG,KAGtC,CAGF,IAAIiG,EAAmB,CAAEze,OAAQme,EAAW,IAE5C,GAAIC,EAAmB,CACrBlH,EAAS0G,EAAeA,EAAa5tC,MAAQ,KACpC4tC,GAAeA,EAAa5tC,MAAMjC,OAE3C,IAAI2wC,EAAsC,OAAjBJ,EAAwBD,EAAkBnuC,OAAOouC,GAAgBD,EAE1FF,EAAW,GAAG7U,MAAM6U,EAAY7b,EAAmBoc,IAEnDD,EAAiBR,cAAgB7G,EAE7BkH,IACFG,EAAiBjG,IAAMnB,EAE3B,CAEA,IAAI/J,EAAY+M,EAAMA,EAAMtsC,OAAS,GACjC4wC,EAAqBR,EAAW,GAEpC9D,EAAMtlC,KAAK0pC,EAAkB1b,EAAMuK,GAAWqR,GAChD,MAGK,GAAc,QAAVt+B,EAAiB,CACtBg6B,EAAMzoC,MACN,IAAIuc,EAASksB,EAAMzoC,MAQnB,OANqB,IAAjByoC,EAAMtsC,QAA6B,IAAbssC,EAAM,IAAYC,EAAU2B,mBAEpD9E,EAAGnoC,QAAU0uC,EACbI,EAAgBxB,IAGdnuB,EAAOoP,eAAe,kBACxB4Z,EAAGnoC,QAAU0uC,EACbJ,EAAQsB,WAAWzwB,EAAO8vB,eACnB9vB,EAAO8vB,gBAGhBX,EAAQsB,aAGRzH,EAAGnoC,QAAU0uC,GACN,EACT,CACN,OAASpD,EAAU2B,iBAAmB5B,EAAMtsC,OAAS,EACvD,EACA8wC,aAAc,SAAsBC,GAElC,OADAxE,EAAYwE,EACLxB,CACT,EACAyB,aAAc,WACZ,OAAOzE,CACT,EACAqD,aAAc,SAAsBvtB,EAAQkqB,EAAWtrC,GAAU,EACjE4vC,WAAY,SAAoBzwB,GAAS,EAOzC6vB,QAAS,SAAiB1B,GACxB,OAAOA,CACT,GAME7C,EAAuB,EAKvBE,EAAc,CAAC,EAKfqF,EAAgB,GAoCpB,SAAS/E,EAASV,GAChB,IAAIxjC,EAAQwjC,EAAK/uB,MAAM,QAAQpV,IAAIvB,QAEnC,GAAIA,OAAOorC,SAASlpC,EAAM,KAAOA,EAAM,GAAKA,EAAM,GAChD,MAAM,IAAIkjC,YAAY,2BAA6BM,EAAO,eAG5D,OAAOxjC,CACT,CAKA,SAASokC,EAAgBtqC,EAAMmB,GAC7B,GAAkB,YAAdnB,EAAKc,MAAkC,YAAZK,EAAGL,OAAuB/B,MAAMiB,EAAKgB,aAAejC,MAAMoC,EAAGH,YAAchB,EAAKgB,UAAYG,EAAGH,UAC5H,MAAM,IAAIooC,YAAY,SAAWppC,EAAKG,MAAQ,IAAMgB,EAAGhB,MAAQ,mCAEnE,CAnDAstC,EAAQK,aAAe,SAAUvtB,EAAQitB,GACvC2B,EAAgB5uB,EAChBqpB,EAAuB,EACvBE,EAAc,CAAC,EAEf,IAAIuF,EAAY9uB,EAAO+uB,YAAY,KAC/B3iC,EAAQ4T,EAAOrX,MAAMmmC,GAErB1iC,EAAMxI,SAAS,MAAQwI,EAAMxI,SAAS,KACxCqpC,EAAM1C,UAAU,OAEZn+B,EAAMxI,SAAS,MACjBqpC,EAAM1C,UAAU,KAEdn+B,EAAMxI,SAAS,MACjBqpC,EAAM1C,UAAU,KAGtB,EAKA2C,EAAQU,QAAU,SAAU1B,GAK1B,MAJmB,YAAfA,EAAM7rC,MAAqC,wBAAf6rC,EAAM7rC,OACpC6rC,EAAMtsC,MAAQ,IAAIY,OAAO0rC,EAAMtsC,OAC/BssC,EAAMtsC,MAAMyvB,cAAgBga,GAEvB6C,CACT,EA0BA,IAAI1D,EAAoB,EAAQ,OAqDhC,SAAS/Y,EAAK7vB,EAAOW,EAAM6nC,GACzB,IAAIxY,OAAS,EACTnvB,OAAY,EAEhB,OAAQF,GACN,IAAK,UAEDE,EAAYgD,OAAO7D,EAAM+I,MAAM,IAC/BinB,EAASpvB,OAAO8iC,cAAc7iC,GAC9B,MAEJ,IAAK,MAEDA,EAAYlC,SAASqB,EAAM+I,MAAM,GAAI,GACrCinB,EAASpvB,OAAO8iC,cAAc7iC,GAC9B,MAEJ,IAAK,MACL,IAAK,UAED,GAAIb,EAAMmvC,YAAY,OAAS,EAAG,CAChC,IACIC,EAngCsa,SAAUzd,EAAKjzB,GAAK,GAAIP,MAAMC,QAAQuzB,GAAQ,OAAOA,EAAY,GAAIC,OAAOC,YAAY5hB,OAAO0hB,GAAQ,OAAxf,SAAuBA,EAAKjzB,GAAK,IAAIozB,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWhjB,OAAKhE,EAAW,IAAM,IAAK,IAAiC+D,EAA7BkjB,EAAKN,EAAIC,OAAOC,cAAmBE,GAAMhjB,EAAKkjB,EAAGC,QAAQC,QAAoBL,EAAK/sB,KAAKgK,EAAG/O,QAAYtB,GAAKozB,EAAK/zB,SAAWW,GAA3DqzB,GAAK,GAAkE,CAAE,MAAOK,GAAOJ,GAAK,EAAMhjB,EAAKojB,CAAK,CAAE,QAAU,KAAWL,GAAME,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAID,EAAI,MAAMhjB,CAAI,CAAE,CAAE,OAAO8iB,CAAM,CAAuHO,CAAcV,EAAKjzB,GAAa,MAAM,IAAIkwB,UAAU,uDAA2D,CAmgC7mB8C,CADD1xB,EAAM1B,MAAM,OAAOyK,MAAM,GACW,GACzDw2B,EAAO6P,EAAoB,GAC3B9P,EAAQ8P,EAAoB,GAIhCvuC,EAA8B,OAF9B0+B,EAAO5gC,SAAS4gC,EAAM,KAEF,SADpBD,EAAQ3gC,SAAS2gC,EAAO,KACuB,OAAU,MAEzDtP,EAASpvB,OAAO8iC,cAAc7iC,EAChC,KAAO,CACL,IAAIwuC,EAAMrvC,EAAM+I,MAAM,GAAGjG,QAAQ,IAAK,IAEtC,IADAjC,EAAYlC,SAAS0wC,EAAK,KACV,QACd,MAAM,IAAIpG,YAAY,kCAAoCjpC,GAG5DgwB,EAASpvB,OAAO8iC,cAAc7iC,EAChC,CACA,MAEJ,IAAK,OAED,OAAQb,GACN,IAAK,MAEHa,GADAmvB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHl+B,GADAmvB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHl+B,GADAmvB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHl+B,GADAmvB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHl+B,GADAmvB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHl+B,GADAmvB,EAAS,MACU+O,YAAY,GACjC,IAAK,MACH/O,EAAS,KACTnvB,EAAY,EACd,IAAK,IACHmvB,EAAS,IACTnvB,EAAYC,IACZ,MACF,QACED,EAAYC,IAEhB,MAEJ,IAAK,SAGDD,GADAmvB,EAAShwB,GACU++B,YAAY,GAKrC,OAAOuJ,EAAK,CACV7nC,KAAM,OACNT,MAAOA,EACPW,KAAMA,EACNqvB,OAAQA,EACRnvB,UAAWA,GACV2nC,EACL,CAMA,IAAI8G,EAAa,UAMjB,SAAS/G,EAAW/7B,GAClB,IAAI+iC,EAAO,IAAIrb,IAEXmC,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBvrB,EAErB,IACE,IAAK,IAA0CwrB,EAAtCC,EAAYjqB,EAAMolB,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAAM,CACtJ,IAAImZ,EAAOhZ,EAAMx2B,MAEjB,GAAIuvC,EAAKx+B,IAAIy+B,KAAUF,EAAWtrC,SAASwrC,GACzC,MAAM,IAAIvG,YAAY,kBAAoBz8B,GAE5C+iC,EAAKnb,IAAIob,EACX,CACF,CAAE,MAAOpd,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CAEA,OAAO/pB,EAAMlO,MAAM,IAAIiN,OAAOF,KAAK,GACrC,CAwBA,IAAIy+B,EAAW,qBACXC,EAAa,0BACb0F,EAAgB,yBAKpB,SAASjF,EAAyB58B,EAAMumB,GAItC,GAHoBsb,EAAc/sC,KAAKkL,IACR,MAAVumB,GAA2B,OAAVA,GAA4B,YAAVA,EAGtD,MAAM,IAAI8U,YAAY,+BAAiCr7B,EAAO,oBAGhE,OAAOA,CACT,CAuBA,IAAI8hC,EAAQ,uOAEZ,SAAShG,EAAuB97B,GAC9B,OAAOA,EAAK9K,QAAQ,IAAIL,OAAOitC,EAAO,MAAM,SAAUzpC,EAAG0pC,EAAeC,EAAgBC,EAAmBC,EAAoBC,EAAclvC,GAC3I,OAAI8uC,EACK/uC,OAAO8iC,cAAc/kC,SAASgxC,EAAe,IAAKhxC,SAASixC,EAAgB,KAEhFC,EACKjvC,OAAO8iC,cAAc/kC,SAASkxC,EAAmB,KAEtDC,EAGKlvC,OAAO8iC,cAAc/kC,SAASmxC,EAAoB,KAEvDC,EACKnvC,OAAO8iC,cAAc/kC,SAASoxC,EAAc,KAEjDlvC,EACKD,OAAO8iC,cAAc/kC,SAASkC,EAAW,KAE3CoF,CACT,GACF,CAkGA,SAASqiC,EAAK/lC,EAAMimC,GAgBlB,OAfIrB,EAAGnoC,QAAQi9B,mBACb15B,EAAKimC,IAAM,CACT9Z,OAAQsgB,EAAcjmC,MAAMy/B,EAAIjB,YAAaiB,EAAIhB,WACjD7+B,MAAO,CACL+jC,KAAMlE,EAAIf,UACVkF,OAAQnE,EAAIb,YACZqI,OAAQxH,EAAIjB,aAEdroB,IAAK,CACHwtB,KAAMlE,EAAId,QACViF,OAAQnE,EAAIZ,UACZoI,OAAQxH,EAAIhB,aAIXjlC,CACT,CAKA,SAASimC,EAAI7/B,EAAOuW,GAClB,OAAKioB,EAAGnoC,QAAQi9B,iBAIT,CACLsL,YAAa5+B,EAAM4+B,YACnBC,UAAWtoB,EAAIsoB,UACfC,UAAW9+B,EAAM8+B,UACjBC,QAASxoB,EAAIwoB,QACbC,YAAah/B,EAAMg/B,YACnBC,UAAW1oB,EAAI0oB,WATR,IAWX,CAEA,SAASkG,EAAgBxB,GAvyCf,MAwyCJA,EAAM7rC,MACRotC,IAGFvD,EAAUmC,qBAAqBH,EAAMtsC,MAAOssC,EAAM7E,UAAW6E,EAAM3E,YACrE,CAEA,SAASkG,KAIT,WACE,MAAM,IAAI5E,YAJC,2BAKb,CALEgH,EACF,CAMA7yC,EAAOC,QAAUiwC,C,+BCr3CjB,IAAI4C,EAAmB,EAAQ,MAK3BC,EAAmBD,EAAiBv1B,MAAMy1B,KAAKF,GAQnDA,EAAiBv1B,MAAQ,SAAUsB,EAAQjd,GACzC,OAAOmxC,EAAiB,GAAKl0B,EAAQjd,EACvC,EAGAkxC,EAAiB3C,WAAW,CAAEtR,kBAAkB,IAEhD7+B,EAAOC,QAAU6yC,C,yBCpBjB,IAAIG,EAAmC,CACrCC,iBAAkB,KAClBC,OAAQ,KACRC,kBAAmB,OAGjBC,EAAmCC,EAAWL,GAE9CM,EAA+B,CACjCC,MAAO,QACPC,gBAAiB,OACjBC,WAAY,QACZC,IAAK,MACLC,SAAU,WACVC,aAAc,SACdC,cAAe,SACfC,eAAgB,KAChBC,MAAO,QACPC,wBAAyB,OACzBC,wBAAyB,OACzBC,wBAAyB,MACzBC,6BAA8B,QAC9BC,wBAAyB,MACzBC,wBAAyB,MACzBC,KAAM,OACNC,6BAA8B,KAC9BC,WAAY,MACZC,UAAW,MACXC,MAAO,QACPC,gBAAiB,kBACjBC,eAAgB,iBAChBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,sBAAuB,wBACvBC,SAAU,MACVC,cAAe,UACfC,gBAAiB,SACjBC,UAAW,MACXC,oBAAqB,OACrBC,qBAAsB,OACtBC,YAAa,MACbC,SAAU,MACVC,YAAa,OACbC,aAAc,SACdC,wBAAyB,MACzBC,UAAW,QACXhuC,KAAM,OACNiuC,wBAAyB,QACzBC,eAAgB,UAChBC,oBAAqB,SACrBC,eAAgB,QAChBC,QAAS,UACTC,mBAAoB,KACpBC,kBAAmB,QACnBC,YAAa,KACbC,qBAAsB,OACtBC,kBAAmB,QACnBC,UAAW,QACXC,mBAAoB,KACpBC,YAAa,QACbC,aAAc,OACdC,UAAW,QAGTC,EAA+BtD,EAAWC,GAE1CsD,EAAoC,CACtCC,aAAc,KACdC,kBAAmB,KACnBC,sBAAuB,KACvBC,QAAS,CAAC,KAAM,SAChBC,gBAAiB,KACjBC,iBAAkB,KAClBC,eAAgB,CAAC,KAAM,SACvBC,eAAgB,KAChBC,kBAAmB,KACnBC,OAAQ,KACRC,oBAAqB,KACrBC,OAAQ,IACRC,cAAe,KACfC,eAAgB,KAChBC,iBAAkB,KAClBC,KAAM,CAAC,IAAK,kBACZC,YAAa,KACbC,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,KACjBxxC,OAAQ,IACRyxC,iBAAkB,KAClBC,MAAO,IACPC,aAAc,KACdC,aAAc,KACdC,kBAAmB,KACnBC,aAAc,KACdC,oBAAqB,KACrBC,YAAa,KACbC,YAAa,CAAC,IAAK,SACnBC,UAAW,IACXC,gBAAiB,KACjBC,aAAc,KACdC,UAAW,KACXtkB,OAAQ,IACRukB,iBAAkB,KAClBC,WAAY,KACZC,iBAAkB,MAGhBC,EAA2C5F,EAAWuD,GAEtDsC,EAA0B,CAC5BC,MAAO,OACPC,KAAM,OACNC,sBAAuB,OACvBC,OAAQ,OACRC,SAAU,OACVC,QAAS,OACTC,SAAU,OACVC,MAAO,OACPC,UAAW,OACXC,MAAO,OACPC,QAAS,OACTC,UAAW,OACXC,SAAU,OACVC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,MAAO,OACPC,oBAAqB,OACrBC,OAAQ,OACRC,mBAAoB,OACpBC,OAAQ,OACRC,KAAM,OACNC,SAAU,OACVC,OAAQ,OACRC,OAAQ,CAAC,OAAQ,QACjBC,UAAW,OACXC,QAAS,OACTC,SAAU,OACVC,QAAS,OACTC,WAAY,OACZC,MAAO,OACPC,SAAU,OACVC,qBAAsB,OACtBC,QAAS,OACTC,SAAU,OACVC,SAAU,OACVC,WAAY,OACZC,OAAQ,OACRC,QAAS,OACTC,MAAO,OACPC,SAAU,OACVC,cAAe,OACfC,SAAU,OACVC,IAAK,OACLC,OAAQ,OACRC,gBAAiB,OACjBC,QAAS,OACTC,OAAQ,OACRC,OAAQ,OACRC,SAAU,OACVC,iBAAkB,OAClBC,UAAW,CAAC,OAAQ,QACpBC,sBAAuB,OACvBC,uBAAwB,OACxBC,SAAU,OACVC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,SAAU,OACVC,WAAY,OACZC,MAAO,OACPC,OAAQ,OACRC,UAAW,OACXC,IAAK,OACLC,MAAO,OACPC,OAAQ,OACRC,MAAO,OACPC,SAAU,OACVC,SAAU,OACVC,KAAM,OACNC,OAAQ,OACRC,OAAQ,OACRC,SAAU,OACVC,QAAS,OACTC,UAAW,OACXC,QAAS,OACTC,WAAY,OACZC,QAAS,OACTC,YAAa,OACbC,cAAe,OACfC,aAAc,OACdC,cAAe,OACfC,iBAAkB,OAClBC,qBAAsB,OACtBC,KAAM,OACNC,KAAM,OACNC,UAAW,OACXC,IAAK,OACLC,QAAS,OACTC,QAAS,OACTC,UAAW,OACXC,YAAa,OACbC,KAAM,OACNC,IAAK,OACLC,MAAO,OACPC,MAAO,OACPC,SAAU,OACVC,cAAe,OACfC,WAAY,OACZC,kBAAmB,OACnBC,WAAY,OACZC,YAAa,OACbC,YAAa,OACbC,kBAAmB,OACnBC,WAAY,OACZC,MAAO,OACPC,MAAO,OACPC,QAAS,OACTC,aAAc,OACdC,UAAW,OACXC,YAAa,OACbC,SAAU,OACVC,WAAY,OACZC,gBAAiB,OACjBC,OAAQ,OACRC,MAAO,OACPC,UAAW,OACXC,WAAY,OACZC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,YAAa,OACbC,QAAS,OACTC,QAAS,OACTC,aAAc,OACdC,QAAS,OACTC,UAAW,OACXC,aAAc,OACdC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,OAAQ,OACRC,SAAU,OACVC,SAAU,OACVC,MAAO,OACPC,MAAO,OACPC,OAAQ,OACRC,OAAQ,OACRC,OAAQ,OACRC,KAAM,OACNC,QAAS,OACTC,SAAU,OACVC,QAAS,OACTC,SAAU,OACVC,IAAK,OACLC,YAAa,OACbC,GAAI,OACJC,iBAAkB,QAGhBC,EAAgClP,EAAW6F,GAE/C,SAAS7F,EAAWp7B,GAClB,IAAIuqC,EAAU,CAAC,EAEf,IAAK,IAAIjyC,KAAQ0H,EACf,GAAKA,EAAKiY,eAAe3f,GAAzB,CAGA,IAAI5N,EAAQsV,EAAK1H,GACjB,GAAIzP,MAAMC,QAAQ4B,GAChB,IAAK,IAAItB,EAAI,EAAGA,EAAIsB,EAAMjC,OAAQW,IAChCmhD,EAAQ7/C,EAAMtB,IAAMkP,OAGtBiyC,EAAQ7/C,GAAS4N,CAPnB,CAWF,OAAOiyC,CACT,CA8BA,SAAShX,EAAuB7oC,GAC9B,OAAOi0C,EAAkC1mB,eAAevtB,IAAUs2C,EAAyC/oB,eAAevtB,EAC5H,CAEA,SAAS8/C,EAAsB9/C,GAC7B,OAAOu2C,EAAwBhpB,eAAevtB,IAAU4/C,EAA8BryB,eAAevtB,EACvG,CAkCA5C,EAAOC,QAAU,CACf0iD,QArDF,SAAiBnyC,GACf,OAAO6iC,EAAiCljB,eAAe3f,IAASomC,EAA6BzmB,eAAe3f,EAC9G,EAoDEo7B,YAtEF,SAAqBp7B,GACnB,OAAOyiC,EAAiC9iB,eAAe3f,IAAS6iC,EAAiCljB,eAAe3f,IAAS+iC,EAA6BpjB,eAAe3f,IAASomC,EAA6BzmB,eAAe3f,EAC5N,EAqEEs7B,aAnEF,SAAsBt7B,EAAM5N,GAC1B,OAeF,SAA+B4N,GAC7B,MAAgB,qBAATA,GAAuC,MAARA,CACxC,CAjBMoyC,CAAsBpyC,GACjBi7B,EAAuB7oC,KAkBlC,SAA8B4N,GAC5B,MAAgB,WAATA,GAA8B,sBAATA,GAAyC,OAATA,GAA0B,QAATA,CAC/E,CAjBMqyC,CAAqBryC,IAChBkyC,EAAsB9/C,EAIjC,EA0DE6oC,uBAAwBA,EACxBiX,sBAAuBA,EACvB/W,qBAtCF,SAA8Bn7B,GAC5B,OAAO+iC,EAA6BpjB,eAAe3f,IAASomC,EAA6BzmB,eAAe3f,EAC1G,EAqCEw7B,iBAnCF,SAA0Bx7B,GACxB,OAAI6iC,EAAiCljB,eAAe3f,GAC3C6iC,EAAiC7iC,GAGtComC,EAA6BzmB,eAAe3f,GACvComC,EAA6BpmC,GAG/B,IACT,EA0BE07B,kBAxBF,SAA2BtpC,GACzB,OAAIs2C,EAAyC/oB,eAAevtB,GACnDs2C,EAAyCt2C,GAG9C4/C,EAA8BryB,eAAevtB,GACxC4/C,EAA8B5/C,GAGnCg0C,EAA6BzmB,eAAevtB,GACvCg0C,EAA6Bh0C,GAG/B,IACT,EAYEqwC,iCAAkCA,EAClCI,iCAAkCA,EAElCE,6BAA8BA,EAC9BqD,6BAA8BA,EAE9BC,kCAAmCA,EACnCqC,yCAA0CA,EAE1CC,wBAAyBA,EACzBqJ,8BAA+BA,E,+BClXjC,IAAIM,EAAmB,EAAQ,MAC3BxvB,EAAY,EAAQ,OACpByvB,EAAY,EAAQ,OACpBpkB,EAAS,EAAQ,OACjB/O,EAAa,EAAQ,MACrBozB,EAAY,EAAQ,OACpBC,EAAK,EAAQ,OAGb/xB,EADW,EAAQ,OACGA,WAOtBgyB,EAAa,CAIfvkB,OAAQA,EAKRskB,GAAIA,EAKJ3hB,gBAAiB1R,EAAW0R,gBAkB5B/jB,MAAO,SAAesB,EAAQjd,GAC5B,OAAO+8B,EAAOphB,MAAM,GAAKsB,EAAQjd,EACnC,EAqBAuhD,SAAU,SAAkB3wB,EAAKoW,EAAUhnC,GACzC,OAAOohD,EAAUG,SAAS3wB,EAAKoW,EAAUhnC,EAC3C,EAeAiuB,UAAW,SAAmBhR,EAAQ+pB,GACpC,OAAOhZ,EAAWC,UAAUhR,EAAQ+pB,EACtC,EAYAvU,SAAU,SAAkB7B,GAC1B,OAAOc,EAAUe,SAAS7B,EAC5B,EAQA4wB,SAAU,SAAkBvkC,GAC1B,IAAIwkC,EAASryC,KAAKsyC,gBAAgBzkC,GAClC,OAAO,IAAIxZ,OAAOg+C,EAAOE,YAAaF,EAAOG,WAC/C,EAWAviB,SAAU,SAAkBpiB,EAAQsiB,GAClC,IACIE,GADOtR,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAC3DsR,UAErB,OAAO0hB,EAAU9hB,SAASpiB,EAAQ,CAAEsiB,UAAWA,EAAWE,UAAWA,GACvE,EAWAiiB,gBAAiB,SAAyBzkC,EAAQsiB,GAChD,OAAO2hB,EAAiBjzB,UAAUhR,EAAQsiB,EAC5C,EASAhP,KAAM,SAAchB,EAAInO,GACtB,GAAkB,iBAAPmO,EAAiB,CAC1B,IAAIkyB,EAASryC,KAAKsyC,gBAAgBnyB,GAC9BlB,EAAQozB,EAAOhzB,WAGjBc,EADElB,EAAMkD,qBACH,IAAIjC,EAAWmyB,EAAOD,WAAY,CACrCh0C,MAAOi0C,EAAOG,WACdlyB,OAAQ+xB,EAAOE,YACflyB,OAAQpB,EAAMkD,uBAGXkwB,EAAOD,UAEhB,CAEA,OAAOjyB,EAAGgB,KAAKnP,EACjB,GAGFhjB,EAAOC,QAAUijD,C,8BC7KjB,IAAI3yB,EAAe,WAAc,SAASC,EAAiBC,EAAQ/f,GAAS,IAAK,IAAIpP,EAAI,EAAGA,EAAIoP,EAAM/P,OAAQW,IAAK,CAAE,IAAIovB,EAAahgB,EAAMpP,GAAIovB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMhe,OAAOie,eAAeL,EAAQC,EAAWjc,IAAKic,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAYta,UAAWua,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfuC,EAAY,EAAQ,OACpBqL,EAAS,EAAQ,OACjBwkB,EAAW,EAAQ,OAMnB7hB,EAAkB,WAOpB,SAASA,EAAgB9O,GACvB,IAAIvC,EAAQF,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,MAlBpF,SAAyBwB,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAoBpJC,CAAgBzgB,KAAMswB,GAEtBtwB,KAAKyyC,KAAOjxB,EACZxhB,KAAK0yC,QAAU,KACf1yC,KAAK28B,QAAU,KACf38B,KAAK2yC,QAAU,KACf3yC,KAAK4yC,OAAS3zB,CAChB,CAgDA,OA9CAM,EAAa+Q,EAAiB,CAAC,CAC7B7sB,IAAK,SACL7R,MAAO,WACL,OAAOoO,KAAKyyC,IACd,GACC,CACDhvC,IAAK,WACL7R,MAAO,SAAkBqtB,GACvBjf,KAAK4yC,OAAS3zB,CAChB,GACC,CACDxb,IAAK,WACL7R,MAAO,WACL,OAAOoO,KAAK4yC,MACd,GACC,CACDnvC,IAAK,WACL7R,MAAO,WAIL,OAHKoO,KAAK2yC,UACR3yC,KAAK2yC,QAAU,IAAIt+C,OAAO2L,KAAKuyC,YAAavyC,KAAKyyC,KAAKr0C,QAEjD4B,KAAK2yC,OACd,GACC,CACDlvC,IAAK,YACL7R,MAAO,WAIL,OAHKoO,KAAK0yC,UACR1yC,KAAK0yC,QAAUpwB,EAAUe,SAASrjB,KAAKyyC,KAAKz0C,OAEvCgC,KAAK0yC,OACd,GACC,CACDjvC,IAAK,WACL7R,MAAO,WACL,OAAOoO,KAAKyyC,KAAKr0C,KACnB,GACC,CACDqF,IAAK,WACL7R,MAAO,WAIL,OAHKoO,KAAK28B,UACR38B,KAAK28B,QAAUra,EAAUe,SAASrjB,KAAKyyC,OAElCzyC,KAAK28B,OACd,KAGKrM,CACT,CAlEsB,GAoEtBthC,EAAOC,QAAU,CAIfqhC,gBAAiBA,EA6BjBzR,UAAW,SAAmBhR,EAAQ+pB,GACpC,IAAIpW,EAAM3T,EAcV,OAZIA,aAAkBxZ,SACpBwZ,EAAS,GAAKA,GAGM,iBAAXA,IACT2T,EAAMmM,EAAOphB,MAAMsB,EAAQ,CACzBggB,kBAAkB,KAItBskB,EAASA,SAAS3wB,EAAKoW,GAEhB,IAAItH,EAAgB9O,EAC7B,E,yBCrDFxyB,EAAOC,QAAU,CACfuoC,kBAnEF,SAASA,EAAkBrjC,GACzB,GAAkB,gBAAdA,EAAK9B,KACP,MAAM,IAAImuB,UAAU,qCAAuCrsB,EAAK9B,KAAO,KAGzE,IAAIqP,EAAO,GAQX,OANIvN,EAAKb,MAA2B,gBAAnBa,EAAKb,KAAKjB,KACzBqP,EAAK/K,KAAKu0B,MAAMxpB,EAVpB,SAA4B6hB,GAAO,GAAIxzB,MAAMC,QAAQuzB,GAAM,CAAE,IAAK,IAAIjzB,EAAI,EAAG6zB,EAAOp0B,MAAMwzB,EAAI5zB,QAASW,EAAIizB,EAAI5zB,OAAQW,IAAO6zB,EAAK7zB,GAAKizB,EAAIjzB,GAAM,OAAO6zB,CAAM,CAAS,OAAOp0B,MAAM0B,KAAK8xB,EAAQ,CAUxKW,CAAmBsT,EAAkBrjC,EAAKb,OAAOxB,OAAO,CAACqC,EAAKZ,SAEpFmO,EAAK/K,KAAKxC,EAAKb,KAAMa,EAAKZ,OAGrBmO,CACT,EAsDE+1B,kBA7CF,SAA2B/1B,GACzB,OAAOA,EAAK5M,QAAO,SAAUxB,EAAMC,GACjC,MAAO,CACLlB,KAAM,cACNiB,KAAMA,EACNC,MAAOA,EAEX,GACF,EAsCEqjC,wBA1BF,SAAiC/iC,GACP,MAApBA,EAAWtB,KAEbsB,EAAWtB,KAAO,IACW,MAApBsB,EAAWtB,MAEpBsB,EAAWtB,KAAO,QAClBsB,EAAWpC,KAAO,SACXoC,EAAWjB,IACW,MAApBiB,EAAWtB,MAEpBsB,EAAWtB,KAAO,QAClBsB,EAAWpC,KAAO,EAClBoC,EAAWjB,GAAK,GACa,UAApBiB,EAAWtB,OAEpBsB,EAAWpC,MAAQ,EACfoC,EAAWjB,KACbiB,EAAWjB,IAAM,GAGvB,E,+BC1EA,IAAI+jC,EAAW,EAAQ,OA8FvB3nC,EAAOC,QAAU,CAqCfkjD,SAAU,SAAkB3wB,EAAKoW,GAC/B,IAAIhnC,EAAUmuB,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,CAAE8zB,SAAS,GAwB7F,SAASC,EAAW3+C,EAAMsF,EAAQs5C,EAAMlpC,GACtC,IAAIquB,EAAavB,EAASO,WAAWz9B,GAGrC,OAFek9B,EAASO,WAAW/iC,EAAM+jC,EAAY6a,EAAMlpC,EAG7D,CA1BK9Z,MAAMC,QAAQ4nC,KACjBA,EAAW,CAACA,IAIdA,EAAWA,EAASzlC,QAAO,SAAUitB,GACnC,MAAiC,mBAAtBA,EAAQmC,WAGZnC,EAAQmC,UAAUC,EAC3B,IAEAmV,EAASqc,eAGTpb,EAAS17B,SAAQ,SAAUkjB,GACG,mBAAjBA,EAAQ0C,MACjB1C,EAAQ0C,KAAKN,EAEjB,IAvIJ,SAAqByxB,GACnB,IAAIriD,EAAUmuB,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/E5pB,EAAMvE,EAAQuE,IACdE,EAAOzE,EAAQyE,KACf69C,EAAetiD,EAAQsiD,cAE3B,SAASC,EAAMh/C,EAAMsF,EAAQs5C,EAAMlrB,GACjC,GAAK1zB,GAA6B,iBAAdA,EAAK9B,KAAzB,CAIA,IAAI+gD,OAAMx2C,EAKV,GAJIzH,IACFi+C,EAAMj+C,EAAIhB,EAAMsF,EAAQs5C,EAAMlrB,KAGpB,IAARurB,EAYF,IAAK,IAAIC,KARL55C,GAAUA,EAAOs5C,KAIjB5+C,EAHG3D,MAAMq3B,GAGFpuB,EAAOs5C,GAFPt5C,EAAOs5C,GAAMlrB,IAMN1zB,EAChB,GAAIA,EAAKgrB,eAAek0B,GAAQ,CAC9B,GAAIH,EAAeA,EAAaG,EAAOl/C,GAAqB,MAAbk/C,EAAM,GACnD,SAGF,IAAItc,EAAQ5iC,EAAKk/C,GAcjB,GAAItjD,MAAMC,QAAQ+mC,GAAQ,CACxB,IAAIltB,EAAQ,EAEZ,IADA8sB,EAAS2c,qBAAqB38C,KAAKkT,GAC5BA,EAAQktB,EAAMpnC,QACnBwjD,EAAMpc,EAAMltB,GAAQ1V,EAAMk/C,EAAOxpC,GACjCA,EAAQ8sB,EAAS4c,sBAAsB,GAEzC5c,EAAS2c,qBAAqB9/C,KAChC,MAII2/C,EAAMpc,EAAO5iC,EAAMk/C,EAEzB,CAIAh+C,GACFA,EAAKlB,EAAMsF,EAAQs5C,EAAMlrB,EA1D3B,CA4DF,CAEAsrB,CAAMF,EAAM,KACd,CAwEIO,CAAYhyB,EAAK,CAIfrsB,IAAK,SAAahB,EAAMsF,EAAQs5C,EAAMlpC,GACpC,IAAIvU,OAAW,EACV1E,EAAQiiD,UACXv9C,EAAWw9C,EAAW3+C,EAAMsF,EAAQs5C,EAAMlpC,IAG5C,IAAIoe,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBvrB,EAErB,IACE,IAAK,IAA6CwrB,EAAzCC,EAAYuP,EAASpU,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAAM,CACzJ,IAAI7I,EAAUgJ,EAAMx2B,MAGpB,GAA4B,mBAAjBwtB,EAAQ,KACjB,GAAI9pB,GAEF,IAAKA,EAASm+C,cAGU,IAFFr0B,EAAQ,KAAK9pB,GAG/B,OAAO,OAIX8pB,EAAQ,KAAKjrB,EAAMsF,EAAQs5C,EAAMlpC,GAKrC,IAAI6pC,OAAiB,EAOrB,GANkC,mBAAvBt0B,EAAQjrB,EAAK9B,MACtBqhD,EAAiBt0B,EAAQjrB,EAAK9B,MACS,iBAAvB+sB,EAAQjrB,EAAK9B,OAAwD,mBAA3B+sB,EAAQjrB,EAAK9B,MAAM8C,MAC7Eu+C,EAAiBt0B,EAAQjrB,EAAK9B,MAAM8C,KAGlCu+C,EACF,GAAIp+C,GAEF,IAAKA,EAASm+C,cAGW,IAFFC,EAAexpC,KAAKkV,EAAS9pB,GAGhD,OAAO,OAIXo+C,EAAexpC,KAAKkV,EAASjrB,EAAMsF,EAAQs5C,EAAMlpC,EAGvD,CACF,CAAE,MAAOma,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CACF,EAMA9yB,KAAM,SAAclB,EAAMsF,EAAQs5C,EAAMlpC,GACtC,GAAK1V,EAAL,CAIA,IAAImB,OAAW,EACV1E,EAAQiiD,UACXv9C,EAAWw9C,EAAW3+C,EAAMsF,EAAQs5C,EAAMlpC,IAG5C,IAAIye,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB5rB,EAEtB,IACE,IAAK,IAA8C6rB,EAA1CC,EAAakP,EAASpU,OAAOC,cAAuB6E,GAA8BG,EAASC,EAAW5E,QAAQC,MAAOuE,GAA6B,EAAM,CAC/J,IAAIlJ,EAAUqJ,EAAO72B,MAGjB+hD,OAAkB,EAKtB,GAJkC,iBAAvBv0B,EAAQjrB,EAAK9B,OAAyD,mBAA5B+sB,EAAQjrB,EAAK9B,MAAMgD,OACtEs+C,EAAkBv0B,EAAQjrB,EAAK9B,MAAMgD,MAGnCs+C,EACF,GAAIr+C,GAEF,IAAKA,EAASm+C,cAGU,IAFFE,EAAgBzpC,KAAKkV,EAAS9pB,GAGhD,OAAO,OAIXq+C,EAAgBzpC,KAAKkV,EAASjrB,EAAMsF,EAAQs5C,EAAMlpC,EAGxD,CACF,CAAE,MAAOma,GACPuE,GAAqB,EACrBC,EAAkBxE,CACpB,CAAE,QACA,KACOsE,GAA8BI,EAAWvD,QAC5CuD,EAAWvD,QAEf,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CAjDA,CAkDF,EAMA0qB,aAAc,SAAsBH,GAClC,MAAgB,QAATA,CACT,GAEJ,E,yBChTF,IAAIxzB,EAAe,WAAc,SAASC,EAAiBC,EAAQ/f,GAAS,IAAK,IAAIpP,EAAI,EAAGA,EAAIoP,EAAM/P,OAAQW,IAAK,CAAE,IAAIovB,EAAahgB,EAAMpP,GAAIovB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMhe,OAAOie,eAAeL,EAAQC,EAAWjc,IAAKic,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAYta,UAAWua,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIf6zB,EAA0B,cAC1BC,EAAsB,aAStBld,EAAW,WASb,SAASA,EAASxiC,GAChB,IAAI+jC,EAAanZ,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,KACjF+0B,EAAW/0B,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,KAC/ElV,EAAQkV,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,MAxBpF,SAAyBwB,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CA0BpJC,CAAgBzgB,KAAM22B,GAEtB32B,KAAK7L,KAAOA,EACZ6L,KAAKk4B,WAAaA,EAClBl4B,KAAKvG,OAASy+B,EAAaA,EAAW/jC,KAAO,KAC7C6L,KAAK8zC,SAAWA,EAChB9zC,KAAK6J,MAAQA,CACf,CA2WA,OAzWA0V,EAAaoX,EAAU,CAAC,CACtBlzB,IAAK,eACL7R,MAAO,SAAsBkiD,GAC3B,IAAK9zC,KAAK7L,KAAKgrB,eAAe20B,GAC5B,MAAM,IAAIvuC,MAAM,gBAAkBvF,KAAK7L,KAAK9B,KAAO,mBAAqByhD,EAAW,gBAEvF,GAYC,CACDrwC,IAAK,WACL7R,MAAO,SAAkBuC,GACvB,IAAI0V,EAAQkV,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,KAC5E+0B,EAAW/0B,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,KAG/EqU,OAAY,EAgBhB,OAfa,MAATvpB,GACGiqC,IACHA,EAAWF,GAEb5zC,KAAK+zC,aAAaD,GAClB9zC,KAAK7L,KAAK2/C,GAAUjqC,GAAS1V,EAC7Bi/B,EAAYuD,EAASO,WAAW/iC,EAAM6L,KAAM8zC,EAAUjqC,KAEjDiqC,IACHA,EAAWD,GAEb7zC,KAAK+zC,aAAaD,GAClB9zC,KAAK7L,KAAK2/C,GAAY3/C,EACtBi/B,EAAYuD,EAASO,WAAW/iC,EAAM6L,KAAM8zC,EAAU,OAEjD1gB,CACT,GAWC,CACD3vB,IAAK,cACL7R,MAAO,SAAqBuC,GAC1B,IAAI2/C,EAAW/0B,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,KAG9E+0B,IACHA,EAAWF,GAEb5zC,KAAK+zC,aAAaD,GAClB,IAAIhjC,EAAM9Q,KAAK7L,KAAK2/C,GAAUnkD,OAC9B,OAAOqQ,KAAKg0C,SAAS7/C,EAAM2c,EAAKgjC,EAClC,GAYC,CACDrwC,IAAK,gBACL7R,MAAO,SAAuBuC,EAAM0V,GAClC,IAAIiqC,EAAW/0B,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK60B,EAEnF5zC,KAAK+zC,aAAaD,GAElB9zC,KAAK7L,KAAK2/C,GAAU9gB,OAAOnpB,EAAO,EAAG1V,GAIjC0V,GAAS8sB,EAASsd,sBACpBtd,EAAS4c,sBAAsB,GAGjCvzC,KAAKk0C,cAAcl0C,KAAK7L,KAAM2/C,EAChC,GAMC,CACDrwC,IAAK,SACL7R,MAAO,WACL,IAAIoO,KAAKyzC,cAGT9c,EAASwd,SAASC,OAAOp0C,KAAK7L,MAE9B6L,KAAK7L,KAAO,KAEP6L,KAAKvG,QAAV,CAKA,GAAmB,OAAfuG,KAAK6J,MAeP,OAdA7J,KAAKvG,OAAOuG,KAAK8zC,UAAU9gB,OAAOhzB,KAAK6J,MAAO,GAI1C7J,KAAK6J,OAAS8sB,EAASsd,sBACzBtd,EAAS4c,uBAAuB,GAIlCvzC,KAAKk0C,cAAcl0C,KAAKvG,OAAQuG,KAAK8zC,UAErC9zC,KAAK6J,MAAQ,UACb7J,KAAK8zC,SAAW,aAMX9zC,KAAKvG,OAAOuG,KAAK8zC,UACxB9zC,KAAK8zC,SAAW,IAvBhB,CAwBF,GAMC,CACDrwC,IAAK,gBACL7R,MAAO,SAAuB6H,EAAQq6C,GAGpC,IAFA,IAAI5b,EAAavB,EAASO,WAAWz9B,GAE5BnJ,EAAI,EAAGA,EAAImJ,EAAOq6C,GAAUnkD,OAAQW,IAChCqmC,EAASO,WAAWz9B,EAAOq6C,GAAUxjD,GAAI4nC,EAAY4b,EAAUxjD,GACrEuZ,MAAQvZ,CAEjB,GAMC,CACDmT,IAAK,YACL7R,MAAO,WACL,OAAqB,OAAdoO,KAAK7L,IACd,GAMC,CACDsP,IAAK,UACL7R,MAAO,SAAiByiD,GAKtB,OAJA1d,EAASwd,SAASC,OAAOp0C,KAAK7L,MAE9B6L,KAAK7L,KAAOkgD,EAEPr0C,KAAKvG,QAKS,OAAfuG,KAAK6J,MACP7J,KAAKvG,OAAOuG,KAAK8zC,UAAU9zC,KAAK6J,OAASwqC,EAKvCr0C,KAAKvG,OAAOuG,KAAK8zC,UAAYO,EAI1B1d,EAASO,WAAWmd,EAASr0C,KAAKk4B,WAAYl4B,KAAK8zC,SAAU9zC,KAAK6J,QAdhE,IAeX,GAMC,CACDpG,IAAK,SACL7R,MAAO,SAAgB0iD,GACrBzyC,OAAO6lB,OAAO1nB,KAAK7L,KAAMmgD,EAC3B,GAMC,CACD7wC,IAAK,YACL7R,MAAO,WACL,OAAOoO,KAAKk4B,UACd,GAMC,CACDz0B,IAAK,WACL7R,MAAO,WACL,IAAIuQ,EAAI4c,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,EAE5E,OAAI/e,KAAK7L,KAAKlC,YACL0kC,EAASO,WAAWl3B,KAAK7L,KAAKlC,YAAYkQ,GAAInC,KAAM4zC,EAAyBzxC,GAC3EnC,KAAK7L,KAAKpB,YAAmB,GAALoP,EAC1Bw0B,EAASO,WAAWl3B,KAAK7L,KAAKpB,WAAYiN,KAAM6zC,GAElD,IACT,GAcC,CACDpwC,IAAK,iBACL7R,MAAO,SAAwBiU,GAC7B,OAAOmF,KAAKC,UAAUjL,KAAK7L,KAAMogD,KAAiBvpC,KAAKC,UAAUpF,EAAK1R,KAAMogD,EAC9E,GAMC,CACD9wC,IAAK,aACL7R,MAAO,WACL,IAAIwuB,EAAOrB,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5Ey1B,EAASp0B,EAAKo0B,OACdC,EAASr0B,EAAKq0B,OAElB,OAAOzpC,KAAKC,UAAUjL,KAAK7L,KAAMsgD,EAAS,KAAOF,EAAaC,EAChE,GAMC,CACD/wC,IAAK,qBACL7R,MAAO,WACL,OAAKoO,KAAKvG,QAAwB,MAAduG,KAAK6J,MAGlB8sB,EAASO,WAAWl3B,KAAKvG,OAAOuG,KAAK8zC,UAAU9zC,KAAK6J,MAAQ,GAAI8sB,EAASO,WAAWl3B,KAAKvG,QAASuG,KAAK8zC,SAAU9zC,KAAK6J,MAAQ,GAF5H,IAGX,GAMC,CACDpG,IAAK,iBACL7R,MAAO,WACL,OAAKoO,KAAKvG,QAAwB,MAAduG,KAAK6J,MAGlB8sB,EAASO,WAAWl3B,KAAKvG,OAAOuG,KAAK8zC,UAAU9zC,KAAK6J,MAAQ,GAAI8sB,EAASO,WAAWl3B,KAAKvG,QAASuG,KAAK8zC,SAAU9zC,KAAK6J,MAAQ,GAF5H,IAGX,IASE,CAAC,CACHpG,IAAK,aACL7R,MAAO,SAAoBuC,GACzB,IAAI+jC,EAAanZ,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,KACjFg0B,EAAOh0B,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,GAAK,KAC3ElV,EAAQkV,UAAUpvB,OAAS,QAAsBiN,IAAjBmiB,UAAU,GAAmBA,UAAU,IAAM,EAEjF,IAAK5qB,EACH,OAAO,KAGJwiC,EAASwd,SAASxxC,IAAIxO,IACzBwiC,EAASwd,SAASj3C,IAAI/I,EAAM,IAAIwiC,EAASxiC,EAAM+jC,EAAY6a,GAAgB,GAAVlpC,EAAc,KAAOA,IAGxF,IAAIhE,EAAO8wB,EAASwd,SAAS/3C,IAAIjI,GAejC,OAbmB,OAAf+jC,IACFryB,EAAKqyB,WAAaA,EAClBryB,EAAKpM,OAASoM,EAAKqyB,WAAW/jC,MAGnB,OAAT4+C,IACFltC,EAAKiuC,SAAWf,GAGdlpC,GAAS,IACXhE,EAAKgE,MAAQA,GAGRhE,CACT,GAOC,CACDpC,IAAK,eACL7R,MAAO,WACA+kC,EAASwd,WACZxd,EAASwd,SAAW,IAAIp3C,KAE1B45B,EAASwd,SAASO,OACpB,GAMC,CACDjxC,IAAK,wBACL7R,MAAO,SAA+B+iD,GACpC,OAAOhe,EAAS2c,qBAAqB3c,EAAS2c,qBAAqB3jD,OAAS,IAAMglD,CACpF,GAMC,CACDlxC,IAAK,qBACL7R,MAAO,WACL,OAAO+kC,EAAS2c,qBAAqB3c,EAAS2c,qBAAqB3jD,OAAS,EAC9E,KAGKgnC,CACT,CAjYe,GA6Yf,SAAS4d,EAAYxB,EAAMnhD,GACzB,GAAa,QAATmhD,EAGJ,OAAOnhD,CACT,CAfA+kC,EAASqc,eAOTrc,EAAS2c,qBAAuB,GAUhCtkD,EAAOC,QAAU0nC,C,wBC3ZjB3nC,EAAOC,QAAU,SAAS0C,EAAMmX,GAC9B,GAAY,OAARA,GAA+B,iBAARA,EACzB,OAAOA,EAET,IAAIsqC,OAAM,EAMV,IAAK,IAAI9iD,KAJP8iD,EADErjD,MAAMC,QAAQ8Y,GACV,GAEA,CAAC,EAEKA,EACZsqC,EAAI9iD,GAAKqB,EAAMmX,EAAIxY,IAErB,OAAO8iD,CACT,C,+BCrBApkD,EAAOC,QAAU,EAAjB,M,88kCCNI2lD,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBl4C,IAAjBm4C,EACH,OAAOA,EAAa9lD,QAGrB,IAAID,EAAS4lD,EAAyBE,GAAY,CACjDnzC,GAAImzC,EACJE,QAAQ,EACR/lD,QAAS,CAAC,GAUX,OANAgmD,EAAoBH,GAAU5qC,KAAKlb,EAAOC,QAASD,EAAQA,EAAOC,QAAS4lD,GAG3E7lD,EAAOgmD,QAAS,EAGThmD,EAAOC,OACf,CAGA4lD,EAAoBvgC,EAAI2gC,E1E5BpBlmD,EAAW,GACf8lD,EAAoB1hC,EAAI,CAACpX,EAAQm5C,EAAUxxC,EAAIyxC,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAe9lD,IACnB,IAASgB,EAAI,EAAGA,EAAIvB,EAASY,OAAQW,IAAK,CACrC4kD,EAAWnmD,EAASuB,GAAG,GACvBoT,EAAK3U,EAASuB,GAAG,GACjB6kD,EAAWpmD,EAASuB,GAAG,GAE3B,IAJA,IAGI+kD,GAAY,EACPr9C,EAAI,EAAGA,EAAIk9C,EAASvlD,OAAQqI,MACpB,EAAXm9C,GAAsBC,GAAgBD,IAAatzC,OAAOC,KAAK+yC,EAAoB1hC,GAAGte,OAAO4O,GAASoxC,EAAoB1hC,EAAE1P,GAAKyxC,EAASl9C,MAC9Ik9C,EAASliB,OAAOh7B,IAAK,IAErBq9C,GAAY,EACTF,EAAWC,IAAcA,EAAeD,IAG7C,GAAGE,EAAW,CACbtmD,EAASikC,OAAO1iC,IAAK,GACrB,IAAImkB,EAAI/Q,SACE9G,IAAN6X,IAAiB1Y,EAAS0Y,EAC/B,CACD,CACA,OAAO1Y,CArBP,CAJCo5C,EAAWA,GAAY,EACvB,IAAI,IAAI7kD,EAAIvB,EAASY,OAAQW,EAAI,GAAKvB,EAASuB,EAAI,GAAG,GAAK6kD,EAAU7kD,IAAKvB,EAASuB,GAAKvB,EAASuB,EAAI,GACrGvB,EAASuB,GAAK,CAAC4kD,EAAUxxC,EAAIyxC,EAuBjB,E2E3BdN,EAAoB1yC,EAAKnT,IACxB,IAAIsmD,EAAStmD,GAAUA,EAAOumD,WAC7B,IAAOvmD,EAAiB,QACxB,IAAM,EAEP,OADA6lD,EAAoB98C,EAAEu9C,EAAQ,CAAE5kD,EAAG4kD,IAC5BA,CAAM,ECLdT,EAAoB98C,EAAI,CAAC9I,EAASumD,KACjC,IAAI,IAAI/xC,KAAO+xC,EACXX,EAAoBtgC,EAAEihC,EAAY/xC,KAASoxC,EAAoBtgC,EAAEtlB,EAASwU,IAC5E5B,OAAOie,eAAe7wB,EAASwU,EAAK,CAAEkc,YAAY,EAAMvjB,IAAKo5C,EAAW/xC,IAE1E,ECHDoxC,EAAoB5gC,EAAI,IAAOwhC,QAAQ5wC,UCHvCgwC,EAAoB1gC,EAAI,WACvB,GAA0B,iBAAfuhC,WAAyB,OAAOA,WAC3C,IACC,OAAO11C,MAAQ,IAAI21C,SAAS,cAAb,EAChB,CAAE,MAAO1hC,GACR,GAAsB,iBAAXzR,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBqyC,EAAoBtgC,EAAI,CAACzL,EAAKiqC,IAAUlxC,OAAO4D,UAAU0Z,eAAejV,KAAKpB,EAAKiqC,GCClF8B,EAAoBpgC,EAAKxlB,IACH,oBAAXu0B,QAA0BA,OAAOoyB,aAC1C/zC,OAAOie,eAAe7wB,EAASu0B,OAAOoyB,YAAa,CAAEhkD,MAAO,WAE7DiQ,OAAOie,eAAe7wB,EAAS,aAAc,CAAE2C,OAAO,GAAO,ECL9DijD,EAAoBgB,IAAO7mD,IAC1BA,EAAO8mD,MAAQ,GACV9mD,EAAO+mD,WAAU/mD,EAAO+mD,SAAW,IACjC/mD,GCHR6lD,EAAoB78C,EAAI,K,MCAxB68C,EAAoBlkD,EAAIqlD,SAASC,SAAWjoB,KAAKvrB,SAASyzC,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAaPtB,EAAoB1hC,EAAEnb,EAAKo+C,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4BpvC,KACvD,IAKI4tC,EAAUsB,EALVlB,EAAWhuC,EAAK,GAChBqvC,EAAcrvC,EAAK,GACnBsvC,EAAUtvC,EAAK,GAGI5W,EAAI,EAC3B,GAAG4kD,EAASvqC,MAAMhJ,GAAgC,IAAxBw0C,EAAgBx0C,KAAa,CACtD,IAAImzC,KAAYyB,EACZ1B,EAAoBtgC,EAAEgiC,EAAazB,KACrCD,EAAoBvgC,EAAEwgC,GAAYyB,EAAYzB,IAGhD,GAAG0B,EAAS,IAAIz6C,EAASy6C,EAAQ3B,EAClC,CAEA,IADGyB,GAA4BA,EAA2BpvC,GACrD5W,EAAI4kD,EAASvlD,OAAQW,IACzB8lD,EAAUlB,EAAS5kD,GAChBukD,EAAoBtgC,EAAE4hC,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOvB,EAAoB1hC,EAAEpX,EAAO,EAGjC06C,EAAqBzoB,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1FyoB,EAAmBv6C,QAAQm6C,EAAqBrU,KAAK,KAAM,IAC3DyU,EAAmB9/C,KAAO0/C,EAAqBrU,KAAK,KAAMyU,EAAmB9/C,KAAKqrC,KAAKyU,G,KClDvF5B,EAAoB6B,QAAK95C,ECGzB,IAAI+5C,EAAsB9B,EAAoB1hC,OAAEvW,EAAW,CAAC,OAAO,IAAOi4C,EAAoB,SAC9F8B,EAAsB9B,EAAoB1hC,EAAEwjC,E","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?7880","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Web.vue?2edf","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=template&id=704f1c73","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?25ee","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?d53c","webpack:///nextcloud/core/src/unsupported-browser.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=style&index=0&id=7e9eda06&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n * GNOME Web (X11) is based on WebKit and should be detected as Safari\n */\n {\n regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB && diffA === \"\" && diffB === \"\") {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n\nexport const unifiedSearchLogger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content-unsupported-browser guest-box\"},[_c('NcEmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Web')]},proxy:true},{key:\"action\",fn:function(){return [_c('div',[_c('h2',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticClass:\"content-unsupported-browser__continue\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.forceBrowsing}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Continue with this unsupported browser'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"content-unsupported-browser__list\"},[_c('h3',[_vm._v(_vm._s(_vm.t('core', 'Supported versions')))]),_vm._v(\" \"),_vm._l((_vm.formattedBrowsersList),function(browser){return _c('li',{key:browser},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(browser)+\"\\n\\t\\t\\t\\t\")])})],2)]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'This browser is not supported'))+\"\\n\\t\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon web-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"WebIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Web.vue?vue&type=template&id=704f1c73\"\nimport script from \"./Web.vue?vue&type=script&lang=js\"\nexport * from \"./Web.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon web-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"content-unsupported-browser guest-box\">\n\t\t<NcEmptyContent>\n\t\t\t{{ t('core', 'This browser is not supported') }}\n\t\t\t<template #icon>\n\t\t\t\t<Web />\n\t\t\t</template>\n\t\t\t<template #action>\n\t\t\t\t<div>\n\t\t\t\t\t<h2>\n\t\t\t\t\t\t{{ t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.') }}\n\t\t\t\t\t</h2>\n\t\t\t\t\t<NcButton class=\"content-unsupported-browser__continue\" type=\"primary\" @click=\"forceBrowsing\">\n\t\t\t\t\t\t{{ t('core', 'Continue with this unsupported browser') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\n\t\t\t\t<ul class=\"content-unsupported-browser__list\">\n\t\t\t\t\t<h3>{{ t('core', 'Supported versions') }}</h3>\n\t\t\t\t\t<li v-for=\"browser in formattedBrowsersList\" :key=\"browser\">\n\t\t\t\t\t\t{{ browser }}\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\n// eslint-disable-next-line n/no-extraneous-import\nimport { agents } from 'caniuse-lite/dist/unpacker/agents.js'\nimport { generateUrl, getRootUrl } from '@nextcloud/router'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\n\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport Web from 'vue-material-design-icons/Web.vue'\n\nimport { browserStorageKey } from '../utils/RedirectUnsupportedBrowsers.js'\nimport { supportedBrowsers } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nlogger.debug('Supported browsers', { supportedBrowsers })\n\nexport default {\n\tname: 'UnsupportedBrowser',\n\tcomponents: {\n\t\tWeb,\n\t\tNcButton,\n\t\tNcEmptyContent,\n\t},\n\n\tcomputed: {\n\t\tisMobile() {\n\t\t\treturn /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n\t\t},\n\n\t\t/**\n\t\t * Filter out or include mobile/desktop browsers depending\n\t\t * on the current user platform/device\n\t\t */\n\t\tfilteredSupportedBrowsers() {\n\t\t\treturn supportedBrowsers.filter(browser => {\n\t\t\t\tif (!browser) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tif (this.isMobile) {\n\t\t\t\t\treturn this.isMobileBrowser(browser)\n\t\t\t\t}\n\t\t\t\treturn !this.isMobileBrowser(browser)\n\t\t\t})\n\t\t},\n\n\t\tformattedBrowsersList() {\n\t\t\tconst list = {}\n\n\t\t\t// supportedBrowsers is generated by webpack at compilation time\n\t\t\tthis.filteredSupportedBrowsers.forEach(browser => {\n\t\t\t\tconst [id, version] = browser.split(' ')\n\t\t\t\tif (!list[id] || list[id] < parseFloat(version, 10)) {\n\t\t\t\t\tlist[id] = parseFloat(version, 10)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn Object.keys(list).map(id => {\n\t\t\t\tif (!agents[id]?.browser) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst version = list[id]\n\t\t\t\tconst name = agents[id]?.browser\n\t\t\t\treturn this.t('core', '{name} version {version} and above', {\n\t\t\t\t\tname, version,\n\t\t\t\t})\n\t\t\t}).filter(entry => entry !== null)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tn,\n\n\t\t// Set the flag allowing this browser and redirect to home\n\t\tforceBrowsing() {\n\t\t\tbrowserStorage.setItem(browserStorageKey, true)\n\n\t\t\t// Redirect if there is the data\n\t\t\tconst urlParams = new URLSearchParams(window.location.search)\n\t\t\tif (urlParams.has('redirect_url')) {\n\t\t\t\tlet redirectPath = Buffer.from(urlParams.get('redirect_url'), 'base64').toString() || '/'\n\n\t\t\t\t// remove index.php and double slashes\n\t\t\t\tredirectPath = redirectPath\n\t\t\t\t\t.replace('index.php', '')\n\t\t\t\t\t.replace(getRootUrl(), '')\n\t\t\t\t\t.replace(/\\/\\//g, '/')\n\n\t\t\t\t// if we have a valid redirect url, use it\n\t\t\t\tif (redirectPath.startsWith('/')) {\n\t\t\t\t\twindow.location = generateUrl(redirectPath)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// else redirect to root\n\t\t\twindow.location = generateUrl('/')\n\t\t},\n\n\t\t/**\n\t\t * Detect if the browserslist browser is a mobile one\n\t\t * https://github.com/browserslist/browserslist#query-composition\n\t\t *\n\t\t * @param {string} browser a valid browserlist browser. e.g `and_chr 90`\n\t\t */\n\t\tisMobileBrowser(browser) {\n\t\t\tbrowser = browser.toLowerCase()\n\t\t\treturn browser.includes('and_')\n\t\t\t\t|| browser.includes('android')\n\t\t\t\t|| browser.includes('ios_')\n\t\t\t\t|| browser.includes('mobile')\n\t\t\t\t|| browser.includes('_mob')\n\t\t\t\t|| browser.includes('samsung')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$spacing: 30px;\n\n.content-unsupported-browser {\n\tdisplay: flex;\n\tjustify-content: center;\n\twidth: 400px;\n\tmax-width: calc(90vw - 2 * $spacing);\n\tmargin: auto;\n\tpadding: $spacing;\n\n\t.empty-content {\n\t\tmargin: 0;\n\t\t&::v-deep .empty-content__icon {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t&__continue {\n\t\tdisplay: block;\n\t\tmargin: $spacing auto;\n\t}\n\n\t&__list {\n\t\tmargin-top: 2 * $spacing;\n\t\tmargin-bottom: $spacing;\n\t\tli {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=7e9eda06&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=7e9eda06&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnsupportedBrowser.vue?vue&type=template&id=7e9eda06&scoped=true\"\nimport script from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nimport style0 from \"./UnsupportedBrowser.vue?vue&type=style&index=0&id=7e9eda06&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e9eda06\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\n\nimport { browserStorageKey } from './utils/RedirectUnsupportedBrowsers.js'\nimport browserStorage from './services/BrowserStorageService.js'\nimport UnsupportedBrowser from './views/UnsupportedBrowser.vue'\n\n// If the ignore token is set, redirect\nif (browserStorage.getItem(browserStorageKey) === 'true') {\n\twindow.location = generateUrl('/')\n}\n\nexport default new Vue({\n\tel: '#unsupported-browser',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnsupportedBrowserRoot',\n\trender: h => h(UnsupportedBrowser),\n})\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n findConfigFile: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar e2c = require('electron-to-chromium/versions')\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\n\nvar BrowserslistError = require('./error')\nvar env = require('./node')\nvar parseWithoutCache = require('./parse') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseLatestFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseLatestFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n\n function parseLatestFloat(v) {\n return parseFloat(v.split('-')[1] || v)\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parseQueries(queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\nvar parseCache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var needsPath = parseQueries(queries).some(function (node) {\n return QUERIES[node.type].needsPath\n })\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n env: opts.env\n }\n // Removing to avoid using context.path without marking query as needsPath\n if (needsPath) {\n context.path = opts.path\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nfunction parseQueries(queries) {\n var cacheKey = JSON.stringify(queries)\n if (cacheKey in parseCache) return parseCache[cacheKey]\n var result = parseWithoutCache(QUERIES, queries)\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n parseCache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parseQueries(queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfigFile = env.findConfigFile\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var iMax = data.released.length - 1\n while (iMax >= 0) {\n if (data.released[iMax] in features[name]) break\n iMax--\n }\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released[iMax]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 128']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n needsPath: true,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n needsPath: true,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var max = string.length, n = 1; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{K:0,E:0,F:0,G:0.033801,A:0,B:0.371811,kC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"kC\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{kC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{\"6\":0.003558,\"7\":0,\"8\":0.003558,\"9\":0.003558,C:0,L:0,M:0,H:0,N:0,O:0.003558,P:0.117414,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0.010674,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0.003558,s:0.049812,t:0,u:0.003558,v:0.007116,w:0.007116,x:0.010674,AB:0.003558,BB:0.021348,CB:0.010674,DB:0.014232,EB:0.007116,FB:0.010674,GB:0.010674,HB:0.021348,IB:0.021348,JB:0.01779,KB:0.021348,LB:0.067602,MB:2.88198,D:1.62245},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"D\",\"\",\"\",\"\"],E:\"Edge\",F:{\"6\":1689897600,\"7\":1692576000,\"8\":1694649600,\"9\":1697155200,C:1438128000,L:1447286400,M:1470096000,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,v:1680825600,w:1683158400,x:1685664000,AB:1698969600,BB:1701993600,CB:1706227200,DB:1708732800,EB:1711152000,FB:1713398400,GB:1715990400,HB:1718841600,IB:1721865600,JB:1724371200,KB:1726704000,LB:1729123200,MB:1731542400,D:1737417600},D:{C:\"ms\",L:\"ms\",M:\"ms\",H:\"ms\",N:\"ms\",O:\"ms\",P:\"ms\"}},C:{A:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0.234828,\"7\":0,\"8\":0,\"9\":0.085392,lC:0,IC:0,J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:0.021348,C:0,L:0,M:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0.007116,fB:0.003558,gB:0,hB:0,iB:0.003558,jB:0,kB:0,lB:0,mB:0,nB:0.028464,oB:0,pB:0,qB:0.003558,rB:0.014232,sB:0,tB:0,JC:0.003558,uB:0,KC:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,\"7B\":0,\"8B\":0,\"9B\":0,AC:0,BC:0.010674,Q:0,I:0,R:0,LC:0,S:0,T:0,U:0,V:0,W:0,X:0.003558,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0.007116,n:0,o:0,p:0,q:0,r:0,s:0.003558,t:0,u:0,v:0,w:0.007116,x:0,AB:0,BB:0.003558,CB:0.003558,DB:0,EB:0,FB:0,GB:0.01779,HB:0,IB:0.007116,JB:0.078276,KB:0.003558,LB:0.007116,MB:0.010674,D:0.021348,MC:0.49812,NC:1.02826,OC:0.007116,PC:0,mC:0,nC:0,oC:0,pC:0},B:\"moz\",C:[\"lC\",\"IC\",\"oC\",\"pC\",\"J\",\"NB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"OB\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"JC\",\"uB\",\"KC\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"AC\",\"BC\",\"Q\",\"I\",\"R\",\"LC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"D\",\"MC\",\"NC\",\"OC\",\"PC\",\"mC\",\"nC\"],E:\"Firefox\",F:{\"0\":1368489600,\"1\":1372118400,\"2\":1375747200,\"3\":1379376000,\"4\":1386633600,\"5\":1391472000,\"6\":1688428800,\"7\":1690848000,\"8\":1693267200,\"9\":1695686400,lC:1161648000,IC:1213660800,oC:1246320000,pC:1264032000,J:1300752000,NB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112000,O:1349740800,P:1353628800,OB:1357603200,y:1361232000,z:1364860800,PB:1395100800,QB:1398729600,RB:1402358400,SB:1405987200,TB:1409616000,UB:1413244800,VB:1417392000,WB:1421107200,XB:1424736000,YB:1428278400,ZB:1431475200,aB:1435881600,bB:1439251200,cB:1442880000,dB:1446508800,eB:1450137600,fB:1453852800,gB:1457395200,hB:1461628800,iB:1465257600,jB:1470096000,kB:1474329600,lB:1479168000,mB:1485216000,nB:1488844800,oB:1492560000,pB:1497312000,qB:1502150400,rB:1506556800,sB:1510617600,tB:1516665600,JC:1520985600,uB:1525824000,KC:1529971200,vB:1536105600,wB:1540252800,xB:1544486400,yB:1548720000,zB:1552953600,\"0B\":1558396800,\"1B\":1562630400,\"2B\":1567468800,\"3B\":1571788800,\"4B\":1575331200,\"5B\":1578355200,\"6B\":1581379200,\"7B\":1583798400,\"8B\":1586304000,\"9B\":1588636800,AC:1591056000,BC:1593475200,Q:1595894400,I:1598313600,R:1600732800,LC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752000,v:1681171200,w:1683590400,x:1686009600,AB:1698105600,BB:1700524800,CB:1702944000,DB:1705968000,EB:1708387200,FB:1710806400,GB:1713225600,HB:1715644800,IB:1718064000,JB:1720483200,KB:1722902400,LB:1725321600,MB:1727740800,D:1730160000,MC:1732579200,NC:1736208000,OC:1738627200,PC:null,mC:null,nC:null}},D:{A:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0.024906,\"7\":0.110298,\"8\":0.067602,\"9\":0.056928,J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0.007116,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0.003558,hB:0,iB:0.003558,jB:0.014232,kB:0.014232,lB:0.024906,mB:0,nB:0.007116,oB:0.007116,pB:0,qB:0,rB:0.010674,sB:0,tB:0.007116,JC:0,uB:0,KC:0.007116,vB:0,wB:0,xB:0,yB:0,zB:0.021348,\"0B\":0,\"1B\":0,\"2B\":0.007116,\"3B\":0.010674,\"4B\":0,\"5B\":0,\"6B\":0.007116,\"7B\":0.007116,\"8B\":0.003558,\"9B\":0.003558,AC:0.010674,BC:0.010674,Q:0.08895,I:0.010674,R:0.024906,S:0.032022,T:0,U:0.010674,V:0.01779,W:0.067602,X:0.010674,Y:0.007116,Z:0.007116,a:0.03558,b:0.010674,c:0.010674,d:0.032022,e:0.014232,f:0.007116,g:0.014232,h:0.039138,i:0.010674,j:0.007116,k:0.014232,l:0.010674,m:0.099624,n:0.042696,o:0.010674,p:0.01779,q:0.024906,r:0.039138,s:1.04605,t:0.021348,u:0.028464,v:0.039138,w:0.145878,x:0.07116,AB:0.039138,BB:0.056928,CB:0.08895,DB:0.074718,EB:0.078276,FB:0.138762,GB:0.814782,HB:0.295314,IB:0.224154,JB:0.156552,KB:0.14232,LB:0.384264,MB:12.7946,D:3.25201,MC:0.014232,NC:0.007116,OC:0,PC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"NB\",\"K\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"H\",\"N\",\"O\",\"P\",\"OB\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"JC\",\"uB\",\"KC\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"AC\",\"BC\",\"Q\",\"I\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"D\",\"MC\",\"NC\",\"OC\",\"PC\"],E:\"Chrome\",F:{\"0\":1343692800,\"1\":1348531200,\"2\":1352246400,\"3\":1357862400,\"4\":1361404800,\"5\":1364428800,\"6\":1689724800,\"7\":1692057600,\"8\":1694476800,\"9\":1696896000,J:1264377600,NB:1274745600,K:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,OB:1332892800,y:1337040000,z:1340668800,PB:1369094400,QB:1374105600,RB:1376956800,SB:1384214400,TB:1389657600,UB:1392940800,VB:1397001600,WB:1400544000,XB:1405468800,YB:1409011200,ZB:1412640000,aB:1416268800,bB:1421798400,cB:1425513600,dB:1429401600,eB:1432080000,fB:1437523200,gB:1441152000,hB:1444780800,iB:1449014400,jB:1453248000,kB:1456963200,lB:1460592000,mB:1464134400,nB:1469059200,oB:1472601600,pB:1476230400,qB:1480550400,rB:1485302400,sB:1489017600,tB:1492560000,JC:1496707200,uB:1500940800,KC:1504569600,vB:1508198400,wB:1512518400,xB:1516752000,yB:1520294400,zB:1523923200,\"0B\":1527552000,\"1B\":1532390400,\"2B\":1536019200,\"3B\":1539648000,\"4B\":1543968000,\"5B\":1548720000,\"6B\":1552348800,\"7B\":1555977600,\"8B\":1559606400,\"9B\":1564444800,AC:1568073600,BC:1571702400,Q:1575936000,I:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656000,r:1669680000,s:1673308800,t:1675728000,u:1678147200,v:1680566400,w:1682985600,x:1685404800,AB:1698710400,BB:1701993600,CB:1705968000,DB:1708387200,EB:1710806400,FB:1713225600,GB:1715644800,HB:1718064000,IB:1721174400,JB:1724112000,KB:1726531200,LB:1728950400,MB:1731369600,D:1736812800,MC:1738627200,NC:null,OC:null,PC:null}},E:{A:{J:0,NB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0.003558,M:0.01779,H:0.003558,qC:0,QC:0,rC:0,sC:0,tC:0,uC:0,RC:0,CC:0.003558,DC:0.007116,vC:0.039138,wC:0.05337,xC:0.010674,SC:0.007116,TC:0.014232,EC:0.01779,yC:0.167226,FC:0.024906,UC:0.028464,VC:0.021348,WC:0.049812,XC:0.01779,YC:0.028464,zC:0.224154,GC:0.014232,ZC:0.024906,aC:0.024906,bC:0.028464,cC:0.064044,dC:0.131646,\"0C\":0.39138,HC:0.067602,eC:0.939312,fC:0.416286,gC:0.028464,hC:0,\"1C\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"qC\",\"QC\",\"J\",\"NB\",\"rC\",\"K\",\"sC\",\"E\",\"tC\",\"F\",\"G\",\"uC\",\"A\",\"RC\",\"B\",\"CC\",\"C\",\"DC\",\"L\",\"vC\",\"M\",\"wC\",\"H\",\"xC\",\"SC\",\"TC\",\"EC\",\"yC\",\"FC\",\"UC\",\"VC\",\"WC\",\"XC\",\"YC\",\"zC\",\"GC\",\"ZC\",\"aC\",\"bC\",\"cC\",\"dC\",\"0C\",\"HC\",\"eC\",\"fC\",\"gC\",\"hC\",\"1C\",\"\"],E:\"Safari\",F:{qC:1205798400,QC:1226534400,J:1244419200,NB:1275868800,rC:1311120000,K:1343174400,sC:1382400000,E:1382400000,tC:1410998400,F:1413417600,G:1443657600,uC:1458518400,A:1474329600,RC:1490572800,B:1505779200,CC:1522281600,C:1537142400,DC:1553472000,L:1568851200,vC:1585008000,M:1600214400,wC:1619395200,H:1632096000,xC:1635292800,SC:1639353600,TC:1647216000,EC:1652745600,yC:1658275200,FC:1662940800,UC:1666569600,VC:1670889600,WC:1674432000,XC:1679875200,YC:1684368000,zC:1690156800,GC:1695686400,ZC:1698192000,aC:1702252800,bC:1705881600,cC:1709596800,dC:1715558400,\"0C\":1722211200,HC:1726444800,eC:1730073600,fC:1733875200,gC:1737936000,hC:null,\"1C\":null}},F:{A:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,OB:0,y:0,z:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0.003558,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0.014232,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,\"1B\":0,\"2B\":0,\"3B\":0,\"4B\":0,\"5B\":0,\"6B\":0,\"7B\":0,\"8B\":0,\"9B\":0,AC:0,BC:0,Q:0,I:0,R:0,LC:0,S:0,T:0,U:0,V:0.032022,W:0.010674,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.032022,f:0,g:0,h:0,i:0,j:0,k:0,l:0.010674,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:0.313104,\"2C\":0,\"3C\":0,\"4C\":0,\"5C\":0,CC:0,iC:0,\"6C\":0,DC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"G\",\"2C\",\"3C\",\"4C\",\"5C\",\"B\",\"CC\",\"iC\",\"6C\",\"C\",\"DC\",\"H\",\"N\",\"O\",\"P\",\"OB\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"1B\",\"2B\",\"3B\",\"4B\",\"5B\",\"6B\",\"7B\",\"8B\",\"9B\",\"AC\",\"BC\",\"Q\",\"I\",\"R\",\"LC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"\",\"\",\"\"],E:\"Opera\",F:{\"0\":1401753600,\"1\":1405987200,\"2\":1409616000,\"3\":1413331200,\"4\":1417132800,\"5\":1422316800,G:1150761600,\"2C\":1223424000,\"3C\":1251763200,\"4C\":1267488000,\"5C\":1277942400,B:1292457600,CC:1302566400,iC:1309219200,\"6C\":1323129600,C:1323129600,DC:1352073600,H:1372723200,N:1377561600,O:1381104000,P:1386288000,OB:1390867200,y:1393891200,z:1399334400,PB:1425945600,QB:1430179200,RB:1433808000,SB:1438646400,TB:1442448000,UB:1445904000,VB:1449100800,WB:1454371200,XB:1457308800,YB:1462320000,ZB:1465344000,aB:1470096000,bB:1474329600,cB:1477267200,dB:1481587200,eB:1486425600,fB:1490054400,gB:1494374400,hB:1498003200,iB:1502236800,jB:1506470400,kB:1510099200,lB:1515024000,mB:1517961600,nB:1521676800,oB:1525910400,pB:1530144000,qB:1534982400,rB:1537833600,sB:1543363200,tB:1548201600,uB:1554768000,vB:1561593600,wB:1566259200,xB:1570406400,yB:1573689600,zB:1578441600,\"0B\":1583971200,\"1B\":1587513600,\"2B\":1592956800,\"3B\":1595894400,\"4B\":1600128000,\"5B\":1603238400,\"6B\":1613520000,\"7B\":1612224000,\"8B\":1616544000,\"9B\":1619568000,AC:1623715200,BC:1627948800,Q:1631577600,I:1633392000,R:1635984000,LC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000,q:1707264000,r:1710115200,s:1711497600,t:1716336000,u:1719273600,v:1721088000,w:1724284800,x:1727222400},D:{G:\"o\",B:\"o\",C:\"o\",\"2C\":\"o\",\"3C\":\"o\",\"4C\":\"o\",\"5C\":\"o\",CC:\"o\",iC:\"o\",\"6C\":\"o\",DC:\"o\"}},G:{A:{F:0,QC:0,\"7C\":0,jC:0.00293498,\"8C\":0,\"9C\":0.00733744,AD:0.00880493,BD:0,CD:0.00293498,DD:0.0220123,ED:0.00440246,FD:0.0322847,GD:0.0924517,HD:0.0102724,ID:0.00586995,JD:0.155554,KD:0.00293498,LD:0.0176099,MD:0.00586995,ND:0.0220123,OD:0.143814,PD:0.0689719,QD:0.0352197,SC:0.0366872,TC:0.0425571,EC:0.0498946,RD:0.585528,FC:0.0880493,UC:0.192241,VC:0.0983217,WC:0.171696,XC:0.0366872,YC:0.0704394,SD:0.713199,GC:0.0454921,ZC:0.0807118,aC:0.063102,bC:0.0895167,cC:0.192241,dC:0.463726,TD:1.59369,HC:0.490141,eC:6.52592,fC:2.20123,gC:0.190773,hC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"QC\",\"7C\",\"jC\",\"8C\",\"9C\",\"AD\",\"F\",\"BD\",\"CD\",\"DD\",\"ED\",\"FD\",\"GD\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"MD\",\"ND\",\"OD\",\"PD\",\"QD\",\"SC\",\"TC\",\"EC\",\"RD\",\"FC\",\"UC\",\"VC\",\"WC\",\"XC\",\"YC\",\"SD\",\"GC\",\"ZC\",\"aC\",\"bC\",\"cC\",\"dC\",\"TD\",\"HC\",\"eC\",\"fC\",\"gC\",\"hC\",\"\",\"\"],E:\"Safari on iOS\",F:{QC:1270252800,\"7C\":1283904000,jC:1299628800,\"8C\":1331078400,\"9C\":1359331200,AD:1394409600,F:1410912000,BD:1413763200,CD:1442361600,DD:1458518400,ED:1473724800,FD:1490572800,GD:1505779200,HD:1522281600,ID:1537142400,JD:1553472000,KD:1568851200,LD:1572220800,MD:1580169600,ND:1585008000,OD:1600214400,PD:1619395200,QD:1632096000,SC:1639353600,TC:1647216000,EC:1652659200,RD:1658275200,FC:1662940800,UC:1666569600,VC:1670889600,WC:1674432000,XC:1679875200,YC:1684368000,SD:1690156800,GC:1694995200,ZC:1698192000,aC:1702252800,bC:1705881600,cC:1709596800,dC:1715558400,TD:1722211200,HC:1726444800,eC:1730073600,fC:1733875200,gC:1737936000,hC:null}},H:{A:{UD:0.04},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"UD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{UD:1426464000}},I:{A:{IC:0,J:0,D:0.308567,VD:0,WD:0,XD:0,YD:0.0000309216,jC:0.0000618432,ZD:0,aD:0.000371059},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"VD\",\"WD\",\"XD\",\"IC\",\"J\",\"YD\",\"jC\",\"ZD\",\"aD\",\"D\",\"\",\"\",\"\"],E:\"Android Browser\",F:{VD:1256515200,WD:1274313600,XD:1291593600,IC:1298332800,J:1318896000,YD:1341792000,jC:1374624000,ZD:1386547200,aD:1401667200,D:1737676800}},J:{A:{E:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,I:1.03581,CC:0,iC:0,DC:0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"CC\",\"iC\",\"C\",\"DC\",\"I\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,CC:1314835200,iC:1318291200,C:1330300800,DC:1349740800,I:1709769600},D:{I:\"webkit\"}},L:{A:{D:46.1904},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{D:1737676800}},M:{A:{D:0.334984},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{D:1730160000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{EC:0.83746},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"EC\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{EC:1710115200},D:{EC:\"webkit\"}},P:{A:{\"0\":0.0330772,\"1\":0.0330772,\"2\":0.0441029,\"3\":0.0441029,\"4\":0.110257,\"5\":1.90745,J:0.0661544,y:0,z:0.0220515,bD:0.0110257,cD:0,dD:0.0110257,eD:0,fD:0,RC:0,gD:0,hD:0,iD:0,jD:0,kD:0,FC:0,GC:0.0110257,HC:0,lD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"bD\",\"cD\",\"dD\",\"eD\",\"fD\",\"RC\",\"gD\",\"hD\",\"iD\",\"jD\",\"kD\",\"FC\",\"GC\",\"HC\",\"lD\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{\"0\":1689292800,\"1\":1697587200,\"2\":1711497600,\"3\":1715126400,\"4\":1717718400,\"5\":1725667200,J:1461024000,bD:1481846400,cD:1509408000,dD:1528329600,eD:1546128000,fD:1554163200,RC:1567900800,gD:1582588800,hD:1593475200,iD:1605657600,jD:1618531200,kD:1629072000,FC:1640736000,GC:1651708800,HC:1659657600,lD:1667260800,y:1677369600,z:1684454400}},Q:{A:{mD:0.199702},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"mD\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{mD:1710288000}},R:{A:{nD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"nD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{nD:1710201600}},S:{A:{oD:0.019326,pD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"oD\",\"pD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{oD:1527811200,pD:1631664000}}};\n","module.exports={\"0\":\"22\",\"1\":\"23\",\"2\":\"24\",\"3\":\"25\",\"4\":\"26\",\"5\":\"27\",\"6\":\"115\",\"7\":\"116\",\"8\":\"117\",\"9\":\"118\",A:\"10\",B:\"11\",C:\"12\",D:\"132\",E:\"7\",F:\"8\",G:\"9\",H:\"15\",I:\"80\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"17\",P:\"18\",Q:\"79\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"107\",r:\"108\",s:\"109\",t:\"110\",u:\"111\",v:\"112\",w:\"113\",x:\"114\",y:\"20\",z:\"21\",AB:\"119\",BB:\"120\",CB:\"121\",DB:\"122\",EB:\"123\",FB:\"124\",GB:\"125\",HB:\"126\",IB:\"127\",JB:\"128\",KB:\"129\",LB:\"130\",MB:\"131\",NB:\"5\",OB:\"19\",PB:\"28\",QB:\"29\",RB:\"30\",SB:\"31\",TB:\"32\",UB:\"33\",VB:\"34\",WB:\"35\",XB:\"36\",YB:\"37\",ZB:\"38\",aB:\"39\",bB:\"40\",cB:\"41\",dB:\"42\",eB:\"43\",fB:\"44\",gB:\"45\",hB:\"46\",iB:\"47\",jB:\"48\",kB:\"49\",lB:\"50\",mB:\"51\",nB:\"52\",oB:\"53\",pB:\"54\",qB:\"55\",rB:\"56\",sB:\"57\",tB:\"58\",uB:\"60\",vB:\"62\",wB:\"63\",xB:\"64\",yB:\"65\",zB:\"66\",\"0B\":\"67\",\"1B\":\"68\",\"2B\":\"69\",\"3B\":\"70\",\"4B\":\"71\",\"5B\":\"72\",\"6B\":\"73\",\"7B\":\"74\",\"8B\":\"75\",\"9B\":\"76\",AC:\"77\",BC:\"78\",CC:\"11.1\",DC:\"12.1\",EC:\"15.5\",FC:\"16.0\",GC:\"17.0\",HC:\"18.0\",IC:\"3\",JC:\"59\",KC:\"61\",LC:\"82\",MC:\"133\",NC:\"134\",OC:\"135\",PC:\"136\",QC:\"3.2\",RC:\"10.1\",SC:\"15.2-15.3\",TC:\"15.4\",UC:\"16.1\",VC:\"16.2\",WC:\"16.3\",XC:\"16.4\",YC:\"16.5\",ZC:\"17.1\",aC:\"17.2\",bC:\"17.3\",cC:\"17.4\",dC:\"17.5\",eC:\"18.1\",fC:\"18.2\",gC:\"18.3\",hC:\"18.4\",iC:\"11.5\",jC:\"4.2-4.3\",kC:\"5.5\",lC:\"2\",mC:\"137\",nC:\"138\",oC:\"3.5\",pC:\"3.6\",qC:\"3.1\",rC:\"5.1\",sC:\"6.1\",tC:\"7.1\",uC:\"9.1\",vC:\"13.1\",wC:\"14.1\",xC:\"15.1\",yC:\"15.6\",zC:\"16.6\",\"0C\":\"17.6\",\"1C\":\"TP\",\"2C\":\"9.5-9.6\",\"3C\":\"10.0-10.1\",\"4C\":\"10.5\",\"5C\":\"10.6\",\"6C\":\"11.6\",\"7C\":\"4.0-4.1\",\"8C\":\"5.0-5.1\",\"9C\":\"6.0-6.1\",AD:\"7.0-7.1\",BD:\"8.1-8.4\",CD:\"9.0-9.2\",DD:\"9.3\",ED:\"10.0-10.2\",FD:\"10.3\",GD:\"11.0-11.2\",HD:\"11.3-11.4\",ID:\"12.0-12.1\",JD:\"12.2-12.5\",KD:\"13.0-13.1\",LD:\"13.2\",MD:\"13.3\",ND:\"13.4-13.7\",OD:\"14.0-14.4\",PD:\"14.5-14.8\",QD:\"15.0-15.1\",RD:\"15.6-15.8\",SD:\"16.6-16.7\",TD:\"17.6-17.7\",UD:\"all\",VD:\"2.1\",WD:\"2.2\",XD:\"2.3\",YD:\"4.1\",ZD:\"4.4\",aD:\"4.4.3-4.4.4\",bD:\"5.0-5.4\",cD:\"6.2-6.4\",dD:\"7.2-7.4\",eD:\"8.2\",fD:\"9.2\",gD:\"11.1-11.2\",hD:\"12.0\",iD:\"13.0\",jD:\"14.0\",kD:\"15.0\",lD:\"19.0\",mD:\"14.9\",nD:\"13.52\",oD:\"2.5\",pD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.content-unsupported-browser[data-v-7e9eda06]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-7e9eda06]{margin:0}.content-unsupported-browser .empty-content[data-v-7e9eda06] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-7e9eda06]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-7e9eda06]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-7e9eda06]{text-align:left}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnsupportedBrowser.vue\"],\"names\":[],\"mappings\":\"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA\",\"sourcesContent\":[\"\\n$spacing: 30px;\\n\\n.content-unsupported-browser {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\twidth: 400px;\\n\\tmax-width: calc(90vw - 2 * $spacing);\\n\\tmargin: auto;\\n\\tpadding: $spacing;\\n\\n\\t.empty-content {\\n\\t\\tmargin: 0;\\n\\t\\t&::v-deep .empty-content__icon {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t&__continue {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $spacing auto;\\n\\t}\\n\\n\\t&__list {\\n\\t\\tmargin-top: 2 * $spacing;\\n\\t\\tmargin-bottom: $spacing;\\n\\t\\tli {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"28.3\": \"120\",\n\t\"29.0\": \"122\",\n\t\"29.1\": \"122\",\n\t\"29.2\": \"122\",\n\t\"29.3\": \"122\",\n\t\"29.4\": \"122\",\n\t\"30.0\": \"124\",\n\t\"30.1\": \"124\",\n\t\"30.2\": \"124\",\n\t\"30.3\": \"124\",\n\t\"30.4\": \"124\",\n\t\"30.5\": \"124\",\n\t\"31.0\": \"126\",\n\t\"31.1\": \"126\",\n\t\"31.2\": \"126\",\n\t\"31.3\": \"126\",\n\t\"31.4\": \"126\",\n\t\"31.5\": \"126\",\n\t\"31.6\": \"126\",\n\t\"31.7\": \"126\",\n\t\"32.0\": \"128\",\n\t\"32.1\": \"128\",\n\t\"32.2\": \"128\",\n\t\"32.3\": \"128\",\n\t\"33.0\": \"130\",\n\t\"33.1\": \"130\",\n\t\"33.2\": \"130\",\n\t\"33.3\": \"130\",\n\t\"33.4\": \"130\",\n\t\"34.0\": \"132\",\n\t\"34.1\": \"132\",\n\t\"34.2\": \"132\",\n\t\"35.0\": \"134\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?<name>a)\\k<name>/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?<!' + _assertion + ')';\n }\n\n return '(?<=' + _assertion + ')';\n }\n\n default:\n throw new TypeError('Unknown Assertion kind: ' + node.kind);\n }\n },\n CharacterClass: function CharacterClass(node) {\n var expressions = node.expressions.map(gen).join('');\n\n if (node.negative) {\n return '[^' + expressions + ']';\n }\n\n return '[' + expressions + ']';\n },\n ClassRange: function ClassRange(node) {\n return gen(node.from) + '-' + gen(node.to);\n },\n Repetition: function Repetition(node) {\n return '' + gen(node.expression) + gen(node.quantifier);\n },\n Quantifier: function Quantifier(node) {\n var quantifier = void 0;\n var greedy = node.greedy ? '' : '?';\n\n switch (node.kind) {\n case '+':\n case '?':\n case '*':\n quantifier = node.kind;\n break;\n case 'Range':\n // Exact: {1}\n if (node.from === node.to) {\n quantifier = '{' + node.from + '}';\n }\n // Open: {1,}\n else if (!node.to) {\n quantifier = '{' + node.from + ',}';\n }\n // Closed: {1,3}\n else {\n quantifier = '{' + node.from + ',' + node.to + '}';\n }\n break;\n default:\n throw new TypeError('Unknown Quantifier kind: ' + node.kind);\n }\n\n return '' + quantifier + greedy;\n },\n Char: function Char(node) {\n var value = node.value;\n\n switch (node.kind) {\n case 'simple':\n {\n if (node.escaped) {\n return '\\\\' + value;\n }\n return value;\n }\n\n case 'hex':\n case 'unicode':\n case 'oct':\n case 'decimal':\n case 'control':\n case 'meta':\n return value;\n\n default:\n throw new TypeError('Unknown Char kind: ' + node.kind);\n }\n },\n UnicodeProperty: function UnicodeProperty(node) {\n var escapeChar = node.negative ? 'P' : 'p';\n var namePart = void 0;\n\n if (!node.shorthand && !node.binary) {\n namePart = node.name + '=';\n } else {\n namePart = '';\n }\n\n return '\\\\' + escapeChar + '{' + namePart + node.value + '}';\n }\n};\n\nmodule.exports = {\n /**\n * Generates a regexp string from an AST.\n *\n * @param Object ast - an AST node\n */\n generate: gen\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode <parsing-mode> \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\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\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\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\\u0af9\\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-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?<!/, function () {\n return 'NEG_LB_ASSERT';\n}], [/^\\(\\?:/, function () {\n return 'NON_CAPTURE_GROUP';\n}], [/^\\(\\?<(([\\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\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\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\\u0af9\\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-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k<foo>` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k<foo>` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array<Object> handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array<Object> handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array<Object>:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array<Object> handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7843;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7843: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(14813)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","regexes","regex","family","maxVersion","Infinity","version","minVersion","numbersToRanges","numbers","length","SemverPart","semverify","versionParts","Array","isArray","toString","split","versionPart","semverPart","semver","i","parseInt","isNaN","compareSemvers","a","b","options","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","allowHigherVersions","compareMinor","comparePatch","compareArrays","from","len","clone","value","copy","concat","items","AlternativeNode","expressions","exps","filter","Boolean","type","SimpleCharNode","kind","String","codePoint","NaN","ClassRangeNode","to","CharacterClassNode","CapturingGroupNode","expression","capturing","number","DisjunctionCapturingGroupNode","expr","exprs","disjunction","left","right","pop","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","quantifier","greedy","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","node","isCharNode","RegExp","test","isDigitRangeNode","isExpressionNode","parseRegex","replace","classes","visitors","every","reduce","newVisitors","className","visitor","visitorPre","pre","visitorPost","post","nodePath","numberToDigits","num","Number","rayRangeDigitPattern","digit","includes","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","push","Math","min","splitToDecadeRanges","parts","map","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","range","middleSegment","_","ri","d","j","patterns","prevNode","merged","exp","unshift","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","Group","getNumberPatternsCount","numbersCounter","containsNumberPattern","parent","applyVersionsToRegex","versions","finalVersions","maxRequiredPartsCount","max","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","start","createMapper","rangedSemverToRegex","numbersToReplace","slice","shift","replaceNumberPatterns","remove","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","matchedVersions","current","Major","Minor","Patch","part","p","versionsListToRanges","applyVersionsToRegexes","browsers","targetRegexes","result","prevFamily","prevRegexIsGlobal","forEach","requestVersions","get","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","undefined","getRegexesForBrowsers","merge","Map","strVersion","join","set","sort","mergeBrowserVersions","browserslistOptions","browserslist","browser","versionString","versionStringTo","partIndex","i1","v","rangeSemver","getBrowsersList","partsRegexes","body","src","getAST","optimizeRegex","flags","compileRegex","getUserAgentRegex","browserslistConfig","supportedBrowsers","getBuilder","clearOnLogout","persist","build","user","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","detectUser","browserStorageKey","generateUrl","browserStorage","getItem","name","emits","props","title","fillColor","default","size","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","logger","debug","components","Web","NcButton","NcEmptyContent","computed","isMobile","navigator","userAgent","filteredSupportedBrowsers","isMobileBrowser","formattedBrowsersList","list","id","parseFloat","Object","keys","agents","t","entry","methods","n","forceBrowsing","setItem","urlParams","URLSearchParams","window","location","search","has","redirectPath","Buffer","getRootUrl","startsWith","toLowerCase","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","scopedSlots","_u","key","fn","proxy","_l","Vue","el","render","h","UnsupportedBrowser","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","findConfigFile","clearCaches","oldDataWarning","env","message","Error","captureStackTrace","prototype","jsReleases","e2c","jsEOL","path","parseWithoutCache","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","indexOf","normalize","normalizeElectron","versionToUse","nameMapper","getMajor","getMajorVersions","released","majorVersions","uniq","minimum","selected","array","filtered","fillUsage","data","generateFilter","sign","parseLatestFloat","parseSimpleInt","x","compare","compareSemver","semverFilterLoose","operator","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","obj","copyObject","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","nVersions","jump","op_mob","isSupported","withPartial","queries","parseQueries","index","not","query","QUERIES","select","call","compose","prepareOpts","prepareQueries","defaults","checkQueries","cache","parseCache","needsPath","some","ignoreUnknownVersions","dangerousExtend","customUsage","cacheKey","JSON","stringify","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","parse","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","supportType","features","iMax","checkDesktop","electron_range","fromToUse","toToUse","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","substr","find","trim","block","A","K","E","F","G","B","kC","C","L","M","H","N","O","P","Q","I","R","S","T","U","V","W","X","Y","Z","c","e","f","g","k","l","m","o","q","r","s","u","w","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","D","lC","IC","J","NB","OB","y","z","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","JC","uB","KC","vB","wB","xB","yB","zB","AC","BC","LC","MC","NC","OC","PC","mC","nC","oC","pC","qC","QC","rC","sC","tC","uC","RC","CC","DC","vC","wC","xC","SC","TC","EC","yC","FC","UC","VC","WC","XC","YC","zC","GC","ZC","aC","bC","cC","dC","HC","eC","fC","gC","hC","iC","jC","AD","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","RD","SD","TD","UD","VD","WD","XD","YD","ZD","aD","bD","cD","dD","eD","fD","gD","hD","iD","jD","kD","lD","mD","nD","oD","pD","agentsData","unpackBrowserVersions","versionsData","prefix_exceptions","map2","key2","prefix","browserVersions","___CSS_LOADER_EXPORT___","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getExtra","setExtra","_createClass","defineProperties","target","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","toValue","toSymbol","symbol","_groupNames","init","nameRaw","Backreference","reference","referenceRaw","namedCapturingGroups","xFlag","gen","generator","Alternative","Disjunction","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","Quantifier","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","add","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","nNode","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","pushState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","definition","Promise","globalThis","Function","toStringTag","nmd","paths","children","document","baseURI","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file |