diff --git a/dist/lib/atom-xterm.js b/dist/lib/atom-xterm.js index b91cf85a..94fb5020 100644 --- a/dist/lib/atom-xterm.js +++ b/dist/lib/atom-xterm.js @@ -1,3 +1,3 @@ /*! This file is auto-generated. Do not modify directly. */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("atom"),require("node-pty-prebuilt")):"function"==typeof define&&define.amd?define(["atom","node-pty-prebuilt"],t):"object"==typeof exports?exports["atom-xterm"]=t(require("atom"),require("node-pty-prebuilt")):e["atom-xterm"]=t(e.atom,e["node-pty-prebuilt"])}(global,function(e,t){return function(e){var t={};function a(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,a),r.l=!0,r.exports}return a.m=e,a.c=t,a.d=function(e,t,i){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(a.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)a.d(i,r,function(t){return e[t]}.bind(null,r));return i},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=69)}([function(e,t){e.exports=require("path")},function(e,t,a){var i=a(18),r=a(125),n=a(127),p=[],o=a(129);var u=function(){};function d(e){r(e),e.gracefulify=d,e.FileReadStream=h,e.FileWriteStream=f,e.createReadStream=function(e,t){return new h(e,t)},e.createWriteStream=function(e,t){return new f(e,t)};var t=e.readFile;e.readFile=function(e,a,i){"function"==typeof a&&(i=a,a=null);return function e(a,i,r){return t(a,i,function(t){!t||"EMFILE"!==t.code&&"ENFILE"!==t.code?("function"==typeof r&&r.apply(this,arguments),l()):s([e,[a,i,r]])})}(e,a,i)};var a=e.writeFile;e.writeFile=function(e,t,i,r){"function"==typeof i&&(r=i,i=null);return function e(t,i,r,n){return a(t,i,r,function(a){!a||"EMFILE"!==a.code&&"ENFILE"!==a.code?("function"==typeof n&&n.apply(this,arguments),l()):s([e,[t,i,r,n]])})}(e,t,i,r)};var i=e.appendFile;i&&(e.appendFile=function(e,t,a,r){"function"==typeof a&&(r=a,a=null);return function e(t,a,r,n){return i(t,a,r,function(i){!i||"EMFILE"!==i.code&&"ENFILE"!==i.code?("function"==typeof n&&n.apply(this,arguments),l()):s([e,[t,a,r,n]])})}(e,t,a,r)});var p=e.readdir;function o(t){return p.apply(e,t)}if(e.readdir=function(e,t,a){var i=[e];"function"!=typeof t?i.push(t):a=t;return i.push(function(e,t){t&&t.sort&&t.sort(),!e||"EMFILE"!==e.code&&"ENFILE"!==e.code?("function"==typeof a&&a.apply(this,arguments),l()):s([o,[i]])}),o(i)},"v0.8"===process.version.substr(0,4)){var u=n(e);h=u.ReadStream,f=u.WriteStream}var m=e.ReadStream;h.prototype=Object.create(m.prototype),h.prototype.open=function(){var e=this;_(e.path,e.flags,e.mode,function(t,a){t?(e.autoClose&&e.destroy(),e.emit("error",t)):(e.fd=a,e.emit("open",a),e.read())})};var c=e.WriteStream;function h(e,t){return this instanceof h?(m.apply(this,arguments),this):h.apply(Object.create(h.prototype),arguments)}function f(e,t){return this instanceof f?(c.apply(this,arguments),this):f.apply(Object.create(f.prototype),arguments)}f.prototype=Object.create(c.prototype),f.prototype.open=function(){var e=this;_(e.path,e.flags,e.mode,function(t,a){t?(e.destroy(),e.emit("error",t)):(e.fd=a,e.emit("open",a))})},e.ReadStream=h,e.WriteStream=f;var v=e.open;function _(e,t,a,i){return"function"==typeof a&&(i=a,a=null),function e(t,a,i,r){return v(t,a,i,function(n,p){!n||"EMFILE"!==n.code&&"ENFILE"!==n.code?("function"==typeof r&&r.apply(this,arguments),l()):s([e,[t,a,i,r]])})}(e,t,a,i)}return e.open=_,e}function s(e){u("ENQUEUE",e[0].name,e[1]),p.push(e)}function l(){var e=p.shift();e&&(u("RETRY",e[0].name,e[1]),e[0].apply(null,e[1]))}o.debuglog?u=o.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(u=function(){var e=o.format.apply(o,arguments);e="GFS4: "+e.split(/\n/).join("\nGFS4: "),console.error(e)}),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){u(p),a(48).equal(p.length,0)}),e.exports=d(a(47)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&(e.exports=d(i)),e.exports.close=i.close=function(e){return function(t,a){return e.call(i,t,function(e){e||l(),"function"==typeof a&&a.apply(this,arguments)})}}(i.close),e.exports.closeSync=i.closeSync=function(e){return function(t){var a=e.apply(i,arguments);return l(),a}}(i.closeSync)},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,a){"use strict";t.fromCallback=function(e){return Object.defineProperty(function(){if("function"!=typeof arguments[arguments.length-1])return new Promise((t,a)=>{arguments[arguments.length]=((e,i)=>{if(e)return a(e);t(i)}),arguments.length++,e.apply(this,arguments)});e.apply(this,arguments)},"name",{value:e.name})},t.fromPromise=function(e){return Object.defineProperty(function(){const t=arguments[arguments.length-1];if("function"!=typeof t)return e.apply(this,arguments);e.apply(this,arguments).then(e=>t(null,e),t)},"name",{value:e.name})}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function a(e,t){for(var a=0;a126}const y=new Set([47,58,59,61,64,91,92,93,94,124]);function C(e){return D(e)||y.has(e)}const E=new Set([32,34,60,62,96]);function g(e){return A(e)||E.has(e)}const w=new Set([35,63,123,125]);function D(e){return g(e)||w.has(e)}function b(e,t){const a=String.fromCodePoint(e);return t(e)?function(e){const t=Buffer.from(e);let a="";for(let e=0;e=2&&"0"===e.charAt(0)&&"x"===e.charAt(1).toLowerCase()?(e=e.substring(2),t=16):e.length>=2&&"0"===e.charAt(0)&&(e=e.substring(1),t=8),""===e)return 0;let a=/[^0-7]/;return 10===t&&(a=/[^0-9]/),16===t&&(a=/[^0-9A-Fa-f]/),a.test(e)?d:parseInt(e,t)}function B(e,t=!1){if("["===e[0])return"]"!==e[e.length-1]?d:function(e){const t=[0,0,0,0,0,0,0,0];let a=0,r=null,p=0;if(58===(e=i.ucs2.decode(e))[p]){if(58!==e[p+1])return d;p+=2,r=++a}for(;p6)return d;let i=0;for(;void 0!==e[p];){let r=null;if(i>0){if(!(46===e[p]&&i<4))return d;++p}if(!n.isASCIIDigit(e[p]))return d;for(;n.isASCIIDigit(e[p]);){const t=parseInt(l(e,p));if(null===r)r=t;else{if(0===r)return d;r=10*r+t}if(r>255)return d;++p}t[a]=256*t[a]+r,2!=++i&&4!==i||++a}if(4!==i)return d;break}if(58===e[p]){if(void 0===e[++p])return d}else if(void 0!==e[p])return d;t[a]=i,++a}if(null!==r){let e=a-r;for(a=7;0!==a&&e>0;){const i=t[r+e-1];t[r+e-1]=t[a],t[a]=i,--a,--e}}else if(null===r&&8!==a)return d;return t}(e.substring(1,e.length-1));if(t)return function(e){if(function(e){return-1!==e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)}(e))return d;let t="";const a=i.ucs2.decode(e);for(let e=0;e1&&t.pop(),t.length>4)return e;const a=[];for(const i of t){if(""===i)return e;const t=F(i);if(t===d)return e;a.push(t)}for(let e=0;e255)return d;if(a[a.length-1]>=Math.pow(256,5-a.length))return d;let i=a.pop(),r=0;for(const e of a)i+=e*Math.pow(256,3-r),++r;return i}(a);return"number"==typeof p||p===d?p:a}function S(e){return"number"==typeof e?function(e){let t="",a=e;for(let e=1;e<=4;++e)t=String(a%256)+t,4!==e&&(t="."+t),a=Math.floor(a/256);return t}(e):e instanceof Array?"["+function(e){let t="";const a=function(e){let t=null,a=1,i=null,r=0;for(let n=0;na&&(t=i,a=r),i=null,r=0):(null===i&&(i=n),++r);return r>a&&(t=i,a=r),{idx:t,len:a}}(e).idx;let i=!1;for(let r=0;r<=7;++r)i&&0===e[r]||(i&&(i=!1),a!==r?(t+=e[r].toString(16),7!==r&&(t+=":")):(t+=0===r?"::":":",i=!0));return t}(e)+"]":e}function x(e){const{path:t}=e;0!==t.length&&("file"===e.scheme&&1===t.length&&function(e){return/^[A-Za-z]:$/.test(e)}(t[0])||t.pop())}function T(e){return""!==e.username||""!==e.password}function k(e,t,a,r,n){if(this.pointer=0,this.input=e,this.base=t||null,this.encodingOverride=a||"utf-8",this.stateOverride=n,this.url=r,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};const e=function(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}(this.input);e!==this.input&&(this.parseError=!0),this.input=e}const p=function(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}(this.input);for(p!==this.input&&(this.parseError=!0),this.input=p,this.state=n||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=i.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer],t=isNaN(e)?void 0:String.fromCodePoint(e),a=this["parse "+this.state](e,t);if(!a)break;if(a===d){this.failure=!0;break}}}k.prototype["parse scheme start"]=function(e,t){if(n.isASCIIAlpha(e))this.buffer+=t.toLowerCase(),this.state="scheme";else{if(this.stateOverride)return this.parseError=!0,d;this.state="no scheme",--this.pointer}return!0},k.prototype["parse scheme"]=function(e,t){if(n.isASCIIAlphanumeric(e)||43===e||45===e||46===e)this.buffer+=t.toLowerCase();else if(58===e){if(this.stateOverride){if(f(this.url)&&!h(this.buffer))return!1;if(!f(this.url)&&h(this.buffer))return!1;if((T(this.url)||null!==this.url.port)&&"file"===this.buffer)return!1;if("file"===this.url.scheme&&(""===this.url.host||null===this.url.host))return!1}if(this.url.scheme=this.buffer,this.stateOverride)return this.url.port===_(this.url.scheme)&&(this.url.port=null),!1;this.buffer="","file"===this.url.scheme?(47===this.input[this.pointer+1]&&47===this.input[this.pointer+2]||(this.parseError=!0),this.state="file"):f(this.url)&&null!==this.base&&this.base.scheme===this.url.scheme?this.state="special relative or authority":f(this.url)?this.state="special authority slashes":47===this.input[this.pointer+1]?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else{if(this.stateOverride)return this.parseError=!0,d;this.buffer="",this.state="no scheme",this.pointer=-1}return!0},k.prototype["parse no scheme"]=function(e){return null===this.base||this.base.cannotBeABaseURL&&35!==e?d:(this.base.cannotBeABaseURL&&35===e?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):"file"===this.base.scheme?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)},k.prototype["parse special relative or authority"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0},k.prototype["parse path or authority"]=function(e){return 47===e?this.state="authority":(this.state="path",--this.pointer),!0},k.prototype["parse relative"]=function(e){return this.url.scheme=this.base.scheme,isNaN(e)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):47===e?this.state="relative slash":63===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):f(this.url)&&92===e?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0},k.prototype["parse relative slash"]=function(e){return!f(this.url)||47!==e&&92!==e?47===e?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer):(92===e&&(this.parseError=!0),this.state="special authority ignore slashes"),!0},k.prototype["parse special authority slashes"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0},k.prototype["parse special authority ignore slashes"]=function(e){return 47!==e&&92!==e?(this.state="authority",--this.pointer):this.parseError=!0,!0},k.prototype["parse authority"]=function(e,t){if(64===e){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;const e=s(this.buffer);for(let t=0;tMath.pow(2,16)-1)return this.parseError=!0,d;this.url.port=e===_(this.url.scheme)?null:e,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}return!0};const N=new Set([47,92,63,35]);function L(e,t){const a=e.length-t;return a>=2&&function(e,t){return n.isASCIIAlpha(e)&&(58===t||124===t)}(e[t],e[t+1])&&(2===a||N.has(e[t+2]))}k.prototype["parse file"]=function(e){return this.url.scheme="file",47===e||92===e?(92===e&&(this.parseError=!0),this.state="file slash"):null!==this.base&&"file"===this.base.scheme?isNaN(e)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):63===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(L(this.input,this.pointer)?this.parseError=!0:(this.url.host=this.base.host,this.url.path=this.base.path.slice(),x(this.url)),this.state="path",--this.pointer):(this.state="path",--this.pointer),!0},k.prototype["parse file slash"]=function(e){return 47===e||92===e?(92===e&&(this.parseError=!0),this.state="file host"):(null===this.base||"file"!==this.base.scheme||L(this.input,this.pointer)||(!function(e){return 2===e.length&&n.isASCIIAlpha(e.codePointAt(0))&&":"===e[1]}(this.base.path[0])?this.url.host=this.base.host:this.url.path.push(this.base.path[0])),this.state="path",--this.pointer),!0},k.prototype["parse file host"]=function(e,t){if(isNaN(e)||47===e||92===e||63===e||35===e)if(--this.pointer,!this.stateOverride&&c(this.buffer))this.parseError=!0,this.state="path";else if(""===this.buffer){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let e=B(this.buffer,v(this.url));if(e===d)return d;if("localhost"===e&&(e=""),this.url.host=e,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=t;return!0},k.prototype["parse path start"]=function(e){return f(this.url)?(92===e&&(this.parseError=!0),this.state="path",47!==e&&92!==e&&--this.pointer):this.stateOverride||63!==e?this.stateOverride||35!==e?void 0!==e&&(this.state="path",47!==e&&--this.pointer):(this.url.fragment="",this.state="fragment"):(this.url.query="",this.state="query"),!0},k.prototype["parse path"]=function(e){if(isNaN(e)||47===e||f(this.url)&&92===e||!this.stateOverride&&(63===e||35===e)){if(f(this.url)&&92===e&&(this.parseError=!0),!function(e){return".."===(e=e.toLowerCase())||"%2e."===e||".%2e"===e||"%2e%2e"===e}(this.buffer)?!m(this.buffer)||47===e||f(this.url)&&92===e?m(this.buffer)||("file"===this.url.scheme&&0===this.url.path.length&&c(this.buffer)&&(""!==this.url.host&&null!==this.url.host&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)):this.url.path.push(""):(x(this.url),47===e||f(this.url)&&92===e||this.url.path.push("")),this.buffer="","file"===this.url.scheme&&(void 0===e||63===e||35===e))for(;this.url.path.length>1&&""===this.url.path[0];)this.parseError=!0,this.url.path.shift();63===e&&(this.url.query="",this.state="query"),35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||n.isASCIIHex(this.input[this.pointer+1])&&n.isASCIIHex(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=b(e,D);return!0},k.prototype["parse cannot-be-a-base-URL path"]=function(e){return 63===e?(this.url.query="",this.state="query"):35===e?(this.url.fragment="",this.state="fragment"):(isNaN(e)||37===e||(this.parseError=!0),37!==e||n.isASCIIHex(this.input[this.pointer+1])&&n.isASCIIHex(this.input[this.pointer+2])||(this.parseError=!0),isNaN(e)||(this.url.path[0]=this.url.path[0]+b(e,A))),!0},k.prototype["parse query"]=function(e,t){if(isNaN(e)||!this.stateOverride&&35===e){f(this.url)&&"ws"!==this.url.scheme&&"wss"!==this.url.scheme||(this.encodingOverride="utf-8");const t=Buffer.from(this.buffer);for(let e=0;e126||34===t[e]||35===t[e]||60===t[e]||62===t[e]||39===t[e]&&f(this.url)?this.url.query+=p(t[e]):this.url.query+=String.fromCodePoint(t[e]);this.buffer="",35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||n.isASCIIHex(this.input[this.pointer+1])&&n.isASCIIHex(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=t;return!0},k.prototype["parse fragment"]=function(e){return isNaN(e)||(0===e?this.parseError=!0:(37!==e||n.isASCIIHex(this.input[this.pointer+1])&&n.isASCIIHex(this.input[this.pointer+2])||(this.parseError=!0),this.url.fragment+=b(e,g))),!0},e.exports.serializeURL=function(e,t){let a=e.scheme+":";if(null!==e.host?(a+="//",""===e.username&&""===e.password||(a+=e.username,""!==e.password&&(a+=":"+e.password),a+="@"),a+=S(e.host),null!==e.port&&(a+=":"+e.port)):null===e.host&&"file"===e.scheme&&(a+="//"),e.cannotBeABaseURL)a+=e.path[0];else for(const t of e.path)a+="/"+t;return null!==e.query&&(a+="?"+e.query),t||null===e.fragment||(a+="#"+e.fragment),a},e.exports.serializeURLOrigin=function(t){switch(t.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(t.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return function(e){let t=e.scheme+"://";return t+=S(e.host),null!==e.port&&(t+=":"+e.port),t}({scheme:t.scheme,host:t.host,port:t.port});case"file":return"file://";default:return"null"}},e.exports.basicURLParse=function(e,t){void 0===t&&(t={});const a=new k(e,t.baseURL,t.encodingOverride,t.url,t.stateOverride);return a.failure?null:a.url},e.exports.setTheUsername=function(e,t){e.username="";const a=i.ucs2.decode(t);for(let t=0;tthis._terminal.rows},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isCursorInViewport",{get:function(){var e=this.ybase+this.y-this.ydisp;return e>=0&&et.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:a},e.prototype.fillViewportRows=function(){if(0===this.lines.length)for(var e=this._terminal.rows;e--;)this.lines.push(this._terminal.blankLine())},e.prototype.clear=function(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new r.CircularList(this._getCorrectBufferLength(this._terminal.rows)),this.scrollTop=0,this.scrollBottom=this._terminal.rows-1,this.setupTabStops()},e.prototype.resize=function(e,a){var i=this._getCorrectBufferLength(a);if(i>this.lines.maxLength&&(this.lines.maxLength=i),this.lines.length>0){if(this._terminal.cols0&&this.lines.length<=this.ybase+this.y+p+1?(this.ybase--,p++,this.ydisp>0&&this.ydisp--):this.lines.push(this._terminal.blankLine(void 0,void 0,e)));else for(o=this._terminal.rows;o>a;o--)this.lines.length>a+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(i0&&(this.lines.trimStart(u),this.ybase=Math.max(this.ybase-u,0),this.ydisp=Math.max(this.ydisp-u,0)),this.lines.maxLength=i}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,a-1),p&&(this.y+=p),this.savedY=Math.min(this.savedY,a-1),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}this.scrollBottom=a-1},e.prototype.translateBufferLineToString=function(e,a,i,r){void 0===i&&(i=0),void 0===r&&(r=null);var n="",p=this.lines.get(e);if(!p)return"";var o=i;null===r&&(r=p.length);for(var u=r,d=0;d=d&&o--,r>d&&u--):s[t.CHAR_DATA_CHAR_INDEX].length>1&&(i>d&&(o+=s[t.CHAR_DATA_CHAR_INDEX].length-1),r>d&&(u+=s[t.CHAR_DATA_CHAR_INDEX].length-1))}if(a){var l=n.search(/\s+$/);if(-1!==l&&(u=Math.min(u,l)),u<=o)return""}return n.substring(o,u)},e.prototype.getWrappedRangeForLine=function(e){for(var t=e,a=e;t>0&&this.lines.get(t).isWrapped;)t--;for(;a+10;);return e>=this._terminal.cols?this._terminal.cols-1:e<0?0:e},e.prototype.nextStop=function(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e=this._terminal.cols?this._terminal.cols-1:e<0?0:e},e.prototype.addMarker=function(e){var t=this,a=new o(e);return this.markers.push(a),a.register(this.lines.addDisposableListener("trim",function(e){a.line-=e,a.line<0&&a.dispose()})),a.register(a.addDisposableListener("dispose",function(){return t._removeMarker(a)})),a},e.prototype._removeMarker=function(e){this.markers.splice(this.markers.indexOf(e),1)},e}();t.Buffer=p;var o=function(e){function t(a){var i=e.call(this)||this;return i.line=a,i._id=t._nextId++,i.isDisposed=!1,i}return i(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.emit("dispose"),e.prototype.dispose.call(this))},t._nextId=1,t}(n.EventEmitter);t.Marker=o},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(){var t=e.call(this)||this;return t._events=t._events||{},t}return i(t,e),t.prototype.on=function(e,t){this._events[e]=this._events[e]||[],this._events[e].push(t)},t.prototype.addDisposableListener=function(e,t){var a=this;return this.on(e,t),{dispose:function(){t&&(a.off(e,t),t=null)}}},t.prototype.off=function(e,t){if(this._events[e])for(var a=this._events[e],i=a.length;i--;)if(a[i]===t)return void a.splice(i,1)},t.prototype.removeAllListeners=function(e){this._events[e]&&delete this._events[e]},t.prototype.emit=function(e){for(var t=[],a=1;a!0).catch(()=>!1)}),pathExistsSync:r.existsSync}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this._disposables=[],this._isDisposed=!1}return e.prototype.dispose=function(){this._isDisposed=!0,this._disposables.forEach(function(e){return e.dispose()}),this._disposables.length=0},e.prototype.register=function(e){this._disposables.push(e)},e.prototype.unregister=function(e){var t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)},e}();t.Disposable=i},function(e,t,a){"use strict";var i=a(2);Object.defineProperty(t,"__esModule",{value:!0}),t.AtomXtermProfilesSingleton=t.ATOM_XTERM_BASE_URI=void 0;var r=i(a(4)),n=i(a(5)),p=a(13),o=i(a(29)),u=i(a(34)),d=i(a(0)),s=i(a(149)),l=a(36),m=a(161);t.ATOM_XTERM_BASE_URI="atom-xterm://";var c={"atom-xterm.spawnPtySettings.command":"command","atom-xterm.spawnPtySettings.args":"args","atom-xterm.spawnPtySettings.name":"name","atom-xterm.spawnPtySettings.cwd":"cwd","atom-xterm.spawnPtySettings.env":"env","atom-xterm.spawnPtySettings.setEnv":"setEnv","atom-xterm.spawnPtySettings.deleteEnv":"deleteEnv","atom-xterm.spawnPtySettings.encoding":"encoding","atom-xterm.terminalSettings.fontSize":"fontSize","atom-xterm.terminalSettings.leaveOpenAfterExit":"leaveOpenAfterExit","atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup":"allowRelaunchingTerminalsOnStartup","atom-xterm.terminalSettings.relaunchTerminalOnStartup":"relaunchTerminalOnStartup","atom-xterm.terminalSettings.title":"title","atom-xterm.terminalSettings.xtermOptions":"xtermOptions","atom-xterm.terminalSettings.promptToStartup":"promptToStartup"},h=Symbol("AtomXtermProfilesSingleton sentinel"),f=function(){function e(t){if((0,r.default)(this,e),h!==t)throw new Error("AtomXtermProfilesSingleton cannot be instantiated directly.");this.emitter=new p.Emitter,this.profilesConfigPath=d.default.join(o.default.getUserDataPath(),"profiles.json"),this.profiles={},this.previousBaseProfile=null,this.baseProfile=this.getDefaultProfile(),this.resetBaseProfile(),this.profilesLoadPromise=null,this.reloadProfiles()}return(0,n.default)(e,[{key:"sortProfiles",value:function(e){var t={};return Object.keys(e).sort().forEach(function(a){t[a]=e[a]}),t}},{key:"reloadProfiles",value:function(){var e=this;this.profilesLoadPromise=new Promise(function(t,a){u.default.readJson(e.profilesConfigPath,function(a,i){a?e.updateProfiles({}).then(function(){e.emitter.emit("did-reload-profiles",e.getSanitizedProfilesData()),t()}):(e.profiles=e.sortProfiles(i),e.emitter.emit("did-reload-profiles",e.getSanitizedProfilesData()),t())})})}},{key:"onDidReloadProfiles",value:function(e){return this.emitter.on("did-reload-profiles",e)}},{key:"onDidResetBaseProfile",value:function(e){return this.emitter.on("did-reset-base-profile",e)}},{key:"updateProfiles",value:function(e){var t=this;return new Promise(function(a,i){u.default.ensureDir(d.default.dirname(t.profilesConfigPath),function(r){r&&i(r),e=t.sortProfiles(e),u.default.writeJson(t.profilesConfigPath,e,function(r){r&&i(r),t.profiles=e,a()})})})}},{key:"deepClone",value:function(e){return JSON.parse(JSON.stringify(e))}},{key:"diffProfiles",value:function(e,t){var a=(0,m.detailedDiff)(e,t);return Object.assign(a.added,a.updated)}},{key:"getDefaultProfile",value:function(){return{command:o.default.getDefaultShellCommand(),args:JSON.parse(o.default.getDefaultArgs()),name:o.default.getDefaultTermType(),cwd:o.default.getDefaultCwd(),env:null,setEnv:JSON.parse(o.default.getDefaultSetEnv()),deleteEnv:JSON.parse(o.default.getDefaultDeleteEnv()),encoding:null,fontSize:o.default.getDefaultFontSize(),leaveOpenAfterExit:o.default.getDefaultLeaveOpenAfterExit(),relaunchTerminalOnStartup:o.default.getDefaultRelaunchTerminalOnStartup(),title:null,xtermOptions:JSON.parse(o.default.getDefaultXtermOptions()),promptToStartup:o.default.getDefaultPromptToStartup()}}},{key:"getBaseProfile",value:function(){return this.deepClone(this.baseProfile)}},{key:"validateJsonConfigSetting",value:function(e,t){var a=c[e],i=this.previousBaseProfile[a],r=atom.config.get(e);try{r=JSON.parse(r||t)||i}catch(e){if(!(e instanceof SyntaxError))throw e;r=i}return r}},{key:"resetBaseProfile",value:function(){this.previousBaseProfile=this.deepClone(this.baseProfile);var e=this.validateJsonConfigSetting("atom-xterm.spawnPtySettings.env","null");e&&e.constructor===Object||(e=null);var t=atom.config.get("atom-xterm.spawnPtySettings.encoding")||null,a=atom.config.get("atom-xterm.terminalSettings.leaveOpenAfterExit");!0!==a&&!1!==a&&(a=o.default.getDefaultLeaveOpenAfterExit());var i=atom.config.get("atom-xterm.terminalSettings.relaunchTerminalOnStartup");!0!==i&&!1!==i&&(i=o.default.getDefaultRelaunchTerminalOnStartup());var r=atom.config.get("atom-xterm.terminalSettings.title")||o.default.getDefaultTitle(),n=atom.config.get("atom-xterm.terminalSettings.promptToStartup");!0!==n&&!1!==n&&(n=o.default.getDefaultPromptToStartup()),this.baseProfile={command:atom.config.get("atom-xterm.spawnPtySettings.command")||o.default.getDefaultShellCommand(),args:this.validateJsonConfigSetting("atom-xterm.spawnPtySettings.args",o.default.getDefaultArgs()),name:atom.config.get("atom-xterm.spawnPtySettings.name")||o.default.getDefaultTermType(),cwd:atom.config.get("atom-xterm.spawnPtySettings.cwd")||o.default.getDefaultCwd(),env:e,setEnv:this.validateJsonConfigSetting("atom-xterm.spawnPtySettings.setEnv",o.default.getDefaultSetEnv()),deleteEnv:this.validateJsonConfigSetting("atom-xterm.spawnPtySettings.deleteEnv",o.default.getDefaultDeleteEnv()),encoding:t,fontSize:atom.config.get("atom-xterm.terminalSettings.fontSize")||o.default.getDefaultFontSize(),leaveOpenAfterExit:a,relaunchTerminalOnStartup:i,title:r||null,xtermOptions:this.validateJsonConfigSetting("atom-xterm.terminalSettings.xtermOptions",o.default.getDefaultXtermOptions()),promptToStartup:n},this.emitter.emit("did-reset-base-profile",this.getBaseProfile())}},{key:"sanitizeData",value:function(e){var t={};return"command"in e&&(t.command=e.command),"args"in e&&(t.args=e.args),"name"in e&&(t.name=e.name),"cwd"in e&&(t.cwd=e.cwd),"env"in e&&(t.env=e.env),"setEnv"in e&&(t.setEnv=e.setEnv),"deleteEnv"in e&&(t.deleteEnv=e.deleteEnv),"encoding"in e&&(t.encoding=e.encoding),"fontSize"in e&&(t.fontSize=e.fontSize),"leaveOpenAfterExit"in e&&(t.leaveOpenAfterExit=e.leaveOpenAfterExit),"relaunchTerminalOnStartup"in e&&(t.relaunchTerminalOnStartup=e.relaunchTerminalOnStartup),"title"in e&&(t.title=e.title),"xtermOptions"in e&&(t.xtermOptions=e.xtermOptions),"promptToStartup"in e&&(t.promptToStartup=e.promptToStartup),this.deepClone(t)}},{key:"getSanitizedProfilesData",value:function(){var e={};for(var t in this.profiles)e[t]=this.sanitizeData(this.profiles[t]);return e}},{key:"getProfiles",value:function(){var e=this;return new Promise(function(t,a){e.profilesLoadPromise.then(function(){t(e.getSanitizedProfilesData())})})}},{key:"getProfile",value:function(e){var t=this;return new Promise(function(a,i){t.profilesLoadPromise.then(function(){a(Object.assign({},t.deepClone(t.baseProfile),t.sanitizeData(t.profiles[e]||{})))})})}},{key:"isProfileExists",value:function(e){var t=this;return new Promise(function(a,i){t.profilesLoadPromise.then(function(){a(e in t.profiles)})})}},{key:"setProfile",value:function(e,t){var a=this;return new Promise(function(i,r){a.profilesLoadPromise.then(function(){var r=Object.assign({},a.deepClone(a.baseProfile),a.sanitizeData(t)),n=Object.assign({},a.deepClone(a.profiles));n[e]=r,a.updateProfiles(n).then(function(){i()})})})}},{key:"deleteProfile",value:function(e){var t=this;return new Promise(function(a,i){t.profilesLoadPromise.then(function(){var i=Object.assign({},t.deepClone(t.profiles));delete i[e],t.updateProfiles(i).then(function(){a()})})})}},{key:"generateNewUri",value:function(){return"atom-xterm://"+(0,s.default)()+"/"}},{key:"generateNewUrlFromProfileData",value:function(e){e=this.sanitizeData(e);var t=new l.URL(this.generateNewUri());return"command"in e&&t.searchParams.set("command",e.command),"args"in e&&t.searchParams.set("args",JSON.stringify(e.args)),"name"in e&&t.searchParams.set("name",e.name),"cwd"in e&&t.searchParams.set("cwd",e.cwd),"env"in e&&t.searchParams.set("env",JSON.stringify(e.env)),"setEnv"in e&&t.searchParams.set("setEnv",JSON.stringify(e.setEnv)),"deleteEnv"in e&&t.searchParams.set("deleteEnv",JSON.stringify(e.deleteEnv)),"encoding"in e&&t.searchParams.set("encoding",e.encoding),"fontSize"in e&&t.searchParams.set("fontSize",JSON.stringify(e.fontSize)),"leaveOpenAfterExit"in e&&t.searchParams.set("leaveOpenAfterExit",JSON.stringify(e.leaveOpenAfterExit)),"relaunchTerminalOnStartup"in e&&t.searchParams.set("relaunchTerminalOnStartup",JSON.stringify(e.relaunchTerminalOnStartup)),"title"in e&&t.searchParams.set("title",e.title),"xtermOptions"in e&&t.searchParams.set("xtermOptions",JSON.stringify(e.xtermOptions)),"promptToStartup"in e&&t.searchParams.set("promptToStartup",JSON.stringify(e.promptToStartup)),t}},{key:"createProfileDataFromUri",value:function(e){var t,a=new l.URL(e),i=this.getBaseProfile(),r={};return(t=a.searchParams.get("command"))&&(r.command=t),"command"in r||(r.command=i.command),(t=a.searchParams.get("args"))&&(r.args=JSON.parse(t)),"args"in r&&r.args||(r.args=i.args),(t=a.searchParams.get("name"))&&(r.name=t),"name"in r||(r.name=i.name),(t=a.searchParams.get("cwd"))&&(r.cwd=t),"cwd"in r||(r.cwd=i.cwd),(t=a.searchParams.get("env"))&&(r.env=JSON.parse(t)),"env"in r&&r.env||(r.env=i.env),(t=a.searchParams.get("setEnv"))&&(r.setEnv=JSON.parse(t)),"setEnv"in r&&r.setEnv||(r.setEnv=i.setEnv),(t=a.searchParams.get("deleteEnv"))&&(r.deleteEnv=JSON.parse(t)),"deleteEnv"in r&&r.deleteEnv||(r.deleteEnv=i.deleteEnv),(t=a.searchParams.get("encoding"))&&"null"!==t&&(r.encoding=t),"encoding"in r||(r.encoding=i.encoding),(t=a.searchParams.get("fontSize"))&&(r.fontSize=JSON.parse(t)),"fontSize"in r&&r.fontSize||(r.fontSize=i.fontSize),(t=a.searchParams.get("leaveOpenAfterExit"))&&(r.leaveOpenAfterExit=JSON.parse(t)),"leaveOpenAfterExit"in r&&null!==r.leaveOpenAfterExit&&""!==r.leaveOpenAfterExit||(r.leaveOpenAfterExit=i.leaveOpenAfterExit),(t=a.searchParams.get("relaunchTerminalOnStartup"))&&(r.relaunchTerminalOnStartup=JSON.parse(t)),"relaunchTerminalOnStartup"in r&&null!==r.relaunchTerminalOnStartup&&""!==r.relaunchTerminalOnStartup||(r.relaunchTerminalOnStartup=i.relaunchTerminalOnStartup),(t=a.searchParams.get("title"))&&"null"!==t&&(r.title=t),"title"in r||(r.title=i.title),(t=a.searchParams.get("xtermOptions"))&&(r.xtermOptions=JSON.parse(t)),"xtermOptions"in r&&r.xtermOptions||(r.xtermOptions=i.xtermOptions),(t=a.searchParams.get("promptToStartup"))&&(r.promptToStartup=JSON.parse(t)),"promptToStartup"in r&&null!==r.promptToStartup&&""!==r.promptToStartup||(r.promptToStartup=i.promptToStartup),r}}],[{key:"instance",get:function(){return this[h]||(this[h]=new e(h)),this[h]}}]),e}();t.AtomXtermProfilesSingleton=f},function(t,a){t.exports=e},function(e,t){function a(t){return e.exports=a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},a(t)}e.exports=a},function(e,t,a){var i=a(38),r=a(83);e.exports=function(e,t){return!t||"object"!==i(t)&&"function"!=typeof t?r(e):t}},function(e,t,a){var i=a(30);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}},function(e,t,a){var i=a(14),r=a(30),n=a(84);function p(t){var a="function"==typeof Map?new Map:void 0;return e.exports=p=function(e){if(null===e)return null;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==a){if(a.has(e))return a.get(e);a.set(e,t)}function t(){return n(e,arguments,i(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),r(t,e)},p(t)}e.exports=p},function(e,t){e.exports=require("fs")},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=function(e,t,a,i){return e.addEventListener(t,a,i),{dispose:function(){a&&(e.removeEventListener(t,a,i),e=null,a=null)}}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.NUL="\0",e.SOH="",e.STX="",e.ETX="",e.EOT="",e.ENQ="",e.ACK="",e.BEL="",e.BS="\b",e.HT="\t",e.LF="\n",e.VT="\v",e.FF="\f",e.CR="\r",e.SO="",e.SI="",e.DLE="",e.DC1="",e.DC2="",e.DC3="",e.DC4="",e.NAK="",e.SYN="",e.ETB="",e.CAN="",e.EM="",e.SUB="",e.ESC="",e.FS="",e.GS="",e.RS="",e.US="",e.SP=" ",e.DEL=""}(t.C0||(t.C0={})),function(e){e.PAD="€",e.HOP="",e.BPH="‚",e.NBH="ƒ",e.IND="„",e.NEL="…",e.SSA="†",e.ESA="‡",e.HTS="ˆ",e.HTJ="‰",e.VTS="Š",e.PLD="‹",e.PLU="Œ",e.RI="",e.SS2="Ž",e.SS3="",e.DCS="",e.PU1="‘",e.PU2="’",e.STS="“",e.CCH="”",e.MW="•",e.SPA="–",e.EPA="—",e.SOS="˜",e.SGCI="™",e.SCI="š",e.CSI="›",e.ST="œ",e.OSC="",e.PM="ž",e.APC="Ÿ"}(t.C1||(t.C1={}))},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.INVERTED_DEFAULT_COLOR=-1,t.DIM_OPACITY=.5},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(21),r=a(39),n=a(8),p=function(){function e(e,t,a,i,r){this._container=e,this._alpha=i,this._colors=r,this._scaledCharWidth=0,this._scaledCharHeight=0,this._scaledCellWidth=0,this._scaledCellHeight=0,this._scaledCharLeft=0,this._scaledCharTop=0,this._canvas=document.createElement("canvas"),this._canvas.classList.add("xterm-"+t+"-layer"),this._canvas.style.zIndex=a.toString(),this._initCanvas(),this._container.appendChild(this._canvas)}return e.prototype.dispose=function(){this._container.removeChild(this._canvas)},e.prototype._initCanvas=function(){this._ctx=this._canvas.getContext("2d",{alpha:this._alpha}),this._alpha||this.clearAll()},e.prototype.onOptionsChanged=function(e){},e.prototype.onBlur=function(e){},e.prototype.onFocus=function(e){},e.prototype.onCursorMove=function(e){},e.prototype.onGridChanged=function(e,t,a){},e.prototype.onSelectionChanged=function(e,t,a,i){void 0===i&&(i=!1)},e.prototype.onThemeChanged=function(e,t){this._refreshCharAtlas(e,t)},e.prototype.setTransparency=function(e,t){if(t!==this._alpha){var a=this._canvas;this._alpha=t,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,a),this._refreshCharAtlas(e,this._colors),this.onGridChanged(e,0,e.rows-1)}},e.prototype._refreshCharAtlas=function(e,t){this._scaledCharWidth<=0&&this._scaledCharHeight<=0||(this._charAtlas=r.acquireCharAtlas(e,t,this._scaledCharWidth,this._scaledCharHeight),this._charAtlas.warmUp())},e.prototype.resize=function(e,t){this._scaledCellWidth=t.scaledCellWidth,this._scaledCellHeight=t.scaledCellHeight,this._scaledCharWidth=t.scaledCharWidth,this._scaledCharHeight=t.scaledCharHeight,this._scaledCharLeft=t.scaledCharLeft,this._scaledCharTop=t.scaledCharTop,this._canvas.width=t.scaledCanvasWidth,this._canvas.height=t.scaledCanvasHeight,this._canvas.style.width=t.canvasWidth+"px",this._canvas.style.height=t.canvasHeight+"px",this._alpha||this.clearAll(),this._refreshCharAtlas(e,this._colors)},e.prototype.fillCells=function(e,t,a,i){this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,a*this._scaledCellWidth,i*this._scaledCellHeight)},e.prototype.fillBottomLineAtCells=function(e,t,a){void 0===a&&(a=1),this._ctx.fillRect(e*this._scaledCellWidth,(t+1)*this._scaledCellHeight-window.devicePixelRatio-1,a*this._scaledCellWidth,window.devicePixelRatio)},e.prototype.fillLeftLineAtCell=function(e,t){this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,window.devicePixelRatio,this._scaledCellHeight)},e.prototype.strokeRectAtCell=function(e,t,a,i){this._ctx.lineWidth=window.devicePixelRatio,this._ctx.strokeRect(e*this._scaledCellWidth+window.devicePixelRatio/2,t*this._scaledCellHeight+window.devicePixelRatio/2,a*this._scaledCellWidth-window.devicePixelRatio,i*this._scaledCellHeight-window.devicePixelRatio)},e.prototype.clearAll=function(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))},e.prototype.clearCells=function(e,t,a,i){this._alpha?this._ctx.clearRect(e*this._scaledCellWidth,t*this._scaledCellHeight,a*this._scaledCellWidth,i*this._scaledCellHeight):(this._ctx.fillStyle=this._colors.background.css,this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,a*this._scaledCellWidth,i*this._scaledCellHeight))},e.prototype.fillCharTrueColor=function(e,t,a,i){this._ctx.font=this._getFont(e,!1,!1),this._ctx.textBaseline="top",this._clipRow(e,i),this._ctx.fillText(t[n.CHAR_DATA_CHAR_INDEX],a*this._scaledCellWidth+this._scaledCharLeft,i*this._scaledCellHeight+this._scaledCharTop)},e.prototype.drawChars=function(e,t,a,r,n,p,o,u,d,s,l){o+=e.options.drawBoldTextInBrightColors&&d&&o<8&&o!==i.INVERTED_DEFAULT_COLOR?8:0,this._charAtlas&&this._charAtlas.draw(this._ctx,{chars:t,code:a,bg:u,fg:o,bold:d&&e.options.enableBold,dim:s,italic:l},n*this._scaledCellWidth+this._scaledCharLeft,p*this._scaledCellHeight+this._scaledCharTop)||this._drawUncachedChars(e,t,r,o,n,p,d&&e.options.enableBold,s,l)},e.prototype._drawUncachedChars=function(e,t,a,r,n,p,o,u,d){this._ctx.save(),this._ctx.font=this._getFont(e,o,d),this._ctx.textBaseline="top",r===i.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._colors.background.css:this._ctx.fillStyle=r<256?this._colors.ansi[r].css:this._colors.foreground.css,this._clipRow(e,p),u&&(this._ctx.globalAlpha=i.DIM_OPACITY),this._ctx.fillText(t,n*this._scaledCellWidth+this._scaledCharLeft,p*this._scaledCellHeight+this._scaledCharTop),this._ctx.restore()},e.prototype._clipRow=function(e,t){this._ctx.beginPath(),this._ctx.rect(0,t*this._scaledCellHeight,e.cols*this._scaledCellWidth,this._scaledCellHeight),this._ctx.clip()},e.prototype._getFont=function(e,t,a){var i=t?e.options.fontWeightBold:e.options.fontWeight;return(a?"italic":"")+" "+i+" "+e.options.fontSize*window.devicePixelRatio+"px "+e.options.fontFamily},e}();t.BaseRenderLayer=p},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=u("#ffffff"),r=u("#000000"),n=u("#ffffff"),p=u("#000000"),o={css:"rgba(255, 255, 255, 0.3)",rgba:4294967159};function u(e){return{css:e,rgba:parseInt(e.slice(1),16)<<8|255}}function d(e){var t=e.toString(16);return t.length<2?"0"+t:t}t.DEFAULT_ANSI_COLORS=function(){for(var e=[u("#2e3436"),u("#cc0000"),u("#4e9a06"),u("#c4a000"),u("#3465a4"),u("#75507b"),u("#06989a"),u("#d3d7cf"),u("#555753"),u("#ef2929"),u("#8ae234"),u("#fce94f"),u("#729fcf"),u("#ad7fa8"),u("#34e2e2"),u("#eeeeec")],t=[0,95,135,175,215,255],a=0;a<216;a++){var i=t[a/36%6|0],r=t[a/6%6|0],n=t[a%6];e.push({css:"#"+d(i)+d(r)+d(n),rgba:(i<<24|r<<16|n<<8|255)>>>0})}for(a=0;a<24;a++){var p=8+10*a,o=d(p);e.push({css:"#"+o+o+o,rgba:(p<<24|p<<16|p<<8|255)>>>0})}return e}();var s=function(){function e(e,a){this.allowTransparency=a;var u=e.createElement("canvas");u.width=1,u.height=1,this._ctx=u.getContext("2d"),this._ctx.globalCompositeOperation="copy",this._litmusColor=this._ctx.createLinearGradient(0,0,1,1),this.colors={foreground:i,background:r,cursor:n,cursorAccent:p,selection:o,ansi:t.DEFAULT_ANSI_COLORS.slice()}}return e.prototype.setTheme=function(e){this.colors.foreground=this._parseColor(e.foreground,i),this.colors.background=this._parseColor(e.background,r),this.colors.cursor=this._parseColor(e.cursor,n,!0),this.colors.cursorAccent=this._parseColor(e.cursorAccent,p,!0),this.colors.selection=this._parseColor(e.selection,o,!0),this.colors.ansi[0]=this._parseColor(e.black,t.DEFAULT_ANSI_COLORS[0]),this.colors.ansi[1]=this._parseColor(e.red,t.DEFAULT_ANSI_COLORS[1]),this.colors.ansi[2]=this._parseColor(e.green,t.DEFAULT_ANSI_COLORS[2]),this.colors.ansi[3]=this._parseColor(e.yellow,t.DEFAULT_ANSI_COLORS[3]),this.colors.ansi[4]=this._parseColor(e.blue,t.DEFAULT_ANSI_COLORS[4]),this.colors.ansi[5]=this._parseColor(e.magenta,t.DEFAULT_ANSI_COLORS[5]),this.colors.ansi[6]=this._parseColor(e.cyan,t.DEFAULT_ANSI_COLORS[6]),this.colors.ansi[7]=this._parseColor(e.white,t.DEFAULT_ANSI_COLORS[7]),this.colors.ansi[8]=this._parseColor(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),this.colors.ansi[9]=this._parseColor(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),this.colors.ansi[10]=this._parseColor(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),this.colors.ansi[11]=this._parseColor(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),this.colors.ansi[12]=this._parseColor(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),this.colors.ansi[13]=this._parseColor(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),this.colors.ansi[14]=this._parseColor(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),this.colors.ansi[15]=this._parseColor(e.brightWhite,t.DEFAULT_ANSI_COLORS[15])},e.prototype._parseColor=function(e,t,a){if(void 0===a&&(a=this.allowTransparency),!e)return t;if(this._ctx.fillStyle=this._litmusColor,this._ctx.fillStyle=e,"string"!=typeof this._ctx.fillStyle)return console.warn("Color: "+e+" is invalid using fallback "+t.css),t;this._ctx.fillRect(0,0,1,1);var i=this._ctx.getImageData(0,0,1,1).data;return a||255===i[3]?{css:e,rgba:(i[0]<<24|i[1]<<16|i[2]<<8|i[3])>>>0}:(console.warn("Color: "+e+" is using transparency, but allowTransparency is false. Using fallback "+t.css+"."),t)},e}();t.ColorManager=s},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i="undefined"==typeof navigator,r=i?"node":navigator.userAgent,n=i?"node":navigator.platform;function p(e,t){return e.indexOf(t)>=0}t.isFirefox=!!~r.indexOf("Firefox"),t.isSafari=/^((?!chrome|android).)*safari/i.test(r),t.isMSIE=!!~r.indexOf("MSIE")||!!~r.indexOf("Trident"),t.isMac=p(["Macintosh","MacIntel","MacPPC","Mac68K"],n),t.isIpad="iPad"===n,t.isIphone="iPhone"===n,t.isMSWindows=p(["Windows","Win16","Win32","WinCE"],n),t.isLinux=n.indexOf("Linux")>=0},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(135);e.exports={remove:i(r),removeSync:r.sync}},function(e,t,a){"use strict";const{isASCIIHex:i}=a(57);function r(e,t,a){let i=e.indexOf(t);for(;i>=0;)e[i]=a,i=e.indexOf(t,i+1);return e}function n(e){let t=e.toString(16).toUpperCase();return 1===t.length&&(t="0"+t),"%"+t}function p(e){const t=Buffer.alloc(e.byteLength);let a=0;for(let r=0;r=48&&a<=57||a>=65&&a<=90||95===a||a>=97&&a<=122?String.fromCodePoint(a):n(a);return t}e.exports={percentEncode:n,percentDecode:p,parseUrlencoded:e=>(function(e){const t=function(e,t){const a=[];let i=0,r=e.indexOf(t);for(;r>=0;)a.push(e.slice(i,r)),i=r+1,r=e.indexOf(t,i);return i!==e.length&&a.push(e.slice(i)),a}(e,38),a=[];for(const e of t){if(0===e.length)continue;let t,i;const n=e.indexOf(61);n>=0?(t=e.slice(0,n),i=e.slice(n+1)):(t=e,i=Buffer.alloc(0)),t=r(Buffer.from(t),43,32),i=r(Buffer.from(i),43,32),a.push([p(t).toString(),p(i).toString()])}return a})(Buffer.from(e)),serializeUrlencoded:function(e,t){let a="utf-8";void 0!==t&&(a=t);let i="";for(const[t,r]of e.entries()){const e=o(Buffer.from(r[0]));let n=r[1];r.length>2&&void 0!==r[2]&&("hidden"===r[2]&&"_charset_"===e?n=a:"file"===r[2]&&(n=n.name)),n=o(Buffer.from(n)),0!==t&&(i+="&"),i+=`${e}=${n}`}return i}}},function(e,t,a){var i,r,n;r=[t],void 0===(n="function"==typeof(i=function(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(e){for(var t=1;ti.promises})},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(143);e.exports={readJson:i(r.readFile),readJsonSync:r.readFileSync,writeJson:i(r.writeFile),writeJsonSync:r.writeFileSync}},function(e,t,a){"use strict";t.URL=a(153).interface,t.URLSearchParams=a(58).interface,t.parseURL=a(7).parseURL,t.basicURLParse=a(7).basicURLParse,t.serializeURL=a(7).serializeURL,t.serializeHost=a(7).serializeHost,t.serializeInteger=a(7).serializeInteger,t.serializeURLOrigin=a(7).serializeURLOrigin,t.setTheUsername=a(7).setTheUsername,t.setThePassword=a(7).setThePassword,t.cannotHaveAUsernamePasswordPort=a(7).cannotHaveAUsernamePasswordPort,t.percentDecode=a(26).percentDecode},function(e,t){e.exports=require("os")},function(e,t){function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(t){return"function"==typeof Symbol&&"symbol"===a(Symbol.iterator)?e.exports=i=function(e){return a(e)}:e.exports=i=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":a(e)},i(t)}e.exports=i},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(100),r=a(101),n=a(103),p=a(104),o={none:n.default,static:p.default,dynamic:r.default},u=[];t.acquireCharAtlas=function(e,t,a,r){for(var n=i.generateConfig(a,r,e,t),p=0;p=0){if(i.configEquals(s.config,n))return s.atlas;1===s.ownedBy.length?u.splice(p,1):s.ownedBy.splice(d,1);break}}for(p=0;p>>24,r=t.rgba>>>16&255,n=t.rgba>>>8&255,p=0;pe&&i.y1<=t+1||i.y2>e&&i.y2<=t+1||i.y1t+1)&&(this._currentZone&&this._currentZone===i&&(this._currentZone.leaveCallback(),this._currentZone=null),this._zones.splice(a--,1))}0===this._zones.length&&this._deactivate()}},t.prototype._activate=function(){this._areZonesActive||(this._areZonesActive=!0,this._terminal.element.addEventListener("mousemove",this._mouseMoveListener),this._terminal.element.addEventListener("click",this._clickListener))},t.prototype._deactivate=function(){this._areZonesActive&&(this._areZonesActive=!1,this._terminal.element.removeEventListener("mousemove",this._mouseMoveListener),this._terminal.element.removeEventListener("click",this._clickListener))},t.prototype._onMouseMove=function(e){this._lastHoverCoords[0]===e.pageX&&this._lastHoverCoords[1]===e.pageY||(this._onHover(e),this._lastHoverCoords=[e.pageX,e.pageY])},t.prototype._onHover=function(e){var t=this,a=this._findZoneEventAt(e);a!==this._currentZone&&(this._currentZone&&(this._currentZone.leaveCallback(),this._currentZone=null,this._tooltipTimeout&&clearTimeout(this._tooltipTimeout)),a&&(this._currentZone=a,a.hoverCallback&&a.hoverCallback(e),this._tooltipTimeout=setTimeout(function(){return t._onTooltip(e)},500)))},t.prototype._onTooltip=function(e){this._tooltipTimeout=null;var t=this._findZoneEventAt(e);t&&t.tooltipCallback&&t.tooltipCallback(e)},t.prototype._onMouseDown=function(e){if(this._areZonesActive){var t=this._findZoneEventAt(e);t&&t.willLinkActivate(e)&&(e.preventDefault(),e.stopImmediatePropagation())}},t.prototype._onClick=function(e){var t=this._findZoneEventAt(e);t&&(t.clickCallback(e),e.preventDefault(),e.stopImmediatePropagation())},t.prototype._findZoneEventAt=function(e){var t=this._terminal.mouseHelper.getCoords(e,this._terminal.screenElement,this._terminal.charMeasure,this._terminal.options.lineHeight,this._terminal.cols,this._terminal.rows);if(!t)return null;for(var a=t[0],i=t[1],r=0;r=n.x1&&a=n.x1||i===n.y2&&an.y1&&i1&&void 0!==arguments[1]&&arguments[1],i=[];i.push({id:"command-textbox",value:e.command}),t=JSON.stringify(e.args),i.push({id:"args-textbox",value:t}),i.push({id:"name-textbox",value:e.name}),i.push({id:"cwd-textbox",value:e.cwd}),t=this.convertNullToEmptyString(e.env),i.push({id:"env-textbox",value:t}),t=JSON.stringify(e.setEnv),i.push({id:"setenv-textbox",value:t}),t=JSON.stringify(e.deleteEnv),i.push({id:"deleteenv-textbox",value:t}),t=this.convertNullToEmptyString(e.encoding),i.push({id:"encoding-textbox",value:t}),t=e.fontSize,i.push({id:"fontsize-textbox",value:t}),t=e.title||"",i.push({id:"title-textbox",value:t}),t=JSON.stringify(e.xtermOptions),i.push({id:"xtermoptions-textbox",value:t});for(var r=0;r atom-text-editor",o=this.querySelector(p).getModel();a?o.setText(""):o.setText(n.value)}for(var u=[{id:"leaveopenafterexit-checkbox",value:e.leaveOpenAfterExit},{id:"relaunchterminalonstartup-checkbox",value:e.relaunchTerminalOnStartup},{id:"prompttostartup-checkbox",value:e.promptToStartup}],d=0;d"function"==typeof r[e]);Object.keys(r).forEach(e=>{"promises"!==e&&(t[e]=r[e])}),n.forEach(e=>{t[e]=i(r[e])}),t.exists=function(e,t){return"function"==typeof t?r.exists(e,t):new Promise(t=>r.exists(e,t))},t.read=function(e,t,a,i,n,p){return"function"==typeof p?r.read(e,t,a,i,n,p):new Promise((p,o)=>{r.read(e,t,a,i,n,(e,t,a)=>{if(e)return o(e);p({bytesRead:t,buffer:a})})})},t.write=function(e,t,...a){return"function"==typeof a[a.length-1]?r.write(e,t,...a):new Promise((i,n)=>{r.write(e,t,...a,(e,t,a)=>{if(e)return n(e);i({bytesWritten:t,buffer:a})})})}},function(e,t,a){"use strict";var i=a(18);e.exports=function(e){if(null===e||"object"!=typeof e)return e;if(e instanceof Object)var t={__proto__:e.__proto__};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(a){Object.defineProperty(t,a,Object.getOwnPropertyDescriptor(e,a))}),t}(i)},function(e,t){e.exports=require("assert")},function(e,t,a){"use strict";e.exports={copySync:a(130)}},function(e,t,a){"use strict";const i=a(0);function r(e){return(e=i.normalize(i.resolve(e)).split(i.sep)).length>0?e[0]:null}const n=/[<>:"|?*]/;e.exports={getRootPath:r,invalidWin32Path:function(e){const t=r(e);return e=e.replace(t,""),n.test(e)}}},function(e,t,a){"use strict";const i=a(1),r=a(37),n=a(0);e.exports={hasMillisRes:function(e){let t=n.join("millis-test"+Date.now().toString()+Math.random().toString().slice(2));t=n.join(r.tmpdir(),t);const a=new Date(1435410243862);i.writeFile(t,"https://github.com/jprichardson/node-fs-extra/pull/141",r=>{if(r)return e(r);i.open(t,"r+",(r,n)=>{if(r)return e(r);i.futimes(n,a,a,a=>{if(a)return e(a);i.close(n,a=>{if(a)return e(a);i.stat(t,(t,a)=>{if(t)return e(t);e(null,a.mtime>1435410243e3)})})})})})},hasMillisResSync:function(){let e=n.join("millis-test-sync"+Date.now().toString()+Math.random().toString().slice(2));e=n.join(r.tmpdir(),e);const t=new Date(1435410243862);i.writeFileSync(e,"https://github.com/jprichardson/node-fs-extra/pull/141");const a=i.openSync(e,"r+");return i.futimesSync(a,t,t),i.closeSync(a),i.statSync(e).mtime>1435410243e3},timeRemoveMillis:function(e){if("number"==typeof e)return 1e3*Math.floor(e/1e3);if(e instanceof Date)return new Date(1e3*Math.floor(e.getTime()/1e3));throw new Error("fs-extra: timeRemoveMillis() unknown parameter type")},utimesMillis:function(e,t,a,r){i.open(e,"r+",(e,n)=>{if(e)return r(e);i.futimes(n,t,a,e=>{i.close(n,t=>{r&&r(e||t)})})})},utimesMillisSync:function(e,t,a){const r=i.openSync(e,"r+");return i.futimesSync(r,t,a),i.closeSync(r)}}},function(e,t,a){"use strict";e.exports=function(e){if("function"==typeof Buffer.allocUnsafe)try{return Buffer.allocUnsafe(e)}catch(t){return new Buffer(e)}return new Buffer(e)}},function(e,t,a){"use strict";const i=a(3).fromCallback;e.exports={copy:i(a(133))}},function(e,t,a){"use strict";function i(e,t){return`${t&&t.context?t.context:"Value"} ${e}.`}function r(e){return p(Math.trunc(e))}function n(e){return e<0?-1:1}function p(e){return 0===e?0:e}function o(e,t){const a=!t.unsigned;let o,u;64===e?(u=Math.pow(2,53)-1,o=a?1-Math.pow(2,53):0):a?(o=-Math.pow(2,e-1),u=Math.pow(2,e-1)-1):(o=0,u=Math.pow(2,e)-1);const d=Math.pow(2,e),s=Math.pow(2,e-1);return(e,t)=>{void 0===t&&(t={});let l=+e;if(l=p(l),t.enforceRange){if(!Number.isFinite(l))throw new TypeError(i("is not a finite number",t));if((l=r(l))u)throw new TypeError(i(`is outside the accepted range of ${o} to ${u}, inclusive`,t));return l}return!Number.isNaN(l)&&t.clamp?l=function(e){return p(e>0&&e%1==.5&&0==(1&e)||e<0&&e%1==-.5&&1==(1&e)?Math.floor(e):Math.round(e))}(l=Math.min(Math.max(l,o),u)):Number.isFinite(l)&&0!==l?(l=r(l))>=o&&l<=u?l:(l=function(e,t){const a=e%t;return n(t)!==n(a)?a+t:a}(l,d),a&&l>=s?l-d:l):0}}function u(e,t){if("function"!=typeof e)throw new TypeError(i("is not a function",t));return e}t.any=(e=>e),t.void=function(){},t.boolean=function(e){return!!e},t.byte=o(8,{unsigned:!1}),t.octet=o(8,{unsigned:!0}),t.short=o(16,{unsigned:!1}),t["unsigned short"]=o(16,{unsigned:!0}),t.long=o(32,{unsigned:!1}),t["unsigned long"]=o(32,{unsigned:!0}),t["long long"]=o(64,{unsigned:!1}),t["unsigned long long"]=o(64,{unsigned:!0}),t.double=((e,t)=>{const a=+e;if(!Number.isFinite(a))throw new TypeError(i("is not a finite floating-point value",t));return a}),t["unrestricted double"]=(e=>{return+e}),t.float=((e,t)=>{const a=+e;if(!Number.isFinite(a))throw new TypeError(i("is not a finite floating-point value",t));if(Object.is(a,-0))return a;const r=Math.fround(a);if(!Number.isFinite(r))throw new TypeError(i("is outside the range of a single-precision floating-point value",t));return r}),t["unrestricted float"]=(e=>{const t=+e;return isNaN(t)?t:Object.is(t,-0)?t:Math.fround(t)}),t.DOMString=function(e,t){if(void 0===t&&(t={}),t.treatNullAsEmptyString&&null===e)return"";if("symbol"==typeof e)throw new TypeError(i("is a symbol, which cannot be converted to a string",t));return String(e)},t.ByteString=((e,a)=>{const r=t.DOMString(e,a);let n;for(let e=0;void 0!==(n=r.codePointAt(e));++e)if(n>255)throw new TypeError(i("is not a valid ByteString",a));return r}),t.USVString=((e,a)=>{const i=t.DOMString(e,a),r=i.length,n=[];for(let e=0;e57343)n.push(String.fromCodePoint(t));else if(56320<=t&&t<=57343)n.push(String.fromCodePoint(65533));else if(e===r-1)n.push(String.fromCodePoint(65533));else{const a=i.charCodeAt(e+1);if(56320<=a&&a<=57343){const i=1023&t,r=1023&a;n.push(String.fromCodePoint(65536+1024*i+r)),++e}else n.push(String.fromCodePoint(65533))}}return n.join("")}),t.object=((e,t)=>{if("Object"!==function(e){if(null===e)return"Null";switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"number":return"Number";case"string":return"String";case"symbol":return"Symbol";case"object":case"function":default:return"Object"}}(e))throw new TypeError(i("is not an object",t));return e}),[Error,ArrayBuffer,DataView,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Uint8ClampedArray,Float32Array,Float64Array].forEach(e=>{const a=e.name,r=/^[AEIOU]/.test(a)?"an":"a";t[a]=((t,n)=>{if(!(t instanceof e))throw new TypeError(i(`is not ${r} ${a} object`,n));return t})}),t.ArrayBufferView=((e,t)=>{if(!ArrayBuffer.isView(e))throw new TypeError(i("is not a view on an ArrayBuffer object",t));return e}),t.BufferSource=((e,t)=>{if(!(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))throw new TypeError(i("is not an ArrayBuffer object or a view on one",t));return e}),t.DOMTimeStamp=t["unsigned long long"],t.Function=u,t.VoidFunction=u},function(e,t,a){"use strict";function i(e){return Object.getPrototypeOf(e)===Buffer.prototype?e:e instanceof ArrayBuffer?Buffer.from(e):Buffer.from(e.buffer,e.byteOffset,e.byteLength)}const r=Symbol("wrapper"),n=Symbol("impl"),p=Symbol("SameObject caches");function o(e){return e?e[r]:null}function u(e){return e?e[n]:null}const d=Symbol("internal"),s=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));const l=Symbol("supports property index"),m=Symbol("supported property indices"),c=Symbol("supports property name"),h=Symbol("supported property names"),f=Symbol("indexed property get"),v=Symbol("indexed property set new"),_=Symbol("indexed property set existing"),A=Symbol("named property get"),y=Symbol("named property set new"),C=Symbol("named property set existing"),E=Symbol("named property delete");e.exports={isObject:function(e){return"object"==typeof e&&null!==e||"function"==typeof e},getReferenceToBytes:i,getCopyToBytes:function(e){return Buffer.from(i(e))},mixin:function(e,t){const a=Object.getOwnPropertyNames(t);for(let i=0;i>>0;return t!==Math.pow(2,32)-1&&e===`${t}`},supportsPropertyIndex:l,supportedPropertyIndices:m,supportsPropertyName:c,supportedPropertyNames:h,indexedGet:f,indexedSetNew:v,indexedSetExisting:_,namedGet:A,namedSetNew:y,namedSetExisting:C,namedDelete:E}},function(e,t){e.exports=require("punycode")},function(e,t,a){"use strict";function i(e){return e>=48&&e<=57}function r(e){return e>=65&&e<=90||e>=97&&e<=122}e.exports={isASCIIDigit:i,isASCIIAlpha:r,isASCIIAlphanumeric:function(e){return r(e)||i(e)},isASCIIHex:function(e){return i(e)||e>=65&&e<=70||e>=97&&e<=102}}},function(e,t,a){"use strict";const i=a(54),r=a(55),n=r.implSymbol,p=Object.create(r.IteratorPrototype,{next:{value:function(){const e=this[r.iterInternalSymbol],{target:t,kind:a,index:i}=e,p=Array.from(t[n]);if(i>=p.length)return{value:void 0,done:!0};const o=p[i];e.index=i+1;const[u,d]=o.map(r.tryWrapperForImpl);let s;switch(a){case"key":s=u;break;case"value":s=d;break;case"key+value":s=[u,d]}return{value:s,done:!1}},writable:!0,enumerable:!0,configurable:!0},[Symbol.toStringTag]:{value:"URLSearchParamsIterator",writable:!1,enumerable:!1,configurable:!0}});function o(){const e=[];for(let t=0;t0&&void 0!==arguments[0])||arguments[0];this.panel.isVisible()&&(this.textbox.setText(""),this.panel.hide(),this.atomXtermProfileMenuElement.isVisible()&&e&&this.atomXtermProfileMenuElement.focus())}},{key:"promptForNewProfileName",value:function(e,t){var a=this;!this.panel.isVisible()&&(0,d.currentItemIsAtomXtermModel)()&&(this.textbox=new p.TextEditor({mini:!0}),this.textbox.getElement().addEventListener("blur",function(e){a.close()}),atom.commands.add(this.textbox.getElement(),"core:confirm",function(){a.confirm(e,t)}),atom.commands.add(this.textbox.getElement(),"core:cancel",function(){a.close()}),this.element.setNewTextbox(this.textbox),this.panel.show(),this.textbox.getElement().focus())}}]),e}();t.AtomXtermSaveProfileModel=s},function(e,t,a){"use strict";var i=a(2);Object.defineProperty(t,"__esModule",{value:!0}),t.AtomXtermOverwriteProfileModel=void 0;var r=i(a(4)),n=i(a(5)),p=a(12),o=function(){function e(t){(0,r.default)(this,e),this.atomXtermSaveProfileModel=t,this.atomXtermProfileMenuElement=this.atomXtermSaveProfileModel.atomXtermProfileMenuElement,this.profilesSingleton=p.AtomXtermProfilesSingleton.instance,this.element=null,this.panel=atom.workspace.addModalPanel({item:this,visible:!1})}return(0,n.default)(e,[{key:"getTitle",value:function(){return"atom-xterm Overwrite Profile Model"}},{key:"getElement",value:function(){return this.element}},{key:"setElement",value:function(e){this.element=e}},{key:"close",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.panel.isVisible()&&(this.panel.hide(),a&&this.atomXtermSaveProfileModel.promptForNewProfileName(e,t))}},{key:"promptOverwrite",value:function(e,t,a){var i=this;this.panel.show();this.getElement().setNewPrompt(e,function(r){i.profilesSingleton.setProfile(e,t).then(function(){i.profilesSingleton.reloadProfiles(),i.profilesSingleton.profilesLoadPromise.then(function(){i.close(t,a),i.atomXtermProfileMenuElement.applyProfileChanges(a)})})},function(e){i.close(t,a,!0)})}}]),e}();t.AtomXtermOverwriteProfileModel=o},function(e,t,a){"use strict";var i=a(2);Object.defineProperty(t,"__esModule",{value:!0}),t.isAtomXtermModel=c,t.currentItemIsAtomXtermModel=function(){return c(atom.workspace.getActivePaneItem())},t.AtomXtermModel=void 0;var r=i(a(4)),n=i(a(5)),p=a(13),o=a(12),u=i(a(34)),d=i(a(0)),s=a(36),l="Atom Xterm",m=function(){function e(t){var a=this;(0,r.default)(this,e),this.options=t,this.uri=this.options.uri;var i=new s.URL(this.uri);this.sessionId=i.host,this.profilesSingleton=o.AtomXtermProfilesSingleton.instance,this.profile=this.profilesSingleton.createProfileDataFromUri(this.uri),this.terminals_set=this.options.terminals_set,this.element=null,this.pane=null,this.title=l,null!==this.profile.title&&(this.title=this.profile.title),this.modified=!1,this.emitter=new p.Emitter,this.terminals_set.add(this),this.isInitialized=!1,this.initializedPromise=new Promise(function(e,t){var i=a.profilesSingleton.getBaseProfile(),r=atom.workspace.getActivePaneItem(),n=a.profile.cwd;void 0!==r&&"function"==typeof r.getPath&&(n=r.getPath());var p=atom.project.relativizePath(n)[0];p?(a.profile.cwd=p,e()):n?u.default.exists(n,function(r){r?u.default.stat(n,function(r,p){r&&t(r),p.isDirectory()?(a.profile.cwd=n,e()):(n=d.default.dirname(n),u.default.stat(n,function(r,p){r&&t(r),p.isDirectory?(a.profile.cwd=n,e()):(a.profile.cwd=i.cwd,e())}))}):(a.profile.cwd=i.cwd,e())}):(a.profile.cwd=i.cwd,e())}).then(function(){a.isInitialized=!0})}return(0,n.default)(e,[{key:"serialize",value:function(){return{deserializer:"AtomXtermModel",version:"2017-09-17",uri:this.profilesSingleton.generateNewUrlFromProfileData(this.profile).href}}},{key:"destroy",value:function(){this.element&&this.element.destroy(),this.terminals_set.delete(this)}},{key:"getTitle",value:function(){return this.title}},{key:"getElement",value:function(){return this.element}},{key:"getURI",value:function(){return this.uri}},{key:"getLongTitle",value:function(){return this.title===l?l:l+" ("+this.title+")"}},{key:"onDidChangeTitle",value:function(e){return this.emitter.on("did-change-title",e)}},{key:"getIconName",value:function(){return"terminal"}},{key:"getPath",value:function(){return this.profile.cwd}},{key:"isModified",value:function(){return this.modified}},{key:"onDidChangeModified",value:function(e){return this.emitter.on("did-change-modified",e)}},{key:"handleNewDataArrival",value:function(){this.pane||(this.pane=atom.workspace.paneForItem(this));var e,t=this.modified;this.pane&&(e=this.pane.getActiveItem()),this.modified=e!==this,t!==this.modified&&this.emitter.emit("did-change-modified",this.modified)}},{key:"getSessionId",value:function(){return this.sessionId}},{key:"getSessionParameters",value:function(){var e=this.profilesSingleton.generateNewUrlFromProfileData(this.profile);return e.searchParams.sort(),e.searchParams.toString()}},{key:"refitTerminal",value:function(){this.element&&this.element.refitTerminal()}},{key:"focusOnTerminal",value:function(){this.element.focusOnTerminal();var e=this.modified;this.modified=!1,e!==this.modified&&this.emitter.emit("did-change-modified",this.modified)}},{key:"exit",value:function(){this.pane.destroyItem(this,!0)}},{key:"restartPtyProcess",value:function(){this.element&&this.element.restartPtyProcess()}},{key:"copyFromTerminal",value:function(){return this.element.terminal.getSelection()}},{key:"pasteToTerminal",value:function(e){this.element.ptyProcess.write(e)}},{key:"setNewPane",value:function(e){this.pane=e}},{key:"openHoveredLink",value:function(){this.element.openHoveredLink()}},{key:"getHoveredLink",value:function(){return this.element.getHoveredLink()}},{key:"toggleProfileMenu",value:function(){this.element.toggleProfileMenu()}},{key:"getProfile",value:function(){return this.profile}},{key:"applyProfileChanges",value:function(e){e=this.profilesSingleton.sanitizeData(e),this.profile=this.profilesSingleton.deepClone(Object.assign(this.profile,e)),this.element.queueNewProfileChanges(e)}}]),e}();function c(e){return e instanceof m}t.AtomXtermModel=m},function(e,t,a){"use strict";var i=a(2);Object.defineProperty(t,"__esModule",{value:!0}),t.AtomXtermProfileMenuModel=void 0;var r=i(a(4)),n=i(a(5)),p=function(){function e(t){(0,r.default)(this,e),this.atomXtermModel=t,this.element=null}return(0,n.default)(e,[{key:"destroy",value:function(){this.element&&this.element.destroy()}},{key:"getTitle",value:function(){return"Atom Xterm Profile Menu"}},{key:"getElement",value:function(){return this.element}},{key:"setElement",value:function(e){this.element=e}},{key:"getAtomXtermModelElement",value:function(){return this.atomXtermModel.getElement()}},{key:"getAtomXtermModel",value:function(){return this.atomXtermModel}}]),e}();t.AtomXtermProfileMenuModel=p},function(e,t,a){"use strict";(e.exports={}).forEach=function(e,t){for(var a=0;a4?e:void 0}())},i.isLegacyOpera=function(){return!!window.opera}},function(e,t,a){"use strict";var i=a(2);Object.defineProperty(t,"__esModule",{value:!0}),t.activate=function(e){return w.instance.activate(e)},t.deactivate=function(){return w.instance.deactivate()},t.deserializeAtomXtermModel=function(e,t){return w.instance.deserializeAtomXtermModel(e,t)},t.provideAtomXtermService=function(){return w.instance.provideAtomXtermService()},t.config=void 0;var r=i(a(70)),n=i(a(73)),p=i(a(4)),o=i(a(5));a(74);var u=a(13),d=i(a(29)),s=a(77),l=a(65),m=a(12),c=a(45),h=a(66),f=a(175),v=a(62),_=a(176),A=a(64),y=a(177),C=a(63),E=a(36),g=Symbol("AtomXtermSingleton sentinel"),w=function(){function e(t){if((0,p.default)(this,e),g!==t)throw new Error("AtomXtermSingleton cannot be instantiated directly.")}return(0,o.default)(e,[{key:"activate",value:function(e){var t=this;this.profilesSingleton=m.AtomXtermProfilesSingleton.instance,this.profilesSingleton.resetBaseProfile(),this.disposables=new u.CompositeDisposable,this.terminals_set=new Set;for(var a=["atom-xterm.spawnPtySettings.command","atom-xterm.spawnPtySettings.args","atom-xterm.spawnPtySettings.name","atom-xterm.spawnPtySettings.cwd","atom-xterm.spawnPtySettings.env","atom-xterm.spawnPtySettings.setEnv","atom-xterm.spawnPtySettings.deleteEnv","atom-xterm.spawnPtySettings.encoding","atom-xterm.terminalSettings.fontSize","atom-xterm.terminalSettings.leaveOpenAfterExit","atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup","atom-xterm.terminalSettings.relaunchTerminalOnStartup","atom-xterm.terminalSettings.title","atom-xterm.terminalSettings.xtermOptions","atom-xterm.terminalSettings.promptToStartup"],i=0;i1&&void 0!==n[1]?n[1]:{},i=new E.URL(t),null===i.searchParams.get("relaunchTerminalOnStartup")&&(this.profilesSingleton.getBaseProfile().relaunchTerminalOnStartup||i.searchParams.set("relaunchTerminalOnStartup",!1)),e.abrupt("return",atom.workspace.open(i.href,a));case 5:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"openTerminal",value:function(){var e=(0,n.default)(r.default.mark(function e(t){var a,i=arguments;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a=i.length>1&&void 0!==i[1]?i[1]:{},e.abrupt("return",this.open(m.AtomXtermProfilesSingleton.instance.generateNewUrlFromProfileData(t),a));case 2:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"provideAtomXtermService",value:function(){var e=this;return{openTerminal:function(){var t=(0,n.default)(r.default.mark(function t(){var a=arguments;return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.openTerminal.apply(e,a));case 1:case"end":return t.stop()}},t,this)}));return function(){return t.apply(this,arguments)}}()}}},{key:"performOperationOnItem",value:function(e){var t=atom.workspace.getActivePaneItem();if((0,l.isAtomXtermModel)(t))switch(e){case"close":t.exit();break;case"restart":t.restartPtyProcess();break;case"copy":atom.clipboard.write(t.copyFromTerminal());break;case"paste":t.pasteToTerminal(atom.clipboard.read());break;case"open-link":t.openHoveredLink();break;case"copy-link":var a=t.getHoveredLink();a&&atom.clipboard.write(a);break;default:throw new Error("Unknown operation: "+e)}}},{key:"close",value:function(){this.performOperationOnItem("close")}},{key:"restart",value:function(){this.performOperationOnItem("restart")}},{key:"copy",value:function(){this.performOperationOnItem("copy")}},{key:"paste",value:function(){this.performOperationOnItem("paste")}},{key:"openLink",value:function(){this.performOperationOnItem("open-link")}},{key:"copyLink",value:function(){this.performOperationOnItem("copy-link")}},{key:"toggleProfileMenu",value:function(){var e=atom.workspace.getActivePaneItem();(0,l.isAtomXtermModel)(e)&&e.toggleProfileMenu()}},{key:"reorganize",value:function(e){if(0!==this.terminals_set.size){var t,a=atom.workspace.getActivePane(),i=a.getActiveItem();switch(e){case"current":t=a;break;case"top":t=a.findTopmostSibling().splitUp();break;case"bottom":t=a.findBottommostSibling().splitDown();break;case"left":t=a.findLeftmostSibling().splitLeft();break;case"right":t=a.findRightmostSibling().splitRight();break;case"bottom-dock":t=atom.workspace.getBottomDock().getActivePane();break;case"left-dock":t=atom.workspace.getLeftDock().getActivePane();break;case"right-dock":t=atom.workspace.getRightDock().getActivePane();break;default:throw new Error("Unknown orientation: "+e)}var r=!0,n=!1,p=void 0;try{for(var o,u=this.terminals_set[Symbol.iterator]();!(r=(o=u.next()).done);r=!0){var d=o.value;d.pane.moveItemToPane(d,t,-1)}}catch(e){n=!0,p=e}finally{try{r||null==u.return||u.return()}finally{if(n)throw p}}if((0,l.isAtomXtermModel)(i)){if(atom.workspace.getPanes().length>1){var s=!0,m=!1,c=void 0;try{for(var h,f=atom.workspace.getPanes()[Symbol.iterator]();!(s=(h=f.next()).done);s=!0){var v=h.value;if(v!==i.pane){v.getElement().focus();break}}}catch(e){m=!0,c=e}finally{try{s||null==f.return||f.return()}finally{if(m)throw c}}}i.pane.getElement().focus(),i.pane.setActiveItem(i)}else i instanceof HTMLElement?i.focus():"function"==typeof i.getElement&&(i=i.getElement()).focus()}}}],[{key:"instance",get:function(){return this[g]||(this[g]=new e(g)),this[g]}}]),e}(),D={spawnPtySettings:{title:"Shell Process Settings",description:"Settings related to the process running the shell.",type:"object",properties:{command:{title:"Command",description:"Command to run",type:"string",default:d.default.getDefaultShellCommand()},args:{title:"Arguments",description:"Arguments to pass to command, must be in a JSON array.",type:"string",default:d.default.getDefaultArgs()},name:{title:"Terminal Type",description:"The terminal type to use.",type:"string",default:d.default.getDefaultTermType()},cwd:{title:"Working Directory",description:"The working directory to use when launching command.",type:"string",default:d.default.getDefaultCwd()},env:{title:"Environment",description:"The environment to use when launching command, must be in a JSON object. If not set, defaults to the current environment.",type:"string",default:d.default.getDefaultEnv()},setEnv:{title:"Environment Overrides",description:"Environment variables to use in place of the atom process environment, must be in a JSON object.",type:"string",default:d.default.getDefaultSetEnv()},deleteEnv:{title:"Environment Deletions",description:"Environment variables to delete from original environment, must be in a JSON array.",type:"string",default:d.default.getDefaultDeleteEnv()},encoding:{title:"Character Encoding",description:"Character encoding to use in spawned terminal.",type:"string",default:d.default.getDefaultEncoding()}}},terminalSettings:{title:"Terminal Emulator Settings",description:"Settings for the terminal emulator.",type:"object",properties:{fontSize:{title:"Font Size",description:"Font size used in terminal emulator.",type:"integer",default:d.default.getDefaultFontSize(),minimum:d.default.getMinimumFontSize(),maximum:d.default.getMaximumFontSize()},leaveOpenAfterExit:{title:"Leave Open After Exit",description:"Whether to leave terminal emulators open after their shell processes have exited.",type:"boolean",default:d.default.getDefaultLeaveOpenAfterExit()},allowRelaunchingTerminalsOnStartup:{title:"Allow relaunching terminals on startup",description:"Whether to allow relaunching terminals on startup.",type:"boolean",default:d.default.getDefaultAllowRelaunchingTerminalsOnStartup()},relaunchTerminalOnStartup:{title:"Relaunch terminal on startup",description:"Whether to relaunch terminal on startup.",type:"boolean",default:d.default.getDefaultRelaunchTerminalOnStartup()},title:{title:"Terminal tab title",description:"Title to use for terminal tabs.",type:"string",default:d.default.getDefaultTitle()},xtermOptions:{title:"xterm.js Terminal Options",description:"Options to apply to xterm.js Terminal objects.",type:"string",default:d.default.getDefaultXtermOptions()},promptToStartup:{title:"Prompt to start command",description:"Whether to prompt to start command in terminal on startup.",type:"boolean",default:d.default.getDefaultPromptToStartup()}}}};t.config=D},function(e,t,a){e.exports=a(71)},function(e,t,a){var i=function(){return this||"object"==typeof self&&self}()||Function("return this")(),r=i.regeneratorRuntime&&Object.getOwnPropertyNames(i).indexOf("regeneratorRuntime")>=0,n=r&&i.regeneratorRuntime;if(i.regeneratorRuntime=void 0,e.exports=a(72),r)i.regeneratorRuntime=n;else try{delete i.regeneratorRuntime}catch(e){i.regeneratorRuntime=void 0}},function(e,t){!function(t){"use strict";var a,i=Object.prototype,r=i.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},p=n.iterator||"@@iterator",o=n.asyncIterator||"@@asyncIterator",u=n.toStringTag||"@@toStringTag",d="object"==typeof e,s=t.regeneratorRuntime;if(s)d&&(e.exports=s);else{(s=t.regeneratorRuntime=d?e.exports:{}).wrap=C;var l="suspendedStart",m="suspendedYield",c="executing",h="completed",f={},v={};v[p]=function(){return this};var _=Object.getPrototypeOf,A=_&&_(_(k([])));A&&A!==i&&r.call(A,p)&&(v=A);var y=D.prototype=g.prototype=Object.create(v);w.prototype=y.constructor=D,D.constructor=w,D[u]=w.displayName="GeneratorFunction",s.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},s.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,D):(e.__proto__=D,u in e||(e[u]="GeneratorFunction")),e.prototype=Object.create(y),e},s.awrap=function(e){return{__await:e}},b(F.prototype),F.prototype[o]=function(){return this},s.AsyncIterator=F,s.async=function(e,t,a,i){var r=new F(C(e,t,a,i));return s.isGeneratorFunction(t)?r:r.next().then(function(e){return e.done?e.value:r.next()})},b(y),y[u]="Generator",y[p]=function(){return this},y.toString=function(){return"[object Generator]"},s.keys=function(e){var t=[];for(var a in e)t.push(a);return t.reverse(),function a(){for(;t.length;){var i=t.pop();if(i in e)return a.value=i,a.done=!1,a}return a.done=!0,a}},s.values=k,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=a,this.done=!1,this.delegate=null,this.method="next",this.arg=a,this.tryEntries.forEach(x),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=a)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function i(i,r){return o.type="throw",o.arg=e,t.next=i,r&&(t.method="next",t.arg=a),!!r}for(var n=this.tryEntries.length-1;n>=0;--n){var p=this.tryEntries[n],o=p.completion;if("root"===p.tryLoc)return i("end");if(p.tryLoc<=this.prev){var u=r.call(p,"catchLoc"),d=r.call(p,"finallyLoc");if(u&&d){if(this.prev=0;--a){var i=this.tryEntries[a];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--t){var a=this.tryEntries[t];if(a.finallyLoc===e)return this.complete(a.completion,a.afterLoc),x(a),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var a=this.tryEntries[t];if(a.tryLoc===e){var i=a.completion;if("throw"===i.type){var r=i.arg;x(a)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,i){return this.delegate={iterator:k(e),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=a),f}}}function C(e,t,a,i){var r=t&&t.prototype instanceof g?t:g,n=Object.create(r.prototype),p=new T(i||[]);return n._invoke=function(e,t,a){var i=l;return function(r,n){if(i===c)throw new Error("Generator is already running");if(i===h){if("throw"===r)throw n;return N()}for(a.method=r,a.arg=n;;){var p=a.delegate;if(p){var o=B(p,a);if(o){if(o===f)continue;return o}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===l)throw i=h,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=c;var u=E(e,t,a);if("normal"===u.type){if(i=a.done?h:m,u.arg===f)continue;return{value:u.arg,done:a.done}}"throw"===u.type&&(i=h,a.method="throw",a.arg=u.arg)}}}(e,a,p),n}function E(e,t,a){try{return{type:"normal",arg:e.call(t,a)}}catch(e){return{type:"throw",arg:e}}}function g(){}function w(){}function D(){}function b(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function F(e){var t;this._invoke=function(a,i){function n(){return new Promise(function(t,n){!function t(a,i,n,p){var o=E(e[a],e,i);if("throw"!==o.type){var u=o.arg,d=u.value;return d&&"object"==typeof d&&r.call(d,"__await")?Promise.resolve(d.__await).then(function(e){t("next",e,n,p)},function(e){t("throw",e,n,p)}):Promise.resolve(d).then(function(e){u.value=e,n(u)},function(e){return t("throw",e,n,p)})}p(o.arg)}(a,i,t,n)})}return t=t?t.then(n,n):n()}}function B(e,t){var i=e.iterator[t.method];if(i===a){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=a,B(e,t),"throw"===t.method))return f;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var r=E(i,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,f;var n=r.arg;return n?n.done?(t[e.resultName]=n.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=a),t.delegate=null,f):n:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function k(e){if(e){var t=e[p];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,n=function t(){for(;++iy.default.getMaximumFontSize()&&(a=y.default.getMaximumFontSize()),t.model.applyProfileChanges({fontSize:a}),e.stopPropagation()}else if(e.deltaY>0){var i=t.model.profile.fontSize-1;i2&&void 0!==arguments[2]?arguments[2]:"Restart",r=document.createElement("div"),n=document.createElement("button");if(n.classList.add("btn"),n.appendChild(document.createTextNode(i)),n.addEventListener("click",function(e){a.restartPtyProcess()}),n.classList.add("btn-"+t),n.classList.add("atom-xterm-restart-btn"),r.classList.add("atom-xterm-notice-"+t),r.appendChild(document.createTextNode(e)),r.appendChild(n),this.topDiv.innerHTML="",this.topDiv.appendChild(r),"success"===t)atom.notifications.addSuccess(e);else if("error"===t)atom.notifications.addError(e);else if("warning"===t)atom.notifications.addWarning(e);else{if("info"!==t)throw new Error("Unknown info type: "+t);atom.notifications.addInfo(e)}}},{key:"promptToStartup",value:function(){var e=this;return new Promise(function(t,a){var i;if(null===e.model.profile.title){var r=[e.getShellCommand()];r.push.apply(r,(0,n.default)(e.getArgs())),i="New command ".concat(JSON.stringify(r)," ready to start.")}else i="New command for profile ".concat(e.model.profile.title," ready to start.");e.showNotification(i,"info","Start"),t()})}},{key:"restartPtyProcess",value:function(){var e=this;return new Promise(function(t,a){e.getCwd().then(function(a){e.ptyProcessRunning&&(e.ptyProcess.removeAllListeners("exit"),e.ptyProcess.kill()),e.atomXtermProfileMenuElement.hideProfileMenu(),e.terminal.reset(),e.ptyProcessCommand=e.getShellCommand(),e.ptyProcessArgs=e.getArgs();var i=e.getTermType(),r=e.getEnv(),n=e.getEncoding();e.ptyProcessOptions={name:i,cwd:a,env:r},n&&(e.ptyProcessOptions.encoding=n),e.ptyProcessOptions.cols=e.ptyProcessCols,e.ptyProcessOptions.rows=e.ptyProcessRows,e.ptyProcess=null,e.ptyProcessRunning=!1;try{e.ptyProcess=(0,h.spawn)(e.ptyProcessCommand,e.ptyProcessArgs,e.ptyProcessOptions)}catch(a){var p="Launching '"+e.ptyProcessCommand+"' raised the following error: "+a.message;a.message.startsWith("File not found:")&&(p="Could not find command '"+e.ptyProcessCommand+"'."),e.showNotification(p,"error"),t()}e.ptyProcess&&(e.ptyProcessRunning=!0,e.ptyProcess.on("data",function(t){var a=e.model.title;null!==e.model.profile.title?e.model.title=e.model.profile.title:"win32"!==process.platform&&(e.model.title=e.ptyProcess.process),a!==e.model.title&&e.model.emitter.emit("did-change-title",e.model.title),e.terminal.write(t),e.model.handleNewDataArrival()}),e.ptyProcess.on("exit",function(t,a){e.ptyProcessRunning=!1,e.leaveOpenAfterExit()?0===t?e.showNotification("The terminal process has finished successfully.","success"):e.showNotification("The terminal process has exited with failure code '"+t+"'.","error"):e.model.exit()}),e.topDiv.innerHTML="",t())})})}},{key:"applyPendingTerminalProfileOptions",value:function(){if(1===this.terminalDivIntersectionRatio){var e=this.pendingTerminalProfileOptions.xtermOptions||{};delete e.fontSize,this.pendingTerminalProfileOptions.hasOwnProperty("fontSize")&&(e.fontSize=this.pendingTerminalProfileOptions.fontSize,delete this.pendingTerminalProfileOptions.fontSize),this.setMainBackgroundColor();for(var t=Object.keys(e),a=0;aa){var i=this.buffer.lines.length-a,r=this.buffer.ydisp-i<0;this.buffer.lines.trimStart(i),this.buffer.ybase=Math.max(this.buffer.ybase-i,0),this.buffer.ydisp=Math.max(this.buffer.ydisp-i,0),r&&this.refresh(0,this.rows-1)}}}switch(this.options[e]=t,e){case"fontFamily":case"fontSize":this.renderer&&(this.renderer.clear(),this.charMeasure.measure(this.options));break;case"drawBoldTextInBrightColors":case"experimentalCharAtlas":case"enableBold":case"letterSpacing":case"lineHeight":case"fontWeight":case"fontWeightBold":this.renderer&&(this.renderer.clear(),this.renderer.onResize(this.cols,this.rows),this.refresh(0,this.rows-1));case"rendererType":this.renderer&&(this.unregister(this.renderer),this.renderer.dispose(),this.renderer=null),this._setupRenderer(),this.renderer.onCharSizeChanged(),this._theme&&this.renderer.setTheme(this._theme);break;case"scrollback":this.buffers.resize(this.cols,this.rows),this.viewport&&this.viewport.syncScrollArea();break;case"screenReaderMode":t?this._accessibilityManager||(this._accessibilityManager=new D.AccessibilityManager(this)):this._accessibilityManager&&(this._accessibilityManager.dispose(),this._accessibilityManager=null);break;case"tabStopWidth":this.buffers.setupTabStops()}this.renderer&&this.renderer.onOptionsChanged()}},t.prototype._onTextAreaFocus=function(){this.sendFocus&&this.handler(s.C0.ESC+"[I"),this.element.classList.add("focus"),this.showCursor(),this.emit("focus")},t.prototype.blur=function(){return this.textarea.blur()},t.prototype._onTextAreaBlur=function(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.sendFocus&&this.handler(s.C0.ESC+"[O"),this.element.classList.remove("focus"),this.emit("blur")},t.prototype._initGlobal=function(){var e=this;this._bindKeys(),this.register(_.addDisposableDomListener(this.element,"copy",function(t){e.hasSelection()&&d.copyHandler(t,e,e.selectionManager)}));var t=function(t){return d.pasteHandler(t,e)};this.register(_.addDisposableDomListener(this.textarea,"paste",t)),this.register(_.addDisposableDomListener(this.element,"paste",t)),v.isFirefox?this.register(_.addDisposableDomListener(this.element,"mousedown",function(t){2===t.button&&d.rightClickHandler(t,e.textarea,e.selectionManager,e.options.rightClickSelectsWord)})):this.register(_.addDisposableDomListener(this.element,"contextmenu",function(t){d.rightClickHandler(t,e.textarea,e.selectionManager,e.options.rightClickSelectsWord)})),v.isLinux&&this.register(_.addDisposableDomListener(this.element,"auxclick",function(t){1===t.button&&d.moveTextAreaUnderMouseCursor(t,e.textarea)}))},t.prototype._bindKeys=function(){var e=this,t=this;this.register(_.addDisposableDomListener(this.element,"keydown",function(e){x.activeElement===this&&t._keyDown(e)},!0)),this.register(_.addDisposableDomListener(this.element,"keypress",function(e){x.activeElement===this&&t._keyPress(e)},!0)),this.register(_.addDisposableDomListener(this.element,"keyup",function(a){(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode})(a)||e.focus(),t._keyUp(a)},!0)),this.register(_.addDisposableDomListener(this.textarea,"keydown",function(t){return e._keyDown(t)},!0)),this.register(_.addDisposableDomListener(this.textarea,"keypress",function(t){return e._keyPress(t)},!0)),this.register(_.addDisposableDomListener(this.textarea,"compositionstart",function(){return e._compositionHelper.compositionstart()})),this.register(_.addDisposableDomListener(this.textarea,"compositionupdate",function(t){return e._compositionHelper.compositionupdate(t)})),this.register(_.addDisposableDomListener(this.textarea,"compositionend",function(){return e._compositionHelper.compositionend()})),this.register(this.addDisposableListener("refresh",function(){return e._compositionHelper.updateCompositionElements()})),this.register(this.addDisposableListener("refresh",function(t){return e._queueLinkification(t.start,t.end)}))},t.prototype.open=function(e){var t=this;if(this._parent=e||this._parent,!this._parent)throw new Error("Terminal requires a parent element.");this._context=this._parent.ownerDocument.defaultView,this._document=this._parent.ownerDocument,this._screenDprMonitor=new b.ScreenDprMonitor,this._screenDprMonitor.setListener(function(){return t.emit("dprchange",window.devicePixelRatio)}),this.register(this._screenDprMonitor),this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),this.element.setAttribute("tabindex","0"),this._parent.appendChild(this.element);var a=x.createDocumentFragment();this._viewportElement=x.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),a.appendChild(this._viewportElement),this._viewportScrollArea=x.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=x.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._helperContainer=x.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),a.appendChild(this.screenElement),this._mouseZoneManager=new w.MouseZoneManager(this),this.register(this._mouseZoneManager),this.register(this.addDisposableListener("scroll",function(){return t._mouseZoneManager.clearAll()})),this.linkifier.attachToDom(this._mouseZoneManager),this.textarea=x.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",A.promptLabel),this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this.register(_.addDisposableDomListener(this.textarea,"focus",function(){return t._onTextAreaFocus()})),this.register(_.addDisposableDomListener(this.textarea,"blur",function(){return t._onTextAreaBlur()})),this._helperContainer.appendChild(this.textarea),this._compositionView=x.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=new p.CompositionHelper(this.textarea,this._compositionView,this),this._helperContainer.appendChild(this._compositionView),this.charMeasure=new f.CharMeasure(x,this._helperContainer),this.element.appendChild(a),this._setupRenderer(),this._theme=this.options.theme,this.options.theme=null,this.viewport=new u.Viewport(this,this._viewportElement,this._viewportScrollArea,this.charMeasure),this.viewport.onThemeChanged(this.renderer.colorManager.colors),this.register(this.viewport),this.register(this.addDisposableListener("cursormove",function(){return t.renderer.onCursorMove()})),this.register(this.addDisposableListener("resize",function(){return t.renderer.onResize(t.cols,t.rows)})),this.register(this.addDisposableListener("blur",function(){return t.renderer.onBlur()})),this.register(this.addDisposableListener("focus",function(){return t.renderer.onFocus()})),this.register(this.addDisposableListener("dprchange",function(){return t.renderer.onWindowResize(window.devicePixelRatio)})),this.register(_.addDisposableDomListener(window,"resize",function(){return t.renderer.onWindowResize(window.devicePixelRatio)})),this.register(this.charMeasure.addDisposableListener("charsizechanged",function(){return t.renderer.onCharSizeChanged()})),this.register(this.renderer.addDisposableListener("resize",function(e){return t.viewport.syncScrollArea()})),this.selectionManager=new h.SelectionManager(this,this.charMeasure),this.register(_.addDisposableDomListener(this.element,"mousedown",function(e){return t.selectionManager.onMouseDown(e)})),this.register(this.selectionManager.addDisposableListener("refresh",function(e){return t.renderer.onSelectionChanged(e.start,e.end,e.columnSelectMode)})),this.register(this.selectionManager.addDisposableListener("newselection",function(e){t.textarea.value=e,t.textarea.focus(),t.textarea.select()})),this.register(this.addDisposableListener("scroll",function(){t.viewport.syncScrollArea(),t.selectionManager.refresh()})),this.register(_.addDisposableDomListener(this._viewportElement,"scroll",function(){return t.selectionManager.refresh()})),this.mouseHelper=new y.MouseHelper(this.renderer),this.options.screenReaderMode&&(this._accessibilityManager=new D.AccessibilityManager(this)),this.charMeasure.measure(this.options),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()},t.prototype._setupRenderer=function(){switch(this.options.rendererType){case"canvas":this.renderer=new m.Renderer(this,this.options.theme);break;case"dom":this.renderer=new B.DomRenderer(this,this.options.theme);break;default:throw new Error('Unrecognized rendererType "'+this.options.rendererType+'"')}this.register(this.renderer)},t.prototype._setTheme=function(e){this._theme=e;var t=this.renderer.setTheme(e);this.viewport&&this.viewport.onThemeChanged(t)},t.prototype.bindMouse=function(){var e=this,t=this.element,a=this,i=32;function r(e){var t,r;if(t=function(e){var t,i,r,n,p;switch(e.overrideType||e.type){case"mousedown":t=null!=e.button?+e.button:null!=e.which?e.which-1:null,v.isMSIE&&(t=1===t?0:4===t?1:t);break;case"mouseup":t=3;break;case"DOMMouseScroll":t=e.detail<0?64:65;break;case"wheel":t=e.wheelDeltaY>0?64:65}i=e.shiftKey?4:0,r=e.metaKey?8:0,n=e.ctrlKey?16:0,p=i|r|n,a.vt200Mouse?p&=n:a.normalMouse||(p=0);return t=32+(p<<2)+t}(e),r=a.mouseHelper.getRawByteCoords(e,a.screenElement,a.charMeasure,a.options.lineHeight,a.cols,a.rows))switch(p(t,r),e.overrideType||e.type){case"mousedown":i=t;break;case"mouseup":i=32}}function n(e,t){if(a.utfMouse){if(2047===t)return void e.push(0);t<127?e.push(t):(t>2047&&(t=2047),e.push(192|t>>6),e.push(128|63&t))}else{if(255===t)return void e.push(0);t>127&&(t=127),e.push(t)}}function p(e,t){if(a._vt300Mouse){e&=3,t.x-=32,t.y-=32;var i=s.C0.ESC+"[24";if(0===e)i+="1";else if(1===e)i+="3";else if(2===e)i+="5";else{if(3===e)return;i+="0"}return i+="~["+t.x+","+t.y+"]\r",void a.handler(i)}if(a._decLocator)return e&=3,t.x-=32,t.y-=32,0===e?e=2:1===e?e=4:2===e?e=6:3===e&&(e=3),void a.handler(s.C0.ESC+"["+e+";"+(3===e?4:0)+";"+t.y+";"+t.x+";"+t.page||"0&w");if(a.urxvtMouse)return t.x-=32,t.y-=32,t.x++,t.y++,void a.handler(s.C0.ESC+"["+e+";"+t.x+";"+t.y+"M");if(a.sgrMouse)return t.x-=32,t.y-=32,void a.handler(s.C0.ESC+"[<"+((3==(3&e)?-4&e:e)-32)+";"+t.x+";"+t.y+(3==(3&e)?"m":"M"));var r=[];n(r,e),n(r,t.x),n(r,t.y),a.handler(s.C0.ESC+"[M"+String.fromCharCode.apply(String,r))}this.register(_.addDisposableDomListener(t,"mousedown",function(t){if(t.preventDefault(),e.focus(),e.mouseEvents&&!e.selectionManager.shouldForceSelection(t)){if(r(t),e.vt200Mouse)return t.overrideType="mouseup",r(t),e.cancel(t);var n;e.normalMouse&&(n=function(t){e.normalMouse&&function(e){var t=i,r=a.mouseHelper.getRawByteCoords(e,a.screenElement,a.charMeasure,a.options.lineHeight,a.cols,a.rows);r&&p(t+=32,r)}(t)},e._document.addEventListener("mousemove",n));var o=function(t){return e.normalMouse&&!e.x10Mouse&&r(t),n&&(e._document.removeEventListener("mousemove",n),n=null),e._document.removeEventListener("mouseup",o),e.cancel(t)};return e._document.addEventListener("mouseup",o),e.cancel(t)}})),this.register(_.addDisposableDomListener(t,"wheel",function(t){if(e.mouseEvents)e.x10Mouse||e._vt300Mouse||e._decLocator||(r(t),t.preventDefault());else if(!e.buffer.hasScrollback){var a=e.viewport.getLinesScrolled(t);if(0===a)return;for(var i=s.C0.ESC+(e.applicationCursor?"O":"[")+(t.deltaY<0?"A":"B"),n="",p=0;p=this.buffer.ybase&&(this._userScrolling=!1);var a=this.buffer.ydisp;this.buffer.ydisp=Math.max(Math.min(this.buffer.ydisp+e,this.buffer.ybase),0),a!==this.buffer.ydisp&&(t||this.emit("scroll",this.buffer.ydisp),this.refresh(0,this.rows-1))},t.prototype.scrollPages=function(e){this.scrollLines(e*(this.rows-1))},t.prototype.scrollToTop=function(){this.scrollLines(-this.buffer.ydisp)},t.prototype.scrollToBottom=function(){this.scrollLines(this.buffer.ybase-this.buffer.ydisp)},t.prototype.scrollToLine=function(e){var t=e-this.buffer.ydisp;0!==t&&this.scrollLines(t)},t.prototype.write=function(e){var t=this;this._isDisposed||e&&(this.writeBuffer.push(e),this.options.useFlowControl&&!this._xoffSentToCatchUp&&this.writeBuffer.length>=5&&(this.handler(s.C0.DC3),this._xoffSentToCatchUp=!0),!this._writeInProgress&&this.writeBuffer.length>0&&(this._writeInProgress=!0,setTimeout(function(){t._innerWrite()})))},t.prototype._innerWrite=function(){var e=this;this._isDisposed&&(this.writeBuffer=[]);for(var t=this.writeBuffer.splice(0,300);t.length>0;){var a=t.shift();this._xoffSentToCatchUp&&0===t.length&&0===this.writeBuffer.length&&(this.handler(s.C0.DC1),this._xoffSentToCatchUp=!1),this._refreshStart=this.buffer.y,this._refreshEnd=this.buffer.y,this._inputHandler.parse(a),this.updateRange(this.buffer.y),this.refresh(this._refreshStart,this._refreshEnd)}this.writeBuffer.length>0?setTimeout(function(){return e._innerWrite()},0):this._writeInProgress=!1},t.prototype.writeln=function(e){this.write(e+"\r\n")},t.prototype.attachCustomKeyEventHandler=function(e){this._customKeyEventHandler=e},t.prototype.registerLinkMatcher=function(e,t,a){var i=this.linkifier.registerLinkMatcher(e,t,a);return this.refresh(0,this.rows-1),i},t.prototype.deregisterLinkMatcher=function(e){this.linkifier.deregisterLinkMatcher(e)&&this.refresh(0,this.rows-1)},t.prototype.registerCharacterJoiner=function(e){var t=this.renderer.registerCharacterJoiner(e);return this.refresh(0,this.rows-1),t},t.prototype.deregisterCharacterJoiner=function(e){this.renderer.deregisterCharacterJoiner(e)&&this.refresh(0,this.rows-1)},Object.defineProperty(t.prototype,"markers",{get:function(){return this.buffer.markers},enumerable:!0,configurable:!0}),t.prototype.addMarker=function(e){if(this.buffer===this.buffers.normal)return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)},t.prototype.hasSelection=function(){return!!this.selectionManager&&this.selectionManager.hasSelection},t.prototype.getSelection=function(){return this.selectionManager?this.selectionManager.selectionText:""},t.prototype.clearSelection=function(){this.selectionManager&&this.selectionManager.clearSelection()},t.prototype.selectAll=function(){this.selectionManager&&this.selectionManager.selectAll()},t.prototype.selectLines=function(e,t){this.selectionManager&&this.selectionManager.selectLines(e,t)},t.prototype._keyDown=function(e){if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(!this._compositionHelper.keydown(e))return this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;var t=S.evaluateKeyboardEvent(e,this.applicationCursor,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===t.type||2===t.type){var a=this.rows-1;return this.scrollLines(2===t.type?-a:a),this.cancel(e,!0)}return 1===t.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(t.cancel&&this.cancel(e,!0),!t.key||(this.emit("keydown",e),this.emit("key",t.key,e),this.showCursor(),this.handler(t.key),this.cancel(e,!0)))},t.prototype._isThirdLevelShift=function(e,t){var a=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isMSWindows&&t.altKey&&t.ctrlKey&&!t.metaKey;return"keypress"===t.type?a:a&&(!t.keyCode||t.keyCode>47)},t.prototype.setgLevel=function(e){this.glevel=e,this.charset=this.charsets[e]},t.prototype.setgCharset=function(e,t){this.charsets[e]=t,this.glevel===e&&(this.charset=t)},t.prototype._keyUp=function(e){this.updateCursorStyle(e)},t.prototype._keyPress=function(e){var t;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null==e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e))&&(t=String.fromCharCode(t),this.emit("keypress",t,e),this.emit("key",t,e),this.showCursor(),this.handler(t),!0)},t.prototype.bell=function(){var e=this;this.emit("bell"),this._soundBell()&&this.soundManager.playBellSound(),this._visualBell()&&(this.element.classList.add("visual-bell-active"),clearTimeout(this._visualBellTimer),this._visualBellTimer=window.setTimeout(function(){e.element.classList.remove("visual-bell-active")},200))},t.prototype.log=function(e,t){this.options.debug&&this._context.console&&this._context.console.log&&this._context.console.log(e,t)},t.prototype.error=function(e,t){this.options.debug&&this._context.console&&this._context.console.error&&this._context.console.error(e,t)},t.prototype.resize=function(e,t){isNaN(e)||isNaN(t)||(e!==this.cols||t!==this.rows?(e<1&&(e=1),t<1&&(t=1),this.buffers.resize(e,t),this.cols=e,this.rows=t,this.buffers.setupTabStops(this.cols),this.charMeasure&&this.charMeasure.measure(this.options),this.refresh(0,this.rows-1),this.emit("resize",{cols:e,rows:t})):!this.charMeasure||this.charMeasure.width&&this.charMeasure.height||this.charMeasure.measure(this.options))},t.prototype.updateRange=function(e){ethis._refreshEnd&&(this._refreshEnd=e)},t.prototype.maxRange=function(){this._refreshStart=0,this._refreshEnd=this.rows-1},t.prototype.eraseRight=function(e,t){var a=this.buffer.lines.get(this.buffer.ybase+t);if(a){for(var i=[this.eraseAttr(),n.NULL_CELL_CHAR,n.NULL_CELL_WIDTH,n.NULL_CELL_CODE];ethis.buffer.scrollBottom&&(this.buffer.y--,this.scroll()),this.buffer.x>=this.cols&&this.buffer.x--},t.prototype.reverseIndex=function(){if(this.buffer.y===this.buffer.scrollTop){var e=this.buffer.scrollBottom-this.buffer.scrollTop;this.buffer.lines.shiftElements(this.buffer.y+this.buffer.ybase,e,1),this.buffer.lines.set(this.buffer.y+this.buffer.ybase,this.blankLine(!0)),this.updateRange(this.buffer.scrollTop),this.updateRange(this.buffer.scrollBottom)}else this.buffer.y--},t.prototype.reset=function(){this.options.rows=this.rows,this.options.cols=this.cols;var e=this._customKeyEventHandler,t=this._inputHandler,a=this.cursorState;this._setup(),this._customKeyEventHandler=e,this._inputHandler=t,this.cursorState=a,this.refresh(0,this.rows-1),this.viewport&&this.viewport.syncScrollArea()},t.prototype.tabSet=function(){this.buffer.tabs[this.buffer.x]=!0},t.prototype.cancel=function(e,t){if(this.options.cancelEvents||t)return e.preventDefault(),e.stopPropagation(),!1},t.prototype.matchColor=function(e,t,a){var i=e<<16|t<<8|a;if(null!=L[i])return L[i];for(var r,n,p=1/0,o=-1,u=0;u>>24,r>>>16&255,r>>>8&255))){o=u;break}nthis._length)for(var t=this._length;t=e;r--)this._array[this._getCyclicIndex(r+a.length)]=this._array[this._getCyclicIndex(r)];for(r=0;rthis.maxLength){var n=this._length+a.length-this.maxLength;this._startIndex+=n,this._length=this.maxLength,this.emit("trim",n)}else this._length+=a.length}},t.prototype.trimStart=function(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.emit("trim",e)},t.prototype.shiftElements=function(e,t,a){if(!(t<=0)){if(e<0||e>=this._length)throw new Error("start argument out of range");if(e+a<0)throw new Error("Cannot shift elements in list beyond index 0");if(a>0){for(var i=t-1;i>=0;i--)this.set(e+i+a,this.get(e+i));var r=e+t+a-this._length;if(r>0)for(this._length+=r;this._length>this.maxLength;)this._length--,this._startIndex++,this.emit("trim",1)}else for(i=0;i0&&e._terminal.handler(a)}},0)},e.prototype.updateCompositionElements=function(e){var t=this;if(this._isComposing){if(this._terminal.buffer.isCursorInViewport){var a=Math.ceil(this._terminal.charMeasure.height*this._terminal.options.lineHeight),i=this._terminal.buffer.y*a,r=this._terminal.buffer.x*this._terminal.charMeasure.width;this._compositionView.style.left=r+"px",this._compositionView.style.top=i+"px",this._compositionView.style.height=a+"px",this._compositionView.style.lineHeight=a+"px";var n=this._compositionView.getBoundingClientRect();this._textarea.style.left=r+"px",this._textarea.style.top=i+"px",this._textarea.style.width=n.width+"px",this._textarea.style.height=n.height+"px",this._textarea.style.lineHeight=n.height+"px"}e||setTimeout(function(){return t.updateCompositionElements(!0)},0)}},e.prototype._clearTextareaPosition=function(){this._textarea.style.left="",this._textarea.style.top=""},e}();t.CompositionHelper=i},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(11),n=a(19),p=15,o=function(e){function t(t,a,i,r){var o=e.call(this)||this;return o._terminal=t,o._viewportElement=a,o._scrollArea=i,o._charMeasure=r,o.scrollBarWidth=0,o._currentRowHeight=0,o._lastRecordedBufferLength=0,o._lastRecordedViewportHeight=0,o._lastRecordedBufferHeight=0,o._wheelPartialScroll=0,o.scrollBarWidth=o._viewportElement.offsetWidth-o._scrollArea.offsetWidth||p,o.register(n.addDisposableDomListener(o._viewportElement,"scroll",o._onScroll.bind(o))),setTimeout(function(){return o.syncScrollArea()},0),o}return i(t,e),t.prototype.onThemeChanged=function(e){this._viewportElement.style.backgroundColor=e.background.css},t.prototype._refresh=function(){if(this._charMeasure.height>0){this._currentRowHeight=this._terminal.renderer.dimensions.scaledCellHeight/window.devicePixelRatio,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;var e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._terminal.renderer.dimensions.canvasHeight);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}},t.prototype.syncScrollArea=function(){this._lastRecordedBufferLength!==this._terminal.buffer.lines.length?(this._lastRecordedBufferLength=this._terminal.buffer.lines.length,this._refresh()):this._lastRecordedViewportHeight!==this._terminal.renderer.dimensions.canvasHeight?this._refresh():this._terminal.renderer.dimensions.scaledCellHeight/window.devicePixelRatio!==this._currentRowHeight&&this._refresh();var e=this._terminal.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==e&&(this._viewportElement.scrollTop=e)},t.prototype._onScroll=function(e){if(this._viewportElement.offsetParent){var t=Math.round(this._viewportElement.scrollTop/this._currentRowHeight)-this._terminal.buffer.ydisp;this._terminal.scrollLines(t,!0)}},t.prototype.onWheel=function(e){var t=this._getPixelsScrolled(e);0!==t&&(this._viewportElement.scrollTop+=t,e.preventDefault())},t.prototype._getPixelsScrolled=function(e){if(0===e.deltaY)return 0;var t=e.deltaY;return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=this._currentRowHeight:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._currentRowHeight*this._terminal.rows),t},t.prototype.getLinesScrolled=function(e){if(0===e.deltaY)return 0;var t=e.deltaY;return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._terminal.rows),t},t.prototype.onTouchStart=function(e){this._lastTouchY=e.touches[0].pageY},t.prototype.onTouchMove=function(e){var t=this._lastTouchY-e.touches[0].pageY;this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,e.preventDefault())},t}(r.Disposable);t.Viewport=o},function(e,t,a){"use strict";function i(e){return e.replace(/\r?\n/g,"\r")}function r(e,t){return t?"[200~"+e+"[201~":e}function n(e,t){t.style.position="fixed",t.style.width="20px",t.style.height="20px",t.style.left=e.clientX-10+"px",t.style.top=e.clientY-10+"px",t.style.zIndex="1000",t.focus(),setTimeout(function(){t.style.position=null,t.style.width=null,t.style.height=null,t.style.left=null,t.style.top=null,t.style.zIndex=null},200)}Object.defineProperty(t,"__esModule",{value:!0}),t.prepareTextForTerminal=i,t.bracketTextForPaste=r,t.copyHandler=function(e,t,a){t.browser.isMSIE?window.clipboardData.setData("Text",a.selectionText):e.clipboardData.setData("text/plain",a.selectionText),e.preventDefault()},t.pasteHandler=function(e,t){e.stopPropagation();var a=function(a){a=r(a=i(a),t.bracketedPasteMode),t.handler(a),t.textarea.value="",t.emit("paste",a),t.cancel(e)};t.browser.isMSIE?window.clipboardData&&a(window.clipboardData.getData("Text")):e.clipboardData&&a(e.clipboardData.getData("text/plain"))},t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(e,t,a,i){n(e,t),i&&!a.isClickInSelection(e)&&a.selectWordAtCursor(e),t.value=a.selectionText,t.select()}},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(20),n=a(94),p=a(8),o=a(95),u=a(96),d=a(11),s={"(":0,")":1,"*":2,"+":3,"-":1,".":2},l=function(){function e(e){this._terminal=e}return e.prototype.hook=function(e,t,a){this._data=""},e.prototype.put=function(e,t,a){this._data+=e.substring(t,a)},e.prototype.unhook=function(){this._terminal.handler(r.C0.ESC+"P0+r"+this._data+r.C0.ESC+"\\")},e}(),m=function(){function e(e){this._terminal=e}return e.prototype.hook=function(e,t,a){this._data=""},e.prototype.put=function(e,t,a){this._data+=e.substring(t,a)},e.prototype.unhook=function(){switch(this._data){case'"q':return this._terminal.handler(r.C0.ESC+'P1$r0"q'+r.C0.ESC+"\\");case'"p':return this._terminal.handler(r.C0.ESC+'P1$r61"p'+r.C0.ESC+"\\");case"r":var e=this._terminal.buffer.scrollTop+1+";"+(this._terminal.buffer.scrollBottom+1)+"r";return this._terminal.handler(r.C0.ESC+"P1$r"+e+r.C0.ESC+"\\");case"m":return this._terminal.handler(r.C0.ESC+"P1$r0m"+r.C0.ESC+"\\");case" q":var t={block:2,underline:4,bar:6}[this._terminal.getOption("cursorStyle")];return t-=this._terminal.getOption("cursorBlink"),this._terminal.handler(r.C0.ESC+"P1$r"+t+" q"+r.C0.ESC+"\\");default:this._terminal.error("Unknown DCS $q %s",this._data),this._terminal.handler(r.C0.ESC+"P0$r"+this._data+r.C0.ESC+"\\")}},e}(),c=function(e){function t(t,a){void 0===a&&(a=new u.EscapeSequenceParser);var i=e.call(this)||this;i._terminal=t,i._parser=a,i.register(i._parser),i._surrogateHigh="",i._parser.setCsiHandlerFallback(function(e,t,a){i._terminal.error("Unknown CSI code: ",{collect:e,params:t,flag:String.fromCharCode(a)})}),i._parser.setEscHandlerFallback(function(e,t){i._terminal.error("Unknown ESC code: ",{collect:e,flag:String.fromCharCode(t)})}),i._parser.setExecuteHandlerFallback(function(e){i._terminal.error("Unknown EXECUTE code: ",{code:e})}),i._parser.setOscHandlerFallback(function(e,t){i._terminal.error("Unknown OSC code: ",{identifier:e,data:t})}),i._parser.setPrintHandler(function(e,t,a){return i.print(e,t,a)}),i._parser.setCsiHandler("@",function(e,t){return i.insertChars(e)}),i._parser.setCsiHandler("A",function(e,t){return i.cursorUp(e)}),i._parser.setCsiHandler("B",function(e,t){return i.cursorDown(e)}),i._parser.setCsiHandler("C",function(e,t){return i.cursorForward(e)}),i._parser.setCsiHandler("D",function(e,t){return i.cursorBackward(e)}),i._parser.setCsiHandler("E",function(e,t){return i.cursorNextLine(e)}),i._parser.setCsiHandler("F",function(e,t){return i.cursorPrecedingLine(e)}),i._parser.setCsiHandler("G",function(e,t){return i.cursorCharAbsolute(e)}),i._parser.setCsiHandler("H",function(e,t){return i.cursorPosition(e)}),i._parser.setCsiHandler("I",function(e,t){return i.cursorForwardTab(e)}),i._parser.setCsiHandler("J",function(e,t){return i.eraseInDisplay(e)}),i._parser.setCsiHandler("K",function(e,t){return i.eraseInLine(e)}),i._parser.setCsiHandler("L",function(e,t){return i.insertLines(e)}),i._parser.setCsiHandler("M",function(e,t){return i.deleteLines(e)}),i._parser.setCsiHandler("P",function(e,t){return i.deleteChars(e)}),i._parser.setCsiHandler("S",function(e,t){return i.scrollUp(e)}),i._parser.setCsiHandler("T",function(e,t){return i.scrollDown(e,t)}),i._parser.setCsiHandler("X",function(e,t){return i.eraseChars(e)}),i._parser.setCsiHandler("Z",function(e,t){return i.cursorBackwardTab(e)}),i._parser.setCsiHandler("`",function(e,t){return i.charPosAbsolute(e)}),i._parser.setCsiHandler("a",function(e,t){return i.hPositionRelative(e)}),i._parser.setCsiHandler("b",function(e,t){return i.repeatPrecedingCharacter(e)}),i._parser.setCsiHandler("c",function(e,t){return i.sendDeviceAttributes(e,t)}),i._parser.setCsiHandler("d",function(e,t){return i.linePosAbsolute(e)}),i._parser.setCsiHandler("e",function(e,t){return i.vPositionRelative(e)}),i._parser.setCsiHandler("f",function(e,t){return i.hVPosition(e)}),i._parser.setCsiHandler("g",function(e,t){return i.tabClear(e)}),i._parser.setCsiHandler("h",function(e,t){return i.setMode(e,t)}),i._parser.setCsiHandler("l",function(e,t){return i.resetMode(e,t)}),i._parser.setCsiHandler("m",function(e,t){return i.charAttributes(e)}),i._parser.setCsiHandler("n",function(e,t){return i.deviceStatus(e,t)}),i._parser.setCsiHandler("p",function(e,t){return i.softReset(e,t)}),i._parser.setCsiHandler("q",function(e,t){return i.setCursorStyle(e,t)}),i._parser.setCsiHandler("r",function(e,t){return i.setScrollRegion(e,t)}),i._parser.setCsiHandler("s",function(e,t){return i.saveCursor(e)}),i._parser.setCsiHandler("u",function(e,t){return i.restoreCursor(e)}),i._parser.setExecuteHandler(r.C0.BEL,function(){return i.bell()}),i._parser.setExecuteHandler(r.C0.LF,function(){return i.lineFeed()}),i._parser.setExecuteHandler(r.C0.VT,function(){return i.lineFeed()}),i._parser.setExecuteHandler(r.C0.FF,function(){return i.lineFeed()}),i._parser.setExecuteHandler(r.C0.CR,function(){return i.carriageReturn()}),i._parser.setExecuteHandler(r.C0.BS,function(){return i.backspace()}),i._parser.setExecuteHandler(r.C0.HT,function(){return i.tab()}),i._parser.setExecuteHandler(r.C0.SO,function(){return i.shiftOut()}),i._parser.setExecuteHandler(r.C0.SI,function(){return i.shiftIn()}),i._parser.setExecuteHandler(r.C1.IND,function(){return i.index()}),i._parser.setExecuteHandler(r.C1.NEL,function(){return i.nextLine()}),i._parser.setExecuteHandler(r.C1.HTS,function(){return i.tabSet()}),i._parser.setOscHandler(0,function(e){return i.setTitle(e)}),i._parser.setOscHandler(2,function(e){return i.setTitle(e)}),i._parser.setEscHandler("7",function(){return i.saveCursor([])}),i._parser.setEscHandler("8",function(){return i.restoreCursor([])}),i._parser.setEscHandler("D",function(){return i.index()}),i._parser.setEscHandler("E",function(){return i.nextLine()}),i._parser.setEscHandler("H",function(){return i.tabSet()}),i._parser.setEscHandler("M",function(){return i.reverseIndex()}),i._parser.setEscHandler("=",function(){return i.keypadApplicationMode()}),i._parser.setEscHandler(">",function(){return i.keypadNumericMode()}),i._parser.setEscHandler("c",function(){return i.reset()}),i._parser.setEscHandler("n",function(){return i.setgLevel(2)}),i._parser.setEscHandler("o",function(){return i.setgLevel(3)}),i._parser.setEscHandler("|",function(){return i.setgLevel(3)}),i._parser.setEscHandler("}",function(){return i.setgLevel(2)}),i._parser.setEscHandler("~",function(){return i.setgLevel(1)}),i._parser.setEscHandler("%@",function(){return i.selectDefaultCharset()}),i._parser.setEscHandler("%G",function(){return i.selectDefaultCharset()});var p=function(e){o._parser.setEscHandler("("+e,function(){return i.selectCharset("("+e)}),o._parser.setEscHandler(")"+e,function(){return i.selectCharset(")"+e)}),o._parser.setEscHandler("*"+e,function(){return i.selectCharset("*"+e)}),o._parser.setEscHandler("+"+e,function(){return i.selectCharset("+"+e)}),o._parser.setEscHandler("-"+e,function(){return i.selectCharset("-"+e)}),o._parser.setEscHandler("."+e,function(){return i.selectCharset("."+e)}),o._parser.setEscHandler("/"+e,function(){return i.selectCharset("/"+e)})},o=this;for(var d in n.CHARSETS)p(d);return i._parser.setErrorHandler(function(e){return i._terminal.error("Parsing error: ",e),e}),i._parser.setDcsHandler("$q",new m(i._terminal)),i._parser.setDcsHandler("+q",new l(i._terminal)),i}return i(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._terminal=null},t.prototype.parse=function(e){if(this._terminal){var t=this._terminal.buffer,a=t.x,i=t.y;this._terminal.debug&&this._terminal.log("data: "+e),this._surrogateHigh&&(e=this._surrogateHigh+e,this._surrogateHigh=""),this._parser.parse(e),(t=this._terminal.buffer).x===a&&t.y===i||this._terminal.emit("cursormove")}},t.prototype.print=function(e,t,a){var i,r,n,u,d=this._terminal.buffer,s=this._terminal.charset,l=this._terminal.options.screenReaderMode,m=this._terminal.cols,c=this._terminal.wraparoundMode,h=this._terminal.insertMode,f=this._terminal.curAttr,v=d.lines.get(d.y+d.ybase);this._terminal.updateRange(d.y);for(var _=t;_=m)if(c)d.x=0,d.y++,d.y>d.scrollBottom?(d.y--,this._terminal.scroll(!0)):d.lines.get(d.y).isWrapped=!0,v=d.lines.get(d.y+d.ybase);else if(2===u)continue;if(h)for(var A=0;Ae.scrollBottom&&(e.y--,this._terminal.scroll()),e.x>=this._terminal.cols&&e.x--,this._terminal.emit("linefeed")},t.prototype.carriageReturn=function(){this._terminal.buffer.x=0},t.prototype.backspace=function(){this._terminal.buffer.x>0&&this._terminal.buffer.x--},t.prototype.tab=function(){var e=this._terminal.buffer.x;this._terminal.buffer.x=this._terminal.buffer.nextStop(),this._terminal.options.screenReaderMode&&this._terminal.emit("a11y.tab",this._terminal.buffer.x-e)},t.prototype.shiftOut=function(){this._terminal.setgLevel(1)},t.prototype.shiftIn=function(){this._terminal.setgLevel(0)},t.prototype.insertChars=function(e){var t=e[0];t<1&&(t=1);for(var a=this._terminal.buffer,i=a.y+a.ybase,r=a.x,n=[this._terminal.eraseAttr(),p.NULL_CELL_CHAR,p.NULL_CELL_WIDTH,p.NULL_CELL_CODE];t--&&r=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x>=this._terminal.cols&&this._terminal.buffer.x--},t.prototype.cursorForward=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.x+=t,this._terminal.buffer.x>=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.cursorBackward=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.x>=this._terminal.cols&&this._terminal.buffer.x--,this._terminal.buffer.x-=t,this._terminal.buffer.x<0&&(this._terminal.buffer.x=0)},t.prototype.cursorNextLine=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.y+=t,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x=0},t.prototype.cursorPrecedingLine=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.y-=t,this._terminal.buffer.y<0&&(this._terminal.buffer.y=0),this._terminal.buffer.x=0},t.prototype.cursorCharAbsolute=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.x=t-1},t.prototype.cursorPosition=function(e){var t,a=e[0]-1;t=e.length>=2?e[1]-1:0,a<0?a=0:a>=this._terminal.rows&&(a=this._terminal.rows-1),t<0?t=0:t>=this._terminal.cols&&(t=this._terminal.cols-1),this._terminal.buffer.x=t,this._terminal.buffer.y=a},t.prototype.cursorForwardTab=function(e){for(var t=e[0]||1;t--;)this._terminal.buffer.x=this._terminal.buffer.nextStop()},t.prototype.eraseInDisplay=function(e){var t;switch(e[0]){case 0:for(this._terminal.eraseRight(this._terminal.buffer.x,this._terminal.buffer.y),t=this._terminal.buffer.y+1;t0&&(this._terminal.buffer.lines.trimStart(a),this._terminal.buffer.ybase=Math.max(this._terminal.buffer.ybase-a,0),this._terminal.buffer.ydisp=Math.max(this._terminal.buffer.ydisp-a,0),this._terminal.emit("scroll",0))}},t.prototype.eraseInLine=function(e){switch(e[0]){case 0:this._terminal.eraseRight(this._terminal.buffer.x,this._terminal.buffer.y);break;case 1:this._terminal.eraseLeft(this._terminal.buffer.x,this._terminal.buffer.y);break;case 2:this._terminal.eraseLine(this._terminal.buffer.y)}},t.prototype.insertLines=function(e){var t=e[0];t<1&&(t=1);for(var a=this._terminal.buffer,i=a.y+a.ybase,r=this._terminal.rows-1-a.scrollBottom,n=this._terminal.rows-1+a.ybase-r+1;t--;)a.lines.splice(n-1,1),a.lines.splice(i,0,this._terminal.blankLine(!0));this._terminal.updateRange(a.y),this._terminal.updateRange(a.scrollBottom)},t.prototype.deleteLines=function(e){var t=e[0];t<1&&(t=1);var a,i=this._terminal.buffer,r=i.y+i.ybase;for(a=this._terminal.rows-1-i.scrollBottom,a=this._terminal.rows-1+i.ybase-a;t--;)i.lines.splice(r,1),i.lines.splice(a,0,this._terminal.blankLine(!0));this._terminal.updateRange(i.y),this._terminal.updateRange(i.scrollBottom)},t.prototype.deleteChars=function(e){var t=e[0];t<1&&(t=1);for(var a=this._terminal.buffer,i=a.y+a.ybase,r=[this._terminal.eraseAttr(),p.NULL_CELL_CHAR,p.NULL_CELL_WIDTH,p.NULL_CELL_CODE];t--;)a.lines.get(i).splice(a.x,1),a.lines.get(i).push(r);this._terminal.updateRange(a.y)},t.prototype.scrollUp=function(e){for(var t=e[0]||1,a=this._terminal.buffer;t--;)a.lines.splice(a.ybase+a.scrollTop,1),a.lines.splice(a.ybase+a.scrollBottom,0,this._terminal.blankLine());this._terminal.updateRange(a.scrollTop),this._terminal.updateRange(a.scrollBottom)},t.prototype.scrollDown=function(e,t){if(e.length<2&&!t){for(var a=e[0]||1,i=this._terminal.buffer;a--;)i.lines.splice(i.ybase+i.scrollBottom,1),i.lines.splice(i.ybase+i.scrollTop,0,this._terminal.blankLine());this._terminal.updateRange(i.scrollTop),this._terminal.updateRange(i.scrollBottom)}},t.prototype.eraseChars=function(e){var t=e[0];t<1&&(t=1);for(var a=this._terminal.buffer,i=a.y+a.ybase,r=a.x,n=[this._terminal.eraseAttr(),p.NULL_CELL_CHAR,p.NULL_CELL_WIDTH,p.NULL_CELL_CODE];t--&&r=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.hPositionRelative=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.x+=t,this._terminal.buffer.x>=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.repeatPrecedingCharacter=function(e){for(var t=e[0]||1,a=this._terminal.buffer,i=a.lines.get(a.ybase+a.y),r=i[a.x-1]||[p.DEFAULT_ATTR,p.NULL_CELL_CHAR,p.NULL_CELL_WIDTH,p.NULL_CELL_CODE];t--;)i[a.x++]=r},t.prototype.sendDeviceAttributes=function(e,t){e[0]>0||(t?">"===t&&(this._terminal.is("xterm")?this._terminal.handler(r.C0.ESC+"[>0;276;0c"):this._terminal.is("rxvt-unicode")?this._terminal.handler(r.C0.ESC+"[>85;95;0c"):this._terminal.is("linux")?this._terminal.handler(e[0]+"c"):this._terminal.is("screen")&&this._terminal.handler(r.C0.ESC+"[>83;40003;0c")):this._terminal.is("xterm")||this._terminal.is("rxvt-unicode")||this._terminal.is("screen")?this._terminal.handler(r.C0.ESC+"[?1;2c"):this._terminal.is("linux")&&this._terminal.handler(r.C0.ESC+"[?6c"))},t.prototype.linePosAbsolute=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.y=t-1,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1)},t.prototype.vPositionRelative=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.y+=t,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x>=this._terminal.cols&&this._terminal.buffer.x--},t.prototype.hVPosition=function(e){e[0]<1&&(e[0]=1),e[1]<1&&(e[1]=1),this._terminal.buffer.y=e[0]-1,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x=e[1]-1,this._terminal.buffer.x>=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.tabClear=function(e){var t=e[0];t<=0?delete this._terminal.buffer.tabs[this._terminal.buffer.x]:3===t&&(this._terminal.buffer.tabs={})},t.prototype.setMode=function(e,t){if(e.length>1)for(var a=0;a1e3,this._terminal.mouseEvents=!0,this._terminal.element.classList.add("enable-mouse-events"),this._terminal.selectionManager.disable(),this._terminal.log("Binding to mouse events.");break;case 1004:this._terminal.sendFocus=!0;break;case 1005:this._terminal.utfMouse=!0;break;case 1006:this._terminal.sgrMouse=!0;break;case 1015:this._terminal.urxvtMouse=!0;break;case 25:this._terminal.cursorHidden=!1;break;case 1049:case 47:case 1047:this._terminal.buffers.activateAltBuffer(),this._terminal.viewport.syncScrollArea(),this._terminal.showCursor();break;case 2004:this._terminal.bracketedPasteMode=!0}}else switch(e[0]){case 4:this._terminal.insertMode=!0}},t.prototype.resetMode=function(e,t){if(e.length>1)for(var a=0;a>18,r=this._terminal.curAttr>>9&511,n=511&this._terminal.curAttr,o=0;o=30&&t<=37?r=t-30:t>=40&&t<=47?n=t-40:t>=90&&t<=97?r=(t+=8)-90:t>=100&&t<=107?n=(t+=8)-100:0===t?(i=p.DEFAULT_ATTR>>18,r=p.DEFAULT_ATTR>>9&511,n=511&p.DEFAULT_ATTR):1===t?i|=1:3===t?i|=64:4===t?i|=2:5===t?i|=4:7===t?i|=8:8===t?i|=16:2===t?i|=32:22===t?(i&=-2,i&=-33):24===t?i&=-3:25===t?i&=-5:27===t?i&=-9:28===t?i&=-17:39===t?r=p.DEFAULT_ATTR>>9&511:49===t?n=511&p.DEFAULT_ATTR:38===t?2===e[o+1]?(o+=2,-1===(r=this._terminal.matchColor(255&e[o],255&e[o+1],255&e[o+2]))&&(r=511),o+=2):5===e[o+1]&&(r=t=255&e[o+=2]):48===t?2===e[o+1]?(o+=2,-1===(n=this._terminal.matchColor(255&e[o],255&e[o+1],255&e[o+2]))&&(n=511),o+=2):5===e[o+1]&&(n=t=255&e[o+=2]):100===t?(r=p.DEFAULT_ATTR>>9&511,n=511&p.DEFAULT_ATTR):this._terminal.error("Unknown SGR attribute: %d.",t);this._terminal.curAttr=i<<18|r<<9|n}else this._terminal.curAttr=p.DEFAULT_ATTR},t.prototype.deviceStatus=function(e,t){if(t){if("?"===t)switch(e[0]){case 6:a=this._terminal.buffer.y+1,i=this._terminal.buffer.x+1;this._terminal.emit("data",r.C0.ESC+"[?"+a+";"+i+"R")}}else switch(e[0]){case 5:this._terminal.emit("data",r.C0.ESC+"[0n");break;case 6:var a=this._terminal.buffer.y+1,i=this._terminal.buffer.x+1;this._terminal.emit("data",r.C0.ESC+"["+a+";"+i+"R")}},t.prototype.softReset=function(e,t){"!"===t&&(this._terminal.cursorHidden=!1,this._terminal.insertMode=!1,this._terminal.originMode=!1,this._terminal.wraparoundMode=!0,this._terminal.applicationKeypad=!1,this._terminal.viewport.syncScrollArea(),this._terminal.applicationCursor=!1,this._terminal.buffer.scrollTop=0,this._terminal.buffer.scrollBottom=this._terminal.rows-1,this._terminal.curAttr=p.DEFAULT_ATTR,this._terminal.buffer.x=this._terminal.buffer.y=0,this._terminal.charset=null,this._terminal.glevel=0,this._terminal.charsets=[null])},t.prototype.setCursorStyle=function(e,t){if(" "===t){var a=e[0]<1?1:e[0];switch(a){case 1:case 2:this._terminal.setOption("cursorStyle","block");break;case 3:case 4:this._terminal.setOption("cursorStyle","underline");break;case 5:case 6:this._terminal.setOption("cursorStyle","bar")}var i=a%2==1;this._terminal.setOption("cursorBlink",i)}},t.prototype.setScrollRegion=function(e,t){t||(this._terminal.buffer.scrollTop=(e[0]||1)-1,this._terminal.buffer.scrollBottom=(e[1]&&e[1]<=this._terminal.rows?e[1]:this._terminal.rows)-1,this._terminal.buffer.x=0,this._terminal.buffer.y=0)},t.prototype.saveCursor=function(e){this._terminal.buffer.savedX=this._terminal.buffer.x,this._terminal.buffer.savedY=this._terminal.buffer.y,this._terminal.savedCurAttr=this._terminal.curAttr},t.prototype.restoreCursor=function(e){this._terminal.buffer.x=this._terminal.buffer.savedX||0,this._terminal.buffer.y=this._terminal.buffer.savedY||0,this._terminal.curAttr=this._terminal.savedCurAttr||p.DEFAULT_ATTR},t.prototype.setTitle=function(e){this._terminal.handleTitle(e)},t.prototype.nextLine=function(){this._terminal.buffer.x=0,this.index()},t.prototype.keypadApplicationMode=function(){this._terminal.log("Serial port requested application keypad."),this._terminal.applicationKeypad=!0,this._terminal.viewport&&this._terminal.viewport.syncScrollArea()},t.prototype.keypadNumericMode=function(){this._terminal.log("Switching back to normal keypad."),this._terminal.applicationKeypad=!1,this._terminal.viewport&&this._terminal.viewport.syncScrollArea()},t.prototype.selectDefaultCharset=function(){this._terminal.setgLevel(0),this._terminal.setgCharset(0,n.DEFAULT_CHARSET)},t.prototype.selectCharset=function(e){if(2!==e.length)return this.selectDefaultCharset();"/"!==e[0]&&this._terminal.setgCharset(s[e[0]],n.CHARSETS[e[1]]||n.DEFAULT_CHARSET)},t.prototype.index=function(){this._terminal.index()},t.prototype.tabSet=function(){this._terminal.tabSet()},t.prototype.reverseIndex=function(){this._terminal.reverseIndex()},t.prototype.reset=function(){this._parser.reset(),this._terminal.reset()},t.prototype.setgLevel=function(e){this._terminal.setgLevel(e)},t}(d.Disposable);t.InputHandler=c},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={"`":"◆",a:"▒",b:"\t",c:"\f",d:"\r",e:"\n",f:"°",g:"±",h:"␤",i:"\v",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},t.CHARSETS.A={"#":"£"},t.CHARSETS.B=null,t.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},t.CHARSETS.C=t.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},t.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},t.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},t.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},t.CHARSETS.E=t.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},t.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},t.CHARSETS.H=t.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.wcwidth=function(e){var t=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],a=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];function i(e,t){var a,i=0,r=t.length-1;if(et[r][1])return!1;for(;r>=i;)if(e>t[a=i+r>>1][1])i=a+1;else{if(!(e=127&&a<160?e.control:i(a,t)?0:function(e){return e>=4352&&(e<=4447||9001===e||9002===e||e>=11904&&e<=42191&&12351!==e||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510)}(a)?2:1}var n=0|e.control,p=null;return function(e){if((e|=0)<32)return 0|n;if(e<127)return 1;var t=p||function(){p="undefined"==typeof Uint32Array?new Array(4096):new Uint32Array(4096);for(var e=0;e<4096;++e){for(var t=0,a=16;a--;)t=t<<2|r(16*e+a);p[e]=t}return p}();return e<65536?t[e>>4]>>((15&e)<<1)&3:function(e){return i(e,a)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}(e)}}({nul:0,control:0})},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(11);function n(e,t){for(var a=t-e,i=new Array(a);a--;)i[a]=--t;return i}var p=function(){function e(e){this.table="undefined"==typeof Uint8Array?new Array(e):new Uint8Array(e)}return e.prototype.add=function(e,t,a,i){this.table[t<<8|e]=(0|a)<<4|(void 0===i?t:i)},e.prototype.addMany=function(e,t,a,i){for(var r=0;r31&&t<128){n=~n?n:h;do{h++}while(h31&&e.charCodeAt(h)<128);h--}else if(4===r&&t>47&&t<57)d[d.length-1]=10*d[d.length-1]+t-48;else{switch((a=t<160?s[r<<8|t]:16)>>4){case 2:n=~n?n:h;break;case 3:~n&&(this._printHandler(e,n,h),n=-1),(m=this._executeHandlers[t])?m():this._executeHandlerFb(t);break;case 0:~n?(this._printHandler(e,n,h),n=-1):~p&&(l.put(e,p,h),p=-1);break;case 1:if(t>159)switch(r){case 0:n=~n?n:h;break;case 8:o+=String.fromCharCode(t),a|=8;break;case 6:a|=6;break;case 11:a|=11;break;case 13:p=~p?p:h,a|=13;break;default:i=!0}else i=!0;if(i){if(this._errorHandler({position:h,code:t,currentState:r,print:n,dcs:p,osc:o,collect:u,params:d,abort:!1}).abort)return;i=!1}break;case 7:(m=this._csiHandlers[t])?m(d,u):this._csiHandlerFb(u,d,t);break;case 8:59===t?d.push(0):d[d.length-1]=10*d[d.length-1]+t-48;break;case 9:u+=String.fromCharCode(t);break;case 10:(m=this._escHandlers[u+String.fromCharCode(t)])?m(u,t):this._escHandlerFb(u,t);break;case 11:~n&&(this._printHandler(e,n,h),n=-1),o="",d=[0],u="",p=-1;break;case 12:(l=this._dcsHandlers[u+String.fromCharCode(t)])||(l=this._dcsHandlerFb),l.hook(u,d,t);break;case 13:p=~p?p:h;break;case 14:l&&(~p&&l.put(e,p,h),l.unhook(),l=null),27===t&&(a|=1),o="",d=[0],u="",p=-1;break;case 4:~n&&(this._printHandler(e,n,h),n=-1),o="";break;case 5:o+=e.charAt(h);break;case 6:if(o&&24!==t&&26!==t){var f=o.indexOf(";");if(-1===f)this._oscHandlerFb(-1,o);else{var v=parseInt(o.substring(0,f)),_=o.substring(f+1);(m=this._oscHandlers[v])?m(_):this._oscHandlerFb(v,_)}}27===t&&(a|=1),o="",d=[0],u="",p=-1}r=15&a}0===r&&~n?this._printHandler(e,n,e.length):13===r&&~p&&l&&l.put(e,p,e.length),this._osc=o,this._collect=u,this._params=d,this._activeDcsHandler=l,this.currentState=r},a}(r.Disposable);t.EscapeSequenceParser=s},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(98),n=a(105),p=a(106),o=a(23),u=a(107),d=a(9),s=a(32),l=a(42),m=a(108),c=function(e){function t(t,a){var i=e.call(this)||this;i._terminal=t,i._isPaused=!1,i._needsFullRefresh=!1;var d=i._terminal.options.allowTransparency;if(i.colorManager=new o.ColorManager(document,d),i._characterJoinerRegistry=new m.CharacterJoinerRegistry(t),a&&i.colorManager.setTheme(a),i._renderLayers=[new r.TextRenderLayer(i._terminal.screenElement,0,i.colorManager.colors,i._characterJoinerRegistry,d),new n.SelectionRenderLayer(i._terminal.screenElement,1,i.colorManager.colors),new u.LinkRenderLayer(i._terminal.screenElement,2,i.colorManager.colors,i._terminal),new p.CursorRenderLayer(i._terminal.screenElement,3,i.colorManager.colors)],i.dimensions={scaledCharWidth:null,scaledCharHeight:null,scaledCellWidth:null,scaledCellHeight:null,scaledCharLeft:null,scaledCharTop:null,scaledCanvasWidth:null,scaledCanvasHeight:null,canvasWidth:null,canvasHeight:null,actualCellWidth:null,actualCellHeight:null},i._devicePixelRatio=window.devicePixelRatio,i._updateDimensions(),i.onOptionsChanged(),i._renderDebouncer=new s.RenderDebouncer(i._terminal,i._renderRows.bind(i)),i._screenDprMonitor=new l.ScreenDprMonitor,i._screenDprMonitor.setListener(function(){return i.onWindowResize(window.devicePixelRatio)}),i.register(i._screenDprMonitor),"IntersectionObserver"in window){var c=new IntersectionObserver(function(e){return i.onIntersectionChange(e[0])},{threshold:0});c.observe(i._terminal.element),i.register({dispose:function(){return c.disconnect()}})}return i}return i(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._renderLayers.forEach(function(e){return e.dispose()})},t.prototype.onIntersectionChange=function(e){this._isPaused=0===e.intersectionRatio,!this._isPaused&&this._needsFullRefresh&&this._terminal.refresh(0,this._terminal.rows-1)},t.prototype.onWindowResize=function(e){this._devicePixelRatio!==e&&(this._devicePixelRatio=e,this.onResize(this._terminal.cols,this._terminal.rows))},t.prototype.setTheme=function(e){var t=this;return this.colorManager.setTheme(e),this._renderLayers.forEach(function(e){e.onThemeChanged(t._terminal,t.colorManager.colors),e.reset(t._terminal)}),this._isPaused?this._needsFullRefresh=!0:this._terminal.refresh(0,this._terminal.rows-1),this.colorManager.colors},t.prototype.onResize=function(e,t){var a=this;this._updateDimensions(),this._renderLayers.forEach(function(e){return e.resize(a._terminal,a.dimensions)}),this._isPaused?this._needsFullRefresh=!0:this._terminal.refresh(0,this._terminal.rows-1),this._terminal.screenElement.style.width=this.dimensions.canvasWidth+"px",this._terminal.screenElement.style.height=this.dimensions.canvasHeight+"px",this.emit("resize",{width:this.dimensions.canvasWidth,height:this.dimensions.canvasHeight})},t.prototype.onCharSizeChanged=function(){this.onResize(this._terminal.cols,this._terminal.rows)},t.prototype.onBlur=function(){var e=this;this._runOperation(function(t){return t.onBlur(e._terminal)})},t.prototype.onFocus=function(){var e=this;this._runOperation(function(t){return t.onFocus(e._terminal)})},t.prototype.onSelectionChanged=function(e,t,a){var i=this;void 0===a&&(a=!1),this._runOperation(function(r){return r.onSelectionChanged(i._terminal,e,t,a)})},t.prototype.onCursorMove=function(){var e=this;this._runOperation(function(t){return t.onCursorMove(e._terminal)})},t.prototype.onOptionsChanged=function(){var e=this;this.colorManager.allowTransparency=this._terminal.options.allowTransparency,this._runOperation(function(t){return t.onOptionsChanged(e._terminal)})},t.prototype.clear=function(){var e=this;this._runOperation(function(t){return t.reset(e._terminal)})},t.prototype._runOperation=function(e){this._isPaused?this._needsFullRefresh=!0:this._renderLayers.forEach(function(t){return e(t)})},t.prototype.refreshRows=function(e,t){this._isPaused?this._needsFullRefresh=!0:this._renderDebouncer.refresh(e,t)},t.prototype._renderRows=function(e,t){var a=this;this._renderLayers.forEach(function(i){return i.onGridChanged(a._terminal,e,t)}),this._terminal.emit("refresh",{start:e,end:t})},t.prototype._updateDimensions=function(){this._terminal.charMeasure.width&&this._terminal.charMeasure.height&&(this.dimensions.scaledCharWidth=Math.floor(this._terminal.charMeasure.width*window.devicePixelRatio),this.dimensions.scaledCharHeight=Math.ceil(this._terminal.charMeasure.height*window.devicePixelRatio),this.dimensions.scaledCellHeight=Math.floor(this.dimensions.scaledCharHeight*this._terminal.options.lineHeight),this.dimensions.scaledCharTop=1===this._terminal.options.lineHeight?0:Math.round((this.dimensions.scaledCellHeight-this.dimensions.scaledCharHeight)/2),this.dimensions.scaledCellWidth=this.dimensions.scaledCharWidth+Math.round(this._terminal.options.letterSpacing),this.dimensions.scaledCharLeft=Math.floor(this._terminal.options.letterSpacing/2),this.dimensions.scaledCanvasHeight=this._terminal.rows*this.dimensions.scaledCellHeight,this.dimensions.scaledCanvasWidth=this._terminal.cols*this.dimensions.scaledCellWidth,this.dimensions.canvasHeight=Math.round(this.dimensions.scaledCanvasHeight/window.devicePixelRatio),this.dimensions.canvasWidth=Math.round(this.dimensions.scaledCanvasWidth/window.devicePixelRatio),this.dimensions.actualCellHeight=this.dimensions.canvasHeight/this._terminal.rows,this.dimensions.actualCellWidth=this.dimensions.canvasWidth/this._terminal.cols)},t.prototype.registerCharacterJoiner=function(e){return this._characterJoinerRegistry.registerCharacterJoiner(e)},t.prototype.deregisterCharacterJoiner=function(e){return this._characterJoinerRegistry.deregisterCharacterJoiner(e)},t}(d.EventEmitter);t.Renderer=c},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(8),n=a(21),p=a(99),o=function(e){function t(t,a,i,r,n){var o=e.call(this,t,"text",a,n,i)||this;return o._characterOverlapCache={},o._state=new p.GridCache,o._characterJoinerRegistry=r,o}return i(t,e),t.prototype.resize=function(t,a){e.prototype.resize.call(this,t,a);var i=this._getFont(t,!1,!1);this._characterWidth===a.scaledCharWidth&&this._characterFont===i||(this._characterWidth=a.scaledCharWidth,this._characterFont=i,this._characterOverlapCache={}),this._state.clear(),this._state.resize(t.cols,t.rows)},t.prototype.reset=function(e){this._state.clear(),this.clearAll()},t.prototype._forEachCell=function(e,t,a,i,p){for(var o=t;o<=a;o++)for(var u=o+e.buffer.ydisp,d=e.buffer.lines.get(u),s=i?i.getJoinedCharacters(u):[],l=0;l0&&l===s[0][0]){_=!0;var y=s.shift();h=e.buffer.translateBufferLineToString(u,!0,y[0],y[1]),v=y[1]-y[0],c=1/0,A=y[1]-1}!_&&this._isOverlapping(m)&&A>18,E=511&f,g=f>>9&511;if(8&C){var w=E;E=g,256===(g=w)&&(g=n.INVERTED_DEFAULT_COLOR),257===E&&(E=n.INVERTED_DEFAULT_COLOR)}p(c,h,v,l,o,g,E,C),l=A}}},t.prototype._drawBackground=function(e,t,a){var i=this,r=this._ctx,p=e.cols,o=0,u=0,d=null;r.save(),this._forEachCell(e,t,a,null,function(e,t,a,s,l,m,c,h){var f=null;c===n.INVERTED_DEFAULT_COLOR?f=i._colors.foreground.css:c<256&&(f=i._colors.ansi[c].css),null===d&&(o=s,u=l),l!==u?(r.fillStyle=d,i.fillCells(o,u,p-o,1),o=s,u=l):d!==f&&(r.fillStyle=d,i.fillCells(o,u,s-o,1),o=s,u=l),d=f}),null!==d&&(r.fillStyle=d,this.fillCells(o,u,p-o,1)),r.restore()},t.prototype._drawForeground=function(e,t,a){var i=this;this._forEachCell(e,t,a,this._characterJoinerRegistry,function(t,a,r,p,o,u,d,s){16&s||(2&s&&(i._ctx.save(),u===n.INVERTED_DEFAULT_COLOR?i._ctx.fillStyle=i._colors.background.css:i._ctx.fillStyle=u<256?i._colors.ansi[u].css:i._colors.foreground.css,i.fillBottomLineAtCells(p,o,r),i._ctx.restore()),i.drawChars(e,a,t,r,p,o,u,d,!!(1&s),!!(32&s),!!(64&s)))})},t.prototype.onGridChanged=function(e,t,a){0!==this._state.cache.length&&(this._charAtlas&&this._charAtlas.beginFrame(),this.clearCells(0,t,e.cols,a-t+1),this._drawBackground(e,t,a),this._drawForeground(e,t,a))},t.prototype.onOptionsChanged=function(e){this.setTransparency(e,e.options.allowTransparency)},t.prototype._isOverlapping=function(e){if(1!==e[r.CHAR_DATA_WIDTH_INDEX])return!1;if(e[r.CHAR_DATA_CODE_INDEX]<256)return!1;var t=e[r.CHAR_DATA_CHAR_INDEX];if(this._characterOverlapCache.hasOwnProperty(t))return this._characterOverlapCache[t];this._ctx.save(),this._ctx.font=this._characterFont;var a=Math.floor(this._ctx.measureText(t).width)>this._characterWidth;return this._ctx.restore(),this._characterOverlapCache[t]=a,a},t}(a(22).BaseRenderLayer);t.TextRenderLayer=o},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this.cache=[]}return e.prototype.resize=function(e,t){for(var a=0;a=this.capacity)a=this._head,this._unlinkNode(a),delete this._map[a.key],a.key=e,a.value=t,this._map[e]=a;else{var i=this._nodePool;i.length>0?((a=i.pop()).key=e,a.value=t):a={prev:null,next:null,key:e,value:t},this._map[e]=a,this.size++}this._appendNode(a)},e}();t.default=i},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t,a){return e.call(this)||this}return i(t,e),t.prototype.draw=function(e,t,a,i){return!1},t}(a(31).default);t.default=r},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(21),n=a(41),p=a(40),o=function(e){function t(t,a){var i=e.call(this)||this;return i._document=t,i._config=a,i._canvasFactory=function(e,t){var a=i._document.createElement("canvas");return a.width=e,a.height=t,a},i}return i(t,e),t.prototype._doWarmUp=function(){var e=this,t=p.generateStaticCharAtlasTexture(window,this._canvasFactory,this._config);t instanceof HTMLCanvasElement?this._texture=t:t.then(function(t){e._texture=t})},t.prototype._isCached=function(e,t){var a=e.code<256,i=e.fg<16,r=e.fg>=256,n=e.bg>=256;return a&&(i||r)&&n&&!e.italic},t.prototype.draw=function(e,t,a,i){if(null==this._texture)return!1;var p=0;if(t.fg<256?p=2+t.fg+(t.bold?16:0):t.bold&&(p=1),!this._isCached(t,p))return!1;e.save();var o=this._config.scaledCharWidth+n.CHAR_ATLAS_CELL_SPACING,u=this._config.scaledCharHeight+n.CHAR_ATLAS_CELL_SPACING;return t.dim&&(e.globalAlpha=r.DIM_OPACITY),e.drawImage(this._texture,t.code*o,p*u,o,this._config.scaledCharHeight,a,i,o,this._config.scaledCharHeight),e.restore(),!0},t}(a(31).default);t.default=o},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t,a,i){var r=e.call(this,t,"selection",a,!0,i)||this;return r._clearState(),r}return i(t,e),t.prototype._clearState=function(){this._state={start:null,end:null,columnSelectMode:null,ydisp:null}},t.prototype.resize=function(t,a){e.prototype.resize.call(this,t,a),this._clearState()},t.prototype.reset=function(e){this._state.start&&this._state.end&&(this._clearState(),this.clearAll())},t.prototype.onSelectionChanged=function(e,t,a,i){if(this._didStateChange(t,a,i,e.buffer.ydisp)&&(this.clearAll(),t&&a)){var r=t[1]-e.buffer.ydisp,n=a[1]-e.buffer.ydisp,p=Math.max(r,0),o=Math.min(n,e.rows-1);if(!(p>=e.rows||o<0)){if(this._ctx.fillStyle=this._colors.selection.css,i){var u=t[0],d=a[0]-u,s=o-p+1;this.fillCells(u,p,d,s)}else{u=r===p?t[0]:0;var l=p===o?a[0]:e.cols;this.fillCells(u,p,l-u,1);var m=Math.max(o-p-1,0);if(this.fillCells(0,p+1,e.cols,m),p!==o){var c=n===o?a[0]:e.cols;this.fillCells(0,o,c,1)}}this._state.start=[t[0],t[1]],this._state.end=[a[0],a[1]],this._state.columnSelectMode=i,this._state.ydisp=e.buffer.ydisp}}},t.prototype._didStateChange=function(e,t,a,i){return!this._areCoordinatesEqual(e,this._state.start)||!this._areCoordinatesEqual(t,this._state.end)||a!==this._state.columnSelectMode||i!==this._state.ydisp},t.prototype._areCoordinatesEqual=function(e,t){return!(!e||!t)&&(e[0]===t[0]&&e[1]===t[1])},t}(a(22).BaseRenderLayer);t.SelectionRenderLayer=r},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(8),n=function(e){function t(t,a,i){var r=e.call(this,t,"cursor",a,!0,i)||this;return r._state={x:null,y:null,isFocused:null,style:null,width:null},r._cursorRenderers={bar:r._renderBarCursor.bind(r),block:r._renderBlockCursor.bind(r),underline:r._renderUnderlineCursor.bind(r)},r}return i(t,e),t.prototype.resize=function(t,a){e.prototype.resize.call(this,t,a),this._state={x:null,y:null,isFocused:null,style:null,width:null}},t.prototype.reset=function(e){this._clearCursor(),this._cursorBlinkStateManager&&(this._cursorBlinkStateManager.dispose(),this._cursorBlinkStateManager=null,this.onOptionsChanged(e))},t.prototype.onBlur=function(e){this._cursorBlinkStateManager&&this._cursorBlinkStateManager.pause(),e.refresh(e.buffer.y,e.buffer.y)},t.prototype.onFocus=function(e){this._cursorBlinkStateManager?this._cursorBlinkStateManager.resume(e):e.refresh(e.buffer.y,e.buffer.y)},t.prototype.onOptionsChanged=function(e){var t=this;e.options.cursorBlink?this._cursorBlinkStateManager||(this._cursorBlinkStateManager=new p(e,function(){t._render(e,!0)})):(this._cursorBlinkStateManager&&(this._cursorBlinkStateManager.dispose(),this._cursorBlinkStateManager=null),e.refresh(e.buffer.y,e.buffer.y))},t.prototype.onCursorMove=function(e){this._cursorBlinkStateManager&&this._cursorBlinkStateManager.restartBlinkAnimation(e)},t.prototype.onGridChanged=function(e,t,a){!this._cursorBlinkStateManager||this._cursorBlinkStateManager.isPaused?this._render(e,!1):this._cursorBlinkStateManager.restartBlinkAnimation(e)},t.prototype._render=function(e,t){if(e.cursorState&&!e.cursorHidden){var a=e.buffer.ybase+e.buffer.y,i=a-e.buffer.ydisp;if(i<0||i>=e.rows)this._clearCursor();else{var n=e.buffer.lines.get(a)[e.buffer.x];if(n){if(!e.isFocused)return this._clearCursor(),this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this._renderBlurCursor(e,e.buffer.x,i,n),this._ctx.restore(),this._state.x=e.buffer.x,this._state.y=i,this._state.isFocused=!1,this._state.style=e.options.cursorStyle,void(this._state.width=n[r.CHAR_DATA_WIDTH_INDEX]);if(!this._cursorBlinkStateManager||this._cursorBlinkStateManager.isCursorVisible){if(this._state){if(this._state.x===e.buffer.x&&this._state.y===i&&this._state.isFocused===e.isFocused&&this._state.style===e.options.cursorStyle&&this._state.width===n[r.CHAR_DATA_WIDTH_INDEX])return;this._clearCursor()}this._ctx.save(),this._cursorRenderers[e.options.cursorStyle||"block"](e,e.buffer.x,i,n),this._ctx.restore(),this._state.x=e.buffer.x,this._state.y=i,this._state.isFocused=!1,this._state.style=e.options.cursorStyle,this._state.width=n[r.CHAR_DATA_WIDTH_INDEX]}else this._clearCursor()}}}else this._clearCursor()},t.prototype._clearCursor=function(){this._state&&(this.clearCells(this._state.x,this._state.y,this._state.width,1),this._state={x:null,y:null,isFocused:null,style:null,width:null})},t.prototype._renderBarCursor=function(e,t,a,i){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this.fillLeftLineAtCell(t,a),this._ctx.restore()},t.prototype._renderBlockCursor=function(e,t,a,i){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this.fillCells(t,a,i[r.CHAR_DATA_WIDTH_INDEX],1),this._ctx.fillStyle=this._colors.cursorAccent.css,this.fillCharTrueColor(e,i,t,a),this._ctx.restore()},t.prototype._renderUnderlineCursor=function(e,t,a,i){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this.fillBottomLineAtCells(t,a),this._ctx.restore()},t.prototype._renderBlurCursor=function(e,t,a,i){this._ctx.save(),this._ctx.strokeStyle=this._colors.cursor.css,this.strokeRectAtCell(t,a,i[r.CHAR_DATA_WIDTH_INDEX],1),this._ctx.restore()},t}(a(22).BaseRenderLayer);t.CursorRenderLayer=n;var p=function(){function e(e,t){this._renderCallback=t,this.isCursorVisible=!0,e.isFocused&&this._restartInterval()}return Object.defineProperty(e.prototype,"isPaused",{get:function(){return!(this._blinkStartTimeout||this._blinkInterval)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._blinkInterval&&(window.clearInterval(this._blinkInterval),this._blinkInterval=null),this._blinkStartTimeout&&(window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=null),this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=null)},e.prototype.restartBlinkAnimation=function(e){var t=this;this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=window.requestAnimationFrame(function(){t._renderCallback(),t._animationFrame=null})))},e.prototype._restartInterval=function(e){var t=this;void 0===e&&(e=600),this._blinkInterval&&window.clearInterval(this._blinkInterval),this._blinkStartTimeout=setTimeout(function(){if(t._animationTimeRestarted){var e=600-(Date.now()-t._animationTimeRestarted);if(t._animationTimeRestarted=null,e>0)return void t._restartInterval(e)}t.isCursorVisible=!1,t._animationFrame=window.requestAnimationFrame(function(){t._renderCallback(),t._animationFrame=null}),t._blinkInterval=setInterval(function(){if(t._animationTimeRestarted){var e=600-(Date.now()-t._animationTimeRestarted);return t._animationTimeRestarted=null,void t._restartInterval(e)}t.isCursorVisible=!t.isCursorVisible,t._animationFrame=window.requestAnimationFrame(function(){t._renderCallback(),t._animationFrame=null})},600)},e)},e.prototype.pause=function(){this.isCursorVisible=!0,this._blinkInterval&&(window.clearInterval(this._blinkInterval),this._blinkInterval=null),this._blinkStartTimeout&&(window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=null),this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=null)},e.prototype.resume=function(e){this._animationTimeRestarted=null,this._restartInterval(),this.restartBlinkAnimation(e)},e}()},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t,a,i,r){var n=e.call(this,t,"link",a,!0,i)||this;return n._state=null,r.linkifier.on("linkhover",function(e){return n._onLinkHover(e)}),r.linkifier.on("linkleave",function(e){return n._onLinkLeave(e)}),n}return i(t,e),t.prototype.resize=function(t,a){e.prototype.resize.call(this,t,a),this._state=null},t.prototype.reset=function(e){this._clearCurrentLink()},t.prototype._clearCurrentLink=function(){if(this._state){this.clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);var e=this._state.y2-this._state.y1-1;e>0&&this.clearCells(0,this._state.y1+1,this._state.cols,e),this.clearCells(0,this._state.y2,this._state.x2,1),this._state=null}},t.prototype._onLinkHover=function(e){if(this._ctx.fillStyle=this._colors.foreground.css,e.y1===e.y2)this.fillBottomLineAtCells(e.x1,e.y1,e.x2-e.x1);else{this.fillBottomLineAtCells(e.x1,e.y1,e.cols-e.x1);for(var t=e.y1+1;t>9,d=0;d>9;if(0!==m){if(c!==u){if(d-n>1)for(var h=this._getJoinedRanges(r,o,p,t,n),f=0;f1)for(h=this._getJoinedRanges(r,o,p,t,n),f=0;f=0;t--)if(e.priority<=this._linkMatchers[t].priority)return void this._linkMatchers.splice(t+1,0,e);this._linkMatchers.splice(0,0,e)}else this._linkMatchers.push(e)},t.prototype.deregisterLinkMatcher=function(e){for(var t=0;t=this._terminal.buffer.lines.length)){if(this._terminal.buffer.lines.get(t).isWrapped){if(0!==e)return;var a=void 0;do{if(e--,t--,!(a=this._terminal.buffer.lines.get(t)))break}while(a.isWrapped)}for(var i=this._terminal.buffer.translateBufferLineToString(t,!1),r=t+1;r0&&this._doLinkifyRow(e,d,a,i+u)}},t.prototype._addLink=function(e,t,a,i){var n=this,p=e%this._terminal.cols,o=t+Math.floor(e/this._terminal.cols),u=(p+a.length)%this._terminal.cols,d=o+Math.floor((p+a.length)/this._terminal.cols);0===u&&(u=this._terminal.cols,d--),this._mouseZoneManager.add(new r.MouseZone(p+1,o+1,u+1,d+1,function(e){if(i.handler)return i.handler(e,a);window.open(a,"_blank")},function(e){n.emit("linkhover",n._createLinkHoverEvent(p,o,u,d)),n._terminal.element.classList.add("xterm-cursor-pointer")},function(e){n.emit("linktooltip",n._createLinkHoverEvent(p,o,u,d)),i.hoverTooltipCallback&&i.hoverTooltipCallback(e,a)},function(){n.emit("linkleave",n._createLinkHoverEvent(p,o,u,d)),n._terminal.element.classList.remove("xterm-cursor-pointer"),i.hoverLeaveCallback&&i.hoverLeaveCallback()},function(e){return!i.willLinkActivate||i.willLinkActivate(e,a)}))},t.prototype._createLinkHoverEvent=function(e,t,a,i){return{x1:e,y1:t,x2:a,y2:i,cols:this._terminal.cols}},t.TIME_BEFORE_LINKIFY=200,t}(a(9).EventEmitter);t.Linkifier=n},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(44),n=a(24),p=a(9),o=a(111),u=a(8),d=a(112),s=String.fromCharCode(160),l=new RegExp(s,"g"),m=function(e){function t(t,a){var i=e.call(this)||this;return i._terminal=t,i._charMeasure=a,i._enabled=!0,i._initListeners(),i.enable(),i._model=new o.SelectionModel(t),i._activeSelectionMode=0,i}return i(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._removeMouseDownListeners()},Object.defineProperty(t.prototype,"_buffer",{get:function(){return this._terminal.buffers.active},enumerable:!0,configurable:!0}),t.prototype._initListeners=function(){var e=this;this._mouseMoveListener=function(t){return e._onMouseMove(t)},this._mouseUpListener=function(t){return e._onMouseUp(t)},this._trimListener=function(t){return e._onTrim(t)},this.initBuffersListeners()},t.prototype.initBuffersListeners=function(){var e=this;this._terminal.buffer.lines.on("trim",this._trimListener),this._terminal.buffers.on("activate",function(t){return e._onBufferActivate(t)})},t.prototype.disable=function(){this.clearSelection(),this._enabled=!1},t.prototype.enable=function(){this._enabled=!0},Object.defineProperty(t.prototype,"selectionStart",{get:function(){return this._model.finalSelectionStart},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectionEnd",{get:function(){return this._model.finalSelectionEnd},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasSelection",{get:function(){var e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t)&&(e[0]!==t[0]||e[1]!==t[1])},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectionText",{get:function(){var e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return"";var a=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return"";for(var i=e[1];i<=t[1];i++){var r=this._buffer.translateBufferLineToString(i,!0,e[0],t[0]);a.push(r)}}else{var p=e[1]===t[1]?t[0]:null;a.push(this._buffer.translateBufferLineToString(e[1],!0,e[0],p));for(i=e[1]+1;i<=t[1]-1;i++){var o=this._buffer.lines.get(i);r=this._buffer.translateBufferLineToString(i,!0);o.isWrapped?a[a.length-1]+=r:a.push(r)}if(e[1]!==t[1]){o=this._buffer.lines.get(t[1]),r=this._buffer.translateBufferLineToString(t[1],!0,0,t[0]);o.isWrapped?a[a.length-1]+=r:a.push(r)}}return a.map(function(e){return e.replace(l," ")}).join(n.isMSWindows?"\r\n":"\n")},enumerable:!0,configurable:!0}),t.prototype.clearSelection=function(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh()},t.prototype.refresh=function(e){var t=this;(this._refreshAnimationFrame||(this._refreshAnimationFrame=window.requestAnimationFrame(function(){return t._refresh()})),n.isLinux&&e)&&(this.selectionText.length&&this.emit("newselection",this.selectionText))},t.prototype._refresh=function(){this._refreshAnimationFrame=null,this.emit("refresh",{start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})},t.prototype.isClickInSelection=function(e){var t=this._getMouseBufferCoords(e),a=this._model.finalSelectionStart,i=this._model.finalSelectionEnd;return!(!a||!i)&&(t[1]>a[1]&&t[1]a[0]&&t[0]=0&&t<=a?0:(t>a&&(t-=a),t=Math.min(Math.max(t,-50),50),(t/=50)/Math.abs(t)+Math.round(14*t))},t.prototype.shouldForceSelection=function(e){return n.isMac?e.altKey&&this._terminal.options.macOptionClickForcesSelection:e.shiftKey},t.prototype.onMouseDown=function(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._onIncrementalClick(e):1===e.detail?this._onSingleClick(e):2===e.detail?this._onDoubleClick(e):3===e.detail&&this._onTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}},t.prototype._addMouseDownListeners=function(){var e=this;this._terminal.element.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._terminal.element.ownerDocument.addEventListener("mouseup",this._mouseUpListener),this._dragScrollIntervalTimer=setInterval(function(){return e._dragScroll()},50)},t.prototype._removeMouseDownListeners=function(){this._terminal.element.ownerDocument&&(this._terminal.element.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._terminal.element.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=null},t.prototype._onIncrementalClick=function(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))},t.prototype._onSingleClick=function(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),this._model.selectionStart){this._model.selectionEnd=null;var t=this._buffer.lines.get(this._model.selectionStart[1]);if(t)if(!(t.length>=this._model.selectionStart[0]))0===t[this._model.selectionStart[0]][u.CHAR_DATA_WIDTH_INDEX]&&this._model.selectionStart[0]++}},t.prototype._onDoubleClick=function(e){var t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=1,this._selectWordAt(t,!0))},t.prototype._onTripleClick=function(e){var t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))},t.prototype.shouldColumnSelect=function(e){return e.altKey&&!(n.isMac&&this._terminal.options.macOptionClickForcesSelection)},t.prototype._onMouseMove=function(e){e.stopImmediatePropagation();var t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),this._model.selectionEnd){if(2===this._activeSelectionMode?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._terminal.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0)),this._model.selectionEnd[1]0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._terminal.cols),this._model.selectionEnd[1]=Math.min(this._terminal.buffer.ydisp+this._terminal.rows,this._terminal.buffer.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=this._terminal.buffer.ydisp),this.refresh())},t.prototype._onMouseUp=function(e){var t=e.timeStamp-this._mouseDownTimeStamp;this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500?new d.AltClickHandler(e,this._terminal).move():this.hasSelection&&this._terminal.emit("selection")},t.prototype._onBufferActivate=function(e){this.clearSelection(),e.inactiveBuffer.lines.off("trim",this._trimListener),e.activeBuffer.lines.on("trim",this._trimListener)},t.prototype._convertViewportColToCharacterIndex=function(e,t){for(var a=t[0],i=0;t[0]>=i;i++){var r=e[i];0===r[u.CHAR_DATA_WIDTH_INDEX]?a--:r[u.CHAR_DATA_CHAR_INDEX].length>1&&t[0]!==i&&(a+=r[u.CHAR_DATA_CHAR_INDEX].length-1)}return a},t.prototype.setSelection=function(e,t,a){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=a,this.refresh()},t.prototype._getWordAt=function(e,t,a,i){if(void 0===a&&(a=!0),void 0===i&&(i=!0),e[0]>=this._terminal.cols)return null;var r=this._buffer.lines.get(e[1]);if(!r)return null;var n=this._buffer.translateBufferLineToString(e[1],!1),p=this._convertViewportColToCharacterIndex(r,e),o=p,d=e[0]-p,s=0,l=0,m=0,c=0;if(" "===n.charAt(p)){for(;p>0&&" "===n.charAt(p-1);)p--;for(;o1&&(c+=r[f][u.CHAR_DATA_CHAR_INDEX].length-1,o+=r[f][u.CHAR_DATA_CHAR_INDEX].length-1);h>0&&p>0&&!this._isCharWordSeparator(r[h-1]);){0===(v=r[h-1])[u.CHAR_DATA_WIDTH_INDEX]?(s++,h--):v[u.CHAR_DATA_CHAR_INDEX].length>1&&(m+=v[u.CHAR_DATA_CHAR_INDEX].length-1,p-=v[u.CHAR_DATA_CHAR_INDEX].length-1),p--,h--}for(;f1&&(c+=v[u.CHAR_DATA_CHAR_INDEX].length-1,o+=v[u.CHAR_DATA_CHAR_INDEX].length-1),o++,f++}}o++;var _=p+d-s+m,A=Math.min(this._terminal.cols,o-p+s+l-m-c);if(!t&&""===n.slice(p,o).trim())return null;if(a&&0===_&&32!==r[0][u.CHAR_DATA_CODE_INDEX]){var y=this._buffer.lines.get(e[1]-1);if(y&&r.isWrapped&&32!==y[this._terminal.cols-1][u.CHAR_DATA_CODE_INDEX]){var C=this._getWordAt([this._terminal.cols-1,e[1]-1],!1,!0,!1);if(C){var E=this._terminal.cols-C.start;_-=E,A+=E}}}if(i&&_+A===this._terminal.cols&&32!==r[this._terminal.cols-1][u.CHAR_DATA_CODE_INDEX]){var g=this._buffer.lines.get(e[1]+1);if(g&&g.isWrapped&&32!==g[0][u.CHAR_DATA_CODE_INDEX]){var w=this._getWordAt([0,e[1]+1],!1,!1,!0);w&&(A+=w.length)}}return{start:_,length:A}},t.prototype._selectWordAt=function(e,t){var a=this._getWordAt(e,t);if(a){for(;a.start<0;)a.start+=this._terminal.cols,e[1]--;this._model.selectionStart=[a.start,e[1]],this._model.selectionStartLength=a.length}},t.prototype._selectToWordAt=function(e){var t=this._getWordAt(e,!0);if(t){for(var a=e[1];t.start<0;)t.start+=this._terminal.cols,a--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._terminal.cols;)t.length-=this._terminal.cols,a++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,a]}},t.prototype._isCharWordSeparator=function(e){return 0!==e[u.CHAR_DATA_WIDTH_INDEX]&&" ()[]{}'\"".indexOf(e[u.CHAR_DATA_CHAR_INDEX])>=0},t.prototype._selectLineAt=function(e){var t=this._buffer.getWrappedRangeForLine(e);this._model.selectionStart=[0,t.first],this._model.selectionEnd=[this._terminal.cols,t.last],this._model.selectionStartLength=0},t}(p.EventEmitter);t.SelectionManager=m},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e){this._terminal=e,this.clearSelection()}return e.prototype.clearSelection=function(){this.selectionStart=null,this.selectionEnd=null,this.isSelectAllActive=!1,this.selectionStartLength=0},Object.defineProperty(e.prototype,"finalSelectionStart",{get:function(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"finalSelectionEnd",{get:function(){if(this.isSelectAllActive)return[this._terminal.cols,this._terminal.buffer.ybase+this._terminal.rows-1];if(!this.selectionStart)return null;if(!this.selectionEnd||this.areSelectionValuesReversed()){var e=this.selectionStart[0]+this.selectionStartLength;return e>this._terminal.cols?[e%this._terminal.cols,this.selectionStart[1]+Math.floor(e/this._terminal.cols)]:[e,this.selectionStart[1]]}return this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]?[Math.max(this.selectionStart[0]+this.selectionStartLength,this.selectionEnd[0]),this.selectionEnd[1]]:this.selectionEnd},enumerable:!0,configurable:!0}),e.prototype.areSelectionValuesReversed=function(){var e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])},e.prototype.onTrim=function(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)},e}();t.SelectionModel=i},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(20),r=function(){function e(e,t){this._mouseEvent=e,this._terminal=t,this._lines=this._terminal.buffer.lines,this._startCol=this._terminal.buffer.x,this._startRow=this._terminal.buffer.y;var a,i=this._terminal.mouseHelper.getCoords(this._mouseEvent,this._terminal.element,this._terminal.charMeasure,this._terminal.options.lineHeight,this._terminal.cols,this._terminal.rows,!1);i&&(a=i.map(function(e){return e-1}),this._endCol=a[0],this._endRow=a[1])}return e.prototype.move=function(){this._mouseEvent.altKey&&void 0!==this._endCol&&void 0!==this._endRow&&this._terminal.handler(this._arrowSequences())},e.prototype._arrowSequences=function(){return this._terminal.buffer.hasScrollback?this._moveHorizontallyOnly():this._resetStartingRow()+this._moveToRequestedRow()+this._moveToRequestedCol()},e.prototype._resetStartingRow=function(){return 0===this._moveToRequestedRow().length?"":n(this._bufferLine(this._startCol,this._startRow,this._startCol,this._startRow-this._wrappedRowsForRow(this._startRow),!1).length,this._sequence("D"))},e.prototype._moveToRequestedRow=function(){var e=this._startRow-this._wrappedRowsForRow(this._startRow),t=this._endRow-this._wrappedRowsForRow(this._endRow);return n(Math.abs(e-t)-this._wrappedRowsCount(),this._sequence(this._verticalDirection()))},e.prototype._moveToRequestedCol=function(){var e;e=this._moveToRequestedRow().length>0?this._endRow-this._wrappedRowsForRow(this._endRow):this._startRow;var t=this._endRow,a=this._horizontalDirection();return n(this._bufferLine(this._startCol,e,this._endCol,t,"C"===a).length,this._sequence(a))},e.prototype._moveHorizontallyOnly=function(){var e=this._horizontalDirection();return n(Math.abs(this._startCol-this._endCol),this._sequence(e))},e.prototype._wrappedRowsCount=function(){for(var e=0,t=this._startRow-this._wrappedRowsForRow(this._startRow),a=this._endRow-this._wrappedRowsForRow(this._endRow),i=0;i=0&&e0?this._endRow-this._wrappedRowsForRow(this._endRow):this._startRow,this._startCol=this._endCol&&ethis._endRow?"A":"B"},e.prototype._bufferLine=function(e,t,a,i,r){for(var n=e,p=t,o="";n!==a||p!==i;)n+=r?1:-1,r&&n>this._terminal.cols-1?(o+=this._terminal.buffer.translateBufferLineToString(p,!1,e,n),n=0,e=0,p++):!r&&n<0&&(o+=this._terminal.buffer.translateBufferLineToString(p,!1,0,e+1),e=n=this._terminal.cols-1,p--);return o+this._terminal.buffer.translateBufferLineToString(p,!1,e,n)},e.prototype._sequence=function(e){var t=this._terminal.applicationCursor?"O":"[";return i.C0.ESC+t+e},e}();function n(e,t){e=Math.floor(e);for(var a="",i=0;ie;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()},t.prototype._createAccessibilityTreeNode=function(){var e=document.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e},t.prototype._onTab=function(e){for(var t=0;t0)this._charsToConsume.shift()!==e&&this._announceCharacter(e);else this._announceCharacter(e);"\n"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=r.tooMuchOutput)),n.isMac&&this._liveRegion.textContent&&this._liveRegion.textContent.length>0&&!this._liveRegion.parentNode&&setTimeout(function(){t._accessibilityTreeRoot.appendChild(t._liveRegion)},0)}},t.prototype._clearLiveRegion=function(){this._liveRegion.textContent="",this._liveRegionLineCount=0,n.isMac&&this._liveRegion.parentNode&&this._accessibilityTreeRoot.removeChild(this._liveRegion)},t.prototype._onKey=function(e){this._clearLiveRegion(),this._charsToConsume.push(e)},t.prototype._refreshRows=function(e,t){this._renderRowsDebouncer.refresh(e,t)},t.prototype._renderRows=function(e,t){for(var a=this._terminal.buffer,i=a.lines.length.toString(),n=e;n<=t;n++){var p=a.translateBufferLineToString(a.ydisp+n,!0),o=(a.ydisp+n+1).toString(),u=this._rowElements[n];u.textContent=0===p.length?r.blankLine:p,u.setAttribute("aria-posinset",o),u.setAttribute("aria-setsize",i)}},t.prototype._refreshRowsDimensions=function(){if(this._terminal.renderer.dimensions.actualCellHeight){this._rowElements.length!==this._terminal.rows&&this._onResize(this._terminal.rows);for(var e=0;et;)this._rowContainer.removeChild(this._rowElements.pop())},t.prototype.onResize=function(e,t){this._refreshRowElements(e,t),this._updateDimensions()},t.prototype.onCharSizeChanged=function(){this._updateDimensions()},t.prototype.onBlur=function(){this._rowContainer.classList.remove("xterm-focus")},t.prototype.onFocus=function(){this._rowContainer.classList.add("xterm-focus")},t.prototype.onSelectionChanged=function(e,t,a){for(;this._selectionContainer.children.length;)this._selectionContainer.removeChild(this._selectionContainer.children[0]);if(e&&t){var i=e[1]-this._terminal.buffer.ydisp,r=t[1]-this._terminal.buffer.ydisp,n=Math.max(i,0),p=Math.min(r,this._terminal.rows-1);if(!(n>=this._terminal.rows||p<0)){var o=document.createDocumentFragment();if(a)o.appendChild(this._createSelectionElement(n,e[0],t[0],p-n+1));else{var u=i===n?e[0]:0,d=n===p?t[0]:this._terminal.cols;o.appendChild(this._createSelectionElement(n,u,d));var s=p-n-1;if(o.appendChild(this._createSelectionElement(n+1,0,this._terminal.cols,s)),n!==p){var l=r===p?t[0]:this._terminal.cols;o.appendChild(this._createSelectionElement(p,0,l))}}this._selectionContainer.appendChild(o)}}},t.prototype._createSelectionElement=function(e,t,a,i){void 0===i&&(i=1);var r=document.createElement("div");return r.style.height=i*this._terminal.charMeasure.height+"px",r.style.top=e*this._terminal.charMeasure.height+"px",r.style.left=t*this._terminal.charMeasure.width+"px",r.style.width=this._terminal.charMeasure.width*(a-t)+"px",r},t.prototype.onCursorMove=function(){},t.prototype.onOptionsChanged=function(){this._updateDimensions(),this.setTheme(void 0),this._terminal.refresh(0,this._terminal.rows-1)},t.prototype.clear=function(){this._rowElements.forEach(function(e){return e.innerHTML=""})},t.prototype.refreshRows=function(e,t){this._renderDebouncer.refresh(e,t)},t.prototype._renderRows=function(e,t){for(var a=this._terminal,i=a.buffer.ybase+a.buffer.y,r=this._terminal.buffer.x,n=e;n<=t;n++){var p=this._rowElements[n];p.innerHTML="";var o=n+a.buffer.ydisp,u=a.buffer.lines.get(o);p.appendChild(this._rowFactory.createRow(u,o===i,r,a.charMeasure.width,a.cols))}this._terminal.emit("refresh",{start:e,end:t})},Object.defineProperty(t.prototype,"_terminalSelector",{get:function(){return"."+u+this._terminalClass},enumerable:!0,configurable:!0}),t.prototype.registerCharacterJoiner=function(e){return-1},t.prototype.deregisterCharacterJoiner=function(e){return!1},t}(r.EventEmitter);t.DomRenderer=m},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(8);t.BOLD_CLASS="xterm-bold",t.ITALIC_CLASS="xterm-italic",t.CURSOR_CLASS="xterm-cursor";var r=function(){function e(e){this._document=e}return e.prototype.createRow=function(e,a,r,n,p){for(var o=this._document.createDocumentFragment(),u=0,d=0;d=p)){var s=e[d],l=s[i.CHAR_DATA_CHAR_INDEX],m=s[i.CHAR_DATA_ATTR_INDEX],c=s[i.CHAR_DATA_WIDTH_INDEX];if(0!==c){var h=this._document.createElement("span");c>1&&(h.style.width=n*c+"px");var f=m>>18,v=511&m,_=m>>9&511;if(a&&d===r&&h.classList.add(t.CURSOR_CLASS),8&f){var A=v;v=_,256===(_=A)&&(_=0),257===v&&(v=15)}1&f&&(_<8&&(_+=8),h.classList.add(t.BOLD_CLASS)),64&f&&h.classList.add(t.ITALIC_CLASS),h.textContent=l,257!==_&&h.classList.add("xterm-fg-"+_),256!==v&&h.classList.add("xterm-bg-"+v),o.appendChild(h),u+=c}}return o},e}();t.DomRendererRowFactory=r},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(20),r={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};t.evaluateKeyboardEvent=function(e,t,a,n){var p={type:0,cancel:!1,key:void 0},o=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:"UIKeyInputUpArrow"===e.key?p.key=t?i.C0.ESC+"OA":i.C0.ESC+"[A":"UIKeyInputLeftArrow"===e.key?p.key=t?i.C0.ESC+"OD":i.C0.ESC+"[D":"UIKeyInputRightArrow"===e.key?p.key=t?i.C0.ESC+"OC":i.C0.ESC+"[C":"UIKeyInputDownArrow"===e.key&&(p.key=t?i.C0.ESC+"OB":i.C0.ESC+"[B");break;case 8:if(e.shiftKey){p.key=i.C0.BS;break}if(e.altKey){p.key=i.C0.ESC+i.C0.DEL;break}p.key=i.C0.DEL;break;case 9:if(e.shiftKey){p.key=i.C0.ESC+"[Z";break}p.key=i.C0.HT,p.cancel=!0;break;case 13:p.key=i.C0.CR,p.cancel=!0;break;case 27:p.key=i.C0.ESC,p.cancel=!0;break;case 37:o?(p.key=i.C0.ESC+"[1;"+(o+1)+"D",p.key===i.C0.ESC+"[1;3D"&&(p.key=a?i.C0.ESC+"b":i.C0.ESC+"[1;5D")):p.key=t?i.C0.ESC+"OD":i.C0.ESC+"[D";break;case 39:o?(p.key=i.C0.ESC+"[1;"+(o+1)+"C",p.key===i.C0.ESC+"[1;3C"&&(p.key=a?i.C0.ESC+"f":i.C0.ESC+"[1;5C")):p.key=t?i.C0.ESC+"OC":i.C0.ESC+"[C";break;case 38:o?(p.key=i.C0.ESC+"[1;"+(o+1)+"A",p.key===i.C0.ESC+"[1;3A"&&(p.key=i.C0.ESC+"[1;5A")):p.key=t?i.C0.ESC+"OA":i.C0.ESC+"[A";break;case 40:o?(p.key=i.C0.ESC+"[1;"+(o+1)+"B",p.key===i.C0.ESC+"[1;3B"&&(p.key=i.C0.ESC+"[1;5B")):p.key=t?i.C0.ESC+"OB":i.C0.ESC+"[B";break;case 45:e.shiftKey||e.ctrlKey||(p.key=i.C0.ESC+"[2~");break;case 46:p.key=o?i.C0.ESC+"[3;"+(o+1)+"~":i.C0.ESC+"[3~";break;case 36:p.key=o?i.C0.ESC+"[1;"+(o+1)+"H":t?i.C0.ESC+"OH":i.C0.ESC+"[H";break;case 35:p.key=o?i.C0.ESC+"[1;"+(o+1)+"F":t?i.C0.ESC+"OF":i.C0.ESC+"[F";break;case 33:e.shiftKey?p.type=2:p.key=i.C0.ESC+"[5~";break;case 34:e.shiftKey?p.type=3:p.key=i.C0.ESC+"[6~";break;case 112:p.key=o?i.C0.ESC+"[1;"+(o+1)+"P":i.C0.ESC+"OP";break;case 113:p.key=o?i.C0.ESC+"[1;"+(o+1)+"Q":i.C0.ESC+"OQ";break;case 114:p.key=o?i.C0.ESC+"[1;"+(o+1)+"R":i.C0.ESC+"OR";break;case 115:p.key=o?i.C0.ESC+"[1;"+(o+1)+"S":i.C0.ESC+"OS";break;case 116:p.key=o?i.C0.ESC+"[15;"+(o+1)+"~":i.C0.ESC+"[15~";break;case 117:p.key=o?i.C0.ESC+"[17;"+(o+1)+"~":i.C0.ESC+"[17~";break;case 118:p.key=o?i.C0.ESC+"[18;"+(o+1)+"~":i.C0.ESC+"[18~";break;case 119:p.key=o?i.C0.ESC+"[19;"+(o+1)+"~":i.C0.ESC+"[19~";break;case 120:p.key=o?i.C0.ESC+"[20;"+(o+1)+"~":i.C0.ESC+"[20~";break;case 121:p.key=o?i.C0.ESC+"[21;"+(o+1)+"~":i.C0.ESC+"[21~";break;case 122:p.key=o?i.C0.ESC+"[23;"+(o+1)+"~":i.C0.ESC+"[23~";break;case 123:p.key=o?i.C0.ESC+"[24;"+(o+1)+"~":i.C0.ESC+"[24~";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(a&&!n||!e.altKey||e.metaKey)a&&!e.altKey&&!e.ctrlKey&&e.metaKey&&65===e.keyCode&&(p.type=1);else{var u=r[e.keyCode],d=u&&u[e.shiftKey?1:0];if(d)p.key=i.C0.ESC+d;else if(e.keyCode>=65&&e.keyCode<=90){var s=e.ctrlKey?e.keyCode-64:e.keyCode+32;p.key=i.C0.ESC+String.fromCharCode(s)}}else e.keyCode>=65&&e.keyCode<=90?p.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?p.key=String.fromCharCode(0):e.keyCode>=51&&e.keyCode<=55?p.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?p.key=String.fromCharCode(127):219===e.keyCode?p.key=String.fromCharCode(27):220===e.keyCode?p.key=String.fromCharCode(28):221===e.keyCode&&(p.key=String.fromCharCode(29))}return p}},function(e,t,a){"use strict";function i(e){if(!e.element.parentElement)return null;var t=window.getComputedStyle(e.element.parentElement),a=parseInt(t.getPropertyValue("height")),i=Math.max(0,parseInt(t.getPropertyValue("width"))),r=window.getComputedStyle(e.element),n=a-(parseInt(r.getPropertyValue("padding-top"))+parseInt(r.getPropertyValue("padding-bottom"))),p=i-(parseInt(r.getPropertyValue("padding-right"))+parseInt(r.getPropertyValue("padding-left")))-e._core.viewport.scrollBarWidth;return{cols:Math.floor(p/e._core.renderer.dimensions.actualCellWidth),rows:Math.floor(n/e._core.renderer.dimensions.actualCellHeight)}}function r(e){var t=i(e);t&&(e.rows===t.rows&&e.cols===t.cols||(e._core.renderer.clear(),e.resize(t.cols,t.rows)))}Object.defineProperty(t,"__esModule",{value:!0}),t.proposeGeometry=i,t.fit=r,t.apply=function(e){e.prototype.proposeGeometry=function(){return i(this)},e.prototype.fit=function(){r(this)}}},function(e,t,a){"use strict";const i=a(122),r=a(123);e.exports=(e=>{const t=`(?:${`(?:(?:[a-z]+:)?//)${(e=Object.assign({strict:!0},e)).strict?"":"?"}`}|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${i.v4().source}|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*${`(?:\\.${e.strict?"(?:[a-z\\u00a1-\\uffff]{2,})":`(?:${r.sort((e,t)=>t.length-e.length).join("|")})`})\\.?`})(?::\\d{2,5})?(?:[/?#][^\\s"]*)?`;return e.exact?new RegExp(`(?:^${t}$)`,"i"):new RegExp(t,"ig")})},function(e,t,a){"use strict";var i="(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}",r="(?:(?:[0-9a-fA-F:]){1,4}(?:(?::(?:[0-9a-fA-F]){1,4}|:)){2,7})+",n=e.exports=function(e){return(e=e||{}).exact?new RegExp("(?:^"+i+"$)|(?:^"+r+"$)"):new RegExp("(?:"+i+")|(?:"+r+")","g")};n.v4=function(e){return(e=e||{}).exact?new RegExp("^"+i+"$"):new RegExp(i,"g")},n.v6=function(e){return(e=e||{}).exact?new RegExp("^"+r+"$"):new RegExp(r,"g")}},function(e,t){e.exports=["aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","active","actor","ad","adac","ads","adult","ae","aeg","aero","aetna","af","afamilycompany","afl","africa","ag","agakhan","agency","ai","aig","aigo","airbus","airforce","airtel","akdn","al","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blanco","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnl","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","budapest","bugatti","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","cartier","casa","case","caseih","cash","casino","cat","catering","catholic","cba","cbn","cbre","cbs","cc","cd","ceb","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","chase","chat","cheap","chintai","christmas","chrome","chrysler","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","coop","corsica","country","coupon","coupons","courses","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dodge","dog","doha","domains","dot","download","drive","dtv","dubai","duck","dunlop","duns","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epost","epson","equipment","er","ericsson","erni","es","esq","estate","esurance","et","etisalat","eu","eurovision","eus","events","everbank","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glade","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodhands","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","guardian","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","honeywell","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","industries","infiniti","info","ing","ink","institute","insurance","insure","int","intel","international","intuit","investments","io","ipiranga","iq","ir","irish","is","iselect","ismaili","ist","istanbul","it","itau","itv","iveco","iwc","jaguar","java","jcb","jcp","je","jeep","jetzt","jewelry","jio","jlc","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerrylogistics","kerryproperties","kfh","kg","kh","ki","kia","kim","kinder","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","ladbrokes","lamborghini","lamer","lancaster","lancia","lancome","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","liaison","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","lixil","lk","llc","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","lupin","luxe","luxury","lv","ly","ma","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","meo","merckmsd","metlife","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","mobily","moda","moe","moi","mom","monash","money","monster","mopar","mormon","mortgage","moscow","moto","motorcycles","mov","movie","movistar","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","mutual","mv","mw","mx","my","mz","na","nab","nadex","nagoya","name","nationwide","natura","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","newholland","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","northwesternmutual","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","off","office","okinawa","olayan","olayangroup","oldnavy","ollo","om","omega","one","ong","onl","online","onyourside","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","panerai","paris","pars","partners","parts","party","passagens","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","piaget","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","pramerica","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","qvc","racing","radio","raid","re","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","rightathome","ril","rio","rip","rmit","ro","rocher","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sapo","sarl","sas","save","saxo","sb","sbi","sbs","sc","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scjohnson","scor","scot","sd","se","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","shriram","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","space","spiegel","sport","spot","spreadbetting","sr","srl","srt","st","stada","staples","star","starhub","statebank","statefarm","statoil","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiftcover","swiss","sx","sy","sydney","symantec","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","telecity","telefonica","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","uconnect","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","vista","vistaprint","viva","vivo","vlaanderen","vn","vodka","volkswagen","volvo","vote","voting","voto","voyage","vu","vuelos","wales","walmart","walter","wang","wanggou","warman","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","ಭಾರತ","慈善","集团","在线","한국","ଭାରତ","大众汽车","点看","คอม","ভাৰত","ভারত","八卦","موقع","বাংলা","公益","公司","香格里拉","网站","移动","我爱你","москва","қаз","католик","онлайн","сайт","联通","срб","бг","бел","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","삼성","சிங்கப்பூர்","商标","商店","商城","дети","мкд","ею","ポイント","新闻","工行","家電","كوم","中文网","中信","中国","中國","娱乐","谷歌","భారత్","ලංකා","電訊盈科","购物","クラウド","ભારત","通販","भारतम्","भारत","भारोत","网店","संगठन","餐厅","网络","ком","укр","香港","诺基亚","食品","飞利浦","台湾","台灣","手表","手机","мон","الجزائر","عمان","ارامكو","ایران","العليان","اتصالات","امارات","بازار","پاکستان","الاردن","موبايلي","بارت","بھارت","المغرب","ابوظبي","السعودية","ڀارت","كاثوليك","سودان","همراه","عراق","مليسيا","澳門","닷컴","政府","شبكة","بيتك","عرب","გე","机构","组织机构","健康","ไทย","سورية","招聘","рус","рф","珠宝","تونس","大拿","みんな","グーグル","ελ","世界","書籍","ഭാരതം","ਭਾਰਤ","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","مصر","قطر","广东","இலங்கை","இந்தியா","հայ","新加坡","فلسطين","政务","xperia","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zippo","zm","zone","zuerich","zw"]},function(e,t){e.exports=require("electron")},function(e,t,a){var i=a(47),r=a(126),n=process.cwd,p=null,o=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return p||(p=n.call(process)),p};try{process.cwd()}catch(e){}var u=process.chdir;function d(e){return e?function(t,a,r){return e.call(i,t,a,function(e){f(e)&&(e=null),r&&r.apply(this,arguments)})}:e}function s(e){return e?function(t,a){try{return e.call(i,t,a)}catch(e){if(!f(e))throw e}}:e}function l(e){return e?function(t,a,r,n){return e.call(i,t,a,r,function(e){f(e)&&(e=null),n&&n.apply(this,arguments)})}:e}function m(e){return e?function(t,a,r){try{return e.call(i,t,a,r)}catch(e){if(!f(e))throw e}}:e}function c(e){return e?function(t,a){return e.call(i,t,function(e,t){if(!t)return a.apply(this,arguments);t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296),a&&a.apply(this,arguments)})}:e}function h(e){return e?function(t){var a=e.call(i,t);return a.uid<0&&(a.uid+=4294967296),a.gid<0&&(a.gid+=4294967296),a}:e}function f(e){return!e||("ENOSYS"===e.code||!(process.getuid&&0===process.getuid()||"EINVAL"!==e.code&&"EPERM"!==e.code))}process.chdir=function(e){p=null,u.call(process,e)},e.exports=function(e){r.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&function(e){e.lchmod=function(t,a,i){e.open(t,r.O_WRONLY|r.O_SYMLINK,a,function(t,r){t?i&&i(t):e.fchmod(r,a,function(t){e.close(r,function(e){i&&i(t||e)})})})},e.lchmodSync=function(t,a){var i,n=e.openSync(t,r.O_WRONLY|r.O_SYMLINK,a),p=!0;try{i=e.fchmodSync(n,a),p=!1}finally{if(p)try{e.closeSync(n)}catch(e){}else e.closeSync(n)}return i}}(e);e.lutimes||function(e){r.hasOwnProperty("O_SYMLINK")?(e.lutimes=function(t,a,i,n){e.open(t,r.O_SYMLINK,function(t,r){t?n&&n(t):e.futimes(r,a,i,function(t){e.close(r,function(e){n&&n(t||e)})})})},e.lutimesSync=function(t,a,i){var n,p=e.openSync(t,r.O_SYMLINK),o=!0;try{n=e.futimesSync(p,a,i),o=!1}finally{if(o)try{e.closeSync(p)}catch(e){}else e.closeSync(p)}return n}):(e.lutimes=function(e,t,a,i){i&&process.nextTick(i)},e.lutimesSync=function(){})}(e);e.chown=l(e.chown),e.fchown=l(e.fchown),e.lchown=l(e.lchown),e.chmod=d(e.chmod),e.fchmod=d(e.fchmod),e.lchmod=d(e.lchmod),e.chownSync=m(e.chownSync),e.fchownSync=m(e.fchownSync),e.lchownSync=m(e.lchownSync),e.chmodSync=s(e.chmodSync),e.fchmodSync=s(e.fchmodSync),e.lchmodSync=s(e.lchmodSync),e.stat=c(e.stat),e.fstat=c(e.fstat),e.lstat=c(e.lstat),e.statSync=h(e.statSync),e.fstatSync=h(e.fstatSync),e.lstatSync=h(e.lstatSync),e.lchmod||(e.lchmod=function(e,t,a){a&&process.nextTick(a)},e.lchmodSync=function(){});e.lchown||(e.lchown=function(e,t,a,i){i&&process.nextTick(i)},e.lchownSync=function(){});"win32"===o&&(e.rename=function(t){return function(a,i,r){var n=Date.now(),p=0;t(a,i,function o(u){if(u&&("EACCES"===u.code||"EPERM"===u.code)&&Date.now()-n<6e4)return setTimeout(function(){e.stat(i,function(e,n){e&&"ENOENT"===e.code?t(a,i,o):r(u)})},p),void(p<100&&(p+=10));r&&r(u)})}}(e.rename));e.read=function(t){return function(a,i,r,n,p,o){var u;if(o&&"function"==typeof o){var d=0;u=function(s,l,m){if(s&&"EAGAIN"===s.code&&d<10)return d++,t.call(e,a,i,r,n,p,u);o.apply(this,arguments)}}return t.call(e,a,i,r,n,p,u)}}(e.read),e.readSync=function(t){return function(a,i,r,n,p){for(var o=0;;)try{return t.call(e,a,i,r,n,p)}catch(e){if("EAGAIN"===e.code&&o<10){o++;continue}throw e}}}(e.readSync)}},function(e,t){e.exports=require("constants")},function(e,t,a){var i=a(128).Stream;e.exports=function(e){return{ReadStream:function t(a,r){if(!(this instanceof t))return new t(a,r);i.call(this);var n=this;this.path=a;this.fd=null;this.readable=!0;this.paused=!1;this.flags="r";this.mode=438;this.bufferSize=65536;r=r||{};var p=Object.keys(r);for(var o=0,u=p.length;othis.end)throw new Error("start must be <= end");this.pos=this.start}if(null!==this.fd)return void process.nextTick(function(){n._read()});e.open(this.path,this.flags,this.mode,function(e,t){if(e)return n.emit("error",e),void(n.readable=!1);n.fd=t,n.emit("open",t),n._read()})},WriteStream:function t(a,r){if(!(this instanceof t))return new t(a,r);i.call(this);this.path=a;this.fd=null;this.writable=!0;this.flags="w";this.encoding="binary";this.mode=438;this.bytesWritten=0;r=r||{};var n=Object.keys(r);for(var p=0,o=n.length;p= zero");this.pos=this.start}this.busy=!1;this._queue=[];null===this.fd&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}}},function(e,t){e.exports=require("stream")},function(e,t){e.exports=require("util")},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(6).mkdirsSync,p=a(51).utimesMillisSync,o=Symbol("notExist");function u(e,t,a,n){if(!n.filter||n.filter(t,a))return function(e,t,a,n){const p=(n.dereference?i.statSync:i.lstatSync)(t);if(p.isDirectory())return function(e,t,a,r,n){if(t===o)return function(e,t,a,r){return i.mkdirSync(a),s(t,a,r),i.chmodSync(a,e.mode)}(e,a,r,n);if(t&&!t.isDirectory())throw new Error(`Cannot overwrite non-directory '${r}' with directory '${a}'.`);return s(a,r,n)}(p,e,t,a,n);if(p.isFile()||p.isCharacterDevice()||p.isBlockDevice())return function(e,t,a,r,n){return t===o?d(e,a,r,n):function(e,t,a,r){if(r.overwrite)return i.unlinkSync(a),d(e,t,a,r);if(r.errorOnExist)throw new Error(`'${a}' already exists`)}(e,a,r,n)}(p,e,t,a,n);if(p.isSymbolicLink())return function(e,t,a,n){let p=i.readlinkSync(t);n.dereference&&(p=r.resolve(process.cwd(),p));if(e===o)return i.symlinkSync(p,a);{let e;try{e=i.readlinkSync(a)}catch(e){if("EINVAL"===e.code||"UNKNOWN"===e.code)return i.symlinkSync(p,a);throw e}if(n.dereference&&(e=r.resolve(process.cwd(),e)),l(p,e))throw new Error(`Cannot copy '${p}' to a subdirectory of itself, '${e}'.`);if(i.statSync(a).isDirectory()&&l(e,p))throw new Error(`Cannot overwrite '${e}' with '${p}'.`);return function(e,t){return i.unlinkSync(t),i.symlinkSync(e,t)}(p,a)}}(e,t,a,n)}(e,t,a,n)}function d(e,t,r,n){return"function"==typeof i.copyFileSync?(i.copyFileSync(t,r),i.chmodSync(r,e.mode),n.preserveTimestamps?p(r,e.atime,e.mtime):void 0):function(e,t,r,n){const p=a(52)(65536),o=i.openSync(t,"r"),u=i.openSync(r,"w",e.mode);let d=0;for(;d(function(e,t,a,i){const n=r.join(t,e),p=r.join(a,e);return u(m(n,p),n,p,i)})(i,e,t,a))}function l(e,t){const a=r.resolve(e).split(r.sep),i=r.resolve(t).split(r.sep);return a.reduce((e,t,a)=>e&&i[a]===t,!0)}function m(e,t){const{srcStat:a,destStat:r}=function(e,t){const a=i.statSync(e);let r;try{r=i.statSync(t)}catch(e){if("ENOENT"===e.code)return{srcStat:a,destStat:o};throw e}return{srcStat:a,destStat:r}}(e,t);if(r.ino&&r.ino===a.ino)throw new Error("Source and destination must not be the same.");if(a.isDirectory()&&l(e,t))throw new Error(`Cannot copy '${e}' to a subdirectory of itself, '${t}'.`);return r}e.exports=function(e,t,a){"function"==typeof a&&(a={filter:a}),(a=a||{}).clobber=!("clobber"in a&&!a.clobber),a.overwrite="overwrite"in a?!!a.overwrite:a.clobber,a.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269");const p=m(e,t);if(a.filter&&!a.filter(e,t))return;const o=r.dirname(t);return i.existsSync(o)||n(o),u(p,e,t,a)}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(50).invalidWin32Path,p=parseInt("0777",8);e.exports=function e(t,a,o,u){if("function"==typeof a?(o=a,a={}):a&&"object"==typeof a||(a={mode:a}),"win32"===process.platform&&n(t)){const e=new Error(t+" contains invalid WIN32 path characters.");return e.code="EINVAL",o(e)}let d=a.mode;const s=a.fs||i;void 0===d&&(d=p&~process.umask()),u||(u=null),o=o||function(){},t=r.resolve(t),s.mkdir(t,d,i=>{if(!i)return o(null,u=u||t);switch(i.code){case"ENOENT":if(r.dirname(t)===t)return o(i);e(r.dirname(t),a,(i,r)=>{i?o(i,r):e(t,a,o,r)});break;default:s.stat(t,(e,t)=>{e||!t.isDirectory()?o(i,u):o(null,u)})}})}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(50).invalidWin32Path,p=parseInt("0777",8);e.exports=function e(t,a,o){a&&"object"==typeof a||(a={mode:a});let u=a.mode;const d=a.fs||i;if("win32"===process.platform&&n(t)){const e=new Error(t+" contains invalid WIN32 path characters.");throw e.code="EINVAL",e}void 0===u&&(u=p&~process.umask()),o||(o=null),t=r.resolve(t);try{d.mkdirSync(t,u),o=o||t}catch(i){if("ENOENT"===i.code){if(r.dirname(t)===t)throw i;e(t,a,o=e(r.dirname(t),a,o))}else{let e;try{e=d.statSync(t)}catch(e){throw i}if(!e.isDirectory())throw i}}return o}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(6).mkdirs,p=a(10).pathExists,o=a(51).utimesMillis,u=Symbol("notExist");function d(e,t,a,i,o){const u=r.dirname(a);p(u,(r,p)=>r?o(r):p?l(e,t,a,i,o):void n(u,r=>r?o(r):l(e,t,a,i,o)))}function s(e,t,a,i,r,n){Promise.resolve(r.filter(a,i)).then(p=>p?t?e(t,a,i,r,n):e(a,i,r,n):n(),e=>n(e))}function l(e,t,a,i,r){return i.filter?s(m,e,t,a,i,r):m(e,t,a,i,r)}function m(e,t,a,n,p){(n.dereference?i.stat:i.lstat)(t,(o,d)=>o?p(o):d.isDirectory()?function(e,t,a,r,n,p){if(t===u)return function(e,t,a,r,n){i.mkdir(a,p=>{if(p)return n(p);f(t,a,r,t=>t?n(t):i.chmod(a,e.mode,n))})}(e,a,r,n,p);if(t&&!t.isDirectory())return p(new Error(`Cannot overwrite non-directory '${r}' with directory '${a}'.`));return f(a,r,n,p)}(d,e,t,a,n,p):d.isFile()||d.isCharacterDevice()||d.isBlockDevice()?function(e,t,a,r,n,p){return t===u?c(e,a,r,n,p):function(e,t,a,r,n){if(!r.overwrite)return r.errorOnExist?n(new Error(`'${a}' already exists`)):n();i.unlink(a,i=>i?n(i):c(e,t,a,r,n))}(e,a,r,n,p)}(d,e,t,a,n,p):d.isSymbolicLink()?function(e,t,a,n,p){i.readlink(t,(t,o)=>t?p(t):(n.dereference&&(o=r.resolve(process.cwd(),o)),e===u?i.symlink(o,a,p):void i.readlink(a,(t,u)=>t?"EINVAL"===t.code||"UNKNOWN"===t.code?i.symlink(o,a,p):p(t):(n.dereference&&(u=r.resolve(process.cwd(),u)),_(o,u)?p(new Error(`Cannot copy '${o}' to a subdirectory of itself, '${u}'.`)):e.isDirectory()&&_(u,o)?p(new Error(`Cannot overwrite '${u}' with '${o}'.`)):function(e,t,a){i.unlink(t,r=>r?a(r):i.symlink(e,t,a))}(o,a,p)))))}(e,t,a,n,p):void 0)}function c(e,t,a,r,n){return"function"==typeof i.copyFile?i.copyFile(t,a,t=>t?n(t):h(e,a,r,n)):function(e,t,a,r,n){const p=i.createReadStream(t);p.on("error",e=>n(e)).once("open",()=>{const t=i.createWriteStream(a,{mode:e.mode});t.on("error",e=>n(e)).on("open",()=>p.pipe(t)).once("close",()=>h(e,a,r,n))})}(e,t,a,r,n)}function h(e,t,a,r){i.chmod(t,e.mode,i=>i?r(i):a.preserveTimestamps?o(t,e.atime,e.mtime,r):r())}function f(e,t,a,r){i.readdir(e,(i,n)=>i?r(i):v(n,e,t,a,r))}function v(e,t,a,i,n){const p=e.pop();return p?function(e,t,a,i,n,p){const o=r.join(a,t),u=r.join(i,t);A(o,u,(t,r)=>{if(t)return p(t);l(r,o,u,n,t=>t?p(t):v(e,a,i,n,p))})}(e,p,t,a,i,n):n()}function _(e,t){const a=r.resolve(e).split(r.sep),i=r.resolve(t).split(r.sep);return a.reduce((e,t,a)=>e&&i[a]===t,!0)}function A(e,t,a){!function(e,t,a){i.stat(e,(e,r)=>{if(e)return a(e);i.stat(t,(e,t)=>e?"ENOENT"===e.code?a(null,{srcStat:r,destStat:u}):a(e):a(null,{srcStat:r,destStat:t}))})}(e,t,(i,r)=>{if(i)return a(i);const{srcStat:n,destStat:p}=r;return p.ino&&p.ino===n.ino?a(new Error("Source and destination must not be the same.")):n.isDirectory()&&_(e,t)?a(new Error(`Cannot copy '${e}' to a subdirectory of itself, '${t}'.`)):a(null,p)})}e.exports=function(e,t,a,i){"function"!=typeof a||i?"function"==typeof a&&(a={filter:a}):(i=a,a={}),i=i||function(){},(a=a||{}).clobber=!("clobber"in a&&!a.clobber),a.overwrite="overwrite"in a?!!a.overwrite:a.clobber,a.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269"),A(e,t,(r,n)=>r?i(r):a.filter?s(d,n,e,t,a,i):d(n,e,t,a,i))}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(18),n=a(0),p=a(6),o=a(25),u=i(function(e,t){t=t||function(){},r.readdir(e,(a,i)=>{if(a)return p.mkdirs(e,t);i=i.map(t=>n.join(e,t)),function e(){const a=i.pop();if(!a)return t();o.remove(a,a=>{if(a)return t(a);e()})}()})});function d(e){let t;try{t=r.readdirSync(e)}catch(t){return p.mkdirsSync(e)}t.forEach(t=>{t=n.join(e,t),o.removeSync(t)})}e.exports={emptyDirSync:d,emptydirSync:d,emptyDir:u,emptydir:u}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(48),p="win32"===process.platform;function o(e){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach(t=>{e[t]=e[t]||i[t],e[t+="Sync"]=e[t]||i[t]}),e.maxBusyTries=e.maxBusyTries||3}function u(e,t,a){let i=0;"function"==typeof t&&(a=t,t={}),n(e,"rimraf: missing path"),n.strictEqual(typeof e,"string","rimraf: path should be a string"),n.strictEqual(typeof a,"function","rimraf: callback function required"),n(t,"rimraf: invalid options argument provided"),n.strictEqual(typeof t,"object","rimraf: options should be object"),o(t),d(e,t,function r(n){if(n){if(("EBUSY"===n.code||"ENOTEMPTY"===n.code||"EPERM"===n.code)&&id(e,t,r),100*i)}"ENOENT"===n.code&&(n=null)}a(n)})}function d(e,t,a){n(e),n(t),n("function"==typeof a),t.lstat(e,(i,r)=>i&&"ENOENT"===i.code?a(null):i&&"EPERM"===i.code&&p?s(e,t,i,a):r&&r.isDirectory()?m(e,t,i,a):void t.unlink(e,i=>{if(i){if("ENOENT"===i.code)return a(null);if("EPERM"===i.code)return p?s(e,t,i,a):m(e,t,i,a);if("EISDIR"===i.code)return m(e,t,i,a)}return a(i)}))}function s(e,t,a,i){n(e),n(t),n("function"==typeof i),a&&n(a instanceof Error),t.chmod(e,438,r=>{r?i("ENOENT"===r.code?null:a):t.stat(e,(r,n)=>{r?i("ENOENT"===r.code?null:a):n.isDirectory()?m(e,t,a,i):t.unlink(e,i)})})}function l(e,t,a){let i;n(e),n(t),a&&n(a instanceof Error);try{t.chmodSync(e,438)}catch(e){if("ENOENT"===e.code)return;throw a}try{i=t.statSync(e)}catch(e){if("ENOENT"===e.code)return;throw a}i.isDirectory()?h(e,t,a):t.unlinkSync(e)}function m(e,t,a,i){n(e),n(t),a&&n(a instanceof Error),n("function"==typeof i),t.rmdir(e,p=>{!p||"ENOTEMPTY"!==p.code&&"EEXIST"!==p.code&&"EPERM"!==p.code?p&&"ENOTDIR"===p.code?i(a):i(p):function(e,t,a){n(e),n(t),n("function"==typeof a),t.readdir(e,(i,n)=>{if(i)return a(i);let p,o=n.length;if(0===o)return t.rmdir(e,a);n.forEach(i=>{u(r.join(e,i),t,i=>{if(!p)return i?a(p=i):void(0==--o&&t.rmdir(e,a))})})})}(e,t,i)})}function c(e,t){let a;o(t=t||{}),n(e,"rimraf: missing path"),n.strictEqual(typeof e,"string","rimraf: path should be a string"),n(t,"rimraf: missing options"),n.strictEqual(typeof t,"object","rimraf: options should be object");try{a=t.lstatSync(e)}catch(a){if("ENOENT"===a.code)return;"EPERM"===a.code&&p&&l(e,t,a)}try{a&&a.isDirectory()?h(e,t,null):t.unlinkSync(e)}catch(a){if("ENOENT"===a.code)return;if("EPERM"===a.code)return p?l(e,t,a):h(e,t,a);if("EISDIR"!==a.code)throw a;h(e,t,a)}}function h(e,t,a){n(e),n(t),a&&n(a instanceof Error);try{t.rmdirSync(e)}catch(i){if("ENOTDIR"===i.code)throw a;if("ENOTEMPTY"===i.code||"EEXIST"===i.code||"EPERM"===i.code)!function(e,t){n(e),n(t),t.readdirSync(e).forEach(a=>c(r.join(e,a),t));const a=p?100:1;let i=0;for(;;){let r=!0;try{const n=t.rmdirSync(e,t);return r=!1,n}finally{if(++i{if(e)return t(e);t()})}n.stat(e,(i,n)=>{if(!i&&n.isFile())return t();const u=r.dirname(e);o(u,(e,i)=>e?t(e):i?a():void p.mkdirs(u,e=>{if(e)return t(e);a()}))})}),createFileSync:function(e){let t;try{t=n.statSync(e)}catch(e){}if(t&&t.isFile())return;const a=r.dirname(e);n.existsSync(a)||p.mkdirsSync(a),n.writeFileSync(e,"")}}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(0),n=a(1),p=a(6),o=a(10).pathExists;e.exports={createLink:i(function(e,t,a){function i(e,t){n.link(e,t,e=>{if(e)return a(e);a(null)})}o(t,(u,d)=>u?a(u):d?a(null):void n.lstat(e,n=>{if(n)return n.message=n.message.replace("lstat","ensureLink"),a(n);const u=r.dirname(t);o(u,(r,n)=>r?a(r):n?i(e,t):void p.mkdirs(u,r=>{if(r)return a(r);i(e,t)}))}))}),createLinkSync:function(e,t){if(n.existsSync(t))return;try{n.lstatSync(e)}catch(e){throw e.message=e.message.replace("lstat","ensureLink"),e}const a=r.dirname(t);return n.existsSync(a)?n.linkSync(e,t):(p.mkdirsSync(a),n.linkSync(e,t))}}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(0),n=a(1),p=a(6),o=p.mkdirs,u=p.mkdirsSync,d=a(140),s=d.symlinkPaths,l=d.symlinkPathsSync,m=a(141),c=m.symlinkType,h=m.symlinkTypeSync,f=a(10).pathExists;e.exports={createSymlink:i(function(e,t,a,i){i="function"==typeof a?a:i,a="function"!=typeof a&&a,f(t,(p,u)=>p?i(p):u?i(null):void s(e,t,(p,u)=>{if(p)return i(p);e=u.toDst,c(u.toCwd,a,(a,p)=>{if(a)return i(a);const u=r.dirname(t);f(u,(a,r)=>a?i(a):r?n.symlink(e,t,p,i):void o(u,a=>{if(a)return i(a);n.symlink(e,t,p,i)}))})}))}),createSymlinkSync:function(e,t,a){if(n.existsSync(t))return;const i=l(e,t);e=i.toDst,a=h(i.toCwd,a);const p=r.dirname(t);return n.existsSync(p)?n.symlinkSync(e,t,a):(u(p),n.symlinkSync(e,t,a))}}},function(e,t,a){"use strict";const i=a(0),r=a(1),n=a(10).pathExists;e.exports={symlinkPaths:function(e,t,a){if(i.isAbsolute(e))return r.lstat(e,t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),a(t)):a(null,{toCwd:e,toDst:e}));{const p=i.dirname(t),o=i.join(p,e);return n(o,(t,n)=>t?a(t):n?a(null,{toCwd:o,toDst:e}):r.lstat(e,t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),a(t)):a(null,{toCwd:e,toDst:i.relative(p,e)})))}},symlinkPathsSync:function(e,t){let a;if(i.isAbsolute(e)){if(!(a=r.existsSync(e)))throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}{const n=i.dirname(t),p=i.join(n,e);if(a=r.existsSync(p))return{toCwd:p,toDst:e};if(!(a=r.existsSync(e)))throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:i.relative(n,e)}}}}},function(e,t,a){"use strict";const i=a(1);e.exports={symlinkType:function(e,t,a){if(a="function"==typeof t?t:a,t="function"!=typeof t&&t)return a(null,t);i.lstat(e,(e,i)=>{if(e)return a(null,"file");t=i&&i.isDirectory()?"dir":"file",a(null,t)})},symlinkTypeSync:function(e,t){let a;if(t)return t;try{a=i.lstatSync(e)}catch(e){return"file"}return a&&a.isDirectory()?"dir":"file"}}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(35);r.outputJson=i(a(144)),r.outputJsonSync=a(145),r.outputJSON=r.outputJson,r.outputJSONSync=r.outputJsonSync,r.writeJSON=r.writeJson,r.writeJSONSync=r.writeJsonSync,r.readJSON=r.readJson,r.readJSONSync=r.readJsonSync,e.exports=r},function(e,t,a){var i;try{i=a(1)}catch(e){i=a(18)}function r(e,t){var a,i="\n";return"object"==typeof t&&null!==t&&(t.spaces&&(a=t.spaces),t.EOL&&(i=t.EOL)),JSON.stringify(e,t?t.replacer:null,a).replace(/\n/g,i)+i}function n(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e=e.replace(/^\uFEFF/,"")}var p={readFile:function(e,t,a){null==a&&(a=t,t={}),"string"==typeof t&&(t={encoding:t});var r=(t=t||{}).fs||i,p=!0;"throws"in t&&(p=t.throws),r.readFile(e,t,function(i,r){if(i)return a(i);var o;r=n(r);try{o=JSON.parse(r,t?t.reviver:null)}catch(t){return p?(t.message=e+": "+t.message,a(t)):a(null,null)}a(null,o)})},readFileSync:function(e,t){"string"==typeof(t=t||{})&&(t={encoding:t});var a=t.fs||i,r=!0;"throws"in t&&(r=t.throws);try{var p=a.readFileSync(e,t);return p=n(p),JSON.parse(p,t.reviver)}catch(t){if(r)throw t.message=e+": "+t.message,t;return null}},writeFile:function(e,t,a,n){null==n&&(n=a,a={});var p=(a=a||{}).fs||i,o="";try{o=r(t,a)}catch(e){return void(n&&n(e,null))}p.writeFile(e,o,a,n)},writeFileSync:function(e,t,a){var n=(a=a||{}).fs||i,p=r(t,a);return n.writeFileSync(e,p,a)}};e.exports=p},function(e,t,a){"use strict";const i=a(0),r=a(6),n=a(10).pathExists,p=a(35);e.exports=function(e,t,a,o){"function"==typeof a&&(o=a,a={});const u=i.dirname(e);n(u,(i,n)=>i?o(i):n?p.writeJson(e,t,a,o):void r.mkdirs(u,i=>{if(i)return o(i);p.writeJson(e,t,a,o)}))}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(6),p=a(35);e.exports=function(e,t,a){const o=r.dirname(e);i.existsSync(o)||n.mkdirsSync(o),p.writeJsonSync(e,t,a)}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(49).copySync,p=a(25).removeSync,o=a(6).mkdirsSync,u=a(52);function d(e,t,a){return i.statSync(e).isDirectory()?function(e,t,a){const i={overwrite:!1};a?(p(t),r()):r();function r(){return n(e,t,i),p(e)}}(e,t,a):function(e,t,a){const r=u(65536),n=a?"w":"wx",p=i.openSync(e,"r"),o=i.fstatSync(p),d=i.openSync(t,n,o.mode);let s=0;for(;s-1&&t.split(r.dirname(e)+r.sep)[1].split(r.sep)[0]===r.basename(e)}catch(e){return!1}}(t,a))throw new Error(`Cannot move '${t}' into itself '${a}'.`);o(r.dirname(a)),function(){if(u)try{i.renameSync(t,a)}catch(i){if("ENOTEMPTY"===i.code||"EEXIST"===i.code||"EPERM"===i.code)return p(a),n.overwrite=!1,e(t,a,n);if("EXDEV"!==i.code)throw i;return d(t,a,u)}else try{i.linkSync(t,a),i.unlinkSync(t)}catch(e){if("EXDEV"===e.code||"EISDIR"===e.code||"EPERM"===e.code||"ENOTSUP"===e.code)return d(t,a,u);throw e}}()}}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(1),n=a(0),p=a(53).copy,o=a(25).remove,u=a(6).mkdirp,d=a(10).pathExists;function s(e,t,a,i){r.rename(e,t,r=>r?"EXDEV"!==r.code?i(r):function(e,t,a,i){p(e,t,{overwrite:a,errorOnExist:!0},t=>t?i(t):o(e,i))}(e,t,a,i):i())}e.exports={move:i(function(e,t,a,i){"function"==typeof a&&(i=a,a={});const p=a.overwrite||a.clobber||!1;if(e=n.resolve(e),t=n.resolve(t),e===t)return r.access(e,i);r.stat(e,(a,r)=>a?i(a):r.isDirectory()&&function(e,t){const a=e.split(n.sep),i=t.split(n.sep);return a.reduce((e,t,a)=>e&&i[a]===t,!0)}(e,t)?i(new Error(`Cannot move '${e}' to a subdirectory of itself, '${t}'.`)):void u(n.dirname(t),a=>a?i(a):function(e,t,a,i){if(a)return o(t,r=>r?i(r):s(e,t,a,i));d(t,(r,n)=>r?i(r):n?i(new Error("dest already exists.")):s(e,t,a,i))}(e,t,p,i)))})}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(1),n=a(0),p=a(6),o=a(10).pathExists;e.exports={outputFile:i(function(e,t,a,i){"function"==typeof a&&(i=a,a="utf8");const u=n.dirname(e);o(u,(n,o)=>n?i(n):o?r.writeFile(e,t,a,i):void p.mkdirs(u,n=>{if(n)return i(n);r.writeFile(e,t,a,i)}))}),outputFileSync:function(e,...t){const a=n.dirname(e);if(r.existsSync(a))return r.writeFileSync(e,...t);p.mkdirsSync(a),r.writeFileSync(e,...t)}}},function(e,t,a){var i=a(150),r=a(152);e.exports=function(e,t,a){var n=t&&a||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var p=(e=e||{}).random||(e.rng||i)();if(p[6]=15&p[6]|64,p[8]=63&p[8]|128,t)for(var o=0;o<16;++o)t[n+o]=p[o];return t||r(p)}},function(e,t,a){var i=a(151);e.exports=function(){return i.randomBytes(16)}},function(e,t){e.exports=require("crypto")},function(e,t){for(var a=[],i=0;i<256;++i)a[i]=(i+256).toString(16).substr(1);e.exports=function(e,t){var i=t||0,r=a;return[r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]]].join("")}},function(e,t,a){"use strict";const i=a(54),r=a(55),n=r.implSymbol;function p(e){if(!new.target)throw new TypeError("Failed to construct 'URL'. Please use the 'new' operator; this constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");const t=[];for(let e=0;er.tryWrapperForImpl(this[n].searchParams))},enumerable:!0,configurable:!0}),Object.defineProperty(p.prototype,"hash",{get(){if(!this||!e.exports.is(this))throw new TypeError("Illegal invocation");return this[n].hash},set(t){if(!this||!e.exports.is(this))throw new TypeError("Illegal invocation");t=i.USVString(t,{context:"Failed to set the 'hash' property on 'URL': The provided value"}),this[n].hash=t},enumerable:!0,configurable:!0}),Object.defineProperty(p.prototype,Symbol.toStringTag,{value:"URL",writable:!1,enumerable:!1,configurable:!0});const o={mixedInto:[],is(t){if(t){if(t[n]instanceof u.implementation)return!0;for(let a=0;a=e){if(p[1].startsWith("disallowed_STD3_")){return[t?"disallowed":p[1].slice(16),...p.slice(2)]}return p.slice(1)}p[0][0]>e?i=r-1:a=r+1}return null}function o(e,{checkHyphens:t,checkBidi:a,checkJoiners:i,processingOption:n,useSTD3ASCIIRules:o}){if(e.normalize("NFC")!==e)return!1;const u=Array.from(e);if(t&&("-"===u[2]&&"-"===u[3]||e.startsWith("-")||e.endsWith("-")))return!1;if(e.includes(".")||u.length>0&&r.combiningMarks.test(u[0]))return!1;for(const e of u){const[t]=p(e.codePointAt(0),{useSTD3ASCIIRules:o});if("transitional"===n&&"valid"!==t||"nontransitional"===n&&"valid"!==t&&"deviation"!==t)return!1}if(i){let e=0;for(const[t,a]of u.entries())if("‌"===a||"‍"===a){if(t>0){if(r.combiningClassVirama.test(u[t-1]))continue;if("‌"===a){const a=u.indexOf("‌",t+1),i=a<0?u.slice(e):u.slice(e,a);if(r.validZWNJ.test(i.join(""))){e=t+1;continue}}}return!1}}if(a){let t;if(r.bidiS1LTR.test(u[0]))t=!1;else{if(!r.bidiS1RTL.test(u[0]))return!1;t=!0}if(t){if(!r.bidiS2.test(e)||!r.bidiS3.test(e)||r.bidiS4EN.test(e)&&r.bidiS4AN.test(e))return!1}else if(!r.bidiS5.test(e)||!r.bidiS6.test(e))return!1}return!0}function u(e,t){const{processingOption:a}=t;let{string:n,error:u}=function(e,{useSTD3ASCIIRules:t,processingOption:a}){let i=!1,r="";for(const n of e){const[e,o]=p(n.codePointAt(0),{useSTD3ASCIIRules:t});switch(e){case"disallowed":i=!0,r+=n;break;case"ignored":break;case"mapped":r+=o;break;case"deviation":r+="transitional"===a?o:n;break;case"valid":r+=n}}return{string:r,error:i}}(e,t);const d=(n=n.normalize("NFC")).split("."),s=function(e){const t=e.map(e=>{if(e.startsWith("xn--"))try{return i.decode(e.substring(4))}catch(e){return""}return e}).join(".");return r.bidiDomain.test(t)}(d);for(const[e,r]of d.entries()){let n=r,p=a;if(n.startsWith("xn--")){try{n=i.decode(n.substring(4)),d[e]=n}catch(e){u=!0;continue}p="nontransitional"}if(u)continue;o(n,Object.assign({},t,{processingOption:p,checkBidi:t.checkBidi&&s}))||(u=!0)}return{string:d.join("."),error:u}}e.exports={toASCII:function(e,{checkHyphens:t=!1,checkBidi:a=!1,checkJoiners:r=!1,useSTD3ASCIIRules:n=!1,processingOption:p="nontransitional",verifyDNSLength:o=!1}={}){if("transitional"!==p&&"nontransitional"!==p)throw new RangeError("processingOption must be either transitional or nontransitional");const d=u(e,{processingOption:p,checkHyphens:t,checkBidi:a,checkJoiners:r,useSTD3ASCIIRules:n});let s=d.string.split(".");if(s=s.map(e=>{if(function(e){return/[^\x00-\x7F]/.test(e)}(e))try{return"xn--"+i.encode(e)}catch(e){d.error=!0}return e}),o){const e=s.join(".").length;(e>253||0===e)&&(d.error=!0);for(let e=0;e63||0===s[e].length){d.error=!0;break}}return d.error?null:s.join(".")},toUnicode:function(e,{checkHyphens:t=!1,checkBidi:a=!1,checkJoiners:i=!1,useSTD3ASCIIRules:r=!1}={}){const n=u(e,{processingOption:"nontransitional",checkHyphens:t,checkBidi:a,checkJoiners:i,useSTD3ASCIIRules:r});return{domain:n.string,error:n.error}}}},function(e,t,a){"use strict";e.exports={combiningMarks:/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{11000}-\u{11002}\u{11038}-\u{11046}\u{1107F}-\u{11082}\u{110B0}-\u{110BA}\u{11100}-\u{11102}\u{11127}-\u{11134}\u{11173}\u{11180}-\u{11182}\u{111B3}-\u{111C0}\u{111CA}-\u{111CC}\u{1122C}-\u{11237}\u{1123E}\u{112DF}-\u{112EA}\u{11300}-\u{11303}\u{1133C}\u{1133E}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11357}\u{11362}\u{11363}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11435}-\u{11446}\u{114B0}-\u{114C3}\u{115AF}-\u{115B5}\u{115B8}-\u{115C0}\u{115DC}\u{115DD}\u{11630}-\u{11640}\u{116AB}-\u{116B7}\u{1171D}-\u{1172B}\u{11A01}-\u{11A0A}\u{11A33}-\u{11A39}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A5B}\u{11A8A}-\u{11A99}\u{11C2F}-\u{11C36}\u{11C38}-\u{11C3F}\u{11C92}-\u{11CA7}\u{11CA9}-\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F51}-\u{16F7E}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1D165}-\u{1D169}\u{1D16D}-\u{1D172}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]/u,combiningClassVirama:/[\u094D\u09CD\u0A4D\u0ACD\u0B4D\u0BCD\u0C4D\u0CCD\u0D3B\u0D3C\u0D4D\u0DCA\u0E3A\u0F84\u1039\u103A\u1714\u1734\u17D2\u1A60\u1B44\u1BAA\u1BAB\u1BF2\u1BF3\u2D7F\uA806\uA8C4\uA953\uA9C0\uAAF6\uABED\u{10A3F}\u{11046}\u{1107F}\u{110B9}\u{11133}\u{11134}\u{111C0}\u{11235}\u{112EA}\u{1134D}\u{11442}\u{114C2}\u{115BF}\u{1163F}\u{116B6}\u{1172B}\u{11A34}\u{11A47}\u{11A99}\u{11C3F}\u{11D44}\u{11D45}]/u,validZWNJ:/[\u0620\u0626\u0628\u062A-\u062E\u0633-\u063F\u0641-\u0647\u0649\u064A\u066E\u066F\u0678-\u0687\u069A-\u06BF\u06C1\u06C2\u06CC\u06CE\u06D0\u06D1\u06FA-\u06FC\u06FF\u0712-\u0714\u071A-\u071D\u071F-\u0727\u0729\u072B\u072D\u072E\u074E-\u0758\u075C-\u076A\u076D-\u0770\u0772\u0775-\u0777\u077A-\u077F\u07CA-\u07EA\u0841-\u0845\u0848\u084A-\u0853\u0855\u0860\u0862-\u0865\u0868\u08A0-\u08A9\u08AF\u08B0\u08B3\u08B4\u08B6-\u08B8\u08BA-\u08BD\u1807\u1820-\u1877\u1887-\u18A8\u18AA\uA840-\uA872\u{10AC0}-\u{10AC4}\u{10ACD}\u{10AD3}-\u{10ADC}\u{10ADE}-\u{10AE0}\u{10AEB}-\u{10AEE}\u{10B80}\u{10B82}\u{10B86}-\u{10B88}\u{10B8A}\u{10B8B}\u{10B8D}\u{10B90}\u{10BAD}\u{10BAE}\u{1E900}-\u{1E943}][\xAD\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u061C\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200B\u200E\u200F\u202A-\u202E\u2060-\u2064\u206A-\u206F\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFEFF\uFFF9-\uFFFB\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{11001}\u{11038}-\u{11046}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110BD}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111CA}-\u{111CC}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}-\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C3F}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*\u200C[\xAD\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u061C\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200B\u200E\u200F\u202A-\u202E\u2060-\u2064\u206A-\u206F\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFEFF\uFFF9-\uFFFB\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{11001}\u{11038}-\u{11046}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110BD}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111CA}-\u{111CC}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}-\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C3F}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*[\u0620\u0622-\u063F\u0641-\u064A\u066E\u066F\u0671-\u0673\u0675-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u077F\u07CA-\u07EA\u0840-\u0855\u0860\u0862-\u0865\u0867-\u086A\u08A0-\u08AC\u08AE-\u08B4\u08B6-\u08BD\u1807\u1820-\u1877\u1887-\u18A8\u18AA\uA840-\uA871\u{10AC0}-\u{10AC5}\u{10AC7}\u{10AC9}\u{10ACA}\u{10ACE}-\u{10AD6}\u{10AD8}-\u{10AE1}\u{10AE4}\u{10AEB}-\u{10AEF}\u{10B80}-\u{10B91}\u{10BA9}-\u{10BAE}\u{1E900}-\u{1E943}]/u,bidiDomain:/[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05F0-\u05F4\u0600-\u0605\u0608\u060B\u060D\u061B\u061C\u061E-\u064A\u0660-\u0669\u066B-\u066F\u0671-\u06D5\u06DD\u06E5\u06E6\u06EE\u06EF\u06FA-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08E2\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A33}\u{10A40}-\u{10A47}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10CFF}\u{10E60}-\u{10E7E}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}]/u,bidiS1LTR:/[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02BB-\u02C1\u02D0\u02D1\u02E0-\u02E4\u02EE\u0370-\u0373\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0482\u048A-\u052F\u0531-\u0556\u0559-\u055F\u0561-\u0587\u0589\u0903-\u0939\u093B\u093D-\u0940\u0949-\u094C\u094E-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C0\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09FA\u09FC\u09FD\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A40\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC0\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0\u0AE1\u0AE6-\u0AF0\u0AF9\u0B02\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0BE6-\u0BF2\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C41-\u0C44\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C7F\u0C80\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D4F\u0D54-\u0D61\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E4F-\u0E5B\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3E-\u0F47\u0F49-\u0F6C\u0F7F\u0F85\u0F88-\u0F8C\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE-\u0FDA\u1000-\u102C\u1031\u1038\u103B\u103C\u103F-\u1057\u105A-\u105D\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108C\u108E-\u109C\u109E-\u10C5\u10C7\u10CD\u10D0-\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\u1360-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u167F\u1681-\u169A\u16A0-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1735\u1736\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17B6\u17BE-\u17C5\u17C7\u17C8\u17D4-\u17DA\u17DC\u17E0-\u17E9\u1810-\u1819\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A19\u1A1A\u1A1E-\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1A80-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1B04-\u1B33\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B4B\u1B50-\u1B6A\u1B74-\u1B7C\u1B82-\u1BA1\u1BA6\u1BA7\u1BAA\u1BAE-\u1BE5\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1BFC-\u1C2B\u1C34\u1C35\u1C3B-\u1C49\u1C4D-\u1C88\u1CC0-\u1CC7\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\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\u200E\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u214F\u2160-\u2188\u2336-\u237A\u2395\u249C-\u24E9\u26AC\u2800-\u28FF\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u302E\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u3190-\u31BA\u31F0-\u321C\u3220-\u324F\u3260-\u327B\u327F-\u32B0\u32C0-\u32CB\u32D0-\u32FE\u3300-\u3376\u337B-\u33DD\u33E0-\u33FE\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA60C\uA610-\uA62B\uA640-\uA66E\uA680-\uA69D\uA6A0-\uA6EF\uA6F2-\uA6F7\uA722-\uA787\uA789-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA824\uA827\uA830-\uA837\uA840-\uA873\uA880-\uA8C3\uA8CE-\uA8D9\uA8F2-\uA8FD\uA900-\uA925\uA92E-\uA946\uA952\uA953\uA95F-\uA97C\uA983-\uA9B2\uA9B4\uA9B5\uA9BA\uA9BB\uA9BD-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA2F\uAA30\uAA33\uAA34\uAA40-\uAA42\uAA44-\uAA4B\uAA4D\uAA50-\uAA59\uAA5C-\uAA7B\uAA7D-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAAEB\uAAEE-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB65\uAB70-\uABE4\uABE6\uABE7\uABE9-\uABEC\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1013F}\u{1018D}\u{1018E}\u{101D0}-\u{101FC}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{10375}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{11000}\u{11002}-\u{11037}\u{11047}-\u{1104D}\u{11066}-\u{1106F}\u{11082}-\u{110B2}\u{110B7}\u{110B8}\u{110BB}-\u{110C1}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11103}-\u{11126}\u{1112C}\u{11136}-\u{11143}\u{11150}-\u{11172}\u{11174}-\u{11176}\u{11182}-\u{111B5}\u{111BF}-\u{111C9}\u{111CD}\u{111D0}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{1122E}\u{11232}\u{11233}\u{11235}\u{11238}-\u{1123D}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112DE}\u{112E0}-\u{112E2}\u{112F0}-\u{112F9}\u{11302}\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133D}-\u{1133F}\u{11341}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11400}-\u{11437}\u{11440}\u{11441}\u{11445}\u{11447}-\u{11459}\u{1145B}\u{1145D}\u{11480}-\u{114B2}\u{114B9}\u{114BB}-\u{114BE}\u{114C1}\u{114C4}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B1}\u{115B8}-\u{115BB}\u{115BE}\u{115C1}-\u{115DB}\u{11600}-\u{11632}\u{1163B}\u{1163C}\u{1163E}\u{11641}-\u{11644}\u{11650}-\u{11659}\u{11680}-\u{116AA}\u{116AC}\u{116AE}\u{116AF}\u{116B6}\u{116C0}-\u{116C9}\u{11700}-\u{11719}\u{11720}\u{11721}\u{11726}\u{11730}-\u{1173F}\u{118A0}-\u{118F2}\u{118FF}\u{11A00}\u{11A07}\u{11A08}\u{11A0B}-\u{11A32}\u{11A39}\u{11A3A}\u{11A3F}-\u{11A46}\u{11A50}\u{11A57}\u{11A58}\u{11A5C}-\u{11A83}\u{11A86}-\u{11A89}\u{11A97}\u{11A9A}-\u{11A9C}\u{11A9E}-\u{11AA2}\u{11AC0}-\u{11AF8}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C2F}\u{11C3E}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11CA9}\u{11CB1}\u{11CB4}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D30}\u{11D46}\u{11D50}-\u{11D59}\u{12000}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{13000}-\u{1342E}\u{14400}-\u{14646}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}\u{16A6F}\u{16AD0}-\u{16AED}\u{16AF5}\u{16B00}-\u{16B2F}\u{16B37}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16F00}-\u{16F44}\u{16F50}-\u{16F7E}\u{16F93}-\u{16F9F}\u{16FE0}\u{16FE1}\u{17000}-\u{187EC}\u{18800}-\u{18AF2}\u{1B000}-\u{1B11E}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}\u{1BC9F}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D166}\u{1D16A}-\u{1D172}\u{1D183}\u{1D184}\u{1D18C}-\u{1D1A9}\u{1D1AE}-\u{1D1E8}\u{1D360}-\u{1D371}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D6DA}\u{1D6DC}-\u{1D714}\u{1D716}-\u{1D74E}\u{1D750}-\u{1D788}\u{1D78A}-\u{1D7C2}\u{1D7C4}-\u{1D7CB}\u{1D800}-\u{1D9FF}\u{1DA37}-\u{1DA3A}\u{1DA6D}-\u{1DA74}\u{1DA76}-\u{1DA83}\u{1DA85}-\u{1DA8B}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F169}\u{1F170}-\u{1F1AC}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{20000}-\u{2A6D6}\u{2A700}-\u{2B734}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2F800}-\u{2FA1D}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/u,bidiS1RTL:/[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05F0-\u05F4\u0608\u060B\u060D\u061B\u061C\u061E-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A33}\u{10A40}-\u{10A47}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10CFF}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}]/u,bidiS2:/^[\0-\x08\x0E-\x1B!-@\[-`\{-\x84\x86-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02B9\u02BA\u02C2-\u02CF\u02D2-\u02DF\u02E5-\u02ED\u02EF-\u036F\u0374\u0375\u037E\u0384\u0385\u0387\u03F6\u0483-\u0489\u058A\u058D-\u058F\u0591-\u05C7\u05D0-\u05EA\u05F0-\u05F4\u0600-\u061C\u061E-\u070D\u070F-\u074A\u074D-\u07B1\u07C0-\u07FA\u0800-\u082D\u0830-\u083E\u0840-\u085B\u085E\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09F2\u09F3\u09FB\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AF1\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0BF3-\u0BFA\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C78-\u0C7E\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E3F\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39-\u0F3D\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1390-\u1399\u1400\u169B\u169C\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DB\u17DD\u17F0-\u17F9\u1800-\u180E\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1940\u1944\u1945\u19DE-\u19FF\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u200B-\u200D\u200F-\u2027\u202F-\u205E\u2060-\u2064\u206A-\u2070\u2074-\u207E\u2080-\u208E\u20A0-\u20BF\u20D0-\u20F0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u2150-\u215F\u2189-\u218B\u2190-\u2335\u237B-\u2394\u2396-\u2426\u2440-\u244A\u2460-\u249B\u24EA-\u26AB\u26AD-\u27FF\u2900-\u2B73\u2B76-\u2B95\u2B98-\u2BB9\u2BBD-\u2BC8\u2BCA-\u2BD2\u2BEC-\u2BEF\u2CE5-\u2CEA\u2CEF-\u2CF1\u2CF9-\u2CFF\u2D7F\u2DE0-\u2E49\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u3004\u3008-\u3020\u302A-\u302D\u3030\u3036\u3037\u303D-\u303F\u3099-\u309C\u30A0\u30FB\u31C0-\u31E3\u321D\u321E\u3250-\u325F\u327C-\u327E\u32B1-\u32BF\u32CC-\u32CF\u3377-\u337A\u33DE\u33DF\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA60D-\uA60F\uA66F-\uA67F\uA69E\uA69F\uA6F0\uA6F1\uA700-\uA721\uA788\uA802\uA806\uA80B\uA825\uA826\uA828-\uA82B\uA838\uA839\uA874-\uA877\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC1\uFBD3-\uFD3F\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFD\uFE00-\uFE19\uFE20-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFE70-\uFE74\uFE76-\uFEFC\uFEFF\uFF01-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD\u{10101}\u{10140}-\u{1018C}\u{10190}-\u{1019B}\u{101A0}\u{101FD}\u{102E0}-\u{102FB}\u{10376}-\u{1037A}\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{1091F}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A33}\u{10A38}-\u{10A3A}\u{10A3F}-\u{10A47}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE6}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B39}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10CFF}\u{10E60}-\u{10E7E}\u{11001}\u{11038}-\u{11046}\u{11052}-\u{11065}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111CA}-\u{111CC}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{11660}-\u{1166C}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}-\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D200}-\u{1D245}\u{1D300}-\u{1D356}\u{1D6DB}\u{1D715}\u{1D74F}\u{1D789}\u{1D7C3}\u{1D7CE}-\u{1D7FF}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8D6}\u{1E900}-\u{1E94A}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{1EEF0}\u{1EEF1}\u{1F000}-\u{1F02B}\u{1F030}-\u{1F093}\u{1F0A0}-\u{1F0AE}\u{1F0B1}-\u{1F0BF}\u{1F0C1}-\u{1F0CF}\u{1F0D1}-\u{1F0F5}\u{1F100}-\u{1F10C}\u{1F16A}\u{1F16B}\u{1F260}-\u{1F265}\u{1F300}-\u{1F6D4}\u{1F6E0}-\u{1F6EC}\u{1F6F0}-\u{1F6F8}\u{1F700}-\u{1F773}\u{1F780}-\u{1F7D4}\u{1F800}-\u{1F80B}\u{1F810}-\u{1F847}\u{1F850}-\u{1F859}\u{1F860}-\u{1F887}\u{1F890}-\u{1F8AD}\u{1F900}-\u{1F90B}\u{1F910}-\u{1F93E}\u{1F940}-\u{1F94C}\u{1F950}-\u{1F96B}\u{1F980}-\u{1F997}\u{1F9C0}\u{1F9D0}-\u{1F9E6}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*$/u,bidiS3:/[0-9\xB2\xB3\xB9\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05F0-\u05F4\u0600-\u0605\u0608\u060B\u060D\u061B\u061C\u061E-\u064A\u0660-\u0669\u066B-\u066F\u0671-\u06D5\u06DD\u06E5\u06E6\u06EE-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08E2\u200F\u2070\u2074-\u2079\u2080-\u2089\u2488-\u249B\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\u{102E1}-\u{102FB}\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A33}\u{10A40}-\u{10A47}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10CFF}\u{10E60}-\u{10E7E}\u{1D7CE}-\u{1D7FF}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{1F100}-\u{1F10A}][\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{11001}\u{11038}-\u{11046}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111CA}-\u{111CC}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}-\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1D167}-\u{1D169}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]*$/u,bidiS4EN:/[0-9\xB2\xB3\xB9\u06F0-\u06F9\u2070\u2074-\u2079\u2080-\u2089\u2488-\u249B\uFF10-\uFF19\u{102E1}-\u{102FB}\u{1D7CE}-\u{1D7FF}\u{1F100}-\u{1F10A}]/u,bidiS4AN:/[\u0600-\u0605\u0660-\u0669\u066B\u066C\u06DD\u08E2\u{10E60}-\u{10E7E}]/u,bidiS5:/^[\0-\x08\x0E-\x1B!-\x84\x86-\u0377\u037A-\u037F\u0384-\u038A\u038C\u038E-\u03A1\u03A3-\u052F\u0531-\u0556\u0559-\u055F\u0561-\u0587\u0589\u058A\u058D-\u058F\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0606\u0607\u0609\u060A\u060C\u060E-\u061A\u064B-\u065F\u066A\u0670\u06D6-\u06DC\u06DE-\u06E4\u06E7-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07F6-\u07F9\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09FD\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-\u0AF1\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-\u0B77\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-\u0BFA\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C78-\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-\u0D4F\u0D54-\u0D63\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E3A\u0E3F-\u0E5B\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FDA\u1000-\u10C5\u10C7\u10CD\u10D0-\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-\u137C\u1380-\u1399\u13A0-\u13F5\u13F8-\u13FD\u1400-\u167F\u1681-\u169C\u16A0-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1736\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17DD\u17E0-\u17E9\u17F0-\u17F9\u1800-\u180E\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1940\u1944-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u19DE-\u1A1B\u1A1E-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1AB0-\u1ABE\u1B00-\u1B4B\u1B50-\u1B7C\u1B80-\u1BF3\u1BFC-\u1C37\u1C3B-\u1C49\u1C4D-\u1C88\u1CC0-\u1CC7\u1CD0-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEF\u1FF2-\u1FF4\u1FF6-\u1FFE\u200B-\u200E\u2010-\u2027\u202F-\u205E\u2060-\u2064\u206A-\u2071\u2074-\u208E\u2090-\u209C\u20A0-\u20BF\u20D0-\u20F0\u2100-\u218B\u2190-\u2426\u2440-\u244A\u2460-\u2B73\u2B76-\u2B95\u2B98-\u2BB9\u2BBD-\u2BC8\u2BCA-\u2BD2\u2BEC-\u2BEF\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CF3\u2CF9-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2E49\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303F\u3041-\u3096\u3099-\u30FF\u3105-\u312E\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u32FE\u3300-\u4DB5\u4DC0-\u9FEA\uA000-\uA48C\uA490-\uA4C6\uA4D0-\uA62B\uA640-\uA6F7\uA700-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA82B\uA830-\uA839\uA840-\uA877\uA880-\uA8C5\uA8CE-\uA8D9\uA8E0-\uA8FD\uA900-\uA953\uA95F-\uA97C\uA980-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA5C-\uAAC2\uAADB-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB65\uAB70-\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1E\uFB29\uFD3E\uFD3F\uFDFD\uFE00-\uFE19\uFE20-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFEFF\uFF01-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}-\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1018E}\u{10190}-\u{1019B}\u{101A0}\u{101D0}-\u{101FD}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{102E0}-\u{102FB}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{1037A}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{1091F}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10B39}-\u{10B3F}\u{11000}-\u{1104D}\u{11052}-\u{1106F}\u{1107F}-\u{110C1}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11100}-\u{11134}\u{11136}-\u{11143}\u{11150}-\u{11176}\u{11180}-\u{111CD}\u{111D0}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{1123E}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112EA}\u{112F0}-\u{112F9}\u{11300}-\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133C}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11400}-\u{11459}\u{1145B}\u{1145D}\u{11480}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B5}\u{115B8}-\u{115DD}\u{11600}-\u{11644}\u{11650}-\u{11659}\u{11660}-\u{1166C}\u{11680}-\u{116B7}\u{116C0}-\u{116C9}\u{11700}-\u{11719}\u{1171D}-\u{1172B}\u{11730}-\u{1173F}\u{118A0}-\u{118F2}\u{118FF}\u{11A00}-\u{11A47}\u{11A50}-\u{11A83}\u{11A86}-\u{11A9C}\u{11A9E}-\u{11AA2}\u{11AC0}-\u{11AF8}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C36}\u{11C38}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11C92}-\u{11CA7}\u{11CA9}-\u{11CB6}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D47}\u{11D50}-\u{11D59}\u{12000}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{13000}-\u{1342E}\u{14400}-\u{14646}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}\u{16A6F}\u{16AD0}-\u{16AED}\u{16AF0}-\u{16AF5}\u{16B00}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16F00}-\u{16F44}\u{16F50}-\u{16F7E}\u{16F8F}-\u{16F9F}\u{16FE0}\u{16FE1}\u{17000}-\u{187EC}\u{18800}-\u{18AF2}\u{1B000}-\u{1B11E}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}-\u{1BCA3}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D1E8}\u{1D200}-\u{1D245}\u{1D300}-\u{1D356}\u{1D360}-\u{1D371}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D7CB}\u{1D7CE}-\u{1DA8B}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{1EEF0}\u{1EEF1}\u{1F000}-\u{1F02B}\u{1F030}-\u{1F093}\u{1F0A0}-\u{1F0AE}\u{1F0B1}-\u{1F0BF}\u{1F0C1}-\u{1F0CF}\u{1F0D1}-\u{1F0F5}\u{1F100}-\u{1F10C}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F16B}\u{1F170}-\u{1F1AC}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{1F260}-\u{1F265}\u{1F300}-\u{1F6D4}\u{1F6E0}-\u{1F6EC}\u{1F6F0}-\u{1F6F8}\u{1F700}-\u{1F773}\u{1F780}-\u{1F7D4}\u{1F800}-\u{1F80B}\u{1F810}-\u{1F847}\u{1F850}-\u{1F859}\u{1F860}-\u{1F887}\u{1F890}-\u{1F8AD}\u{1F900}-\u{1F90B}\u{1F910}-\u{1F93E}\u{1F940}-\u{1F94C}\u{1F950}-\u{1F96B}\u{1F980}-\u{1F997}\u{1F9C0}\u{1F9D0}-\u{1F9E6}\u{20000}-\u{2A6D6}\u{2A700}-\u{2B734}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2F800}-\u{2FA1D}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]*$/u,bidiS6:/[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02BB-\u02C1\u02D0\u02D1\u02E0-\u02E4\u02EE\u0370-\u0373\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0482\u048A-\u052F\u0531-\u0556\u0559-\u055F\u0561-\u0587\u0589\u06F0-\u06F9\u0903-\u0939\u093B\u093D-\u0940\u0949-\u094C\u094E-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C0\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09FA\u09FC\u09FD\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A40\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC0\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0\u0AE1\u0AE6-\u0AF0\u0AF9\u0B02\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0BE6-\u0BF2\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C41-\u0C44\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C7F\u0C80\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D4F\u0D54-\u0D61\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E4F-\u0E5B\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3E-\u0F47\u0F49-\u0F6C\u0F7F\u0F85\u0F88-\u0F8C\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE-\u0FDA\u1000-\u102C\u1031\u1038\u103B\u103C\u103F-\u1057\u105A-\u105D\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108C\u108E-\u109C\u109E-\u10C5\u10C7\u10CD\u10D0-\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\u1360-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u167F\u1681-\u169A\u16A0-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1735\u1736\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17B6\u17BE-\u17C5\u17C7\u17C8\u17D4-\u17DA\u17DC\u17E0-\u17E9\u1810-\u1819\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A19\u1A1A\u1A1E-\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1A80-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1B04-\u1B33\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B4B\u1B50-\u1B6A\u1B74-\u1B7C\u1B82-\u1BA1\u1BA6\u1BA7\u1BAA\u1BAE-\u1BE5\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1BFC-\u1C2B\u1C34\u1C35\u1C3B-\u1C49\u1C4D-\u1C88\u1CC0-\u1CC7\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\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\u200E\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u214F\u2160-\u2188\u2336-\u237A\u2395\u2488-\u24E9\u26AC\u2800-\u28FF\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u302E\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u3190-\u31BA\u31F0-\u321C\u3220-\u324F\u3260-\u327B\u327F-\u32B0\u32C0-\u32CB\u32D0-\u32FE\u3300-\u3376\u337B-\u33DD\u33E0-\u33FE\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA60C\uA610-\uA62B\uA640-\uA66E\uA680-\uA69D\uA6A0-\uA6EF\uA6F2-\uA6F7\uA722-\uA787\uA789-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA824\uA827\uA830-\uA837\uA840-\uA873\uA880-\uA8C3\uA8CE-\uA8D9\uA8F2-\uA8FD\uA900-\uA925\uA92E-\uA946\uA952\uA953\uA95F-\uA97C\uA983-\uA9B2\uA9B4\uA9B5\uA9BA\uA9BB\uA9BD-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA2F\uAA30\uAA33\uAA34\uAA40-\uAA42\uAA44-\uAA4B\uAA4D\uAA50-\uAA59\uAA5C-\uAA7B\uAA7D-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAAEB\uAAEE-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB65\uAB70-\uABE4\uABE6\uABE7\uABE9-\uABEC\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1013F}\u{1018D}\u{1018E}\u{101D0}-\u{101FC}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{102E1}-\u{102FB}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{10375}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{11000}\u{11002}-\u{11037}\u{11047}-\u{1104D}\u{11066}-\u{1106F}\u{11082}-\u{110B2}\u{110B7}\u{110B8}\u{110BB}-\u{110C1}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11103}-\u{11126}\u{1112C}\u{11136}-\u{11143}\u{11150}-\u{11172}\u{11174}-\u{11176}\u{11182}-\u{111B5}\u{111BF}-\u{111C9}\u{111CD}\u{111D0}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{1122E}\u{11232}\u{11233}\u{11235}\u{11238}-\u{1123D}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112DE}\u{112E0}-\u{112E2}\u{112F0}-\u{112F9}\u{11302}\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133D}-\u{1133F}\u{11341}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11400}-\u{11437}\u{11440}\u{11441}\u{11445}\u{11447}-\u{11459}\u{1145B}\u{1145D}\u{11480}-\u{114B2}\u{114B9}\u{114BB}-\u{114BE}\u{114C1}\u{114C4}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B1}\u{115B8}-\u{115BB}\u{115BE}\u{115C1}-\u{115DB}\u{11600}-\u{11632}\u{1163B}\u{1163C}\u{1163E}\u{11641}-\u{11644}\u{11650}-\u{11659}\u{11680}-\u{116AA}\u{116AC}\u{116AE}\u{116AF}\u{116B6}\u{116C0}-\u{116C9}\u{11700}-\u{11719}\u{11720}\u{11721}\u{11726}\u{11730}-\u{1173F}\u{118A0}-\u{118F2}\u{118FF}\u{11A00}\u{11A07}\u{11A08}\u{11A0B}-\u{11A32}\u{11A39}\u{11A3A}\u{11A3F}-\u{11A46}\u{11A50}\u{11A57}\u{11A58}\u{11A5C}-\u{11A83}\u{11A86}-\u{11A89}\u{11A97}\u{11A9A}-\u{11A9C}\u{11A9E}-\u{11AA2}\u{11AC0}-\u{11AF8}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C2F}\u{11C3E}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11CA9}\u{11CB1}\u{11CB4}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D30}\u{11D46}\u{11D50}-\u{11D59}\u{12000}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{13000}-\u{1342E}\u{14400}-\u{14646}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}\u{16A6F}\u{16AD0}-\u{16AED}\u{16AF5}\u{16B00}-\u{16B2F}\u{16B37}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16F00}-\u{16F44}\u{16F50}-\u{16F7E}\u{16F93}-\u{16F9F}\u{16FE0}\u{16FE1}\u{17000}-\u{187EC}\u{18800}-\u{18AF2}\u{1B000}-\u{1B11E}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}\u{1BC9F}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D166}\u{1D16A}-\u{1D172}\u{1D183}\u{1D184}\u{1D18C}-\u{1D1A9}\u{1D1AE}-\u{1D1E8}\u{1D360}-\u{1D371}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D6DA}\u{1D6DC}-\u{1D714}\u{1D716}-\u{1D74E}\u{1D750}-\u{1D788}\u{1D78A}-\u{1D7C2}\u{1D7C4}-\u{1D7CB}\u{1D7CE}-\u{1D9FF}\u{1DA37}-\u{1DA3A}\u{1DA6D}-\u{1DA74}\u{1DA76}-\u{1DA83}\u{1DA85}-\u{1DA8B}\u{1F100}-\u{1F10A}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F169}\u{1F170}-\u{1F1AC}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{20000}-\u{2A6D6}\u{2A700}-\u{2B734}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2F800}-\u{2FA1D}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}][\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{11001}\u{11038}-\u{11046}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111CA}-\u{111CC}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}-\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1D167}-\u{1D169}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]*$/u}},function(e){e.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped","a"],[[66,66],"mapped","b"],[[67,67],"mapped","c"],[[68,68],"mapped","d"],[[69,69],"mapped","e"],[[70,70],"mapped","f"],[[71,71],"mapped","g"],[[72,72],"mapped","h"],[[73,73],"mapped","i"],[[74,74],"mapped","j"],[[75,75],"mapped","k"],[[76,76],"mapped","l"],[[77,77],"mapped","m"],[[78,78],"mapped","n"],[[79,79],"mapped","o"],[[80,80],"mapped","p"],[[81,81],"mapped","q"],[[82,82],"mapped","r"],[[83,83],"mapped","s"],[[84,84],"mapped","t"],[[85,85],"mapped","u"],[[86,86],"mapped","v"],[[87,87],"mapped","w"],[[88,88],"mapped","x"],[[89,89],"mapped","y"],[[90,90],"mapped","z"],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped"," "],[[161,167],"valid","","NV8"],[[168,168],"disallowed_STD3_mapped"," ̈"],[[169,169],"valid","","NV8"],[[170,170],"mapped","a"],[[171,172],"valid","","NV8"],[[173,173],"ignored"],[[174,174],"valid","","NV8"],[[175,175],"disallowed_STD3_mapped"," ̄"],[[176,177],"valid","","NV8"],[[178,178],"mapped","2"],[[179,179],"mapped","3"],[[180,180],"disallowed_STD3_mapped"," ́"],[[181,181],"mapped","μ"],[[182,182],"valid","","NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped"," ̧"],[[185,185],"mapped","1"],[[186,186],"mapped","o"],[[187,187],"valid","","NV8"],[[188,188],"mapped","1⁄4"],[[189,189],"mapped","1⁄2"],[[190,190],"mapped","3⁄4"],[[191,191],"valid","","NV8"],[[192,192],"mapped","à"],[[193,193],"mapped","á"],[[194,194],"mapped","â"],[[195,195],"mapped","ã"],[[196,196],"mapped","ä"],[[197,197],"mapped","å"],[[198,198],"mapped","æ"],[[199,199],"mapped","ç"],[[200,200],"mapped","è"],[[201,201],"mapped","é"],[[202,202],"mapped","ê"],[[203,203],"mapped","ë"],[[204,204],"mapped","ì"],[[205,205],"mapped","í"],[[206,206],"mapped","î"],[[207,207],"mapped","ï"],[[208,208],"mapped","ð"],[[209,209],"mapped","ñ"],[[210,210],"mapped","ò"],[[211,211],"mapped","ó"],[[212,212],"mapped","ô"],[[213,213],"mapped","õ"],[[214,214],"mapped","ö"],[[215,215],"valid","","NV8"],[[216,216],"mapped","ø"],[[217,217],"mapped","ù"],[[218,218],"mapped","ú"],[[219,219],"mapped","û"],[[220,220],"mapped","ü"],[[221,221],"mapped","ý"],[[222,222],"mapped","þ"],[[223,223],"deviation","ss"],[[224,246],"valid"],[[247,247],"valid","","NV8"],[[248,255],"valid"],[[256,256],"mapped","ā"],[[257,257],"valid"],[[258,258],"mapped","ă"],[[259,259],"valid"],[[260,260],"mapped","ą"],[[261,261],"valid"],[[262,262],"mapped","ć"],[[263,263],"valid"],[[264,264],"mapped","ĉ"],[[265,265],"valid"],[[266,266],"mapped","ċ"],[[267,267],"valid"],[[268,268],"mapped","č"],[[269,269],"valid"],[[270,270],"mapped","ď"],[[271,271],"valid"],[[272,272],"mapped","đ"],[[273,273],"valid"],[[274,274],"mapped","ē"],[[275,275],"valid"],[[276,276],"mapped","ĕ"],[[277,277],"valid"],[[278,278],"mapped","ė"],[[279,279],"valid"],[[280,280],"mapped","ę"],[[281,281],"valid"],[[282,282],"mapped","ě"],[[283,283],"valid"],[[284,284],"mapped","ĝ"],[[285,285],"valid"],[[286,286],"mapped","ğ"],[[287,287],"valid"],[[288,288],"mapped","ġ"],[[289,289],"valid"],[[290,290],"mapped","ģ"],[[291,291],"valid"],[[292,292],"mapped","ĥ"],[[293,293],"valid"],[[294,294],"mapped","ħ"],[[295,295],"valid"],[[296,296],"mapped","ĩ"],[[297,297],"valid"],[[298,298],"mapped","ī"],[[299,299],"valid"],[[300,300],"mapped","ĭ"],[[301,301],"valid"],[[302,302],"mapped","į"],[[303,303],"valid"],[[304,304],"mapped","i̇"],[[305,305],"valid"],[[306,307],"mapped","ij"],[[308,308],"mapped","ĵ"],[[309,309],"valid"],[[310,310],"mapped","ķ"],[[311,312],"valid"],[[313,313],"mapped","ĺ"],[[314,314],"valid"],[[315,315],"mapped","ļ"],[[316,316],"valid"],[[317,317],"mapped","ľ"],[[318,318],"valid"],[[319,320],"mapped","l·"],[[321,321],"mapped","ł"],[[322,322],"valid"],[[323,323],"mapped","ń"],[[324,324],"valid"],[[325,325],"mapped","ņ"],[[326,326],"valid"],[[327,327],"mapped","ň"],[[328,328],"valid"],[[329,329],"mapped","ʼn"],[[330,330],"mapped","ŋ"],[[331,331],"valid"],[[332,332],"mapped","ō"],[[333,333],"valid"],[[334,334],"mapped","ŏ"],[[335,335],"valid"],[[336,336],"mapped","ő"],[[337,337],"valid"],[[338,338],"mapped","œ"],[[339,339],"valid"],[[340,340],"mapped","ŕ"],[[341,341],"valid"],[[342,342],"mapped","ŗ"],[[343,343],"valid"],[[344,344],"mapped","ř"],[[345,345],"valid"],[[346,346],"mapped","ś"],[[347,347],"valid"],[[348,348],"mapped","ŝ"],[[349,349],"valid"],[[350,350],"mapped","ş"],[[351,351],"valid"],[[352,352],"mapped","š"],[[353,353],"valid"],[[354,354],"mapped","ţ"],[[355,355],"valid"],[[356,356],"mapped","ť"],[[357,357],"valid"],[[358,358],"mapped","ŧ"],[[359,359],"valid"],[[360,360],"mapped","ũ"],[[361,361],"valid"],[[362,362],"mapped","ū"],[[363,363],"valid"],[[364,364],"mapped","ŭ"],[[365,365],"valid"],[[366,366],"mapped","ů"],[[367,367],"valid"],[[368,368],"mapped","ű"],[[369,369],"valid"],[[370,370],"mapped","ų"],[[371,371],"valid"],[[372,372],"mapped","ŵ"],[[373,373],"valid"],[[374,374],"mapped","ŷ"],[[375,375],"valid"],[[376,376],"mapped","ÿ"],[[377,377],"mapped","ź"],[[378,378],"valid"],[[379,379],"mapped","ż"],[[380,380],"valid"],[[381,381],"mapped","ž"],[[382,382],"valid"],[[383,383],"mapped","s"],[[384,384],"valid"],[[385,385],"mapped","ɓ"],[[386,386],"mapped","ƃ"],[[387,387],"valid"],[[388,388],"mapped","ƅ"],[[389,389],"valid"],[[390,390],"mapped","ɔ"],[[391,391],"mapped","ƈ"],[[392,392],"valid"],[[393,393],"mapped","ɖ"],[[394,394],"mapped","ɗ"],[[395,395],"mapped","ƌ"],[[396,397],"valid"],[[398,398],"mapped","ǝ"],[[399,399],"mapped","ə"],[[400,400],"mapped","ɛ"],[[401,401],"mapped","ƒ"],[[402,402],"valid"],[[403,403],"mapped","ɠ"],[[404,404],"mapped","ɣ"],[[405,405],"valid"],[[406,406],"mapped","ɩ"],[[407,407],"mapped","ɨ"],[[408,408],"mapped","ƙ"],[[409,411],"valid"],[[412,412],"mapped","ɯ"],[[413,413],"mapped","ɲ"],[[414,414],"valid"],[[415,415],"mapped","ɵ"],[[416,416],"mapped","ơ"],[[417,417],"valid"],[[418,418],"mapped","ƣ"],[[419,419],"valid"],[[420,420],"mapped","ƥ"],[[421,421],"valid"],[[422,422],"mapped","ʀ"],[[423,423],"mapped","ƨ"],[[424,424],"valid"],[[425,425],"mapped","ʃ"],[[426,427],"valid"],[[428,428],"mapped","ƭ"],[[429,429],"valid"],[[430,430],"mapped","ʈ"],[[431,431],"mapped","ư"],[[432,432],"valid"],[[433,433],"mapped","ʊ"],[[434,434],"mapped","ʋ"],[[435,435],"mapped","ƴ"],[[436,436],"valid"],[[437,437],"mapped","ƶ"],[[438,438],"valid"],[[439,439],"mapped","ʒ"],[[440,440],"mapped","ƹ"],[[441,443],"valid"],[[444,444],"mapped","ƽ"],[[445,451],"valid"],[[452,454],"mapped","dž"],[[455,457],"mapped","lj"],[[458,460],"mapped","nj"],[[461,461],"mapped","ǎ"],[[462,462],"valid"],[[463,463],"mapped","ǐ"],[[464,464],"valid"],[[465,465],"mapped","ǒ"],[[466,466],"valid"],[[467,467],"mapped","ǔ"],[[468,468],"valid"],[[469,469],"mapped","ǖ"],[[470,470],"valid"],[[471,471],"mapped","ǘ"],[[472,472],"valid"],[[473,473],"mapped","ǚ"],[[474,474],"valid"],[[475,475],"mapped","ǜ"],[[476,477],"valid"],[[478,478],"mapped","ǟ"],[[479,479],"valid"],[[480,480],"mapped","ǡ"],[[481,481],"valid"],[[482,482],"mapped","ǣ"],[[483,483],"valid"],[[484,484],"mapped","ǥ"],[[485,485],"valid"],[[486,486],"mapped","ǧ"],[[487,487],"valid"],[[488,488],"mapped","ǩ"],[[489,489],"valid"],[[490,490],"mapped","ǫ"],[[491,491],"valid"],[[492,492],"mapped","ǭ"],[[493,493],"valid"],[[494,494],"mapped","ǯ"],[[495,496],"valid"],[[497,499],"mapped","dz"],[[500,500],"mapped","ǵ"],[[501,501],"valid"],[[502,502],"mapped","ƕ"],[[503,503],"mapped","ƿ"],[[504,504],"mapped","ǹ"],[[505,505],"valid"],[[506,506],"mapped","ǻ"],[[507,507],"valid"],[[508,508],"mapped","ǽ"],[[509,509],"valid"],[[510,510],"mapped","ǿ"],[[511,511],"valid"],[[512,512],"mapped","ȁ"],[[513,513],"valid"],[[514,514],"mapped","ȃ"],[[515,515],"valid"],[[516,516],"mapped","ȅ"],[[517,517],"valid"],[[518,518],"mapped","ȇ"],[[519,519],"valid"],[[520,520],"mapped","ȉ"],[[521,521],"valid"],[[522,522],"mapped","ȋ"],[[523,523],"valid"],[[524,524],"mapped","ȍ"],[[525,525],"valid"],[[526,526],"mapped","ȏ"],[[527,527],"valid"],[[528,528],"mapped","ȑ"],[[529,529],"valid"],[[530,530],"mapped","ȓ"],[[531,531],"valid"],[[532,532],"mapped","ȕ"],[[533,533],"valid"],[[534,534],"mapped","ȗ"],[[535,535],"valid"],[[536,536],"mapped","ș"],[[537,537],"valid"],[[538,538],"mapped","ț"],[[539,539],"valid"],[[540,540],"mapped","ȝ"],[[541,541],"valid"],[[542,542],"mapped","ȟ"],[[543,543],"valid"],[[544,544],"mapped","ƞ"],[[545,545],"valid"],[[546,546],"mapped","ȣ"],[[547,547],"valid"],[[548,548],"mapped","ȥ"],[[549,549],"valid"],[[550,550],"mapped","ȧ"],[[551,551],"valid"],[[552,552],"mapped","ȩ"],[[553,553],"valid"],[[554,554],"mapped","ȫ"],[[555,555],"valid"],[[556,556],"mapped","ȭ"],[[557,557],"valid"],[[558,558],"mapped","ȯ"],[[559,559],"valid"],[[560,560],"mapped","ȱ"],[[561,561],"valid"],[[562,562],"mapped","ȳ"],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped","ⱥ"],[[571,571],"mapped","ȼ"],[[572,572],"valid"],[[573,573],"mapped","ƚ"],[[574,574],"mapped","ⱦ"],[[575,576],"valid"],[[577,577],"mapped","ɂ"],[[578,578],"valid"],[[579,579],"mapped","ƀ"],[[580,580],"mapped","ʉ"],[[581,581],"mapped","ʌ"],[[582,582],"mapped","ɇ"],[[583,583],"valid"],[[584,584],"mapped","ɉ"],[[585,585],"valid"],[[586,586],"mapped","ɋ"],[[587,587],"valid"],[[588,588],"mapped","ɍ"],[[589,589],"valid"],[[590,590],"mapped","ɏ"],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped","h"],[[689,689],"mapped","ɦ"],[[690,690],"mapped","j"],[[691,691],"mapped","r"],[[692,692],"mapped","ɹ"],[[693,693],"mapped","ɻ"],[[694,694],"mapped","ʁ"],[[695,695],"mapped","w"],[[696,696],"mapped","y"],[[697,705],"valid"],[[706,709],"valid","","NV8"],[[710,721],"valid"],[[722,727],"valid","","NV8"],[[728,728],"disallowed_STD3_mapped"," ̆"],[[729,729],"disallowed_STD3_mapped"," ̇"],[[730,730],"disallowed_STD3_mapped"," ̊"],[[731,731],"disallowed_STD3_mapped"," ̨"],[[732,732],"disallowed_STD3_mapped"," ̃"],[[733,733],"disallowed_STD3_mapped"," ̋"],[[734,734],"valid","","NV8"],[[735,735],"valid","","NV8"],[[736,736],"mapped","ɣ"],[[737,737],"mapped","l"],[[738,738],"mapped","s"],[[739,739],"mapped","x"],[[740,740],"mapped","ʕ"],[[741,745],"valid","","NV8"],[[746,747],"valid","","NV8"],[[748,748],"valid"],[[749,749],"valid","","NV8"],[[750,750],"valid"],[[751,767],"valid","","NV8"],[[768,831],"valid"],[[832,832],"mapped","̀"],[[833,833],"mapped","́"],[[834,834],"valid"],[[835,835],"mapped","̓"],[[836,836],"mapped","̈́"],[[837,837],"mapped","ι"],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped","ͱ"],[[881,881],"valid"],[[882,882],"mapped","ͳ"],[[883,883],"valid"],[[884,884],"mapped","ʹ"],[[885,885],"valid"],[[886,886],"mapped","ͷ"],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped"," ι"],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",";"],[[895,895],"mapped","ϳ"],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped"," ́"],[[901,901],"disallowed_STD3_mapped"," ̈́"],[[902,902],"mapped","ά"],[[903,903],"mapped","·"],[[904,904],"mapped","έ"],[[905,905],"mapped","ή"],[[906,906],"mapped","ί"],[[907,907],"disallowed"],[[908,908],"mapped","ό"],[[909,909],"disallowed"],[[910,910],"mapped","ύ"],[[911,911],"mapped","ώ"],[[912,912],"valid"],[[913,913],"mapped","α"],[[914,914],"mapped","β"],[[915,915],"mapped","γ"],[[916,916],"mapped","δ"],[[917,917],"mapped","ε"],[[918,918],"mapped","ζ"],[[919,919],"mapped","η"],[[920,920],"mapped","θ"],[[921,921],"mapped","ι"],[[922,922],"mapped","κ"],[[923,923],"mapped","λ"],[[924,924],"mapped","μ"],[[925,925],"mapped","ν"],[[926,926],"mapped","ξ"],[[927,927],"mapped","ο"],[[928,928],"mapped","π"],[[929,929],"mapped","ρ"],[[930,930],"disallowed"],[[931,931],"mapped","σ"],[[932,932],"mapped","τ"],[[933,933],"mapped","υ"],[[934,934],"mapped","φ"],[[935,935],"mapped","χ"],[[936,936],"mapped","ψ"],[[937,937],"mapped","ω"],[[938,938],"mapped","ϊ"],[[939,939],"mapped","ϋ"],[[940,961],"valid"],[[962,962],"deviation","σ"],[[963,974],"valid"],[[975,975],"mapped","ϗ"],[[976,976],"mapped","β"],[[977,977],"mapped","θ"],[[978,978],"mapped","υ"],[[979,979],"mapped","ύ"],[[980,980],"mapped","ϋ"],[[981,981],"mapped","φ"],[[982,982],"mapped","π"],[[983,983],"valid"],[[984,984],"mapped","ϙ"],[[985,985],"valid"],[[986,986],"mapped","ϛ"],[[987,987],"valid"],[[988,988],"mapped","ϝ"],[[989,989],"valid"],[[990,990],"mapped","ϟ"],[[991,991],"valid"],[[992,992],"mapped","ϡ"],[[993,993],"valid"],[[994,994],"mapped","ϣ"],[[995,995],"valid"],[[996,996],"mapped","ϥ"],[[997,997],"valid"],[[998,998],"mapped","ϧ"],[[999,999],"valid"],[[1e3,1e3],"mapped","ϩ"],[[1001,1001],"valid"],[[1002,1002],"mapped","ϫ"],[[1003,1003],"valid"],[[1004,1004],"mapped","ϭ"],[[1005,1005],"valid"],[[1006,1006],"mapped","ϯ"],[[1007,1007],"valid"],[[1008,1008],"mapped","κ"],[[1009,1009],"mapped","ρ"],[[1010,1010],"mapped","σ"],[[1011,1011],"valid"],[[1012,1012],"mapped","θ"],[[1013,1013],"mapped","ε"],[[1014,1014],"valid","","NV8"],[[1015,1015],"mapped","ϸ"],[[1016,1016],"valid"],[[1017,1017],"mapped","σ"],[[1018,1018],"mapped","ϻ"],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped","ͻ"],[[1022,1022],"mapped","ͼ"],[[1023,1023],"mapped","ͽ"],[[1024,1024],"mapped","ѐ"],[[1025,1025],"mapped","ё"],[[1026,1026],"mapped","ђ"],[[1027,1027],"mapped","ѓ"],[[1028,1028],"mapped","є"],[[1029,1029],"mapped","ѕ"],[[1030,1030],"mapped","і"],[[1031,1031],"mapped","ї"],[[1032,1032],"mapped","ј"],[[1033,1033],"mapped","љ"],[[1034,1034],"mapped","њ"],[[1035,1035],"mapped","ћ"],[[1036,1036],"mapped","ќ"],[[1037,1037],"mapped","ѝ"],[[1038,1038],"mapped","ў"],[[1039,1039],"mapped","џ"],[[1040,1040],"mapped","а"],[[1041,1041],"mapped","б"],[[1042,1042],"mapped","в"],[[1043,1043],"mapped","г"],[[1044,1044],"mapped","д"],[[1045,1045],"mapped","е"],[[1046,1046],"mapped","ж"],[[1047,1047],"mapped","з"],[[1048,1048],"mapped","и"],[[1049,1049],"mapped","й"],[[1050,1050],"mapped","к"],[[1051,1051],"mapped","л"],[[1052,1052],"mapped","м"],[[1053,1053],"mapped","н"],[[1054,1054],"mapped","о"],[[1055,1055],"mapped","п"],[[1056,1056],"mapped","р"],[[1057,1057],"mapped","с"],[[1058,1058],"mapped","т"],[[1059,1059],"mapped","у"],[[1060,1060],"mapped","ф"],[[1061,1061],"mapped","х"],[[1062,1062],"mapped","ц"],[[1063,1063],"mapped","ч"],[[1064,1064],"mapped","ш"],[[1065,1065],"mapped","щ"],[[1066,1066],"mapped","ъ"],[[1067,1067],"mapped","ы"],[[1068,1068],"mapped","ь"],[[1069,1069],"mapped","э"],[[1070,1070],"mapped","ю"],[[1071,1071],"mapped","я"],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped","ѡ"],[[1121,1121],"valid"],[[1122,1122],"mapped","ѣ"],[[1123,1123],"valid"],[[1124,1124],"mapped","ѥ"],[[1125,1125],"valid"],[[1126,1126],"mapped","ѧ"],[[1127,1127],"valid"],[[1128,1128],"mapped","ѩ"],[[1129,1129],"valid"],[[1130,1130],"mapped","ѫ"],[[1131,1131],"valid"],[[1132,1132],"mapped","ѭ"],[[1133,1133],"valid"],[[1134,1134],"mapped","ѯ"],[[1135,1135],"valid"],[[1136,1136],"mapped","ѱ"],[[1137,1137],"valid"],[[1138,1138],"mapped","ѳ"],[[1139,1139],"valid"],[[1140,1140],"mapped","ѵ"],[[1141,1141],"valid"],[[1142,1142],"mapped","ѷ"],[[1143,1143],"valid"],[[1144,1144],"mapped","ѹ"],[[1145,1145],"valid"],[[1146,1146],"mapped","ѻ"],[[1147,1147],"valid"],[[1148,1148],"mapped","ѽ"],[[1149,1149],"valid"],[[1150,1150],"mapped","ѿ"],[[1151,1151],"valid"],[[1152,1152],"mapped","ҁ"],[[1153,1153],"valid"],[[1154,1154],"valid","","NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid","","NV8"],[[1162,1162],"mapped","ҋ"],[[1163,1163],"valid"],[[1164,1164],"mapped","ҍ"],[[1165,1165],"valid"],[[1166,1166],"mapped","ҏ"],[[1167,1167],"valid"],[[1168,1168],"mapped","ґ"],[[1169,1169],"valid"],[[1170,1170],"mapped","ғ"],[[1171,1171],"valid"],[[1172,1172],"mapped","ҕ"],[[1173,1173],"valid"],[[1174,1174],"mapped","җ"],[[1175,1175],"valid"],[[1176,1176],"mapped","ҙ"],[[1177,1177],"valid"],[[1178,1178],"mapped","қ"],[[1179,1179],"valid"],[[1180,1180],"mapped","ҝ"],[[1181,1181],"valid"],[[1182,1182],"mapped","ҟ"],[[1183,1183],"valid"],[[1184,1184],"mapped","ҡ"],[[1185,1185],"valid"],[[1186,1186],"mapped","ң"],[[1187,1187],"valid"],[[1188,1188],"mapped","ҥ"],[[1189,1189],"valid"],[[1190,1190],"mapped","ҧ"],[[1191,1191],"valid"],[[1192,1192],"mapped","ҩ"],[[1193,1193],"valid"],[[1194,1194],"mapped","ҫ"],[[1195,1195],"valid"],[[1196,1196],"mapped","ҭ"],[[1197,1197],"valid"],[[1198,1198],"mapped","ү"],[[1199,1199],"valid"],[[1200,1200],"mapped","ұ"],[[1201,1201],"valid"],[[1202,1202],"mapped","ҳ"],[[1203,1203],"valid"],[[1204,1204],"mapped","ҵ"],[[1205,1205],"valid"],[[1206,1206],"mapped","ҷ"],[[1207,1207],"valid"],[[1208,1208],"mapped","ҹ"],[[1209,1209],"valid"],[[1210,1210],"mapped","һ"],[[1211,1211],"valid"],[[1212,1212],"mapped","ҽ"],[[1213,1213],"valid"],[[1214,1214],"mapped","ҿ"],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped","ӂ"],[[1218,1218],"valid"],[[1219,1219],"mapped","ӄ"],[[1220,1220],"valid"],[[1221,1221],"mapped","ӆ"],[[1222,1222],"valid"],[[1223,1223],"mapped","ӈ"],[[1224,1224],"valid"],[[1225,1225],"mapped","ӊ"],[[1226,1226],"valid"],[[1227,1227],"mapped","ӌ"],[[1228,1228],"valid"],[[1229,1229],"mapped","ӎ"],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped","ӑ"],[[1233,1233],"valid"],[[1234,1234],"mapped","ӓ"],[[1235,1235],"valid"],[[1236,1236],"mapped","ӕ"],[[1237,1237],"valid"],[[1238,1238],"mapped","ӗ"],[[1239,1239],"valid"],[[1240,1240],"mapped","ә"],[[1241,1241],"valid"],[[1242,1242],"mapped","ӛ"],[[1243,1243],"valid"],[[1244,1244],"mapped","ӝ"],[[1245,1245],"valid"],[[1246,1246],"mapped","ӟ"],[[1247,1247],"valid"],[[1248,1248],"mapped","ӡ"],[[1249,1249],"valid"],[[1250,1250],"mapped","ӣ"],[[1251,1251],"valid"],[[1252,1252],"mapped","ӥ"],[[1253,1253],"valid"],[[1254,1254],"mapped","ӧ"],[[1255,1255],"valid"],[[1256,1256],"mapped","ө"],[[1257,1257],"valid"],[[1258,1258],"mapped","ӫ"],[[1259,1259],"valid"],[[1260,1260],"mapped","ӭ"],[[1261,1261],"valid"],[[1262,1262],"mapped","ӯ"],[[1263,1263],"valid"],[[1264,1264],"mapped","ӱ"],[[1265,1265],"valid"],[[1266,1266],"mapped","ӳ"],[[1267,1267],"valid"],[[1268,1268],"mapped","ӵ"],[[1269,1269],"valid"],[[1270,1270],"mapped","ӷ"],[[1271,1271],"valid"],[[1272,1272],"mapped","ӹ"],[[1273,1273],"valid"],[[1274,1274],"mapped","ӻ"],[[1275,1275],"valid"],[[1276,1276],"mapped","ӽ"],[[1277,1277],"valid"],[[1278,1278],"mapped","ӿ"],[[1279,1279],"valid"],[[1280,1280],"mapped","ԁ"],[[1281,1281],"valid"],[[1282,1282],"mapped","ԃ"],[[1283,1283],"valid"],[[1284,1284],"mapped","ԅ"],[[1285,1285],"valid"],[[1286,1286],"mapped","ԇ"],[[1287,1287],"valid"],[[1288,1288],"mapped","ԉ"],[[1289,1289],"valid"],[[1290,1290],"mapped","ԋ"],[[1291,1291],"valid"],[[1292,1292],"mapped","ԍ"],[[1293,1293],"valid"],[[1294,1294],"mapped","ԏ"],[[1295,1295],"valid"],[[1296,1296],"mapped","ԑ"],[[1297,1297],"valid"],[[1298,1298],"mapped","ԓ"],[[1299,1299],"valid"],[[1300,1300],"mapped","ԕ"],[[1301,1301],"valid"],[[1302,1302],"mapped","ԗ"],[[1303,1303],"valid"],[[1304,1304],"mapped","ԙ"],[[1305,1305],"valid"],[[1306,1306],"mapped","ԛ"],[[1307,1307],"valid"],[[1308,1308],"mapped","ԝ"],[[1309,1309],"valid"],[[1310,1310],"mapped","ԟ"],[[1311,1311],"valid"],[[1312,1312],"mapped","ԡ"],[[1313,1313],"valid"],[[1314,1314],"mapped","ԣ"],[[1315,1315],"valid"],[[1316,1316],"mapped","ԥ"],[[1317,1317],"valid"],[[1318,1318],"mapped","ԧ"],[[1319,1319],"valid"],[[1320,1320],"mapped","ԩ"],[[1321,1321],"valid"],[[1322,1322],"mapped","ԫ"],[[1323,1323],"valid"],[[1324,1324],"mapped","ԭ"],[[1325,1325],"valid"],[[1326,1326],"mapped","ԯ"],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped","ա"],[[1330,1330],"mapped","բ"],[[1331,1331],"mapped","գ"],[[1332,1332],"mapped","դ"],[[1333,1333],"mapped","ե"],[[1334,1334],"mapped","զ"],[[1335,1335],"mapped","է"],[[1336,1336],"mapped","ը"],[[1337,1337],"mapped","թ"],[[1338,1338],"mapped","ժ"],[[1339,1339],"mapped","ի"],[[1340,1340],"mapped","լ"],[[1341,1341],"mapped","խ"],[[1342,1342],"mapped","ծ"],[[1343,1343],"mapped","կ"],[[1344,1344],"mapped","հ"],[[1345,1345],"mapped","ձ"],[[1346,1346],"mapped","ղ"],[[1347,1347],"mapped","ճ"],[[1348,1348],"mapped","մ"],[[1349,1349],"mapped","յ"],[[1350,1350],"mapped","ն"],[[1351,1351],"mapped","շ"],[[1352,1352],"mapped","ո"],[[1353,1353],"mapped","չ"],[[1354,1354],"mapped","պ"],[[1355,1355],"mapped","ջ"],[[1356,1356],"mapped","ռ"],[[1357,1357],"mapped","ս"],[[1358,1358],"mapped","վ"],[[1359,1359],"mapped","տ"],[[1360,1360],"mapped","ր"],[[1361,1361],"mapped","ց"],[[1362,1362],"mapped","ւ"],[[1363,1363],"mapped","փ"],[[1364,1364],"mapped","ք"],[[1365,1365],"mapped","օ"],[[1366,1366],"mapped","ֆ"],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid","","NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped","եւ"],[[1416,1416],"disallowed"],[[1417,1417],"valid","","NV8"],[[1418,1418],"valid","","NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid","","NV8"],[[1423,1423],"valid","","NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid","","NV8"],[[1471,1471],"valid"],[[1472,1472],"valid","","NV8"],[[1473,1474],"valid"],[[1475,1475],"valid","","NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid","","NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid","","NV8"],[[1547,1547],"valid","","NV8"],[[1548,1548],"valid","","NV8"],[[1549,1551],"valid","","NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid","","NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid","","NV8"],[[1567,1567],"valid","","NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid","","NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid","","NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped","اٴ"],[[1654,1654],"mapped","وٴ"],[[1655,1655],"mapped","ۇٴ"],[[1656,1656],"mapped","يٴ"],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid","","NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid","","NV8"],[[1759,1768],"valid"],[[1769,1769],"valid","","NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid","","NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid","","NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid","","NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid","","NV8"],[[2143,2143],"disallowed"],[[2144,2154],"valid"],[[2155,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2229],"disallowed"],[[2230,2237],"valid"],[[2238,2259],"disallowed"],[[2260,2273],"valid"],[[2274,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped","क़"],[[2393,2393],"mapped","ख़"],[[2394,2394],"mapped","ग़"],[[2395,2395],"mapped","ज़"],[[2396,2396],"mapped","ड़"],[[2397,2397],"mapped","ढ़"],[[2398,2398],"mapped","फ़"],[[2399,2399],"mapped","य़"],[[2400,2403],"valid"],[[2404,2405],"valid","","NV8"],[[2406,2415],"valid"],[[2416,2416],"valid","","NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped","ড়"],[[2525,2525],"mapped","ঢ়"],[[2526,2526],"disallowed"],[[2527,2527],"mapped","য়"],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid","","NV8"],[[2555,2555],"valid","","NV8"],[[2556,2556],"valid"],[[2557,2557],"valid","","NV8"],[[2558,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped","ਲ਼"],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped","ਸ਼"],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped","ਖ਼"],[[2650,2650],"mapped","ਗ਼"],[[2651,2651],"mapped","ਜ਼"],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped","ਫ਼"],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid","","NV8"],[[2801,2801],"valid","","NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2815],"valid"],[[2816,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped","ଡ଼"],[[2909,2909],"mapped","ଢ଼"],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid","","NV8"],[[2929,2929],"valid"],[[2930,2935],"valid","","NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid","","NV8"],[[3059,3066],"valid","","NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid","","NV8"],[[3200,3200],"valid"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3327],"disallowed"],[[3328,3328],"valid"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"valid"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3407],"valid","","NV8"],[[3408,3411],"disallowed"],[[3412,3414],"valid"],[[3415,3415],"valid"],[[3416,3422],"valid","","NV8"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid","","NV8"],[[3446,3448],"valid","","NV8"],[[3449,3449],"valid","","NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid","","NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped","ํา"],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid","","NV8"],[[3648,3662],"valid"],[[3663,3663],"valid","","NV8"],[[3664,3673],"valid"],[[3674,3675],"valid","","NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped","ໍາ"],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped","ຫນ"],[[3805,3805],"mapped","ຫມ"],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid","","NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped","་"],[[3853,3863],"valid","","NV8"],[[3864,3865],"valid"],[[3866,3871],"valid","","NV8"],[[3872,3881],"valid"],[[3882,3892],"valid","","NV8"],[[3893,3893],"valid"],[[3894,3894],"valid","","NV8"],[[3895,3895],"valid"],[[3896,3896],"valid","","NV8"],[[3897,3897],"valid"],[[3898,3901],"valid","","NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped","གྷ"],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped","ཌྷ"],[[3918,3921],"valid"],[[3922,3922],"mapped","དྷ"],[[3923,3926],"valid"],[[3927,3927],"mapped","བྷ"],[[3928,3931],"valid"],[[3932,3932],"mapped","ཛྷ"],[[3933,3944],"valid"],[[3945,3945],"mapped","ཀྵ"],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped","ཱི"],[[3956,3956],"valid"],[[3957,3957],"mapped","ཱུ"],[[3958,3958],"mapped","ྲྀ"],[[3959,3959],"mapped","ྲཱྀ"],[[3960,3960],"mapped","ླྀ"],[[3961,3961],"mapped","ླཱྀ"],[[3962,3968],"valid"],[[3969,3969],"mapped","ཱྀ"],[[3970,3972],"valid"],[[3973,3973],"valid","","NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped","ྒྷ"],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped","ྜྷ"],[[3998,4001],"valid"],[[4002,4002],"mapped","ྡྷ"],[[4003,4006],"valid"],[[4007,4007],"mapped","ྦྷ"],[[4008,4011],"valid"],[[4012,4012],"mapped","ྫྷ"],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped","ྐྵ"],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid","","NV8"],[[4038,4038],"valid"],[[4039,4044],"valid","","NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid","","NV8"],[[4047,4047],"valid","","NV8"],[[4048,4049],"valid","","NV8"],[[4050,4052],"valid","","NV8"],[[4053,4056],"valid","","NV8"],[[4057,4058],"valid","","NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid","","NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid","","NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped","ⴧ"],[[4296,4300],"disallowed"],[[4301,4301],"mapped","ⴭ"],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid","","NV8"],[[4348,4348],"mapped","ნ"],[[4349,4351],"valid"],[[4352,4441],"valid","","NV8"],[[4442,4446],"valid","","NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid","","NV8"],[[4515,4519],"valid","","NV8"],[[4520,4601],"valid","","NV8"],[[4602,4607],"valid","","NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid","","NV8"],[[4961,4988],"valid","","NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid","","NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped","Ᏸ"],[[5113,5113],"mapped","Ᏹ"],[[5114,5114],"mapped","Ᏺ"],[[5115,5115],"mapped","Ᏻ"],[[5116,5116],"mapped","Ᏼ"],[[5117,5117],"mapped","Ᏽ"],[[5118,5119],"disallowed"],[[5120,5120],"valid","","NV8"],[[5121,5740],"valid"],[[5741,5742],"valid","","NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid","","NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid","","NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid","","NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid","","NV8"],[[6103,6103],"valid"],[[6104,6107],"valid","","NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid","","NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid","","NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid","","NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid","","NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid","","NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid","","XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid","","NV8"],[[6624,6655],"valid","","NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid","","NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid","","NV8"],[[6823,6823],"valid"],[[6824,6829],"valid","","NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid","","NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid","","NV8"],[[7019,7027],"valid"],[[7028,7036],"valid","","NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid","","NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid","","NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid","","NV8"],[[7296,7296],"mapped","в"],[[7297,7297],"mapped","д"],[[7298,7298],"mapped","о"],[[7299,7299],"mapped","с"],[[7300,7301],"mapped","т"],[[7302,7302],"mapped","ъ"],[[7303,7303],"mapped","ѣ"],[[7304,7304],"mapped","ꙋ"],[[7305,7359],"disallowed"],[[7360,7367],"valid","","NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid","","NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"valid"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped","a"],[[7469,7469],"mapped","æ"],[[7470,7470],"mapped","b"],[[7471,7471],"valid"],[[7472,7472],"mapped","d"],[[7473,7473],"mapped","e"],[[7474,7474],"mapped","ǝ"],[[7475,7475],"mapped","g"],[[7476,7476],"mapped","h"],[[7477,7477],"mapped","i"],[[7478,7478],"mapped","j"],[[7479,7479],"mapped","k"],[[7480,7480],"mapped","l"],[[7481,7481],"mapped","m"],[[7482,7482],"mapped","n"],[[7483,7483],"valid"],[[7484,7484],"mapped","o"],[[7485,7485],"mapped","ȣ"],[[7486,7486],"mapped","p"],[[7487,7487],"mapped","r"],[[7488,7488],"mapped","t"],[[7489,7489],"mapped","u"],[[7490,7490],"mapped","w"],[[7491,7491],"mapped","a"],[[7492,7492],"mapped","ɐ"],[[7493,7493],"mapped","ɑ"],[[7494,7494],"mapped","ᴂ"],[[7495,7495],"mapped","b"],[[7496,7496],"mapped","d"],[[7497,7497],"mapped","e"],[[7498,7498],"mapped","ə"],[[7499,7499],"mapped","ɛ"],[[7500,7500],"mapped","ɜ"],[[7501,7501],"mapped","g"],[[7502,7502],"valid"],[[7503,7503],"mapped","k"],[[7504,7504],"mapped","m"],[[7505,7505],"mapped","ŋ"],[[7506,7506],"mapped","o"],[[7507,7507],"mapped","ɔ"],[[7508,7508],"mapped","ᴖ"],[[7509,7509],"mapped","ᴗ"],[[7510,7510],"mapped","p"],[[7511,7511],"mapped","t"],[[7512,7512],"mapped","u"],[[7513,7513],"mapped","ᴝ"],[[7514,7514],"mapped","ɯ"],[[7515,7515],"mapped","v"],[[7516,7516],"mapped","ᴥ"],[[7517,7517],"mapped","β"],[[7518,7518],"mapped","γ"],[[7519,7519],"mapped","δ"],[[7520,7520],"mapped","φ"],[[7521,7521],"mapped","χ"],[[7522,7522],"mapped","i"],[[7523,7523],"mapped","r"],[[7524,7524],"mapped","u"],[[7525,7525],"mapped","v"],[[7526,7526],"mapped","β"],[[7527,7527],"mapped","γ"],[[7528,7528],"mapped","ρ"],[[7529,7529],"mapped","φ"],[[7530,7530],"mapped","χ"],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped","н"],[[7545,7578],"valid"],[[7579,7579],"mapped","ɒ"],[[7580,7580],"mapped","c"],[[7581,7581],"mapped","ɕ"],[[7582,7582],"mapped","ð"],[[7583,7583],"mapped","ɜ"],[[7584,7584],"mapped","f"],[[7585,7585],"mapped","ɟ"],[[7586,7586],"mapped","ɡ"],[[7587,7587],"mapped","ɥ"],[[7588,7588],"mapped","ɨ"],[[7589,7589],"mapped","ɩ"],[[7590,7590],"mapped","ɪ"],[[7591,7591],"mapped","ᵻ"],[[7592,7592],"mapped","ʝ"],[[7593,7593],"mapped","ɭ"],[[7594,7594],"mapped","ᶅ"],[[7595,7595],"mapped","ʟ"],[[7596,7596],"mapped","ɱ"],[[7597,7597],"mapped","ɰ"],[[7598,7598],"mapped","ɲ"],[[7599,7599],"mapped","ɳ"],[[7600,7600],"mapped","ɴ"],[[7601,7601],"mapped","ɵ"],[[7602,7602],"mapped","ɸ"],[[7603,7603],"mapped","ʂ"],[[7604,7604],"mapped","ʃ"],[[7605,7605],"mapped","ƫ"],[[7606,7606],"mapped","ʉ"],[[7607,7607],"mapped","ʊ"],[[7608,7608],"mapped","ᴜ"],[[7609,7609],"mapped","ʋ"],[[7610,7610],"mapped","ʌ"],[[7611,7611],"mapped","z"],[[7612,7612],"mapped","ʐ"],[[7613,7613],"mapped","ʑ"],[[7614,7614],"mapped","ʒ"],[[7615,7615],"mapped","θ"],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7673],"valid"],[[7674,7674],"disallowed"],[[7675,7675],"valid"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped","ḁ"],[[7681,7681],"valid"],[[7682,7682],"mapped","ḃ"],[[7683,7683],"valid"],[[7684,7684],"mapped","ḅ"],[[7685,7685],"valid"],[[7686,7686],"mapped","ḇ"],[[7687,7687],"valid"],[[7688,7688],"mapped","ḉ"],[[7689,7689],"valid"],[[7690,7690],"mapped","ḋ"],[[7691,7691],"valid"],[[7692,7692],"mapped","ḍ"],[[7693,7693],"valid"],[[7694,7694],"mapped","ḏ"],[[7695,7695],"valid"],[[7696,7696],"mapped","ḑ"],[[7697,7697],"valid"],[[7698,7698],"mapped","ḓ"],[[7699,7699],"valid"],[[7700,7700],"mapped","ḕ"],[[7701,7701],"valid"],[[7702,7702],"mapped","ḗ"],[[7703,7703],"valid"],[[7704,7704],"mapped","ḙ"],[[7705,7705],"valid"],[[7706,7706],"mapped","ḛ"],[[7707,7707],"valid"],[[7708,7708],"mapped","ḝ"],[[7709,7709],"valid"],[[7710,7710],"mapped","ḟ"],[[7711,7711],"valid"],[[7712,7712],"mapped","ḡ"],[[7713,7713],"valid"],[[7714,7714],"mapped","ḣ"],[[7715,7715],"valid"],[[7716,7716],"mapped","ḥ"],[[7717,7717],"valid"],[[7718,7718],"mapped","ḧ"],[[7719,7719],"valid"],[[7720,7720],"mapped","ḩ"],[[7721,7721],"valid"],[[7722,7722],"mapped","ḫ"],[[7723,7723],"valid"],[[7724,7724],"mapped","ḭ"],[[7725,7725],"valid"],[[7726,7726],"mapped","ḯ"],[[7727,7727],"valid"],[[7728,7728],"mapped","ḱ"],[[7729,7729],"valid"],[[7730,7730],"mapped","ḳ"],[[7731,7731],"valid"],[[7732,7732],"mapped","ḵ"],[[7733,7733],"valid"],[[7734,7734],"mapped","ḷ"],[[7735,7735],"valid"],[[7736,7736],"mapped","ḹ"],[[7737,7737],"valid"],[[7738,7738],"mapped","ḻ"],[[7739,7739],"valid"],[[7740,7740],"mapped","ḽ"],[[7741,7741],"valid"],[[7742,7742],"mapped","ḿ"],[[7743,7743],"valid"],[[7744,7744],"mapped","ṁ"],[[7745,7745],"valid"],[[7746,7746],"mapped","ṃ"],[[7747,7747],"valid"],[[7748,7748],"mapped","ṅ"],[[7749,7749],"valid"],[[7750,7750],"mapped","ṇ"],[[7751,7751],"valid"],[[7752,7752],"mapped","ṉ"],[[7753,7753],"valid"],[[7754,7754],"mapped","ṋ"],[[7755,7755],"valid"],[[7756,7756],"mapped","ṍ"],[[7757,7757],"valid"],[[7758,7758],"mapped","ṏ"],[[7759,7759],"valid"],[[7760,7760],"mapped","ṑ"],[[7761,7761],"valid"],[[7762,7762],"mapped","ṓ"],[[7763,7763],"valid"],[[7764,7764],"mapped","ṕ"],[[7765,7765],"valid"],[[7766,7766],"mapped","ṗ"],[[7767,7767],"valid"],[[7768,7768],"mapped","ṙ"],[[7769,7769],"valid"],[[7770,7770],"mapped","ṛ"],[[7771,7771],"valid"],[[7772,7772],"mapped","ṝ"],[[7773,7773],"valid"],[[7774,7774],"mapped","ṟ"],[[7775,7775],"valid"],[[7776,7776],"mapped","ṡ"],[[7777,7777],"valid"],[[7778,7778],"mapped","ṣ"],[[7779,7779],"valid"],[[7780,7780],"mapped","ṥ"],[[7781,7781],"valid"],[[7782,7782],"mapped","ṧ"],[[7783,7783],"valid"],[[7784,7784],"mapped","ṩ"],[[7785,7785],"valid"],[[7786,7786],"mapped","ṫ"],[[7787,7787],"valid"],[[7788,7788],"mapped","ṭ"],[[7789,7789],"valid"],[[7790,7790],"mapped","ṯ"],[[7791,7791],"valid"],[[7792,7792],"mapped","ṱ"],[[7793,7793],"valid"],[[7794,7794],"mapped","ṳ"],[[7795,7795],"valid"],[[7796,7796],"mapped","ṵ"],[[7797,7797],"valid"],[[7798,7798],"mapped","ṷ"],[[7799,7799],"valid"],[[7800,7800],"mapped","ṹ"],[[7801,7801],"valid"],[[7802,7802],"mapped","ṻ"],[[7803,7803],"valid"],[[7804,7804],"mapped","ṽ"],[[7805,7805],"valid"],[[7806,7806],"mapped","ṿ"],[[7807,7807],"valid"],[[7808,7808],"mapped","ẁ"],[[7809,7809],"valid"],[[7810,7810],"mapped","ẃ"],[[7811,7811],"valid"],[[7812,7812],"mapped","ẅ"],[[7813,7813],"valid"],[[7814,7814],"mapped","ẇ"],[[7815,7815],"valid"],[[7816,7816],"mapped","ẉ"],[[7817,7817],"valid"],[[7818,7818],"mapped","ẋ"],[[7819,7819],"valid"],[[7820,7820],"mapped","ẍ"],[[7821,7821],"valid"],[[7822,7822],"mapped","ẏ"],[[7823,7823],"valid"],[[7824,7824],"mapped","ẑ"],[[7825,7825],"valid"],[[7826,7826],"mapped","ẓ"],[[7827,7827],"valid"],[[7828,7828],"mapped","ẕ"],[[7829,7833],"valid"],[[7834,7834],"mapped","aʾ"],[[7835,7835],"mapped","ṡ"],[[7836,7837],"valid"],[[7838,7838],"mapped","ss"],[[7839,7839],"valid"],[[7840,7840],"mapped","ạ"],[[7841,7841],"valid"],[[7842,7842],"mapped","ả"],[[7843,7843],"valid"],[[7844,7844],"mapped","ấ"],[[7845,7845],"valid"],[[7846,7846],"mapped","ầ"],[[7847,7847],"valid"],[[7848,7848],"mapped","ẩ"],[[7849,7849],"valid"],[[7850,7850],"mapped","ẫ"],[[7851,7851],"valid"],[[7852,7852],"mapped","ậ"],[[7853,7853],"valid"],[[7854,7854],"mapped","ắ"],[[7855,7855],"valid"],[[7856,7856],"mapped","ằ"],[[7857,7857],"valid"],[[7858,7858],"mapped","ẳ"],[[7859,7859],"valid"],[[7860,7860],"mapped","ẵ"],[[7861,7861],"valid"],[[7862,7862],"mapped","ặ"],[[7863,7863],"valid"],[[7864,7864],"mapped","ẹ"],[[7865,7865],"valid"],[[7866,7866],"mapped","ẻ"],[[7867,7867],"valid"],[[7868,7868],"mapped","ẽ"],[[7869,7869],"valid"],[[7870,7870],"mapped","ế"],[[7871,7871],"valid"],[[7872,7872],"mapped","ề"],[[7873,7873],"valid"],[[7874,7874],"mapped","ể"],[[7875,7875],"valid"],[[7876,7876],"mapped","ễ"],[[7877,7877],"valid"],[[7878,7878],"mapped","ệ"],[[7879,7879],"valid"],[[7880,7880],"mapped","ỉ"],[[7881,7881],"valid"],[[7882,7882],"mapped","ị"],[[7883,7883],"valid"],[[7884,7884],"mapped","ọ"],[[7885,7885],"valid"],[[7886,7886],"mapped","ỏ"],[[7887,7887],"valid"],[[7888,7888],"mapped","ố"],[[7889,7889],"valid"],[[7890,7890],"mapped","ồ"],[[7891,7891],"valid"],[[7892,7892],"mapped","ổ"],[[7893,7893],"valid"],[[7894,7894],"mapped","ỗ"],[[7895,7895],"valid"],[[7896,7896],"mapped","ộ"],[[7897,7897],"valid"],[[7898,7898],"mapped","ớ"],[[7899,7899],"valid"],[[7900,7900],"mapped","ờ"],[[7901,7901],"valid"],[[7902,7902],"mapped","ở"],[[7903,7903],"valid"],[[7904,7904],"mapped","ỡ"],[[7905,7905],"valid"],[[7906,7906],"mapped","ợ"],[[7907,7907],"valid"],[[7908,7908],"mapped","ụ"],[[7909,7909],"valid"],[[7910,7910],"mapped","ủ"],[[7911,7911],"valid"],[[7912,7912],"mapped","ứ"],[[7913,7913],"valid"],[[7914,7914],"mapped","ừ"],[[7915,7915],"valid"],[[7916,7916],"mapped","ử"],[[7917,7917],"valid"],[[7918,7918],"mapped","ữ"],[[7919,7919],"valid"],[[7920,7920],"mapped","ự"],[[7921,7921],"valid"],[[7922,7922],"mapped","ỳ"],[[7923,7923],"valid"],[[7924,7924],"mapped","ỵ"],[[7925,7925],"valid"],[[7926,7926],"mapped","ỷ"],[[7927,7927],"valid"],[[7928,7928],"mapped","ỹ"],[[7929,7929],"valid"],[[7930,7930],"mapped","ỻ"],[[7931,7931],"valid"],[[7932,7932],"mapped","ỽ"],[[7933,7933],"valid"],[[7934,7934],"mapped","ỿ"],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped","ἀ"],[[7945,7945],"mapped","ἁ"],[[7946,7946],"mapped","ἂ"],[[7947,7947],"mapped","ἃ"],[[7948,7948],"mapped","ἄ"],[[7949,7949],"mapped","ἅ"],[[7950,7950],"mapped","ἆ"],[[7951,7951],"mapped","ἇ"],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped","ἐ"],[[7961,7961],"mapped","ἑ"],[[7962,7962],"mapped","ἒ"],[[7963,7963],"mapped","ἓ"],[[7964,7964],"mapped","ἔ"],[[7965,7965],"mapped","ἕ"],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped","ἠ"],[[7977,7977],"mapped","ἡ"],[[7978,7978],"mapped","ἢ"],[[7979,7979],"mapped","ἣ"],[[7980,7980],"mapped","ἤ"],[[7981,7981],"mapped","ἥ"],[[7982,7982],"mapped","ἦ"],[[7983,7983],"mapped","ἧ"],[[7984,7991],"valid"],[[7992,7992],"mapped","ἰ"],[[7993,7993],"mapped","ἱ"],[[7994,7994],"mapped","ἲ"],[[7995,7995],"mapped","ἳ"],[[7996,7996],"mapped","ἴ"],[[7997,7997],"mapped","ἵ"],[[7998,7998],"mapped","ἶ"],[[7999,7999],"mapped","ἷ"],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped","ὀ"],[[8009,8009],"mapped","ὁ"],[[8010,8010],"mapped","ὂ"],[[8011,8011],"mapped","ὃ"],[[8012,8012],"mapped","ὄ"],[[8013,8013],"mapped","ὅ"],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped","ὑ"],[[8026,8026],"disallowed"],[[8027,8027],"mapped","ὓ"],[[8028,8028],"disallowed"],[[8029,8029],"mapped","ὕ"],[[8030,8030],"disallowed"],[[8031,8031],"mapped","ὗ"],[[8032,8039],"valid"],[[8040,8040],"mapped","ὠ"],[[8041,8041],"mapped","ὡ"],[[8042,8042],"mapped","ὢ"],[[8043,8043],"mapped","ὣ"],[[8044,8044],"mapped","ὤ"],[[8045,8045],"mapped","ὥ"],[[8046,8046],"mapped","ὦ"],[[8047,8047],"mapped","ὧ"],[[8048,8048],"valid"],[[8049,8049],"mapped","ά"],[[8050,8050],"valid"],[[8051,8051],"mapped","έ"],[[8052,8052],"valid"],[[8053,8053],"mapped","ή"],[[8054,8054],"valid"],[[8055,8055],"mapped","ί"],[[8056,8056],"valid"],[[8057,8057],"mapped","ό"],[[8058,8058],"valid"],[[8059,8059],"mapped","ύ"],[[8060,8060],"valid"],[[8061,8061],"mapped","ώ"],[[8062,8063],"disallowed"],[[8064,8064],"mapped","ἀι"],[[8065,8065],"mapped","ἁι"],[[8066,8066],"mapped","ἂι"],[[8067,8067],"mapped","ἃι"],[[8068,8068],"mapped","ἄι"],[[8069,8069],"mapped","ἅι"],[[8070,8070],"mapped","ἆι"],[[8071,8071],"mapped","ἇι"],[[8072,8072],"mapped","ἀι"],[[8073,8073],"mapped","ἁι"],[[8074,8074],"mapped","ἂι"],[[8075,8075],"mapped","ἃι"],[[8076,8076],"mapped","ἄι"],[[8077,8077],"mapped","ἅι"],[[8078,8078],"mapped","ἆι"],[[8079,8079],"mapped","ἇι"],[[8080,8080],"mapped","ἠι"],[[8081,8081],"mapped","ἡι"],[[8082,8082],"mapped","ἢι"],[[8083,8083],"mapped","ἣι"],[[8084,8084],"mapped","ἤι"],[[8085,8085],"mapped","ἥι"],[[8086,8086],"mapped","ἦι"],[[8087,8087],"mapped","ἧι"],[[8088,8088],"mapped","ἠι"],[[8089,8089],"mapped","ἡι"],[[8090,8090],"mapped","ἢι"],[[8091,8091],"mapped","ἣι"],[[8092,8092],"mapped","ἤι"],[[8093,8093],"mapped","ἥι"],[[8094,8094],"mapped","ἦι"],[[8095,8095],"mapped","ἧι"],[[8096,8096],"mapped","ὠι"],[[8097,8097],"mapped","ὡι"],[[8098,8098],"mapped","ὢι"],[[8099,8099],"mapped","ὣι"],[[8100,8100],"mapped","ὤι"],[[8101,8101],"mapped","ὥι"],[[8102,8102],"mapped","ὦι"],[[8103,8103],"mapped","ὧι"],[[8104,8104],"mapped","ὠι"],[[8105,8105],"mapped","ὡι"],[[8106,8106],"mapped","ὢι"],[[8107,8107],"mapped","ὣι"],[[8108,8108],"mapped","ὤι"],[[8109,8109],"mapped","ὥι"],[[8110,8110],"mapped","ὦι"],[[8111,8111],"mapped","ὧι"],[[8112,8113],"valid"],[[8114,8114],"mapped","ὰι"],[[8115,8115],"mapped","αι"],[[8116,8116],"mapped","άι"],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped","ᾶι"],[[8120,8120],"mapped","ᾰ"],[[8121,8121],"mapped","ᾱ"],[[8122,8122],"mapped","ὰ"],[[8123,8123],"mapped","ά"],[[8124,8124],"mapped","αι"],[[8125,8125],"disallowed_STD3_mapped"," ̓"],[[8126,8126],"mapped","ι"],[[8127,8127],"disallowed_STD3_mapped"," ̓"],[[8128,8128],"disallowed_STD3_mapped"," ͂"],[[8129,8129],"disallowed_STD3_mapped"," ̈͂"],[[8130,8130],"mapped","ὴι"],[[8131,8131],"mapped","ηι"],[[8132,8132],"mapped","ήι"],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped","ῆι"],[[8136,8136],"mapped","ὲ"],[[8137,8137],"mapped","έ"],[[8138,8138],"mapped","ὴ"],[[8139,8139],"mapped","ή"],[[8140,8140],"mapped","ηι"],[[8141,8141],"disallowed_STD3_mapped"," ̓̀"],[[8142,8142],"disallowed_STD3_mapped"," ̓́"],[[8143,8143],"disallowed_STD3_mapped"," ̓͂"],[[8144,8146],"valid"],[[8147,8147],"mapped","ΐ"],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped","ῐ"],[[8153,8153],"mapped","ῑ"],[[8154,8154],"mapped","ὶ"],[[8155,8155],"mapped","ί"],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped"," ̔̀"],[[8158,8158],"disallowed_STD3_mapped"," ̔́"],[[8159,8159],"disallowed_STD3_mapped"," ̔͂"],[[8160,8162],"valid"],[[8163,8163],"mapped","ΰ"],[[8164,8167],"valid"],[[8168,8168],"mapped","ῠ"],[[8169,8169],"mapped","ῡ"],[[8170,8170],"mapped","ὺ"],[[8171,8171],"mapped","ύ"],[[8172,8172],"mapped","ῥ"],[[8173,8173],"disallowed_STD3_mapped"," ̈̀"],[[8174,8174],"disallowed_STD3_mapped"," ̈́"],[[8175,8175],"disallowed_STD3_mapped","`"],[[8176,8177],"disallowed"],[[8178,8178],"mapped","ὼι"],[[8179,8179],"mapped","ωι"],[[8180,8180],"mapped","ώι"],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped","ῶι"],[[8184,8184],"mapped","ὸ"],[[8185,8185],"mapped","ό"],[[8186,8186],"mapped","ὼ"],[[8187,8187],"mapped","ώ"],[[8188,8188],"mapped","ωι"],[[8189,8189],"disallowed_STD3_mapped"," ́"],[[8190,8190],"disallowed_STD3_mapped"," ̔"],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped"," "],[[8203,8203],"ignored"],[[8204,8205],"deviation",""],[[8206,8207],"disallowed"],[[8208,8208],"valid","","NV8"],[[8209,8209],"mapped","‐"],[[8210,8214],"valid","","NV8"],[[8215,8215],"disallowed_STD3_mapped"," ̳"],[[8216,8227],"valid","","NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid","","NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped"," "],[[8240,8242],"valid","","NV8"],[[8243,8243],"mapped","′′"],[[8244,8244],"mapped","′′′"],[[8245,8245],"valid","","NV8"],[[8246,8246],"mapped","‵‵"],[[8247,8247],"mapped","‵‵‵"],[[8248,8251],"valid","","NV8"],[[8252,8252],"disallowed_STD3_mapped","!!"],[[8253,8253],"valid","","NV8"],[[8254,8254],"disallowed_STD3_mapped"," ̅"],[[8255,8262],"valid","","NV8"],[[8263,8263],"disallowed_STD3_mapped","??"],[[8264,8264],"disallowed_STD3_mapped","?!"],[[8265,8265],"disallowed_STD3_mapped","!?"],[[8266,8269],"valid","","NV8"],[[8270,8274],"valid","","NV8"],[[8275,8276],"valid","","NV8"],[[8277,8278],"valid","","NV8"],[[8279,8279],"mapped","′′′′"],[[8280,8286],"valid","","NV8"],[[8287,8287],"disallowed_STD3_mapped"," "],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped","0"],[[8305,8305],"mapped","i"],[[8306,8307],"disallowed"],[[8308,8308],"mapped","4"],[[8309,8309],"mapped","5"],[[8310,8310],"mapped","6"],[[8311,8311],"mapped","7"],[[8312,8312],"mapped","8"],[[8313,8313],"mapped","9"],[[8314,8314],"disallowed_STD3_mapped","+"],[[8315,8315],"mapped","−"],[[8316,8316],"disallowed_STD3_mapped","="],[[8317,8317],"disallowed_STD3_mapped","("],[[8318,8318],"disallowed_STD3_mapped",")"],[[8319,8319],"mapped","n"],[[8320,8320],"mapped","0"],[[8321,8321],"mapped","1"],[[8322,8322],"mapped","2"],[[8323,8323],"mapped","3"],[[8324,8324],"mapped","4"],[[8325,8325],"mapped","5"],[[8326,8326],"mapped","6"],[[8327,8327],"mapped","7"],[[8328,8328],"mapped","8"],[[8329,8329],"mapped","9"],[[8330,8330],"disallowed_STD3_mapped","+"],[[8331,8331],"mapped","−"],[[8332,8332],"disallowed_STD3_mapped","="],[[8333,8333],"disallowed_STD3_mapped","("],[[8334,8334],"disallowed_STD3_mapped",")"],[[8335,8335],"disallowed"],[[8336,8336],"mapped","a"],[[8337,8337],"mapped","e"],[[8338,8338],"mapped","o"],[[8339,8339],"mapped","x"],[[8340,8340],"mapped","ə"],[[8341,8341],"mapped","h"],[[8342,8342],"mapped","k"],[[8343,8343],"mapped","l"],[[8344,8344],"mapped","m"],[[8345,8345],"mapped","n"],[[8346,8346],"mapped","p"],[[8347,8347],"mapped","s"],[[8348,8348],"mapped","t"],[[8349,8351],"disallowed"],[[8352,8359],"valid","","NV8"],[[8360,8360],"mapped","rs"],[[8361,8362],"valid","","NV8"],[[8363,8363],"valid","","NV8"],[[8364,8364],"valid","","NV8"],[[8365,8367],"valid","","NV8"],[[8368,8369],"valid","","NV8"],[[8370,8373],"valid","","NV8"],[[8374,8376],"valid","","NV8"],[[8377,8377],"valid","","NV8"],[[8378,8378],"valid","","NV8"],[[8379,8381],"valid","","NV8"],[[8382,8382],"valid","","NV8"],[[8383,8383],"valid","","NV8"],[[8384,8399],"disallowed"],[[8400,8417],"valid","","NV8"],[[8418,8419],"valid","","NV8"],[[8420,8426],"valid","","NV8"],[[8427,8427],"valid","","NV8"],[[8428,8431],"valid","","NV8"],[[8432,8432],"valid","","NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped","a/c"],[[8449,8449],"disallowed_STD3_mapped","a/s"],[[8450,8450],"mapped","c"],[[8451,8451],"mapped","°c"],[[8452,8452],"valid","","NV8"],[[8453,8453],"disallowed_STD3_mapped","c/o"],[[8454,8454],"disallowed_STD3_mapped","c/u"],[[8455,8455],"mapped","ɛ"],[[8456,8456],"valid","","NV8"],[[8457,8457],"mapped","°f"],[[8458,8458],"mapped","g"],[[8459,8462],"mapped","h"],[[8463,8463],"mapped","ħ"],[[8464,8465],"mapped","i"],[[8466,8467],"mapped","l"],[[8468,8468],"valid","","NV8"],[[8469,8469],"mapped","n"],[[8470,8470],"mapped","no"],[[8471,8472],"valid","","NV8"],[[8473,8473],"mapped","p"],[[8474,8474],"mapped","q"],[[8475,8477],"mapped","r"],[[8478,8479],"valid","","NV8"],[[8480,8480],"mapped","sm"],[[8481,8481],"mapped","tel"],[[8482,8482],"mapped","tm"],[[8483,8483],"valid","","NV8"],[[8484,8484],"mapped","z"],[[8485,8485],"valid","","NV8"],[[8486,8486],"mapped","ω"],[[8487,8487],"valid","","NV8"],[[8488,8488],"mapped","z"],[[8489,8489],"valid","","NV8"],[[8490,8490],"mapped","k"],[[8491,8491],"mapped","å"],[[8492,8492],"mapped","b"],[[8493,8493],"mapped","c"],[[8494,8494],"valid","","NV8"],[[8495,8496],"mapped","e"],[[8497,8497],"mapped","f"],[[8498,8498],"disallowed"],[[8499,8499],"mapped","m"],[[8500,8500],"mapped","o"],[[8501,8501],"mapped","א"],[[8502,8502],"mapped","ב"],[[8503,8503],"mapped","ג"],[[8504,8504],"mapped","ד"],[[8505,8505],"mapped","i"],[[8506,8506],"valid","","NV8"],[[8507,8507],"mapped","fax"],[[8508,8508],"mapped","π"],[[8509,8510],"mapped","γ"],[[8511,8511],"mapped","π"],[[8512,8512],"mapped","∑"],[[8513,8516],"valid","","NV8"],[[8517,8518],"mapped","d"],[[8519,8519],"mapped","e"],[[8520,8520],"mapped","i"],[[8521,8521],"mapped","j"],[[8522,8523],"valid","","NV8"],[[8524,8524],"valid","","NV8"],[[8525,8525],"valid","","NV8"],[[8526,8526],"valid"],[[8527,8527],"valid","","NV8"],[[8528,8528],"mapped","1⁄7"],[[8529,8529],"mapped","1⁄9"],[[8530,8530],"mapped","1⁄10"],[[8531,8531],"mapped","1⁄3"],[[8532,8532],"mapped","2⁄3"],[[8533,8533],"mapped","1⁄5"],[[8534,8534],"mapped","2⁄5"],[[8535,8535],"mapped","3⁄5"],[[8536,8536],"mapped","4⁄5"],[[8537,8537],"mapped","1⁄6"],[[8538,8538],"mapped","5⁄6"],[[8539,8539],"mapped","1⁄8"],[[8540,8540],"mapped","3⁄8"],[[8541,8541],"mapped","5⁄8"],[[8542,8542],"mapped","7⁄8"],[[8543,8543],"mapped","1⁄"],[[8544,8544],"mapped","i"],[[8545,8545],"mapped","ii"],[[8546,8546],"mapped","iii"],[[8547,8547],"mapped","iv"],[[8548,8548],"mapped","v"],[[8549,8549],"mapped","vi"],[[8550,8550],"mapped","vii"],[[8551,8551],"mapped","viii"],[[8552,8552],"mapped","ix"],[[8553,8553],"mapped","x"],[[8554,8554],"mapped","xi"],[[8555,8555],"mapped","xii"],[[8556,8556],"mapped","l"],[[8557,8557],"mapped","c"],[[8558,8558],"mapped","d"],[[8559,8559],"mapped","m"],[[8560,8560],"mapped","i"],[[8561,8561],"mapped","ii"],[[8562,8562],"mapped","iii"],[[8563,8563],"mapped","iv"],[[8564,8564],"mapped","v"],[[8565,8565],"mapped","vi"],[[8566,8566],"mapped","vii"],[[8567,8567],"mapped","viii"],[[8568,8568],"mapped","ix"],[[8569,8569],"mapped","x"],[[8570,8570],"mapped","xi"],[[8571,8571],"mapped","xii"],[[8572,8572],"mapped","l"],[[8573,8573],"mapped","c"],[[8574,8574],"mapped","d"],[[8575,8575],"mapped","m"],[[8576,8578],"valid","","NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid","","NV8"],[[8585,8585],"mapped","0⁄3"],[[8586,8587],"valid","","NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid","","NV8"],[[8683,8691],"valid","","NV8"],[[8692,8703],"valid","","NV8"],[[8704,8747],"valid","","NV8"],[[8748,8748],"mapped","∫∫"],[[8749,8749],"mapped","∫∫∫"],[[8750,8750],"valid","","NV8"],[[8751,8751],"mapped","∮∮"],[[8752,8752],"mapped","∮∮∮"],[[8753,8799],"valid","","NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid","","NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid","","NV8"],[[8946,8959],"valid","","NV8"],[[8960,8960],"valid","","NV8"],[[8961,8961],"valid","","NV8"],[[8962,9e3],"valid","","NV8"],[[9001,9001],"mapped","〈"],[[9002,9002],"mapped","〉"],[[9003,9082],"valid","","NV8"],[[9083,9083],"valid","","NV8"],[[9084,9084],"valid","","NV8"],[[9085,9114],"valid","","NV8"],[[9115,9166],"valid","","NV8"],[[9167,9168],"valid","","NV8"],[[9169,9179],"valid","","NV8"],[[9180,9191],"valid","","NV8"],[[9192,9192],"valid","","NV8"],[[9193,9203],"valid","","NV8"],[[9204,9210],"valid","","NV8"],[[9211,9214],"valid","","NV8"],[[9215,9215],"valid","","NV8"],[[9216,9252],"valid","","NV8"],[[9253,9254],"valid","","NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid","","NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped","1"],[[9313,9313],"mapped","2"],[[9314,9314],"mapped","3"],[[9315,9315],"mapped","4"],[[9316,9316],"mapped","5"],[[9317,9317],"mapped","6"],[[9318,9318],"mapped","7"],[[9319,9319],"mapped","8"],[[9320,9320],"mapped","9"],[[9321,9321],"mapped","10"],[[9322,9322],"mapped","11"],[[9323,9323],"mapped","12"],[[9324,9324],"mapped","13"],[[9325,9325],"mapped","14"],[[9326,9326],"mapped","15"],[[9327,9327],"mapped","16"],[[9328,9328],"mapped","17"],[[9329,9329],"mapped","18"],[[9330,9330],"mapped","19"],[[9331,9331],"mapped","20"],[[9332,9332],"disallowed_STD3_mapped","(1)"],[[9333,9333],"disallowed_STD3_mapped","(2)"],[[9334,9334],"disallowed_STD3_mapped","(3)"],[[9335,9335],"disallowed_STD3_mapped","(4)"],[[9336,9336],"disallowed_STD3_mapped","(5)"],[[9337,9337],"disallowed_STD3_mapped","(6)"],[[9338,9338],"disallowed_STD3_mapped","(7)"],[[9339,9339],"disallowed_STD3_mapped","(8)"],[[9340,9340],"disallowed_STD3_mapped","(9)"],[[9341,9341],"disallowed_STD3_mapped","(10)"],[[9342,9342],"disallowed_STD3_mapped","(11)"],[[9343,9343],"disallowed_STD3_mapped","(12)"],[[9344,9344],"disallowed_STD3_mapped","(13)"],[[9345,9345],"disallowed_STD3_mapped","(14)"],[[9346,9346],"disallowed_STD3_mapped","(15)"],[[9347,9347],"disallowed_STD3_mapped","(16)"],[[9348,9348],"disallowed_STD3_mapped","(17)"],[[9349,9349],"disallowed_STD3_mapped","(18)"],[[9350,9350],"disallowed_STD3_mapped","(19)"],[[9351,9351],"disallowed_STD3_mapped","(20)"],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped","(a)"],[[9373,9373],"disallowed_STD3_mapped","(b)"],[[9374,9374],"disallowed_STD3_mapped","(c)"],[[9375,9375],"disallowed_STD3_mapped","(d)"],[[9376,9376],"disallowed_STD3_mapped","(e)"],[[9377,9377],"disallowed_STD3_mapped","(f)"],[[9378,9378],"disallowed_STD3_mapped","(g)"],[[9379,9379],"disallowed_STD3_mapped","(h)"],[[9380,9380],"disallowed_STD3_mapped","(i)"],[[9381,9381],"disallowed_STD3_mapped","(j)"],[[9382,9382],"disallowed_STD3_mapped","(k)"],[[9383,9383],"disallowed_STD3_mapped","(l)"],[[9384,9384],"disallowed_STD3_mapped","(m)"],[[9385,9385],"disallowed_STD3_mapped","(n)"],[[9386,9386],"disallowed_STD3_mapped","(o)"],[[9387,9387],"disallowed_STD3_mapped","(p)"],[[9388,9388],"disallowed_STD3_mapped","(q)"],[[9389,9389],"disallowed_STD3_mapped","(r)"],[[9390,9390],"disallowed_STD3_mapped","(s)"],[[9391,9391],"disallowed_STD3_mapped","(t)"],[[9392,9392],"disallowed_STD3_mapped","(u)"],[[9393,9393],"disallowed_STD3_mapped","(v)"],[[9394,9394],"disallowed_STD3_mapped","(w)"],[[9395,9395],"disallowed_STD3_mapped","(x)"],[[9396,9396],"disallowed_STD3_mapped","(y)"],[[9397,9397],"disallowed_STD3_mapped","(z)"],[[9398,9398],"mapped","a"],[[9399,9399],"mapped","b"],[[9400,9400],"mapped","c"],[[9401,9401],"mapped","d"],[[9402,9402],"mapped","e"],[[9403,9403],"mapped","f"],[[9404,9404],"mapped","g"],[[9405,9405],"mapped","h"],[[9406,9406],"mapped","i"],[[9407,9407],"mapped","j"],[[9408,9408],"mapped","k"],[[9409,9409],"mapped","l"],[[9410,9410],"mapped","m"],[[9411,9411],"mapped","n"],[[9412,9412],"mapped","o"],[[9413,9413],"mapped","p"],[[9414,9414],"mapped","q"],[[9415,9415],"mapped","r"],[[9416,9416],"mapped","s"],[[9417,9417],"mapped","t"],[[9418,9418],"mapped","u"],[[9419,9419],"mapped","v"],[[9420,9420],"mapped","w"],[[9421,9421],"mapped","x"],[[9422,9422],"mapped","y"],[[9423,9423],"mapped","z"],[[9424,9424],"mapped","a"],[[9425,9425],"mapped","b"],[[9426,9426],"mapped","c"],[[9427,9427],"mapped","d"],[[9428,9428],"mapped","e"],[[9429,9429],"mapped","f"],[[9430,9430],"mapped","g"],[[9431,9431],"mapped","h"],[[9432,9432],"mapped","i"],[[9433,9433],"mapped","j"],[[9434,9434],"mapped","k"],[[9435,9435],"mapped","l"],[[9436,9436],"mapped","m"],[[9437,9437],"mapped","n"],[[9438,9438],"mapped","o"],[[9439,9439],"mapped","p"],[[9440,9440],"mapped","q"],[[9441,9441],"mapped","r"],[[9442,9442],"mapped","s"],[[9443,9443],"mapped","t"],[[9444,9444],"mapped","u"],[[9445,9445],"mapped","v"],[[9446,9446],"mapped","w"],[[9447,9447],"mapped","x"],[[9448,9448],"mapped","y"],[[9449,9449],"mapped","z"],[[9450,9450],"mapped","0"],[[9451,9470],"valid","","NV8"],[[9471,9471],"valid","","NV8"],[[9472,9621],"valid","","NV8"],[[9622,9631],"valid","","NV8"],[[9632,9711],"valid","","NV8"],[[9712,9719],"valid","","NV8"],[[9720,9727],"valid","","NV8"],[[9728,9747],"valid","","NV8"],[[9748,9749],"valid","","NV8"],[[9750,9751],"valid","","NV8"],[[9752,9752],"valid","","NV8"],[[9753,9753],"valid","","NV8"],[[9754,9839],"valid","","NV8"],[[9840,9841],"valid","","NV8"],[[9842,9853],"valid","","NV8"],[[9854,9855],"valid","","NV8"],[[9856,9865],"valid","","NV8"],[[9866,9873],"valid","","NV8"],[[9874,9884],"valid","","NV8"],[[9885,9885],"valid","","NV8"],[[9886,9887],"valid","","NV8"],[[9888,9889],"valid","","NV8"],[[9890,9905],"valid","","NV8"],[[9906,9906],"valid","","NV8"],[[9907,9916],"valid","","NV8"],[[9917,9919],"valid","","NV8"],[[9920,9923],"valid","","NV8"],[[9924,9933],"valid","","NV8"],[[9934,9934],"valid","","NV8"],[[9935,9953],"valid","","NV8"],[[9954,9954],"valid","","NV8"],[[9955,9955],"valid","","NV8"],[[9956,9959],"valid","","NV8"],[[9960,9983],"valid","","NV8"],[[9984,9984],"valid","","NV8"],[[9985,9988],"valid","","NV8"],[[9989,9989],"valid","","NV8"],[[9990,9993],"valid","","NV8"],[[9994,9995],"valid","","NV8"],[[9996,10023],"valid","","NV8"],[[10024,10024],"valid","","NV8"],[[10025,10059],"valid","","NV8"],[[10060,10060],"valid","","NV8"],[[10061,10061],"valid","","NV8"],[[10062,10062],"valid","","NV8"],[[10063,10066],"valid","","NV8"],[[10067,10069],"valid","","NV8"],[[10070,10070],"valid","","NV8"],[[10071,10071],"valid","","NV8"],[[10072,10078],"valid","","NV8"],[[10079,10080],"valid","","NV8"],[[10081,10087],"valid","","NV8"],[[10088,10101],"valid","","NV8"],[[10102,10132],"valid","","NV8"],[[10133,10135],"valid","","NV8"],[[10136,10159],"valid","","NV8"],[[10160,10160],"valid","","NV8"],[[10161,10174],"valid","","NV8"],[[10175,10175],"valid","","NV8"],[[10176,10182],"valid","","NV8"],[[10183,10186],"valid","","NV8"],[[10187,10187],"valid","","NV8"],[[10188,10188],"valid","","NV8"],[[10189,10189],"valid","","NV8"],[[10190,10191],"valid","","NV8"],[[10192,10219],"valid","","NV8"],[[10220,10223],"valid","","NV8"],[[10224,10239],"valid","","NV8"],[[10240,10495],"valid","","NV8"],[[10496,10763],"valid","","NV8"],[[10764,10764],"mapped","∫∫∫∫"],[[10765,10867],"valid","","NV8"],[[10868,10868],"disallowed_STD3_mapped","::="],[[10869,10869],"disallowed_STD3_mapped","=="],[[10870,10870],"disallowed_STD3_mapped","==="],[[10871,10971],"valid","","NV8"],[[10972,10972],"mapped","⫝̸"],[[10973,11007],"valid","","NV8"],[[11008,11021],"valid","","NV8"],[[11022,11027],"valid","","NV8"],[[11028,11034],"valid","","NV8"],[[11035,11039],"valid","","NV8"],[[11040,11043],"valid","","NV8"],[[11044,11084],"valid","","NV8"],[[11085,11087],"valid","","NV8"],[[11088,11092],"valid","","NV8"],[[11093,11097],"valid","","NV8"],[[11098,11123],"valid","","NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid","","NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid","","NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid","","NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid","","NV8"],[[11218,11218],"valid","","NV8"],[[11219,11243],"disallowed"],[[11244,11247],"valid","","NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped","ⰰ"],[[11265,11265],"mapped","ⰱ"],[[11266,11266],"mapped","ⰲ"],[[11267,11267],"mapped","ⰳ"],[[11268,11268],"mapped","ⰴ"],[[11269,11269],"mapped","ⰵ"],[[11270,11270],"mapped","ⰶ"],[[11271,11271],"mapped","ⰷ"],[[11272,11272],"mapped","ⰸ"],[[11273,11273],"mapped","ⰹ"],[[11274,11274],"mapped","ⰺ"],[[11275,11275],"mapped","ⰻ"],[[11276,11276],"mapped","ⰼ"],[[11277,11277],"mapped","ⰽ"],[[11278,11278],"mapped","ⰾ"],[[11279,11279],"mapped","ⰿ"],[[11280,11280],"mapped","ⱀ"],[[11281,11281],"mapped","ⱁ"],[[11282,11282],"mapped","ⱂ"],[[11283,11283],"mapped","ⱃ"],[[11284,11284],"mapped","ⱄ"],[[11285,11285],"mapped","ⱅ"],[[11286,11286],"mapped","ⱆ"],[[11287,11287],"mapped","ⱇ"],[[11288,11288],"mapped","ⱈ"],[[11289,11289],"mapped","ⱉ"],[[11290,11290],"mapped","ⱊ"],[[11291,11291],"mapped","ⱋ"],[[11292,11292],"mapped","ⱌ"],[[11293,11293],"mapped","ⱍ"],[[11294,11294],"mapped","ⱎ"],[[11295,11295],"mapped","ⱏ"],[[11296,11296],"mapped","ⱐ"],[[11297,11297],"mapped","ⱑ"],[[11298,11298],"mapped","ⱒ"],[[11299,11299],"mapped","ⱓ"],[[11300,11300],"mapped","ⱔ"],[[11301,11301],"mapped","ⱕ"],[[11302,11302],"mapped","ⱖ"],[[11303,11303],"mapped","ⱗ"],[[11304,11304],"mapped","ⱘ"],[[11305,11305],"mapped","ⱙ"],[[11306,11306],"mapped","ⱚ"],[[11307,11307],"mapped","ⱛ"],[[11308,11308],"mapped","ⱜ"],[[11309,11309],"mapped","ⱝ"],[[11310,11310],"mapped","ⱞ"],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped","ⱡ"],[[11361,11361],"valid"],[[11362,11362],"mapped","ɫ"],[[11363,11363],"mapped","ᵽ"],[[11364,11364],"mapped","ɽ"],[[11365,11366],"valid"],[[11367,11367],"mapped","ⱨ"],[[11368,11368],"valid"],[[11369,11369],"mapped","ⱪ"],[[11370,11370],"valid"],[[11371,11371],"mapped","ⱬ"],[[11372,11372],"valid"],[[11373,11373],"mapped","ɑ"],[[11374,11374],"mapped","ɱ"],[[11375,11375],"mapped","ɐ"],[[11376,11376],"mapped","ɒ"],[[11377,11377],"valid"],[[11378,11378],"mapped","ⱳ"],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped","ⱶ"],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped","j"],[[11389,11389],"mapped","v"],[[11390,11390],"mapped","ȿ"],[[11391,11391],"mapped","ɀ"],[[11392,11392],"mapped","ⲁ"],[[11393,11393],"valid"],[[11394,11394],"mapped","ⲃ"],[[11395,11395],"valid"],[[11396,11396],"mapped","ⲅ"],[[11397,11397],"valid"],[[11398,11398],"mapped","ⲇ"],[[11399,11399],"valid"],[[11400,11400],"mapped","ⲉ"],[[11401,11401],"valid"],[[11402,11402],"mapped","ⲋ"],[[11403,11403],"valid"],[[11404,11404],"mapped","ⲍ"],[[11405,11405],"valid"],[[11406,11406],"mapped","ⲏ"],[[11407,11407],"valid"],[[11408,11408],"mapped","ⲑ"],[[11409,11409],"valid"],[[11410,11410],"mapped","ⲓ"],[[11411,11411],"valid"],[[11412,11412],"mapped","ⲕ"],[[11413,11413],"valid"],[[11414,11414],"mapped","ⲗ"],[[11415,11415],"valid"],[[11416,11416],"mapped","ⲙ"],[[11417,11417],"valid"],[[11418,11418],"mapped","ⲛ"],[[11419,11419],"valid"],[[11420,11420],"mapped","ⲝ"],[[11421,11421],"valid"],[[11422,11422],"mapped","ⲟ"],[[11423,11423],"valid"],[[11424,11424],"mapped","ⲡ"],[[11425,11425],"valid"],[[11426,11426],"mapped","ⲣ"],[[11427,11427],"valid"],[[11428,11428],"mapped","ⲥ"],[[11429,11429],"valid"],[[11430,11430],"mapped","ⲧ"],[[11431,11431],"valid"],[[11432,11432],"mapped","ⲩ"],[[11433,11433],"valid"],[[11434,11434],"mapped","ⲫ"],[[11435,11435],"valid"],[[11436,11436],"mapped","ⲭ"],[[11437,11437],"valid"],[[11438,11438],"mapped","ⲯ"],[[11439,11439],"valid"],[[11440,11440],"mapped","ⲱ"],[[11441,11441],"valid"],[[11442,11442],"mapped","ⲳ"],[[11443,11443],"valid"],[[11444,11444],"mapped","ⲵ"],[[11445,11445],"valid"],[[11446,11446],"mapped","ⲷ"],[[11447,11447],"valid"],[[11448,11448],"mapped","ⲹ"],[[11449,11449],"valid"],[[11450,11450],"mapped","ⲻ"],[[11451,11451],"valid"],[[11452,11452],"mapped","ⲽ"],[[11453,11453],"valid"],[[11454,11454],"mapped","ⲿ"],[[11455,11455],"valid"],[[11456,11456],"mapped","ⳁ"],[[11457,11457],"valid"],[[11458,11458],"mapped","ⳃ"],[[11459,11459],"valid"],[[11460,11460],"mapped","ⳅ"],[[11461,11461],"valid"],[[11462,11462],"mapped","ⳇ"],[[11463,11463],"valid"],[[11464,11464],"mapped","ⳉ"],[[11465,11465],"valid"],[[11466,11466],"mapped","ⳋ"],[[11467,11467],"valid"],[[11468,11468],"mapped","ⳍ"],[[11469,11469],"valid"],[[11470,11470],"mapped","ⳏ"],[[11471,11471],"valid"],[[11472,11472],"mapped","ⳑ"],[[11473,11473],"valid"],[[11474,11474],"mapped","ⳓ"],[[11475,11475],"valid"],[[11476,11476],"mapped","ⳕ"],[[11477,11477],"valid"],[[11478,11478],"mapped","ⳗ"],[[11479,11479],"valid"],[[11480,11480],"mapped","ⳙ"],[[11481,11481],"valid"],[[11482,11482],"mapped","ⳛ"],[[11483,11483],"valid"],[[11484,11484],"mapped","ⳝ"],[[11485,11485],"valid"],[[11486,11486],"mapped","ⳟ"],[[11487,11487],"valid"],[[11488,11488],"mapped","ⳡ"],[[11489,11489],"valid"],[[11490,11490],"mapped","ⳣ"],[[11491,11492],"valid"],[[11493,11498],"valid","","NV8"],[[11499,11499],"mapped","ⳬ"],[[11500,11500],"valid"],[[11501,11501],"mapped","ⳮ"],[[11502,11505],"valid"],[[11506,11506],"mapped","ⳳ"],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid","","NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped","ⵡ"],[[11632,11632],"valid","","NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid","","NV8"],[[11800,11803],"valid","","NV8"],[[11804,11805],"valid","","NV8"],[[11806,11822],"valid","","NV8"],[[11823,11823],"valid"],[[11824,11824],"valid","","NV8"],[[11825,11825],"valid","","NV8"],[[11826,11835],"valid","","NV8"],[[11836,11842],"valid","","NV8"],[[11843,11844],"valid","","NV8"],[[11845,11849],"valid","","NV8"],[[11850,11903],"disallowed"],[[11904,11929],"valid","","NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid","","NV8"],[[11935,11935],"mapped","母"],[[11936,12018],"valid","","NV8"],[[12019,12019],"mapped","龟"],[[12020,12031],"disallowed"],[[12032,12032],"mapped","一"],[[12033,12033],"mapped","丨"],[[12034,12034],"mapped","丶"],[[12035,12035],"mapped","丿"],[[12036,12036],"mapped","乙"],[[12037,12037],"mapped","亅"],[[12038,12038],"mapped","二"],[[12039,12039],"mapped","亠"],[[12040,12040],"mapped","人"],[[12041,12041],"mapped","儿"],[[12042,12042],"mapped","入"],[[12043,12043],"mapped","八"],[[12044,12044],"mapped","冂"],[[12045,12045],"mapped","冖"],[[12046,12046],"mapped","冫"],[[12047,12047],"mapped","几"],[[12048,12048],"mapped","凵"],[[12049,12049],"mapped","刀"],[[12050,12050],"mapped","力"],[[12051,12051],"mapped","勹"],[[12052,12052],"mapped","匕"],[[12053,12053],"mapped","匚"],[[12054,12054],"mapped","匸"],[[12055,12055],"mapped","十"],[[12056,12056],"mapped","卜"],[[12057,12057],"mapped","卩"],[[12058,12058],"mapped","厂"],[[12059,12059],"mapped","厶"],[[12060,12060],"mapped","又"],[[12061,12061],"mapped","口"],[[12062,12062],"mapped","囗"],[[12063,12063],"mapped","土"],[[12064,12064],"mapped","士"],[[12065,12065],"mapped","夂"],[[12066,12066],"mapped","夊"],[[12067,12067],"mapped","夕"],[[12068,12068],"mapped","大"],[[12069,12069],"mapped","女"],[[12070,12070],"mapped","子"],[[12071,12071],"mapped","宀"],[[12072,12072],"mapped","寸"],[[12073,12073],"mapped","小"],[[12074,12074],"mapped","尢"],[[12075,12075],"mapped","尸"],[[12076,12076],"mapped","屮"],[[12077,12077],"mapped","山"],[[12078,12078],"mapped","巛"],[[12079,12079],"mapped","工"],[[12080,12080],"mapped","己"],[[12081,12081],"mapped","巾"],[[12082,12082],"mapped","干"],[[12083,12083],"mapped","幺"],[[12084,12084],"mapped","广"],[[12085,12085],"mapped","廴"],[[12086,12086],"mapped","廾"],[[12087,12087],"mapped","弋"],[[12088,12088],"mapped","弓"],[[12089,12089],"mapped","彐"],[[12090,12090],"mapped","彡"],[[12091,12091],"mapped","彳"],[[12092,12092],"mapped","心"],[[12093,12093],"mapped","戈"],[[12094,12094],"mapped","戶"],[[12095,12095],"mapped","手"],[[12096,12096],"mapped","支"],[[12097,12097],"mapped","攴"],[[12098,12098],"mapped","文"],[[12099,12099],"mapped","斗"],[[12100,12100],"mapped","斤"],[[12101,12101],"mapped","方"],[[12102,12102],"mapped","无"],[[12103,12103],"mapped","日"],[[12104,12104],"mapped","曰"],[[12105,12105],"mapped","月"],[[12106,12106],"mapped","木"],[[12107,12107],"mapped","欠"],[[12108,12108],"mapped","止"],[[12109,12109],"mapped","歹"],[[12110,12110],"mapped","殳"],[[12111,12111],"mapped","毋"],[[12112,12112],"mapped","比"],[[12113,12113],"mapped","毛"],[[12114,12114],"mapped","氏"],[[12115,12115],"mapped","气"],[[12116,12116],"mapped","水"],[[12117,12117],"mapped","火"],[[12118,12118],"mapped","爪"],[[12119,12119],"mapped","父"],[[12120,12120],"mapped","爻"],[[12121,12121],"mapped","爿"],[[12122,12122],"mapped","片"],[[12123,12123],"mapped","牙"],[[12124,12124],"mapped","牛"],[[12125,12125],"mapped","犬"],[[12126,12126],"mapped","玄"],[[12127,12127],"mapped","玉"],[[12128,12128],"mapped","瓜"],[[12129,12129],"mapped","瓦"],[[12130,12130],"mapped","甘"],[[12131,12131],"mapped","生"],[[12132,12132],"mapped","用"],[[12133,12133],"mapped","田"],[[12134,12134],"mapped","疋"],[[12135,12135],"mapped","疒"],[[12136,12136],"mapped","癶"],[[12137,12137],"mapped","白"],[[12138,12138],"mapped","皮"],[[12139,12139],"mapped","皿"],[[12140,12140],"mapped","目"],[[12141,12141],"mapped","矛"],[[12142,12142],"mapped","矢"],[[12143,12143],"mapped","石"],[[12144,12144],"mapped","示"],[[12145,12145],"mapped","禸"],[[12146,12146],"mapped","禾"],[[12147,12147],"mapped","穴"],[[12148,12148],"mapped","立"],[[12149,12149],"mapped","竹"],[[12150,12150],"mapped","米"],[[12151,12151],"mapped","糸"],[[12152,12152],"mapped","缶"],[[12153,12153],"mapped","网"],[[12154,12154],"mapped","羊"],[[12155,12155],"mapped","羽"],[[12156,12156],"mapped","老"],[[12157,12157],"mapped","而"],[[12158,12158],"mapped","耒"],[[12159,12159],"mapped","耳"],[[12160,12160],"mapped","聿"],[[12161,12161],"mapped","肉"],[[12162,12162],"mapped","臣"],[[12163,12163],"mapped","自"],[[12164,12164],"mapped","至"],[[12165,12165],"mapped","臼"],[[12166,12166],"mapped","舌"],[[12167,12167],"mapped","舛"],[[12168,12168],"mapped","舟"],[[12169,12169],"mapped","艮"],[[12170,12170],"mapped","色"],[[12171,12171],"mapped","艸"],[[12172,12172],"mapped","虍"],[[12173,12173],"mapped","虫"],[[12174,12174],"mapped","血"],[[12175,12175],"mapped","行"],[[12176,12176],"mapped","衣"],[[12177,12177],"mapped","襾"],[[12178,12178],"mapped","見"],[[12179,12179],"mapped","角"],[[12180,12180],"mapped","言"],[[12181,12181],"mapped","谷"],[[12182,12182],"mapped","豆"],[[12183,12183],"mapped","豕"],[[12184,12184],"mapped","豸"],[[12185,12185],"mapped","貝"],[[12186,12186],"mapped","赤"],[[12187,12187],"mapped","走"],[[12188,12188],"mapped","足"],[[12189,12189],"mapped","身"],[[12190,12190],"mapped","車"],[[12191,12191],"mapped","辛"],[[12192,12192],"mapped","辰"],[[12193,12193],"mapped","辵"],[[12194,12194],"mapped","邑"],[[12195,12195],"mapped","酉"],[[12196,12196],"mapped","釆"],[[12197,12197],"mapped","里"],[[12198,12198],"mapped","金"],[[12199,12199],"mapped","長"],[[12200,12200],"mapped","門"],[[12201,12201],"mapped","阜"],[[12202,12202],"mapped","隶"],[[12203,12203],"mapped","隹"],[[12204,12204],"mapped","雨"],[[12205,12205],"mapped","靑"],[[12206,12206],"mapped","非"],[[12207,12207],"mapped","面"],[[12208,12208],"mapped","革"],[[12209,12209],"mapped","韋"],[[12210,12210],"mapped","韭"],[[12211,12211],"mapped","音"],[[12212,12212],"mapped","頁"],[[12213,12213],"mapped","風"],[[12214,12214],"mapped","飛"],[[12215,12215],"mapped","食"],[[12216,12216],"mapped","首"],[[12217,12217],"mapped","香"],[[12218,12218],"mapped","馬"],[[12219,12219],"mapped","骨"],[[12220,12220],"mapped","高"],[[12221,12221],"mapped","髟"],[[12222,12222],"mapped","鬥"],[[12223,12223],"mapped","鬯"],[[12224,12224],"mapped","鬲"],[[12225,12225],"mapped","鬼"],[[12226,12226],"mapped","魚"],[[12227,12227],"mapped","鳥"],[[12228,12228],"mapped","鹵"],[[12229,12229],"mapped","鹿"],[[12230,12230],"mapped","麥"],[[12231,12231],"mapped","麻"],[[12232,12232],"mapped","黃"],[[12233,12233],"mapped","黍"],[[12234,12234],"mapped","黑"],[[12235,12235],"mapped","黹"],[[12236,12236],"mapped","黽"],[[12237,12237],"mapped","鼎"],[[12238,12238],"mapped","鼓"],[[12239,12239],"mapped","鼠"],[[12240,12240],"mapped","鼻"],[[12241,12241],"mapped","齊"],[[12242,12242],"mapped","齒"],[[12243,12243],"mapped","龍"],[[12244,12244],"mapped","龜"],[[12245,12245],"mapped","龠"],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped"," "],[[12289,12289],"valid","","NV8"],[[12290,12290],"mapped","."],[[12291,12292],"valid","","NV8"],[[12293,12295],"valid"],[[12296,12329],"valid","","NV8"],[[12330,12333],"valid"],[[12334,12341],"valid","","NV8"],[[12342,12342],"mapped","〒"],[[12343,12343],"valid","","NV8"],[[12344,12344],"mapped","十"],[[12345,12345],"mapped","卄"],[[12346,12346],"mapped","卅"],[[12347,12347],"valid","","NV8"],[[12348,12348],"valid"],[[12349,12349],"valid","","NV8"],[[12350,12350],"valid","","NV8"],[[12351,12351],"valid","","NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped"," ゙"],[[12444,12444],"disallowed_STD3_mapped"," ゚"],[[12445,12446],"valid"],[[12447,12447],"mapped","より"],[[12448,12448],"valid","","NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped","コト"],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12590],"valid"],[[12591,12592],"disallowed"],[[12593,12593],"mapped","ᄀ"],[[12594,12594],"mapped","ᄁ"],[[12595,12595],"mapped","ᆪ"],[[12596,12596],"mapped","ᄂ"],[[12597,12597],"mapped","ᆬ"],[[12598,12598],"mapped","ᆭ"],[[12599,12599],"mapped","ᄃ"],[[12600,12600],"mapped","ᄄ"],[[12601,12601],"mapped","ᄅ"],[[12602,12602],"mapped","ᆰ"],[[12603,12603],"mapped","ᆱ"],[[12604,12604],"mapped","ᆲ"],[[12605,12605],"mapped","ᆳ"],[[12606,12606],"mapped","ᆴ"],[[12607,12607],"mapped","ᆵ"],[[12608,12608],"mapped","ᄚ"],[[12609,12609],"mapped","ᄆ"],[[12610,12610],"mapped","ᄇ"],[[12611,12611],"mapped","ᄈ"],[[12612,12612],"mapped","ᄡ"],[[12613,12613],"mapped","ᄉ"],[[12614,12614],"mapped","ᄊ"],[[12615,12615],"mapped","ᄋ"],[[12616,12616],"mapped","ᄌ"],[[12617,12617],"mapped","ᄍ"],[[12618,12618],"mapped","ᄎ"],[[12619,12619],"mapped","ᄏ"],[[12620,12620],"mapped","ᄐ"],[[12621,12621],"mapped","ᄑ"],[[12622,12622],"mapped","ᄒ"],[[12623,12623],"mapped","ᅡ"],[[12624,12624],"mapped","ᅢ"],[[12625,12625],"mapped","ᅣ"],[[12626,12626],"mapped","ᅤ"],[[12627,12627],"mapped","ᅥ"],[[12628,12628],"mapped","ᅦ"],[[12629,12629],"mapped","ᅧ"],[[12630,12630],"mapped","ᅨ"],[[12631,12631],"mapped","ᅩ"],[[12632,12632],"mapped","ᅪ"],[[12633,12633],"mapped","ᅫ"],[[12634,12634],"mapped","ᅬ"],[[12635,12635],"mapped","ᅭ"],[[12636,12636],"mapped","ᅮ"],[[12637,12637],"mapped","ᅯ"],[[12638,12638],"mapped","ᅰ"],[[12639,12639],"mapped","ᅱ"],[[12640,12640],"mapped","ᅲ"],[[12641,12641],"mapped","ᅳ"],[[12642,12642],"mapped","ᅴ"],[[12643,12643],"mapped","ᅵ"],[[12644,12644],"disallowed"],[[12645,12645],"mapped","ᄔ"],[[12646,12646],"mapped","ᄕ"],[[12647,12647],"mapped","ᇇ"],[[12648,12648],"mapped","ᇈ"],[[12649,12649],"mapped","ᇌ"],[[12650,12650],"mapped","ᇎ"],[[12651,12651],"mapped","ᇓ"],[[12652,12652],"mapped","ᇗ"],[[12653,12653],"mapped","ᇙ"],[[12654,12654],"mapped","ᄜ"],[[12655,12655],"mapped","ᇝ"],[[12656,12656],"mapped","ᇟ"],[[12657,12657],"mapped","ᄝ"],[[12658,12658],"mapped","ᄞ"],[[12659,12659],"mapped","ᄠ"],[[12660,12660],"mapped","ᄢ"],[[12661,12661],"mapped","ᄣ"],[[12662,12662],"mapped","ᄧ"],[[12663,12663],"mapped","ᄩ"],[[12664,12664],"mapped","ᄫ"],[[12665,12665],"mapped","ᄬ"],[[12666,12666],"mapped","ᄭ"],[[12667,12667],"mapped","ᄮ"],[[12668,12668],"mapped","ᄯ"],[[12669,12669],"mapped","ᄲ"],[[12670,12670],"mapped","ᄶ"],[[12671,12671],"mapped","ᅀ"],[[12672,12672],"mapped","ᅇ"],[[12673,12673],"mapped","ᅌ"],[[12674,12674],"mapped","ᇱ"],[[12675,12675],"mapped","ᇲ"],[[12676,12676],"mapped","ᅗ"],[[12677,12677],"mapped","ᅘ"],[[12678,12678],"mapped","ᅙ"],[[12679,12679],"mapped","ᆄ"],[[12680,12680],"mapped","ᆅ"],[[12681,12681],"mapped","ᆈ"],[[12682,12682],"mapped","ᆑ"],[[12683,12683],"mapped","ᆒ"],[[12684,12684],"mapped","ᆔ"],[[12685,12685],"mapped","ᆞ"],[[12686,12686],"mapped","ᆡ"],[[12687,12687],"disallowed"],[[12688,12689],"valid","","NV8"],[[12690,12690],"mapped","一"],[[12691,12691],"mapped","二"],[[12692,12692],"mapped","三"],[[12693,12693],"mapped","四"],[[12694,12694],"mapped","上"],[[12695,12695],"mapped","中"],[[12696,12696],"mapped","下"],[[12697,12697],"mapped","甲"],[[12698,12698],"mapped","乙"],[[12699,12699],"mapped","丙"],[[12700,12700],"mapped","丁"],[[12701,12701],"mapped","天"],[[12702,12702],"mapped","地"],[[12703,12703],"mapped","人"],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid","","NV8"],[[12752,12771],"valid","","NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped","(ᄀ)"],[[12801,12801],"disallowed_STD3_mapped","(ᄂ)"],[[12802,12802],"disallowed_STD3_mapped","(ᄃ)"],[[12803,12803],"disallowed_STD3_mapped","(ᄅ)"],[[12804,12804],"disallowed_STD3_mapped","(ᄆ)"],[[12805,12805],"disallowed_STD3_mapped","(ᄇ)"],[[12806,12806],"disallowed_STD3_mapped","(ᄉ)"],[[12807,12807],"disallowed_STD3_mapped","(ᄋ)"],[[12808,12808],"disallowed_STD3_mapped","(ᄌ)"],[[12809,12809],"disallowed_STD3_mapped","(ᄎ)"],[[12810,12810],"disallowed_STD3_mapped","(ᄏ)"],[[12811,12811],"disallowed_STD3_mapped","(ᄐ)"],[[12812,12812],"disallowed_STD3_mapped","(ᄑ)"],[[12813,12813],"disallowed_STD3_mapped","(ᄒ)"],[[12814,12814],"disallowed_STD3_mapped","(가)"],[[12815,12815],"disallowed_STD3_mapped","(나)"],[[12816,12816],"disallowed_STD3_mapped","(다)"],[[12817,12817],"disallowed_STD3_mapped","(라)"],[[12818,12818],"disallowed_STD3_mapped","(마)"],[[12819,12819],"disallowed_STD3_mapped","(바)"],[[12820,12820],"disallowed_STD3_mapped","(사)"],[[12821,12821],"disallowed_STD3_mapped","(아)"],[[12822,12822],"disallowed_STD3_mapped","(자)"],[[12823,12823],"disallowed_STD3_mapped","(차)"],[[12824,12824],"disallowed_STD3_mapped","(카)"],[[12825,12825],"disallowed_STD3_mapped","(타)"],[[12826,12826],"disallowed_STD3_mapped","(파)"],[[12827,12827],"disallowed_STD3_mapped","(하)"],[[12828,12828],"disallowed_STD3_mapped","(주)"],[[12829,12829],"disallowed_STD3_mapped","(오전)"],[[12830,12830],"disallowed_STD3_mapped","(오후)"],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped","(一)"],[[12833,12833],"disallowed_STD3_mapped","(二)"],[[12834,12834],"disallowed_STD3_mapped","(三)"],[[12835,12835],"disallowed_STD3_mapped","(四)"],[[12836,12836],"disallowed_STD3_mapped","(五)"],[[12837,12837],"disallowed_STD3_mapped","(六)"],[[12838,12838],"disallowed_STD3_mapped","(七)"],[[12839,12839],"disallowed_STD3_mapped","(八)"],[[12840,12840],"disallowed_STD3_mapped","(九)"],[[12841,12841],"disallowed_STD3_mapped","(十)"],[[12842,12842],"disallowed_STD3_mapped","(月)"],[[12843,12843],"disallowed_STD3_mapped","(火)"],[[12844,12844],"disallowed_STD3_mapped","(水)"],[[12845,12845],"disallowed_STD3_mapped","(木)"],[[12846,12846],"disallowed_STD3_mapped","(金)"],[[12847,12847],"disallowed_STD3_mapped","(土)"],[[12848,12848],"disallowed_STD3_mapped","(日)"],[[12849,12849],"disallowed_STD3_mapped","(株)"],[[12850,12850],"disallowed_STD3_mapped","(有)"],[[12851,12851],"disallowed_STD3_mapped","(社)"],[[12852,12852],"disallowed_STD3_mapped","(名)"],[[12853,12853],"disallowed_STD3_mapped","(特)"],[[12854,12854],"disallowed_STD3_mapped","(財)"],[[12855,12855],"disallowed_STD3_mapped","(祝)"],[[12856,12856],"disallowed_STD3_mapped","(労)"],[[12857,12857],"disallowed_STD3_mapped","(代)"],[[12858,12858],"disallowed_STD3_mapped","(呼)"],[[12859,12859],"disallowed_STD3_mapped","(学)"],[[12860,12860],"disallowed_STD3_mapped","(監)"],[[12861,12861],"disallowed_STD3_mapped","(企)"],[[12862,12862],"disallowed_STD3_mapped","(資)"],[[12863,12863],"disallowed_STD3_mapped","(協)"],[[12864,12864],"disallowed_STD3_mapped","(祭)"],[[12865,12865],"disallowed_STD3_mapped","(休)"],[[12866,12866],"disallowed_STD3_mapped","(自)"],[[12867,12867],"disallowed_STD3_mapped","(至)"],[[12868,12868],"mapped","問"],[[12869,12869],"mapped","幼"],[[12870,12870],"mapped","文"],[[12871,12871],"mapped","箏"],[[12872,12879],"valid","","NV8"],[[12880,12880],"mapped","pte"],[[12881,12881],"mapped","21"],[[12882,12882],"mapped","22"],[[12883,12883],"mapped","23"],[[12884,12884],"mapped","24"],[[12885,12885],"mapped","25"],[[12886,12886],"mapped","26"],[[12887,12887],"mapped","27"],[[12888,12888],"mapped","28"],[[12889,12889],"mapped","29"],[[12890,12890],"mapped","30"],[[12891,12891],"mapped","31"],[[12892,12892],"mapped","32"],[[12893,12893],"mapped","33"],[[12894,12894],"mapped","34"],[[12895,12895],"mapped","35"],[[12896,12896],"mapped","ᄀ"],[[12897,12897],"mapped","ᄂ"],[[12898,12898],"mapped","ᄃ"],[[12899,12899],"mapped","ᄅ"],[[12900,12900],"mapped","ᄆ"],[[12901,12901],"mapped","ᄇ"],[[12902,12902],"mapped","ᄉ"],[[12903,12903],"mapped","ᄋ"],[[12904,12904],"mapped","ᄌ"],[[12905,12905],"mapped","ᄎ"],[[12906,12906],"mapped","ᄏ"],[[12907,12907],"mapped","ᄐ"],[[12908,12908],"mapped","ᄑ"],[[12909,12909],"mapped","ᄒ"],[[12910,12910],"mapped","가"],[[12911,12911],"mapped","나"],[[12912,12912],"mapped","다"],[[12913,12913],"mapped","라"],[[12914,12914],"mapped","마"],[[12915,12915],"mapped","바"],[[12916,12916],"mapped","사"],[[12917,12917],"mapped","아"],[[12918,12918],"mapped","자"],[[12919,12919],"mapped","차"],[[12920,12920],"mapped","카"],[[12921,12921],"mapped","타"],[[12922,12922],"mapped","파"],[[12923,12923],"mapped","하"],[[12924,12924],"mapped","참고"],[[12925,12925],"mapped","주의"],[[12926,12926],"mapped","우"],[[12927,12927],"valid","","NV8"],[[12928,12928],"mapped","一"],[[12929,12929],"mapped","二"],[[12930,12930],"mapped","三"],[[12931,12931],"mapped","四"],[[12932,12932],"mapped","五"],[[12933,12933],"mapped","六"],[[12934,12934],"mapped","七"],[[12935,12935],"mapped","八"],[[12936,12936],"mapped","九"],[[12937,12937],"mapped","十"],[[12938,12938],"mapped","月"],[[12939,12939],"mapped","火"],[[12940,12940],"mapped","水"],[[12941,12941],"mapped","木"],[[12942,12942],"mapped","金"],[[12943,12943],"mapped","土"],[[12944,12944],"mapped","日"],[[12945,12945],"mapped","株"],[[12946,12946],"mapped","有"],[[12947,12947],"mapped","社"],[[12948,12948],"mapped","名"],[[12949,12949],"mapped","特"],[[12950,12950],"mapped","財"],[[12951,12951],"mapped","祝"],[[12952,12952],"mapped","労"],[[12953,12953],"mapped","秘"],[[12954,12954],"mapped","男"],[[12955,12955],"mapped","女"],[[12956,12956],"mapped","適"],[[12957,12957],"mapped","優"],[[12958,12958],"mapped","印"],[[12959,12959],"mapped","注"],[[12960,12960],"mapped","項"],[[12961,12961],"mapped","休"],[[12962,12962],"mapped","写"],[[12963,12963],"mapped","正"],[[12964,12964],"mapped","上"],[[12965,12965],"mapped","中"],[[12966,12966],"mapped","下"],[[12967,12967],"mapped","左"],[[12968,12968],"mapped","右"],[[12969,12969],"mapped","医"],[[12970,12970],"mapped","宗"],[[12971,12971],"mapped","学"],[[12972,12972],"mapped","監"],[[12973,12973],"mapped","企"],[[12974,12974],"mapped","資"],[[12975,12975],"mapped","協"],[[12976,12976],"mapped","夜"],[[12977,12977],"mapped","36"],[[12978,12978],"mapped","37"],[[12979,12979],"mapped","38"],[[12980,12980],"mapped","39"],[[12981,12981],"mapped","40"],[[12982,12982],"mapped","41"],[[12983,12983],"mapped","42"],[[12984,12984],"mapped","43"],[[12985,12985],"mapped","44"],[[12986,12986],"mapped","45"],[[12987,12987],"mapped","46"],[[12988,12988],"mapped","47"],[[12989,12989],"mapped","48"],[[12990,12990],"mapped","49"],[[12991,12991],"mapped","50"],[[12992,12992],"mapped","1月"],[[12993,12993],"mapped","2月"],[[12994,12994],"mapped","3月"],[[12995,12995],"mapped","4月"],[[12996,12996],"mapped","5月"],[[12997,12997],"mapped","6月"],[[12998,12998],"mapped","7月"],[[12999,12999],"mapped","8月"],[[13e3,13e3],"mapped","9月"],[[13001,13001],"mapped","10月"],[[13002,13002],"mapped","11月"],[[13003,13003],"mapped","12月"],[[13004,13004],"mapped","hg"],[[13005,13005],"mapped","erg"],[[13006,13006],"mapped","ev"],[[13007,13007],"mapped","ltd"],[[13008,13008],"mapped","ア"],[[13009,13009],"mapped","イ"],[[13010,13010],"mapped","ウ"],[[13011,13011],"mapped","エ"],[[13012,13012],"mapped","オ"],[[13013,13013],"mapped","カ"],[[13014,13014],"mapped","キ"],[[13015,13015],"mapped","ク"],[[13016,13016],"mapped","ケ"],[[13017,13017],"mapped","コ"],[[13018,13018],"mapped","サ"],[[13019,13019],"mapped","シ"],[[13020,13020],"mapped","ス"],[[13021,13021],"mapped","セ"],[[13022,13022],"mapped","ソ"],[[13023,13023],"mapped","タ"],[[13024,13024],"mapped","チ"],[[13025,13025],"mapped","ツ"],[[13026,13026],"mapped","テ"],[[13027,13027],"mapped","ト"],[[13028,13028],"mapped","ナ"],[[13029,13029],"mapped","ニ"],[[13030,13030],"mapped","ヌ"],[[13031,13031],"mapped","ネ"],[[13032,13032],"mapped","ノ"],[[13033,13033],"mapped","ハ"],[[13034,13034],"mapped","ヒ"],[[13035,13035],"mapped","フ"],[[13036,13036],"mapped","ヘ"],[[13037,13037],"mapped","ホ"],[[13038,13038],"mapped","マ"],[[13039,13039],"mapped","ミ"],[[13040,13040],"mapped","ム"],[[13041,13041],"mapped","メ"],[[13042,13042],"mapped","モ"],[[13043,13043],"mapped","ヤ"],[[13044,13044],"mapped","ユ"],[[13045,13045],"mapped","ヨ"],[[13046,13046],"mapped","ラ"],[[13047,13047],"mapped","リ"],[[13048,13048],"mapped","ル"],[[13049,13049],"mapped","レ"],[[13050,13050],"mapped","ロ"],[[13051,13051],"mapped","ワ"],[[13052,13052],"mapped","ヰ"],[[13053,13053],"mapped","ヱ"],[[13054,13054],"mapped","ヲ"],[[13055,13055],"disallowed"],[[13056,13056],"mapped","アパート"],[[13057,13057],"mapped","アルファ"],[[13058,13058],"mapped","アンペア"],[[13059,13059],"mapped","アール"],[[13060,13060],"mapped","イニング"],[[13061,13061],"mapped","インチ"],[[13062,13062],"mapped","ウォン"],[[13063,13063],"mapped","エスクード"],[[13064,13064],"mapped","エーカー"],[[13065,13065],"mapped","オンス"],[[13066,13066],"mapped","オーム"],[[13067,13067],"mapped","カイリ"],[[13068,13068],"mapped","カラット"],[[13069,13069],"mapped","カロリー"],[[13070,13070],"mapped","ガロン"],[[13071,13071],"mapped","ガンマ"],[[13072,13072],"mapped","ギガ"],[[13073,13073],"mapped","ギニー"],[[13074,13074],"mapped","キュリー"],[[13075,13075],"mapped","ギルダー"],[[13076,13076],"mapped","キロ"],[[13077,13077],"mapped","キログラム"],[[13078,13078],"mapped","キロメートル"],[[13079,13079],"mapped","キロワット"],[[13080,13080],"mapped","グラム"],[[13081,13081],"mapped","グラムトン"],[[13082,13082],"mapped","クルゼイロ"],[[13083,13083],"mapped","クローネ"],[[13084,13084],"mapped","ケース"],[[13085,13085],"mapped","コルナ"],[[13086,13086],"mapped","コーポ"],[[13087,13087],"mapped","サイクル"],[[13088,13088],"mapped","サンチーム"],[[13089,13089],"mapped","シリング"],[[13090,13090],"mapped","センチ"],[[13091,13091],"mapped","セント"],[[13092,13092],"mapped","ダース"],[[13093,13093],"mapped","デシ"],[[13094,13094],"mapped","ドル"],[[13095,13095],"mapped","トン"],[[13096,13096],"mapped","ナノ"],[[13097,13097],"mapped","ノット"],[[13098,13098],"mapped","ハイツ"],[[13099,13099],"mapped","パーセント"],[[13100,13100],"mapped","パーツ"],[[13101,13101],"mapped","バーレル"],[[13102,13102],"mapped","ピアストル"],[[13103,13103],"mapped","ピクル"],[[13104,13104],"mapped","ピコ"],[[13105,13105],"mapped","ビル"],[[13106,13106],"mapped","ファラッド"],[[13107,13107],"mapped","フィート"],[[13108,13108],"mapped","ブッシェル"],[[13109,13109],"mapped","フラン"],[[13110,13110],"mapped","ヘクタール"],[[13111,13111],"mapped","ペソ"],[[13112,13112],"mapped","ペニヒ"],[[13113,13113],"mapped","ヘルツ"],[[13114,13114],"mapped","ペンス"],[[13115,13115],"mapped","ページ"],[[13116,13116],"mapped","ベータ"],[[13117,13117],"mapped","ポイント"],[[13118,13118],"mapped","ボルト"],[[13119,13119],"mapped","ホン"],[[13120,13120],"mapped","ポンド"],[[13121,13121],"mapped","ホール"],[[13122,13122],"mapped","ホーン"],[[13123,13123],"mapped","マイクロ"],[[13124,13124],"mapped","マイル"],[[13125,13125],"mapped","マッハ"],[[13126,13126],"mapped","マルク"],[[13127,13127],"mapped","マンション"],[[13128,13128],"mapped","ミクロン"],[[13129,13129],"mapped","ミリ"],[[13130,13130],"mapped","ミリバール"],[[13131,13131],"mapped","メガ"],[[13132,13132],"mapped","メガトン"],[[13133,13133],"mapped","メートル"],[[13134,13134],"mapped","ヤード"],[[13135,13135],"mapped","ヤール"],[[13136,13136],"mapped","ユアン"],[[13137,13137],"mapped","リットル"],[[13138,13138],"mapped","リラ"],[[13139,13139],"mapped","ルピー"],[[13140,13140],"mapped","ルーブル"],[[13141,13141],"mapped","レム"],[[13142,13142],"mapped","レントゲン"],[[13143,13143],"mapped","ワット"],[[13144,13144],"mapped","0点"],[[13145,13145],"mapped","1点"],[[13146,13146],"mapped","2点"],[[13147,13147],"mapped","3点"],[[13148,13148],"mapped","4点"],[[13149,13149],"mapped","5点"],[[13150,13150],"mapped","6点"],[[13151,13151],"mapped","7点"],[[13152,13152],"mapped","8点"],[[13153,13153],"mapped","9点"],[[13154,13154],"mapped","10点"],[[13155,13155],"mapped","11点"],[[13156,13156],"mapped","12点"],[[13157,13157],"mapped","13点"],[[13158,13158],"mapped","14点"],[[13159,13159],"mapped","15点"],[[13160,13160],"mapped","16点"],[[13161,13161],"mapped","17点"],[[13162,13162],"mapped","18点"],[[13163,13163],"mapped","19点"],[[13164,13164],"mapped","20点"],[[13165,13165],"mapped","21点"],[[13166,13166],"mapped","22点"],[[13167,13167],"mapped","23点"],[[13168,13168],"mapped","24点"],[[13169,13169],"mapped","hpa"],[[13170,13170],"mapped","da"],[[13171,13171],"mapped","au"],[[13172,13172],"mapped","bar"],[[13173,13173],"mapped","ov"],[[13174,13174],"mapped","pc"],[[13175,13175],"mapped","dm"],[[13176,13176],"mapped","dm2"],[[13177,13177],"mapped","dm3"],[[13178,13178],"mapped","iu"],[[13179,13179],"mapped","平成"],[[13180,13180],"mapped","昭和"],[[13181,13181],"mapped","大正"],[[13182,13182],"mapped","明治"],[[13183,13183],"mapped","株式会社"],[[13184,13184],"mapped","pa"],[[13185,13185],"mapped","na"],[[13186,13186],"mapped","μa"],[[13187,13187],"mapped","ma"],[[13188,13188],"mapped","ka"],[[13189,13189],"mapped","kb"],[[13190,13190],"mapped","mb"],[[13191,13191],"mapped","gb"],[[13192,13192],"mapped","cal"],[[13193,13193],"mapped","kcal"],[[13194,13194],"mapped","pf"],[[13195,13195],"mapped","nf"],[[13196,13196],"mapped","μf"],[[13197,13197],"mapped","μg"],[[13198,13198],"mapped","mg"],[[13199,13199],"mapped","kg"],[[13200,13200],"mapped","hz"],[[13201,13201],"mapped","khz"],[[13202,13202],"mapped","mhz"],[[13203,13203],"mapped","ghz"],[[13204,13204],"mapped","thz"],[[13205,13205],"mapped","μl"],[[13206,13206],"mapped","ml"],[[13207,13207],"mapped","dl"],[[13208,13208],"mapped","kl"],[[13209,13209],"mapped","fm"],[[13210,13210],"mapped","nm"],[[13211,13211],"mapped","μm"],[[13212,13212],"mapped","mm"],[[13213,13213],"mapped","cm"],[[13214,13214],"mapped","km"],[[13215,13215],"mapped","mm2"],[[13216,13216],"mapped","cm2"],[[13217,13217],"mapped","m2"],[[13218,13218],"mapped","km2"],[[13219,13219],"mapped","mm3"],[[13220,13220],"mapped","cm3"],[[13221,13221],"mapped","m3"],[[13222,13222],"mapped","km3"],[[13223,13223],"mapped","m∕s"],[[13224,13224],"mapped","m∕s2"],[[13225,13225],"mapped","pa"],[[13226,13226],"mapped","kpa"],[[13227,13227],"mapped","mpa"],[[13228,13228],"mapped","gpa"],[[13229,13229],"mapped","rad"],[[13230,13230],"mapped","rad∕s"],[[13231,13231],"mapped","rad∕s2"],[[13232,13232],"mapped","ps"],[[13233,13233],"mapped","ns"],[[13234,13234],"mapped","μs"],[[13235,13235],"mapped","ms"],[[13236,13236],"mapped","pv"],[[13237,13237],"mapped","nv"],[[13238,13238],"mapped","μv"],[[13239,13239],"mapped","mv"],[[13240,13240],"mapped","kv"],[[13241,13241],"mapped","mv"],[[13242,13242],"mapped","pw"],[[13243,13243],"mapped","nw"],[[13244,13244],"mapped","μw"],[[13245,13245],"mapped","mw"],[[13246,13246],"mapped","kw"],[[13247,13247],"mapped","mw"],[[13248,13248],"mapped","kω"],[[13249,13249],"mapped","mω"],[[13250,13250],"disallowed"],[[13251,13251],"mapped","bq"],[[13252,13252],"mapped","cc"],[[13253,13253],"mapped","cd"],[[13254,13254],"mapped","c∕kg"],[[13255,13255],"disallowed"],[[13256,13256],"mapped","db"],[[13257,13257],"mapped","gy"],[[13258,13258],"mapped","ha"],[[13259,13259],"mapped","hp"],[[13260,13260],"mapped","in"],[[13261,13261],"mapped","kk"],[[13262,13262],"mapped","km"],[[13263,13263],"mapped","kt"],[[13264,13264],"mapped","lm"],[[13265,13265],"mapped","ln"],[[13266,13266],"mapped","log"],[[13267,13267],"mapped","lx"],[[13268,13268],"mapped","mb"],[[13269,13269],"mapped","mil"],[[13270,13270],"mapped","mol"],[[13271,13271],"mapped","ph"],[[13272,13272],"disallowed"],[[13273,13273],"mapped","ppm"],[[13274,13274],"mapped","pr"],[[13275,13275],"mapped","sr"],[[13276,13276],"mapped","sv"],[[13277,13277],"mapped","wb"],[[13278,13278],"mapped","v∕m"],[[13279,13279],"mapped","a∕m"],[[13280,13280],"mapped","1日"],[[13281,13281],"mapped","2日"],[[13282,13282],"mapped","3日"],[[13283,13283],"mapped","4日"],[[13284,13284],"mapped","5日"],[[13285,13285],"mapped","6日"],[[13286,13286],"mapped","7日"],[[13287,13287],"mapped","8日"],[[13288,13288],"mapped","9日"],[[13289,13289],"mapped","10日"],[[13290,13290],"mapped","11日"],[[13291,13291],"mapped","12日"],[[13292,13292],"mapped","13日"],[[13293,13293],"mapped","14日"],[[13294,13294],"mapped","15日"],[[13295,13295],"mapped","16日"],[[13296,13296],"mapped","17日"],[[13297,13297],"mapped","18日"],[[13298,13298],"mapped","19日"],[[13299,13299],"mapped","20日"],[[13300,13300],"mapped","21日"],[[13301,13301],"mapped","22日"],[[13302,13302],"mapped","23日"],[[13303,13303],"mapped","24日"],[[13304,13304],"mapped","25日"],[[13305,13305],"mapped","26日"],[[13306,13306],"mapped","27日"],[[13307,13307],"mapped","28日"],[[13308,13308],"mapped","29日"],[[13309,13309],"mapped","30日"],[[13310,13310],"mapped","31日"],[[13311,13311],"mapped","gal"],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid","","NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40938],"valid"],[[40939,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid","","NV8"],[[42146,42147],"valid","","NV8"],[[42148,42163],"valid","","NV8"],[[42164,42164],"valid","","NV8"],[[42165,42176],"valid","","NV8"],[[42177,42177],"valid","","NV8"],[[42178,42180],"valid","","NV8"],[[42181,42181],"valid","","NV8"],[[42182,42182],"valid","","NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid","","NV8"],[[42240,42508],"valid"],[[42509,42511],"valid","","NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped","ꙁ"],[[42561,42561],"valid"],[[42562,42562],"mapped","ꙃ"],[[42563,42563],"valid"],[[42564,42564],"mapped","ꙅ"],[[42565,42565],"valid"],[[42566,42566],"mapped","ꙇ"],[[42567,42567],"valid"],[[42568,42568],"mapped","ꙉ"],[[42569,42569],"valid"],[[42570,42570],"mapped","ꙋ"],[[42571,42571],"valid"],[[42572,42572],"mapped","ꙍ"],[[42573,42573],"valid"],[[42574,42574],"mapped","ꙏ"],[[42575,42575],"valid"],[[42576,42576],"mapped","ꙑ"],[[42577,42577],"valid"],[[42578,42578],"mapped","ꙓ"],[[42579,42579],"valid"],[[42580,42580],"mapped","ꙕ"],[[42581,42581],"valid"],[[42582,42582],"mapped","ꙗ"],[[42583,42583],"valid"],[[42584,42584],"mapped","ꙙ"],[[42585,42585],"valid"],[[42586,42586],"mapped","ꙛ"],[[42587,42587],"valid"],[[42588,42588],"mapped","ꙝ"],[[42589,42589],"valid"],[[42590,42590],"mapped","ꙟ"],[[42591,42591],"valid"],[[42592,42592],"mapped","ꙡ"],[[42593,42593],"valid"],[[42594,42594],"mapped","ꙣ"],[[42595,42595],"valid"],[[42596,42596],"mapped","ꙥ"],[[42597,42597],"valid"],[[42598,42598],"mapped","ꙧ"],[[42599,42599],"valid"],[[42600,42600],"mapped","ꙩ"],[[42601,42601],"valid"],[[42602,42602],"mapped","ꙫ"],[[42603,42603],"valid"],[[42604,42604],"mapped","ꙭ"],[[42605,42607],"valid"],[[42608,42611],"valid","","NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid","","NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped","ꚁ"],[[42625,42625],"valid"],[[42626,42626],"mapped","ꚃ"],[[42627,42627],"valid"],[[42628,42628],"mapped","ꚅ"],[[42629,42629],"valid"],[[42630,42630],"mapped","ꚇ"],[[42631,42631],"valid"],[[42632,42632],"mapped","ꚉ"],[[42633,42633],"valid"],[[42634,42634],"mapped","ꚋ"],[[42635,42635],"valid"],[[42636,42636],"mapped","ꚍ"],[[42637,42637],"valid"],[[42638,42638],"mapped","ꚏ"],[[42639,42639],"valid"],[[42640,42640],"mapped","ꚑ"],[[42641,42641],"valid"],[[42642,42642],"mapped","ꚓ"],[[42643,42643],"valid"],[[42644,42644],"mapped","ꚕ"],[[42645,42645],"valid"],[[42646,42646],"mapped","ꚗ"],[[42647,42647],"valid"],[[42648,42648],"mapped","ꚙ"],[[42649,42649],"valid"],[[42650,42650],"mapped","ꚛ"],[[42651,42651],"valid"],[[42652,42652],"mapped","ъ"],[[42653,42653],"mapped","ь"],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid","","NV8"],[[42736,42737],"valid"],[[42738,42743],"valid","","NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid","","NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid","","NV8"],[[42786,42786],"mapped","ꜣ"],[[42787,42787],"valid"],[[42788,42788],"mapped","ꜥ"],[[42789,42789],"valid"],[[42790,42790],"mapped","ꜧ"],[[42791,42791],"valid"],[[42792,42792],"mapped","ꜩ"],[[42793,42793],"valid"],[[42794,42794],"mapped","ꜫ"],[[42795,42795],"valid"],[[42796,42796],"mapped","ꜭ"],[[42797,42797],"valid"],[[42798,42798],"mapped","ꜯ"],[[42799,42801],"valid"],[[42802,42802],"mapped","ꜳ"],[[42803,42803],"valid"],[[42804,42804],"mapped","ꜵ"],[[42805,42805],"valid"],[[42806,42806],"mapped","ꜷ"],[[42807,42807],"valid"],[[42808,42808],"mapped","ꜹ"],[[42809,42809],"valid"],[[42810,42810],"mapped","ꜻ"],[[42811,42811],"valid"],[[42812,42812],"mapped","ꜽ"],[[42813,42813],"valid"],[[42814,42814],"mapped","ꜿ"],[[42815,42815],"valid"],[[42816,42816],"mapped","ꝁ"],[[42817,42817],"valid"],[[42818,42818],"mapped","ꝃ"],[[42819,42819],"valid"],[[42820,42820],"mapped","ꝅ"],[[42821,42821],"valid"],[[42822,42822],"mapped","ꝇ"],[[42823,42823],"valid"],[[42824,42824],"mapped","ꝉ"],[[42825,42825],"valid"],[[42826,42826],"mapped","ꝋ"],[[42827,42827],"valid"],[[42828,42828],"mapped","ꝍ"],[[42829,42829],"valid"],[[42830,42830],"mapped","ꝏ"],[[42831,42831],"valid"],[[42832,42832],"mapped","ꝑ"],[[42833,42833],"valid"],[[42834,42834],"mapped","ꝓ"],[[42835,42835],"valid"],[[42836,42836],"mapped","ꝕ"],[[42837,42837],"valid"],[[42838,42838],"mapped","ꝗ"],[[42839,42839],"valid"],[[42840,42840],"mapped","ꝙ"],[[42841,42841],"valid"],[[42842,42842],"mapped","ꝛ"],[[42843,42843],"valid"],[[42844,42844],"mapped","ꝝ"],[[42845,42845],"valid"],[[42846,42846],"mapped","ꝟ"],[[42847,42847],"valid"],[[42848,42848],"mapped","ꝡ"],[[42849,42849],"valid"],[[42850,42850],"mapped","ꝣ"],[[42851,42851],"valid"],[[42852,42852],"mapped","ꝥ"],[[42853,42853],"valid"],[[42854,42854],"mapped","ꝧ"],[[42855,42855],"valid"],[[42856,42856],"mapped","ꝩ"],[[42857,42857],"valid"],[[42858,42858],"mapped","ꝫ"],[[42859,42859],"valid"],[[42860,42860],"mapped","ꝭ"],[[42861,42861],"valid"],[[42862,42862],"mapped","ꝯ"],[[42863,42863],"valid"],[[42864,42864],"mapped","ꝯ"],[[42865,42872],"valid"],[[42873,42873],"mapped","ꝺ"],[[42874,42874],"valid"],[[42875,42875],"mapped","ꝼ"],[[42876,42876],"valid"],[[42877,42877],"mapped","ᵹ"],[[42878,42878],"mapped","ꝿ"],[[42879,42879],"valid"],[[42880,42880],"mapped","ꞁ"],[[42881,42881],"valid"],[[42882,42882],"mapped","ꞃ"],[[42883,42883],"valid"],[[42884,42884],"mapped","ꞅ"],[[42885,42885],"valid"],[[42886,42886],"mapped","ꞇ"],[[42887,42888],"valid"],[[42889,42890],"valid","","NV8"],[[42891,42891],"mapped","ꞌ"],[[42892,42892],"valid"],[[42893,42893],"mapped","ɥ"],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped","ꞑ"],[[42897,42897],"valid"],[[42898,42898],"mapped","ꞓ"],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped","ꞗ"],[[42903,42903],"valid"],[[42904,42904],"mapped","ꞙ"],[[42905,42905],"valid"],[[42906,42906],"mapped","ꞛ"],[[42907,42907],"valid"],[[42908,42908],"mapped","ꞝ"],[[42909,42909],"valid"],[[42910,42910],"mapped","ꞟ"],[[42911,42911],"valid"],[[42912,42912],"mapped","ꞡ"],[[42913,42913],"valid"],[[42914,42914],"mapped","ꞣ"],[[42915,42915],"valid"],[[42916,42916],"mapped","ꞥ"],[[42917,42917],"valid"],[[42918,42918],"mapped","ꞧ"],[[42919,42919],"valid"],[[42920,42920],"mapped","ꞩ"],[[42921,42921],"valid"],[[42922,42922],"mapped","ɦ"],[[42923,42923],"mapped","ɜ"],[[42924,42924],"mapped","ɡ"],[[42925,42925],"mapped","ɬ"],[[42926,42926],"mapped","ɪ"],[[42927,42927],"disallowed"],[[42928,42928],"mapped","ʞ"],[[42929,42929],"mapped","ʇ"],[[42930,42930],"mapped","ʝ"],[[42931,42931],"mapped","ꭓ"],[[42932,42932],"mapped","ꞵ"],[[42933,42933],"valid"],[[42934,42934],"mapped","ꞷ"],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped","ħ"],[[43001,43001],"mapped","œ"],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid","","NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid","","NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid","","NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43205],"valid"],[[43206,43213],"disallowed"],[[43214,43215],"valid","","NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid","","NV8"],[[43259,43259],"valid"],[[43260,43260],"valid","","NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid","","NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid","","NV8"],[[43360,43388],"valid","","NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid","","NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid","","NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid","","NV8"],[[43616,43638],"valid"],[[43639,43641],"valid","","NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid","","NV8"],[[43744,43759],"valid"],[[43760,43761],"valid","","NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid","","NV8"],[[43868,43868],"mapped","ꜧ"],[[43869,43869],"mapped","ꬷ"],[[43870,43870],"mapped","ɫ"],[[43871,43871],"mapped","ꭒ"],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped","Ꭰ"],[[43889,43889],"mapped","Ꭱ"],[[43890,43890],"mapped","Ꭲ"],[[43891,43891],"mapped","Ꭳ"],[[43892,43892],"mapped","Ꭴ"],[[43893,43893],"mapped","Ꭵ"],[[43894,43894],"mapped","Ꭶ"],[[43895,43895],"mapped","Ꭷ"],[[43896,43896],"mapped","Ꭸ"],[[43897,43897],"mapped","Ꭹ"],[[43898,43898],"mapped","Ꭺ"],[[43899,43899],"mapped","Ꭻ"],[[43900,43900],"mapped","Ꭼ"],[[43901,43901],"mapped","Ꭽ"],[[43902,43902],"mapped","Ꭾ"],[[43903,43903],"mapped","Ꭿ"],[[43904,43904],"mapped","Ꮀ"],[[43905,43905],"mapped","Ꮁ"],[[43906,43906],"mapped","Ꮂ"],[[43907,43907],"mapped","Ꮃ"],[[43908,43908],"mapped","Ꮄ"],[[43909,43909],"mapped","Ꮅ"],[[43910,43910],"mapped","Ꮆ"],[[43911,43911],"mapped","Ꮇ"],[[43912,43912],"mapped","Ꮈ"],[[43913,43913],"mapped","Ꮉ"],[[43914,43914],"mapped","Ꮊ"],[[43915,43915],"mapped","Ꮋ"],[[43916,43916],"mapped","Ꮌ"],[[43917,43917],"mapped","Ꮍ"],[[43918,43918],"mapped","Ꮎ"],[[43919,43919],"mapped","Ꮏ"],[[43920,43920],"mapped","Ꮐ"],[[43921,43921],"mapped","Ꮑ"],[[43922,43922],"mapped","Ꮒ"],[[43923,43923],"mapped","Ꮓ"],[[43924,43924],"mapped","Ꮔ"],[[43925,43925],"mapped","Ꮕ"],[[43926,43926],"mapped","Ꮖ"],[[43927,43927],"mapped","Ꮗ"],[[43928,43928],"mapped","Ꮘ"],[[43929,43929],"mapped","Ꮙ"],[[43930,43930],"mapped","Ꮚ"],[[43931,43931],"mapped","Ꮛ"],[[43932,43932],"mapped","Ꮜ"],[[43933,43933],"mapped","Ꮝ"],[[43934,43934],"mapped","Ꮞ"],[[43935,43935],"mapped","Ꮟ"],[[43936,43936],"mapped","Ꮠ"],[[43937,43937],"mapped","Ꮡ"],[[43938,43938],"mapped","Ꮢ"],[[43939,43939],"mapped","Ꮣ"],[[43940,43940],"mapped","Ꮤ"],[[43941,43941],"mapped","Ꮥ"],[[43942,43942],"mapped","Ꮦ"],[[43943,43943],"mapped","Ꮧ"],[[43944,43944],"mapped","Ꮨ"],[[43945,43945],"mapped","Ꮩ"],[[43946,43946],"mapped","Ꮪ"],[[43947,43947],"mapped","Ꮫ"],[[43948,43948],"mapped","Ꮬ"],[[43949,43949],"mapped","Ꮭ"],[[43950,43950],"mapped","Ꮮ"],[[43951,43951],"mapped","Ꮯ"],[[43952,43952],"mapped","Ꮰ"],[[43953,43953],"mapped","Ꮱ"],[[43954,43954],"mapped","Ꮲ"],[[43955,43955],"mapped","Ꮳ"],[[43956,43956],"mapped","Ꮴ"],[[43957,43957],"mapped","Ꮵ"],[[43958,43958],"mapped","Ꮶ"],[[43959,43959],"mapped","Ꮷ"],[[43960,43960],"mapped","Ꮸ"],[[43961,43961],"mapped","Ꮹ"],[[43962,43962],"mapped","Ꮺ"],[[43963,43963],"mapped","Ꮻ"],[[43964,43964],"mapped","Ꮼ"],[[43965,43965],"mapped","Ꮽ"],[[43966,43966],"mapped","Ꮾ"],[[43967,43967],"mapped","Ꮿ"],[[43968,44010],"valid"],[[44011,44011],"valid","","NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid","","NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid","","NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped","豈"],[[63745,63745],"mapped","更"],[[63746,63746],"mapped","車"],[[63747,63747],"mapped","賈"],[[63748,63748],"mapped","滑"],[[63749,63749],"mapped","串"],[[63750,63750],"mapped","句"],[[63751,63752],"mapped","龜"],[[63753,63753],"mapped","契"],[[63754,63754],"mapped","金"],[[63755,63755],"mapped","喇"],[[63756,63756],"mapped","奈"],[[63757,63757],"mapped","懶"],[[63758,63758],"mapped","癩"],[[63759,63759],"mapped","羅"],[[63760,63760],"mapped","蘿"],[[63761,63761],"mapped","螺"],[[63762,63762],"mapped","裸"],[[63763,63763],"mapped","邏"],[[63764,63764],"mapped","樂"],[[63765,63765],"mapped","洛"],[[63766,63766],"mapped","烙"],[[63767,63767],"mapped","珞"],[[63768,63768],"mapped","落"],[[63769,63769],"mapped","酪"],[[63770,63770],"mapped","駱"],[[63771,63771],"mapped","亂"],[[63772,63772],"mapped","卵"],[[63773,63773],"mapped","欄"],[[63774,63774],"mapped","爛"],[[63775,63775],"mapped","蘭"],[[63776,63776],"mapped","鸞"],[[63777,63777],"mapped","嵐"],[[63778,63778],"mapped","濫"],[[63779,63779],"mapped","藍"],[[63780,63780],"mapped","襤"],[[63781,63781],"mapped","拉"],[[63782,63782],"mapped","臘"],[[63783,63783],"mapped","蠟"],[[63784,63784],"mapped","廊"],[[63785,63785],"mapped","朗"],[[63786,63786],"mapped","浪"],[[63787,63787],"mapped","狼"],[[63788,63788],"mapped","郎"],[[63789,63789],"mapped","來"],[[63790,63790],"mapped","冷"],[[63791,63791],"mapped","勞"],[[63792,63792],"mapped","擄"],[[63793,63793],"mapped","櫓"],[[63794,63794],"mapped","爐"],[[63795,63795],"mapped","盧"],[[63796,63796],"mapped","老"],[[63797,63797],"mapped","蘆"],[[63798,63798],"mapped","虜"],[[63799,63799],"mapped","路"],[[63800,63800],"mapped","露"],[[63801,63801],"mapped","魯"],[[63802,63802],"mapped","鷺"],[[63803,63803],"mapped","碌"],[[63804,63804],"mapped","祿"],[[63805,63805],"mapped","綠"],[[63806,63806],"mapped","菉"],[[63807,63807],"mapped","錄"],[[63808,63808],"mapped","鹿"],[[63809,63809],"mapped","論"],[[63810,63810],"mapped","壟"],[[63811,63811],"mapped","弄"],[[63812,63812],"mapped","籠"],[[63813,63813],"mapped","聾"],[[63814,63814],"mapped","牢"],[[63815,63815],"mapped","磊"],[[63816,63816],"mapped","賂"],[[63817,63817],"mapped","雷"],[[63818,63818],"mapped","壘"],[[63819,63819],"mapped","屢"],[[63820,63820],"mapped","樓"],[[63821,63821],"mapped","淚"],[[63822,63822],"mapped","漏"],[[63823,63823],"mapped","累"],[[63824,63824],"mapped","縷"],[[63825,63825],"mapped","陋"],[[63826,63826],"mapped","勒"],[[63827,63827],"mapped","肋"],[[63828,63828],"mapped","凜"],[[63829,63829],"mapped","凌"],[[63830,63830],"mapped","稜"],[[63831,63831],"mapped","綾"],[[63832,63832],"mapped","菱"],[[63833,63833],"mapped","陵"],[[63834,63834],"mapped","讀"],[[63835,63835],"mapped","拏"],[[63836,63836],"mapped","樂"],[[63837,63837],"mapped","諾"],[[63838,63838],"mapped","丹"],[[63839,63839],"mapped","寧"],[[63840,63840],"mapped","怒"],[[63841,63841],"mapped","率"],[[63842,63842],"mapped","異"],[[63843,63843],"mapped","北"],[[63844,63844],"mapped","磻"],[[63845,63845],"mapped","便"],[[63846,63846],"mapped","復"],[[63847,63847],"mapped","不"],[[63848,63848],"mapped","泌"],[[63849,63849],"mapped","數"],[[63850,63850],"mapped","索"],[[63851,63851],"mapped","參"],[[63852,63852],"mapped","塞"],[[63853,63853],"mapped","省"],[[63854,63854],"mapped","葉"],[[63855,63855],"mapped","說"],[[63856,63856],"mapped","殺"],[[63857,63857],"mapped","辰"],[[63858,63858],"mapped","沈"],[[63859,63859],"mapped","拾"],[[63860,63860],"mapped","若"],[[63861,63861],"mapped","掠"],[[63862,63862],"mapped","略"],[[63863,63863],"mapped","亮"],[[63864,63864],"mapped","兩"],[[63865,63865],"mapped","凉"],[[63866,63866],"mapped","梁"],[[63867,63867],"mapped","糧"],[[63868,63868],"mapped","良"],[[63869,63869],"mapped","諒"],[[63870,63870],"mapped","量"],[[63871,63871],"mapped","勵"],[[63872,63872],"mapped","呂"],[[63873,63873],"mapped","女"],[[63874,63874],"mapped","廬"],[[63875,63875],"mapped","旅"],[[63876,63876],"mapped","濾"],[[63877,63877],"mapped","礪"],[[63878,63878],"mapped","閭"],[[63879,63879],"mapped","驪"],[[63880,63880],"mapped","麗"],[[63881,63881],"mapped","黎"],[[63882,63882],"mapped","力"],[[63883,63883],"mapped","曆"],[[63884,63884],"mapped","歷"],[[63885,63885],"mapped","轢"],[[63886,63886],"mapped","年"],[[63887,63887],"mapped","憐"],[[63888,63888],"mapped","戀"],[[63889,63889],"mapped","撚"],[[63890,63890],"mapped","漣"],[[63891,63891],"mapped","煉"],[[63892,63892],"mapped","璉"],[[63893,63893],"mapped","秊"],[[63894,63894],"mapped","練"],[[63895,63895],"mapped","聯"],[[63896,63896],"mapped","輦"],[[63897,63897],"mapped","蓮"],[[63898,63898],"mapped","連"],[[63899,63899],"mapped","鍊"],[[63900,63900],"mapped","列"],[[63901,63901],"mapped","劣"],[[63902,63902],"mapped","咽"],[[63903,63903],"mapped","烈"],[[63904,63904],"mapped","裂"],[[63905,63905],"mapped","說"],[[63906,63906],"mapped","廉"],[[63907,63907],"mapped","念"],[[63908,63908],"mapped","捻"],[[63909,63909],"mapped","殮"],[[63910,63910],"mapped","簾"],[[63911,63911],"mapped","獵"],[[63912,63912],"mapped","令"],[[63913,63913],"mapped","囹"],[[63914,63914],"mapped","寧"],[[63915,63915],"mapped","嶺"],[[63916,63916],"mapped","怜"],[[63917,63917],"mapped","玲"],[[63918,63918],"mapped","瑩"],[[63919,63919],"mapped","羚"],[[63920,63920],"mapped","聆"],[[63921,63921],"mapped","鈴"],[[63922,63922],"mapped","零"],[[63923,63923],"mapped","靈"],[[63924,63924],"mapped","領"],[[63925,63925],"mapped","例"],[[63926,63926],"mapped","禮"],[[63927,63927],"mapped","醴"],[[63928,63928],"mapped","隸"],[[63929,63929],"mapped","惡"],[[63930,63930],"mapped","了"],[[63931,63931],"mapped","僚"],[[63932,63932],"mapped","寮"],[[63933,63933],"mapped","尿"],[[63934,63934],"mapped","料"],[[63935,63935],"mapped","樂"],[[63936,63936],"mapped","燎"],[[63937,63937],"mapped","療"],[[63938,63938],"mapped","蓼"],[[63939,63939],"mapped","遼"],[[63940,63940],"mapped","龍"],[[63941,63941],"mapped","暈"],[[63942,63942],"mapped","阮"],[[63943,63943],"mapped","劉"],[[63944,63944],"mapped","杻"],[[63945,63945],"mapped","柳"],[[63946,63946],"mapped","流"],[[63947,63947],"mapped","溜"],[[63948,63948],"mapped","琉"],[[63949,63949],"mapped","留"],[[63950,63950],"mapped","硫"],[[63951,63951],"mapped","紐"],[[63952,63952],"mapped","類"],[[63953,63953],"mapped","六"],[[63954,63954],"mapped","戮"],[[63955,63955],"mapped","陸"],[[63956,63956],"mapped","倫"],[[63957,63957],"mapped","崙"],[[63958,63958],"mapped","淪"],[[63959,63959],"mapped","輪"],[[63960,63960],"mapped","律"],[[63961,63961],"mapped","慄"],[[63962,63962],"mapped","栗"],[[63963,63963],"mapped","率"],[[63964,63964],"mapped","隆"],[[63965,63965],"mapped","利"],[[63966,63966],"mapped","吏"],[[63967,63967],"mapped","履"],[[63968,63968],"mapped","易"],[[63969,63969],"mapped","李"],[[63970,63970],"mapped","梨"],[[63971,63971],"mapped","泥"],[[63972,63972],"mapped","理"],[[63973,63973],"mapped","痢"],[[63974,63974],"mapped","罹"],[[63975,63975],"mapped","裏"],[[63976,63976],"mapped","裡"],[[63977,63977],"mapped","里"],[[63978,63978],"mapped","離"],[[63979,63979],"mapped","匿"],[[63980,63980],"mapped","溺"],[[63981,63981],"mapped","吝"],[[63982,63982],"mapped","燐"],[[63983,63983],"mapped","璘"],[[63984,63984],"mapped","藺"],[[63985,63985],"mapped","隣"],[[63986,63986],"mapped","鱗"],[[63987,63987],"mapped","麟"],[[63988,63988],"mapped","林"],[[63989,63989],"mapped","淋"],[[63990,63990],"mapped","臨"],[[63991,63991],"mapped","立"],[[63992,63992],"mapped","笠"],[[63993,63993],"mapped","粒"],[[63994,63994],"mapped","狀"],[[63995,63995],"mapped","炙"],[[63996,63996],"mapped","識"],[[63997,63997],"mapped","什"],[[63998,63998],"mapped","茶"],[[63999,63999],"mapped","刺"],[[64e3,64e3],"mapped","切"],[[64001,64001],"mapped","度"],[[64002,64002],"mapped","拓"],[[64003,64003],"mapped","糖"],[[64004,64004],"mapped","宅"],[[64005,64005],"mapped","洞"],[[64006,64006],"mapped","暴"],[[64007,64007],"mapped","輻"],[[64008,64008],"mapped","行"],[[64009,64009],"mapped","降"],[[64010,64010],"mapped","見"],[[64011,64011],"mapped","廓"],[[64012,64012],"mapped","兀"],[[64013,64013],"mapped","嗀"],[[64014,64015],"valid"],[[64016,64016],"mapped","塚"],[[64017,64017],"valid"],[[64018,64018],"mapped","晴"],[[64019,64020],"valid"],[[64021,64021],"mapped","凞"],[[64022,64022],"mapped","猪"],[[64023,64023],"mapped","益"],[[64024,64024],"mapped","礼"],[[64025,64025],"mapped","神"],[[64026,64026],"mapped","祥"],[[64027,64027],"mapped","福"],[[64028,64028],"mapped","靖"],[[64029,64029],"mapped","精"],[[64030,64030],"mapped","羽"],[[64031,64031],"valid"],[[64032,64032],"mapped","蘒"],[[64033,64033],"valid"],[[64034,64034],"mapped","諸"],[[64035,64036],"valid"],[[64037,64037],"mapped","逸"],[[64038,64038],"mapped","都"],[[64039,64041],"valid"],[[64042,64042],"mapped","飯"],[[64043,64043],"mapped","飼"],[[64044,64044],"mapped","館"],[[64045,64045],"mapped","鶴"],[[64046,64046],"mapped","郞"],[[64047,64047],"mapped","隷"],[[64048,64048],"mapped","侮"],[[64049,64049],"mapped","僧"],[[64050,64050],"mapped","免"],[[64051,64051],"mapped","勉"],[[64052,64052],"mapped","勤"],[[64053,64053],"mapped","卑"],[[64054,64054],"mapped","喝"],[[64055,64055],"mapped","嘆"],[[64056,64056],"mapped","器"],[[64057,64057],"mapped","塀"],[[64058,64058],"mapped","墨"],[[64059,64059],"mapped","層"],[[64060,64060],"mapped","屮"],[[64061,64061],"mapped","悔"],[[64062,64062],"mapped","慨"],[[64063,64063],"mapped","憎"],[[64064,64064],"mapped","懲"],[[64065,64065],"mapped","敏"],[[64066,64066],"mapped","既"],[[64067,64067],"mapped","暑"],[[64068,64068],"mapped","梅"],[[64069,64069],"mapped","海"],[[64070,64070],"mapped","渚"],[[64071,64071],"mapped","漢"],[[64072,64072],"mapped","煮"],[[64073,64073],"mapped","爫"],[[64074,64074],"mapped","琢"],[[64075,64075],"mapped","碑"],[[64076,64076],"mapped","社"],[[64077,64077],"mapped","祉"],[[64078,64078],"mapped","祈"],[[64079,64079],"mapped","祐"],[[64080,64080],"mapped","祖"],[[64081,64081],"mapped","祝"],[[64082,64082],"mapped","禍"],[[64083,64083],"mapped","禎"],[[64084,64084],"mapped","穀"],[[64085,64085],"mapped","突"],[[64086,64086],"mapped","節"],[[64087,64087],"mapped","練"],[[64088,64088],"mapped","縉"],[[64089,64089],"mapped","繁"],[[64090,64090],"mapped","署"],[[64091,64091],"mapped","者"],[[64092,64092],"mapped","臭"],[[64093,64094],"mapped","艹"],[[64095,64095],"mapped","著"],[[64096,64096],"mapped","褐"],[[64097,64097],"mapped","視"],[[64098,64098],"mapped","謁"],[[64099,64099],"mapped","謹"],[[64100,64100],"mapped","賓"],[[64101,64101],"mapped","贈"],[[64102,64102],"mapped","辶"],[[64103,64103],"mapped","逸"],[[64104,64104],"mapped","難"],[[64105,64105],"mapped","響"],[[64106,64106],"mapped","頻"],[[64107,64107],"mapped","恵"],[[64108,64108],"mapped","𤋮"],[[64109,64109],"mapped","舘"],[[64110,64111],"disallowed"],[[64112,64112],"mapped","並"],[[64113,64113],"mapped","况"],[[64114,64114],"mapped","全"],[[64115,64115],"mapped","侀"],[[64116,64116],"mapped","充"],[[64117,64117],"mapped","冀"],[[64118,64118],"mapped","勇"],[[64119,64119],"mapped","勺"],[[64120,64120],"mapped","喝"],[[64121,64121],"mapped","啕"],[[64122,64122],"mapped","喙"],[[64123,64123],"mapped","嗢"],[[64124,64124],"mapped","塚"],[[64125,64125],"mapped","墳"],[[64126,64126],"mapped","奄"],[[64127,64127],"mapped","奔"],[[64128,64128],"mapped","婢"],[[64129,64129],"mapped","嬨"],[[64130,64130],"mapped","廒"],[[64131,64131],"mapped","廙"],[[64132,64132],"mapped","彩"],[[64133,64133],"mapped","徭"],[[64134,64134],"mapped","惘"],[[64135,64135],"mapped","慎"],[[64136,64136],"mapped","愈"],[[64137,64137],"mapped","憎"],[[64138,64138],"mapped","慠"],[[64139,64139],"mapped","懲"],[[64140,64140],"mapped","戴"],[[64141,64141],"mapped","揄"],[[64142,64142],"mapped","搜"],[[64143,64143],"mapped","摒"],[[64144,64144],"mapped","敖"],[[64145,64145],"mapped","晴"],[[64146,64146],"mapped","朗"],[[64147,64147],"mapped","望"],[[64148,64148],"mapped","杖"],[[64149,64149],"mapped","歹"],[[64150,64150],"mapped","殺"],[[64151,64151],"mapped","流"],[[64152,64152],"mapped","滛"],[[64153,64153],"mapped","滋"],[[64154,64154],"mapped","漢"],[[64155,64155],"mapped","瀞"],[[64156,64156],"mapped","煮"],[[64157,64157],"mapped","瞧"],[[64158,64158],"mapped","爵"],[[64159,64159],"mapped","犯"],[[64160,64160],"mapped","猪"],[[64161,64161],"mapped","瑱"],[[64162,64162],"mapped","甆"],[[64163,64163],"mapped","画"],[[64164,64164],"mapped","瘝"],[[64165,64165],"mapped","瘟"],[[64166,64166],"mapped","益"],[[64167,64167],"mapped","盛"],[[64168,64168],"mapped","直"],[[64169,64169],"mapped","睊"],[[64170,64170],"mapped","着"],[[64171,64171],"mapped","磌"],[[64172,64172],"mapped","窱"],[[64173,64173],"mapped","節"],[[64174,64174],"mapped","类"],[[64175,64175],"mapped","絛"],[[64176,64176],"mapped","練"],[[64177,64177],"mapped","缾"],[[64178,64178],"mapped","者"],[[64179,64179],"mapped","荒"],[[64180,64180],"mapped","華"],[[64181,64181],"mapped","蝹"],[[64182,64182],"mapped","襁"],[[64183,64183],"mapped","覆"],[[64184,64184],"mapped","視"],[[64185,64185],"mapped","調"],[[64186,64186],"mapped","諸"],[[64187,64187],"mapped","請"],[[64188,64188],"mapped","謁"],[[64189,64189],"mapped","諾"],[[64190,64190],"mapped","諭"],[[64191,64191],"mapped","謹"],[[64192,64192],"mapped","變"],[[64193,64193],"mapped","贈"],[[64194,64194],"mapped","輸"],[[64195,64195],"mapped","遲"],[[64196,64196],"mapped","醙"],[[64197,64197],"mapped","鉶"],[[64198,64198],"mapped","陼"],[[64199,64199],"mapped","難"],[[64200,64200],"mapped","靖"],[[64201,64201],"mapped","韛"],[[64202,64202],"mapped","響"],[[64203,64203],"mapped","頋"],[[64204,64204],"mapped","頻"],[[64205,64205],"mapped","鬒"],[[64206,64206],"mapped","龜"],[[64207,64207],"mapped","𢡊"],[[64208,64208],"mapped","𢡄"],[[64209,64209],"mapped","𣏕"],[[64210,64210],"mapped","㮝"],[[64211,64211],"mapped","䀘"],[[64212,64212],"mapped","䀹"],[[64213,64213],"mapped","𥉉"],[[64214,64214],"mapped","𥳐"],[[64215,64215],"mapped","𧻓"],[[64216,64216],"mapped","齃"],[[64217,64217],"mapped","龎"],[[64218,64255],"disallowed"],[[64256,64256],"mapped","ff"],[[64257,64257],"mapped","fi"],[[64258,64258],"mapped","fl"],[[64259,64259],"mapped","ffi"],[[64260,64260],"mapped","ffl"],[[64261,64262],"mapped","st"],[[64263,64274],"disallowed"],[[64275,64275],"mapped","մն"],[[64276,64276],"mapped","մե"],[[64277,64277],"mapped","մի"],[[64278,64278],"mapped","վն"],[[64279,64279],"mapped","մխ"],[[64280,64284],"disallowed"],[[64285,64285],"mapped","יִ"],[[64286,64286],"valid"],[[64287,64287],"mapped","ײַ"],[[64288,64288],"mapped","ע"],[[64289,64289],"mapped","א"],[[64290,64290],"mapped","ד"],[[64291,64291],"mapped","ה"],[[64292,64292],"mapped","כ"],[[64293,64293],"mapped","ל"],[[64294,64294],"mapped","ם"],[[64295,64295],"mapped","ר"],[[64296,64296],"mapped","ת"],[[64297,64297],"disallowed_STD3_mapped","+"],[[64298,64298],"mapped","שׁ"],[[64299,64299],"mapped","שׂ"],[[64300,64300],"mapped","שּׁ"],[[64301,64301],"mapped","שּׂ"],[[64302,64302],"mapped","אַ"],[[64303,64303],"mapped","אָ"],[[64304,64304],"mapped","אּ"],[[64305,64305],"mapped","בּ"],[[64306,64306],"mapped","גּ"],[[64307,64307],"mapped","דּ"],[[64308,64308],"mapped","הּ"],[[64309,64309],"mapped","וּ"],[[64310,64310],"mapped","זּ"],[[64311,64311],"disallowed"],[[64312,64312],"mapped","טּ"],[[64313,64313],"mapped","יּ"],[[64314,64314],"mapped","ךּ"],[[64315,64315],"mapped","כּ"],[[64316,64316],"mapped","לּ"],[[64317,64317],"disallowed"],[[64318,64318],"mapped","מּ"],[[64319,64319],"disallowed"],[[64320,64320],"mapped","נּ"],[[64321,64321],"mapped","סּ"],[[64322,64322],"disallowed"],[[64323,64323],"mapped","ףּ"],[[64324,64324],"mapped","פּ"],[[64325,64325],"disallowed"],[[64326,64326],"mapped","צּ"],[[64327,64327],"mapped","קּ"],[[64328,64328],"mapped","רּ"],[[64329,64329],"mapped","שּ"],[[64330,64330],"mapped","תּ"],[[64331,64331],"mapped","וֹ"],[[64332,64332],"mapped","בֿ"],[[64333,64333],"mapped","כֿ"],[[64334,64334],"mapped","פֿ"],[[64335,64335],"mapped","אל"],[[64336,64337],"mapped","ٱ"],[[64338,64341],"mapped","ٻ"],[[64342,64345],"mapped","پ"],[[64346,64349],"mapped","ڀ"],[[64350,64353],"mapped","ٺ"],[[64354,64357],"mapped","ٿ"],[[64358,64361],"mapped","ٹ"],[[64362,64365],"mapped","ڤ"],[[64366,64369],"mapped","ڦ"],[[64370,64373],"mapped","ڄ"],[[64374,64377],"mapped","ڃ"],[[64378,64381],"mapped","چ"],[[64382,64385],"mapped","ڇ"],[[64386,64387],"mapped","ڍ"],[[64388,64389],"mapped","ڌ"],[[64390,64391],"mapped","ڎ"],[[64392,64393],"mapped","ڈ"],[[64394,64395],"mapped","ژ"],[[64396,64397],"mapped","ڑ"],[[64398,64401],"mapped","ک"],[[64402,64405],"mapped","گ"],[[64406,64409],"mapped","ڳ"],[[64410,64413],"mapped","ڱ"],[[64414,64415],"mapped","ں"],[[64416,64419],"mapped","ڻ"],[[64420,64421],"mapped","ۀ"],[[64422,64425],"mapped","ہ"],[[64426,64429],"mapped","ھ"],[[64430,64431],"mapped","ے"],[[64432,64433],"mapped","ۓ"],[[64434,64449],"valid","","NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped","ڭ"],[[64471,64472],"mapped","ۇ"],[[64473,64474],"mapped","ۆ"],[[64475,64476],"mapped","ۈ"],[[64477,64477],"mapped","ۇٴ"],[[64478,64479],"mapped","ۋ"],[[64480,64481],"mapped","ۅ"],[[64482,64483],"mapped","ۉ"],[[64484,64487],"mapped","ې"],[[64488,64489],"mapped","ى"],[[64490,64491],"mapped","ئا"],[[64492,64493],"mapped","ئە"],[[64494,64495],"mapped","ئو"],[[64496,64497],"mapped","ئۇ"],[[64498,64499],"mapped","ئۆ"],[[64500,64501],"mapped","ئۈ"],[[64502,64504],"mapped","ئې"],[[64505,64507],"mapped","ئى"],[[64508,64511],"mapped","ی"],[[64512,64512],"mapped","ئج"],[[64513,64513],"mapped","ئح"],[[64514,64514],"mapped","ئم"],[[64515,64515],"mapped","ئى"],[[64516,64516],"mapped","ئي"],[[64517,64517],"mapped","بج"],[[64518,64518],"mapped","بح"],[[64519,64519],"mapped","بخ"],[[64520,64520],"mapped","بم"],[[64521,64521],"mapped","بى"],[[64522,64522],"mapped","بي"],[[64523,64523],"mapped","تج"],[[64524,64524],"mapped","تح"],[[64525,64525],"mapped","تخ"],[[64526,64526],"mapped","تم"],[[64527,64527],"mapped","تى"],[[64528,64528],"mapped","تي"],[[64529,64529],"mapped","ثج"],[[64530,64530],"mapped","ثم"],[[64531,64531],"mapped","ثى"],[[64532,64532],"mapped","ثي"],[[64533,64533],"mapped","جح"],[[64534,64534],"mapped","جم"],[[64535,64535],"mapped","حج"],[[64536,64536],"mapped","حم"],[[64537,64537],"mapped","خج"],[[64538,64538],"mapped","خح"],[[64539,64539],"mapped","خم"],[[64540,64540],"mapped","سج"],[[64541,64541],"mapped","سح"],[[64542,64542],"mapped","سخ"],[[64543,64543],"mapped","سم"],[[64544,64544],"mapped","صح"],[[64545,64545],"mapped","صم"],[[64546,64546],"mapped","ضج"],[[64547,64547],"mapped","ضح"],[[64548,64548],"mapped","ضخ"],[[64549,64549],"mapped","ضم"],[[64550,64550],"mapped","طح"],[[64551,64551],"mapped","طم"],[[64552,64552],"mapped","ظم"],[[64553,64553],"mapped","عج"],[[64554,64554],"mapped","عم"],[[64555,64555],"mapped","غج"],[[64556,64556],"mapped","غم"],[[64557,64557],"mapped","فج"],[[64558,64558],"mapped","فح"],[[64559,64559],"mapped","فخ"],[[64560,64560],"mapped","فم"],[[64561,64561],"mapped","فى"],[[64562,64562],"mapped","في"],[[64563,64563],"mapped","قح"],[[64564,64564],"mapped","قم"],[[64565,64565],"mapped","قى"],[[64566,64566],"mapped","قي"],[[64567,64567],"mapped","كا"],[[64568,64568],"mapped","كج"],[[64569,64569],"mapped","كح"],[[64570,64570],"mapped","كخ"],[[64571,64571],"mapped","كل"],[[64572,64572],"mapped","كم"],[[64573,64573],"mapped","كى"],[[64574,64574],"mapped","كي"],[[64575,64575],"mapped","لج"],[[64576,64576],"mapped","لح"],[[64577,64577],"mapped","لخ"],[[64578,64578],"mapped","لم"],[[64579,64579],"mapped","لى"],[[64580,64580],"mapped","لي"],[[64581,64581],"mapped","مج"],[[64582,64582],"mapped","مح"],[[64583,64583],"mapped","مخ"],[[64584,64584],"mapped","مم"],[[64585,64585],"mapped","مى"],[[64586,64586],"mapped","مي"],[[64587,64587],"mapped","نج"],[[64588,64588],"mapped","نح"],[[64589,64589],"mapped","نخ"],[[64590,64590],"mapped","نم"],[[64591,64591],"mapped","نى"],[[64592,64592],"mapped","ني"],[[64593,64593],"mapped","هج"],[[64594,64594],"mapped","هم"],[[64595,64595],"mapped","هى"],[[64596,64596],"mapped","هي"],[[64597,64597],"mapped","يج"],[[64598,64598],"mapped","يح"],[[64599,64599],"mapped","يخ"],[[64600,64600],"mapped","يم"],[[64601,64601],"mapped","يى"],[[64602,64602],"mapped","يي"],[[64603,64603],"mapped","ذٰ"],[[64604,64604],"mapped","رٰ"],[[64605,64605],"mapped","ىٰ"],[[64606,64606],"disallowed_STD3_mapped"," ٌّ"],[[64607,64607],"disallowed_STD3_mapped"," ٍّ"],[[64608,64608],"disallowed_STD3_mapped"," َّ"],[[64609,64609],"disallowed_STD3_mapped"," ُّ"],[[64610,64610],"disallowed_STD3_mapped"," ِّ"],[[64611,64611],"disallowed_STD3_mapped"," ّٰ"],[[64612,64612],"mapped","ئر"],[[64613,64613],"mapped","ئز"],[[64614,64614],"mapped","ئم"],[[64615,64615],"mapped","ئن"],[[64616,64616],"mapped","ئى"],[[64617,64617],"mapped","ئي"],[[64618,64618],"mapped","بر"],[[64619,64619],"mapped","بز"],[[64620,64620],"mapped","بم"],[[64621,64621],"mapped","بن"],[[64622,64622],"mapped","بى"],[[64623,64623],"mapped","بي"],[[64624,64624],"mapped","تر"],[[64625,64625],"mapped","تز"],[[64626,64626],"mapped","تم"],[[64627,64627],"mapped","تن"],[[64628,64628],"mapped","تى"],[[64629,64629],"mapped","تي"],[[64630,64630],"mapped","ثر"],[[64631,64631],"mapped","ثز"],[[64632,64632],"mapped","ثم"],[[64633,64633],"mapped","ثن"],[[64634,64634],"mapped","ثى"],[[64635,64635],"mapped","ثي"],[[64636,64636],"mapped","فى"],[[64637,64637],"mapped","في"],[[64638,64638],"mapped","قى"],[[64639,64639],"mapped","قي"],[[64640,64640],"mapped","كا"],[[64641,64641],"mapped","كل"],[[64642,64642],"mapped","كم"],[[64643,64643],"mapped","كى"],[[64644,64644],"mapped","كي"],[[64645,64645],"mapped","لم"],[[64646,64646],"mapped","لى"],[[64647,64647],"mapped","لي"],[[64648,64648],"mapped","ما"],[[64649,64649],"mapped","مم"],[[64650,64650],"mapped","نر"],[[64651,64651],"mapped","نز"],[[64652,64652],"mapped","نم"],[[64653,64653],"mapped","نن"],[[64654,64654],"mapped","نى"],[[64655,64655],"mapped","ني"],[[64656,64656],"mapped","ىٰ"],[[64657,64657],"mapped","ير"],[[64658,64658],"mapped","يز"],[[64659,64659],"mapped","يم"],[[64660,64660],"mapped","ين"],[[64661,64661],"mapped","يى"],[[64662,64662],"mapped","يي"],[[64663,64663],"mapped","ئج"],[[64664,64664],"mapped","ئح"],[[64665,64665],"mapped","ئخ"],[[64666,64666],"mapped","ئم"],[[64667,64667],"mapped","ئه"],[[64668,64668],"mapped","بج"],[[64669,64669],"mapped","بح"],[[64670,64670],"mapped","بخ"],[[64671,64671],"mapped","بم"],[[64672,64672],"mapped","به"],[[64673,64673],"mapped","تج"],[[64674,64674],"mapped","تح"],[[64675,64675],"mapped","تخ"],[[64676,64676],"mapped","تم"],[[64677,64677],"mapped","ته"],[[64678,64678],"mapped","ثم"],[[64679,64679],"mapped","جح"],[[64680,64680],"mapped","جم"],[[64681,64681],"mapped","حج"],[[64682,64682],"mapped","حم"],[[64683,64683],"mapped","خج"],[[64684,64684],"mapped","خم"],[[64685,64685],"mapped","سج"],[[64686,64686],"mapped","سح"],[[64687,64687],"mapped","سخ"],[[64688,64688],"mapped","سم"],[[64689,64689],"mapped","صح"],[[64690,64690],"mapped","صخ"],[[64691,64691],"mapped","صم"],[[64692,64692],"mapped","ضج"],[[64693,64693],"mapped","ضح"],[[64694,64694],"mapped","ضخ"],[[64695,64695],"mapped","ضم"],[[64696,64696],"mapped","طح"],[[64697,64697],"mapped","ظم"],[[64698,64698],"mapped","عج"],[[64699,64699],"mapped","عم"],[[64700,64700],"mapped","غج"],[[64701,64701],"mapped","غم"],[[64702,64702],"mapped","فج"],[[64703,64703],"mapped","فح"],[[64704,64704],"mapped","فخ"],[[64705,64705],"mapped","فم"],[[64706,64706],"mapped","قح"],[[64707,64707],"mapped","قم"],[[64708,64708],"mapped","كج"],[[64709,64709],"mapped","كح"],[[64710,64710],"mapped","كخ"],[[64711,64711],"mapped","كل"],[[64712,64712],"mapped","كم"],[[64713,64713],"mapped","لج"],[[64714,64714],"mapped","لح"],[[64715,64715],"mapped","لخ"],[[64716,64716],"mapped","لم"],[[64717,64717],"mapped","له"],[[64718,64718],"mapped","مج"],[[64719,64719],"mapped","مح"],[[64720,64720],"mapped","مخ"],[[64721,64721],"mapped","مم"],[[64722,64722],"mapped","نج"],[[64723,64723],"mapped","نح"],[[64724,64724],"mapped","نخ"],[[64725,64725],"mapped","نم"],[[64726,64726],"mapped","نه"],[[64727,64727],"mapped","هج"],[[64728,64728],"mapped","هم"],[[64729,64729],"mapped","هٰ"],[[64730,64730],"mapped","يج"],[[64731,64731],"mapped","يح"],[[64732,64732],"mapped","يخ"],[[64733,64733],"mapped","يم"],[[64734,64734],"mapped","يه"],[[64735,64735],"mapped","ئم"],[[64736,64736],"mapped","ئه"],[[64737,64737],"mapped","بم"],[[64738,64738],"mapped","به"],[[64739,64739],"mapped","تم"],[[64740,64740],"mapped","ته"],[[64741,64741],"mapped","ثم"],[[64742,64742],"mapped","ثه"],[[64743,64743],"mapped","سم"],[[64744,64744],"mapped","سه"],[[64745,64745],"mapped","شم"],[[64746,64746],"mapped","شه"],[[64747,64747],"mapped","كل"],[[64748,64748],"mapped","كم"],[[64749,64749],"mapped","لم"],[[64750,64750],"mapped","نم"],[[64751,64751],"mapped","نه"],[[64752,64752],"mapped","يم"],[[64753,64753],"mapped","يه"],[[64754,64754],"mapped","ـَّ"],[[64755,64755],"mapped","ـُّ"],[[64756,64756],"mapped","ـِّ"],[[64757,64757],"mapped","طى"],[[64758,64758],"mapped","طي"],[[64759,64759],"mapped","عى"],[[64760,64760],"mapped","عي"],[[64761,64761],"mapped","غى"],[[64762,64762],"mapped","غي"],[[64763,64763],"mapped","سى"],[[64764,64764],"mapped","سي"],[[64765,64765],"mapped","شى"],[[64766,64766],"mapped","شي"],[[64767,64767],"mapped","حى"],[[64768,64768],"mapped","حي"],[[64769,64769],"mapped","جى"],[[64770,64770],"mapped","جي"],[[64771,64771],"mapped","خى"],[[64772,64772],"mapped","خي"],[[64773,64773],"mapped","صى"],[[64774,64774],"mapped","صي"],[[64775,64775],"mapped","ضى"],[[64776,64776],"mapped","ضي"],[[64777,64777],"mapped","شج"],[[64778,64778],"mapped","شح"],[[64779,64779],"mapped","شخ"],[[64780,64780],"mapped","شم"],[[64781,64781],"mapped","شر"],[[64782,64782],"mapped","سر"],[[64783,64783],"mapped","صر"],[[64784,64784],"mapped","ضر"],[[64785,64785],"mapped","طى"],[[64786,64786],"mapped","طي"],[[64787,64787],"mapped","عى"],[[64788,64788],"mapped","عي"],[[64789,64789],"mapped","غى"],[[64790,64790],"mapped","غي"],[[64791,64791],"mapped","سى"],[[64792,64792],"mapped","سي"],[[64793,64793],"mapped","شى"],[[64794,64794],"mapped","شي"],[[64795,64795],"mapped","حى"],[[64796,64796],"mapped","حي"],[[64797,64797],"mapped","جى"],[[64798,64798],"mapped","جي"],[[64799,64799],"mapped","خى"],[[64800,64800],"mapped","خي"],[[64801,64801],"mapped","صى"],[[64802,64802],"mapped","صي"],[[64803,64803],"mapped","ضى"],[[64804,64804],"mapped","ضي"],[[64805,64805],"mapped","شج"],[[64806,64806],"mapped","شح"],[[64807,64807],"mapped","شخ"],[[64808,64808],"mapped","شم"],[[64809,64809],"mapped","شر"],[[64810,64810],"mapped","سر"],[[64811,64811],"mapped","صر"],[[64812,64812],"mapped","ضر"],[[64813,64813],"mapped","شج"],[[64814,64814],"mapped","شح"],[[64815,64815],"mapped","شخ"],[[64816,64816],"mapped","شم"],[[64817,64817],"mapped","سه"],[[64818,64818],"mapped","شه"],[[64819,64819],"mapped","طم"],[[64820,64820],"mapped","سج"],[[64821,64821],"mapped","سح"],[[64822,64822],"mapped","سخ"],[[64823,64823],"mapped","شج"],[[64824,64824],"mapped","شح"],[[64825,64825],"mapped","شخ"],[[64826,64826],"mapped","طم"],[[64827,64827],"mapped","ظم"],[[64828,64829],"mapped","اً"],[[64830,64831],"valid","","NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped","تجم"],[[64849,64850],"mapped","تحج"],[[64851,64851],"mapped","تحم"],[[64852,64852],"mapped","تخم"],[[64853,64853],"mapped","تمج"],[[64854,64854],"mapped","تمح"],[[64855,64855],"mapped","تمخ"],[[64856,64857],"mapped","جمح"],[[64858,64858],"mapped","حمي"],[[64859,64859],"mapped","حمى"],[[64860,64860],"mapped","سحج"],[[64861,64861],"mapped","سجح"],[[64862,64862],"mapped","سجى"],[[64863,64864],"mapped","سمح"],[[64865,64865],"mapped","سمج"],[[64866,64867],"mapped","سمم"],[[64868,64869],"mapped","صحح"],[[64870,64870],"mapped","صمم"],[[64871,64872],"mapped","شحم"],[[64873,64873],"mapped","شجي"],[[64874,64875],"mapped","شمخ"],[[64876,64877],"mapped","شمم"],[[64878,64878],"mapped","ضحى"],[[64879,64880],"mapped","ضخم"],[[64881,64882],"mapped","طمح"],[[64883,64883],"mapped","طمم"],[[64884,64884],"mapped","طمي"],[[64885,64885],"mapped","عجم"],[[64886,64887],"mapped","عمم"],[[64888,64888],"mapped","عمى"],[[64889,64889],"mapped","غمم"],[[64890,64890],"mapped","غمي"],[[64891,64891],"mapped","غمى"],[[64892,64893],"mapped","فخم"],[[64894,64894],"mapped","قمح"],[[64895,64895],"mapped","قمم"],[[64896,64896],"mapped","لحم"],[[64897,64897],"mapped","لحي"],[[64898,64898],"mapped","لحى"],[[64899,64900],"mapped","لجج"],[[64901,64902],"mapped","لخم"],[[64903,64904],"mapped","لمح"],[[64905,64905],"mapped","محج"],[[64906,64906],"mapped","محم"],[[64907,64907],"mapped","محي"],[[64908,64908],"mapped","مجح"],[[64909,64909],"mapped","مجم"],[[64910,64910],"mapped","مخج"],[[64911,64911],"mapped","مخم"],[[64912,64913],"disallowed"],[[64914,64914],"mapped","مجخ"],[[64915,64915],"mapped","همج"],[[64916,64916],"mapped","همم"],[[64917,64917],"mapped","نحم"],[[64918,64918],"mapped","نحى"],[[64919,64920],"mapped","نجم"],[[64921,64921],"mapped","نجى"],[[64922,64922],"mapped","نمي"],[[64923,64923],"mapped","نمى"],[[64924,64925],"mapped","يمم"],[[64926,64926],"mapped","بخي"],[[64927,64927],"mapped","تجي"],[[64928,64928],"mapped","تجى"],[[64929,64929],"mapped","تخي"],[[64930,64930],"mapped","تخى"],[[64931,64931],"mapped","تمي"],[[64932,64932],"mapped","تمى"],[[64933,64933],"mapped","جمي"],[[64934,64934],"mapped","جحى"],[[64935,64935],"mapped","جمى"],[[64936,64936],"mapped","سخى"],[[64937,64937],"mapped","صحي"],[[64938,64938],"mapped","شحي"],[[64939,64939],"mapped","ضحي"],[[64940,64940],"mapped","لجي"],[[64941,64941],"mapped","لمي"],[[64942,64942],"mapped","يحي"],[[64943,64943],"mapped","يجي"],[[64944,64944],"mapped","يمي"],[[64945,64945],"mapped","ممي"],[[64946,64946],"mapped","قمي"],[[64947,64947],"mapped","نحي"],[[64948,64948],"mapped","قمح"],[[64949,64949],"mapped","لحم"],[[64950,64950],"mapped","عمي"],[[64951,64951],"mapped","كمي"],[[64952,64952],"mapped","نجح"],[[64953,64953],"mapped","مخي"],[[64954,64954],"mapped","لجم"],[[64955,64955],"mapped","كمم"],[[64956,64956],"mapped","لجم"],[[64957,64957],"mapped","نجح"],[[64958,64958],"mapped","جحي"],[[64959,64959],"mapped","حجي"],[[64960,64960],"mapped","مجي"],[[64961,64961],"mapped","فمي"],[[64962,64962],"mapped","بحي"],[[64963,64963],"mapped","كمم"],[[64964,64964],"mapped","عجم"],[[64965,64965],"mapped","صمم"],[[64966,64966],"mapped","سخي"],[[64967,64967],"mapped","نجي"],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped","صلے"],[[65009,65009],"mapped","قلے"],[[65010,65010],"mapped","الله"],[[65011,65011],"mapped","اكبر"],[[65012,65012],"mapped","محمد"],[[65013,65013],"mapped","صلعم"],[[65014,65014],"mapped","رسول"],[[65015,65015],"mapped","عليه"],[[65016,65016],"mapped","وسلم"],[[65017,65017],"mapped","صلى"],[[65018,65018],"disallowed_STD3_mapped","صلى الله عليه وسلم"],[[65019,65019],"disallowed_STD3_mapped","جل جلاله"],[[65020,65020],"mapped","ریال"],[[65021,65021],"valid","","NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",","],[[65041,65041],"mapped","、"],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",":"],[[65044,65044],"disallowed_STD3_mapped",";"],[[65045,65045],"disallowed_STD3_mapped","!"],[[65046,65046],"disallowed_STD3_mapped","?"],[[65047,65047],"mapped","〖"],[[65048,65048],"mapped","〗"],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped","—"],[[65074,65074],"mapped","–"],[[65075,65076],"disallowed_STD3_mapped","_"],[[65077,65077],"disallowed_STD3_mapped","("],[[65078,65078],"disallowed_STD3_mapped",")"],[[65079,65079],"disallowed_STD3_mapped","{"],[[65080,65080],"disallowed_STD3_mapped","}"],[[65081,65081],"mapped","〔"],[[65082,65082],"mapped","〕"],[[65083,65083],"mapped","【"],[[65084,65084],"mapped","】"],[[65085,65085],"mapped","《"],[[65086,65086],"mapped","》"],[[65087,65087],"mapped","〈"],[[65088,65088],"mapped","〉"],[[65089,65089],"mapped","「"],[[65090,65090],"mapped","」"],[[65091,65091],"mapped","『"],[[65092,65092],"mapped","』"],[[65093,65094],"valid","","NV8"],[[65095,65095],"disallowed_STD3_mapped","["],[[65096,65096],"disallowed_STD3_mapped","]"],[[65097,65100],"disallowed_STD3_mapped"," ̅"],[[65101,65103],"disallowed_STD3_mapped","_"],[[65104,65104],"disallowed_STD3_mapped",","],[[65105,65105],"mapped","、"],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",";"],[[65109,65109],"disallowed_STD3_mapped",":"],[[65110,65110],"disallowed_STD3_mapped","?"],[[65111,65111],"disallowed_STD3_mapped","!"],[[65112,65112],"mapped","—"],[[65113,65113],"disallowed_STD3_mapped","("],[[65114,65114],"disallowed_STD3_mapped",")"],[[65115,65115],"disallowed_STD3_mapped","{"],[[65116,65116],"disallowed_STD3_mapped","}"],[[65117,65117],"mapped","〔"],[[65118,65118],"mapped","〕"],[[65119,65119],"disallowed_STD3_mapped","#"],[[65120,65120],"disallowed_STD3_mapped","&"],[[65121,65121],"disallowed_STD3_mapped","*"],[[65122,65122],"disallowed_STD3_mapped","+"],[[65123,65123],"mapped","-"],[[65124,65124],"disallowed_STD3_mapped","<"],[[65125,65125],"disallowed_STD3_mapped",">"],[[65126,65126],"disallowed_STD3_mapped","="],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped","\\"],[[65129,65129],"disallowed_STD3_mapped","$"],[[65130,65130],"disallowed_STD3_mapped","%"],[[65131,65131],"disallowed_STD3_mapped","@"],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped"," ً"],[[65137,65137],"mapped","ـً"],[[65138,65138],"disallowed_STD3_mapped"," ٌ"],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped"," ٍ"],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped"," َ"],[[65143,65143],"mapped","ـَ"],[[65144,65144],"disallowed_STD3_mapped"," ُ"],[[65145,65145],"mapped","ـُ"],[[65146,65146],"disallowed_STD3_mapped"," ِ"],[[65147,65147],"mapped","ـِ"],[[65148,65148],"disallowed_STD3_mapped"," ّ"],[[65149,65149],"mapped","ـّ"],[[65150,65150],"disallowed_STD3_mapped"," ْ"],[[65151,65151],"mapped","ـْ"],[[65152,65152],"mapped","ء"],[[65153,65154],"mapped","آ"],[[65155,65156],"mapped","أ"],[[65157,65158],"mapped","ؤ"],[[65159,65160],"mapped","إ"],[[65161,65164],"mapped","ئ"],[[65165,65166],"mapped","ا"],[[65167,65170],"mapped","ب"],[[65171,65172],"mapped","ة"],[[65173,65176],"mapped","ت"],[[65177,65180],"mapped","ث"],[[65181,65184],"mapped","ج"],[[65185,65188],"mapped","ح"],[[65189,65192],"mapped","خ"],[[65193,65194],"mapped","د"],[[65195,65196],"mapped","ذ"],[[65197,65198],"mapped","ر"],[[65199,65200],"mapped","ز"],[[65201,65204],"mapped","س"],[[65205,65208],"mapped","ش"],[[65209,65212],"mapped","ص"],[[65213,65216],"mapped","ض"],[[65217,65220],"mapped","ط"],[[65221,65224],"mapped","ظ"],[[65225,65228],"mapped","ع"],[[65229,65232],"mapped","غ"],[[65233,65236],"mapped","ف"],[[65237,65240],"mapped","ق"],[[65241,65244],"mapped","ك"],[[65245,65248],"mapped","ل"],[[65249,65252],"mapped","م"],[[65253,65256],"mapped","ن"],[[65257,65260],"mapped","ه"],[[65261,65262],"mapped","و"],[[65263,65264],"mapped","ى"],[[65265,65268],"mapped","ي"],[[65269,65270],"mapped","لآ"],[[65271,65272],"mapped","لأ"],[[65273,65274],"mapped","لإ"],[[65275,65276],"mapped","لا"],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped","!"],[[65282,65282],"disallowed_STD3_mapped",'"'],[[65283,65283],"disallowed_STD3_mapped","#"],[[65284,65284],"disallowed_STD3_mapped","$"],[[65285,65285],"disallowed_STD3_mapped","%"],[[65286,65286],"disallowed_STD3_mapped","&"],[[65287,65287],"disallowed_STD3_mapped","'"],[[65288,65288],"disallowed_STD3_mapped","("],[[65289,65289],"disallowed_STD3_mapped",")"],[[65290,65290],"disallowed_STD3_mapped","*"],[[65291,65291],"disallowed_STD3_mapped","+"],[[65292,65292],"disallowed_STD3_mapped",","],[[65293,65293],"mapped","-"],[[65294,65294],"mapped","."],[[65295,65295],"disallowed_STD3_mapped","/"],[[65296,65296],"mapped","0"],[[65297,65297],"mapped","1"],[[65298,65298],"mapped","2"],[[65299,65299],"mapped","3"],[[65300,65300],"mapped","4"],[[65301,65301],"mapped","5"],[[65302,65302],"mapped","6"],[[65303,65303],"mapped","7"],[[65304,65304],"mapped","8"],[[65305,65305],"mapped","9"],[[65306,65306],"disallowed_STD3_mapped",":"],[[65307,65307],"disallowed_STD3_mapped",";"],[[65308,65308],"disallowed_STD3_mapped","<"],[[65309,65309],"disallowed_STD3_mapped","="],[[65310,65310],"disallowed_STD3_mapped",">"],[[65311,65311],"disallowed_STD3_mapped","?"],[[65312,65312],"disallowed_STD3_mapped","@"],[[65313,65313],"mapped","a"],[[65314,65314],"mapped","b"],[[65315,65315],"mapped","c"],[[65316,65316],"mapped","d"],[[65317,65317],"mapped","e"],[[65318,65318],"mapped","f"],[[65319,65319],"mapped","g"],[[65320,65320],"mapped","h"],[[65321,65321],"mapped","i"],[[65322,65322],"mapped","j"],[[65323,65323],"mapped","k"],[[65324,65324],"mapped","l"],[[65325,65325],"mapped","m"],[[65326,65326],"mapped","n"],[[65327,65327],"mapped","o"],[[65328,65328],"mapped","p"],[[65329,65329],"mapped","q"],[[65330,65330],"mapped","r"],[[65331,65331],"mapped","s"],[[65332,65332],"mapped","t"],[[65333,65333],"mapped","u"],[[65334,65334],"mapped","v"],[[65335,65335],"mapped","w"],[[65336,65336],"mapped","x"],[[65337,65337],"mapped","y"],[[65338,65338],"mapped","z"],[[65339,65339],"disallowed_STD3_mapped","["],[[65340,65340],"disallowed_STD3_mapped","\\"],[[65341,65341],"disallowed_STD3_mapped","]"],[[65342,65342],"disallowed_STD3_mapped","^"],[[65343,65343],"disallowed_STD3_mapped","_"],[[65344,65344],"disallowed_STD3_mapped","`"],[[65345,65345],"mapped","a"],[[65346,65346],"mapped","b"],[[65347,65347],"mapped","c"],[[65348,65348],"mapped","d"],[[65349,65349],"mapped","e"],[[65350,65350],"mapped","f"],[[65351,65351],"mapped","g"],[[65352,65352],"mapped","h"],[[65353,65353],"mapped","i"],[[65354,65354],"mapped","j"],[[65355,65355],"mapped","k"],[[65356,65356],"mapped","l"],[[65357,65357],"mapped","m"],[[65358,65358],"mapped","n"],[[65359,65359],"mapped","o"],[[65360,65360],"mapped","p"],[[65361,65361],"mapped","q"],[[65362,65362],"mapped","r"],[[65363,65363],"mapped","s"],[[65364,65364],"mapped","t"],[[65365,65365],"mapped","u"],[[65366,65366],"mapped","v"],[[65367,65367],"mapped","w"],[[65368,65368],"mapped","x"],[[65369,65369],"mapped","y"],[[65370,65370],"mapped","z"],[[65371,65371],"disallowed_STD3_mapped","{"],[[65372,65372],"disallowed_STD3_mapped","|"],[[65373,65373],"disallowed_STD3_mapped","}"],[[65374,65374],"disallowed_STD3_mapped","~"],[[65375,65375],"mapped","⦅"],[[65376,65376],"mapped","⦆"],[[65377,65377],"mapped","."],[[65378,65378],"mapped","「"],[[65379,65379],"mapped","」"],[[65380,65380],"mapped","、"],[[65381,65381],"mapped","・"],[[65382,65382],"mapped","ヲ"],[[65383,65383],"mapped","ァ"],[[65384,65384],"mapped","ィ"],[[65385,65385],"mapped","ゥ"],[[65386,65386],"mapped","ェ"],[[65387,65387],"mapped","ォ"],[[65388,65388],"mapped","ャ"],[[65389,65389],"mapped","ュ"],[[65390,65390],"mapped","ョ"],[[65391,65391],"mapped","ッ"],[[65392,65392],"mapped","ー"],[[65393,65393],"mapped","ア"],[[65394,65394],"mapped","イ"],[[65395,65395],"mapped","ウ"],[[65396,65396],"mapped","エ"],[[65397,65397],"mapped","オ"],[[65398,65398],"mapped","カ"],[[65399,65399],"mapped","キ"],[[65400,65400],"mapped","ク"],[[65401,65401],"mapped","ケ"],[[65402,65402],"mapped","コ"],[[65403,65403],"mapped","サ"],[[65404,65404],"mapped","シ"],[[65405,65405],"mapped","ス"],[[65406,65406],"mapped","セ"],[[65407,65407],"mapped","ソ"],[[65408,65408],"mapped","タ"],[[65409,65409],"mapped","チ"],[[65410,65410],"mapped","ツ"],[[65411,65411],"mapped","テ"],[[65412,65412],"mapped","ト"],[[65413,65413],"mapped","ナ"],[[65414,65414],"mapped","ニ"],[[65415,65415],"mapped","ヌ"],[[65416,65416],"mapped","ネ"],[[65417,65417],"mapped","ノ"],[[65418,65418],"mapped","ハ"],[[65419,65419],"mapped","ヒ"],[[65420,65420],"mapped","フ"],[[65421,65421],"mapped","ヘ"],[[65422,65422],"mapped","ホ"],[[65423,65423],"mapped","マ"],[[65424,65424],"mapped","ミ"],[[65425,65425],"mapped","ム"],[[65426,65426],"mapped","メ"],[[65427,65427],"mapped","モ"],[[65428,65428],"mapped","ヤ"],[[65429,65429],"mapped","ユ"],[[65430,65430],"mapped","ヨ"],[[65431,65431],"mapped","ラ"],[[65432,65432],"mapped","リ"],[[65433,65433],"mapped","ル"],[[65434,65434],"mapped","レ"],[[65435,65435],"mapped","ロ"],[[65436,65436],"mapped","ワ"],[[65437,65437],"mapped","ン"],[[65438,65438],"mapped","゙"],[[65439,65439],"mapped","゚"],[[65440,65440],"disallowed"],[[65441,65441],"mapped","ᄀ"],[[65442,65442],"mapped","ᄁ"],[[65443,65443],"mapped","ᆪ"],[[65444,65444],"mapped","ᄂ"],[[65445,65445],"mapped","ᆬ"],[[65446,65446],"mapped","ᆭ"],[[65447,65447],"mapped","ᄃ"],[[65448,65448],"mapped","ᄄ"],[[65449,65449],"mapped","ᄅ"],[[65450,65450],"mapped","ᆰ"],[[65451,65451],"mapped","ᆱ"],[[65452,65452],"mapped","ᆲ"],[[65453,65453],"mapped","ᆳ"],[[65454,65454],"mapped","ᆴ"],[[65455,65455],"mapped","ᆵ"],[[65456,65456],"mapped","ᄚ"],[[65457,65457],"mapped","ᄆ"],[[65458,65458],"mapped","ᄇ"],[[65459,65459],"mapped","ᄈ"],[[65460,65460],"mapped","ᄡ"],[[65461,65461],"mapped","ᄉ"],[[65462,65462],"mapped","ᄊ"],[[65463,65463],"mapped","ᄋ"],[[65464,65464],"mapped","ᄌ"],[[65465,65465],"mapped","ᄍ"],[[65466,65466],"mapped","ᄎ"],[[65467,65467],"mapped","ᄏ"],[[65468,65468],"mapped","ᄐ"],[[65469,65469],"mapped","ᄑ"],[[65470,65470],"mapped","ᄒ"],[[65471,65473],"disallowed"],[[65474,65474],"mapped","ᅡ"],[[65475,65475],"mapped","ᅢ"],[[65476,65476],"mapped","ᅣ"],[[65477,65477],"mapped","ᅤ"],[[65478,65478],"mapped","ᅥ"],[[65479,65479],"mapped","ᅦ"],[[65480,65481],"disallowed"],[[65482,65482],"mapped","ᅧ"],[[65483,65483],"mapped","ᅨ"],[[65484,65484],"mapped","ᅩ"],[[65485,65485],"mapped","ᅪ"],[[65486,65486],"mapped","ᅫ"],[[65487,65487],"mapped","ᅬ"],[[65488,65489],"disallowed"],[[65490,65490],"mapped","ᅭ"],[[65491,65491],"mapped","ᅮ"],[[65492,65492],"mapped","ᅯ"],[[65493,65493],"mapped","ᅰ"],[[65494,65494],"mapped","ᅱ"],[[65495,65495],"mapped","ᅲ"],[[65496,65497],"disallowed"],[[65498,65498],"mapped","ᅳ"],[[65499,65499],"mapped","ᅴ"],[[65500,65500],"mapped","ᅵ"],[[65501,65503],"disallowed"],[[65504,65504],"mapped","¢"],[[65505,65505],"mapped","£"],[[65506,65506],"mapped","¬"],[[65507,65507],"disallowed_STD3_mapped"," ̄"],[[65508,65508],"mapped","¦"],[[65509,65509],"mapped","¥"],[[65510,65510],"mapped","₩"],[[65511,65511],"disallowed"],[[65512,65512],"mapped","│"],[[65513,65513],"mapped","←"],[[65514,65514],"mapped","↑"],[[65515,65515],"mapped","→"],[[65516,65516],"mapped","↓"],[[65517,65517],"mapped","■"],[[65518,65518],"mapped","○"],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid","","NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid","","NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid","","NV8"],[[65856,65930],"valid","","NV8"],[[65931,65932],"valid","","NV8"],[[65933,65934],"valid","","NV8"],[[65935,65935],"disallowed"],[[65936,65947],"valid","","NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid","","NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid","","NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid","","NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid","","NV8"],[[66340,66348],"disallowed"],[[66349,66351],"valid"],[[66352,66368],"valid"],[[66369,66369],"valid","","NV8"],[[66370,66377],"valid"],[[66378,66378],"valid","","NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid","","NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid","","NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped","𐐨"],[[66561,66561],"mapped","𐐩"],[[66562,66562],"mapped","𐐪"],[[66563,66563],"mapped","𐐫"],[[66564,66564],"mapped","𐐬"],[[66565,66565],"mapped","𐐭"],[[66566,66566],"mapped","𐐮"],[[66567,66567],"mapped","𐐯"],[[66568,66568],"mapped","𐐰"],[[66569,66569],"mapped","𐐱"],[[66570,66570],"mapped","𐐲"],[[66571,66571],"mapped","𐐳"],[[66572,66572],"mapped","𐐴"],[[66573,66573],"mapped","𐐵"],[[66574,66574],"mapped","𐐶"],[[66575,66575],"mapped","𐐷"],[[66576,66576],"mapped","𐐸"],[[66577,66577],"mapped","𐐹"],[[66578,66578],"mapped","𐐺"],[[66579,66579],"mapped","𐐻"],[[66580,66580],"mapped","𐐼"],[[66581,66581],"mapped","𐐽"],[[66582,66582],"mapped","𐐾"],[[66583,66583],"mapped","𐐿"],[[66584,66584],"mapped","𐑀"],[[66585,66585],"mapped","𐑁"],[[66586,66586],"mapped","𐑂"],[[66587,66587],"mapped","𐑃"],[[66588,66588],"mapped","𐑄"],[[66589,66589],"mapped","𐑅"],[[66590,66590],"mapped","𐑆"],[[66591,66591],"mapped","𐑇"],[[66592,66592],"mapped","𐑈"],[[66593,66593],"mapped","𐑉"],[[66594,66594],"mapped","𐑊"],[[66595,66595],"mapped","𐑋"],[[66596,66596],"mapped","𐑌"],[[66597,66597],"mapped","𐑍"],[[66598,66598],"mapped","𐑎"],[[66599,66599],"mapped","𐑏"],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66735],"disallowed"],[[66736,66736],"mapped","𐓘"],[[66737,66737],"mapped","𐓙"],[[66738,66738],"mapped","𐓚"],[[66739,66739],"mapped","𐓛"],[[66740,66740],"mapped","𐓜"],[[66741,66741],"mapped","𐓝"],[[66742,66742],"mapped","𐓞"],[[66743,66743],"mapped","𐓟"],[[66744,66744],"mapped","𐓠"],[[66745,66745],"mapped","𐓡"],[[66746,66746],"mapped","𐓢"],[[66747,66747],"mapped","𐓣"],[[66748,66748],"mapped","𐓤"],[[66749,66749],"mapped","𐓥"],[[66750,66750],"mapped","𐓦"],[[66751,66751],"mapped","𐓧"],[[66752,66752],"mapped","𐓨"],[[66753,66753],"mapped","𐓩"],[[66754,66754],"mapped","𐓪"],[[66755,66755],"mapped","𐓫"],[[66756,66756],"mapped","𐓬"],[[66757,66757],"mapped","𐓭"],[[66758,66758],"mapped","𐓮"],[[66759,66759],"mapped","𐓯"],[[66760,66760],"mapped","𐓰"],[[66761,66761],"mapped","𐓱"],[[66762,66762],"mapped","𐓲"],[[66763,66763],"mapped","𐓳"],[[66764,66764],"mapped","𐓴"],[[66765,66765],"mapped","𐓵"],[[66766,66766],"mapped","𐓶"],[[66767,66767],"mapped","𐓷"],[[66768,66768],"mapped","𐓸"],[[66769,66769],"mapped","𐓹"],[[66770,66770],"mapped","𐓺"],[[66771,66771],"mapped","𐓻"],[[66772,66775],"disallowed"],[[66776,66811],"valid"],[[66812,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid","","NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid","","NV8"],[[67680,67702],"valid"],[[67703,67711],"valid","","NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid","","NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid","","NV8"],[[67840,67861],"valid"],[[67862,67865],"valid","","NV8"],[[67866,67867],"valid","","NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid","","NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid","","NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid","","NV8"],[[68030,68031],"valid"],[[68032,68047],"valid","","NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid","","NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid","","NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid","","NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid","","NV8"],[[68224,68252],"valid"],[[68253,68255],"valid","","NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid","","NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid","","NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid","","NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid","","NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid","","NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid","","NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid","","NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped","𐳀"],[[68737,68737],"mapped","𐳁"],[[68738,68738],"mapped","𐳂"],[[68739,68739],"mapped","𐳃"],[[68740,68740],"mapped","𐳄"],[[68741,68741],"mapped","𐳅"],[[68742,68742],"mapped","𐳆"],[[68743,68743],"mapped","𐳇"],[[68744,68744],"mapped","𐳈"],[[68745,68745],"mapped","𐳉"],[[68746,68746],"mapped","𐳊"],[[68747,68747],"mapped","𐳋"],[[68748,68748],"mapped","𐳌"],[[68749,68749],"mapped","𐳍"],[[68750,68750],"mapped","𐳎"],[[68751,68751],"mapped","𐳏"],[[68752,68752],"mapped","𐳐"],[[68753,68753],"mapped","𐳑"],[[68754,68754],"mapped","𐳒"],[[68755,68755],"mapped","𐳓"],[[68756,68756],"mapped","𐳔"],[[68757,68757],"mapped","𐳕"],[[68758,68758],"mapped","𐳖"],[[68759,68759],"mapped","𐳗"],[[68760,68760],"mapped","𐳘"],[[68761,68761],"mapped","𐳙"],[[68762,68762],"mapped","𐳚"],[[68763,68763],"mapped","𐳛"],[[68764,68764],"mapped","𐳜"],[[68765,68765],"mapped","𐳝"],[[68766,68766],"mapped","𐳞"],[[68767,68767],"mapped","𐳟"],[[68768,68768],"mapped","𐳠"],[[68769,68769],"mapped","𐳡"],[[68770,68770],"mapped","𐳢"],[[68771,68771],"mapped","𐳣"],[[68772,68772],"mapped","𐳤"],[[68773,68773],"mapped","𐳥"],[[68774,68774],"mapped","𐳦"],[[68775,68775],"mapped","𐳧"],[[68776,68776],"mapped","𐳨"],[[68777,68777],"mapped","𐳩"],[[68778,68778],"mapped","𐳪"],[[68779,68779],"mapped","𐳫"],[[68780,68780],"mapped","𐳬"],[[68781,68781],"mapped","𐳭"],[[68782,68782],"mapped","𐳮"],[[68783,68783],"mapped","𐳯"],[[68784,68784],"mapped","𐳰"],[[68785,68785],"mapped","𐳱"],[[68786,68786],"mapped","𐳲"],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid","","NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid","","NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid","","NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid","","NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid","","NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid","","NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid","","NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid","","NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid","","NV8"],[[70089,70089],"valid","","NV8"],[[70090,70092],"valid"],[[70093,70093],"valid","","NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid","","NV8"],[[70108,70108],"valid"],[[70109,70111],"valid","","NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid","","NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid","","NV8"],[[70206,70206],"valid"],[[70207,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid","","NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70655],"disallowed"],[[70656,70730],"valid"],[[70731,70735],"valid","","NV8"],[[70736,70745],"valid"],[[70746,70746],"disallowed"],[[70747,70747],"valid","","NV8"],[[70748,70748],"disallowed"],[[70749,70749],"valid","","NV8"],[[70750,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid","","NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid","","NV8"],[[71114,71127],"valid","","NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid","","NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71263],"disallowed"],[[71264,71276],"valid","","NV8"],[[71277,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid","","NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped","𑣀"],[[71841,71841],"mapped","𑣁"],[[71842,71842],"mapped","𑣂"],[[71843,71843],"mapped","𑣃"],[[71844,71844],"mapped","𑣄"],[[71845,71845],"mapped","𑣅"],[[71846,71846],"mapped","𑣆"],[[71847,71847],"mapped","𑣇"],[[71848,71848],"mapped","𑣈"],[[71849,71849],"mapped","𑣉"],[[71850,71850],"mapped","𑣊"],[[71851,71851],"mapped","𑣋"],[[71852,71852],"mapped","𑣌"],[[71853,71853],"mapped","𑣍"],[[71854,71854],"mapped","𑣎"],[[71855,71855],"mapped","𑣏"],[[71856,71856],"mapped","𑣐"],[[71857,71857],"mapped","𑣑"],[[71858,71858],"mapped","𑣒"],[[71859,71859],"mapped","𑣓"],[[71860,71860],"mapped","𑣔"],[[71861,71861],"mapped","𑣕"],[[71862,71862],"mapped","𑣖"],[[71863,71863],"mapped","𑣗"],[[71864,71864],"mapped","𑣘"],[[71865,71865],"mapped","𑣙"],[[71866,71866],"mapped","𑣚"],[[71867,71867],"mapped","𑣛"],[[71868,71868],"mapped","𑣜"],[[71869,71869],"mapped","𑣝"],[[71870,71870],"mapped","𑣞"],[[71871,71871],"mapped","𑣟"],[[71872,71913],"valid"],[[71914,71922],"valid","","NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72191],"disallowed"],[[72192,72254],"valid"],[[72255,72262],"valid","","NV8"],[[72263,72263],"valid"],[[72264,72271],"disallowed"],[[72272,72323],"valid"],[[72324,72325],"disallowed"],[[72326,72345],"valid"],[[72346,72348],"valid","","NV8"],[[72349,72349],"disallowed"],[[72350,72354],"valid","","NV8"],[[72355,72383],"disallowed"],[[72384,72440],"valid"],[[72441,72703],"disallowed"],[[72704,72712],"valid"],[[72713,72713],"disallowed"],[[72714,72758],"valid"],[[72759,72759],"disallowed"],[[72760,72768],"valid"],[[72769,72773],"valid","","NV8"],[[72774,72783],"disallowed"],[[72784,72793],"valid"],[[72794,72812],"valid","","NV8"],[[72813,72815],"disallowed"],[[72816,72817],"valid","","NV8"],[[72818,72847],"valid"],[[72848,72849],"disallowed"],[[72850,72871],"valid"],[[72872,72872],"disallowed"],[[72873,72886],"valid"],[[72887,72959],"disallowed"],[[72960,72966],"valid"],[[72967,72967],"disallowed"],[[72968,72969],"valid"],[[72970,72970],"disallowed"],[[72971,73014],"valid"],[[73015,73017],"disallowed"],[[73018,73018],"valid"],[[73019,73019],"disallowed"],[[73020,73021],"valid"],[[73022,73022],"disallowed"],[[73023,73031],"valid"],[[73032,73039],"disallowed"],[[73040,73049],"valid"],[[73050,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid","","NV8"],[[74851,74862],"valid","","NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid","","NV8"],[[74868,74868],"valid","","NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid","","NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid","","NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid","","NV8"],[[92992,92995],"valid"],[[92996,92997],"valid","","NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid","","NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,94175],"disallowed"],[[94176,94176],"valid"],[[94177,94177],"valid"],[[94178,94207],"disallowed"],[[94208,100332],"valid"],[[100333,100351],"disallowed"],[[100352,101106],"valid"],[[101107,110591],"disallowed"],[[110592,110593],"valid"],[[110594,110878],"valid"],[[110879,110959],"disallowed"],[[110960,111355],"valid"],[[111356,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid","","NV8"],[[113821,113822],"valid"],[[113823,113823],"valid","","NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid","","NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid","","NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid","","NV8"],[[119082,119133],"valid","","NV8"],[[119134,119134],"mapped","𝅗𝅥"],[[119135,119135],"mapped","𝅘𝅥"],[[119136,119136],"mapped","𝅘𝅥𝅮"],[[119137,119137],"mapped","𝅘𝅥𝅯"],[[119138,119138],"mapped","𝅘𝅥𝅰"],[[119139,119139],"mapped","𝅘𝅥𝅱"],[[119140,119140],"mapped","𝅘𝅥𝅲"],[[119141,119154],"valid","","NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid","","NV8"],[[119227,119227],"mapped","𝆹𝅥"],[[119228,119228],"mapped","𝆺𝅥"],[[119229,119229],"mapped","𝆹𝅥𝅮"],[[119230,119230],"mapped","𝆺𝅥𝅮"],[[119231,119231],"mapped","𝆹𝅥𝅯"],[[119232,119232],"mapped","𝆺𝅥𝅯"],[[119233,119261],"valid","","NV8"],[[119262,119272],"valid","","NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid","","NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid","","NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid","","NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped","a"],[[119809,119809],"mapped","b"],[[119810,119810],"mapped","c"],[[119811,119811],"mapped","d"],[[119812,119812],"mapped","e"],[[119813,119813],"mapped","f"],[[119814,119814],"mapped","g"],[[119815,119815],"mapped","h"],[[119816,119816],"mapped","i"],[[119817,119817],"mapped","j"],[[119818,119818],"mapped","k"],[[119819,119819],"mapped","l"],[[119820,119820],"mapped","m"],[[119821,119821],"mapped","n"],[[119822,119822],"mapped","o"],[[119823,119823],"mapped","p"],[[119824,119824],"mapped","q"],[[119825,119825],"mapped","r"],[[119826,119826],"mapped","s"],[[119827,119827],"mapped","t"],[[119828,119828],"mapped","u"],[[119829,119829],"mapped","v"],[[119830,119830],"mapped","w"],[[119831,119831],"mapped","x"],[[119832,119832],"mapped","y"],[[119833,119833],"mapped","z"],[[119834,119834],"mapped","a"],[[119835,119835],"mapped","b"],[[119836,119836],"mapped","c"],[[119837,119837],"mapped","d"],[[119838,119838],"mapped","e"],[[119839,119839],"mapped","f"],[[119840,119840],"mapped","g"],[[119841,119841],"mapped","h"],[[119842,119842],"mapped","i"],[[119843,119843],"mapped","j"],[[119844,119844],"mapped","k"],[[119845,119845],"mapped","l"],[[119846,119846],"mapped","m"],[[119847,119847],"mapped","n"],[[119848,119848],"mapped","o"],[[119849,119849],"mapped","p"],[[119850,119850],"mapped","q"],[[119851,119851],"mapped","r"],[[119852,119852],"mapped","s"],[[119853,119853],"mapped","t"],[[119854,119854],"mapped","u"],[[119855,119855],"mapped","v"],[[119856,119856],"mapped","w"],[[119857,119857],"mapped","x"],[[119858,119858],"mapped","y"],[[119859,119859],"mapped","z"],[[119860,119860],"mapped","a"],[[119861,119861],"mapped","b"],[[119862,119862],"mapped","c"],[[119863,119863],"mapped","d"],[[119864,119864],"mapped","e"],[[119865,119865],"mapped","f"],[[119866,119866],"mapped","g"],[[119867,119867],"mapped","h"],[[119868,119868],"mapped","i"],[[119869,119869],"mapped","j"],[[119870,119870],"mapped","k"],[[119871,119871],"mapped","l"],[[119872,119872],"mapped","m"],[[119873,119873],"mapped","n"],[[119874,119874],"mapped","o"],[[119875,119875],"mapped","p"],[[119876,119876],"mapped","q"],[[119877,119877],"mapped","r"],[[119878,119878],"mapped","s"],[[119879,119879],"mapped","t"],[[119880,119880],"mapped","u"],[[119881,119881],"mapped","v"],[[119882,119882],"mapped","w"],[[119883,119883],"mapped","x"],[[119884,119884],"mapped","y"],[[119885,119885],"mapped","z"],[[119886,119886],"mapped","a"],[[119887,119887],"mapped","b"],[[119888,119888],"mapped","c"],[[119889,119889],"mapped","d"],[[119890,119890],"mapped","e"],[[119891,119891],"mapped","f"],[[119892,119892],"mapped","g"],[[119893,119893],"disallowed"],[[119894,119894],"mapped","i"],[[119895,119895],"mapped","j"],[[119896,119896],"mapped","k"],[[119897,119897],"mapped","l"],[[119898,119898],"mapped","m"],[[119899,119899],"mapped","n"],[[119900,119900],"mapped","o"],[[119901,119901],"mapped","p"],[[119902,119902],"mapped","q"],[[119903,119903],"mapped","r"],[[119904,119904],"mapped","s"],[[119905,119905],"mapped","t"],[[119906,119906],"mapped","u"],[[119907,119907],"mapped","v"],[[119908,119908],"mapped","w"],[[119909,119909],"mapped","x"],[[119910,119910],"mapped","y"],[[119911,119911],"mapped","z"],[[119912,119912],"mapped","a"],[[119913,119913],"mapped","b"],[[119914,119914],"mapped","c"],[[119915,119915],"mapped","d"],[[119916,119916],"mapped","e"],[[119917,119917],"mapped","f"],[[119918,119918],"mapped","g"],[[119919,119919],"mapped","h"],[[119920,119920],"mapped","i"],[[119921,119921],"mapped","j"],[[119922,119922],"mapped","k"],[[119923,119923],"mapped","l"],[[119924,119924],"mapped","m"],[[119925,119925],"mapped","n"],[[119926,119926],"mapped","o"],[[119927,119927],"mapped","p"],[[119928,119928],"mapped","q"],[[119929,119929],"mapped","r"],[[119930,119930],"mapped","s"],[[119931,119931],"mapped","t"],[[119932,119932],"mapped","u"],[[119933,119933],"mapped","v"],[[119934,119934],"mapped","w"],[[119935,119935],"mapped","x"],[[119936,119936],"mapped","y"],[[119937,119937],"mapped","z"],[[119938,119938],"mapped","a"],[[119939,119939],"mapped","b"],[[119940,119940],"mapped","c"],[[119941,119941],"mapped","d"],[[119942,119942],"mapped","e"],[[119943,119943],"mapped","f"],[[119944,119944],"mapped","g"],[[119945,119945],"mapped","h"],[[119946,119946],"mapped","i"],[[119947,119947],"mapped","j"],[[119948,119948],"mapped","k"],[[119949,119949],"mapped","l"],[[119950,119950],"mapped","m"],[[119951,119951],"mapped","n"],[[119952,119952],"mapped","o"],[[119953,119953],"mapped","p"],[[119954,119954],"mapped","q"],[[119955,119955],"mapped","r"],[[119956,119956],"mapped","s"],[[119957,119957],"mapped","t"],[[119958,119958],"mapped","u"],[[119959,119959],"mapped","v"],[[119960,119960],"mapped","w"],[[119961,119961],"mapped","x"],[[119962,119962],"mapped","y"],[[119963,119963],"mapped","z"],[[119964,119964],"mapped","a"],[[119965,119965],"disallowed"],[[119966,119966],"mapped","c"],[[119967,119967],"mapped","d"],[[119968,119969],"disallowed"],[[119970,119970],"mapped","g"],[[119971,119972],"disallowed"],[[119973,119973],"mapped","j"],[[119974,119974],"mapped","k"],[[119975,119976],"disallowed"],[[119977,119977],"mapped","n"],[[119978,119978],"mapped","o"],[[119979,119979],"mapped","p"],[[119980,119980],"mapped","q"],[[119981,119981],"disallowed"],[[119982,119982],"mapped","s"],[[119983,119983],"mapped","t"],[[119984,119984],"mapped","u"],[[119985,119985],"mapped","v"],[[119986,119986],"mapped","w"],[[119987,119987],"mapped","x"],[[119988,119988],"mapped","y"],[[119989,119989],"mapped","z"],[[119990,119990],"mapped","a"],[[119991,119991],"mapped","b"],[[119992,119992],"mapped","c"],[[119993,119993],"mapped","d"],[[119994,119994],"disallowed"],[[119995,119995],"mapped","f"],[[119996,119996],"disallowed"],[[119997,119997],"mapped","h"],[[119998,119998],"mapped","i"],[[119999,119999],"mapped","j"],[[12e4,12e4],"mapped","k"],[[120001,120001],"mapped","l"],[[120002,120002],"mapped","m"],[[120003,120003],"mapped","n"],[[120004,120004],"disallowed"],[[120005,120005],"mapped","p"],[[120006,120006],"mapped","q"],[[120007,120007],"mapped","r"],[[120008,120008],"mapped","s"],[[120009,120009],"mapped","t"],[[120010,120010],"mapped","u"],[[120011,120011],"mapped","v"],[[120012,120012],"mapped","w"],[[120013,120013],"mapped","x"],[[120014,120014],"mapped","y"],[[120015,120015],"mapped","z"],[[120016,120016],"mapped","a"],[[120017,120017],"mapped","b"],[[120018,120018],"mapped","c"],[[120019,120019],"mapped","d"],[[120020,120020],"mapped","e"],[[120021,120021],"mapped","f"],[[120022,120022],"mapped","g"],[[120023,120023],"mapped","h"],[[120024,120024],"mapped","i"],[[120025,120025],"mapped","j"],[[120026,120026],"mapped","k"],[[120027,120027],"mapped","l"],[[120028,120028],"mapped","m"],[[120029,120029],"mapped","n"],[[120030,120030],"mapped","o"],[[120031,120031],"mapped","p"],[[120032,120032],"mapped","q"],[[120033,120033],"mapped","r"],[[120034,120034],"mapped","s"],[[120035,120035],"mapped","t"],[[120036,120036],"mapped","u"],[[120037,120037],"mapped","v"],[[120038,120038],"mapped","w"],[[120039,120039],"mapped","x"],[[120040,120040],"mapped","y"],[[120041,120041],"mapped","z"],[[120042,120042],"mapped","a"],[[120043,120043],"mapped","b"],[[120044,120044],"mapped","c"],[[120045,120045],"mapped","d"],[[120046,120046],"mapped","e"],[[120047,120047],"mapped","f"],[[120048,120048],"mapped","g"],[[120049,120049],"mapped","h"],[[120050,120050],"mapped","i"],[[120051,120051],"mapped","j"],[[120052,120052],"mapped","k"],[[120053,120053],"mapped","l"],[[120054,120054],"mapped","m"],[[120055,120055],"mapped","n"],[[120056,120056],"mapped","o"],[[120057,120057],"mapped","p"],[[120058,120058],"mapped","q"],[[120059,120059],"mapped","r"],[[120060,120060],"mapped","s"],[[120061,120061],"mapped","t"],[[120062,120062],"mapped","u"],[[120063,120063],"mapped","v"],[[120064,120064],"mapped","w"],[[120065,120065],"mapped","x"],[[120066,120066],"mapped","y"],[[120067,120067],"mapped","z"],[[120068,120068],"mapped","a"],[[120069,120069],"mapped","b"],[[120070,120070],"disallowed"],[[120071,120071],"mapped","d"],[[120072,120072],"mapped","e"],[[120073,120073],"mapped","f"],[[120074,120074],"mapped","g"],[[120075,120076],"disallowed"],[[120077,120077],"mapped","j"],[[120078,120078],"mapped","k"],[[120079,120079],"mapped","l"],[[120080,120080],"mapped","m"],[[120081,120081],"mapped","n"],[[120082,120082],"mapped","o"],[[120083,120083],"mapped","p"],[[120084,120084],"mapped","q"],[[120085,120085],"disallowed"],[[120086,120086],"mapped","s"],[[120087,120087],"mapped","t"],[[120088,120088],"mapped","u"],[[120089,120089],"mapped","v"],[[120090,120090],"mapped","w"],[[120091,120091],"mapped","x"],[[120092,120092],"mapped","y"],[[120093,120093],"disallowed"],[[120094,120094],"mapped","a"],[[120095,120095],"mapped","b"],[[120096,120096],"mapped","c"],[[120097,120097],"mapped","d"],[[120098,120098],"mapped","e"],[[120099,120099],"mapped","f"],[[120100,120100],"mapped","g"],[[120101,120101],"mapped","h"],[[120102,120102],"mapped","i"],[[120103,120103],"mapped","j"],[[120104,120104],"mapped","k"],[[120105,120105],"mapped","l"],[[120106,120106],"mapped","m"],[[120107,120107],"mapped","n"],[[120108,120108],"mapped","o"],[[120109,120109],"mapped","p"],[[120110,120110],"mapped","q"],[[120111,120111],"mapped","r"],[[120112,120112],"mapped","s"],[[120113,120113],"mapped","t"],[[120114,120114],"mapped","u"],[[120115,120115],"mapped","v"],[[120116,120116],"mapped","w"],[[120117,120117],"mapped","x"],[[120118,120118],"mapped","y"],[[120119,120119],"mapped","z"],[[120120,120120],"mapped","a"],[[120121,120121],"mapped","b"],[[120122,120122],"disallowed"],[[120123,120123],"mapped","d"],[[120124,120124],"mapped","e"],[[120125,120125],"mapped","f"],[[120126,120126],"mapped","g"],[[120127,120127],"disallowed"],[[120128,120128],"mapped","i"],[[120129,120129],"mapped","j"],[[120130,120130],"mapped","k"],[[120131,120131],"mapped","l"],[[120132,120132],"mapped","m"],[[120133,120133],"disallowed"],[[120134,120134],"mapped","o"],[[120135,120137],"disallowed"],[[120138,120138],"mapped","s"],[[120139,120139],"mapped","t"],[[120140,120140],"mapped","u"],[[120141,120141],"mapped","v"],[[120142,120142],"mapped","w"],[[120143,120143],"mapped","x"],[[120144,120144],"mapped","y"],[[120145,120145],"disallowed"],[[120146,120146],"mapped","a"],[[120147,120147],"mapped","b"],[[120148,120148],"mapped","c"],[[120149,120149],"mapped","d"],[[120150,120150],"mapped","e"],[[120151,120151],"mapped","f"],[[120152,120152],"mapped","g"],[[120153,120153],"mapped","h"],[[120154,120154],"mapped","i"],[[120155,120155],"mapped","j"],[[120156,120156],"mapped","k"],[[120157,120157],"mapped","l"],[[120158,120158],"mapped","m"],[[120159,120159],"mapped","n"],[[120160,120160],"mapped","o"],[[120161,120161],"mapped","p"],[[120162,120162],"mapped","q"],[[120163,120163],"mapped","r"],[[120164,120164],"mapped","s"],[[120165,120165],"mapped","t"],[[120166,120166],"mapped","u"],[[120167,120167],"mapped","v"],[[120168,120168],"mapped","w"],[[120169,120169],"mapped","x"],[[120170,120170],"mapped","y"],[[120171,120171],"mapped","z"],[[120172,120172],"mapped","a"],[[120173,120173],"mapped","b"],[[120174,120174],"mapped","c"],[[120175,120175],"mapped","d"],[[120176,120176],"mapped","e"],[[120177,120177],"mapped","f"],[[120178,120178],"mapped","g"],[[120179,120179],"mapped","h"],[[120180,120180],"mapped","i"],[[120181,120181],"mapped","j"],[[120182,120182],"mapped","k"],[[120183,120183],"mapped","l"],[[120184,120184],"mapped","m"],[[120185,120185],"mapped","n"],[[120186,120186],"mapped","o"],[[120187,120187],"mapped","p"],[[120188,120188],"mapped","q"],[[120189,120189],"mapped","r"],[[120190,120190],"mapped","s"],[[120191,120191],"mapped","t"],[[120192,120192],"mapped","u"],[[120193,120193],"mapped","v"],[[120194,120194],"mapped","w"],[[120195,120195],"mapped","x"],[[120196,120196],"mapped","y"],[[120197,120197],"mapped","z"],[[120198,120198],"mapped","a"],[[120199,120199],"mapped","b"],[[120200,120200],"mapped","c"],[[120201,120201],"mapped","d"],[[120202,120202],"mapped","e"],[[120203,120203],"mapped","f"],[[120204,120204],"mapped","g"],[[120205,120205],"mapped","h"],[[120206,120206],"mapped","i"],[[120207,120207],"mapped","j"],[[120208,120208],"mapped","k"],[[120209,120209],"mapped","l"],[[120210,120210],"mapped","m"],[[120211,120211],"mapped","n"],[[120212,120212],"mapped","o"],[[120213,120213],"mapped","p"],[[120214,120214],"mapped","q"],[[120215,120215],"mapped","r"],[[120216,120216],"mapped","s"],[[120217,120217],"mapped","t"],[[120218,120218],"mapped","u"],[[120219,120219],"mapped","v"],[[120220,120220],"mapped","w"],[[120221,120221],"mapped","x"],[[120222,120222],"mapped","y"],[[120223,120223],"mapped","z"],[[120224,120224],"mapped","a"],[[120225,120225],"mapped","b"],[[120226,120226],"mapped","c"],[[120227,120227],"mapped","d"],[[120228,120228],"mapped","e"],[[120229,120229],"mapped","f"],[[120230,120230],"mapped","g"],[[120231,120231],"mapped","h"],[[120232,120232],"mapped","i"],[[120233,120233],"mapped","j"],[[120234,120234],"mapped","k"],[[120235,120235],"mapped","l"],[[120236,120236],"mapped","m"],[[120237,120237],"mapped","n"],[[120238,120238],"mapped","o"],[[120239,120239],"mapped","p"],[[120240,120240],"mapped","q"],[[120241,120241],"mapped","r"],[[120242,120242],"mapped","s"],[[120243,120243],"mapped","t"],[[120244,120244],"mapped","u"],[[120245,120245],"mapped","v"],[[120246,120246],"mapped","w"],[[120247,120247],"mapped","x"],[[120248,120248],"mapped","y"],[[120249,120249],"mapped","z"],[[120250,120250],"mapped","a"],[[120251,120251],"mapped","b"],[[120252,120252],"mapped","c"],[[120253,120253],"mapped","d"],[[120254,120254],"mapped","e"],[[120255,120255],"mapped","f"],[[120256,120256],"mapped","g"],[[120257,120257],"mapped","h"],[[120258,120258],"mapped","i"],[[120259,120259],"mapped","j"],[[120260,120260],"mapped","k"],[[120261,120261],"mapped","l"],[[120262,120262],"mapped","m"],[[120263,120263],"mapped","n"],[[120264,120264],"mapped","o"],[[120265,120265],"mapped","p"],[[120266,120266],"mapped","q"],[[120267,120267],"mapped","r"],[[120268,120268],"mapped","s"],[[120269,120269],"mapped","t"],[[120270,120270],"mapped","u"],[[120271,120271],"mapped","v"],[[120272,120272],"mapped","w"],[[120273,120273],"mapped","x"],[[120274,120274],"mapped","y"],[[120275,120275],"mapped","z"],[[120276,120276],"mapped","a"],[[120277,120277],"mapped","b"],[[120278,120278],"mapped","c"],[[120279,120279],"mapped","d"],[[120280,120280],"mapped","e"],[[120281,120281],"mapped","f"],[[120282,120282],"mapped","g"],[[120283,120283],"mapped","h"],[[120284,120284],"mapped","i"],[[120285,120285],"mapped","j"],[[120286,120286],"mapped","k"],[[120287,120287],"mapped","l"],[[120288,120288],"mapped","m"],[[120289,120289],"mapped","n"],[[120290,120290],"mapped","o"],[[120291,120291],"mapped","p"],[[120292,120292],"mapped","q"],[[120293,120293],"mapped","r"],[[120294,120294],"mapped","s"],[[120295,120295],"mapped","t"],[[120296,120296],"mapped","u"],[[120297,120297],"mapped","v"],[[120298,120298],"mapped","w"],[[120299,120299],"mapped","x"],[[120300,120300],"mapped","y"],[[120301,120301],"mapped","z"],[[120302,120302],"mapped","a"],[[120303,120303],"mapped","b"],[[120304,120304],"mapped","c"],[[120305,120305],"mapped","d"],[[120306,120306],"mapped","e"],[[120307,120307],"mapped","f"],[[120308,120308],"mapped","g"],[[120309,120309],"mapped","h"],[[120310,120310],"mapped","i"],[[120311,120311],"mapped","j"],[[120312,120312],"mapped","k"],[[120313,120313],"mapped","l"],[[120314,120314],"mapped","m"],[[120315,120315],"mapped","n"],[[120316,120316],"mapped","o"],[[120317,120317],"mapped","p"],[[120318,120318],"mapped","q"],[[120319,120319],"mapped","r"],[[120320,120320],"mapped","s"],[[120321,120321],"mapped","t"],[[120322,120322],"mapped","u"],[[120323,120323],"mapped","v"],[[120324,120324],"mapped","w"],[[120325,120325],"mapped","x"],[[120326,120326],"mapped","y"],[[120327,120327],"mapped","z"],[[120328,120328],"mapped","a"],[[120329,120329],"mapped","b"],[[120330,120330],"mapped","c"],[[120331,120331],"mapped","d"],[[120332,120332],"mapped","e"],[[120333,120333],"mapped","f"],[[120334,120334],"mapped","g"],[[120335,120335],"mapped","h"],[[120336,120336],"mapped","i"],[[120337,120337],"mapped","j"],[[120338,120338],"mapped","k"],[[120339,120339],"mapped","l"],[[120340,120340],"mapped","m"],[[120341,120341],"mapped","n"],[[120342,120342],"mapped","o"],[[120343,120343],"mapped","p"],[[120344,120344],"mapped","q"],[[120345,120345],"mapped","r"],[[120346,120346],"mapped","s"],[[120347,120347],"mapped","t"],[[120348,120348],"mapped","u"],[[120349,120349],"mapped","v"],[[120350,120350],"mapped","w"],[[120351,120351],"mapped","x"],[[120352,120352],"mapped","y"],[[120353,120353],"mapped","z"],[[120354,120354],"mapped","a"],[[120355,120355],"mapped","b"],[[120356,120356],"mapped","c"],[[120357,120357],"mapped","d"],[[120358,120358],"mapped","e"],[[120359,120359],"mapped","f"],[[120360,120360],"mapped","g"],[[120361,120361],"mapped","h"],[[120362,120362],"mapped","i"],[[120363,120363],"mapped","j"],[[120364,120364],"mapped","k"],[[120365,120365],"mapped","l"],[[120366,120366],"mapped","m"],[[120367,120367],"mapped","n"],[[120368,120368],"mapped","o"],[[120369,120369],"mapped","p"],[[120370,120370],"mapped","q"],[[120371,120371],"mapped","r"],[[120372,120372],"mapped","s"],[[120373,120373],"mapped","t"],[[120374,120374],"mapped","u"],[[120375,120375],"mapped","v"],[[120376,120376],"mapped","w"],[[120377,120377],"mapped","x"],[[120378,120378],"mapped","y"],[[120379,120379],"mapped","z"],[[120380,120380],"mapped","a"],[[120381,120381],"mapped","b"],[[120382,120382],"mapped","c"],[[120383,120383],"mapped","d"],[[120384,120384],"mapped","e"],[[120385,120385],"mapped","f"],[[120386,120386],"mapped","g"],[[120387,120387],"mapped","h"],[[120388,120388],"mapped","i"],[[120389,120389],"mapped","j"],[[120390,120390],"mapped","k"],[[120391,120391],"mapped","l"],[[120392,120392],"mapped","m"],[[120393,120393],"mapped","n"],[[120394,120394],"mapped","o"],[[120395,120395],"mapped","p"],[[120396,120396],"mapped","q"],[[120397,120397],"mapped","r"],[[120398,120398],"mapped","s"],[[120399,120399],"mapped","t"],[[120400,120400],"mapped","u"],[[120401,120401],"mapped","v"],[[120402,120402],"mapped","w"],[[120403,120403],"mapped","x"],[[120404,120404],"mapped","y"],[[120405,120405],"mapped","z"],[[120406,120406],"mapped","a"],[[120407,120407],"mapped","b"],[[120408,120408],"mapped","c"],[[120409,120409],"mapped","d"],[[120410,120410],"mapped","e"],[[120411,120411],"mapped","f"],[[120412,120412],"mapped","g"],[[120413,120413],"mapped","h"],[[120414,120414],"mapped","i"],[[120415,120415],"mapped","j"],[[120416,120416],"mapped","k"],[[120417,120417],"mapped","l"],[[120418,120418],"mapped","m"],[[120419,120419],"mapped","n"],[[120420,120420],"mapped","o"],[[120421,120421],"mapped","p"],[[120422,120422],"mapped","q"],[[120423,120423],"mapped","r"],[[120424,120424],"mapped","s"],[[120425,120425],"mapped","t"],[[120426,120426],"mapped","u"],[[120427,120427],"mapped","v"],[[120428,120428],"mapped","w"],[[120429,120429],"mapped","x"],[[120430,120430],"mapped","y"],[[120431,120431],"mapped","z"],[[120432,120432],"mapped","a"],[[120433,120433],"mapped","b"],[[120434,120434],"mapped","c"],[[120435,120435],"mapped","d"],[[120436,120436],"mapped","e"],[[120437,120437],"mapped","f"],[[120438,120438],"mapped","g"],[[120439,120439],"mapped","h"],[[120440,120440],"mapped","i"],[[120441,120441],"mapped","j"],[[120442,120442],"mapped","k"],[[120443,120443],"mapped","l"],[[120444,120444],"mapped","m"],[[120445,120445],"mapped","n"],[[120446,120446],"mapped","o"],[[120447,120447],"mapped","p"],[[120448,120448],"mapped","q"],[[120449,120449],"mapped","r"],[[120450,120450],"mapped","s"],[[120451,120451],"mapped","t"],[[120452,120452],"mapped","u"],[[120453,120453],"mapped","v"],[[120454,120454],"mapped","w"],[[120455,120455],"mapped","x"],[[120456,120456],"mapped","y"],[[120457,120457],"mapped","z"],[[120458,120458],"mapped","a"],[[120459,120459],"mapped","b"],[[120460,120460],"mapped","c"],[[120461,120461],"mapped","d"],[[120462,120462],"mapped","e"],[[120463,120463],"mapped","f"],[[120464,120464],"mapped","g"],[[120465,120465],"mapped","h"],[[120466,120466],"mapped","i"],[[120467,120467],"mapped","j"],[[120468,120468],"mapped","k"],[[120469,120469],"mapped","l"],[[120470,120470],"mapped","m"],[[120471,120471],"mapped","n"],[[120472,120472],"mapped","o"],[[120473,120473],"mapped","p"],[[120474,120474],"mapped","q"],[[120475,120475],"mapped","r"],[[120476,120476],"mapped","s"],[[120477,120477],"mapped","t"],[[120478,120478],"mapped","u"],[[120479,120479],"mapped","v"],[[120480,120480],"mapped","w"],[[120481,120481],"mapped","x"],[[120482,120482],"mapped","y"],[[120483,120483],"mapped","z"],[[120484,120484],"mapped","ı"],[[120485,120485],"mapped","ȷ"],[[120486,120487],"disallowed"],[[120488,120488],"mapped","α"],[[120489,120489],"mapped","β"],[[120490,120490],"mapped","γ"],[[120491,120491],"mapped","δ"],[[120492,120492],"mapped","ε"],[[120493,120493],"mapped","ζ"],[[120494,120494],"mapped","η"],[[120495,120495],"mapped","θ"],[[120496,120496],"mapped","ι"],[[120497,120497],"mapped","κ"],[[120498,120498],"mapped","λ"],[[120499,120499],"mapped","μ"],[[120500,120500],"mapped","ν"],[[120501,120501],"mapped","ξ"],[[120502,120502],"mapped","ο"],[[120503,120503],"mapped","π"],[[120504,120504],"mapped","ρ"],[[120505,120505],"mapped","θ"],[[120506,120506],"mapped","σ"],[[120507,120507],"mapped","τ"],[[120508,120508],"mapped","υ"],[[120509,120509],"mapped","φ"],[[120510,120510],"mapped","χ"],[[120511,120511],"mapped","ψ"],[[120512,120512],"mapped","ω"],[[120513,120513],"mapped","∇"],[[120514,120514],"mapped","α"],[[120515,120515],"mapped","β"],[[120516,120516],"mapped","γ"],[[120517,120517],"mapped","δ"],[[120518,120518],"mapped","ε"],[[120519,120519],"mapped","ζ"],[[120520,120520],"mapped","η"],[[120521,120521],"mapped","θ"],[[120522,120522],"mapped","ι"],[[120523,120523],"mapped","κ"],[[120524,120524],"mapped","λ"],[[120525,120525],"mapped","μ"],[[120526,120526],"mapped","ν"],[[120527,120527],"mapped","ξ"],[[120528,120528],"mapped","ο"],[[120529,120529],"mapped","π"],[[120530,120530],"mapped","ρ"],[[120531,120532],"mapped","σ"],[[120533,120533],"mapped","τ"],[[120534,120534],"mapped","υ"],[[120535,120535],"mapped","φ"],[[120536,120536],"mapped","χ"],[[120537,120537],"mapped","ψ"],[[120538,120538],"mapped","ω"],[[120539,120539],"mapped","∂"],[[120540,120540],"mapped","ε"],[[120541,120541],"mapped","θ"],[[120542,120542],"mapped","κ"],[[120543,120543],"mapped","φ"],[[120544,120544],"mapped","ρ"],[[120545,120545],"mapped","π"],[[120546,120546],"mapped","α"],[[120547,120547],"mapped","β"],[[120548,120548],"mapped","γ"],[[120549,120549],"mapped","δ"],[[120550,120550],"mapped","ε"],[[120551,120551],"mapped","ζ"],[[120552,120552],"mapped","η"],[[120553,120553],"mapped","θ"],[[120554,120554],"mapped","ι"],[[120555,120555],"mapped","κ"],[[120556,120556],"mapped","λ"],[[120557,120557],"mapped","μ"],[[120558,120558],"mapped","ν"],[[120559,120559],"mapped","ξ"],[[120560,120560],"mapped","ο"],[[120561,120561],"mapped","π"],[[120562,120562],"mapped","ρ"],[[120563,120563],"mapped","θ"],[[120564,120564],"mapped","σ"],[[120565,120565],"mapped","τ"],[[120566,120566],"mapped","υ"],[[120567,120567],"mapped","φ"],[[120568,120568],"mapped","χ"],[[120569,120569],"mapped","ψ"],[[120570,120570],"mapped","ω"],[[120571,120571],"mapped","∇"],[[120572,120572],"mapped","α"],[[120573,120573],"mapped","β"],[[120574,120574],"mapped","γ"],[[120575,120575],"mapped","δ"],[[120576,120576],"mapped","ε"],[[120577,120577],"mapped","ζ"],[[120578,120578],"mapped","η"],[[120579,120579],"mapped","θ"],[[120580,120580],"mapped","ι"],[[120581,120581],"mapped","κ"],[[120582,120582],"mapped","λ"],[[120583,120583],"mapped","μ"],[[120584,120584],"mapped","ν"],[[120585,120585],"mapped","ξ"],[[120586,120586],"mapped","ο"],[[120587,120587],"mapped","π"],[[120588,120588],"mapped","ρ"],[[120589,120590],"mapped","σ"],[[120591,120591],"mapped","τ"],[[120592,120592],"mapped","υ"],[[120593,120593],"mapped","φ"],[[120594,120594],"mapped","χ"],[[120595,120595],"mapped","ψ"],[[120596,120596],"mapped","ω"],[[120597,120597],"mapped","∂"],[[120598,120598],"mapped","ε"],[[120599,120599],"mapped","θ"],[[120600,120600],"mapped","κ"],[[120601,120601],"mapped","φ"],[[120602,120602],"mapped","ρ"],[[120603,120603],"mapped","π"],[[120604,120604],"mapped","α"],[[120605,120605],"mapped","β"],[[120606,120606],"mapped","γ"],[[120607,120607],"mapped","δ"],[[120608,120608],"mapped","ε"],[[120609,120609],"mapped","ζ"],[[120610,120610],"mapped","η"],[[120611,120611],"mapped","θ"],[[120612,120612],"mapped","ι"],[[120613,120613],"mapped","κ"],[[120614,120614],"mapped","λ"],[[120615,120615],"mapped","μ"],[[120616,120616],"mapped","ν"],[[120617,120617],"mapped","ξ"],[[120618,120618],"mapped","ο"],[[120619,120619],"mapped","π"],[[120620,120620],"mapped","ρ"],[[120621,120621],"mapped","θ"],[[120622,120622],"mapped","σ"],[[120623,120623],"mapped","τ"],[[120624,120624],"mapped","υ"],[[120625,120625],"mapped","φ"],[[120626,120626],"mapped","χ"],[[120627,120627],"mapped","ψ"],[[120628,120628],"mapped","ω"],[[120629,120629],"mapped","∇"],[[120630,120630],"mapped","α"],[[120631,120631],"mapped","β"],[[120632,120632],"mapped","γ"],[[120633,120633],"mapped","δ"],[[120634,120634],"mapped","ε"],[[120635,120635],"mapped","ζ"],[[120636,120636],"mapped","η"],[[120637,120637],"mapped","θ"],[[120638,120638],"mapped","ι"],[[120639,120639],"mapped","κ"],[[120640,120640],"mapped","λ"],[[120641,120641],"mapped","μ"],[[120642,120642],"mapped","ν"],[[120643,120643],"mapped","ξ"],[[120644,120644],"mapped","ο"],[[120645,120645],"mapped","π"],[[120646,120646],"mapped","ρ"],[[120647,120648],"mapped","σ"],[[120649,120649],"mapped","τ"],[[120650,120650],"mapped","υ"],[[120651,120651],"mapped","φ"],[[120652,120652],"mapped","χ"],[[120653,120653],"mapped","ψ"],[[120654,120654],"mapped","ω"],[[120655,120655],"mapped","∂"],[[120656,120656],"mapped","ε"],[[120657,120657],"mapped","θ"],[[120658,120658],"mapped","κ"],[[120659,120659],"mapped","φ"],[[120660,120660],"mapped","ρ"],[[120661,120661],"mapped","π"],[[120662,120662],"mapped","α"],[[120663,120663],"mapped","β"],[[120664,120664],"mapped","γ"],[[120665,120665],"mapped","δ"],[[120666,120666],"mapped","ε"],[[120667,120667],"mapped","ζ"],[[120668,120668],"mapped","η"],[[120669,120669],"mapped","θ"],[[120670,120670],"mapped","ι"],[[120671,120671],"mapped","κ"],[[120672,120672],"mapped","λ"],[[120673,120673],"mapped","μ"],[[120674,120674],"mapped","ν"],[[120675,120675],"mapped","ξ"],[[120676,120676],"mapped","ο"],[[120677,120677],"mapped","π"],[[120678,120678],"mapped","ρ"],[[120679,120679],"mapped","θ"],[[120680,120680],"mapped","σ"],[[120681,120681],"mapped","τ"],[[120682,120682],"mapped","υ"],[[120683,120683],"mapped","φ"],[[120684,120684],"mapped","χ"],[[120685,120685],"mapped","ψ"],[[120686,120686],"mapped","ω"],[[120687,120687],"mapped","∇"],[[120688,120688],"mapped","α"],[[120689,120689],"mapped","β"],[[120690,120690],"mapped","γ"],[[120691,120691],"mapped","δ"],[[120692,120692],"mapped","ε"],[[120693,120693],"mapped","ζ"],[[120694,120694],"mapped","η"],[[120695,120695],"mapped","θ"],[[120696,120696],"mapped","ι"],[[120697,120697],"mapped","κ"],[[120698,120698],"mapped","λ"],[[120699,120699],"mapped","μ"],[[120700,120700],"mapped","ν"],[[120701,120701],"mapped","ξ"],[[120702,120702],"mapped","ο"],[[120703,120703],"mapped","π"],[[120704,120704],"mapped","ρ"],[[120705,120706],"mapped","σ"],[[120707,120707],"mapped","τ"],[[120708,120708],"mapped","υ"],[[120709,120709],"mapped","φ"],[[120710,120710],"mapped","χ"],[[120711,120711],"mapped","ψ"],[[120712,120712],"mapped","ω"],[[120713,120713],"mapped","∂"],[[120714,120714],"mapped","ε"],[[120715,120715],"mapped","θ"],[[120716,120716],"mapped","κ"],[[120717,120717],"mapped","φ"],[[120718,120718],"mapped","ρ"],[[120719,120719],"mapped","π"],[[120720,120720],"mapped","α"],[[120721,120721],"mapped","β"],[[120722,120722],"mapped","γ"],[[120723,120723],"mapped","δ"],[[120724,120724],"mapped","ε"],[[120725,120725],"mapped","ζ"],[[120726,120726],"mapped","η"],[[120727,120727],"mapped","θ"],[[120728,120728],"mapped","ι"],[[120729,120729],"mapped","κ"],[[120730,120730],"mapped","λ"],[[120731,120731],"mapped","μ"],[[120732,120732],"mapped","ν"],[[120733,120733],"mapped","ξ"],[[120734,120734],"mapped","ο"],[[120735,120735],"mapped","π"],[[120736,120736],"mapped","ρ"],[[120737,120737],"mapped","θ"],[[120738,120738],"mapped","σ"],[[120739,120739],"mapped","τ"],[[120740,120740],"mapped","υ"],[[120741,120741],"mapped","φ"],[[120742,120742],"mapped","χ"],[[120743,120743],"mapped","ψ"],[[120744,120744],"mapped","ω"],[[120745,120745],"mapped","∇"],[[120746,120746],"mapped","α"],[[120747,120747],"mapped","β"],[[120748,120748],"mapped","γ"],[[120749,120749],"mapped","δ"],[[120750,120750],"mapped","ε"],[[120751,120751],"mapped","ζ"],[[120752,120752],"mapped","η"],[[120753,120753],"mapped","θ"],[[120754,120754],"mapped","ι"],[[120755,120755],"mapped","κ"],[[120756,120756],"mapped","λ"],[[120757,120757],"mapped","μ"],[[120758,120758],"mapped","ν"],[[120759,120759],"mapped","ξ"],[[120760,120760],"mapped","ο"],[[120761,120761],"mapped","π"],[[120762,120762],"mapped","ρ"],[[120763,120764],"mapped","σ"],[[120765,120765],"mapped","τ"],[[120766,120766],"mapped","υ"],[[120767,120767],"mapped","φ"],[[120768,120768],"mapped","χ"],[[120769,120769],"mapped","ψ"],[[120770,120770],"mapped","ω"],[[120771,120771],"mapped","∂"],[[120772,120772],"mapped","ε"],[[120773,120773],"mapped","θ"],[[120774,120774],"mapped","κ"],[[120775,120775],"mapped","φ"],[[120776,120776],"mapped","ρ"],[[120777,120777],"mapped","π"],[[120778,120779],"mapped","ϝ"],[[120780,120781],"disallowed"],[[120782,120782],"mapped","0"],[[120783,120783],"mapped","1"],[[120784,120784],"mapped","2"],[[120785,120785],"mapped","3"],[[120786,120786],"mapped","4"],[[120787,120787],"mapped","5"],[[120788,120788],"mapped","6"],[[120789,120789],"mapped","7"],[[120790,120790],"mapped","8"],[[120791,120791],"mapped","9"],[[120792,120792],"mapped","0"],[[120793,120793],"mapped","1"],[[120794,120794],"mapped","2"],[[120795,120795],"mapped","3"],[[120796,120796],"mapped","4"],[[120797,120797],"mapped","5"],[[120798,120798],"mapped","6"],[[120799,120799],"mapped","7"],[[120800,120800],"mapped","8"],[[120801,120801],"mapped","9"],[[120802,120802],"mapped","0"],[[120803,120803],"mapped","1"],[[120804,120804],"mapped","2"],[[120805,120805],"mapped","3"],[[120806,120806],"mapped","4"],[[120807,120807],"mapped","5"],[[120808,120808],"mapped","6"],[[120809,120809],"mapped","7"],[[120810,120810],"mapped","8"],[[120811,120811],"mapped","9"],[[120812,120812],"mapped","0"],[[120813,120813],"mapped","1"],[[120814,120814],"mapped","2"],[[120815,120815],"mapped","3"],[[120816,120816],"mapped","4"],[[120817,120817],"mapped","5"],[[120818,120818],"mapped","6"],[[120819,120819],"mapped","7"],[[120820,120820],"mapped","8"],[[120821,120821],"mapped","9"],[[120822,120822],"mapped","0"],[[120823,120823],"mapped","1"],[[120824,120824],"mapped","2"],[[120825,120825],"mapped","3"],[[120826,120826],"mapped","4"],[[120827,120827],"mapped","5"],[[120828,120828],"mapped","6"],[[120829,120829],"mapped","7"],[[120830,120830],"mapped","8"],[[120831,120831],"mapped","9"],[[120832,121343],"valid","","NV8"],[[121344,121398],"valid"],[[121399,121402],"valid","","NV8"],[[121403,121452],"valid"],[[121453,121460],"valid","","NV8"],[[121461,121461],"valid"],[[121462,121475],"valid","","NV8"],[[121476,121476],"valid"],[[121477,121483],"valid","","NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,122879],"disallowed"],[[122880,122886],"valid"],[[122887,122887],"disallowed"],[[122888,122904],"valid"],[[122905,122906],"disallowed"],[[122907,122913],"valid"],[[122914,122914],"disallowed"],[[122915,122916],"valid"],[[122917,122917],"disallowed"],[[122918,122922],"valid"],[[122923,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid","","NV8"],[[125136,125142],"valid"],[[125143,125183],"disallowed"],[[125184,125184],"mapped","𞤢"],[[125185,125185],"mapped","𞤣"],[[125186,125186],"mapped","𞤤"],[[125187,125187],"mapped","𞤥"],[[125188,125188],"mapped","𞤦"],[[125189,125189],"mapped","𞤧"],[[125190,125190],"mapped","𞤨"],[[125191,125191],"mapped","𞤩"],[[125192,125192],"mapped","𞤪"],[[125193,125193],"mapped","𞤫"],[[125194,125194],"mapped","𞤬"],[[125195,125195],"mapped","𞤭"],[[125196,125196],"mapped","𞤮"],[[125197,125197],"mapped","𞤯"],[[125198,125198],"mapped","𞤰"],[[125199,125199],"mapped","𞤱"],[[125200,125200],"mapped","𞤲"],[[125201,125201],"mapped","𞤳"],[[125202,125202],"mapped","𞤴"],[[125203,125203],"mapped","𞤵"],[[125204,125204],"mapped","𞤶"],[[125205,125205],"mapped","𞤷"],[[125206,125206],"mapped","𞤸"],[[125207,125207],"mapped","𞤹"],[[125208,125208],"mapped","𞤺"],[[125209,125209],"mapped","𞤻"],[[125210,125210],"mapped","𞤼"],[[125211,125211],"mapped","𞤽"],[[125212,125212],"mapped","𞤾"],[[125213,125213],"mapped","𞤿"],[[125214,125214],"mapped","𞥀"],[[125215,125215],"mapped","𞥁"],[[125216,125216],"mapped","𞥂"],[[125217,125217],"mapped","𞥃"],[[125218,125258],"valid"],[[125259,125263],"disallowed"],[[125264,125273],"valid"],[[125274,125277],"disallowed"],[[125278,125279],"valid","","NV8"],[[125280,126463],"disallowed"],[[126464,126464],"mapped","ا"],[[126465,126465],"mapped","ب"],[[126466,126466],"mapped","ج"],[[126467,126467],"mapped","د"],[[126468,126468],"disallowed"],[[126469,126469],"mapped","و"],[[126470,126470],"mapped","ز"],[[126471,126471],"mapped","ح"],[[126472,126472],"mapped","ط"],[[126473,126473],"mapped","ي"],[[126474,126474],"mapped","ك"],[[126475,126475],"mapped","ل"],[[126476,126476],"mapped","م"],[[126477,126477],"mapped","ن"],[[126478,126478],"mapped","س"],[[126479,126479],"mapped","ع"],[[126480,126480],"mapped","ف"],[[126481,126481],"mapped","ص"],[[126482,126482],"mapped","ق"],[[126483,126483],"mapped","ر"],[[126484,126484],"mapped","ش"],[[126485,126485],"mapped","ت"],[[126486,126486],"mapped","ث"],[[126487,126487],"mapped","خ"],[[126488,126488],"mapped","ذ"],[[126489,126489],"mapped","ض"],[[126490,126490],"mapped","ظ"],[[126491,126491],"mapped","غ"],[[126492,126492],"mapped","ٮ"],[[126493,126493],"mapped","ں"],[[126494,126494],"mapped","ڡ"],[[126495,126495],"mapped","ٯ"],[[126496,126496],"disallowed"],[[126497,126497],"mapped","ب"],[[126498,126498],"mapped","ج"],[[126499,126499],"disallowed"],[[126500,126500],"mapped","ه"],[[126501,126502],"disallowed"],[[126503,126503],"mapped","ح"],[[126504,126504],"disallowed"],[[126505,126505],"mapped","ي"],[[126506,126506],"mapped","ك"],[[126507,126507],"mapped","ل"],[[126508,126508],"mapped","م"],[[126509,126509],"mapped","ن"],[[126510,126510],"mapped","س"],[[126511,126511],"mapped","ع"],[[126512,126512],"mapped","ف"],[[126513,126513],"mapped","ص"],[[126514,126514],"mapped","ق"],[[126515,126515],"disallowed"],[[126516,126516],"mapped","ش"],[[126517,126517],"mapped","ت"],[[126518,126518],"mapped","ث"],[[126519,126519],"mapped","خ"],[[126520,126520],"disallowed"],[[126521,126521],"mapped","ض"],[[126522,126522],"disallowed"],[[126523,126523],"mapped","غ"],[[126524,126529],"disallowed"],[[126530,126530],"mapped","ج"],[[126531,126534],"disallowed"],[[126535,126535],"mapped","ح"],[[126536,126536],"disallowed"],[[126537,126537],"mapped","ي"],[[126538,126538],"disallowed"],[[126539,126539],"mapped","ل"],[[126540,126540],"disallowed"],[[126541,126541],"mapped","ن"],[[126542,126542],"mapped","س"],[[126543,126543],"mapped","ع"],[[126544,126544],"disallowed"],[[126545,126545],"mapped","ص"],[[126546,126546],"mapped","ق"],[[126547,126547],"disallowed"],[[126548,126548],"mapped","ش"],[[126549,126550],"disallowed"],[[126551,126551],"mapped","خ"],[[126552,126552],"disallowed"],[[126553,126553],"mapped","ض"],[[126554,126554],"disallowed"],[[126555,126555],"mapped","غ"],[[126556,126556],"disallowed"],[[126557,126557],"mapped","ں"],[[126558,126558],"disallowed"],[[126559,126559],"mapped","ٯ"],[[126560,126560],"disallowed"],[[126561,126561],"mapped","ب"],[[126562,126562],"mapped","ج"],[[126563,126563],"disallowed"],[[126564,126564],"mapped","ه"],[[126565,126566],"disallowed"],[[126567,126567],"mapped","ح"],[[126568,126568],"mapped","ط"],[[126569,126569],"mapped","ي"],[[126570,126570],"mapped","ك"],[[126571,126571],"disallowed"],[[126572,126572],"mapped","م"],[[126573,126573],"mapped","ن"],[[126574,126574],"mapped","س"],[[126575,126575],"mapped","ع"],[[126576,126576],"mapped","ف"],[[126577,126577],"mapped","ص"],[[126578,126578],"mapped","ق"],[[126579,126579],"disallowed"],[[126580,126580],"mapped","ش"],[[126581,126581],"mapped","ت"],[[126582,126582],"mapped","ث"],[[126583,126583],"mapped","خ"],[[126584,126584],"disallowed"],[[126585,126585],"mapped","ض"],[[126586,126586],"mapped","ظ"],[[126587,126587],"mapped","غ"],[[126588,126588],"mapped","ٮ"],[[126589,126589],"disallowed"],[[126590,126590],"mapped","ڡ"],[[126591,126591],"disallowed"],[[126592,126592],"mapped","ا"],[[126593,126593],"mapped","ب"],[[126594,126594],"mapped","ج"],[[126595,126595],"mapped","د"],[[126596,126596],"mapped","ه"],[[126597,126597],"mapped","و"],[[126598,126598],"mapped","ز"],[[126599,126599],"mapped","ح"],[[126600,126600],"mapped","ط"],[[126601,126601],"mapped","ي"],[[126602,126602],"disallowed"],[[126603,126603],"mapped","ل"],[[126604,126604],"mapped","م"],[[126605,126605],"mapped","ن"],[[126606,126606],"mapped","س"],[[126607,126607],"mapped","ع"],[[126608,126608],"mapped","ف"],[[126609,126609],"mapped","ص"],[[126610,126610],"mapped","ق"],[[126611,126611],"mapped","ر"],[[126612,126612],"mapped","ش"],[[126613,126613],"mapped","ت"],[[126614,126614],"mapped","ث"],[[126615,126615],"mapped","خ"],[[126616,126616],"mapped","ذ"],[[126617,126617],"mapped","ض"],[[126618,126618],"mapped","ظ"],[[126619,126619],"mapped","غ"],[[126620,126624],"disallowed"],[[126625,126625],"mapped","ب"],[[126626,126626],"mapped","ج"],[[126627,126627],"mapped","د"],[[126628,126628],"disallowed"],[[126629,126629],"mapped","و"],[[126630,126630],"mapped","ز"],[[126631,126631],"mapped","ح"],[[126632,126632],"mapped","ط"],[[126633,126633],"mapped","ي"],[[126634,126634],"disallowed"],[[126635,126635],"mapped","ل"],[[126636,126636],"mapped","م"],[[126637,126637],"mapped","ن"],[[126638,126638],"mapped","س"],[[126639,126639],"mapped","ع"],[[126640,126640],"mapped","ف"],[[126641,126641],"mapped","ص"],[[126642,126642],"mapped","ق"],[[126643,126643],"mapped","ر"],[[126644,126644],"mapped","ش"],[[126645,126645],"mapped","ت"],[[126646,126646],"mapped","ث"],[[126647,126647],"mapped","خ"],[[126648,126648],"mapped","ذ"],[[126649,126649],"mapped","ض"],[[126650,126650],"mapped","ظ"],[[126651,126651],"mapped","غ"],[[126652,126703],"disallowed"],[[126704,126705],"valid","","NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid","","NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid","","NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid","","NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid","","NV8"],[[127167,127167],"valid","","NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid","","NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid","","NV8"],[[127200,127221],"valid","","NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped","0,"],[[127234,127234],"disallowed_STD3_mapped","1,"],[[127235,127235],"disallowed_STD3_mapped","2,"],[[127236,127236],"disallowed_STD3_mapped","3,"],[[127237,127237],"disallowed_STD3_mapped","4,"],[[127238,127238],"disallowed_STD3_mapped","5,"],[[127239,127239],"disallowed_STD3_mapped","6,"],[[127240,127240],"disallowed_STD3_mapped","7,"],[[127241,127241],"disallowed_STD3_mapped","8,"],[[127242,127242],"disallowed_STD3_mapped","9,"],[[127243,127244],"valid","","NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped","(a)"],[[127249,127249],"disallowed_STD3_mapped","(b)"],[[127250,127250],"disallowed_STD3_mapped","(c)"],[[127251,127251],"disallowed_STD3_mapped","(d)"],[[127252,127252],"disallowed_STD3_mapped","(e)"],[[127253,127253],"disallowed_STD3_mapped","(f)"],[[127254,127254],"disallowed_STD3_mapped","(g)"],[[127255,127255],"disallowed_STD3_mapped","(h)"],[[127256,127256],"disallowed_STD3_mapped","(i)"],[[127257,127257],"disallowed_STD3_mapped","(j)"],[[127258,127258],"disallowed_STD3_mapped","(k)"],[[127259,127259],"disallowed_STD3_mapped","(l)"],[[127260,127260],"disallowed_STD3_mapped","(m)"],[[127261,127261],"disallowed_STD3_mapped","(n)"],[[127262,127262],"disallowed_STD3_mapped","(o)"],[[127263,127263],"disallowed_STD3_mapped","(p)"],[[127264,127264],"disallowed_STD3_mapped","(q)"],[[127265,127265],"disallowed_STD3_mapped","(r)"],[[127266,127266],"disallowed_STD3_mapped","(s)"],[[127267,127267],"disallowed_STD3_mapped","(t)"],[[127268,127268],"disallowed_STD3_mapped","(u)"],[[127269,127269],"disallowed_STD3_mapped","(v)"],[[127270,127270],"disallowed_STD3_mapped","(w)"],[[127271,127271],"disallowed_STD3_mapped","(x)"],[[127272,127272],"disallowed_STD3_mapped","(y)"],[[127273,127273],"disallowed_STD3_mapped","(z)"],[[127274,127274],"mapped","〔s〕"],[[127275,127275],"mapped","c"],[[127276,127276],"mapped","r"],[[127277,127277],"mapped","cd"],[[127278,127278],"mapped","wz"],[[127279,127279],"disallowed"],[[127280,127280],"mapped","a"],[[127281,127281],"mapped","b"],[[127282,127282],"mapped","c"],[[127283,127283],"mapped","d"],[[127284,127284],"mapped","e"],[[127285,127285],"mapped","f"],[[127286,127286],"mapped","g"],[[127287,127287],"mapped","h"],[[127288,127288],"mapped","i"],[[127289,127289],"mapped","j"],[[127290,127290],"mapped","k"],[[127291,127291],"mapped","l"],[[127292,127292],"mapped","m"],[[127293,127293],"mapped","n"],[[127294,127294],"mapped","o"],[[127295,127295],"mapped","p"],[[127296,127296],"mapped","q"],[[127297,127297],"mapped","r"],[[127298,127298],"mapped","s"],[[127299,127299],"mapped","t"],[[127300,127300],"mapped","u"],[[127301,127301],"mapped","v"],[[127302,127302],"mapped","w"],[[127303,127303],"mapped","x"],[[127304,127304],"mapped","y"],[[127305,127305],"mapped","z"],[[127306,127306],"mapped","hv"],[[127307,127307],"mapped","mv"],[[127308,127308],"mapped","sd"],[[127309,127309],"mapped","ss"],[[127310,127310],"mapped","ppv"],[[127311,127311],"mapped","wc"],[[127312,127318],"valid","","NV8"],[[127319,127319],"valid","","NV8"],[[127320,127326],"valid","","NV8"],[[127327,127327],"valid","","NV8"],[[127328,127337],"valid","","NV8"],[[127338,127338],"mapped","mc"],[[127339,127339],"mapped","md"],[[127340,127343],"disallowed"],[[127344,127352],"valid","","NV8"],[[127353,127353],"valid","","NV8"],[[127354,127354],"valid","","NV8"],[[127355,127356],"valid","","NV8"],[[127357,127358],"valid","","NV8"],[[127359,127359],"valid","","NV8"],[[127360,127369],"valid","","NV8"],[[127370,127373],"valid","","NV8"],[[127374,127375],"valid","","NV8"],[[127376,127376],"mapped","dj"],[[127377,127386],"valid","","NV8"],[[127387,127404],"valid","","NV8"],[[127405,127461],"disallowed"],[[127462,127487],"valid","","NV8"],[[127488,127488],"mapped","ほか"],[[127489,127489],"mapped","ココ"],[[127490,127490],"mapped","サ"],[[127491,127503],"disallowed"],[[127504,127504],"mapped","手"],[[127505,127505],"mapped","字"],[[127506,127506],"mapped","双"],[[127507,127507],"mapped","デ"],[[127508,127508],"mapped","二"],[[127509,127509],"mapped","多"],[[127510,127510],"mapped","解"],[[127511,127511],"mapped","天"],[[127512,127512],"mapped","交"],[[127513,127513],"mapped","映"],[[127514,127514],"mapped","無"],[[127515,127515],"mapped","料"],[[127516,127516],"mapped","前"],[[127517,127517],"mapped","後"],[[127518,127518],"mapped","再"],[[127519,127519],"mapped","新"],[[127520,127520],"mapped","初"],[[127521,127521],"mapped","終"],[[127522,127522],"mapped","生"],[[127523,127523],"mapped","販"],[[127524,127524],"mapped","声"],[[127525,127525],"mapped","吹"],[[127526,127526],"mapped","演"],[[127527,127527],"mapped","投"],[[127528,127528],"mapped","捕"],[[127529,127529],"mapped","一"],[[127530,127530],"mapped","三"],[[127531,127531],"mapped","遊"],[[127532,127532],"mapped","左"],[[127533,127533],"mapped","中"],[[127534,127534],"mapped","右"],[[127535,127535],"mapped","指"],[[127536,127536],"mapped","走"],[[127537,127537],"mapped","打"],[[127538,127538],"mapped","禁"],[[127539,127539],"mapped","空"],[[127540,127540],"mapped","合"],[[127541,127541],"mapped","満"],[[127542,127542],"mapped","有"],[[127543,127543],"mapped","月"],[[127544,127544],"mapped","申"],[[127545,127545],"mapped","割"],[[127546,127546],"mapped","営"],[[127547,127547],"mapped","配"],[[127548,127551],"disallowed"],[[127552,127552],"mapped","〔本〕"],[[127553,127553],"mapped","〔三〕"],[[127554,127554],"mapped","〔二〕"],[[127555,127555],"mapped","〔安〕"],[[127556,127556],"mapped","〔点〕"],[[127557,127557],"mapped","〔打〕"],[[127558,127558],"mapped","〔盗〕"],[[127559,127559],"mapped","〔勝〕"],[[127560,127560],"mapped","〔敗〕"],[[127561,127567],"disallowed"],[[127568,127568],"mapped","得"],[[127569,127569],"mapped","可"],[[127570,127583],"disallowed"],[[127584,127589],"valid","","NV8"],[[127590,127743],"disallowed"],[[127744,127776],"valid","","NV8"],[[127777,127788],"valid","","NV8"],[[127789,127791],"valid","","NV8"],[[127792,127797],"valid","","NV8"],[[127798,127798],"valid","","NV8"],[[127799,127868],"valid","","NV8"],[[127869,127869],"valid","","NV8"],[[127870,127871],"valid","","NV8"],[[127872,127891],"valid","","NV8"],[[127892,127903],"valid","","NV8"],[[127904,127940],"valid","","NV8"],[[127941,127941],"valid","","NV8"],[[127942,127946],"valid","","NV8"],[[127947,127950],"valid","","NV8"],[[127951,127955],"valid","","NV8"],[[127956,127967],"valid","","NV8"],[[127968,127984],"valid","","NV8"],[[127985,127991],"valid","","NV8"],[[127992,127999],"valid","","NV8"],[[128e3,128062],"valid","","NV8"],[[128063,128063],"valid","","NV8"],[[128064,128064],"valid","","NV8"],[[128065,128065],"valid","","NV8"],[[128066,128247],"valid","","NV8"],[[128248,128248],"valid","","NV8"],[[128249,128252],"valid","","NV8"],[[128253,128254],"valid","","NV8"],[[128255,128255],"valid","","NV8"],[[128256,128317],"valid","","NV8"],[[128318,128319],"valid","","NV8"],[[128320,128323],"valid","","NV8"],[[128324,128330],"valid","","NV8"],[[128331,128335],"valid","","NV8"],[[128336,128359],"valid","","NV8"],[[128360,128377],"valid","","NV8"],[[128378,128378],"valid","","NV8"],[[128379,128419],"valid","","NV8"],[[128420,128420],"valid","","NV8"],[[128421,128506],"valid","","NV8"],[[128507,128511],"valid","","NV8"],[[128512,128512],"valid","","NV8"],[[128513,128528],"valid","","NV8"],[[128529,128529],"valid","","NV8"],[[128530,128532],"valid","","NV8"],[[128533,128533],"valid","","NV8"],[[128534,128534],"valid","","NV8"],[[128535,128535],"valid","","NV8"],[[128536,128536],"valid","","NV8"],[[128537,128537],"valid","","NV8"],[[128538,128538],"valid","","NV8"],[[128539,128539],"valid","","NV8"],[[128540,128542],"valid","","NV8"],[[128543,128543],"valid","","NV8"],[[128544,128549],"valid","","NV8"],[[128550,128551],"valid","","NV8"],[[128552,128555],"valid","","NV8"],[[128556,128556],"valid","","NV8"],[[128557,128557],"valid","","NV8"],[[128558,128559],"valid","","NV8"],[[128560,128563],"valid","","NV8"],[[128564,128564],"valid","","NV8"],[[128565,128576],"valid","","NV8"],[[128577,128578],"valid","","NV8"],[[128579,128580],"valid","","NV8"],[[128581,128591],"valid","","NV8"],[[128592,128639],"valid","","NV8"],[[128640,128709],"valid","","NV8"],[[128710,128719],"valid","","NV8"],[[128720,128720],"valid","","NV8"],[[128721,128722],"valid","","NV8"],[[128723,128724],"valid","","NV8"],[[128725,128735],"disallowed"],[[128736,128748],"valid","","NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid","","NV8"],[[128756,128758],"valid","","NV8"],[[128759,128760],"valid","","NV8"],[[128761,128767],"disallowed"],[[128768,128883],"valid","","NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid","","NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid","","NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid","","NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid","","NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid","","NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid","","NV8"],[[129198,129279],"disallowed"],[[129280,129291],"valid","","NV8"],[[129292,129295],"disallowed"],[[129296,129304],"valid","","NV8"],[[129305,129310],"valid","","NV8"],[[129311,129311],"valid","","NV8"],[[129312,129319],"valid","","NV8"],[[129320,129327],"valid","","NV8"],[[129328,129328],"valid","","NV8"],[[129329,129330],"valid","","NV8"],[[129331,129342],"valid","","NV8"],[[129343,129343],"disallowed"],[[129344,129355],"valid","","NV8"],[[129356,129356],"valid","","NV8"],[[129357,129359],"disallowed"],[[129360,129374],"valid","","NV8"],[[129375,129387],"valid","","NV8"],[[129388,129407],"disallowed"],[[129408,129412],"valid","","NV8"],[[129413,129425],"valid","","NV8"],[[129426,129431],"valid","","NV8"],[[129432,129471],"disallowed"],[[129472,129472],"valid","","NV8"],[[129473,129487],"disallowed"],[[129488,129510],"valid","","NV8"],[[129511,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,183983],"disallowed"],[[183984,191456],"valid"],[[191457,194559],"disallowed"],[[194560,194560],"mapped","丽"],[[194561,194561],"mapped","丸"],[[194562,194562],"mapped","乁"],[[194563,194563],"mapped","𠄢"],[[194564,194564],"mapped","你"],[[194565,194565],"mapped","侮"],[[194566,194566],"mapped","侻"],[[194567,194567],"mapped","倂"],[[194568,194568],"mapped","偺"],[[194569,194569],"mapped","備"],[[194570,194570],"mapped","僧"],[[194571,194571],"mapped","像"],[[194572,194572],"mapped","㒞"],[[194573,194573],"mapped","𠘺"],[[194574,194574],"mapped","免"],[[194575,194575],"mapped","兔"],[[194576,194576],"mapped","兤"],[[194577,194577],"mapped","具"],[[194578,194578],"mapped","𠔜"],[[194579,194579],"mapped","㒹"],[[194580,194580],"mapped","內"],[[194581,194581],"mapped","再"],[[194582,194582],"mapped","𠕋"],[[194583,194583],"mapped","冗"],[[194584,194584],"mapped","冤"],[[194585,194585],"mapped","仌"],[[194586,194586],"mapped","冬"],[[194587,194587],"mapped","况"],[[194588,194588],"mapped","𩇟"],[[194589,194589],"mapped","凵"],[[194590,194590],"mapped","刃"],[[194591,194591],"mapped","㓟"],[[194592,194592],"mapped","刻"],[[194593,194593],"mapped","剆"],[[194594,194594],"mapped","割"],[[194595,194595],"mapped","剷"],[[194596,194596],"mapped","㔕"],[[194597,194597],"mapped","勇"],[[194598,194598],"mapped","勉"],[[194599,194599],"mapped","勤"],[[194600,194600],"mapped","勺"],[[194601,194601],"mapped","包"],[[194602,194602],"mapped","匆"],[[194603,194603],"mapped","北"],[[194604,194604],"mapped","卉"],[[194605,194605],"mapped","卑"],[[194606,194606],"mapped","博"],[[194607,194607],"mapped","即"],[[194608,194608],"mapped","卽"],[[194609,194611],"mapped","卿"],[[194612,194612],"mapped","𠨬"],[[194613,194613],"mapped","灰"],[[194614,194614],"mapped","及"],[[194615,194615],"mapped","叟"],[[194616,194616],"mapped","𠭣"],[[194617,194617],"mapped","叫"],[[194618,194618],"mapped","叱"],[[194619,194619],"mapped","吆"],[[194620,194620],"mapped","咞"],[[194621,194621],"mapped","吸"],[[194622,194622],"mapped","呈"],[[194623,194623],"mapped","周"],[[194624,194624],"mapped","咢"],[[194625,194625],"mapped","哶"],[[194626,194626],"mapped","唐"],[[194627,194627],"mapped","啓"],[[194628,194628],"mapped","啣"],[[194629,194630],"mapped","善"],[[194631,194631],"mapped","喙"],[[194632,194632],"mapped","喫"],[[194633,194633],"mapped","喳"],[[194634,194634],"mapped","嗂"],[[194635,194635],"mapped","圖"],[[194636,194636],"mapped","嘆"],[[194637,194637],"mapped","圗"],[[194638,194638],"mapped","噑"],[[194639,194639],"mapped","噴"],[[194640,194640],"mapped","切"],[[194641,194641],"mapped","壮"],[[194642,194642],"mapped","城"],[[194643,194643],"mapped","埴"],[[194644,194644],"mapped","堍"],[[194645,194645],"mapped","型"],[[194646,194646],"mapped","堲"],[[194647,194647],"mapped","報"],[[194648,194648],"mapped","墬"],[[194649,194649],"mapped","𡓤"],[[194650,194650],"mapped","売"],[[194651,194651],"mapped","壷"],[[194652,194652],"mapped","夆"],[[194653,194653],"mapped","多"],[[194654,194654],"mapped","夢"],[[194655,194655],"mapped","奢"],[[194656,194656],"mapped","𡚨"],[[194657,194657],"mapped","𡛪"],[[194658,194658],"mapped","姬"],[[194659,194659],"mapped","娛"],[[194660,194660],"mapped","娧"],[[194661,194661],"mapped","姘"],[[194662,194662],"mapped","婦"],[[194663,194663],"mapped","㛮"],[[194664,194664],"disallowed"],[[194665,194665],"mapped","嬈"],[[194666,194667],"mapped","嬾"],[[194668,194668],"mapped","𡧈"],[[194669,194669],"mapped","寃"],[[194670,194670],"mapped","寘"],[[194671,194671],"mapped","寧"],[[194672,194672],"mapped","寳"],[[194673,194673],"mapped","𡬘"],[[194674,194674],"mapped","寿"],[[194675,194675],"mapped","将"],[[194676,194676],"disallowed"],[[194677,194677],"mapped","尢"],[[194678,194678],"mapped","㞁"],[[194679,194679],"mapped","屠"],[[194680,194680],"mapped","屮"],[[194681,194681],"mapped","峀"],[[194682,194682],"mapped","岍"],[[194683,194683],"mapped","𡷤"],[[194684,194684],"mapped","嵃"],[[194685,194685],"mapped","𡷦"],[[194686,194686],"mapped","嵮"],[[194687,194687],"mapped","嵫"],[[194688,194688],"mapped","嵼"],[[194689,194689],"mapped","巡"],[[194690,194690],"mapped","巢"],[[194691,194691],"mapped","㠯"],[[194692,194692],"mapped","巽"],[[194693,194693],"mapped","帨"],[[194694,194694],"mapped","帽"],[[194695,194695],"mapped","幩"],[[194696,194696],"mapped","㡢"],[[194697,194697],"mapped","𢆃"],[[194698,194698],"mapped","㡼"],[[194699,194699],"mapped","庰"],[[194700,194700],"mapped","庳"],[[194701,194701],"mapped","庶"],[[194702,194702],"mapped","廊"],[[194703,194703],"mapped","𪎒"],[[194704,194704],"mapped","廾"],[[194705,194706],"mapped","𢌱"],[[194707,194707],"mapped","舁"],[[194708,194709],"mapped","弢"],[[194710,194710],"mapped","㣇"],[[194711,194711],"mapped","𣊸"],[[194712,194712],"mapped","𦇚"],[[194713,194713],"mapped","形"],[[194714,194714],"mapped","彫"],[[194715,194715],"mapped","㣣"],[[194716,194716],"mapped","徚"],[[194717,194717],"mapped","忍"],[[194718,194718],"mapped","志"],[[194719,194719],"mapped","忹"],[[194720,194720],"mapped","悁"],[[194721,194721],"mapped","㤺"],[[194722,194722],"mapped","㤜"],[[194723,194723],"mapped","悔"],[[194724,194724],"mapped","𢛔"],[[194725,194725],"mapped","惇"],[[194726,194726],"mapped","慈"],[[194727,194727],"mapped","慌"],[[194728,194728],"mapped","慎"],[[194729,194729],"mapped","慌"],[[194730,194730],"mapped","慺"],[[194731,194731],"mapped","憎"],[[194732,194732],"mapped","憲"],[[194733,194733],"mapped","憤"],[[194734,194734],"mapped","憯"],[[194735,194735],"mapped","懞"],[[194736,194736],"mapped","懲"],[[194737,194737],"mapped","懶"],[[194738,194738],"mapped","成"],[[194739,194739],"mapped","戛"],[[194740,194740],"mapped","扝"],[[194741,194741],"mapped","抱"],[[194742,194742],"mapped","拔"],[[194743,194743],"mapped","捐"],[[194744,194744],"mapped","𢬌"],[[194745,194745],"mapped","挽"],[[194746,194746],"mapped","拼"],[[194747,194747],"mapped","捨"],[[194748,194748],"mapped","掃"],[[194749,194749],"mapped","揤"],[[194750,194750],"mapped","𢯱"],[[194751,194751],"mapped","搢"],[[194752,194752],"mapped","揅"],[[194753,194753],"mapped","掩"],[[194754,194754],"mapped","㨮"],[[194755,194755],"mapped","摩"],[[194756,194756],"mapped","摾"],[[194757,194757],"mapped","撝"],[[194758,194758],"mapped","摷"],[[194759,194759],"mapped","㩬"],[[194760,194760],"mapped","敏"],[[194761,194761],"mapped","敬"],[[194762,194762],"mapped","𣀊"],[[194763,194763],"mapped","旣"],[[194764,194764],"mapped","書"],[[194765,194765],"mapped","晉"],[[194766,194766],"mapped","㬙"],[[194767,194767],"mapped","暑"],[[194768,194768],"mapped","㬈"],[[194769,194769],"mapped","㫤"],[[194770,194770],"mapped","冒"],[[194771,194771],"mapped","冕"],[[194772,194772],"mapped","最"],[[194773,194773],"mapped","暜"],[[194774,194774],"mapped","肭"],[[194775,194775],"mapped","䏙"],[[194776,194776],"mapped","朗"],[[194777,194777],"mapped","望"],[[194778,194778],"mapped","朡"],[[194779,194779],"mapped","杞"],[[194780,194780],"mapped","杓"],[[194781,194781],"mapped","𣏃"],[[194782,194782],"mapped","㭉"],[[194783,194783],"mapped","柺"],[[194784,194784],"mapped","枅"],[[194785,194785],"mapped","桒"],[[194786,194786],"mapped","梅"],[[194787,194787],"mapped","𣑭"],[[194788,194788],"mapped","梎"],[[194789,194789],"mapped","栟"],[[194790,194790],"mapped","椔"],[[194791,194791],"mapped","㮝"],[[194792,194792],"mapped","楂"],[[194793,194793],"mapped","榣"],[[194794,194794],"mapped","槪"],[[194795,194795],"mapped","檨"],[[194796,194796],"mapped","𣚣"],[[194797,194797],"mapped","櫛"],[[194798,194798],"mapped","㰘"],[[194799,194799],"mapped","次"],[[194800,194800],"mapped","𣢧"],[[194801,194801],"mapped","歔"],[[194802,194802],"mapped","㱎"],[[194803,194803],"mapped","歲"],[[194804,194804],"mapped","殟"],[[194805,194805],"mapped","殺"],[[194806,194806],"mapped","殻"],[[194807,194807],"mapped","𣪍"],[[194808,194808],"mapped","𡴋"],[[194809,194809],"mapped","𣫺"],[[194810,194810],"mapped","汎"],[[194811,194811],"mapped","𣲼"],[[194812,194812],"mapped","沿"],[[194813,194813],"mapped","泍"],[[194814,194814],"mapped","汧"],[[194815,194815],"mapped","洖"],[[194816,194816],"mapped","派"],[[194817,194817],"mapped","海"],[[194818,194818],"mapped","流"],[[194819,194819],"mapped","浩"],[[194820,194820],"mapped","浸"],[[194821,194821],"mapped","涅"],[[194822,194822],"mapped","𣴞"],[[194823,194823],"mapped","洴"],[[194824,194824],"mapped","港"],[[194825,194825],"mapped","湮"],[[194826,194826],"mapped","㴳"],[[194827,194827],"mapped","滋"],[[194828,194828],"mapped","滇"],[[194829,194829],"mapped","𣻑"],[[194830,194830],"mapped","淹"],[[194831,194831],"mapped","潮"],[[194832,194832],"mapped","𣽞"],[[194833,194833],"mapped","𣾎"],[[194834,194834],"mapped","濆"],[[194835,194835],"mapped","瀹"],[[194836,194836],"mapped","瀞"],[[194837,194837],"mapped","瀛"],[[194838,194838],"mapped","㶖"],[[194839,194839],"mapped","灊"],[[194840,194840],"mapped","災"],[[194841,194841],"mapped","灷"],[[194842,194842],"mapped","炭"],[[194843,194843],"mapped","𠔥"],[[194844,194844],"mapped","煅"],[[194845,194845],"mapped","𤉣"],[[194846,194846],"mapped","熜"],[[194847,194847],"disallowed"],[[194848,194848],"mapped","爨"],[[194849,194849],"mapped","爵"],[[194850,194850],"mapped","牐"],[[194851,194851],"mapped","𤘈"],[[194852,194852],"mapped","犀"],[[194853,194853],"mapped","犕"],[[194854,194854],"mapped","𤜵"],[[194855,194855],"mapped","𤠔"],[[194856,194856],"mapped","獺"],[[194857,194857],"mapped","王"],[[194858,194858],"mapped","㺬"],[[194859,194859],"mapped","玥"],[[194860,194861],"mapped","㺸"],[[194862,194862],"mapped","瑇"],[[194863,194863],"mapped","瑜"],[[194864,194864],"mapped","瑱"],[[194865,194865],"mapped","璅"],[[194866,194866],"mapped","瓊"],[[194867,194867],"mapped","㼛"],[[194868,194868],"mapped","甤"],[[194869,194869],"mapped","𤰶"],[[194870,194870],"mapped","甾"],[[194871,194871],"mapped","𤲒"],[[194872,194872],"mapped","異"],[[194873,194873],"mapped","𢆟"],[[194874,194874],"mapped","瘐"],[[194875,194875],"mapped","𤾡"],[[194876,194876],"mapped","𤾸"],[[194877,194877],"mapped","𥁄"],[[194878,194878],"mapped","㿼"],[[194879,194879],"mapped","䀈"],[[194880,194880],"mapped","直"],[[194881,194881],"mapped","𥃳"],[[194882,194882],"mapped","𥃲"],[[194883,194883],"mapped","𥄙"],[[194884,194884],"mapped","𥄳"],[[194885,194885],"mapped","眞"],[[194886,194887],"mapped","真"],[[194888,194888],"mapped","睊"],[[194889,194889],"mapped","䀹"],[[194890,194890],"mapped","瞋"],[[194891,194891],"mapped","䁆"],[[194892,194892],"mapped","䂖"],[[194893,194893],"mapped","𥐝"],[[194894,194894],"mapped","硎"],[[194895,194895],"mapped","碌"],[[194896,194896],"mapped","磌"],[[194897,194897],"mapped","䃣"],[[194898,194898],"mapped","𥘦"],[[194899,194899],"mapped","祖"],[[194900,194900],"mapped","𥚚"],[[194901,194901],"mapped","𥛅"],[[194902,194902],"mapped","福"],[[194903,194903],"mapped","秫"],[[194904,194904],"mapped","䄯"],[[194905,194905],"mapped","穀"],[[194906,194906],"mapped","穊"],[[194907,194907],"mapped","穏"],[[194908,194908],"mapped","𥥼"],[[194909,194910],"mapped","𥪧"],[[194911,194911],"disallowed"],[[194912,194912],"mapped","䈂"],[[194913,194913],"mapped","𥮫"],[[194914,194914],"mapped","篆"],[[194915,194915],"mapped","築"],[[194916,194916],"mapped","䈧"],[[194917,194917],"mapped","𥲀"],[[194918,194918],"mapped","糒"],[[194919,194919],"mapped","䊠"],[[194920,194920],"mapped","糨"],[[194921,194921],"mapped","糣"],[[194922,194922],"mapped","紀"],[[194923,194923],"mapped","𥾆"],[[194924,194924],"mapped","絣"],[[194925,194925],"mapped","䌁"],[[194926,194926],"mapped","緇"],[[194927,194927],"mapped","縂"],[[194928,194928],"mapped","繅"],[[194929,194929],"mapped","䌴"],[[194930,194930],"mapped","𦈨"],[[194931,194931],"mapped","𦉇"],[[194932,194932],"mapped","䍙"],[[194933,194933],"mapped","𦋙"],[[194934,194934],"mapped","罺"],[[194935,194935],"mapped","𦌾"],[[194936,194936],"mapped","羕"],[[194937,194937],"mapped","翺"],[[194938,194938],"mapped","者"],[[194939,194939],"mapped","𦓚"],[[194940,194940],"mapped","𦔣"],[[194941,194941],"mapped","聠"],[[194942,194942],"mapped","𦖨"],[[194943,194943],"mapped","聰"],[[194944,194944],"mapped","𣍟"],[[194945,194945],"mapped","䏕"],[[194946,194946],"mapped","育"],[[194947,194947],"mapped","脃"],[[194948,194948],"mapped","䐋"],[[194949,194949],"mapped","脾"],[[194950,194950],"mapped","媵"],[[194951,194951],"mapped","𦞧"],[[194952,194952],"mapped","𦞵"],[[194953,194953],"mapped","𣎓"],[[194954,194954],"mapped","𣎜"],[[194955,194955],"mapped","舁"],[[194956,194956],"mapped","舄"],[[194957,194957],"mapped","辞"],[[194958,194958],"mapped","䑫"],[[194959,194959],"mapped","芑"],[[194960,194960],"mapped","芋"],[[194961,194961],"mapped","芝"],[[194962,194962],"mapped","劳"],[[194963,194963],"mapped","花"],[[194964,194964],"mapped","芳"],[[194965,194965],"mapped","芽"],[[194966,194966],"mapped","苦"],[[194967,194967],"mapped","𦬼"],[[194968,194968],"mapped","若"],[[194969,194969],"mapped","茝"],[[194970,194970],"mapped","荣"],[[194971,194971],"mapped","莭"],[[194972,194972],"mapped","茣"],[[194973,194973],"mapped","莽"],[[194974,194974],"mapped","菧"],[[194975,194975],"mapped","著"],[[194976,194976],"mapped","荓"],[[194977,194977],"mapped","菊"],[[194978,194978],"mapped","菌"],[[194979,194979],"mapped","菜"],[[194980,194980],"mapped","𦰶"],[[194981,194981],"mapped","𦵫"],[[194982,194982],"mapped","𦳕"],[[194983,194983],"mapped","䔫"],[[194984,194984],"mapped","蓱"],[[194985,194985],"mapped","蓳"],[[194986,194986],"mapped","蔖"],[[194987,194987],"mapped","𧏊"],[[194988,194988],"mapped","蕤"],[[194989,194989],"mapped","𦼬"],[[194990,194990],"mapped","䕝"],[[194991,194991],"mapped","䕡"],[[194992,194992],"mapped","𦾱"],[[194993,194993],"mapped","𧃒"],[[194994,194994],"mapped","䕫"],[[194995,194995],"mapped","虐"],[[194996,194996],"mapped","虜"],[[194997,194997],"mapped","虧"],[[194998,194998],"mapped","虩"],[[194999,194999],"mapped","蚩"],[[195e3,195e3],"mapped","蚈"],[[195001,195001],"mapped","蜎"],[[195002,195002],"mapped","蛢"],[[195003,195003],"mapped","蝹"],[[195004,195004],"mapped","蜨"],[[195005,195005],"mapped","蝫"],[[195006,195006],"mapped","螆"],[[195007,195007],"disallowed"],[[195008,195008],"mapped","蟡"],[[195009,195009],"mapped","蠁"],[[195010,195010],"mapped","䗹"],[[195011,195011],"mapped","衠"],[[195012,195012],"mapped","衣"],[[195013,195013],"mapped","𧙧"],[[195014,195014],"mapped","裗"],[[195015,195015],"mapped","裞"],[[195016,195016],"mapped","䘵"],[[195017,195017],"mapped","裺"],[[195018,195018],"mapped","㒻"],[[195019,195019],"mapped","𧢮"],[[195020,195020],"mapped","𧥦"],[[195021,195021],"mapped","䚾"],[[195022,195022],"mapped","䛇"],[[195023,195023],"mapped","誠"],[[195024,195024],"mapped","諭"],[[195025,195025],"mapped","變"],[[195026,195026],"mapped","豕"],[[195027,195027],"mapped","𧲨"],[[195028,195028],"mapped","貫"],[[195029,195029],"mapped","賁"],[[195030,195030],"mapped","贛"],[[195031,195031],"mapped","起"],[[195032,195032],"mapped","𧼯"],[[195033,195033],"mapped","𠠄"],[[195034,195034],"mapped","跋"],[[195035,195035],"mapped","趼"],[[195036,195036],"mapped","跰"],[[195037,195037],"mapped","𠣞"],[[195038,195038],"mapped","軔"],[[195039,195039],"mapped","輸"],[[195040,195040],"mapped","𨗒"],[[195041,195041],"mapped","𨗭"],[[195042,195042],"mapped","邔"],[[195043,195043],"mapped","郱"],[[195044,195044],"mapped","鄑"],[[195045,195045],"mapped","𨜮"],[[195046,195046],"mapped","鄛"],[[195047,195047],"mapped","鈸"],[[195048,195048],"mapped","鋗"],[[195049,195049],"mapped","鋘"],[[195050,195050],"mapped","鉼"],[[195051,195051],"mapped","鏹"],[[195052,195052],"mapped","鐕"],[[195053,195053],"mapped","𨯺"],[[195054,195054],"mapped","開"],[[195055,195055],"mapped","䦕"],[[195056,195056],"mapped","閷"],[[195057,195057],"mapped","𨵷"],[[195058,195058],"mapped","䧦"],[[195059,195059],"mapped","雃"],[[195060,195060],"mapped","嶲"],[[195061,195061],"mapped","霣"],[[195062,195062],"mapped","𩅅"],[[195063,195063],"mapped","𩈚"],[[195064,195064],"mapped","䩮"],[[195065,195065],"mapped","䩶"],[[195066,195066],"mapped","韠"],[[195067,195067],"mapped","𩐊"],[[195068,195068],"mapped","䪲"],[[195069,195069],"mapped","𩒖"],[[195070,195071],"mapped","頋"],[[195072,195072],"mapped","頩"],[[195073,195073],"mapped","𩖶"],[[195074,195074],"mapped","飢"],[[195075,195075],"mapped","䬳"],[[195076,195076],"mapped","餩"],[[195077,195077],"mapped","馧"],[[195078,195078],"mapped","駂"],[[195079,195079],"mapped","駾"],[[195080,195080],"mapped","䯎"],[[195081,195081],"mapped","𩬰"],[[195082,195082],"mapped","鬒"],[[195083,195083],"mapped","鱀"],[[195084,195084],"mapped","鳽"],[[195085,195085],"mapped","䳎"],[[195086,195086],"mapped","䳭"],[[195087,195087],"mapped","鵧"],[[195088,195088],"mapped","𪃎"],[[195089,195089],"mapped","䳸"],[[195090,195090],"mapped","𪄅"],[[195091,195091],"mapped","𪈎"],[[195092,195092],"mapped","𪊑"],[[195093,195093],"mapped","麻"],[[195094,195094],"mapped","䵖"],[[195095,195095],"mapped","黹"],[[195096,195096],"mapped","黾"],[[195097,195097],"mapped","鼅"],[[195098,195098],"mapped","鼏"],[[195099,195099],"mapped","鼖"],[[195100,195100],"mapped","鼻"],[[195101,195101],"mapped","𪘀"],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]},function(e,t,a){"use strict";const i=a(159),r=a(26);t.implementation=class{constructor(e,{doNotStripQMark:t=!1}){let a=e[0];if(this._list=[],this._url=null,t||"string"!=typeof a||"?"!==a[0]||(a=a.slice(1)),Array.isArray(a))for(const e of a){if(2!==e.length)throw new TypeError("Failed to construct 'URLSearchParams': parameter 1 sequence's element does not contain exactly two elements.");this._list.push([e[0],e[1]])}else if("object"==typeof a&&null===Object.getPrototypeOf(a))for(const e of Object.keys(a)){const t=a[e];this._list.push([e,t])}else this._list=r.parseUrlencoded(a)}_updateSteps(){if(null!==this._url){let e=r.serializeUrlencoded(this._list);""===e&&(e=null),this._url._url.query=e}}append(e,t){this._list.push([e,t]),this._updateSteps()}delete(e){let t=0;for(;t-1},be.prototype.set=function(e,t){var a=this.__data__,i=Te(a,e);return i<0?a.push([e,t]):a[i][1]=t,this},Fe.prototype.clear=function(){this.__data__={hash:new De,map:new(le||be),string:new De}},Fe.prototype.delete=function(e){return Ue(this,e).delete(e)},Fe.prototype.get=function(e){return Ue(this,e).get(e)},Fe.prototype.has=function(e){return Ue(this,e).has(e)},Fe.prototype.set=function(e,t){return Ue(this,e).set(e,t),this},Be.prototype.add=Be.prototype.push=function(e){return this.__data__.set(e,r),this},Be.prototype.has=function(e){return this.__data__.has(e)},Se.prototype.clear=function(){this.__data__=new be},Se.prototype.delete=function(e){return this.__data__.delete(e)},Se.prototype.get=function(e){return this.__data__.get(e)},Se.prototype.has=function(e){return this.__data__.has(e)},Se.prototype.set=function(e,t){var i=this.__data__;if(i instanceof be){var r=i.__data__;if(!le||r.length=o)return u;var d=a[i];return u*("desc"==d?-1:1)}}return e.index-t.index}(e,t,a)})}function Ie(e){return nt(e)?e:Ze(e)}function je(e,t){if(e!==t){var a=void 0!==e,i=null===e,r=e==e,n=lt(e),p=void 0!==t,o=null===t,u=t==t,d=lt(t);if(!o&&!d&&!n&&e>t||n&&p&&u&&!o&&!d||i&&p&&u||!a&&u||!r)return 1;if(!i&&!n&&!d&&ed))return!1;var l=o.get(e);if(l&&o.get(t))return l==t;var m=-1,c=!0,h=r&n?new Be:void 0;for(o.set(e,t),o.set(t,e);++m-1&&e%1==0&&e1&&Ke(e,t[0],t[1])?t=[]:a>2&&Ke(t[0],t[1],t[2])&&(t=[t[0]]),He(e,function e(t,a,i,r,n){var p=-1,o=t.length;for(i||(i=qe),n||(n=[]);++p0&&i(u)?a>1?e(u,a-1,i,r,n):z(n,u):r||(n[n.length]=u)}return n}(t,1),[])});function at(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError(i);var a=function(){var i=arguments,r=t?t.apply(this,i):i[0],n=a.cache;if(n.has(r))return n.get(r);var p=e.apply(this,i);return a.cache=n.set(r,p),p};return a.cache=new(at.Cache||Fe),a}function it(e,t){return e===t||e!=e&&t!=t}function rt(e){return function(e){return st(e)&&pt(e)}(e)&&ee.call(e,"callee")&&(!ne.call(e,"callee")||te.call(e)==d)}at.Cache=Fe;var nt=Array.isArray;function pt(e){return null!=e&&ut(e.length)&&!ot(e)}function ot(e){var t=dt(e)?te.call(e):"";return t==h||t==f}function ut(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=u}function dt(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function st(e){return!!e&&"object"==typeof e}function lt(e){return"symbol"==typeof e||st(e)&&te.call(e)==g}var mt=I?W(I):function(e){return st(e)&&ut(e.length)&&!!N[te.call(e)]};function ct(e){return pt(e)?xe(e):Ve(e)}function ht(e){return e}e.exports=tt}).call(this,a(160)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,a){var i,r,n;r=[t,a(162),a(59),a(60),a(61),a(163)],void 0===(n="function"==typeof(i=function(e,t,a,i,r,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.detailedDiff=e.updatedDiff=e.deletedDiff=e.diff=e.addedDiff=void 0;var p=l(t),o=l(a),u=l(i),d=l(r),s=l(n);function l(e){return e&&e.__esModule?e:{default:e}}e.addedDiff=o.default,e.diff=p.default,e.deletedDiff=u.default,e.updatedDiff=d.default,e.detailedDiff=s.default})?i.apply(t,r):i)||(e.exports=n)},function(e,t,a){var i,r,n;r=[e,t,a(27)],void 0===(n="function"==typeof(i=function(e,t,a){"use strict";function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;ta?a=r:r div::-webkit-scrollbar { display: none; }\n\n",r+="."+i+" { -webkit-animation-duration: 0.1s; animation-duration: 0.1s; -webkit-animation-name: "+a+"; animation-name: "+a+"; }\n",r+="@-webkit-keyframes "+a+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\n",function(t,a){a=a||function(e){document.head.appendChild(e)};var i=document.createElement("style");i.innerHTML=t,i.id=e,a(i)}(r+="@keyframes "+a+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }")}}("erd_scroll_detection_scrollbar_style",o),{makeDetectable:function(e,d,m){function c(){if(e.debug){var a=Array.prototype.slice.call(arguments);if(a.unshift(n.get(d),"Scroll: "),t.log.apply)t.log.apply(null,a);else for(var i=0;i{arguments[arguments.length]=((e,i)=>{if(e)return a(e);t(i)}),arguments.length++,e.apply(this,arguments)});e.apply(this,arguments)},"name",{value:e.name})},t.fromPromise=function(e){return Object.defineProperty(function(){const t=arguments[arguments.length-1];if("function"!=typeof t)return e.apply(this,arguments);e.apply(this,arguments).then(e=>t(null,e),t)},"name",{value:e.name})}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function a(e,t){for(var a=0;a126}const y=new Set([47,58,59,61,64,91,92,93,94,124]);function C(e){return D(e)||y.has(e)}const E=new Set([32,34,60,62,96]);function g(e){return A(e)||E.has(e)}const w=new Set([35,63,123,125]);function D(e){return g(e)||w.has(e)}function b(e,t){const a=String.fromCodePoint(e);return t(e)?function(e){const t=Buffer.from(e);let a="";for(let e=0;e=2&&"0"===e.charAt(0)&&"x"===e.charAt(1).toLowerCase()?(e=e.substring(2),t=16):e.length>=2&&"0"===e.charAt(0)&&(e=e.substring(1),t=8),""===e)return 0;let a=/[^0-7]/;return 10===t&&(a=/[^0-9]/),16===t&&(a=/[^0-9A-Fa-f]/),a.test(e)?d:parseInt(e,t)}function B(e,t=!1){if("["===e[0])return"]"!==e[e.length-1]?d:function(e){const t=[0,0,0,0,0,0,0,0];let a=0,r=null,p=0;if(58===(e=i.ucs2.decode(e))[p]){if(58!==e[p+1])return d;p+=2,r=++a}for(;p6)return d;let i=0;for(;void 0!==e[p];){let r=null;if(i>0){if(!(46===e[p]&&i<4))return d;++p}if(!n.isASCIIDigit(e[p]))return d;for(;n.isASCIIDigit(e[p]);){const t=parseInt(l(e,p));if(null===r)r=t;else{if(0===r)return d;r=10*r+t}if(r>255)return d;++p}t[a]=256*t[a]+r,2!=++i&&4!==i||++a}if(4!==i)return d;break}if(58===e[p]){if(void 0===e[++p])return d}else if(void 0!==e[p])return d;t[a]=i,++a}if(null!==r){let e=a-r;for(a=7;0!==a&&e>0;){const i=t[r+e-1];t[r+e-1]=t[a],t[a]=i,--a,--e}}else if(null===r&&8!==a)return d;return t}(e.substring(1,e.length-1));if(t)return function(e){if(function(e){return-1!==e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)}(e))return d;let t="";const a=i.ucs2.decode(e);for(let e=0;e1&&t.pop(),t.length>4)return e;const a=[];for(const i of t){if(""===i)return e;const t=F(i);if(t===d)return e;a.push(t)}for(let e=0;e255)return d;if(a[a.length-1]>=Math.pow(256,5-a.length))return d;let i=a.pop(),r=0;for(const e of a)i+=e*Math.pow(256,3-r),++r;return i}(a);return"number"==typeof p||p===d?p:a}function S(e){return"number"==typeof e?function(e){let t="",a=e;for(let e=1;e<=4;++e)t=String(a%256)+t,4!==e&&(t="."+t),a=Math.floor(a/256);return t}(e):e instanceof Array?"["+function(e){let t="";const a=function(e){let t=null,a=1,i=null,r=0;for(let n=0;na&&(t=i,a=r),i=null,r=0):(null===i&&(i=n),++r);return r>a&&(t=i,a=r),{idx:t,len:a}}(e).idx;let i=!1;for(let r=0;r<=7;++r)i&&0===e[r]||(i&&(i=!1),a!==r?(t+=e[r].toString(16),7!==r&&(t+=":")):(t+=0===r?"::":":",i=!0));return t}(e)+"]":e}function x(e){const{path:t}=e;0!==t.length&&("file"===e.scheme&&1===t.length&&function(e){return/^[A-Za-z]:$/.test(e)}(t[0])||t.pop())}function T(e){return""!==e.username||""!==e.password}function k(e,t,a,r,n){if(this.pointer=0,this.input=e,this.base=t||null,this.encodingOverride=a||"utf-8",this.stateOverride=n,this.url=r,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};const e=function(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}(this.input);e!==this.input&&(this.parseError=!0),this.input=e}const p=function(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}(this.input);for(p!==this.input&&(this.parseError=!0),this.input=p,this.state=n||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=i.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer],t=isNaN(e)?void 0:String.fromCodePoint(e),a=this["parse "+this.state](e,t);if(!a)break;if(a===d){this.failure=!0;break}}}k.prototype["parse scheme start"]=function(e,t){if(n.isASCIIAlpha(e))this.buffer+=t.toLowerCase(),this.state="scheme";else{if(this.stateOverride)return this.parseError=!0,d;this.state="no scheme",--this.pointer}return!0},k.prototype["parse scheme"]=function(e,t){if(n.isASCIIAlphanumeric(e)||43===e||45===e||46===e)this.buffer+=t.toLowerCase();else if(58===e){if(this.stateOverride){if(f(this.url)&&!h(this.buffer))return!1;if(!f(this.url)&&h(this.buffer))return!1;if((T(this.url)||null!==this.url.port)&&"file"===this.buffer)return!1;if("file"===this.url.scheme&&(""===this.url.host||null===this.url.host))return!1}if(this.url.scheme=this.buffer,this.stateOverride)return this.url.port===_(this.url.scheme)&&(this.url.port=null),!1;this.buffer="","file"===this.url.scheme?(47===this.input[this.pointer+1]&&47===this.input[this.pointer+2]||(this.parseError=!0),this.state="file"):f(this.url)&&null!==this.base&&this.base.scheme===this.url.scheme?this.state="special relative or authority":f(this.url)?this.state="special authority slashes":47===this.input[this.pointer+1]?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else{if(this.stateOverride)return this.parseError=!0,d;this.buffer="",this.state="no scheme",this.pointer=-1}return!0},k.prototype["parse no scheme"]=function(e){return null===this.base||this.base.cannotBeABaseURL&&35!==e?d:(this.base.cannotBeABaseURL&&35===e?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):"file"===this.base.scheme?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)},k.prototype["parse special relative or authority"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0},k.prototype["parse path or authority"]=function(e){return 47===e?this.state="authority":(this.state="path",--this.pointer),!0},k.prototype["parse relative"]=function(e){return this.url.scheme=this.base.scheme,isNaN(e)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):47===e?this.state="relative slash":63===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):f(this.url)&&92===e?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0},k.prototype["parse relative slash"]=function(e){return!f(this.url)||47!==e&&92!==e?47===e?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer):(92===e&&(this.parseError=!0),this.state="special authority ignore slashes"),!0},k.prototype["parse special authority slashes"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0},k.prototype["parse special authority ignore slashes"]=function(e){return 47!==e&&92!==e?(this.state="authority",--this.pointer):this.parseError=!0,!0},k.prototype["parse authority"]=function(e,t){if(64===e){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;const e=s(this.buffer);for(let t=0;tMath.pow(2,16)-1)return this.parseError=!0,d;this.url.port=e===_(this.url.scheme)?null:e,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}return!0};const N=new Set([47,92,63,35]);function L(e,t){const a=e.length-t;return a>=2&&function(e,t){return n.isASCIIAlpha(e)&&(58===t||124===t)}(e[t],e[t+1])&&(2===a||N.has(e[t+2]))}k.prototype["parse file"]=function(e){return this.url.scheme="file",47===e||92===e?(92===e&&(this.parseError=!0),this.state="file slash"):null!==this.base&&"file"===this.base.scheme?isNaN(e)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):63===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(L(this.input,this.pointer)?this.parseError=!0:(this.url.host=this.base.host,this.url.path=this.base.path.slice(),x(this.url)),this.state="path",--this.pointer):(this.state="path",--this.pointer),!0},k.prototype["parse file slash"]=function(e){return 47===e||92===e?(92===e&&(this.parseError=!0),this.state="file host"):(null===this.base||"file"!==this.base.scheme||L(this.input,this.pointer)||(!function(e){return 2===e.length&&n.isASCIIAlpha(e.codePointAt(0))&&":"===e[1]}(this.base.path[0])?this.url.host=this.base.host:this.url.path.push(this.base.path[0])),this.state="path",--this.pointer),!0},k.prototype["parse file host"]=function(e,t){if(isNaN(e)||47===e||92===e||63===e||35===e)if(--this.pointer,!this.stateOverride&&c(this.buffer))this.parseError=!0,this.state="path";else if(""===this.buffer){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let e=B(this.buffer,v(this.url));if(e===d)return d;if("localhost"===e&&(e=""),this.url.host=e,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=t;return!0},k.prototype["parse path start"]=function(e){return f(this.url)?(92===e&&(this.parseError=!0),this.state="path",47!==e&&92!==e&&--this.pointer):this.stateOverride||63!==e?this.stateOverride||35!==e?void 0!==e&&(this.state="path",47!==e&&--this.pointer):(this.url.fragment="",this.state="fragment"):(this.url.query="",this.state="query"),!0},k.prototype["parse path"]=function(e){if(isNaN(e)||47===e||f(this.url)&&92===e||!this.stateOverride&&(63===e||35===e)){if(f(this.url)&&92===e&&(this.parseError=!0),!function(e){return".."===(e=e.toLowerCase())||"%2e."===e||".%2e"===e||"%2e%2e"===e}(this.buffer)?!m(this.buffer)||47===e||f(this.url)&&92===e?m(this.buffer)||("file"===this.url.scheme&&0===this.url.path.length&&c(this.buffer)&&(""!==this.url.host&&null!==this.url.host&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)):this.url.path.push(""):(x(this.url),47===e||f(this.url)&&92===e||this.url.path.push("")),this.buffer="","file"===this.url.scheme&&(void 0===e||63===e||35===e))for(;this.url.path.length>1&&""===this.url.path[0];)this.parseError=!0,this.url.path.shift();63===e&&(this.url.query="",this.state="query"),35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||n.isASCIIHex(this.input[this.pointer+1])&&n.isASCIIHex(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=b(e,D);return!0},k.prototype["parse cannot-be-a-base-URL path"]=function(e){return 63===e?(this.url.query="",this.state="query"):35===e?(this.url.fragment="",this.state="fragment"):(isNaN(e)||37===e||(this.parseError=!0),37!==e||n.isASCIIHex(this.input[this.pointer+1])&&n.isASCIIHex(this.input[this.pointer+2])||(this.parseError=!0),isNaN(e)||(this.url.path[0]=this.url.path[0]+b(e,A))),!0},k.prototype["parse query"]=function(e,t){if(isNaN(e)||!this.stateOverride&&35===e){f(this.url)&&"ws"!==this.url.scheme&&"wss"!==this.url.scheme||(this.encodingOverride="utf-8");const t=Buffer.from(this.buffer);for(let e=0;e126||34===t[e]||35===t[e]||60===t[e]||62===t[e]||39===t[e]&&f(this.url)?this.url.query+=p(t[e]):this.url.query+=String.fromCodePoint(t[e]);this.buffer="",35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||n.isASCIIHex(this.input[this.pointer+1])&&n.isASCIIHex(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=t;return!0},k.prototype["parse fragment"]=function(e){return isNaN(e)||(0===e?this.parseError=!0:(37!==e||n.isASCIIHex(this.input[this.pointer+1])&&n.isASCIIHex(this.input[this.pointer+2])||(this.parseError=!0),this.url.fragment+=b(e,g))),!0},e.exports.serializeURL=function(e,t){let a=e.scheme+":";if(null!==e.host?(a+="//",""===e.username&&""===e.password||(a+=e.username,""!==e.password&&(a+=":"+e.password),a+="@"),a+=S(e.host),null!==e.port&&(a+=":"+e.port)):null===e.host&&"file"===e.scheme&&(a+="//"),e.cannotBeABaseURL)a+=e.path[0];else for(const t of e.path)a+="/"+t;return null!==e.query&&(a+="?"+e.query),t||null===e.fragment||(a+="#"+e.fragment),a},e.exports.serializeURLOrigin=function(t){switch(t.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(t.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return function(e){let t=e.scheme+"://";return t+=S(e.host),null!==e.port&&(t+=":"+e.port),t}({scheme:t.scheme,host:t.host,port:t.port});case"file":return"file://";default:return"null"}},e.exports.basicURLParse=function(e,t){void 0===t&&(t={});const a=new k(e,t.baseURL,t.encodingOverride,t.url,t.stateOverride);return a.failure?null:a.url},e.exports.setTheUsername=function(e,t){e.username="";const a=i.ucs2.decode(t);for(let t=0;tthis._terminal.rows},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isCursorInViewport",{get:function(){var e=this.ybase+this.y-this.ydisp;return e>=0&&et.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:a},e.prototype.fillViewportRows=function(){if(0===this.lines.length)for(var e=this._terminal.rows;e--;)this.lines.push(this._terminal.blankLine())},e.prototype.clear=function(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new r.CircularList(this._getCorrectBufferLength(this._terminal.rows)),this.scrollTop=0,this.scrollBottom=this._terminal.rows-1,this.setupTabStops()},e.prototype.resize=function(e,a){var i=this._getCorrectBufferLength(a);if(i>this.lines.maxLength&&(this.lines.maxLength=i),this.lines.length>0){if(this._terminal.cols0&&this.lines.length<=this.ybase+this.y+p+1?(this.ybase--,p++,this.ydisp>0&&this.ydisp--):this.lines.push(this._terminal.blankLine(void 0,void 0,e)));else for(o=this._terminal.rows;o>a;o--)this.lines.length>a+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(i0&&(this.lines.trimStart(u),this.ybase=Math.max(this.ybase-u,0),this.ydisp=Math.max(this.ydisp-u,0)),this.lines.maxLength=i}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,a-1),p&&(this.y+=p),this.savedY=Math.min(this.savedY,a-1),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}this.scrollBottom=a-1},e.prototype.translateBufferLineToString=function(e,a,i,r){void 0===i&&(i=0),void 0===r&&(r=null);var n="",p=this.lines.get(e);if(!p)return"";var o=i;null===r&&(r=p.length);for(var u=r,d=0;d=d&&o--,r>d&&u--):s[t.CHAR_DATA_CHAR_INDEX].length>1&&(i>d&&(o+=s[t.CHAR_DATA_CHAR_INDEX].length-1),r>d&&(u+=s[t.CHAR_DATA_CHAR_INDEX].length-1))}if(a){var l=n.search(/\s+$/);if(-1!==l&&(u=Math.min(u,l)),u<=o)return""}return n.substring(o,u)},e.prototype.getWrappedRangeForLine=function(e){for(var t=e,a=e;t>0&&this.lines.get(t).isWrapped;)t--;for(;a+10;);return e>=this._terminal.cols?this._terminal.cols-1:e<0?0:e},e.prototype.nextStop=function(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e=this._terminal.cols?this._terminal.cols-1:e<0?0:e},e.prototype.addMarker=function(e){var t=this,a=new o(e);return this.markers.push(a),a.register(this.lines.addDisposableListener("trim",function(e){a.line-=e,a.line<0&&a.dispose()})),a.register(a.addDisposableListener("dispose",function(){return t._removeMarker(a)})),a},e.prototype._removeMarker=function(e){this.markers.splice(this.markers.indexOf(e),1)},e}();t.Buffer=p;var o=function(e){function t(a){var i=e.call(this)||this;return i.line=a,i._id=t._nextId++,i.isDisposed=!1,i}return i(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.emit("dispose"),e.prototype.dispose.call(this))},t._nextId=1,t}(n.EventEmitter);t.Marker=o},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(){var t=e.call(this)||this;return t._events=t._events||{},t}return i(t,e),t.prototype.on=function(e,t){this._events[e]=this._events[e]||[],this._events[e].push(t)},t.prototype.addDisposableListener=function(e,t){var a=this;return this.on(e,t),{dispose:function(){t&&(a.off(e,t),t=null)}}},t.prototype.off=function(e,t){if(this._events[e])for(var a=this._events[e],i=a.length;i--;)if(a[i]===t)return void a.splice(i,1)},t.prototype.removeAllListeners=function(e){this._events[e]&&delete this._events[e]},t.prototype.emit=function(e){for(var t=[],a=1;a!0).catch(()=>!1)}),pathExistsSync:r.existsSync}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this._disposables=[],this._isDisposed=!1}return e.prototype.dispose=function(){this._isDisposed=!0,this._disposables.forEach(function(e){return e.dispose()}),this._disposables.length=0},e.prototype.register=function(e){this._disposables.push(e)},e.prototype.unregister=function(e){var t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)},e}();t.Disposable=i},function(e,t,a){"use strict";var i=a(2);Object.defineProperty(t,"__esModule",{value:!0}),t.AtomXtermProfilesSingleton=t.ATOM_XTERM_BASE_URI=void 0;var r=i(a(4)),n=i(a(5)),p=a(13),o=i(a(29)),u=i(a(34)),d=i(a(0)),s=i(a(149)),l=a(36),m=a(161);t.ATOM_XTERM_BASE_URI="atom-xterm://";var c={"atom-xterm.spawnPtySettings.command":"command","atom-xterm.spawnPtySettings.args":"args","atom-xterm.spawnPtySettings.name":"name","atom-xterm.spawnPtySettings.cwd":"cwd","atom-xterm.spawnPtySettings.env":"env","atom-xterm.spawnPtySettings.setEnv":"setEnv","atom-xterm.spawnPtySettings.deleteEnv":"deleteEnv","atom-xterm.spawnPtySettings.encoding":"encoding","atom-xterm.terminalSettings.fontSize":"fontSize","atom-xterm.terminalSettings.leaveOpenAfterExit":"leaveOpenAfterExit","atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup":"allowRelaunchingTerminalsOnStartup","atom-xterm.terminalSettings.relaunchTerminalOnStartup":"relaunchTerminalOnStartup","atom-xterm.terminalSettings.title":"title","atom-xterm.terminalSettings.xtermOptions":"xtermOptions","atom-xterm.terminalSettings.promptToStartup":"promptToStartup"},h=Symbol("AtomXtermProfilesSingleton sentinel"),f=function(){function e(t){if((0,r.default)(this,e),h!==t)throw new Error("AtomXtermProfilesSingleton cannot be instantiated directly.");this.emitter=new p.Emitter,this.profilesConfigPath=d.default.join(o.default.getUserDataPath(),"profiles.json"),this.profiles={},this.previousBaseProfile=null,this.baseProfile=this.getDefaultProfile(),this.resetBaseProfile(),this.profilesLoadPromise=null,this.reloadProfiles()}return(0,n.default)(e,[{key:"sortProfiles",value:function(e){var t={};return Object.keys(e).sort().forEach(function(a){t[a]=e[a]}),t}},{key:"reloadProfiles",value:function(){var e=this;this.profilesLoadPromise=new Promise(function(t,a){u.default.readJson(e.profilesConfigPath,function(a,i){a?e.updateProfiles({}).then(function(){e.emitter.emit("did-reload-profiles",e.getSanitizedProfilesData()),t()}):(e.profiles=e.sortProfiles(i),e.emitter.emit("did-reload-profiles",e.getSanitizedProfilesData()),t())})})}},{key:"onDidReloadProfiles",value:function(e){return this.emitter.on("did-reload-profiles",e)}},{key:"onDidResetBaseProfile",value:function(e){return this.emitter.on("did-reset-base-profile",e)}},{key:"updateProfiles",value:function(e){var t=this;return new Promise(function(a,i){u.default.ensureDir(d.default.dirname(t.profilesConfigPath),function(r){r&&i(r),e=t.sortProfiles(e),u.default.writeJson(t.profilesConfigPath,e,function(r){r&&i(r),t.profiles=e,a()})})})}},{key:"deepClone",value:function(e){return JSON.parse(JSON.stringify(e))}},{key:"diffProfiles",value:function(e,t){var a=(0,m.detailedDiff)(e,t);return Object.assign(a.added,a.updated)}},{key:"getDefaultProfile",value:function(){return{command:o.default.getDefaultShellCommand(),args:JSON.parse(o.default.getDefaultArgs()),name:o.default.getDefaultTermType(),cwd:o.default.getDefaultCwd(),env:null,setEnv:JSON.parse(o.default.getDefaultSetEnv()),deleteEnv:JSON.parse(o.default.getDefaultDeleteEnv()),encoding:null,fontSize:o.default.getDefaultFontSize(),leaveOpenAfterExit:o.default.getDefaultLeaveOpenAfterExit(),relaunchTerminalOnStartup:o.default.getDefaultRelaunchTerminalOnStartup(),title:null,xtermOptions:JSON.parse(o.default.getDefaultXtermOptions()),promptToStartup:o.default.getDefaultPromptToStartup()}}},{key:"getBaseProfile",value:function(){return this.deepClone(this.baseProfile)}},{key:"validateJsonConfigSetting",value:function(e,t){var a=c[e],i=this.previousBaseProfile[a],r=atom.config.get(e);try{r=JSON.parse(r||t)||i}catch(e){if(!(e instanceof SyntaxError))throw e;r=i}return r}},{key:"resetBaseProfile",value:function(){this.previousBaseProfile=this.deepClone(this.baseProfile);var e=this.validateJsonConfigSetting("atom-xterm.spawnPtySettings.env","null");e&&e.constructor===Object||(e=null);var t=atom.config.get("atom-xterm.spawnPtySettings.encoding")||null,a=atom.config.get("atom-xterm.terminalSettings.leaveOpenAfterExit");!0!==a&&!1!==a&&(a=o.default.getDefaultLeaveOpenAfterExit());var i=atom.config.get("atom-xterm.terminalSettings.relaunchTerminalOnStartup");!0!==i&&!1!==i&&(i=o.default.getDefaultRelaunchTerminalOnStartup());var r=atom.config.get("atom-xterm.terminalSettings.title")||o.default.getDefaultTitle(),n=atom.config.get("atom-xterm.terminalSettings.promptToStartup");!0!==n&&!1!==n&&(n=o.default.getDefaultPromptToStartup()),this.baseProfile={command:atom.config.get("atom-xterm.spawnPtySettings.command")||o.default.getDefaultShellCommand(),args:this.validateJsonConfigSetting("atom-xterm.spawnPtySettings.args",o.default.getDefaultArgs()),name:atom.config.get("atom-xterm.spawnPtySettings.name")||o.default.getDefaultTermType(),cwd:atom.config.get("atom-xterm.spawnPtySettings.cwd")||o.default.getDefaultCwd(),env:e,setEnv:this.validateJsonConfigSetting("atom-xterm.spawnPtySettings.setEnv",o.default.getDefaultSetEnv()),deleteEnv:this.validateJsonConfigSetting("atom-xterm.spawnPtySettings.deleteEnv",o.default.getDefaultDeleteEnv()),encoding:t,fontSize:atom.config.get("atom-xterm.terminalSettings.fontSize")||o.default.getDefaultFontSize(),leaveOpenAfterExit:a,relaunchTerminalOnStartup:i,title:r||null,xtermOptions:this.validateJsonConfigSetting("atom-xterm.terminalSettings.xtermOptions",o.default.getDefaultXtermOptions()),promptToStartup:n},this.emitter.emit("did-reset-base-profile",this.getBaseProfile())}},{key:"sanitizeData",value:function(e){var t={};return"command"in e&&(t.command=e.command),"args"in e&&(t.args=e.args),"name"in e&&(t.name=e.name),"cwd"in e&&(t.cwd=e.cwd),"env"in e&&(t.env=e.env),"setEnv"in e&&(t.setEnv=e.setEnv),"deleteEnv"in e&&(t.deleteEnv=e.deleteEnv),"encoding"in e&&(t.encoding=e.encoding),"fontSize"in e&&(t.fontSize=e.fontSize),"leaveOpenAfterExit"in e&&(t.leaveOpenAfterExit=e.leaveOpenAfterExit),"relaunchTerminalOnStartup"in e&&(t.relaunchTerminalOnStartup=e.relaunchTerminalOnStartup),"title"in e&&(t.title=e.title),"xtermOptions"in e&&(t.xtermOptions=e.xtermOptions),"promptToStartup"in e&&(t.promptToStartup=e.promptToStartup),this.deepClone(t)}},{key:"getSanitizedProfilesData",value:function(){var e={};for(var t in this.profiles)e[t]=this.sanitizeData(this.profiles[t]);return e}},{key:"getProfiles",value:function(){var e=this;return new Promise(function(t,a){e.profilesLoadPromise.then(function(){t(e.getSanitizedProfilesData())})})}},{key:"getProfile",value:function(e){var t=this;return new Promise(function(a,i){t.profilesLoadPromise.then(function(){a(Object.assign({},t.deepClone(t.baseProfile),t.sanitizeData(t.profiles[e]||{})))})})}},{key:"isProfileExists",value:function(e){var t=this;return new Promise(function(a,i){t.profilesLoadPromise.then(function(){a(e in t.profiles)})})}},{key:"setProfile",value:function(e,t){var a=this;return new Promise(function(i,r){a.profilesLoadPromise.then(function(){var r=Object.assign({},a.deepClone(a.baseProfile),a.sanitizeData(t)),n=Object.assign({},a.deepClone(a.profiles));n[e]=r,a.updateProfiles(n).then(function(){i()})})})}},{key:"deleteProfile",value:function(e){var t=this;return new Promise(function(a,i){t.profilesLoadPromise.then(function(){var i=Object.assign({},t.deepClone(t.profiles));delete i[e],t.updateProfiles(i).then(function(){a()})})})}},{key:"generateNewUri",value:function(){return"atom-xterm://"+(0,s.default)()+"/"}},{key:"generateNewUrlFromProfileData",value:function(e){e=this.sanitizeData(e);var t=new l.URL(this.generateNewUri());return"command"in e&&t.searchParams.set("command",e.command),"args"in e&&t.searchParams.set("args",JSON.stringify(e.args)),"name"in e&&t.searchParams.set("name",e.name),"cwd"in e&&t.searchParams.set("cwd",e.cwd),"env"in e&&t.searchParams.set("env",JSON.stringify(e.env)),"setEnv"in e&&t.searchParams.set("setEnv",JSON.stringify(e.setEnv)),"deleteEnv"in e&&t.searchParams.set("deleteEnv",JSON.stringify(e.deleteEnv)),"encoding"in e&&t.searchParams.set("encoding",e.encoding),"fontSize"in e&&t.searchParams.set("fontSize",JSON.stringify(e.fontSize)),"leaveOpenAfterExit"in e&&t.searchParams.set("leaveOpenAfterExit",JSON.stringify(e.leaveOpenAfterExit)),"relaunchTerminalOnStartup"in e&&t.searchParams.set("relaunchTerminalOnStartup",JSON.stringify(e.relaunchTerminalOnStartup)),"title"in e&&t.searchParams.set("title",e.title),"xtermOptions"in e&&t.searchParams.set("xtermOptions",JSON.stringify(e.xtermOptions)),"promptToStartup"in e&&t.searchParams.set("promptToStartup",JSON.stringify(e.promptToStartup)),t}},{key:"createProfileDataFromUri",value:function(e){var t,a=new l.URL(e),i=this.getBaseProfile(),r={};return(t=a.searchParams.get("command"))&&(r.command=t),"command"in r||(r.command=i.command),(t=a.searchParams.get("args"))&&(r.args=JSON.parse(t)),"args"in r&&r.args||(r.args=i.args),(t=a.searchParams.get("name"))&&(r.name=t),"name"in r||(r.name=i.name),(t=a.searchParams.get("cwd"))&&(r.cwd=t),"cwd"in r||(r.cwd=i.cwd),(t=a.searchParams.get("env"))&&(r.env=JSON.parse(t)),"env"in r&&r.env||(r.env=i.env),(t=a.searchParams.get("setEnv"))&&(r.setEnv=JSON.parse(t)),"setEnv"in r&&r.setEnv||(r.setEnv=i.setEnv),(t=a.searchParams.get("deleteEnv"))&&(r.deleteEnv=JSON.parse(t)),"deleteEnv"in r&&r.deleteEnv||(r.deleteEnv=i.deleteEnv),(t=a.searchParams.get("encoding"))&&"null"!==t&&(r.encoding=t),"encoding"in r||(r.encoding=i.encoding),(t=a.searchParams.get("fontSize"))&&(r.fontSize=JSON.parse(t)),"fontSize"in r&&r.fontSize||(r.fontSize=i.fontSize),(t=a.searchParams.get("leaveOpenAfterExit"))&&(r.leaveOpenAfterExit=JSON.parse(t)),"leaveOpenAfterExit"in r&&null!==r.leaveOpenAfterExit&&""!==r.leaveOpenAfterExit||(r.leaveOpenAfterExit=i.leaveOpenAfterExit),(t=a.searchParams.get("relaunchTerminalOnStartup"))&&(r.relaunchTerminalOnStartup=JSON.parse(t)),"relaunchTerminalOnStartup"in r&&null!==r.relaunchTerminalOnStartup&&""!==r.relaunchTerminalOnStartup||(r.relaunchTerminalOnStartup=i.relaunchTerminalOnStartup),(t=a.searchParams.get("title"))&&"null"!==t&&(r.title=t),"title"in r||(r.title=i.title),(t=a.searchParams.get("xtermOptions"))&&(r.xtermOptions=JSON.parse(t)),"xtermOptions"in r&&r.xtermOptions||(r.xtermOptions=i.xtermOptions),(t=a.searchParams.get("promptToStartup"))&&(r.promptToStartup=JSON.parse(t)),"promptToStartup"in r&&null!==r.promptToStartup&&""!==r.promptToStartup||(r.promptToStartup=i.promptToStartup),r}}],[{key:"instance",get:function(){return this[h]||(this[h]=new e(h)),this[h]}}]),e}();t.AtomXtermProfilesSingleton=f},function(t,a){t.exports=e},function(e,t){function a(t){return e.exports=a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},a(t)}e.exports=a},function(e,t,a){var i=a(38),r=a(83);e.exports=function(e,t){return!t||"object"!==i(t)&&"function"!=typeof t?r(e):t}},function(e,t,a){var i=a(30);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}},function(e,t,a){var i=a(14),r=a(30),n=a(84);function p(t){var a="function"==typeof Map?new Map:void 0;return e.exports=p=function(e){if(null===e)return null;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==a){if(a.has(e))return a.get(e);a.set(e,t)}function t(){return n(e,arguments,i(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),r(t,e)},p(t)}e.exports=p},function(e,t){e.exports=require("fs")},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=function(e,t,a,i){return e.addEventListener(t,a,i),{dispose:function(){a&&(e.removeEventListener(t,a,i),e=null,a=null)}}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.NUL="\0",e.SOH="",e.STX="",e.ETX="",e.EOT="",e.ENQ="",e.ACK="",e.BEL="",e.BS="\b",e.HT="\t",e.LF="\n",e.VT="\v",e.FF="\f",e.CR="\r",e.SO="",e.SI="",e.DLE="",e.DC1="",e.DC2="",e.DC3="",e.DC4="",e.NAK="",e.SYN="",e.ETB="",e.CAN="",e.EM="",e.SUB="",e.ESC="",e.FS="",e.GS="",e.RS="",e.US="",e.SP=" ",e.DEL=""}(t.C0||(t.C0={})),function(e){e.PAD="€",e.HOP="",e.BPH="‚",e.NBH="ƒ",e.IND="„",e.NEL="…",e.SSA="†",e.ESA="‡",e.HTS="ˆ",e.HTJ="‰",e.VTS="Š",e.PLD="‹",e.PLU="Œ",e.RI="",e.SS2="Ž",e.SS3="",e.DCS="",e.PU1="‘",e.PU2="’",e.STS="“",e.CCH="”",e.MW="•",e.SPA="–",e.EPA="—",e.SOS="˜",e.SGCI="™",e.SCI="š",e.CSI="›",e.ST="œ",e.OSC="",e.PM="ž",e.APC="Ÿ"}(t.C1||(t.C1={}))},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.INVERTED_DEFAULT_COLOR=-1,t.DIM_OPACITY=.5},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(21),r=a(39),n=a(8),p=function(){function e(e,t,a,i,r){this._container=e,this._alpha=i,this._colors=r,this._scaledCharWidth=0,this._scaledCharHeight=0,this._scaledCellWidth=0,this._scaledCellHeight=0,this._scaledCharLeft=0,this._scaledCharTop=0,this._canvas=document.createElement("canvas"),this._canvas.classList.add("xterm-"+t+"-layer"),this._canvas.style.zIndex=a.toString(),this._initCanvas(),this._container.appendChild(this._canvas)}return e.prototype.dispose=function(){this._container.removeChild(this._canvas)},e.prototype._initCanvas=function(){this._ctx=this._canvas.getContext("2d",{alpha:this._alpha}),this._alpha||this.clearAll()},e.prototype.onOptionsChanged=function(e){},e.prototype.onBlur=function(e){},e.prototype.onFocus=function(e){},e.prototype.onCursorMove=function(e){},e.prototype.onGridChanged=function(e,t,a){},e.prototype.onSelectionChanged=function(e,t,a,i){void 0===i&&(i=!1)},e.prototype.onThemeChanged=function(e,t){this._refreshCharAtlas(e,t)},e.prototype.setTransparency=function(e,t){if(t!==this._alpha){var a=this._canvas;this._alpha=t,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,a),this._refreshCharAtlas(e,this._colors),this.onGridChanged(e,0,e.rows-1)}},e.prototype._refreshCharAtlas=function(e,t){this._scaledCharWidth<=0&&this._scaledCharHeight<=0||(this._charAtlas=r.acquireCharAtlas(e,t,this._scaledCharWidth,this._scaledCharHeight),this._charAtlas.warmUp())},e.prototype.resize=function(e,t){this._scaledCellWidth=t.scaledCellWidth,this._scaledCellHeight=t.scaledCellHeight,this._scaledCharWidth=t.scaledCharWidth,this._scaledCharHeight=t.scaledCharHeight,this._scaledCharLeft=t.scaledCharLeft,this._scaledCharTop=t.scaledCharTop,this._canvas.width=t.scaledCanvasWidth,this._canvas.height=t.scaledCanvasHeight,this._canvas.style.width=t.canvasWidth+"px",this._canvas.style.height=t.canvasHeight+"px",this._alpha||this.clearAll(),this._refreshCharAtlas(e,this._colors)},e.prototype.fillCells=function(e,t,a,i){this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,a*this._scaledCellWidth,i*this._scaledCellHeight)},e.prototype.fillBottomLineAtCells=function(e,t,a){void 0===a&&(a=1),this._ctx.fillRect(e*this._scaledCellWidth,(t+1)*this._scaledCellHeight-window.devicePixelRatio-1,a*this._scaledCellWidth,window.devicePixelRatio)},e.prototype.fillLeftLineAtCell=function(e,t){this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,window.devicePixelRatio,this._scaledCellHeight)},e.prototype.strokeRectAtCell=function(e,t,a,i){this._ctx.lineWidth=window.devicePixelRatio,this._ctx.strokeRect(e*this._scaledCellWidth+window.devicePixelRatio/2,t*this._scaledCellHeight+window.devicePixelRatio/2,a*this._scaledCellWidth-window.devicePixelRatio,i*this._scaledCellHeight-window.devicePixelRatio)},e.prototype.clearAll=function(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))},e.prototype.clearCells=function(e,t,a,i){this._alpha?this._ctx.clearRect(e*this._scaledCellWidth,t*this._scaledCellHeight,a*this._scaledCellWidth,i*this._scaledCellHeight):(this._ctx.fillStyle=this._colors.background.css,this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,a*this._scaledCellWidth,i*this._scaledCellHeight))},e.prototype.fillCharTrueColor=function(e,t,a,i){this._ctx.font=this._getFont(e,!1,!1),this._ctx.textBaseline="top",this._clipRow(e,i),this._ctx.fillText(t[n.CHAR_DATA_CHAR_INDEX],a*this._scaledCellWidth+this._scaledCharLeft,i*this._scaledCellHeight+this._scaledCharTop)},e.prototype.drawChars=function(e,t,a,r,n,p,o,u,d,s,l){o+=e.options.drawBoldTextInBrightColors&&d&&o<8&&o!==i.INVERTED_DEFAULT_COLOR?8:0,this._charAtlas&&this._charAtlas.draw(this._ctx,{chars:t,code:a,bg:u,fg:o,bold:d&&e.options.enableBold,dim:s,italic:l},n*this._scaledCellWidth+this._scaledCharLeft,p*this._scaledCellHeight+this._scaledCharTop)||this._drawUncachedChars(e,t,r,o,n,p,d&&e.options.enableBold,s,l)},e.prototype._drawUncachedChars=function(e,t,a,r,n,p,o,u,d){this._ctx.save(),this._ctx.font=this._getFont(e,o,d),this._ctx.textBaseline="top",r===i.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._colors.background.css:this._ctx.fillStyle=r<256?this._colors.ansi[r].css:this._colors.foreground.css,this._clipRow(e,p),u&&(this._ctx.globalAlpha=i.DIM_OPACITY),this._ctx.fillText(t,n*this._scaledCellWidth+this._scaledCharLeft,p*this._scaledCellHeight+this._scaledCharTop),this._ctx.restore()},e.prototype._clipRow=function(e,t){this._ctx.beginPath(),this._ctx.rect(0,t*this._scaledCellHeight,e.cols*this._scaledCellWidth,this._scaledCellHeight),this._ctx.clip()},e.prototype._getFont=function(e,t,a){var i=t?e.options.fontWeightBold:e.options.fontWeight;return(a?"italic":"")+" "+i+" "+e.options.fontSize*window.devicePixelRatio+"px "+e.options.fontFamily},e}();t.BaseRenderLayer=p},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=u("#ffffff"),r=u("#000000"),n=u("#ffffff"),p=u("#000000"),o={css:"rgba(255, 255, 255, 0.3)",rgba:4294967159};function u(e){return{css:e,rgba:parseInt(e.slice(1),16)<<8|255}}function d(e){var t=e.toString(16);return t.length<2?"0"+t:t}t.DEFAULT_ANSI_COLORS=function(){for(var e=[u("#2e3436"),u("#cc0000"),u("#4e9a06"),u("#c4a000"),u("#3465a4"),u("#75507b"),u("#06989a"),u("#d3d7cf"),u("#555753"),u("#ef2929"),u("#8ae234"),u("#fce94f"),u("#729fcf"),u("#ad7fa8"),u("#34e2e2"),u("#eeeeec")],t=[0,95,135,175,215,255],a=0;a<216;a++){var i=t[a/36%6|0],r=t[a/6%6|0],n=t[a%6];e.push({css:"#"+d(i)+d(r)+d(n),rgba:(i<<24|r<<16|n<<8|255)>>>0})}for(a=0;a<24;a++){var p=8+10*a,o=d(p);e.push({css:"#"+o+o+o,rgba:(p<<24|p<<16|p<<8|255)>>>0})}return e}();var s=function(){function e(e,a){this.allowTransparency=a;var u=e.createElement("canvas");u.width=1,u.height=1,this._ctx=u.getContext("2d"),this._ctx.globalCompositeOperation="copy",this._litmusColor=this._ctx.createLinearGradient(0,0,1,1),this.colors={foreground:i,background:r,cursor:n,cursorAccent:p,selection:o,ansi:t.DEFAULT_ANSI_COLORS.slice()}}return e.prototype.setTheme=function(e){this.colors.foreground=this._parseColor(e.foreground,i),this.colors.background=this._parseColor(e.background,r),this.colors.cursor=this._parseColor(e.cursor,n,!0),this.colors.cursorAccent=this._parseColor(e.cursorAccent,p,!0),this.colors.selection=this._parseColor(e.selection,o,!0),this.colors.ansi[0]=this._parseColor(e.black,t.DEFAULT_ANSI_COLORS[0]),this.colors.ansi[1]=this._parseColor(e.red,t.DEFAULT_ANSI_COLORS[1]),this.colors.ansi[2]=this._parseColor(e.green,t.DEFAULT_ANSI_COLORS[2]),this.colors.ansi[3]=this._parseColor(e.yellow,t.DEFAULT_ANSI_COLORS[3]),this.colors.ansi[4]=this._parseColor(e.blue,t.DEFAULT_ANSI_COLORS[4]),this.colors.ansi[5]=this._parseColor(e.magenta,t.DEFAULT_ANSI_COLORS[5]),this.colors.ansi[6]=this._parseColor(e.cyan,t.DEFAULT_ANSI_COLORS[6]),this.colors.ansi[7]=this._parseColor(e.white,t.DEFAULT_ANSI_COLORS[7]),this.colors.ansi[8]=this._parseColor(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),this.colors.ansi[9]=this._parseColor(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),this.colors.ansi[10]=this._parseColor(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),this.colors.ansi[11]=this._parseColor(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),this.colors.ansi[12]=this._parseColor(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),this.colors.ansi[13]=this._parseColor(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),this.colors.ansi[14]=this._parseColor(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),this.colors.ansi[15]=this._parseColor(e.brightWhite,t.DEFAULT_ANSI_COLORS[15])},e.prototype._parseColor=function(e,t,a){if(void 0===a&&(a=this.allowTransparency),!e)return t;if(this._ctx.fillStyle=this._litmusColor,this._ctx.fillStyle=e,"string"!=typeof this._ctx.fillStyle)return console.warn("Color: "+e+" is invalid using fallback "+t.css),t;this._ctx.fillRect(0,0,1,1);var i=this._ctx.getImageData(0,0,1,1).data;return a||255===i[3]?{css:e,rgba:(i[0]<<24|i[1]<<16|i[2]<<8|i[3])>>>0}:(console.warn("Color: "+e+" is using transparency, but allowTransparency is false. Using fallback "+t.css+"."),t)},e}();t.ColorManager=s},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i="undefined"==typeof navigator,r=i?"node":navigator.userAgent,n=i?"node":navigator.platform;function p(e,t){return e.indexOf(t)>=0}t.isFirefox=!!~r.indexOf("Firefox"),t.isSafari=/^((?!chrome|android).)*safari/i.test(r),t.isMSIE=!!~r.indexOf("MSIE")||!!~r.indexOf("Trident"),t.isMac=p(["Macintosh","MacIntel","MacPPC","Mac68K"],n),t.isIpad="iPad"===n,t.isIphone="iPhone"===n,t.isMSWindows=p(["Windows","Win16","Win32","WinCE"],n),t.isLinux=n.indexOf("Linux")>=0},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(135);e.exports={remove:i(r),removeSync:r.sync}},function(e,t,a){"use strict";const{isASCIIHex:i}=a(57);function r(e,t,a){let i=e.indexOf(t);for(;i>=0;)e[i]=a,i=e.indexOf(t,i+1);return e}function n(e){let t=e.toString(16).toUpperCase();return 1===t.length&&(t="0"+t),"%"+t}function p(e){const t=Buffer.alloc(e.byteLength);let a=0;for(let r=0;r=48&&a<=57||a>=65&&a<=90||95===a||a>=97&&a<=122?String.fromCodePoint(a):n(a);return t}e.exports={percentEncode:n,percentDecode:p,parseUrlencoded:e=>(function(e){const t=function(e,t){const a=[];let i=0,r=e.indexOf(t);for(;r>=0;)a.push(e.slice(i,r)),i=r+1,r=e.indexOf(t,i);return i!==e.length&&a.push(e.slice(i)),a}(e,38),a=[];for(const e of t){if(0===e.length)continue;let t,i;const n=e.indexOf(61);n>=0?(t=e.slice(0,n),i=e.slice(n+1)):(t=e,i=Buffer.alloc(0)),t=r(Buffer.from(t),43,32),i=r(Buffer.from(i),43,32),a.push([p(t).toString(),p(i).toString()])}return a})(Buffer.from(e)),serializeUrlencoded:function(e,t){let a="utf-8";void 0!==t&&(a=t);let i="";for(const[t,r]of e.entries()){const e=o(Buffer.from(r[0]));let n=r[1];r.length>2&&void 0!==r[2]&&("hidden"===r[2]&&"_charset_"===e?n=a:"file"===r[2]&&(n=n.name)),n=o(Buffer.from(n)),0!==t&&(i+="&"),i+=`${e}=${n}`}return i}}},function(e,t,a){var i,r,n;r=[t],void 0===(n="function"==typeof(i=function(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(e){for(var t=1;ti.promises})},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(143);e.exports={readJson:i(r.readFile),readJsonSync:r.readFileSync,writeJson:i(r.writeFile),writeJsonSync:r.writeFileSync}},function(e,t,a){"use strict";t.URL=a(153).interface,t.URLSearchParams=a(58).interface,t.parseURL=a(7).parseURL,t.basicURLParse=a(7).basicURLParse,t.serializeURL=a(7).serializeURL,t.serializeHost=a(7).serializeHost,t.serializeInteger=a(7).serializeInteger,t.serializeURLOrigin=a(7).serializeURLOrigin,t.setTheUsername=a(7).setTheUsername,t.setThePassword=a(7).setThePassword,t.cannotHaveAUsernamePasswordPort=a(7).cannotHaveAUsernamePasswordPort,t.percentDecode=a(26).percentDecode},function(e,t){e.exports=require("os")},function(e,t){function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(t){return"function"==typeof Symbol&&"symbol"===a(Symbol.iterator)?e.exports=i=function(e){return a(e)}:e.exports=i=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":a(e)},i(t)}e.exports=i},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(100),r=a(101),n=a(103),p=a(104),o={none:n.default,static:p.default,dynamic:r.default},u=[];t.acquireCharAtlas=function(e,t,a,r){for(var n=i.generateConfig(a,r,e,t),p=0;p=0){if(i.configEquals(s.config,n))return s.atlas;1===s.ownedBy.length?u.splice(p,1):s.ownedBy.splice(d,1);break}}for(p=0;p>>24,r=t.rgba>>>16&255,n=t.rgba>>>8&255,p=0;pe&&i.y1<=t+1||i.y2>e&&i.y2<=t+1||i.y1t+1)&&(this._currentZone&&this._currentZone===i&&(this._currentZone.leaveCallback(),this._currentZone=null),this._zones.splice(a--,1))}0===this._zones.length&&this._deactivate()}},t.prototype._activate=function(){this._areZonesActive||(this._areZonesActive=!0,this._terminal.element.addEventListener("mousemove",this._mouseMoveListener),this._terminal.element.addEventListener("click",this._clickListener))},t.prototype._deactivate=function(){this._areZonesActive&&(this._areZonesActive=!1,this._terminal.element.removeEventListener("mousemove",this._mouseMoveListener),this._terminal.element.removeEventListener("click",this._clickListener))},t.prototype._onMouseMove=function(e){this._lastHoverCoords[0]===e.pageX&&this._lastHoverCoords[1]===e.pageY||(this._onHover(e),this._lastHoverCoords=[e.pageX,e.pageY])},t.prototype._onHover=function(e){var t=this,a=this._findZoneEventAt(e);a!==this._currentZone&&(this._currentZone&&(this._currentZone.leaveCallback(),this._currentZone=null,this._tooltipTimeout&&clearTimeout(this._tooltipTimeout)),a&&(this._currentZone=a,a.hoverCallback&&a.hoverCallback(e),this._tooltipTimeout=setTimeout(function(){return t._onTooltip(e)},500)))},t.prototype._onTooltip=function(e){this._tooltipTimeout=null;var t=this._findZoneEventAt(e);t&&t.tooltipCallback&&t.tooltipCallback(e)},t.prototype._onMouseDown=function(e){if(this._areZonesActive){var t=this._findZoneEventAt(e);t&&t.willLinkActivate(e)&&(e.preventDefault(),e.stopImmediatePropagation())}},t.prototype._onClick=function(e){var t=this._findZoneEventAt(e);t&&(t.clickCallback(e),e.preventDefault(),e.stopImmediatePropagation())},t.prototype._findZoneEventAt=function(e){var t=this._terminal.mouseHelper.getCoords(e,this._terminal.screenElement,this._terminal.charMeasure,this._terminal.options.lineHeight,this._terminal.cols,this._terminal.rows);if(!t)return null;for(var a=t[0],i=t[1],r=0;r=n.x1&&a=n.x1||i===n.y2&&an.y1&&i1&&void 0!==arguments[1]&&arguments[1],i=[];i.push({id:"command-textbox",value:e.command}),t=JSON.stringify(e.args),i.push({id:"args-textbox",value:t}),i.push({id:"name-textbox",value:e.name}),i.push({id:"cwd-textbox",value:e.cwd}),t=this.convertNullToEmptyString(e.env),i.push({id:"env-textbox",value:t}),t=JSON.stringify(e.setEnv),i.push({id:"setenv-textbox",value:t}),t=JSON.stringify(e.deleteEnv),i.push({id:"deleteenv-textbox",value:t}),t=this.convertNullToEmptyString(e.encoding),i.push({id:"encoding-textbox",value:t}),t=e.fontSize,i.push({id:"fontsize-textbox",value:t}),t=e.title||"",i.push({id:"title-textbox",value:t}),t=JSON.stringify(e.xtermOptions),i.push({id:"xtermoptions-textbox",value:t});for(var r=0;r atom-text-editor",o=this.querySelector(p).getModel();a?o.setText(""):o.setText(n.value)}for(var u=[{id:"leaveopenafterexit-checkbox",value:e.leaveOpenAfterExit},{id:"relaunchterminalonstartup-checkbox",value:e.relaunchTerminalOnStartup},{id:"prompttostartup-checkbox",value:e.promptToStartup}],d=0;d"function"==typeof r[e]);Object.keys(r).forEach(e=>{"promises"!==e&&(t[e]=r[e])}),n.forEach(e=>{t[e]=i(r[e])}),t.exists=function(e,t){return"function"==typeof t?r.exists(e,t):new Promise(t=>r.exists(e,t))},t.read=function(e,t,a,i,n,p){return"function"==typeof p?r.read(e,t,a,i,n,p):new Promise((p,o)=>{r.read(e,t,a,i,n,(e,t,a)=>{if(e)return o(e);p({bytesRead:t,buffer:a})})})},t.write=function(e,t,...a){return"function"==typeof a[a.length-1]?r.write(e,t,...a):new Promise((i,n)=>{r.write(e,t,...a,(e,t,a)=>{if(e)return n(e);i({bytesWritten:t,buffer:a})})})}},function(e,t,a){"use strict";var i=a(18);e.exports=function(e){if(null===e||"object"!=typeof e)return e;if(e instanceof Object)var t={__proto__:e.__proto__};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(a){Object.defineProperty(t,a,Object.getOwnPropertyDescriptor(e,a))}),t}(i)},function(e,t){e.exports=require("assert")},function(e,t,a){"use strict";e.exports={copySync:a(130)}},function(e,t,a){"use strict";const i=a(0);function r(e){return(e=i.normalize(i.resolve(e)).split(i.sep)).length>0?e[0]:null}const n=/[<>:"|?*]/;e.exports={getRootPath:r,invalidWin32Path:function(e){const t=r(e);return e=e.replace(t,""),n.test(e)}}},function(e,t,a){"use strict";const i=a(1),r=a(37),n=a(0);e.exports={hasMillisRes:function(e){let t=n.join("millis-test"+Date.now().toString()+Math.random().toString().slice(2));t=n.join(r.tmpdir(),t);const a=new Date(1435410243862);i.writeFile(t,"https://github.com/jprichardson/node-fs-extra/pull/141",r=>{if(r)return e(r);i.open(t,"r+",(r,n)=>{if(r)return e(r);i.futimes(n,a,a,a=>{if(a)return e(a);i.close(n,a=>{if(a)return e(a);i.stat(t,(t,a)=>{if(t)return e(t);e(null,a.mtime>1435410243e3)})})})})})},hasMillisResSync:function(){let e=n.join("millis-test-sync"+Date.now().toString()+Math.random().toString().slice(2));e=n.join(r.tmpdir(),e);const t=new Date(1435410243862);i.writeFileSync(e,"https://github.com/jprichardson/node-fs-extra/pull/141");const a=i.openSync(e,"r+");return i.futimesSync(a,t,t),i.closeSync(a),i.statSync(e).mtime>1435410243e3},timeRemoveMillis:function(e){if("number"==typeof e)return 1e3*Math.floor(e/1e3);if(e instanceof Date)return new Date(1e3*Math.floor(e.getTime()/1e3));throw new Error("fs-extra: timeRemoveMillis() unknown parameter type")},utimesMillis:function(e,t,a,r){i.open(e,"r+",(e,n)=>{if(e)return r(e);i.futimes(n,t,a,e=>{i.close(n,t=>{r&&r(e||t)})})})},utimesMillisSync:function(e,t,a){const r=i.openSync(e,"r+");return i.futimesSync(r,t,a),i.closeSync(r)}}},function(e,t,a){"use strict";e.exports=function(e){if("function"==typeof Buffer.allocUnsafe)try{return Buffer.allocUnsafe(e)}catch(t){return new Buffer(e)}return new Buffer(e)}},function(e,t,a){"use strict";const i=a(3).fromCallback;e.exports={copy:i(a(133))}},function(e,t,a){"use strict";function i(e,t){return`${t&&t.context?t.context:"Value"} ${e}.`}function r(e){return p(Math.trunc(e))}function n(e){return e<0?-1:1}function p(e){return 0===e?0:e}function o(e,t){const a=!t.unsigned;let o,u;64===e?(u=Math.pow(2,53)-1,o=a?1-Math.pow(2,53):0):a?(o=-Math.pow(2,e-1),u=Math.pow(2,e-1)-1):(o=0,u=Math.pow(2,e)-1);const d=Math.pow(2,e),s=Math.pow(2,e-1);return(e,t)=>{void 0===t&&(t={});let l=+e;if(l=p(l),t.enforceRange){if(!Number.isFinite(l))throw new TypeError(i("is not a finite number",t));if((l=r(l))u)throw new TypeError(i(`is outside the accepted range of ${o} to ${u}, inclusive`,t));return l}return!Number.isNaN(l)&&t.clamp?l=function(e){return p(e>0&&e%1==.5&&0==(1&e)||e<0&&e%1==-.5&&1==(1&e)?Math.floor(e):Math.round(e))}(l=Math.min(Math.max(l,o),u)):Number.isFinite(l)&&0!==l?(l=r(l))>=o&&l<=u?l:(l=function(e,t){const a=e%t;return n(t)!==n(a)?a+t:a}(l,d),a&&l>=s?l-d:l):0}}function u(e,t){if("function"!=typeof e)throw new TypeError(i("is not a function",t));return e}t.any=(e=>e),t.void=function(){},t.boolean=function(e){return!!e},t.byte=o(8,{unsigned:!1}),t.octet=o(8,{unsigned:!0}),t.short=o(16,{unsigned:!1}),t["unsigned short"]=o(16,{unsigned:!0}),t.long=o(32,{unsigned:!1}),t["unsigned long"]=o(32,{unsigned:!0}),t["long long"]=o(64,{unsigned:!1}),t["unsigned long long"]=o(64,{unsigned:!0}),t.double=((e,t)=>{const a=+e;if(!Number.isFinite(a))throw new TypeError(i("is not a finite floating-point value",t));return a}),t["unrestricted double"]=(e=>{return+e}),t.float=((e,t)=>{const a=+e;if(!Number.isFinite(a))throw new TypeError(i("is not a finite floating-point value",t));if(Object.is(a,-0))return a;const r=Math.fround(a);if(!Number.isFinite(r))throw new TypeError(i("is outside the range of a single-precision floating-point value",t));return r}),t["unrestricted float"]=(e=>{const t=+e;return isNaN(t)?t:Object.is(t,-0)?t:Math.fround(t)}),t.DOMString=function(e,t){if(void 0===t&&(t={}),t.treatNullAsEmptyString&&null===e)return"";if("symbol"==typeof e)throw new TypeError(i("is a symbol, which cannot be converted to a string",t));return String(e)},t.ByteString=((e,a)=>{const r=t.DOMString(e,a);let n;for(let e=0;void 0!==(n=r.codePointAt(e));++e)if(n>255)throw new TypeError(i("is not a valid ByteString",a));return r}),t.USVString=((e,a)=>{const i=t.DOMString(e,a),r=i.length,n=[];for(let e=0;e57343)n.push(String.fromCodePoint(t));else if(56320<=t&&t<=57343)n.push(String.fromCodePoint(65533));else if(e===r-1)n.push(String.fromCodePoint(65533));else{const a=i.charCodeAt(e+1);if(56320<=a&&a<=57343){const i=1023&t,r=1023&a;n.push(String.fromCodePoint(65536+1024*i+r)),++e}else n.push(String.fromCodePoint(65533))}}return n.join("")}),t.object=((e,t)=>{if("Object"!==function(e){if(null===e)return"Null";switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"number":return"Number";case"string":return"String";case"symbol":return"Symbol";case"object":case"function":default:return"Object"}}(e))throw new TypeError(i("is not an object",t));return e}),[Error,ArrayBuffer,DataView,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Uint8ClampedArray,Float32Array,Float64Array].forEach(e=>{const a=e.name,r=/^[AEIOU]/.test(a)?"an":"a";t[a]=((t,n)=>{if(!(t instanceof e))throw new TypeError(i(`is not ${r} ${a} object`,n));return t})}),t.ArrayBufferView=((e,t)=>{if(!ArrayBuffer.isView(e))throw new TypeError(i("is not a view on an ArrayBuffer object",t));return e}),t.BufferSource=((e,t)=>{if(!(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))throw new TypeError(i("is not an ArrayBuffer object or a view on one",t));return e}),t.DOMTimeStamp=t["unsigned long long"],t.Function=u,t.VoidFunction=u},function(e,t,a){"use strict";function i(e){return Object.getPrototypeOf(e)===Buffer.prototype?e:e instanceof ArrayBuffer?Buffer.from(e):Buffer.from(e.buffer,e.byteOffset,e.byteLength)}const r=Symbol("wrapper"),n=Symbol("impl"),p=Symbol("SameObject caches");function o(e){return e?e[r]:null}function u(e){return e?e[n]:null}const d=Symbol("internal"),s=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));const l=Symbol("supports property index"),m=Symbol("supported property indices"),c=Symbol("supports property name"),h=Symbol("supported property names"),f=Symbol("indexed property get"),v=Symbol("indexed property set new"),_=Symbol("indexed property set existing"),A=Symbol("named property get"),y=Symbol("named property set new"),C=Symbol("named property set existing"),E=Symbol("named property delete");e.exports={isObject:function(e){return"object"==typeof e&&null!==e||"function"==typeof e},getReferenceToBytes:i,getCopyToBytes:function(e){return Buffer.from(i(e))},mixin:function(e,t){const a=Object.getOwnPropertyNames(t);for(let i=0;i>>0;return t!==Math.pow(2,32)-1&&e===`${t}`},supportsPropertyIndex:l,supportedPropertyIndices:m,supportsPropertyName:c,supportedPropertyNames:h,indexedGet:f,indexedSetNew:v,indexedSetExisting:_,namedGet:A,namedSetNew:y,namedSetExisting:C,namedDelete:E}},function(e,t){e.exports=require("punycode")},function(e,t,a){"use strict";function i(e){return e>=48&&e<=57}function r(e){return e>=65&&e<=90||e>=97&&e<=122}e.exports={isASCIIDigit:i,isASCIIAlpha:r,isASCIIAlphanumeric:function(e){return r(e)||i(e)},isASCIIHex:function(e){return i(e)||e>=65&&e<=70||e>=97&&e<=102}}},function(e,t,a){"use strict";const i=a(54),r=a(55),n=r.implSymbol,p=Object.create(r.IteratorPrototype,{next:{value:function(){const e=this[r.iterInternalSymbol],{target:t,kind:a,index:i}=e,p=Array.from(t[n]);if(i>=p.length)return{value:void 0,done:!0};const o=p[i];e.index=i+1;const[u,d]=o.map(r.tryWrapperForImpl);let s;switch(a){case"key":s=u;break;case"value":s=d;break;case"key+value":s=[u,d]}return{value:s,done:!1}},writable:!0,enumerable:!0,configurable:!0},[Symbol.toStringTag]:{value:"URLSearchParamsIterator",writable:!1,enumerable:!1,configurable:!0}});function o(){const e=[];for(let t=0;t0&&void 0!==arguments[0])||arguments[0];this.panel.isVisible()&&(this.textbox.setText(""),this.panel.hide(),this.atomXtermProfileMenuElement.isVisible()&&e&&this.atomXtermProfileMenuElement.focus())}},{key:"promptForNewProfileName",value:function(e,t){var a=this;!this.panel.isVisible()&&(0,d.currentItemIsAtomXtermModel)()&&(this.textbox=new p.TextEditor({mini:!0}),this.textbox.getElement().addEventListener("blur",function(e){a.close()}),atom.commands.add(this.textbox.getElement(),"core:confirm",function(){a.confirm(e,t)}),atom.commands.add(this.textbox.getElement(),"core:cancel",function(){a.close()}),this.element.setNewTextbox(this.textbox),this.panel.show(),this.textbox.getElement().focus())}}]),e}();t.AtomXtermSaveProfileModel=s},function(e,t,a){"use strict";var i=a(2);Object.defineProperty(t,"__esModule",{value:!0}),t.AtomXtermOverwriteProfileModel=void 0;var r=i(a(4)),n=i(a(5)),p=a(12),o=function(){function e(t){(0,r.default)(this,e),this.atomXtermSaveProfileModel=t,this.atomXtermProfileMenuElement=this.atomXtermSaveProfileModel.atomXtermProfileMenuElement,this.profilesSingleton=p.AtomXtermProfilesSingleton.instance,this.element=null,this.panel=atom.workspace.addModalPanel({item:this,visible:!1})}return(0,n.default)(e,[{key:"getTitle",value:function(){return"atom-xterm Overwrite Profile Model"}},{key:"getElement",value:function(){return this.element}},{key:"setElement",value:function(e){this.element=e}},{key:"close",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.panel.isVisible()&&(this.panel.hide(),a&&this.atomXtermSaveProfileModel.promptForNewProfileName(e,t))}},{key:"promptOverwrite",value:function(e,t,a){var i=this;this.panel.show();this.getElement().setNewPrompt(e,function(r){i.profilesSingleton.setProfile(e,t).then(function(){i.profilesSingleton.reloadProfiles(),i.profilesSingleton.profilesLoadPromise.then(function(){i.close(t,a),i.atomXtermProfileMenuElement.applyProfileChanges(a)})})},function(e){i.close(t,a,!0)})}}]),e}();t.AtomXtermOverwriteProfileModel=o},function(e,t,a){"use strict";var i=a(2);Object.defineProperty(t,"__esModule",{value:!0}),t.isAtomXtermModel=c,t.currentItemIsAtomXtermModel=function(){return c(atom.workspace.getActivePaneItem())},t.AtomXtermModel=void 0;var r=i(a(4)),n=i(a(5)),p=a(13),o=a(12),u=i(a(34)),d=i(a(0)),s=a(36),l="Atom Xterm",m=function(){function e(t){var a=this;(0,r.default)(this,e),this.options=t,this.uri=this.options.uri;var i=new s.URL(this.uri);this.sessionId=i.host,this.profilesSingleton=o.AtomXtermProfilesSingleton.instance,this.profile=this.profilesSingleton.createProfileDataFromUri(this.uri),this.terminals_set=this.options.terminals_set,this.element=null,this.pane=null,this.title=l,null!==this.profile.title&&(this.title=this.profile.title),this.modified=!1,this.emitter=new p.Emitter,this.terminals_set.add(this),this.isInitialized=!1,this.initializedPromise=new Promise(function(e,t){var i=a.profilesSingleton.getBaseProfile(),r=atom.workspace.getActivePaneItem(),n=a.profile.cwd;void 0!==r&&"function"==typeof r.getPath&&(n=r.getPath());var p=atom.project.relativizePath(n)[0];p?(a.profile.cwd=p,e()):n?u.default.exists(n,function(r){r?u.default.stat(n,function(r,p){r&&t(r),p.isDirectory()?(a.profile.cwd=n,e()):(n=d.default.dirname(n),u.default.stat(n,function(r,p){r&&t(r),p.isDirectory?(a.profile.cwd=n,e()):(a.profile.cwd=i.cwd,e())}))}):(a.profile.cwd=i.cwd,e())}):(a.profile.cwd=i.cwd,e())}).then(function(){a.isInitialized=!0})}return(0,n.default)(e,[{key:"serialize",value:function(){return{deserializer:"AtomXtermModel",version:"2017-09-17",uri:this.profilesSingleton.generateNewUrlFromProfileData(this.profile).href}}},{key:"destroy",value:function(){this.element&&this.element.destroy(),this.terminals_set.delete(this)}},{key:"getTitle",value:function(){return this.title}},{key:"getElement",value:function(){return this.element}},{key:"getURI",value:function(){return this.uri}},{key:"getLongTitle",value:function(){return this.title===l?l:l+" ("+this.title+")"}},{key:"onDidChangeTitle",value:function(e){return this.emitter.on("did-change-title",e)}},{key:"getIconName",value:function(){return"terminal"}},{key:"getPath",value:function(){return this.profile.cwd}},{key:"isModified",value:function(){return this.modified}},{key:"onDidChangeModified",value:function(e){return this.emitter.on("did-change-modified",e)}},{key:"handleNewDataArrival",value:function(){this.pane||(this.pane=atom.workspace.paneForItem(this));var e,t=this.modified;this.pane&&(e=this.pane.getActiveItem()),this.modified=e!==this,t!==this.modified&&this.emitter.emit("did-change-modified",this.modified)}},{key:"getSessionId",value:function(){return this.sessionId}},{key:"getSessionParameters",value:function(){var e=this.profilesSingleton.generateNewUrlFromProfileData(this.profile);return e.searchParams.sort(),e.searchParams.toString()}},{key:"refitTerminal",value:function(){this.element&&this.element.refitTerminal()}},{key:"focusOnTerminal",value:function(){this.element.focusOnTerminal();var e=this.modified;this.modified=!1,e!==this.modified&&this.emitter.emit("did-change-modified",this.modified)}},{key:"exit",value:function(){this.pane.destroyItem(this,!0)}},{key:"restartPtyProcess",value:function(){this.element&&this.element.restartPtyProcess()}},{key:"copyFromTerminal",value:function(){return this.element.terminal.getSelection()}},{key:"pasteToTerminal",value:function(e){this.element.ptyProcess.write(e)}},{key:"setNewPane",value:function(e){this.pane=e}},{key:"openHoveredLink",value:function(){this.element.openHoveredLink()}},{key:"getHoveredLink",value:function(){return this.element.getHoveredLink()}},{key:"toggleProfileMenu",value:function(){this.element.toggleProfileMenu()}},{key:"getProfile",value:function(){return this.profile}},{key:"applyProfileChanges",value:function(e){e=this.profilesSingleton.sanitizeData(e),this.profile=this.profilesSingleton.deepClone(Object.assign(this.profile,e)),this.element.queueNewProfileChanges(e)}}]),e}();function c(e){return e instanceof m}t.AtomXtermModel=m},function(e,t,a){"use strict";var i=a(2);Object.defineProperty(t,"__esModule",{value:!0}),t.AtomXtermProfileMenuModel=void 0;var r=i(a(4)),n=i(a(5)),p=function(){function e(t){(0,r.default)(this,e),this.atomXtermModel=t,this.element=null}return(0,n.default)(e,[{key:"destroy",value:function(){this.element&&this.element.destroy()}},{key:"getTitle",value:function(){return"Atom Xterm Profile Menu"}},{key:"getElement",value:function(){return this.element}},{key:"setElement",value:function(e){this.element=e}},{key:"getAtomXtermModelElement",value:function(){return this.atomXtermModel.getElement()}},{key:"getAtomXtermModel",value:function(){return this.atomXtermModel}}]),e}();t.AtomXtermProfileMenuModel=p},function(e,t,a){"use strict";(e.exports={}).forEach=function(e,t){for(var a=0;a4?e:void 0}())},i.isLegacyOpera=function(){return!!window.opera}},function(e,t,a){"use strict";var i=a(2);Object.defineProperty(t,"__esModule",{value:!0}),t.activate=function(e){return w.instance.activate(e)},t.deactivate=function(){return w.instance.deactivate()},t.deserializeAtomXtermModel=function(e,t){return w.instance.deserializeAtomXtermModel(e,t)},t.provideAtomXtermService=function(){return w.instance.provideAtomXtermService()},t.config=void 0;var r=i(a(70)),n=i(a(73)),p=i(a(4)),o=i(a(5));a(74);var u=a(13),d=i(a(29)),s=a(77),l=a(65),m=a(12),c=a(45),h=a(66),f=a(175),v=a(62),_=a(176),A=a(64),y=a(177),C=a(63),E=a(36),g=Symbol("AtomXtermSingleton sentinel"),w=function(){function e(t){if((0,p.default)(this,e),g!==t)throw new Error("AtomXtermSingleton cannot be instantiated directly.")}return(0,o.default)(e,[{key:"activate",value:function(e){var t=this;this.profilesSingleton=m.AtomXtermProfilesSingleton.instance,this.profilesSingleton.resetBaseProfile(),this.disposables=new u.CompositeDisposable,this.terminals_set=new Set;for(var a=["atom-xterm.spawnPtySettings.command","atom-xterm.spawnPtySettings.args","atom-xterm.spawnPtySettings.name","atom-xterm.spawnPtySettings.cwd","atom-xterm.spawnPtySettings.env","atom-xterm.spawnPtySettings.setEnv","atom-xterm.spawnPtySettings.deleteEnv","atom-xterm.spawnPtySettings.encoding","atom-xterm.terminalSettings.fontSize","atom-xterm.terminalSettings.leaveOpenAfterExit","atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup","atom-xterm.terminalSettings.relaunchTerminalOnStartup","atom-xterm.terminalSettings.title","atom-xterm.terminalSettings.xtermOptions","atom-xterm.terminalSettings.promptToStartup"],i=0;i1&&void 0!==n[1]?n[1]:{},i=new E.URL(t),null===i.searchParams.get("relaunchTerminalOnStartup")&&(this.profilesSingleton.getBaseProfile().relaunchTerminalOnStartup||i.searchParams.set("relaunchTerminalOnStartup",!1)),e.abrupt("return",atom.workspace.open(i.href,a));case 5:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"openTerminal",value:function(){var e=(0,n.default)(r.default.mark(function e(t){var a,i=arguments;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a=i.length>1&&void 0!==i[1]?i[1]:{},e.abrupt("return",this.open(m.AtomXtermProfilesSingleton.instance.generateNewUrlFromProfileData(t),a));case 2:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"provideAtomXtermService",value:function(){var e=this;return{openTerminal:function(){var t=(0,n.default)(r.default.mark(function t(){var a=arguments;return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.openTerminal.apply(e,a));case 1:case"end":return t.stop()}},t,this)}));return function(){return t.apply(this,arguments)}}()}}},{key:"performOperationOnItem",value:function(e){var t=atom.workspace.getActivePaneItem();if((0,l.isAtomXtermModel)(t))switch(e){case"close":t.exit();break;case"restart":t.restartPtyProcess();break;case"copy":atom.clipboard.write(t.copyFromTerminal());break;case"paste":t.pasteToTerminal(atom.clipboard.read());break;case"open-link":t.openHoveredLink();break;case"copy-link":var a=t.getHoveredLink();a&&atom.clipboard.write(a);break;default:throw new Error("Unknown operation: "+e)}}},{key:"close",value:function(){this.performOperationOnItem("close")}},{key:"restart",value:function(){this.performOperationOnItem("restart")}},{key:"copy",value:function(){this.performOperationOnItem("copy")}},{key:"paste",value:function(){this.performOperationOnItem("paste")}},{key:"openLink",value:function(){this.performOperationOnItem("open-link")}},{key:"copyLink",value:function(){this.performOperationOnItem("copy-link")}},{key:"toggleProfileMenu",value:function(){var e=atom.workspace.getActivePaneItem();(0,l.isAtomXtermModel)(e)&&e.toggleProfileMenu()}},{key:"reorganize",value:function(e){if(0!==this.terminals_set.size){var t,a=atom.workspace.getActivePane(),i=a.getActiveItem();switch(e){case"current":t=a;break;case"top":t=a.findTopmostSibling().splitUp();break;case"bottom":t=a.findBottommostSibling().splitDown();break;case"left":t=a.findLeftmostSibling().splitLeft();break;case"right":t=a.findRightmostSibling().splitRight();break;case"bottom-dock":t=atom.workspace.getBottomDock().getActivePane();break;case"left-dock":t=atom.workspace.getLeftDock().getActivePane();break;case"right-dock":t=atom.workspace.getRightDock().getActivePane();break;default:throw new Error("Unknown orientation: "+e)}var r=!0,n=!1,p=void 0;try{for(var o,u=this.terminals_set[Symbol.iterator]();!(r=(o=u.next()).done);r=!0){var d=o.value;d.pane.moveItemToPane(d,t,-1)}}catch(e){n=!0,p=e}finally{try{r||null==u.return||u.return()}finally{if(n)throw p}}if((0,l.isAtomXtermModel)(i)){if(atom.workspace.getPanes().length>1){var s=!0,m=!1,c=void 0;try{for(var h,f=atom.workspace.getPanes()[Symbol.iterator]();!(s=(h=f.next()).done);s=!0){var v=h.value;if(v!==i.pane){v.getElement().focus();break}}}catch(e){m=!0,c=e}finally{try{s||null==f.return||f.return()}finally{if(m)throw c}}}i.pane.getElement().focus(),i.pane.setActiveItem(i)}else i instanceof HTMLElement?i.focus():"function"==typeof i.getElement&&(i=i.getElement()).focus()}}}],[{key:"instance",get:function(){return this[g]||(this[g]=new e(g)),this[g]}}]),e}(),D={spawnPtySettings:{title:"Shell Process Settings",description:"Settings related to the process running the shell.",type:"object",properties:{command:{title:"Command",description:"Command to run",type:"string",default:d.default.getDefaultShellCommand()},args:{title:"Arguments",description:"Arguments to pass to command, must be in a JSON array.",type:"string",default:d.default.getDefaultArgs()},name:{title:"Terminal Type",description:"The terminal type to use.",type:"string",default:d.default.getDefaultTermType()},cwd:{title:"Working Directory",description:"The working directory to use when launching command.",type:"string",default:d.default.getDefaultCwd()},env:{title:"Environment",description:"The environment to use when launching command, must be in a JSON object. If not set, defaults to the current environment.",type:"string",default:d.default.getDefaultEnv()},setEnv:{title:"Environment Overrides",description:"Environment variables to use in place of the atom process environment, must be in a JSON object.",type:"string",default:d.default.getDefaultSetEnv()},deleteEnv:{title:"Environment Deletions",description:"Environment variables to delete from original environment, must be in a JSON array.",type:"string",default:d.default.getDefaultDeleteEnv()},encoding:{title:"Character Encoding",description:"Character encoding to use in spawned terminal.",type:"string",default:d.default.getDefaultEncoding()}}},terminalSettings:{title:"Terminal Emulator Settings",description:"Settings for the terminal emulator.",type:"object",properties:{fontSize:{title:"Font Size",description:"Font size used in terminal emulator.",type:"integer",default:d.default.getDefaultFontSize(),minimum:d.default.getMinimumFontSize(),maximum:d.default.getMaximumFontSize()},leaveOpenAfterExit:{title:"Leave Open After Exit",description:"Whether to leave terminal emulators open after their shell processes have exited.",type:"boolean",default:d.default.getDefaultLeaveOpenAfterExit()},allowRelaunchingTerminalsOnStartup:{title:"Allow relaunching terminals on startup",description:"Whether to allow relaunching terminals on startup.",type:"boolean",default:d.default.getDefaultAllowRelaunchingTerminalsOnStartup()},relaunchTerminalOnStartup:{title:"Relaunch terminal on startup",description:"Whether to relaunch terminal on startup.",type:"boolean",default:d.default.getDefaultRelaunchTerminalOnStartup()},title:{title:"Terminal tab title",description:"Title to use for terminal tabs.",type:"string",default:d.default.getDefaultTitle()},xtermOptions:{title:"xterm.js Terminal Options",description:"Options to apply to xterm.js Terminal objects.",type:"string",default:d.default.getDefaultXtermOptions()},promptToStartup:{title:"Prompt to start command",description:"Whether to prompt to start command in terminal on startup.",type:"boolean",default:d.default.getDefaultPromptToStartup()}}}};t.config=D},function(e,t,a){e.exports=a(71)},function(e,t,a){var i=function(){return this||"object"==typeof self&&self}()||Function("return this")(),r=i.regeneratorRuntime&&Object.getOwnPropertyNames(i).indexOf("regeneratorRuntime")>=0,n=r&&i.regeneratorRuntime;if(i.regeneratorRuntime=void 0,e.exports=a(72),r)i.regeneratorRuntime=n;else try{delete i.regeneratorRuntime}catch(e){i.regeneratorRuntime=void 0}},function(e,t){!function(t){"use strict";var a,i=Object.prototype,r=i.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},p=n.iterator||"@@iterator",o=n.asyncIterator||"@@asyncIterator",u=n.toStringTag||"@@toStringTag",d="object"==typeof e,s=t.regeneratorRuntime;if(s)d&&(e.exports=s);else{(s=t.regeneratorRuntime=d?e.exports:{}).wrap=C;var l="suspendedStart",m="suspendedYield",c="executing",h="completed",f={},v={};v[p]=function(){return this};var _=Object.getPrototypeOf,A=_&&_(_(k([])));A&&A!==i&&r.call(A,p)&&(v=A);var y=D.prototype=g.prototype=Object.create(v);w.prototype=y.constructor=D,D.constructor=w,D[u]=w.displayName="GeneratorFunction",s.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},s.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,D):(e.__proto__=D,u in e||(e[u]="GeneratorFunction")),e.prototype=Object.create(y),e},s.awrap=function(e){return{__await:e}},b(F.prototype),F.prototype[o]=function(){return this},s.AsyncIterator=F,s.async=function(e,t,a,i){var r=new F(C(e,t,a,i));return s.isGeneratorFunction(t)?r:r.next().then(function(e){return e.done?e.value:r.next()})},b(y),y[u]="Generator",y[p]=function(){return this},y.toString=function(){return"[object Generator]"},s.keys=function(e){var t=[];for(var a in e)t.push(a);return t.reverse(),function a(){for(;t.length;){var i=t.pop();if(i in e)return a.value=i,a.done=!1,a}return a.done=!0,a}},s.values=k,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=a,this.done=!1,this.delegate=null,this.method="next",this.arg=a,this.tryEntries.forEach(x),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=a)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function i(i,r){return o.type="throw",o.arg=e,t.next=i,r&&(t.method="next",t.arg=a),!!r}for(var n=this.tryEntries.length-1;n>=0;--n){var p=this.tryEntries[n],o=p.completion;if("root"===p.tryLoc)return i("end");if(p.tryLoc<=this.prev){var u=r.call(p,"catchLoc"),d=r.call(p,"finallyLoc");if(u&&d){if(this.prev=0;--a){var i=this.tryEntries[a];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--t){var a=this.tryEntries[t];if(a.finallyLoc===e)return this.complete(a.completion,a.afterLoc),x(a),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var a=this.tryEntries[t];if(a.tryLoc===e){var i=a.completion;if("throw"===i.type){var r=i.arg;x(a)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,i){return this.delegate={iterator:k(e),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=a),f}}}function C(e,t,a,i){var r=t&&t.prototype instanceof g?t:g,n=Object.create(r.prototype),p=new T(i||[]);return n._invoke=function(e,t,a){var i=l;return function(r,n){if(i===c)throw new Error("Generator is already running");if(i===h){if("throw"===r)throw n;return N()}for(a.method=r,a.arg=n;;){var p=a.delegate;if(p){var o=B(p,a);if(o){if(o===f)continue;return o}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===l)throw i=h,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=c;var u=E(e,t,a);if("normal"===u.type){if(i=a.done?h:m,u.arg===f)continue;return{value:u.arg,done:a.done}}"throw"===u.type&&(i=h,a.method="throw",a.arg=u.arg)}}}(e,a,p),n}function E(e,t,a){try{return{type:"normal",arg:e.call(t,a)}}catch(e){return{type:"throw",arg:e}}}function g(){}function w(){}function D(){}function b(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function F(e){var t;this._invoke=function(a,i){function n(){return new Promise(function(t,n){!function t(a,i,n,p){var o=E(e[a],e,i);if("throw"!==o.type){var u=o.arg,d=u.value;return d&&"object"==typeof d&&r.call(d,"__await")?Promise.resolve(d.__await).then(function(e){t("next",e,n,p)},function(e){t("throw",e,n,p)}):Promise.resolve(d).then(function(e){u.value=e,n(u)},function(e){return t("throw",e,n,p)})}p(o.arg)}(a,i,t,n)})}return t=t?t.then(n,n):n()}}function B(e,t){var i=e.iterator[t.method];if(i===a){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=a,B(e,t),"throw"===t.method))return f;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var r=E(i,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,f;var n=r.arg;return n?n.done?(t[e.resultName]=n.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=a),t.delegate=null,f):n:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function k(e){if(e){var t=e[p];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,n=function t(){for(;++iy.default.getMaximumFontSize()&&(a=y.default.getMaximumFontSize()),t.model.applyProfileChanges({fontSize:a}),e.stopPropagation()}else if(e.deltaY>0){var i=t.model.profile.fontSize-1;i2&&void 0!==arguments[2]?arguments[2]:"Restart",r=document.createElement("div"),n=document.createElement("button");if(n.classList.add("btn"),n.appendChild(document.createTextNode(i)),n.addEventListener("click",function(e){a.restartPtyProcess()}),n.classList.add("btn-"+t),n.classList.add("atom-xterm-restart-btn"),r.classList.add("atom-xterm-notice-"+t),r.appendChild(document.createTextNode(e)),r.appendChild(n),this.topDiv.innerHTML="",this.topDiv.appendChild(r),"success"===t)atom.notifications.addSuccess(e);else if("error"===t)atom.notifications.addError(e);else if("warning"===t)atom.notifications.addWarning(e);else{if("info"!==t)throw new Error("Unknown info type: "+t);atom.notifications.addInfo(e)}}},{key:"promptToStartup",value:function(){var e=this;return new Promise(function(t,a){var i;if(null===e.model.profile.title){var r=[e.getShellCommand()];r.push.apply(r,(0,n.default)(e.getArgs())),i="New command ".concat(JSON.stringify(r)," ready to start.")}else i="New command for profile ".concat(e.model.profile.title," ready to start.");e.showNotification(i,"info","Start"),t()})}},{key:"restartPtyProcess",value:function(){var e=this;return new Promise(function(t,a){e.getCwd().then(function(a){e.ptyProcessRunning&&(e.ptyProcess.removeAllListeners("exit"),e.ptyProcess.kill()),e.atomXtermProfileMenuElement.hideProfileMenu(),e.terminal.reset(),e.ptyProcessCommand=e.getShellCommand(),e.ptyProcessArgs=e.getArgs();var i=e.getTermType(),r=e.getEnv(),n=e.getEncoding();e.ptyProcessOptions={name:i,cwd:a,env:r},n&&(e.ptyProcessOptions.encoding=n),e.ptyProcessOptions.cols=e.ptyProcessCols,e.ptyProcessOptions.rows=e.ptyProcessRows,e.ptyProcess=null,e.ptyProcessRunning=!1;try{e.ptyProcess=(0,h.spawn)(e.ptyProcessCommand,e.ptyProcessArgs,e.ptyProcessOptions)}catch(a){var p="Launching '"+e.ptyProcessCommand+"' raised the following error: "+a.message;a.message.startsWith("File not found:")&&(p="Could not find command '"+e.ptyProcessCommand+"'."),e.showNotification(p,"error"),t()}e.ptyProcess&&(e.ptyProcessRunning=!0,e.ptyProcess.on("data",function(t){var a=e.model.title;null!==e.model.profile.title?e.model.title=e.model.profile.title:"win32"!==process.platform&&(e.model.title=e.ptyProcess.process),a!==e.model.title&&e.model.emitter.emit("did-change-title",e.model.title),e.terminal.write(t),e.model.handleNewDataArrival()}),e.ptyProcess.on("exit",function(t,a){e.ptyProcessRunning=!1,e.leaveOpenAfterExit()?0===t?e.showNotification("The terminal process has finished successfully.","success"):e.showNotification("The terminal process has exited with failure code '"+t+"'.","error"):e.model.exit()}),e.topDiv.innerHTML="",t())})})}},{key:"applyPendingTerminalProfileOptions",value:function(){if(1===this.terminalDivIntersectionRatio){var e=this.pendingTerminalProfileOptions.xtermOptions||{};delete e.fontSize,this.pendingTerminalProfileOptions.hasOwnProperty("fontSize")&&(e.fontSize=this.pendingTerminalProfileOptions.fontSize,delete this.pendingTerminalProfileOptions.fontSize),this.setMainBackgroundColor();for(var t=Object.keys(e),a=0;aa){var i=this.buffer.lines.length-a,r=this.buffer.ydisp-i<0;this.buffer.lines.trimStart(i),this.buffer.ybase=Math.max(this.buffer.ybase-i,0),this.buffer.ydisp=Math.max(this.buffer.ydisp-i,0),r&&this.refresh(0,this.rows-1)}}}switch(this.options[e]=t,e){case"fontFamily":case"fontSize":this.renderer&&(this.renderer.clear(),this.charMeasure.measure(this.options));break;case"drawBoldTextInBrightColors":case"experimentalCharAtlas":case"enableBold":case"letterSpacing":case"lineHeight":case"fontWeight":case"fontWeightBold":this.renderer&&(this.renderer.clear(),this.renderer.onResize(this.cols,this.rows),this.refresh(0,this.rows-1));case"rendererType":this.renderer&&(this.unregister(this.renderer),this.renderer.dispose(),this.renderer=null),this._setupRenderer(),this.renderer.onCharSizeChanged(),this._theme&&this.renderer.setTheme(this._theme);break;case"scrollback":this.buffers.resize(this.cols,this.rows),this.viewport&&this.viewport.syncScrollArea();break;case"screenReaderMode":t?this._accessibilityManager||(this._accessibilityManager=new D.AccessibilityManager(this)):this._accessibilityManager&&(this._accessibilityManager.dispose(),this._accessibilityManager=null);break;case"tabStopWidth":this.buffers.setupTabStops()}this.renderer&&this.renderer.onOptionsChanged()}},t.prototype._onTextAreaFocus=function(){this.sendFocus&&this.handler(s.C0.ESC+"[I"),this.element.classList.add("focus"),this.showCursor(),this.emit("focus")},t.prototype.blur=function(){return this.textarea.blur()},t.prototype._onTextAreaBlur=function(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.sendFocus&&this.handler(s.C0.ESC+"[O"),this.element.classList.remove("focus"),this.emit("blur")},t.prototype._initGlobal=function(){var e=this;this._bindKeys(),this.register(_.addDisposableDomListener(this.element,"copy",function(t){e.hasSelection()&&d.copyHandler(t,e,e.selectionManager)}));var t=function(t){return d.pasteHandler(t,e)};this.register(_.addDisposableDomListener(this.textarea,"paste",t)),this.register(_.addDisposableDomListener(this.element,"paste",t)),v.isFirefox?this.register(_.addDisposableDomListener(this.element,"mousedown",function(t){2===t.button&&d.rightClickHandler(t,e.textarea,e.selectionManager,e.options.rightClickSelectsWord)})):this.register(_.addDisposableDomListener(this.element,"contextmenu",function(t){d.rightClickHandler(t,e.textarea,e.selectionManager,e.options.rightClickSelectsWord)})),v.isLinux&&this.register(_.addDisposableDomListener(this.element,"auxclick",function(t){1===t.button&&d.moveTextAreaUnderMouseCursor(t,e.textarea)}))},t.prototype._bindKeys=function(){var e=this,t=this;this.register(_.addDisposableDomListener(this.element,"keydown",function(e){x.activeElement===this&&t._keyDown(e)},!0)),this.register(_.addDisposableDomListener(this.element,"keypress",function(e){x.activeElement===this&&t._keyPress(e)},!0)),this.register(_.addDisposableDomListener(this.element,"keyup",function(a){(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode})(a)||e.focus(),t._keyUp(a)},!0)),this.register(_.addDisposableDomListener(this.textarea,"keydown",function(t){return e._keyDown(t)},!0)),this.register(_.addDisposableDomListener(this.textarea,"keypress",function(t){return e._keyPress(t)},!0)),this.register(_.addDisposableDomListener(this.textarea,"compositionstart",function(){return e._compositionHelper.compositionstart()})),this.register(_.addDisposableDomListener(this.textarea,"compositionupdate",function(t){return e._compositionHelper.compositionupdate(t)})),this.register(_.addDisposableDomListener(this.textarea,"compositionend",function(){return e._compositionHelper.compositionend()})),this.register(this.addDisposableListener("refresh",function(){return e._compositionHelper.updateCompositionElements()})),this.register(this.addDisposableListener("refresh",function(t){return e._queueLinkification(t.start,t.end)}))},t.prototype.open=function(e){var t=this;if(this._parent=e||this._parent,!this._parent)throw new Error("Terminal requires a parent element.");this._context=this._parent.ownerDocument.defaultView,this._document=this._parent.ownerDocument,this._screenDprMonitor=new b.ScreenDprMonitor,this._screenDprMonitor.setListener(function(){return t.emit("dprchange",window.devicePixelRatio)}),this.register(this._screenDprMonitor),this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),this.element.setAttribute("tabindex","0"),this._parent.appendChild(this.element);var a=x.createDocumentFragment();this._viewportElement=x.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),a.appendChild(this._viewportElement),this._viewportScrollArea=x.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=x.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._helperContainer=x.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),a.appendChild(this.screenElement),this._mouseZoneManager=new w.MouseZoneManager(this),this.register(this._mouseZoneManager),this.register(this.addDisposableListener("scroll",function(){return t._mouseZoneManager.clearAll()})),this.linkifier.attachToDom(this._mouseZoneManager),this.textarea=x.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",A.promptLabel),this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this.register(_.addDisposableDomListener(this.textarea,"focus",function(){return t._onTextAreaFocus()})),this.register(_.addDisposableDomListener(this.textarea,"blur",function(){return t._onTextAreaBlur()})),this._helperContainer.appendChild(this.textarea),this._compositionView=x.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=new p.CompositionHelper(this.textarea,this._compositionView,this),this._helperContainer.appendChild(this._compositionView),this.charMeasure=new f.CharMeasure(x,this._helperContainer),this.element.appendChild(a),this._setupRenderer(),this._theme=this.options.theme,this.options.theme=null,this.viewport=new u.Viewport(this,this._viewportElement,this._viewportScrollArea,this.charMeasure),this.viewport.onThemeChanged(this.renderer.colorManager.colors),this.register(this.viewport),this.register(this.addDisposableListener("cursormove",function(){return t.renderer.onCursorMove()})),this.register(this.addDisposableListener("resize",function(){return t.renderer.onResize(t.cols,t.rows)})),this.register(this.addDisposableListener("blur",function(){return t.renderer.onBlur()})),this.register(this.addDisposableListener("focus",function(){return t.renderer.onFocus()})),this.register(this.addDisposableListener("dprchange",function(){return t.renderer.onWindowResize(window.devicePixelRatio)})),this.register(_.addDisposableDomListener(window,"resize",function(){return t.renderer.onWindowResize(window.devicePixelRatio)})),this.register(this.charMeasure.addDisposableListener("charsizechanged",function(){return t.renderer.onCharSizeChanged()})),this.register(this.renderer.addDisposableListener("resize",function(e){return t.viewport.syncScrollArea()})),this.selectionManager=new h.SelectionManager(this,this.charMeasure),this.register(_.addDisposableDomListener(this.element,"mousedown",function(e){return t.selectionManager.onMouseDown(e)})),this.register(this.selectionManager.addDisposableListener("refresh",function(e){return t.renderer.onSelectionChanged(e.start,e.end,e.columnSelectMode)})),this.register(this.selectionManager.addDisposableListener("newselection",function(e){t.textarea.value=e,t.textarea.focus(),t.textarea.select()})),this.register(this.addDisposableListener("scroll",function(){t.viewport.syncScrollArea(),t.selectionManager.refresh()})),this.register(_.addDisposableDomListener(this._viewportElement,"scroll",function(){return t.selectionManager.refresh()})),this.mouseHelper=new y.MouseHelper(this.renderer),this.options.screenReaderMode&&(this._accessibilityManager=new D.AccessibilityManager(this)),this.charMeasure.measure(this.options),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()},t.prototype._setupRenderer=function(){switch(this.options.rendererType){case"canvas":this.renderer=new m.Renderer(this,this.options.theme);break;case"dom":this.renderer=new B.DomRenderer(this,this.options.theme);break;default:throw new Error('Unrecognized rendererType "'+this.options.rendererType+'"')}this.register(this.renderer)},t.prototype._setTheme=function(e){this._theme=e;var t=this.renderer.setTheme(e);this.viewport&&this.viewport.onThemeChanged(t)},t.prototype.bindMouse=function(){var e=this,t=this.element,a=this,i=32;function r(e){var t,r;if(t=function(e){var t,i,r,n,p;switch(e.overrideType||e.type){case"mousedown":t=null!=e.button?+e.button:null!=e.which?e.which-1:null,v.isMSIE&&(t=1===t?0:4===t?1:t);break;case"mouseup":t=3;break;case"DOMMouseScroll":t=e.detail<0?64:65;break;case"wheel":t=e.wheelDeltaY>0?64:65}i=e.shiftKey?4:0,r=e.metaKey?8:0,n=e.ctrlKey?16:0,p=i|r|n,a.vt200Mouse?p&=n:a.normalMouse||(p=0);return t=32+(p<<2)+t}(e),r=a.mouseHelper.getRawByteCoords(e,a.screenElement,a.charMeasure,a.options.lineHeight,a.cols,a.rows))switch(p(t,r),e.overrideType||e.type){case"mousedown":i=t;break;case"mouseup":i=32}}function n(e,t){if(a.utfMouse){if(2047===t)return void e.push(0);t<127?e.push(t):(t>2047&&(t=2047),e.push(192|t>>6),e.push(128|63&t))}else{if(255===t)return void e.push(0);t>127&&(t=127),e.push(t)}}function p(e,t){if(a._vt300Mouse){e&=3,t.x-=32,t.y-=32;var i=s.C0.ESC+"[24";if(0===e)i+="1";else if(1===e)i+="3";else if(2===e)i+="5";else{if(3===e)return;i+="0"}return i+="~["+t.x+","+t.y+"]\r",void a.handler(i)}if(a._decLocator)return e&=3,t.x-=32,t.y-=32,0===e?e=2:1===e?e=4:2===e?e=6:3===e&&(e=3),void a.handler(s.C0.ESC+"["+e+";"+(3===e?4:0)+";"+t.y+";"+t.x+";"+t.page||"0&w");if(a.urxvtMouse)return t.x-=32,t.y-=32,t.x++,t.y++,void a.handler(s.C0.ESC+"["+e+";"+t.x+";"+t.y+"M");if(a.sgrMouse)return t.x-=32,t.y-=32,void a.handler(s.C0.ESC+"[<"+((3==(3&e)?-4&e:e)-32)+";"+t.x+";"+t.y+(3==(3&e)?"m":"M"));var r=[];n(r,e),n(r,t.x),n(r,t.y),a.handler(s.C0.ESC+"[M"+String.fromCharCode.apply(String,r))}this.register(_.addDisposableDomListener(t,"mousedown",function(t){if(t.preventDefault(),e.focus(),e.mouseEvents&&!e.selectionManager.shouldForceSelection(t)){if(r(t),e.vt200Mouse)return t.overrideType="mouseup",r(t),e.cancel(t);var n;e.normalMouse&&(n=function(t){e.normalMouse&&function(e){var t=i,r=a.mouseHelper.getRawByteCoords(e,a.screenElement,a.charMeasure,a.options.lineHeight,a.cols,a.rows);r&&p(t+=32,r)}(t)},e._document.addEventListener("mousemove",n));var o=function(t){return e.normalMouse&&!e.x10Mouse&&r(t),n&&(e._document.removeEventListener("mousemove",n),n=null),e._document.removeEventListener("mouseup",o),e.cancel(t)};return e._document.addEventListener("mouseup",o),e.cancel(t)}})),this.register(_.addDisposableDomListener(t,"wheel",function(t){if(e.mouseEvents)e.x10Mouse||e._vt300Mouse||e._decLocator||(r(t),t.preventDefault());else if(!e.buffer.hasScrollback){var a=e.viewport.getLinesScrolled(t);if(0===a)return;for(var i=s.C0.ESC+(e.applicationCursor?"O":"[")+(t.deltaY<0?"A":"B"),n="",p=0;p=this.buffer.ybase&&(this._userScrolling=!1);var a=this.buffer.ydisp;this.buffer.ydisp=Math.max(Math.min(this.buffer.ydisp+e,this.buffer.ybase),0),a!==this.buffer.ydisp&&(t||this.emit("scroll",this.buffer.ydisp),this.refresh(0,this.rows-1))},t.prototype.scrollPages=function(e){this.scrollLines(e*(this.rows-1))},t.prototype.scrollToTop=function(){this.scrollLines(-this.buffer.ydisp)},t.prototype.scrollToBottom=function(){this.scrollLines(this.buffer.ybase-this.buffer.ydisp)},t.prototype.scrollToLine=function(e){var t=e-this.buffer.ydisp;0!==t&&this.scrollLines(t)},t.prototype.write=function(e){var t=this;this._isDisposed||e&&(this.writeBuffer.push(e),this.options.useFlowControl&&!this._xoffSentToCatchUp&&this.writeBuffer.length>=5&&(this.handler(s.C0.DC3),this._xoffSentToCatchUp=!0),!this._writeInProgress&&this.writeBuffer.length>0&&(this._writeInProgress=!0,setTimeout(function(){t._innerWrite()})))},t.prototype._innerWrite=function(){var e=this;this._isDisposed&&(this.writeBuffer=[]);for(var t=this.writeBuffer.splice(0,300);t.length>0;){var a=t.shift();this._xoffSentToCatchUp&&0===t.length&&0===this.writeBuffer.length&&(this.handler(s.C0.DC1),this._xoffSentToCatchUp=!1),this._refreshStart=this.buffer.y,this._refreshEnd=this.buffer.y,this._inputHandler.parse(a),this.updateRange(this.buffer.y),this.refresh(this._refreshStart,this._refreshEnd)}this.writeBuffer.length>0?setTimeout(function(){return e._innerWrite()},0):this._writeInProgress=!1},t.prototype.writeln=function(e){this.write(e+"\r\n")},t.prototype.attachCustomKeyEventHandler=function(e){this._customKeyEventHandler=e},t.prototype.registerLinkMatcher=function(e,t,a){var i=this.linkifier.registerLinkMatcher(e,t,a);return this.refresh(0,this.rows-1),i},t.prototype.deregisterLinkMatcher=function(e){this.linkifier.deregisterLinkMatcher(e)&&this.refresh(0,this.rows-1)},t.prototype.registerCharacterJoiner=function(e){var t=this.renderer.registerCharacterJoiner(e);return this.refresh(0,this.rows-1),t},t.prototype.deregisterCharacterJoiner=function(e){this.renderer.deregisterCharacterJoiner(e)&&this.refresh(0,this.rows-1)},Object.defineProperty(t.prototype,"markers",{get:function(){return this.buffer.markers},enumerable:!0,configurable:!0}),t.prototype.addMarker=function(e){if(this.buffer===this.buffers.normal)return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)},t.prototype.hasSelection=function(){return!!this.selectionManager&&this.selectionManager.hasSelection},t.prototype.getSelection=function(){return this.selectionManager?this.selectionManager.selectionText:""},t.prototype.clearSelection=function(){this.selectionManager&&this.selectionManager.clearSelection()},t.prototype.selectAll=function(){this.selectionManager&&this.selectionManager.selectAll()},t.prototype.selectLines=function(e,t){this.selectionManager&&this.selectionManager.selectLines(e,t)},t.prototype._keyDown=function(e){if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(!this._compositionHelper.keydown(e))return this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;var t=S.evaluateKeyboardEvent(e,this.applicationCursor,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===t.type||2===t.type){var a=this.rows-1;return this.scrollLines(2===t.type?-a:a),this.cancel(e,!0)}return 1===t.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(t.cancel&&this.cancel(e,!0),!t.key||(this.emit("keydown",e),this.emit("key",t.key,e),this.showCursor(),this.handler(t.key),this.cancel(e,!0)))},t.prototype._isThirdLevelShift=function(e,t){var a=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isMSWindows&&t.altKey&&t.ctrlKey&&!t.metaKey;return"keypress"===t.type?a:a&&(!t.keyCode||t.keyCode>47)},t.prototype.setgLevel=function(e){this.glevel=e,this.charset=this.charsets[e]},t.prototype.setgCharset=function(e,t){this.charsets[e]=t,this.glevel===e&&(this.charset=t)},t.prototype._keyUp=function(e){this.updateCursorStyle(e)},t.prototype._keyPress=function(e){var t;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null==e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e))&&(t=String.fromCharCode(t),this.emit("keypress",t,e),this.emit("key",t,e),this.showCursor(),this.handler(t),!0)},t.prototype.bell=function(){var e=this;this.emit("bell"),this._soundBell()&&this.soundManager.playBellSound(),this._visualBell()&&(this.element.classList.add("visual-bell-active"),clearTimeout(this._visualBellTimer),this._visualBellTimer=window.setTimeout(function(){e.element.classList.remove("visual-bell-active")},200))},t.prototype.log=function(e,t){this.options.debug&&this._context.console&&this._context.console.log&&this._context.console.log(e,t)},t.prototype.error=function(e,t){this.options.debug&&this._context.console&&this._context.console.error&&this._context.console.error(e,t)},t.prototype.resize=function(e,t){isNaN(e)||isNaN(t)||(e!==this.cols||t!==this.rows?(e<1&&(e=1),t<1&&(t=1),this.buffers.resize(e,t),this.cols=e,this.rows=t,this.buffers.setupTabStops(this.cols),this.charMeasure&&this.charMeasure.measure(this.options),this.refresh(0,this.rows-1),this.emit("resize",{cols:e,rows:t})):!this.charMeasure||this.charMeasure.width&&this.charMeasure.height||this.charMeasure.measure(this.options))},t.prototype.updateRange=function(e){ethis._refreshEnd&&(this._refreshEnd=e)},t.prototype.maxRange=function(){this._refreshStart=0,this._refreshEnd=this.rows-1},t.prototype.eraseRight=function(e,t){var a=this.buffer.lines.get(this.buffer.ybase+t);if(a){for(var i=[this.eraseAttr(),n.NULL_CELL_CHAR,n.NULL_CELL_WIDTH,n.NULL_CELL_CODE];ethis.buffer.scrollBottom&&(this.buffer.y--,this.scroll()),this.buffer.x>=this.cols&&this.buffer.x--},t.prototype.reverseIndex=function(){if(this.buffer.y===this.buffer.scrollTop){var e=this.buffer.scrollBottom-this.buffer.scrollTop;this.buffer.lines.shiftElements(this.buffer.y+this.buffer.ybase,e,1),this.buffer.lines.set(this.buffer.y+this.buffer.ybase,this.blankLine(!0)),this.updateRange(this.buffer.scrollTop),this.updateRange(this.buffer.scrollBottom)}else this.buffer.y--},t.prototype.reset=function(){this.options.rows=this.rows,this.options.cols=this.cols;var e=this._customKeyEventHandler,t=this._inputHandler,a=this.cursorState;this._setup(),this._customKeyEventHandler=e,this._inputHandler=t,this.cursorState=a,this.refresh(0,this.rows-1),this.viewport&&this.viewport.syncScrollArea()},t.prototype.tabSet=function(){this.buffer.tabs[this.buffer.x]=!0},t.prototype.cancel=function(e,t){if(this.options.cancelEvents||t)return e.preventDefault(),e.stopPropagation(),!1},t.prototype.matchColor=function(e,t,a){var i=e<<16|t<<8|a;if(null!=L[i])return L[i];for(var r,n,p=1/0,o=-1,u=0;u>>24,r>>>16&255,r>>>8&255))){o=u;break}nthis._length)for(var t=this._length;t=e;r--)this._array[this._getCyclicIndex(r+a.length)]=this._array[this._getCyclicIndex(r)];for(r=0;rthis.maxLength){var n=this._length+a.length-this.maxLength;this._startIndex+=n,this._length=this.maxLength,this.emit("trim",n)}else this._length+=a.length}},t.prototype.trimStart=function(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.emit("trim",e)},t.prototype.shiftElements=function(e,t,a){if(!(t<=0)){if(e<0||e>=this._length)throw new Error("start argument out of range");if(e+a<0)throw new Error("Cannot shift elements in list beyond index 0");if(a>0){for(var i=t-1;i>=0;i--)this.set(e+i+a,this.get(e+i));var r=e+t+a-this._length;if(r>0)for(this._length+=r;this._length>this.maxLength;)this._length--,this._startIndex++,this.emit("trim",1)}else for(i=0;i0&&e._terminal.handler(a)}},0)},e.prototype.updateCompositionElements=function(e){var t=this;if(this._isComposing){if(this._terminal.buffer.isCursorInViewport){var a=Math.ceil(this._terminal.charMeasure.height*this._terminal.options.lineHeight),i=this._terminal.buffer.y*a,r=this._terminal.buffer.x*this._terminal.charMeasure.width;this._compositionView.style.left=r+"px",this._compositionView.style.top=i+"px",this._compositionView.style.height=a+"px",this._compositionView.style.lineHeight=a+"px";var n=this._compositionView.getBoundingClientRect();this._textarea.style.left=r+"px",this._textarea.style.top=i+"px",this._textarea.style.width=n.width+"px",this._textarea.style.height=n.height+"px",this._textarea.style.lineHeight=n.height+"px"}e||setTimeout(function(){return t.updateCompositionElements(!0)},0)}},e.prototype._clearTextareaPosition=function(){this._textarea.style.left="",this._textarea.style.top=""},e}();t.CompositionHelper=i},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(11),n=a(19),p=15,o=function(e){function t(t,a,i,r){var o=e.call(this)||this;return o._terminal=t,o._viewportElement=a,o._scrollArea=i,o._charMeasure=r,o.scrollBarWidth=0,o._currentRowHeight=0,o._lastRecordedBufferLength=0,o._lastRecordedViewportHeight=0,o._lastRecordedBufferHeight=0,o._wheelPartialScroll=0,o.scrollBarWidth=o._viewportElement.offsetWidth-o._scrollArea.offsetWidth||p,o.register(n.addDisposableDomListener(o._viewportElement,"scroll",o._onScroll.bind(o))),setTimeout(function(){return o.syncScrollArea()},0),o}return i(t,e),t.prototype.onThemeChanged=function(e){this._viewportElement.style.backgroundColor=e.background.css},t.prototype._refresh=function(){if(this._charMeasure.height>0){this._currentRowHeight=this._terminal.renderer.dimensions.scaledCellHeight/window.devicePixelRatio,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;var e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._terminal.renderer.dimensions.canvasHeight);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}},t.prototype.syncScrollArea=function(){this._lastRecordedBufferLength!==this._terminal.buffer.lines.length?(this._lastRecordedBufferLength=this._terminal.buffer.lines.length,this._refresh()):this._lastRecordedViewportHeight!==this._terminal.renderer.dimensions.canvasHeight?this._refresh():this._terminal.renderer.dimensions.scaledCellHeight/window.devicePixelRatio!==this._currentRowHeight&&this._refresh();var e=this._terminal.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==e&&(this._viewportElement.scrollTop=e)},t.prototype._onScroll=function(e){if(this._viewportElement.offsetParent){var t=Math.round(this._viewportElement.scrollTop/this._currentRowHeight)-this._terminal.buffer.ydisp;this._terminal.scrollLines(t,!0)}},t.prototype.onWheel=function(e){var t=this._getPixelsScrolled(e);0!==t&&(this._viewportElement.scrollTop+=t,e.preventDefault())},t.prototype._getPixelsScrolled=function(e){if(0===e.deltaY)return 0;var t=e.deltaY;return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=this._currentRowHeight:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._currentRowHeight*this._terminal.rows),t},t.prototype.getLinesScrolled=function(e){if(0===e.deltaY)return 0;var t=e.deltaY;return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._terminal.rows),t},t.prototype.onTouchStart=function(e){this._lastTouchY=e.touches[0].pageY},t.prototype.onTouchMove=function(e){var t=this._lastTouchY-e.touches[0].pageY;this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,e.preventDefault())},t}(r.Disposable);t.Viewport=o},function(e,t,a){"use strict";function i(e){return e.replace(/\r?\n/g,"\r")}function r(e,t){return t?"[200~"+e+"[201~":e}function n(e,t){t.style.position="fixed",t.style.width="20px",t.style.height="20px",t.style.left=e.clientX-10+"px",t.style.top=e.clientY-10+"px",t.style.zIndex="1000",t.focus(),setTimeout(function(){t.style.position=null,t.style.width=null,t.style.height=null,t.style.left=null,t.style.top=null,t.style.zIndex=null},200)}Object.defineProperty(t,"__esModule",{value:!0}),t.prepareTextForTerminal=i,t.bracketTextForPaste=r,t.copyHandler=function(e,t,a){t.browser.isMSIE?window.clipboardData.setData("Text",a.selectionText):e.clipboardData.setData("text/plain",a.selectionText),e.preventDefault()},t.pasteHandler=function(e,t){e.stopPropagation();var a=function(a){a=r(a=i(a),t.bracketedPasteMode),t.handler(a),t.textarea.value="",t.emit("paste",a),t.cancel(e)};t.browser.isMSIE?window.clipboardData&&a(window.clipboardData.getData("Text")):e.clipboardData&&a(e.clipboardData.getData("text/plain"))},t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(e,t,a,i){n(e,t),i&&!a.isClickInSelection(e)&&a.selectWordAtCursor(e),t.value=a.selectionText,t.select()}},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(20),n=a(94),p=a(8),o=a(95),u=a(96),d=a(11),s={"(":0,")":1,"*":2,"+":3,"-":1,".":2},l=function(){function e(e){this._terminal=e}return e.prototype.hook=function(e,t,a){this._data=""},e.prototype.put=function(e,t,a){this._data+=e.substring(t,a)},e.prototype.unhook=function(){this._terminal.handler(r.C0.ESC+"P0+r"+this._data+r.C0.ESC+"\\")},e}(),m=function(){function e(e){this._terminal=e}return e.prototype.hook=function(e,t,a){this._data=""},e.prototype.put=function(e,t,a){this._data+=e.substring(t,a)},e.prototype.unhook=function(){switch(this._data){case'"q':return this._terminal.handler(r.C0.ESC+'P1$r0"q'+r.C0.ESC+"\\");case'"p':return this._terminal.handler(r.C0.ESC+'P1$r61"p'+r.C0.ESC+"\\");case"r":var e=this._terminal.buffer.scrollTop+1+";"+(this._terminal.buffer.scrollBottom+1)+"r";return this._terminal.handler(r.C0.ESC+"P1$r"+e+r.C0.ESC+"\\");case"m":return this._terminal.handler(r.C0.ESC+"P1$r0m"+r.C0.ESC+"\\");case" q":var t={block:2,underline:4,bar:6}[this._terminal.getOption("cursorStyle")];return t-=this._terminal.getOption("cursorBlink"),this._terminal.handler(r.C0.ESC+"P1$r"+t+" q"+r.C0.ESC+"\\");default:this._terminal.error("Unknown DCS $q %s",this._data),this._terminal.handler(r.C0.ESC+"P0$r"+this._data+r.C0.ESC+"\\")}},e}(),c=function(e){function t(t,a){void 0===a&&(a=new u.EscapeSequenceParser);var i=e.call(this)||this;i._terminal=t,i._parser=a,i.register(i._parser),i._surrogateHigh="",i._parser.setCsiHandlerFallback(function(e,t,a){i._terminal.error("Unknown CSI code: ",{collect:e,params:t,flag:String.fromCharCode(a)})}),i._parser.setEscHandlerFallback(function(e,t){i._terminal.error("Unknown ESC code: ",{collect:e,flag:String.fromCharCode(t)})}),i._parser.setExecuteHandlerFallback(function(e){i._terminal.error("Unknown EXECUTE code: ",{code:e})}),i._parser.setOscHandlerFallback(function(e,t){i._terminal.error("Unknown OSC code: ",{identifier:e,data:t})}),i._parser.setPrintHandler(function(e,t,a){return i.print(e,t,a)}),i._parser.setCsiHandler("@",function(e,t){return i.insertChars(e)}),i._parser.setCsiHandler("A",function(e,t){return i.cursorUp(e)}),i._parser.setCsiHandler("B",function(e,t){return i.cursorDown(e)}),i._parser.setCsiHandler("C",function(e,t){return i.cursorForward(e)}),i._parser.setCsiHandler("D",function(e,t){return i.cursorBackward(e)}),i._parser.setCsiHandler("E",function(e,t){return i.cursorNextLine(e)}),i._parser.setCsiHandler("F",function(e,t){return i.cursorPrecedingLine(e)}),i._parser.setCsiHandler("G",function(e,t){return i.cursorCharAbsolute(e)}),i._parser.setCsiHandler("H",function(e,t){return i.cursorPosition(e)}),i._parser.setCsiHandler("I",function(e,t){return i.cursorForwardTab(e)}),i._parser.setCsiHandler("J",function(e,t){return i.eraseInDisplay(e)}),i._parser.setCsiHandler("K",function(e,t){return i.eraseInLine(e)}),i._parser.setCsiHandler("L",function(e,t){return i.insertLines(e)}),i._parser.setCsiHandler("M",function(e,t){return i.deleteLines(e)}),i._parser.setCsiHandler("P",function(e,t){return i.deleteChars(e)}),i._parser.setCsiHandler("S",function(e,t){return i.scrollUp(e)}),i._parser.setCsiHandler("T",function(e,t){return i.scrollDown(e,t)}),i._parser.setCsiHandler("X",function(e,t){return i.eraseChars(e)}),i._parser.setCsiHandler("Z",function(e,t){return i.cursorBackwardTab(e)}),i._parser.setCsiHandler("`",function(e,t){return i.charPosAbsolute(e)}),i._parser.setCsiHandler("a",function(e,t){return i.hPositionRelative(e)}),i._parser.setCsiHandler("b",function(e,t){return i.repeatPrecedingCharacter(e)}),i._parser.setCsiHandler("c",function(e,t){return i.sendDeviceAttributes(e,t)}),i._parser.setCsiHandler("d",function(e,t){return i.linePosAbsolute(e)}),i._parser.setCsiHandler("e",function(e,t){return i.vPositionRelative(e)}),i._parser.setCsiHandler("f",function(e,t){return i.hVPosition(e)}),i._parser.setCsiHandler("g",function(e,t){return i.tabClear(e)}),i._parser.setCsiHandler("h",function(e,t){return i.setMode(e,t)}),i._parser.setCsiHandler("l",function(e,t){return i.resetMode(e,t)}),i._parser.setCsiHandler("m",function(e,t){return i.charAttributes(e)}),i._parser.setCsiHandler("n",function(e,t){return i.deviceStatus(e,t)}),i._parser.setCsiHandler("p",function(e,t){return i.softReset(e,t)}),i._parser.setCsiHandler("q",function(e,t){return i.setCursorStyle(e,t)}),i._parser.setCsiHandler("r",function(e,t){return i.setScrollRegion(e,t)}),i._parser.setCsiHandler("s",function(e,t){return i.saveCursor(e)}),i._parser.setCsiHandler("u",function(e,t){return i.restoreCursor(e)}),i._parser.setExecuteHandler(r.C0.BEL,function(){return i.bell()}),i._parser.setExecuteHandler(r.C0.LF,function(){return i.lineFeed()}),i._parser.setExecuteHandler(r.C0.VT,function(){return i.lineFeed()}),i._parser.setExecuteHandler(r.C0.FF,function(){return i.lineFeed()}),i._parser.setExecuteHandler(r.C0.CR,function(){return i.carriageReturn()}),i._parser.setExecuteHandler(r.C0.BS,function(){return i.backspace()}),i._parser.setExecuteHandler(r.C0.HT,function(){return i.tab()}),i._parser.setExecuteHandler(r.C0.SO,function(){return i.shiftOut()}),i._parser.setExecuteHandler(r.C0.SI,function(){return i.shiftIn()}),i._parser.setExecuteHandler(r.C1.IND,function(){return i.index()}),i._parser.setExecuteHandler(r.C1.NEL,function(){return i.nextLine()}),i._parser.setExecuteHandler(r.C1.HTS,function(){return i.tabSet()}),i._parser.setOscHandler(0,function(e){return i.setTitle(e)}),i._parser.setOscHandler(2,function(e){return i.setTitle(e)}),i._parser.setEscHandler("7",function(){return i.saveCursor([])}),i._parser.setEscHandler("8",function(){return i.restoreCursor([])}),i._parser.setEscHandler("D",function(){return i.index()}),i._parser.setEscHandler("E",function(){return i.nextLine()}),i._parser.setEscHandler("H",function(){return i.tabSet()}),i._parser.setEscHandler("M",function(){return i.reverseIndex()}),i._parser.setEscHandler("=",function(){return i.keypadApplicationMode()}),i._parser.setEscHandler(">",function(){return i.keypadNumericMode()}),i._parser.setEscHandler("c",function(){return i.reset()}),i._parser.setEscHandler("n",function(){return i.setgLevel(2)}),i._parser.setEscHandler("o",function(){return i.setgLevel(3)}),i._parser.setEscHandler("|",function(){return i.setgLevel(3)}),i._parser.setEscHandler("}",function(){return i.setgLevel(2)}),i._parser.setEscHandler("~",function(){return i.setgLevel(1)}),i._parser.setEscHandler("%@",function(){return i.selectDefaultCharset()}),i._parser.setEscHandler("%G",function(){return i.selectDefaultCharset()});var p=function(e){o._parser.setEscHandler("("+e,function(){return i.selectCharset("("+e)}),o._parser.setEscHandler(")"+e,function(){return i.selectCharset(")"+e)}),o._parser.setEscHandler("*"+e,function(){return i.selectCharset("*"+e)}),o._parser.setEscHandler("+"+e,function(){return i.selectCharset("+"+e)}),o._parser.setEscHandler("-"+e,function(){return i.selectCharset("-"+e)}),o._parser.setEscHandler("."+e,function(){return i.selectCharset("."+e)}),o._parser.setEscHandler("/"+e,function(){return i.selectCharset("/"+e)})},o=this;for(var d in n.CHARSETS)p(d);return i._parser.setErrorHandler(function(e){return i._terminal.error("Parsing error: ",e),e}),i._parser.setDcsHandler("$q",new m(i._terminal)),i._parser.setDcsHandler("+q",new l(i._terminal)),i}return i(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._terminal=null},t.prototype.parse=function(e){if(this._terminal){var t=this._terminal.buffer,a=t.x,i=t.y;this._terminal.debug&&this._terminal.log("data: "+e),this._surrogateHigh&&(e=this._surrogateHigh+e,this._surrogateHigh=""),this._parser.parse(e),(t=this._terminal.buffer).x===a&&t.y===i||this._terminal.emit("cursormove")}},t.prototype.print=function(e,t,a){var i,r,n,u,d=this._terminal.buffer,s=this._terminal.charset,l=this._terminal.options.screenReaderMode,m=this._terminal.cols,c=this._terminal.wraparoundMode,h=this._terminal.insertMode,f=this._terminal.curAttr,v=d.lines.get(d.y+d.ybase);this._terminal.updateRange(d.y);for(var _=t;_=m)if(c)d.x=0,d.y++,d.y>d.scrollBottom?(d.y--,this._terminal.scroll(!0)):d.lines.get(d.y).isWrapped=!0,v=d.lines.get(d.y+d.ybase);else if(2===u)continue;if(h)for(var A=0;Ae.scrollBottom&&(e.y--,this._terminal.scroll()),e.x>=this._terminal.cols&&e.x--,this._terminal.emit("linefeed")},t.prototype.carriageReturn=function(){this._terminal.buffer.x=0},t.prototype.backspace=function(){this._terminal.buffer.x>0&&this._terminal.buffer.x--},t.prototype.tab=function(){var e=this._terminal.buffer.x;this._terminal.buffer.x=this._terminal.buffer.nextStop(),this._terminal.options.screenReaderMode&&this._terminal.emit("a11y.tab",this._terminal.buffer.x-e)},t.prototype.shiftOut=function(){this._terminal.setgLevel(1)},t.prototype.shiftIn=function(){this._terminal.setgLevel(0)},t.prototype.insertChars=function(e){var t=e[0];t<1&&(t=1);for(var a=this._terminal.buffer,i=a.y+a.ybase,r=a.x,n=[this._terminal.eraseAttr(),p.NULL_CELL_CHAR,p.NULL_CELL_WIDTH,p.NULL_CELL_CODE];t--&&r=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x>=this._terminal.cols&&this._terminal.buffer.x--},t.prototype.cursorForward=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.x+=t,this._terminal.buffer.x>=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.cursorBackward=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.x>=this._terminal.cols&&this._terminal.buffer.x--,this._terminal.buffer.x-=t,this._terminal.buffer.x<0&&(this._terminal.buffer.x=0)},t.prototype.cursorNextLine=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.y+=t,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x=0},t.prototype.cursorPrecedingLine=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.y-=t,this._terminal.buffer.y<0&&(this._terminal.buffer.y=0),this._terminal.buffer.x=0},t.prototype.cursorCharAbsolute=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.x=t-1},t.prototype.cursorPosition=function(e){var t,a=e[0]-1;t=e.length>=2?e[1]-1:0,a<0?a=0:a>=this._terminal.rows&&(a=this._terminal.rows-1),t<0?t=0:t>=this._terminal.cols&&(t=this._terminal.cols-1),this._terminal.buffer.x=t,this._terminal.buffer.y=a},t.prototype.cursorForwardTab=function(e){for(var t=e[0]||1;t--;)this._terminal.buffer.x=this._terminal.buffer.nextStop()},t.prototype.eraseInDisplay=function(e){var t;switch(e[0]){case 0:for(this._terminal.eraseRight(this._terminal.buffer.x,this._terminal.buffer.y),t=this._terminal.buffer.y+1;t0&&(this._terminal.buffer.lines.trimStart(a),this._terminal.buffer.ybase=Math.max(this._terminal.buffer.ybase-a,0),this._terminal.buffer.ydisp=Math.max(this._terminal.buffer.ydisp-a,0),this._terminal.emit("scroll",0))}},t.prototype.eraseInLine=function(e){switch(e[0]){case 0:this._terminal.eraseRight(this._terminal.buffer.x,this._terminal.buffer.y);break;case 1:this._terminal.eraseLeft(this._terminal.buffer.x,this._terminal.buffer.y);break;case 2:this._terminal.eraseLine(this._terminal.buffer.y)}},t.prototype.insertLines=function(e){var t=e[0];t<1&&(t=1);for(var a=this._terminal.buffer,i=a.y+a.ybase,r=this._terminal.rows-1-a.scrollBottom,n=this._terminal.rows-1+a.ybase-r+1;t--;)a.lines.splice(n-1,1),a.lines.splice(i,0,this._terminal.blankLine(!0));this._terminal.updateRange(a.y),this._terminal.updateRange(a.scrollBottom)},t.prototype.deleteLines=function(e){var t=e[0];t<1&&(t=1);var a,i=this._terminal.buffer,r=i.y+i.ybase;for(a=this._terminal.rows-1-i.scrollBottom,a=this._terminal.rows-1+i.ybase-a;t--;)i.lines.splice(r,1),i.lines.splice(a,0,this._terminal.blankLine(!0));this._terminal.updateRange(i.y),this._terminal.updateRange(i.scrollBottom)},t.prototype.deleteChars=function(e){var t=e[0];t<1&&(t=1);for(var a=this._terminal.buffer,i=a.y+a.ybase,r=[this._terminal.eraseAttr(),p.NULL_CELL_CHAR,p.NULL_CELL_WIDTH,p.NULL_CELL_CODE];t--;)a.lines.get(i).splice(a.x,1),a.lines.get(i).push(r);this._terminal.updateRange(a.y)},t.prototype.scrollUp=function(e){for(var t=e[0]||1,a=this._terminal.buffer;t--;)a.lines.splice(a.ybase+a.scrollTop,1),a.lines.splice(a.ybase+a.scrollBottom,0,this._terminal.blankLine());this._terminal.updateRange(a.scrollTop),this._terminal.updateRange(a.scrollBottom)},t.prototype.scrollDown=function(e,t){if(e.length<2&&!t){for(var a=e[0]||1,i=this._terminal.buffer;a--;)i.lines.splice(i.ybase+i.scrollBottom,1),i.lines.splice(i.ybase+i.scrollTop,0,this._terminal.blankLine());this._terminal.updateRange(i.scrollTop),this._terminal.updateRange(i.scrollBottom)}},t.prototype.eraseChars=function(e){var t=e[0];t<1&&(t=1);for(var a=this._terminal.buffer,i=a.y+a.ybase,r=a.x,n=[this._terminal.eraseAttr(),p.NULL_CELL_CHAR,p.NULL_CELL_WIDTH,p.NULL_CELL_CODE];t--&&r=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.hPositionRelative=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.x+=t,this._terminal.buffer.x>=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.repeatPrecedingCharacter=function(e){for(var t=e[0]||1,a=this._terminal.buffer,i=a.lines.get(a.ybase+a.y),r=i[a.x-1]||[p.DEFAULT_ATTR,p.NULL_CELL_CHAR,p.NULL_CELL_WIDTH,p.NULL_CELL_CODE];t--;)i[a.x++]=r},t.prototype.sendDeviceAttributes=function(e,t){e[0]>0||(t?">"===t&&(this._terminal.is("xterm")?this._terminal.handler(r.C0.ESC+"[>0;276;0c"):this._terminal.is("rxvt-unicode")?this._terminal.handler(r.C0.ESC+"[>85;95;0c"):this._terminal.is("linux")?this._terminal.handler(e[0]+"c"):this._terminal.is("screen")&&this._terminal.handler(r.C0.ESC+"[>83;40003;0c")):this._terminal.is("xterm")||this._terminal.is("rxvt-unicode")||this._terminal.is("screen")?this._terminal.handler(r.C0.ESC+"[?1;2c"):this._terminal.is("linux")&&this._terminal.handler(r.C0.ESC+"[?6c"))},t.prototype.linePosAbsolute=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.y=t-1,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1)},t.prototype.vPositionRelative=function(e){var t=e[0];t<1&&(t=1),this._terminal.buffer.y+=t,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x>=this._terminal.cols&&this._terminal.buffer.x--},t.prototype.hVPosition=function(e){e[0]<1&&(e[0]=1),e[1]<1&&(e[1]=1),this._terminal.buffer.y=e[0]-1,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x=e[1]-1,this._terminal.buffer.x>=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.tabClear=function(e){var t=e[0];t<=0?delete this._terminal.buffer.tabs[this._terminal.buffer.x]:3===t&&(this._terminal.buffer.tabs={})},t.prototype.setMode=function(e,t){if(e.length>1)for(var a=0;a1e3,this._terminal.mouseEvents=!0,this._terminal.element.classList.add("enable-mouse-events"),this._terminal.selectionManager.disable(),this._terminal.log("Binding to mouse events.");break;case 1004:this._terminal.sendFocus=!0;break;case 1005:this._terminal.utfMouse=!0;break;case 1006:this._terminal.sgrMouse=!0;break;case 1015:this._terminal.urxvtMouse=!0;break;case 25:this._terminal.cursorHidden=!1;break;case 1049:case 47:case 1047:this._terminal.buffers.activateAltBuffer(),this._terminal.viewport.syncScrollArea(),this._terminal.showCursor();break;case 2004:this._terminal.bracketedPasteMode=!0}}else switch(e[0]){case 4:this._terminal.insertMode=!0}},t.prototype.resetMode=function(e,t){if(e.length>1)for(var a=0;a>18,r=this._terminal.curAttr>>9&511,n=511&this._terminal.curAttr,o=0;o=30&&t<=37?r=t-30:t>=40&&t<=47?n=t-40:t>=90&&t<=97?r=(t+=8)-90:t>=100&&t<=107?n=(t+=8)-100:0===t?(i=p.DEFAULT_ATTR>>18,r=p.DEFAULT_ATTR>>9&511,n=511&p.DEFAULT_ATTR):1===t?i|=1:3===t?i|=64:4===t?i|=2:5===t?i|=4:7===t?i|=8:8===t?i|=16:2===t?i|=32:22===t?(i&=-2,i&=-33):24===t?i&=-3:25===t?i&=-5:27===t?i&=-9:28===t?i&=-17:39===t?r=p.DEFAULT_ATTR>>9&511:49===t?n=511&p.DEFAULT_ATTR:38===t?2===e[o+1]?(o+=2,-1===(r=this._terminal.matchColor(255&e[o],255&e[o+1],255&e[o+2]))&&(r=511),o+=2):5===e[o+1]&&(r=t=255&e[o+=2]):48===t?2===e[o+1]?(o+=2,-1===(n=this._terminal.matchColor(255&e[o],255&e[o+1],255&e[o+2]))&&(n=511),o+=2):5===e[o+1]&&(n=t=255&e[o+=2]):100===t?(r=p.DEFAULT_ATTR>>9&511,n=511&p.DEFAULT_ATTR):this._terminal.error("Unknown SGR attribute: %d.",t);this._terminal.curAttr=i<<18|r<<9|n}else this._terminal.curAttr=p.DEFAULT_ATTR},t.prototype.deviceStatus=function(e,t){if(t){if("?"===t)switch(e[0]){case 6:a=this._terminal.buffer.y+1,i=this._terminal.buffer.x+1;this._terminal.emit("data",r.C0.ESC+"[?"+a+";"+i+"R")}}else switch(e[0]){case 5:this._terminal.emit("data",r.C0.ESC+"[0n");break;case 6:var a=this._terminal.buffer.y+1,i=this._terminal.buffer.x+1;this._terminal.emit("data",r.C0.ESC+"["+a+";"+i+"R")}},t.prototype.softReset=function(e,t){"!"===t&&(this._terminal.cursorHidden=!1,this._terminal.insertMode=!1,this._terminal.originMode=!1,this._terminal.wraparoundMode=!0,this._terminal.applicationKeypad=!1,this._terminal.viewport.syncScrollArea(),this._terminal.applicationCursor=!1,this._terminal.buffer.scrollTop=0,this._terminal.buffer.scrollBottom=this._terminal.rows-1,this._terminal.curAttr=p.DEFAULT_ATTR,this._terminal.buffer.x=this._terminal.buffer.y=0,this._terminal.charset=null,this._terminal.glevel=0,this._terminal.charsets=[null])},t.prototype.setCursorStyle=function(e,t){if(" "===t){var a=e[0]<1?1:e[0];switch(a){case 1:case 2:this._terminal.setOption("cursorStyle","block");break;case 3:case 4:this._terminal.setOption("cursorStyle","underline");break;case 5:case 6:this._terminal.setOption("cursorStyle","bar")}var i=a%2==1;this._terminal.setOption("cursorBlink",i)}},t.prototype.setScrollRegion=function(e,t){t||(this._terminal.buffer.scrollTop=(e[0]||1)-1,this._terminal.buffer.scrollBottom=(e[1]&&e[1]<=this._terminal.rows?e[1]:this._terminal.rows)-1,this._terminal.buffer.x=0,this._terminal.buffer.y=0)},t.prototype.saveCursor=function(e){this._terminal.buffer.savedX=this._terminal.buffer.x,this._terminal.buffer.savedY=this._terminal.buffer.y,this._terminal.savedCurAttr=this._terminal.curAttr},t.prototype.restoreCursor=function(e){this._terminal.buffer.x=this._terminal.buffer.savedX||0,this._terminal.buffer.y=this._terminal.buffer.savedY||0,this._terminal.curAttr=this._terminal.savedCurAttr||p.DEFAULT_ATTR},t.prototype.setTitle=function(e){this._terminal.handleTitle(e)},t.prototype.nextLine=function(){this._terminal.buffer.x=0,this.index()},t.prototype.keypadApplicationMode=function(){this._terminal.log("Serial port requested application keypad."),this._terminal.applicationKeypad=!0,this._terminal.viewport&&this._terminal.viewport.syncScrollArea()},t.prototype.keypadNumericMode=function(){this._terminal.log("Switching back to normal keypad."),this._terminal.applicationKeypad=!1,this._terminal.viewport&&this._terminal.viewport.syncScrollArea()},t.prototype.selectDefaultCharset=function(){this._terminal.setgLevel(0),this._terminal.setgCharset(0,n.DEFAULT_CHARSET)},t.prototype.selectCharset=function(e){if(2!==e.length)return this.selectDefaultCharset();"/"!==e[0]&&this._terminal.setgCharset(s[e[0]],n.CHARSETS[e[1]]||n.DEFAULT_CHARSET)},t.prototype.index=function(){this._terminal.index()},t.prototype.tabSet=function(){this._terminal.tabSet()},t.prototype.reverseIndex=function(){this._terminal.reverseIndex()},t.prototype.reset=function(){this._parser.reset(),this._terminal.reset()},t.prototype.setgLevel=function(e){this._terminal.setgLevel(e)},t}(d.Disposable);t.InputHandler=c},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={"`":"◆",a:"▒",b:"\t",c:"\f",d:"\r",e:"\n",f:"°",g:"±",h:"␤",i:"\v",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},t.CHARSETS.A={"#":"£"},t.CHARSETS.B=null,t.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},t.CHARSETS.C=t.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},t.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},t.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},t.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},t.CHARSETS.E=t.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},t.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},t.CHARSETS.H=t.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.wcwidth=function(e){var t=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],a=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];function i(e,t){var a,i=0,r=t.length-1;if(et[r][1])return!1;for(;r>=i;)if(e>t[a=i+r>>1][1])i=a+1;else{if(!(e=127&&a<160?e.control:i(a,t)?0:function(e){return e>=4352&&(e<=4447||9001===e||9002===e||e>=11904&&e<=42191&&12351!==e||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510)}(a)?2:1}var n=0|e.control,p=null;return function(e){if((e|=0)<32)return 0|n;if(e<127)return 1;var t=p||function(){p="undefined"==typeof Uint32Array?new Array(4096):new Uint32Array(4096);for(var e=0;e<4096;++e){for(var t=0,a=16;a--;)t=t<<2|r(16*e+a);p[e]=t}return p}();return e<65536?t[e>>4]>>((15&e)<<1)&3:function(e){return i(e,a)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}(e)}}({nul:0,control:0})},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(11);function n(e,t){for(var a=t-e,i=new Array(a);a--;)i[a]=--t;return i}var p=function(){function e(e){this.table="undefined"==typeof Uint8Array?new Array(e):new Uint8Array(e)}return e.prototype.add=function(e,t,a,i){this.table[t<<8|e]=(0|a)<<4|(void 0===i?t:i)},e.prototype.addMany=function(e,t,a,i){for(var r=0;r31&&t<128){n=~n?n:h;do{h++}while(h31&&e.charCodeAt(h)<128);h--}else if(4===r&&t>47&&t<57)d[d.length-1]=10*d[d.length-1]+t-48;else{switch((a=t<160?s[r<<8|t]:16)>>4){case 2:n=~n?n:h;break;case 3:~n&&(this._printHandler(e,n,h),n=-1),(m=this._executeHandlers[t])?m():this._executeHandlerFb(t);break;case 0:~n?(this._printHandler(e,n,h),n=-1):~p&&(l.put(e,p,h),p=-1);break;case 1:if(t>159)switch(r){case 0:n=~n?n:h;break;case 8:o+=String.fromCharCode(t),a|=8;break;case 6:a|=6;break;case 11:a|=11;break;case 13:p=~p?p:h,a|=13;break;default:i=!0}else i=!0;if(i){if(this._errorHandler({position:h,code:t,currentState:r,print:n,dcs:p,osc:o,collect:u,params:d,abort:!1}).abort)return;i=!1}break;case 7:(m=this._csiHandlers[t])?m(d,u):this._csiHandlerFb(u,d,t);break;case 8:59===t?d.push(0):d[d.length-1]=10*d[d.length-1]+t-48;break;case 9:u+=String.fromCharCode(t);break;case 10:(m=this._escHandlers[u+String.fromCharCode(t)])?m(u,t):this._escHandlerFb(u,t);break;case 11:~n&&(this._printHandler(e,n,h),n=-1),o="",d=[0],u="",p=-1;break;case 12:(l=this._dcsHandlers[u+String.fromCharCode(t)])||(l=this._dcsHandlerFb),l.hook(u,d,t);break;case 13:p=~p?p:h;break;case 14:l&&(~p&&l.put(e,p,h),l.unhook(),l=null),27===t&&(a|=1),o="",d=[0],u="",p=-1;break;case 4:~n&&(this._printHandler(e,n,h),n=-1),o="";break;case 5:o+=e.charAt(h);break;case 6:if(o&&24!==t&&26!==t){var f=o.indexOf(";");if(-1===f)this._oscHandlerFb(-1,o);else{var v=parseInt(o.substring(0,f)),_=o.substring(f+1);(m=this._oscHandlers[v])?m(_):this._oscHandlerFb(v,_)}}27===t&&(a|=1),o="",d=[0],u="",p=-1}r=15&a}0===r&&~n?this._printHandler(e,n,e.length):13===r&&~p&&l&&l.put(e,p,e.length),this._osc=o,this._collect=u,this._params=d,this._activeDcsHandler=l,this.currentState=r},a}(r.Disposable);t.EscapeSequenceParser=s},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(98),n=a(105),p=a(106),o=a(23),u=a(107),d=a(9),s=a(32),l=a(42),m=a(108),c=function(e){function t(t,a){var i=e.call(this)||this;i._terminal=t,i._isPaused=!1,i._needsFullRefresh=!1;var d=i._terminal.options.allowTransparency;if(i.colorManager=new o.ColorManager(document,d),i._characterJoinerRegistry=new m.CharacterJoinerRegistry(t),a&&i.colorManager.setTheme(a),i._renderLayers=[new r.TextRenderLayer(i._terminal.screenElement,0,i.colorManager.colors,i._characterJoinerRegistry,d),new n.SelectionRenderLayer(i._terminal.screenElement,1,i.colorManager.colors),new u.LinkRenderLayer(i._terminal.screenElement,2,i.colorManager.colors,i._terminal),new p.CursorRenderLayer(i._terminal.screenElement,3,i.colorManager.colors)],i.dimensions={scaledCharWidth:null,scaledCharHeight:null,scaledCellWidth:null,scaledCellHeight:null,scaledCharLeft:null,scaledCharTop:null,scaledCanvasWidth:null,scaledCanvasHeight:null,canvasWidth:null,canvasHeight:null,actualCellWidth:null,actualCellHeight:null},i._devicePixelRatio=window.devicePixelRatio,i._updateDimensions(),i.onOptionsChanged(),i._renderDebouncer=new s.RenderDebouncer(i._terminal,i._renderRows.bind(i)),i._screenDprMonitor=new l.ScreenDprMonitor,i._screenDprMonitor.setListener(function(){return i.onWindowResize(window.devicePixelRatio)}),i.register(i._screenDprMonitor),"IntersectionObserver"in window){var c=new IntersectionObserver(function(e){return i.onIntersectionChange(e[0])},{threshold:0});c.observe(i._terminal.element),i.register({dispose:function(){return c.disconnect()}})}return i}return i(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._renderLayers.forEach(function(e){return e.dispose()})},t.prototype.onIntersectionChange=function(e){this._isPaused=0===e.intersectionRatio,!this._isPaused&&this._needsFullRefresh&&this._terminal.refresh(0,this._terminal.rows-1)},t.prototype.onWindowResize=function(e){this._devicePixelRatio!==e&&(this._devicePixelRatio=e,this.onResize(this._terminal.cols,this._terminal.rows))},t.prototype.setTheme=function(e){var t=this;return this.colorManager.setTheme(e),this._renderLayers.forEach(function(e){e.onThemeChanged(t._terminal,t.colorManager.colors),e.reset(t._terminal)}),this._isPaused?this._needsFullRefresh=!0:this._terminal.refresh(0,this._terminal.rows-1),this.colorManager.colors},t.prototype.onResize=function(e,t){var a=this;this._updateDimensions(),this._renderLayers.forEach(function(e){return e.resize(a._terminal,a.dimensions)}),this._isPaused?this._needsFullRefresh=!0:this._terminal.refresh(0,this._terminal.rows-1),this._terminal.screenElement.style.width=this.dimensions.canvasWidth+"px",this._terminal.screenElement.style.height=this.dimensions.canvasHeight+"px",this.emit("resize",{width:this.dimensions.canvasWidth,height:this.dimensions.canvasHeight})},t.prototype.onCharSizeChanged=function(){this.onResize(this._terminal.cols,this._terminal.rows)},t.prototype.onBlur=function(){var e=this;this._runOperation(function(t){return t.onBlur(e._terminal)})},t.prototype.onFocus=function(){var e=this;this._runOperation(function(t){return t.onFocus(e._terminal)})},t.prototype.onSelectionChanged=function(e,t,a){var i=this;void 0===a&&(a=!1),this._runOperation(function(r){return r.onSelectionChanged(i._terminal,e,t,a)})},t.prototype.onCursorMove=function(){var e=this;this._runOperation(function(t){return t.onCursorMove(e._terminal)})},t.prototype.onOptionsChanged=function(){var e=this;this.colorManager.allowTransparency=this._terminal.options.allowTransparency,this._runOperation(function(t){return t.onOptionsChanged(e._terminal)})},t.prototype.clear=function(){var e=this;this._runOperation(function(t){return t.reset(e._terminal)})},t.prototype._runOperation=function(e){this._isPaused?this._needsFullRefresh=!0:this._renderLayers.forEach(function(t){return e(t)})},t.prototype.refreshRows=function(e,t){this._isPaused?this._needsFullRefresh=!0:this._renderDebouncer.refresh(e,t)},t.prototype._renderRows=function(e,t){var a=this;this._renderLayers.forEach(function(i){return i.onGridChanged(a._terminal,e,t)}),this._terminal.emit("refresh",{start:e,end:t})},t.prototype._updateDimensions=function(){this._terminal.charMeasure.width&&this._terminal.charMeasure.height&&(this.dimensions.scaledCharWidth=Math.floor(this._terminal.charMeasure.width*window.devicePixelRatio),this.dimensions.scaledCharHeight=Math.ceil(this._terminal.charMeasure.height*window.devicePixelRatio),this.dimensions.scaledCellHeight=Math.floor(this.dimensions.scaledCharHeight*this._terminal.options.lineHeight),this.dimensions.scaledCharTop=1===this._terminal.options.lineHeight?0:Math.round((this.dimensions.scaledCellHeight-this.dimensions.scaledCharHeight)/2),this.dimensions.scaledCellWidth=this.dimensions.scaledCharWidth+Math.round(this._terminal.options.letterSpacing),this.dimensions.scaledCharLeft=Math.floor(this._terminal.options.letterSpacing/2),this.dimensions.scaledCanvasHeight=this._terminal.rows*this.dimensions.scaledCellHeight,this.dimensions.scaledCanvasWidth=this._terminal.cols*this.dimensions.scaledCellWidth,this.dimensions.canvasHeight=Math.round(this.dimensions.scaledCanvasHeight/window.devicePixelRatio),this.dimensions.canvasWidth=Math.round(this.dimensions.scaledCanvasWidth/window.devicePixelRatio),this.dimensions.actualCellHeight=this.dimensions.canvasHeight/this._terminal.rows,this.dimensions.actualCellWidth=this.dimensions.canvasWidth/this._terminal.cols)},t.prototype.registerCharacterJoiner=function(e){return this._characterJoinerRegistry.registerCharacterJoiner(e)},t.prototype.deregisterCharacterJoiner=function(e){return this._characterJoinerRegistry.deregisterCharacterJoiner(e)},t}(d.EventEmitter);t.Renderer=c},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(8),n=a(21),p=a(99),o=function(e){function t(t,a,i,r,n){var o=e.call(this,t,"text",a,n,i)||this;return o._characterOverlapCache={},o._state=new p.GridCache,o._characterJoinerRegistry=r,o}return i(t,e),t.prototype.resize=function(t,a){e.prototype.resize.call(this,t,a);var i=this._getFont(t,!1,!1);this._characterWidth===a.scaledCharWidth&&this._characterFont===i||(this._characterWidth=a.scaledCharWidth,this._characterFont=i,this._characterOverlapCache={}),this._state.clear(),this._state.resize(t.cols,t.rows)},t.prototype.reset=function(e){this._state.clear(),this.clearAll()},t.prototype._forEachCell=function(e,t,a,i,p){for(var o=t;o<=a;o++)for(var u=o+e.buffer.ydisp,d=e.buffer.lines.get(u),s=i?i.getJoinedCharacters(u):[],l=0;l0&&l===s[0][0]){_=!0;var y=s.shift();h=e.buffer.translateBufferLineToString(u,!0,y[0],y[1]),v=y[1]-y[0],c=1/0,A=y[1]-1}!_&&this._isOverlapping(m)&&A>18,E=511&f,g=f>>9&511;if(8&C){var w=E;E=g,256===(g=w)&&(g=n.INVERTED_DEFAULT_COLOR),257===E&&(E=n.INVERTED_DEFAULT_COLOR)}p(c,h,v,l,o,g,E,C),l=A}}},t.prototype._drawBackground=function(e,t,a){var i=this,r=this._ctx,p=e.cols,o=0,u=0,d=null;r.save(),this._forEachCell(e,t,a,null,function(e,t,a,s,l,m,c,h){var f=null;c===n.INVERTED_DEFAULT_COLOR?f=i._colors.foreground.css:c<256&&(f=i._colors.ansi[c].css),null===d&&(o=s,u=l),l!==u?(r.fillStyle=d,i.fillCells(o,u,p-o,1),o=s,u=l):d!==f&&(r.fillStyle=d,i.fillCells(o,u,s-o,1),o=s,u=l),d=f}),null!==d&&(r.fillStyle=d,this.fillCells(o,u,p-o,1)),r.restore()},t.prototype._drawForeground=function(e,t,a){var i=this;this._forEachCell(e,t,a,this._characterJoinerRegistry,function(t,a,r,p,o,u,d,s){16&s||(2&s&&(i._ctx.save(),u===n.INVERTED_DEFAULT_COLOR?i._ctx.fillStyle=i._colors.background.css:i._ctx.fillStyle=u<256?i._colors.ansi[u].css:i._colors.foreground.css,i.fillBottomLineAtCells(p,o,r),i._ctx.restore()),i.drawChars(e,a,t,r,p,o,u,d,!!(1&s),!!(32&s),!!(64&s)))})},t.prototype.onGridChanged=function(e,t,a){0!==this._state.cache.length&&(this._charAtlas&&this._charAtlas.beginFrame(),this.clearCells(0,t,e.cols,a-t+1),this._drawBackground(e,t,a),this._drawForeground(e,t,a))},t.prototype.onOptionsChanged=function(e){this.setTransparency(e,e.options.allowTransparency)},t.prototype._isOverlapping=function(e){if(1!==e[r.CHAR_DATA_WIDTH_INDEX])return!1;if(e[r.CHAR_DATA_CODE_INDEX]<256)return!1;var t=e[r.CHAR_DATA_CHAR_INDEX];if(this._characterOverlapCache.hasOwnProperty(t))return this._characterOverlapCache[t];this._ctx.save(),this._ctx.font=this._characterFont;var a=Math.floor(this._ctx.measureText(t).width)>this._characterWidth;return this._ctx.restore(),this._characterOverlapCache[t]=a,a},t}(a(22).BaseRenderLayer);t.TextRenderLayer=o},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this.cache=[]}return e.prototype.resize=function(e,t){for(var a=0;a=this.capacity)a=this._head,this._unlinkNode(a),delete this._map[a.key],a.key=e,a.value=t,this._map[e]=a;else{var i=this._nodePool;i.length>0?((a=i.pop()).key=e,a.value=t):a={prev:null,next:null,key:e,value:t},this._map[e]=a,this.size++}this._appendNode(a)},e}();t.default=i},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t,a){return e.call(this)||this}return i(t,e),t.prototype.draw=function(e,t,a,i){return!1},t}(a(31).default);t.default=r},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(21),n=a(41),p=a(40),o=function(e){function t(t,a){var i=e.call(this)||this;return i._document=t,i._config=a,i._canvasFactory=function(e,t){var a=i._document.createElement("canvas");return a.width=e,a.height=t,a},i}return i(t,e),t.prototype._doWarmUp=function(){var e=this,t=p.generateStaticCharAtlasTexture(window,this._canvasFactory,this._config);t instanceof HTMLCanvasElement?this._texture=t:t.then(function(t){e._texture=t})},t.prototype._isCached=function(e,t){var a=e.code<256,i=e.fg<16,r=e.fg>=256,n=e.bg>=256;return a&&(i||r)&&n&&!e.italic},t.prototype.draw=function(e,t,a,i){if(null==this._texture)return!1;var p=0;if(t.fg<256?p=2+t.fg+(t.bold?16:0):t.bold&&(p=1),!this._isCached(t,p))return!1;e.save();var o=this._config.scaledCharWidth+n.CHAR_ATLAS_CELL_SPACING,u=this._config.scaledCharHeight+n.CHAR_ATLAS_CELL_SPACING;return t.dim&&(e.globalAlpha=r.DIM_OPACITY),e.drawImage(this._texture,t.code*o,p*u,o,this._config.scaledCharHeight,a,i,o,this._config.scaledCharHeight),e.restore(),!0},t}(a(31).default);t.default=o},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t,a,i){var r=e.call(this,t,"selection",a,!0,i)||this;return r._clearState(),r}return i(t,e),t.prototype._clearState=function(){this._state={start:null,end:null,columnSelectMode:null,ydisp:null}},t.prototype.resize=function(t,a){e.prototype.resize.call(this,t,a),this._clearState()},t.prototype.reset=function(e){this._state.start&&this._state.end&&(this._clearState(),this.clearAll())},t.prototype.onSelectionChanged=function(e,t,a,i){if(this._didStateChange(t,a,i,e.buffer.ydisp)&&(this.clearAll(),t&&a)){var r=t[1]-e.buffer.ydisp,n=a[1]-e.buffer.ydisp,p=Math.max(r,0),o=Math.min(n,e.rows-1);if(!(p>=e.rows||o<0)){if(this._ctx.fillStyle=this._colors.selection.css,i){var u=t[0],d=a[0]-u,s=o-p+1;this.fillCells(u,p,d,s)}else{u=r===p?t[0]:0;var l=p===o?a[0]:e.cols;this.fillCells(u,p,l-u,1);var m=Math.max(o-p-1,0);if(this.fillCells(0,p+1,e.cols,m),p!==o){var c=n===o?a[0]:e.cols;this.fillCells(0,o,c,1)}}this._state.start=[t[0],t[1]],this._state.end=[a[0],a[1]],this._state.columnSelectMode=i,this._state.ydisp=e.buffer.ydisp}}},t.prototype._didStateChange=function(e,t,a,i){return!this._areCoordinatesEqual(e,this._state.start)||!this._areCoordinatesEqual(t,this._state.end)||a!==this._state.columnSelectMode||i!==this._state.ydisp},t.prototype._areCoordinatesEqual=function(e,t){return!(!e||!t)&&(e[0]===t[0]&&e[1]===t[1])},t}(a(22).BaseRenderLayer);t.SelectionRenderLayer=r},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(8),n=function(e){function t(t,a,i){var r=e.call(this,t,"cursor",a,!0,i)||this;return r._state={x:null,y:null,isFocused:null,style:null,width:null},r._cursorRenderers={bar:r._renderBarCursor.bind(r),block:r._renderBlockCursor.bind(r),underline:r._renderUnderlineCursor.bind(r)},r}return i(t,e),t.prototype.resize=function(t,a){e.prototype.resize.call(this,t,a),this._state={x:null,y:null,isFocused:null,style:null,width:null}},t.prototype.reset=function(e){this._clearCursor(),this._cursorBlinkStateManager&&(this._cursorBlinkStateManager.dispose(),this._cursorBlinkStateManager=null,this.onOptionsChanged(e))},t.prototype.onBlur=function(e){this._cursorBlinkStateManager&&this._cursorBlinkStateManager.pause(),e.refresh(e.buffer.y,e.buffer.y)},t.prototype.onFocus=function(e){this._cursorBlinkStateManager?this._cursorBlinkStateManager.resume(e):e.refresh(e.buffer.y,e.buffer.y)},t.prototype.onOptionsChanged=function(e){var t=this;e.options.cursorBlink?this._cursorBlinkStateManager||(this._cursorBlinkStateManager=new p(e,function(){t._render(e,!0)})):(this._cursorBlinkStateManager&&(this._cursorBlinkStateManager.dispose(),this._cursorBlinkStateManager=null),e.refresh(e.buffer.y,e.buffer.y))},t.prototype.onCursorMove=function(e){this._cursorBlinkStateManager&&this._cursorBlinkStateManager.restartBlinkAnimation(e)},t.prototype.onGridChanged=function(e,t,a){!this._cursorBlinkStateManager||this._cursorBlinkStateManager.isPaused?this._render(e,!1):this._cursorBlinkStateManager.restartBlinkAnimation(e)},t.prototype._render=function(e,t){if(e.cursorState&&!e.cursorHidden){var a=e.buffer.ybase+e.buffer.y,i=a-e.buffer.ydisp;if(i<0||i>=e.rows)this._clearCursor();else{var n=e.buffer.lines.get(a)[e.buffer.x];if(n){if(!e.isFocused)return this._clearCursor(),this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this._renderBlurCursor(e,e.buffer.x,i,n),this._ctx.restore(),this._state.x=e.buffer.x,this._state.y=i,this._state.isFocused=!1,this._state.style=e.options.cursorStyle,void(this._state.width=n[r.CHAR_DATA_WIDTH_INDEX]);if(!this._cursorBlinkStateManager||this._cursorBlinkStateManager.isCursorVisible){if(this._state){if(this._state.x===e.buffer.x&&this._state.y===i&&this._state.isFocused===e.isFocused&&this._state.style===e.options.cursorStyle&&this._state.width===n[r.CHAR_DATA_WIDTH_INDEX])return;this._clearCursor()}this._ctx.save(),this._cursorRenderers[e.options.cursorStyle||"block"](e,e.buffer.x,i,n),this._ctx.restore(),this._state.x=e.buffer.x,this._state.y=i,this._state.isFocused=!1,this._state.style=e.options.cursorStyle,this._state.width=n[r.CHAR_DATA_WIDTH_INDEX]}else this._clearCursor()}}}else this._clearCursor()},t.prototype._clearCursor=function(){this._state&&(this.clearCells(this._state.x,this._state.y,this._state.width,1),this._state={x:null,y:null,isFocused:null,style:null,width:null})},t.prototype._renderBarCursor=function(e,t,a,i){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this.fillLeftLineAtCell(t,a),this._ctx.restore()},t.prototype._renderBlockCursor=function(e,t,a,i){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this.fillCells(t,a,i[r.CHAR_DATA_WIDTH_INDEX],1),this._ctx.fillStyle=this._colors.cursorAccent.css,this.fillCharTrueColor(e,i,t,a),this._ctx.restore()},t.prototype._renderUnderlineCursor=function(e,t,a,i){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this.fillBottomLineAtCells(t,a),this._ctx.restore()},t.prototype._renderBlurCursor=function(e,t,a,i){this._ctx.save(),this._ctx.strokeStyle=this._colors.cursor.css,this.strokeRectAtCell(t,a,i[r.CHAR_DATA_WIDTH_INDEX],1),this._ctx.restore()},t}(a(22).BaseRenderLayer);t.CursorRenderLayer=n;var p=function(){function e(e,t){this._renderCallback=t,this.isCursorVisible=!0,e.isFocused&&this._restartInterval()}return Object.defineProperty(e.prototype,"isPaused",{get:function(){return!(this._blinkStartTimeout||this._blinkInterval)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._blinkInterval&&(window.clearInterval(this._blinkInterval),this._blinkInterval=null),this._blinkStartTimeout&&(window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=null),this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=null)},e.prototype.restartBlinkAnimation=function(e){var t=this;this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=window.requestAnimationFrame(function(){t._renderCallback(),t._animationFrame=null})))},e.prototype._restartInterval=function(e){var t=this;void 0===e&&(e=600),this._blinkInterval&&window.clearInterval(this._blinkInterval),this._blinkStartTimeout=setTimeout(function(){if(t._animationTimeRestarted){var e=600-(Date.now()-t._animationTimeRestarted);if(t._animationTimeRestarted=null,e>0)return void t._restartInterval(e)}t.isCursorVisible=!1,t._animationFrame=window.requestAnimationFrame(function(){t._renderCallback(),t._animationFrame=null}),t._blinkInterval=setInterval(function(){if(t._animationTimeRestarted){var e=600-(Date.now()-t._animationTimeRestarted);return t._animationTimeRestarted=null,void t._restartInterval(e)}t.isCursorVisible=!t.isCursorVisible,t._animationFrame=window.requestAnimationFrame(function(){t._renderCallback(),t._animationFrame=null})},600)},e)},e.prototype.pause=function(){this.isCursorVisible=!0,this._blinkInterval&&(window.clearInterval(this._blinkInterval),this._blinkInterval=null),this._blinkStartTimeout&&(window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=null),this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=null)},e.prototype.resume=function(e){this._animationTimeRestarted=null,this._restartInterval(),this.restartBlinkAnimation(e)},e}()},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){function t(t,a,i,r){var n=e.call(this,t,"link",a,!0,i)||this;return n._state=null,r.linkifier.on("linkhover",function(e){return n._onLinkHover(e)}),r.linkifier.on("linkleave",function(e){return n._onLinkLeave(e)}),n}return i(t,e),t.prototype.resize=function(t,a){e.prototype.resize.call(this,t,a),this._state=null},t.prototype.reset=function(e){this._clearCurrentLink()},t.prototype._clearCurrentLink=function(){if(this._state){this.clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);var e=this._state.y2-this._state.y1-1;e>0&&this.clearCells(0,this._state.y1+1,this._state.cols,e),this.clearCells(0,this._state.y2,this._state.x2,1),this._state=null}},t.prototype._onLinkHover=function(e){if(this._ctx.fillStyle=this._colors.foreground.css,e.y1===e.y2)this.fillBottomLineAtCells(e.x1,e.y1,e.x2-e.x1);else{this.fillBottomLineAtCells(e.x1,e.y1,e.cols-e.x1);for(var t=e.y1+1;t>9,d=0;d>9;if(0!==m){if(c!==u){if(d-n>1)for(var h=this._getJoinedRanges(r,o,p,t,n),f=0;f1)for(h=this._getJoinedRanges(r,o,p,t,n),f=0;f=0;t--)if(e.priority<=this._linkMatchers[t].priority)return void this._linkMatchers.splice(t+1,0,e);this._linkMatchers.splice(0,0,e)}else this._linkMatchers.push(e)},t.prototype.deregisterLinkMatcher=function(e){for(var t=0;t=this._terminal.buffer.lines.length)){if(this._terminal.buffer.lines.get(t).isWrapped){if(0!==e)return;var a=void 0;do{if(e--,t--,!(a=this._terminal.buffer.lines.get(t)))break}while(a.isWrapped)}for(var i=this._terminal.buffer.translateBufferLineToString(t,!1),r=t+1;r0&&this._doLinkifyRow(e,d,a,i+u)}},t.prototype._addLink=function(e,t,a,i){var n=this,p=e%this._terminal.cols,o=t+Math.floor(e/this._terminal.cols),u=(p+a.length)%this._terminal.cols,d=o+Math.floor((p+a.length)/this._terminal.cols);0===u&&(u=this._terminal.cols,d--),this._mouseZoneManager.add(new r.MouseZone(p+1,o+1,u+1,d+1,function(e){if(i.handler)return i.handler(e,a);window.open(a,"_blank")},function(e){n.emit("linkhover",n._createLinkHoverEvent(p,o,u,d)),n._terminal.element.classList.add("xterm-cursor-pointer")},function(e){n.emit("linktooltip",n._createLinkHoverEvent(p,o,u,d)),i.hoverTooltipCallback&&i.hoverTooltipCallback(e,a)},function(){n.emit("linkleave",n._createLinkHoverEvent(p,o,u,d)),n._terminal.element.classList.remove("xterm-cursor-pointer"),i.hoverLeaveCallback&&i.hoverLeaveCallback()},function(e){return!i.willLinkActivate||i.willLinkActivate(e,a)}))},t.prototype._createLinkHoverEvent=function(e,t,a,i){return{x1:e,y1:t,x2:a,y2:i,cols:this._terminal.cols}},t.TIME_BEFORE_LINKIFY=200,t}(a(9).EventEmitter);t.Linkifier=n},function(e,t,a){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])};return function(t,a){function i(){this.constructor=t}e(t,a),t.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}}();Object.defineProperty(t,"__esModule",{value:!0});var r=a(44),n=a(24),p=a(9),o=a(111),u=a(8),d=a(112),s=String.fromCharCode(160),l=new RegExp(s,"g"),m=function(e){function t(t,a){var i=e.call(this)||this;return i._terminal=t,i._charMeasure=a,i._enabled=!0,i._initListeners(),i.enable(),i._model=new o.SelectionModel(t),i._activeSelectionMode=0,i}return i(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._removeMouseDownListeners()},Object.defineProperty(t.prototype,"_buffer",{get:function(){return this._terminal.buffers.active},enumerable:!0,configurable:!0}),t.prototype._initListeners=function(){var e=this;this._mouseMoveListener=function(t){return e._onMouseMove(t)},this._mouseUpListener=function(t){return e._onMouseUp(t)},this._trimListener=function(t){return e._onTrim(t)},this.initBuffersListeners()},t.prototype.initBuffersListeners=function(){var e=this;this._terminal.buffer.lines.on("trim",this._trimListener),this._terminal.buffers.on("activate",function(t){return e._onBufferActivate(t)})},t.prototype.disable=function(){this.clearSelection(),this._enabled=!1},t.prototype.enable=function(){this._enabled=!0},Object.defineProperty(t.prototype,"selectionStart",{get:function(){return this._model.finalSelectionStart},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectionEnd",{get:function(){return this._model.finalSelectionEnd},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasSelection",{get:function(){var e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t)&&(e[0]!==t[0]||e[1]!==t[1])},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectionText",{get:function(){var e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return"";var a=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return"";for(var i=e[1];i<=t[1];i++){var r=this._buffer.translateBufferLineToString(i,!0,e[0],t[0]);a.push(r)}}else{var p=e[1]===t[1]?t[0]:null;a.push(this._buffer.translateBufferLineToString(e[1],!0,e[0],p));for(i=e[1]+1;i<=t[1]-1;i++){var o=this._buffer.lines.get(i);r=this._buffer.translateBufferLineToString(i,!0);o.isWrapped?a[a.length-1]+=r:a.push(r)}if(e[1]!==t[1]){o=this._buffer.lines.get(t[1]),r=this._buffer.translateBufferLineToString(t[1],!0,0,t[0]);o.isWrapped?a[a.length-1]+=r:a.push(r)}}return a.map(function(e){return e.replace(l," ")}).join(n.isMSWindows?"\r\n":"\n")},enumerable:!0,configurable:!0}),t.prototype.clearSelection=function(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh()},t.prototype.refresh=function(e){var t=this;(this._refreshAnimationFrame||(this._refreshAnimationFrame=window.requestAnimationFrame(function(){return t._refresh()})),n.isLinux&&e)&&(this.selectionText.length&&this.emit("newselection",this.selectionText))},t.prototype._refresh=function(){this._refreshAnimationFrame=null,this.emit("refresh",{start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})},t.prototype.isClickInSelection=function(e){var t=this._getMouseBufferCoords(e),a=this._model.finalSelectionStart,i=this._model.finalSelectionEnd;return!(!a||!i)&&(t[1]>a[1]&&t[1]a[0]&&t[0]=0&&t<=a?0:(t>a&&(t-=a),t=Math.min(Math.max(t,-50),50),(t/=50)/Math.abs(t)+Math.round(14*t))},t.prototype.shouldForceSelection=function(e){return n.isMac?e.altKey&&this._terminal.options.macOptionClickForcesSelection:e.shiftKey},t.prototype.onMouseDown=function(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._onIncrementalClick(e):1===e.detail?this._onSingleClick(e):2===e.detail?this._onDoubleClick(e):3===e.detail&&this._onTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}},t.prototype._addMouseDownListeners=function(){var e=this;this._terminal.element.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._terminal.element.ownerDocument.addEventListener("mouseup",this._mouseUpListener),this._dragScrollIntervalTimer=setInterval(function(){return e._dragScroll()},50)},t.prototype._removeMouseDownListeners=function(){this._terminal.element.ownerDocument&&(this._terminal.element.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._terminal.element.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=null},t.prototype._onIncrementalClick=function(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))},t.prototype._onSingleClick=function(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),this._model.selectionStart){this._model.selectionEnd=null;var t=this._buffer.lines.get(this._model.selectionStart[1]);if(t)if(!(t.length>=this._model.selectionStart[0]))0===t[this._model.selectionStart[0]][u.CHAR_DATA_WIDTH_INDEX]&&this._model.selectionStart[0]++}},t.prototype._onDoubleClick=function(e){var t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=1,this._selectWordAt(t,!0))},t.prototype._onTripleClick=function(e){var t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))},t.prototype.shouldColumnSelect=function(e){return e.altKey&&!(n.isMac&&this._terminal.options.macOptionClickForcesSelection)},t.prototype._onMouseMove=function(e){e.stopImmediatePropagation();var t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),this._model.selectionEnd){if(2===this._activeSelectionMode?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._terminal.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0)),this._model.selectionEnd[1]0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._terminal.cols),this._model.selectionEnd[1]=Math.min(this._terminal.buffer.ydisp+this._terminal.rows,this._terminal.buffer.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=this._terminal.buffer.ydisp),this.refresh())},t.prototype._onMouseUp=function(e){var t=e.timeStamp-this._mouseDownTimeStamp;this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500?new d.AltClickHandler(e,this._terminal).move():this.hasSelection&&this._terminal.emit("selection")},t.prototype._onBufferActivate=function(e){this.clearSelection(),e.inactiveBuffer.lines.off("trim",this._trimListener),e.activeBuffer.lines.on("trim",this._trimListener)},t.prototype._convertViewportColToCharacterIndex=function(e,t){for(var a=t[0],i=0;t[0]>=i;i++){var r=e[i];0===r[u.CHAR_DATA_WIDTH_INDEX]?a--:r[u.CHAR_DATA_CHAR_INDEX].length>1&&t[0]!==i&&(a+=r[u.CHAR_DATA_CHAR_INDEX].length-1)}return a},t.prototype.setSelection=function(e,t,a){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=a,this.refresh()},t.prototype._getWordAt=function(e,t,a,i){if(void 0===a&&(a=!0),void 0===i&&(i=!0),e[0]>=this._terminal.cols)return null;var r=this._buffer.lines.get(e[1]);if(!r)return null;var n=this._buffer.translateBufferLineToString(e[1],!1),p=this._convertViewportColToCharacterIndex(r,e),o=p,d=e[0]-p,s=0,l=0,m=0,c=0;if(" "===n.charAt(p)){for(;p>0&&" "===n.charAt(p-1);)p--;for(;o1&&(c+=r[f][u.CHAR_DATA_CHAR_INDEX].length-1,o+=r[f][u.CHAR_DATA_CHAR_INDEX].length-1);h>0&&p>0&&!this._isCharWordSeparator(r[h-1]);){0===(v=r[h-1])[u.CHAR_DATA_WIDTH_INDEX]?(s++,h--):v[u.CHAR_DATA_CHAR_INDEX].length>1&&(m+=v[u.CHAR_DATA_CHAR_INDEX].length-1,p-=v[u.CHAR_DATA_CHAR_INDEX].length-1),p--,h--}for(;f1&&(c+=v[u.CHAR_DATA_CHAR_INDEX].length-1,o+=v[u.CHAR_DATA_CHAR_INDEX].length-1),o++,f++}}o++;var _=p+d-s+m,A=Math.min(this._terminal.cols,o-p+s+l-m-c);if(!t&&""===n.slice(p,o).trim())return null;if(a&&0===_&&32!==r[0][u.CHAR_DATA_CODE_INDEX]){var y=this._buffer.lines.get(e[1]-1);if(y&&r.isWrapped&&32!==y[this._terminal.cols-1][u.CHAR_DATA_CODE_INDEX]){var C=this._getWordAt([this._terminal.cols-1,e[1]-1],!1,!0,!1);if(C){var E=this._terminal.cols-C.start;_-=E,A+=E}}}if(i&&_+A===this._terminal.cols&&32!==r[this._terminal.cols-1][u.CHAR_DATA_CODE_INDEX]){var g=this._buffer.lines.get(e[1]+1);if(g&&g.isWrapped&&32!==g[0][u.CHAR_DATA_CODE_INDEX]){var w=this._getWordAt([0,e[1]+1],!1,!1,!0);w&&(A+=w.length)}}return{start:_,length:A}},t.prototype._selectWordAt=function(e,t){var a=this._getWordAt(e,t);if(a){for(;a.start<0;)a.start+=this._terminal.cols,e[1]--;this._model.selectionStart=[a.start,e[1]],this._model.selectionStartLength=a.length}},t.prototype._selectToWordAt=function(e){var t=this._getWordAt(e,!0);if(t){for(var a=e[1];t.start<0;)t.start+=this._terminal.cols,a--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._terminal.cols;)t.length-=this._terminal.cols,a++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,a]}},t.prototype._isCharWordSeparator=function(e){return 0!==e[u.CHAR_DATA_WIDTH_INDEX]&&" ()[]{}'\"".indexOf(e[u.CHAR_DATA_CHAR_INDEX])>=0},t.prototype._selectLineAt=function(e){var t=this._buffer.getWrappedRangeForLine(e);this._model.selectionStart=[0,t.first],this._model.selectionEnd=[this._terminal.cols,t.last],this._model.selectionStartLength=0},t}(p.EventEmitter);t.SelectionManager=m},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e){this._terminal=e,this.clearSelection()}return e.prototype.clearSelection=function(){this.selectionStart=null,this.selectionEnd=null,this.isSelectAllActive=!1,this.selectionStartLength=0},Object.defineProperty(e.prototype,"finalSelectionStart",{get:function(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"finalSelectionEnd",{get:function(){if(this.isSelectAllActive)return[this._terminal.cols,this._terminal.buffer.ybase+this._terminal.rows-1];if(!this.selectionStart)return null;if(!this.selectionEnd||this.areSelectionValuesReversed()){var e=this.selectionStart[0]+this.selectionStartLength;return e>this._terminal.cols?[e%this._terminal.cols,this.selectionStart[1]+Math.floor(e/this._terminal.cols)]:[e,this.selectionStart[1]]}return this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]?[Math.max(this.selectionStart[0]+this.selectionStartLength,this.selectionEnd[0]),this.selectionEnd[1]]:this.selectionEnd},enumerable:!0,configurable:!0}),e.prototype.areSelectionValuesReversed=function(){var e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])},e.prototype.onTrim=function(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)},e}();t.SelectionModel=i},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(20),r=function(){function e(e,t){this._mouseEvent=e,this._terminal=t,this._lines=this._terminal.buffer.lines,this._startCol=this._terminal.buffer.x,this._startRow=this._terminal.buffer.y;var a,i=this._terminal.mouseHelper.getCoords(this._mouseEvent,this._terminal.element,this._terminal.charMeasure,this._terminal.options.lineHeight,this._terminal.cols,this._terminal.rows,!1);i&&(a=i.map(function(e){return e-1}),this._endCol=a[0],this._endRow=a[1])}return e.prototype.move=function(){this._mouseEvent.altKey&&void 0!==this._endCol&&void 0!==this._endRow&&this._terminal.handler(this._arrowSequences())},e.prototype._arrowSequences=function(){return this._terminal.buffer.hasScrollback?this._moveHorizontallyOnly():this._resetStartingRow()+this._moveToRequestedRow()+this._moveToRequestedCol()},e.prototype._resetStartingRow=function(){return 0===this._moveToRequestedRow().length?"":n(this._bufferLine(this._startCol,this._startRow,this._startCol,this._startRow-this._wrappedRowsForRow(this._startRow),!1).length,this._sequence("D"))},e.prototype._moveToRequestedRow=function(){var e=this._startRow-this._wrappedRowsForRow(this._startRow),t=this._endRow-this._wrappedRowsForRow(this._endRow);return n(Math.abs(e-t)-this._wrappedRowsCount(),this._sequence(this._verticalDirection()))},e.prototype._moveToRequestedCol=function(){var e;e=this._moveToRequestedRow().length>0?this._endRow-this._wrappedRowsForRow(this._endRow):this._startRow;var t=this._endRow,a=this._horizontalDirection();return n(this._bufferLine(this._startCol,e,this._endCol,t,"C"===a).length,this._sequence(a))},e.prototype._moveHorizontallyOnly=function(){var e=this._horizontalDirection();return n(Math.abs(this._startCol-this._endCol),this._sequence(e))},e.prototype._wrappedRowsCount=function(){for(var e=0,t=this._startRow-this._wrappedRowsForRow(this._startRow),a=this._endRow-this._wrappedRowsForRow(this._endRow),i=0;i=0&&e0?this._endRow-this._wrappedRowsForRow(this._endRow):this._startRow,this._startCol=this._endCol&&ethis._endRow?"A":"B"},e.prototype._bufferLine=function(e,t,a,i,r){for(var n=e,p=t,o="";n!==a||p!==i;)n+=r?1:-1,r&&n>this._terminal.cols-1?(o+=this._terminal.buffer.translateBufferLineToString(p,!1,e,n),n=0,e=0,p++):!r&&n<0&&(o+=this._terminal.buffer.translateBufferLineToString(p,!1,0,e+1),e=n=this._terminal.cols-1,p--);return o+this._terminal.buffer.translateBufferLineToString(p,!1,e,n)},e.prototype._sequence=function(e){var t=this._terminal.applicationCursor?"O":"[";return i.C0.ESC+t+e},e}();function n(e,t){e=Math.floor(e);for(var a="",i=0;ie;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()},t.prototype._createAccessibilityTreeNode=function(){var e=document.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e},t.prototype._onTab=function(e){for(var t=0;t0)this._charsToConsume.shift()!==e&&this._announceCharacter(e);else this._announceCharacter(e);"\n"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=r.tooMuchOutput)),n.isMac&&this._liveRegion.textContent&&this._liveRegion.textContent.length>0&&!this._liveRegion.parentNode&&setTimeout(function(){t._accessibilityTreeRoot.appendChild(t._liveRegion)},0)}},t.prototype._clearLiveRegion=function(){this._liveRegion.textContent="",this._liveRegionLineCount=0,n.isMac&&this._liveRegion.parentNode&&this._accessibilityTreeRoot.removeChild(this._liveRegion)},t.prototype._onKey=function(e){this._clearLiveRegion(),this._charsToConsume.push(e)},t.prototype._refreshRows=function(e,t){this._renderRowsDebouncer.refresh(e,t)},t.prototype._renderRows=function(e,t){for(var a=this._terminal.buffer,i=a.lines.length.toString(),n=e;n<=t;n++){var p=a.translateBufferLineToString(a.ydisp+n,!0),o=(a.ydisp+n+1).toString(),u=this._rowElements[n];u.textContent=0===p.length?r.blankLine:p,u.setAttribute("aria-posinset",o),u.setAttribute("aria-setsize",i)}},t.prototype._refreshRowsDimensions=function(){if(this._terminal.renderer.dimensions.actualCellHeight){this._rowElements.length!==this._terminal.rows&&this._onResize(this._terminal.rows);for(var e=0;et;)this._rowContainer.removeChild(this._rowElements.pop())},t.prototype.onResize=function(e,t){this._refreshRowElements(e,t),this._updateDimensions()},t.prototype.onCharSizeChanged=function(){this._updateDimensions()},t.prototype.onBlur=function(){this._rowContainer.classList.remove("xterm-focus")},t.prototype.onFocus=function(){this._rowContainer.classList.add("xterm-focus")},t.prototype.onSelectionChanged=function(e,t,a){for(;this._selectionContainer.children.length;)this._selectionContainer.removeChild(this._selectionContainer.children[0]);if(e&&t){var i=e[1]-this._terminal.buffer.ydisp,r=t[1]-this._terminal.buffer.ydisp,n=Math.max(i,0),p=Math.min(r,this._terminal.rows-1);if(!(n>=this._terminal.rows||p<0)){var o=document.createDocumentFragment();if(a)o.appendChild(this._createSelectionElement(n,e[0],t[0],p-n+1));else{var u=i===n?e[0]:0,d=n===p?t[0]:this._terminal.cols;o.appendChild(this._createSelectionElement(n,u,d));var s=p-n-1;if(o.appendChild(this._createSelectionElement(n+1,0,this._terminal.cols,s)),n!==p){var l=r===p?t[0]:this._terminal.cols;o.appendChild(this._createSelectionElement(p,0,l))}}this._selectionContainer.appendChild(o)}}},t.prototype._createSelectionElement=function(e,t,a,i){void 0===i&&(i=1);var r=document.createElement("div");return r.style.height=i*this._terminal.charMeasure.height+"px",r.style.top=e*this._terminal.charMeasure.height+"px",r.style.left=t*this._terminal.charMeasure.width+"px",r.style.width=this._terminal.charMeasure.width*(a-t)+"px",r},t.prototype.onCursorMove=function(){},t.prototype.onOptionsChanged=function(){this._updateDimensions(),this.setTheme(void 0),this._terminal.refresh(0,this._terminal.rows-1)},t.prototype.clear=function(){this._rowElements.forEach(function(e){return e.innerHTML=""})},t.prototype.refreshRows=function(e,t){this._renderDebouncer.refresh(e,t)},t.prototype._renderRows=function(e,t){for(var a=this._terminal,i=a.buffer.ybase+a.buffer.y,r=this._terminal.buffer.x,n=e;n<=t;n++){var p=this._rowElements[n];p.innerHTML="";var o=n+a.buffer.ydisp,u=a.buffer.lines.get(o);p.appendChild(this._rowFactory.createRow(u,o===i,r,a.charMeasure.width,a.cols))}this._terminal.emit("refresh",{start:e,end:t})},Object.defineProperty(t.prototype,"_terminalSelector",{get:function(){return"."+u+this._terminalClass},enumerable:!0,configurable:!0}),t.prototype.registerCharacterJoiner=function(e){return-1},t.prototype.deregisterCharacterJoiner=function(e){return!1},t}(r.EventEmitter);t.DomRenderer=m},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(8);t.BOLD_CLASS="xterm-bold",t.ITALIC_CLASS="xterm-italic",t.CURSOR_CLASS="xterm-cursor";var r=function(){function e(e){this._document=e}return e.prototype.createRow=function(e,a,r,n,p){for(var o=this._document.createDocumentFragment(),u=0,d=0;d=p)){var s=e[d],l=s[i.CHAR_DATA_CHAR_INDEX],m=s[i.CHAR_DATA_ATTR_INDEX],c=s[i.CHAR_DATA_WIDTH_INDEX];if(0!==c){var h=this._document.createElement("span");c>1&&(h.style.width=n*c+"px");var f=m>>18,v=511&m,_=m>>9&511;if(a&&d===r&&h.classList.add(t.CURSOR_CLASS),8&f){var A=v;v=_,256===(_=A)&&(_=0),257===v&&(v=15)}1&f&&(_<8&&(_+=8),h.classList.add(t.BOLD_CLASS)),64&f&&h.classList.add(t.ITALIC_CLASS),h.textContent=l,257!==_&&h.classList.add("xterm-fg-"+_),256!==v&&h.classList.add("xterm-bg-"+v),o.appendChild(h),u+=c}}return o},e}();t.DomRendererRowFactory=r},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(20),r={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};t.evaluateKeyboardEvent=function(e,t,a,n){var p={type:0,cancel:!1,key:void 0},o=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:"UIKeyInputUpArrow"===e.key?p.key=t?i.C0.ESC+"OA":i.C0.ESC+"[A":"UIKeyInputLeftArrow"===e.key?p.key=t?i.C0.ESC+"OD":i.C0.ESC+"[D":"UIKeyInputRightArrow"===e.key?p.key=t?i.C0.ESC+"OC":i.C0.ESC+"[C":"UIKeyInputDownArrow"===e.key&&(p.key=t?i.C0.ESC+"OB":i.C0.ESC+"[B");break;case 8:if(e.shiftKey){p.key=i.C0.BS;break}if(e.altKey){p.key=i.C0.ESC+i.C0.DEL;break}p.key=i.C0.DEL;break;case 9:if(e.shiftKey){p.key=i.C0.ESC+"[Z";break}p.key=i.C0.HT,p.cancel=!0;break;case 13:p.key=i.C0.CR,p.cancel=!0;break;case 27:p.key=i.C0.ESC,p.cancel=!0;break;case 37:o?(p.key=i.C0.ESC+"[1;"+(o+1)+"D",p.key===i.C0.ESC+"[1;3D"&&(p.key=a?i.C0.ESC+"b":i.C0.ESC+"[1;5D")):p.key=t?i.C0.ESC+"OD":i.C0.ESC+"[D";break;case 39:o?(p.key=i.C0.ESC+"[1;"+(o+1)+"C",p.key===i.C0.ESC+"[1;3C"&&(p.key=a?i.C0.ESC+"f":i.C0.ESC+"[1;5C")):p.key=t?i.C0.ESC+"OC":i.C0.ESC+"[C";break;case 38:o?(p.key=i.C0.ESC+"[1;"+(o+1)+"A",p.key===i.C0.ESC+"[1;3A"&&(p.key=i.C0.ESC+"[1;5A")):p.key=t?i.C0.ESC+"OA":i.C0.ESC+"[A";break;case 40:o?(p.key=i.C0.ESC+"[1;"+(o+1)+"B",p.key===i.C0.ESC+"[1;3B"&&(p.key=i.C0.ESC+"[1;5B")):p.key=t?i.C0.ESC+"OB":i.C0.ESC+"[B";break;case 45:e.shiftKey||e.ctrlKey||(p.key=i.C0.ESC+"[2~");break;case 46:p.key=o?i.C0.ESC+"[3;"+(o+1)+"~":i.C0.ESC+"[3~";break;case 36:p.key=o?i.C0.ESC+"[1;"+(o+1)+"H":t?i.C0.ESC+"OH":i.C0.ESC+"[H";break;case 35:p.key=o?i.C0.ESC+"[1;"+(o+1)+"F":t?i.C0.ESC+"OF":i.C0.ESC+"[F";break;case 33:e.shiftKey?p.type=2:p.key=i.C0.ESC+"[5~";break;case 34:e.shiftKey?p.type=3:p.key=i.C0.ESC+"[6~";break;case 112:p.key=o?i.C0.ESC+"[1;"+(o+1)+"P":i.C0.ESC+"OP";break;case 113:p.key=o?i.C0.ESC+"[1;"+(o+1)+"Q":i.C0.ESC+"OQ";break;case 114:p.key=o?i.C0.ESC+"[1;"+(o+1)+"R":i.C0.ESC+"OR";break;case 115:p.key=o?i.C0.ESC+"[1;"+(o+1)+"S":i.C0.ESC+"OS";break;case 116:p.key=o?i.C0.ESC+"[15;"+(o+1)+"~":i.C0.ESC+"[15~";break;case 117:p.key=o?i.C0.ESC+"[17;"+(o+1)+"~":i.C0.ESC+"[17~";break;case 118:p.key=o?i.C0.ESC+"[18;"+(o+1)+"~":i.C0.ESC+"[18~";break;case 119:p.key=o?i.C0.ESC+"[19;"+(o+1)+"~":i.C0.ESC+"[19~";break;case 120:p.key=o?i.C0.ESC+"[20;"+(o+1)+"~":i.C0.ESC+"[20~";break;case 121:p.key=o?i.C0.ESC+"[21;"+(o+1)+"~":i.C0.ESC+"[21~";break;case 122:p.key=o?i.C0.ESC+"[23;"+(o+1)+"~":i.C0.ESC+"[23~";break;case 123:p.key=o?i.C0.ESC+"[24;"+(o+1)+"~":i.C0.ESC+"[24~";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(a&&!n||!e.altKey||e.metaKey)a&&!e.altKey&&!e.ctrlKey&&e.metaKey&&65===e.keyCode&&(p.type=1);else{var u=r[e.keyCode],d=u&&u[e.shiftKey?1:0];if(d)p.key=i.C0.ESC+d;else if(e.keyCode>=65&&e.keyCode<=90){var s=e.ctrlKey?e.keyCode-64:e.keyCode+32;p.key=i.C0.ESC+String.fromCharCode(s)}}else e.keyCode>=65&&e.keyCode<=90?p.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?p.key=String.fromCharCode(0):e.keyCode>=51&&e.keyCode<=55?p.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?p.key=String.fromCharCode(127):219===e.keyCode?p.key=String.fromCharCode(27):220===e.keyCode?p.key=String.fromCharCode(28):221===e.keyCode&&(p.key=String.fromCharCode(29))}return p}},function(e,t,a){"use strict";function i(e){if(!e.element.parentElement)return null;var t=window.getComputedStyle(e.element.parentElement),a=parseInt(t.getPropertyValue("height")),i=Math.max(0,parseInt(t.getPropertyValue("width"))),r=window.getComputedStyle(e.element),n=a-(parseInt(r.getPropertyValue("padding-top"))+parseInt(r.getPropertyValue("padding-bottom"))),p=i-(parseInt(r.getPropertyValue("padding-right"))+parseInt(r.getPropertyValue("padding-left")))-e._core.viewport.scrollBarWidth;return{cols:Math.floor(p/e._core.renderer.dimensions.actualCellWidth),rows:Math.floor(n/e._core.renderer.dimensions.actualCellHeight)}}function r(e){var t=i(e);t&&(e.rows===t.rows&&e.cols===t.cols||(e._core.renderer.clear(),e.resize(t.cols,t.rows)))}Object.defineProperty(t,"__esModule",{value:!0}),t.proposeGeometry=i,t.fit=r,t.apply=function(e){e.prototype.proposeGeometry=function(){return i(this)},e.prototype.fit=function(){r(this)}}},function(e,t,a){"use strict";const i=a(122),r=a(123);e.exports=(e=>{const t=`(?:${`(?:(?:[a-z]+:)?//)${(e=Object.assign({strict:!0},e)).strict?"":"?"}`}|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${i.v4().source}|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*${`(?:\\.${e.strict?"(?:[a-z\\u00a1-\\uffff]{2,})":`(?:${r.sort((e,t)=>t.length-e.length).join("|")})`})\\.?`})(?::\\d{2,5})?(?:[/?#][^\\s"]*)?`;return e.exact?new RegExp(`(?:^${t}$)`,"i"):new RegExp(t,"ig")})},function(e,t,a){"use strict";var i="(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}",r="(?:(?:[0-9a-fA-F:]){1,4}(?:(?::(?:[0-9a-fA-F]){1,4}|:)){2,7})+",n=e.exports=function(e){return(e=e||{}).exact?new RegExp("(?:^"+i+"$)|(?:^"+r+"$)"):new RegExp("(?:"+i+")|(?:"+r+")","g")};n.v4=function(e){return(e=e||{}).exact?new RegExp("^"+i+"$"):new RegExp(i,"g")},n.v6=function(e){return(e=e||{}).exact?new RegExp("^"+r+"$"):new RegExp(r,"g")}},function(e,t){e.exports=["aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","active","actor","ad","adac","ads","adult","ae","aeg","aero","aetna","af","afamilycompany","afl","africa","ag","agakhan","agency","ai","aig","aigo","airbus","airforce","airtel","akdn","al","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blanco","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnl","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","budapest","bugatti","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","cartier","casa","case","caseih","cash","casino","cat","catering","catholic","cba","cbn","cbre","cbs","cc","cd","ceb","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","chase","chat","cheap","chintai","christmas","chrome","chrysler","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","coop","corsica","country","coupon","coupons","courses","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dodge","dog","doha","domains","dot","download","drive","dtv","dubai","duck","dunlop","duns","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epost","epson","equipment","er","ericsson","erni","es","esq","estate","esurance","et","etisalat","eu","eurovision","eus","events","everbank","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glade","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodhands","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","guardian","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","honeywell","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","industries","infiniti","info","ing","ink","institute","insurance","insure","int","intel","international","intuit","investments","io","ipiranga","iq","ir","irish","is","iselect","ismaili","ist","istanbul","it","itau","itv","iveco","iwc","jaguar","java","jcb","jcp","je","jeep","jetzt","jewelry","jio","jlc","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerrylogistics","kerryproperties","kfh","kg","kh","ki","kia","kim","kinder","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","ladbrokes","lamborghini","lamer","lancaster","lancia","lancome","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","liaison","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","lixil","lk","llc","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","lupin","luxe","luxury","lv","ly","ma","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","meo","merckmsd","metlife","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","mobily","moda","moe","moi","mom","monash","money","monster","mopar","mormon","mortgage","moscow","moto","motorcycles","mov","movie","movistar","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","mutual","mv","mw","mx","my","mz","na","nab","nadex","nagoya","name","nationwide","natura","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","newholland","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","northwesternmutual","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","off","office","okinawa","olayan","olayangroup","oldnavy","ollo","om","omega","one","ong","onl","online","onyourside","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","panerai","paris","pars","partners","parts","party","passagens","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","piaget","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","pramerica","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","qvc","racing","radio","raid","re","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","rightathome","ril","rio","rip","rmit","ro","rocher","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sapo","sarl","sas","save","saxo","sb","sbi","sbs","sc","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scjohnson","scor","scot","sd","se","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","shriram","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","space","spiegel","sport","spot","spreadbetting","sr","srl","srt","st","stada","staples","star","starhub","statebank","statefarm","statoil","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiftcover","swiss","sx","sy","sydney","symantec","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","telecity","telefonica","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","uconnect","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","vista","vistaprint","viva","vivo","vlaanderen","vn","vodka","volkswagen","volvo","vote","voting","voto","voyage","vu","vuelos","wales","walmart","walter","wang","wanggou","warman","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","ಭಾರತ","慈善","集团","在线","한국","ଭାରତ","大众汽车","点看","คอม","ভাৰত","ভারত","八卦","موقع","বাংলা","公益","公司","香格里拉","网站","移动","我爱你","москва","қаз","католик","онлайн","сайт","联通","срб","бг","бел","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","삼성","சிங்கப்பூர்","商标","商店","商城","дети","мкд","ею","ポイント","新闻","工行","家電","كوم","中文网","中信","中国","中國","娱乐","谷歌","భారత్","ලංකා","電訊盈科","购物","クラウド","ભારત","通販","भारतम्","भारत","भारोत","网店","संगठन","餐厅","网络","ком","укр","香港","诺基亚","食品","飞利浦","台湾","台灣","手表","手机","мон","الجزائر","عمان","ارامكو","ایران","العليان","اتصالات","امارات","بازار","پاکستان","الاردن","موبايلي","بارت","بھارت","المغرب","ابوظبي","السعودية","ڀارت","كاثوليك","سودان","همراه","عراق","مليسيا","澳門","닷컴","政府","شبكة","بيتك","عرب","გე","机构","组织机构","健康","ไทย","سورية","招聘","рус","рф","珠宝","تونس","大拿","みんな","グーグル","ελ","世界","書籍","ഭാരതം","ਭਾਰਤ","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","مصر","قطر","广东","இலங்கை","இந்தியா","հայ","新加坡","فلسطين","政务","xperia","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zippo","zm","zone","zuerich","zw"]},function(e,t){e.exports=require("electron")},function(e,t,a){var i=a(47),r=a(126),n=process.cwd,p=null,o=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return p||(p=n.call(process)),p};try{process.cwd()}catch(e){}var u=process.chdir;function d(e){return e?function(t,a,r){return e.call(i,t,a,function(e){f(e)&&(e=null),r&&r.apply(this,arguments)})}:e}function s(e){return e?function(t,a){try{return e.call(i,t,a)}catch(e){if(!f(e))throw e}}:e}function l(e){return e?function(t,a,r,n){return e.call(i,t,a,r,function(e){f(e)&&(e=null),n&&n.apply(this,arguments)})}:e}function m(e){return e?function(t,a,r){try{return e.call(i,t,a,r)}catch(e){if(!f(e))throw e}}:e}function c(e){return e?function(t,a){return e.call(i,t,function(e,t){if(!t)return a.apply(this,arguments);t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296),a&&a.apply(this,arguments)})}:e}function h(e){return e?function(t){var a=e.call(i,t);return a.uid<0&&(a.uid+=4294967296),a.gid<0&&(a.gid+=4294967296),a}:e}function f(e){return!e||("ENOSYS"===e.code||!(process.getuid&&0===process.getuid()||"EINVAL"!==e.code&&"EPERM"!==e.code))}process.chdir=function(e){p=null,u.call(process,e)},e.exports=function(e){r.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&function(e){e.lchmod=function(t,a,i){e.open(t,r.O_WRONLY|r.O_SYMLINK,a,function(t,r){t?i&&i(t):e.fchmod(r,a,function(t){e.close(r,function(e){i&&i(t||e)})})})},e.lchmodSync=function(t,a){var i,n=e.openSync(t,r.O_WRONLY|r.O_SYMLINK,a),p=!0;try{i=e.fchmodSync(n,a),p=!1}finally{if(p)try{e.closeSync(n)}catch(e){}else e.closeSync(n)}return i}}(e);e.lutimes||function(e){r.hasOwnProperty("O_SYMLINK")?(e.lutimes=function(t,a,i,n){e.open(t,r.O_SYMLINK,function(t,r){t?n&&n(t):e.futimes(r,a,i,function(t){e.close(r,function(e){n&&n(t||e)})})})},e.lutimesSync=function(t,a,i){var n,p=e.openSync(t,r.O_SYMLINK),o=!0;try{n=e.futimesSync(p,a,i),o=!1}finally{if(o)try{e.closeSync(p)}catch(e){}else e.closeSync(p)}return n}):(e.lutimes=function(e,t,a,i){i&&process.nextTick(i)},e.lutimesSync=function(){})}(e);e.chown=l(e.chown),e.fchown=l(e.fchown),e.lchown=l(e.lchown),e.chmod=d(e.chmod),e.fchmod=d(e.fchmod),e.lchmod=d(e.lchmod),e.chownSync=m(e.chownSync),e.fchownSync=m(e.fchownSync),e.lchownSync=m(e.lchownSync),e.chmodSync=s(e.chmodSync),e.fchmodSync=s(e.fchmodSync),e.lchmodSync=s(e.lchmodSync),e.stat=c(e.stat),e.fstat=c(e.fstat),e.lstat=c(e.lstat),e.statSync=h(e.statSync),e.fstatSync=h(e.fstatSync),e.lstatSync=h(e.lstatSync),e.lchmod||(e.lchmod=function(e,t,a){a&&process.nextTick(a)},e.lchmodSync=function(){});e.lchown||(e.lchown=function(e,t,a,i){i&&process.nextTick(i)},e.lchownSync=function(){});"win32"===o&&(e.rename=function(t){return function(a,i,r){var n=Date.now(),p=0;t(a,i,function o(u){if(u&&("EACCES"===u.code||"EPERM"===u.code)&&Date.now()-n<6e4)return setTimeout(function(){e.stat(i,function(e,n){e&&"ENOENT"===e.code?t(a,i,o):r(u)})},p),void(p<100&&(p+=10));r&&r(u)})}}(e.rename));e.read=function(t){return function(a,i,r,n,p,o){var u;if(o&&"function"==typeof o){var d=0;u=function(s,l,m){if(s&&"EAGAIN"===s.code&&d<10)return d++,t.call(e,a,i,r,n,p,u);o.apply(this,arguments)}}return t.call(e,a,i,r,n,p,u)}}(e.read),e.readSync=function(t){return function(a,i,r,n,p){for(var o=0;;)try{return t.call(e,a,i,r,n,p)}catch(e){if("EAGAIN"===e.code&&o<10){o++;continue}throw e}}}(e.readSync)}},function(e,t){e.exports=require("constants")},function(e,t,a){var i=a(128).Stream;e.exports=function(e){return{ReadStream:function t(a,r){if(!(this instanceof t))return new t(a,r);i.call(this);var n=this;this.path=a;this.fd=null;this.readable=!0;this.paused=!1;this.flags="r";this.mode=438;this.bufferSize=65536;r=r||{};var p=Object.keys(r);for(var o=0,u=p.length;othis.end)throw new Error("start must be <= end");this.pos=this.start}if(null!==this.fd)return void process.nextTick(function(){n._read()});e.open(this.path,this.flags,this.mode,function(e,t){if(e)return n.emit("error",e),void(n.readable=!1);n.fd=t,n.emit("open",t),n._read()})},WriteStream:function t(a,r){if(!(this instanceof t))return new t(a,r);i.call(this);this.path=a;this.fd=null;this.writable=!0;this.flags="w";this.encoding="binary";this.mode=438;this.bytesWritten=0;r=r||{};var n=Object.keys(r);for(var p=0,o=n.length;p= zero");this.pos=this.start}this.busy=!1;this._queue=[];null===this.fd&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}}},function(e,t){e.exports=require("stream")},function(e,t){e.exports=require("util")},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(6).mkdirsSync,p=a(51).utimesMillisSync,o=Symbol("notExist");function u(e,t,a,n){if(!n.filter||n.filter(t,a))return function(e,t,a,n){const p=(n.dereference?i.statSync:i.lstatSync)(t);if(p.isDirectory())return function(e,t,a,r,n){if(t===o)return function(e,t,a,r){return i.mkdirSync(a),s(t,a,r),i.chmodSync(a,e.mode)}(e,a,r,n);if(t&&!t.isDirectory())throw new Error(`Cannot overwrite non-directory '${r}' with directory '${a}'.`);return s(a,r,n)}(p,e,t,a,n);if(p.isFile()||p.isCharacterDevice()||p.isBlockDevice())return function(e,t,a,r,n){return t===o?d(e,a,r,n):function(e,t,a,r){if(r.overwrite)return i.unlinkSync(a),d(e,t,a,r);if(r.errorOnExist)throw new Error(`'${a}' already exists`)}(e,a,r,n)}(p,e,t,a,n);if(p.isSymbolicLink())return function(e,t,a,n){let p=i.readlinkSync(t);n.dereference&&(p=r.resolve(process.cwd(),p));if(e===o)return i.symlinkSync(p,a);{let e;try{e=i.readlinkSync(a)}catch(e){if("EINVAL"===e.code||"UNKNOWN"===e.code)return i.symlinkSync(p,a);throw e}if(n.dereference&&(e=r.resolve(process.cwd(),e)),l(p,e))throw new Error(`Cannot copy '${p}' to a subdirectory of itself, '${e}'.`);if(i.statSync(a).isDirectory()&&l(e,p))throw new Error(`Cannot overwrite '${e}' with '${p}'.`);return function(e,t){return i.unlinkSync(t),i.symlinkSync(e,t)}(p,a)}}(e,t,a,n)}(e,t,a,n)}function d(e,t,r,n){return"function"==typeof i.copyFileSync?(i.copyFileSync(t,r),i.chmodSync(r,e.mode),n.preserveTimestamps?p(r,e.atime,e.mtime):void 0):function(e,t,r,n){const p=a(52)(65536),o=i.openSync(t,"r"),u=i.openSync(r,"w",e.mode);let d=0;for(;d(function(e,t,a,i){const n=r.join(t,e),p=r.join(a,e);return u(m(n,p),n,p,i)})(i,e,t,a))}function l(e,t){const a=r.resolve(e).split(r.sep),i=r.resolve(t).split(r.sep);return a.reduce((e,t,a)=>e&&i[a]===t,!0)}function m(e,t){const{srcStat:a,destStat:r}=function(e,t){const a=i.statSync(e);let r;try{r=i.statSync(t)}catch(e){if("ENOENT"===e.code)return{srcStat:a,destStat:o};throw e}return{srcStat:a,destStat:r}}(e,t);if(r.ino&&r.ino===a.ino)throw new Error("Source and destination must not be the same.");if(a.isDirectory()&&l(e,t))throw new Error(`Cannot copy '${e}' to a subdirectory of itself, '${t}'.`);return r}e.exports=function(e,t,a){"function"==typeof a&&(a={filter:a}),(a=a||{}).clobber=!("clobber"in a&&!a.clobber),a.overwrite="overwrite"in a?!!a.overwrite:a.clobber,a.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269");const p=m(e,t);if(a.filter&&!a.filter(e,t))return;const o=r.dirname(t);return i.existsSync(o)||n(o),u(p,e,t,a)}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(50).invalidWin32Path,p=parseInt("0777",8);e.exports=function e(t,a,o,u){if("function"==typeof a?(o=a,a={}):a&&"object"==typeof a||(a={mode:a}),"win32"===process.platform&&n(t)){const e=new Error(t+" contains invalid WIN32 path characters.");return e.code="EINVAL",o(e)}let d=a.mode;const s=a.fs||i;void 0===d&&(d=p&~process.umask()),u||(u=null),o=o||function(){},t=r.resolve(t),s.mkdir(t,d,i=>{if(!i)return o(null,u=u||t);switch(i.code){case"ENOENT":if(r.dirname(t)===t)return o(i);e(r.dirname(t),a,(i,r)=>{i?o(i,r):e(t,a,o,r)});break;default:s.stat(t,(e,t)=>{e||!t.isDirectory()?o(i,u):o(null,u)})}})}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(50).invalidWin32Path,p=parseInt("0777",8);e.exports=function e(t,a,o){a&&"object"==typeof a||(a={mode:a});let u=a.mode;const d=a.fs||i;if("win32"===process.platform&&n(t)){const e=new Error(t+" contains invalid WIN32 path characters.");throw e.code="EINVAL",e}void 0===u&&(u=p&~process.umask()),o||(o=null),t=r.resolve(t);try{d.mkdirSync(t,u),o=o||t}catch(i){if("ENOENT"===i.code){if(r.dirname(t)===t)throw i;e(t,a,o=e(r.dirname(t),a,o))}else{let e;try{e=d.statSync(t)}catch(e){throw i}if(!e.isDirectory())throw i}}return o}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(6).mkdirs,p=a(10).pathExists,o=a(51).utimesMillis,u=Symbol("notExist");function d(e,t,a,i,o){const u=r.dirname(a);p(u,(r,p)=>r?o(r):p?l(e,t,a,i,o):void n(u,r=>r?o(r):l(e,t,a,i,o)))}function s(e,t,a,i,r,n){Promise.resolve(r.filter(a,i)).then(p=>p?t?e(t,a,i,r,n):e(a,i,r,n):n(),e=>n(e))}function l(e,t,a,i,r){return i.filter?s(m,e,t,a,i,r):m(e,t,a,i,r)}function m(e,t,a,n,p){(n.dereference?i.stat:i.lstat)(t,(o,d)=>o?p(o):d.isDirectory()?function(e,t,a,r,n,p){if(t===u)return function(e,t,a,r,n){i.mkdir(a,p=>{if(p)return n(p);f(t,a,r,t=>t?n(t):i.chmod(a,e.mode,n))})}(e,a,r,n,p);if(t&&!t.isDirectory())return p(new Error(`Cannot overwrite non-directory '${r}' with directory '${a}'.`));return f(a,r,n,p)}(d,e,t,a,n,p):d.isFile()||d.isCharacterDevice()||d.isBlockDevice()?function(e,t,a,r,n,p){return t===u?c(e,a,r,n,p):function(e,t,a,r,n){if(!r.overwrite)return r.errorOnExist?n(new Error(`'${a}' already exists`)):n();i.unlink(a,i=>i?n(i):c(e,t,a,r,n))}(e,a,r,n,p)}(d,e,t,a,n,p):d.isSymbolicLink()?function(e,t,a,n,p){i.readlink(t,(t,o)=>t?p(t):(n.dereference&&(o=r.resolve(process.cwd(),o)),e===u?i.symlink(o,a,p):void i.readlink(a,(t,u)=>t?"EINVAL"===t.code||"UNKNOWN"===t.code?i.symlink(o,a,p):p(t):(n.dereference&&(u=r.resolve(process.cwd(),u)),_(o,u)?p(new Error(`Cannot copy '${o}' to a subdirectory of itself, '${u}'.`)):e.isDirectory()&&_(u,o)?p(new Error(`Cannot overwrite '${u}' with '${o}'.`)):function(e,t,a){i.unlink(t,r=>r?a(r):i.symlink(e,t,a))}(o,a,p)))))}(e,t,a,n,p):void 0)}function c(e,t,a,r,n){return"function"==typeof i.copyFile?i.copyFile(t,a,t=>t?n(t):h(e,a,r,n)):function(e,t,a,r,n){const p=i.createReadStream(t);p.on("error",e=>n(e)).once("open",()=>{const t=i.createWriteStream(a,{mode:e.mode});t.on("error",e=>n(e)).on("open",()=>p.pipe(t)).once("close",()=>h(e,a,r,n))})}(e,t,a,r,n)}function h(e,t,a,r){i.chmod(t,e.mode,i=>i?r(i):a.preserveTimestamps?o(t,e.atime,e.mtime,r):r())}function f(e,t,a,r){i.readdir(e,(i,n)=>i?r(i):v(n,e,t,a,r))}function v(e,t,a,i,n){const p=e.pop();return p?function(e,t,a,i,n,p){const o=r.join(a,t),u=r.join(i,t);A(o,u,(t,r)=>{if(t)return p(t);l(r,o,u,n,t=>t?p(t):v(e,a,i,n,p))})}(e,p,t,a,i,n):n()}function _(e,t){const a=r.resolve(e).split(r.sep),i=r.resolve(t).split(r.sep);return a.reduce((e,t,a)=>e&&i[a]===t,!0)}function A(e,t,a){!function(e,t,a){i.stat(e,(e,r)=>{if(e)return a(e);i.stat(t,(e,t)=>e?"ENOENT"===e.code?a(null,{srcStat:r,destStat:u}):a(e):a(null,{srcStat:r,destStat:t}))})}(e,t,(i,r)=>{if(i)return a(i);const{srcStat:n,destStat:p}=r;return p.ino&&p.ino===n.ino?a(new Error("Source and destination must not be the same.")):n.isDirectory()&&_(e,t)?a(new Error(`Cannot copy '${e}' to a subdirectory of itself, '${t}'.`)):a(null,p)})}e.exports=function(e,t,a,i){"function"!=typeof a||i?"function"==typeof a&&(a={filter:a}):(i=a,a={}),i=i||function(){},(a=a||{}).clobber=!("clobber"in a&&!a.clobber),a.overwrite="overwrite"in a?!!a.overwrite:a.clobber,a.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269"),A(e,t,(r,n)=>r?i(r):a.filter?s(d,n,e,t,a,i):d(n,e,t,a,i))}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(18),n=a(0),p=a(6),o=a(25),u=i(function(e,t){t=t||function(){},r.readdir(e,(a,i)=>{if(a)return p.mkdirs(e,t);i=i.map(t=>n.join(e,t)),function e(){const a=i.pop();if(!a)return t();o.remove(a,a=>{if(a)return t(a);e()})}()})});function d(e){let t;try{t=r.readdirSync(e)}catch(t){return p.mkdirsSync(e)}t.forEach(t=>{t=n.join(e,t),o.removeSync(t)})}e.exports={emptyDirSync:d,emptydirSync:d,emptyDir:u,emptydir:u}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(48),p="win32"===process.platform;function o(e){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach(t=>{e[t]=e[t]||i[t],e[t+="Sync"]=e[t]||i[t]}),e.maxBusyTries=e.maxBusyTries||3}function u(e,t,a){let i=0;"function"==typeof t&&(a=t,t={}),n(e,"rimraf: missing path"),n.strictEqual(typeof e,"string","rimraf: path should be a string"),n.strictEqual(typeof a,"function","rimraf: callback function required"),n(t,"rimraf: invalid options argument provided"),n.strictEqual(typeof t,"object","rimraf: options should be object"),o(t),d(e,t,function r(n){if(n){if(("EBUSY"===n.code||"ENOTEMPTY"===n.code||"EPERM"===n.code)&&id(e,t,r),100*i)}"ENOENT"===n.code&&(n=null)}a(n)})}function d(e,t,a){n(e),n(t),n("function"==typeof a),t.lstat(e,(i,r)=>i&&"ENOENT"===i.code?a(null):i&&"EPERM"===i.code&&p?s(e,t,i,a):r&&r.isDirectory()?m(e,t,i,a):void t.unlink(e,i=>{if(i){if("ENOENT"===i.code)return a(null);if("EPERM"===i.code)return p?s(e,t,i,a):m(e,t,i,a);if("EISDIR"===i.code)return m(e,t,i,a)}return a(i)}))}function s(e,t,a,i){n(e),n(t),n("function"==typeof i),a&&n(a instanceof Error),t.chmod(e,438,r=>{r?i("ENOENT"===r.code?null:a):t.stat(e,(r,n)=>{r?i("ENOENT"===r.code?null:a):n.isDirectory()?m(e,t,a,i):t.unlink(e,i)})})}function l(e,t,a){let i;n(e),n(t),a&&n(a instanceof Error);try{t.chmodSync(e,438)}catch(e){if("ENOENT"===e.code)return;throw a}try{i=t.statSync(e)}catch(e){if("ENOENT"===e.code)return;throw a}i.isDirectory()?h(e,t,a):t.unlinkSync(e)}function m(e,t,a,i){n(e),n(t),a&&n(a instanceof Error),n("function"==typeof i),t.rmdir(e,p=>{!p||"ENOTEMPTY"!==p.code&&"EEXIST"!==p.code&&"EPERM"!==p.code?p&&"ENOTDIR"===p.code?i(a):i(p):function(e,t,a){n(e),n(t),n("function"==typeof a),t.readdir(e,(i,n)=>{if(i)return a(i);let p,o=n.length;if(0===o)return t.rmdir(e,a);n.forEach(i=>{u(r.join(e,i),t,i=>{if(!p)return i?a(p=i):void(0==--o&&t.rmdir(e,a))})})})}(e,t,i)})}function c(e,t){let a;o(t=t||{}),n(e,"rimraf: missing path"),n.strictEqual(typeof e,"string","rimraf: path should be a string"),n(t,"rimraf: missing options"),n.strictEqual(typeof t,"object","rimraf: options should be object");try{a=t.lstatSync(e)}catch(a){if("ENOENT"===a.code)return;"EPERM"===a.code&&p&&l(e,t,a)}try{a&&a.isDirectory()?h(e,t,null):t.unlinkSync(e)}catch(a){if("ENOENT"===a.code)return;if("EPERM"===a.code)return p?l(e,t,a):h(e,t,a);if("EISDIR"!==a.code)throw a;h(e,t,a)}}function h(e,t,a){n(e),n(t),a&&n(a instanceof Error);try{t.rmdirSync(e)}catch(i){if("ENOTDIR"===i.code)throw a;if("ENOTEMPTY"===i.code||"EEXIST"===i.code||"EPERM"===i.code)!function(e,t){n(e),n(t),t.readdirSync(e).forEach(a=>c(r.join(e,a),t));const a=p?100:1;let i=0;for(;;){let r=!0;try{const n=t.rmdirSync(e,t);return r=!1,n}finally{if(++i{if(e)return t(e);t()})}n.stat(e,(i,n)=>{if(!i&&n.isFile())return t();const u=r.dirname(e);o(u,(e,i)=>e?t(e):i?a():void p.mkdirs(u,e=>{if(e)return t(e);a()}))})}),createFileSync:function(e){let t;try{t=n.statSync(e)}catch(e){}if(t&&t.isFile())return;const a=r.dirname(e);n.existsSync(a)||p.mkdirsSync(a),n.writeFileSync(e,"")}}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(0),n=a(1),p=a(6),o=a(10).pathExists;e.exports={createLink:i(function(e,t,a){function i(e,t){n.link(e,t,e=>{if(e)return a(e);a(null)})}o(t,(u,d)=>u?a(u):d?a(null):void n.lstat(e,n=>{if(n)return n.message=n.message.replace("lstat","ensureLink"),a(n);const u=r.dirname(t);o(u,(r,n)=>r?a(r):n?i(e,t):void p.mkdirs(u,r=>{if(r)return a(r);i(e,t)}))}))}),createLinkSync:function(e,t){if(n.existsSync(t))return;try{n.lstatSync(e)}catch(e){throw e.message=e.message.replace("lstat","ensureLink"),e}const a=r.dirname(t);return n.existsSync(a)?n.linkSync(e,t):(p.mkdirsSync(a),n.linkSync(e,t))}}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(0),n=a(1),p=a(6),o=p.mkdirs,u=p.mkdirsSync,d=a(140),s=d.symlinkPaths,l=d.symlinkPathsSync,m=a(141),c=m.symlinkType,h=m.symlinkTypeSync,f=a(10).pathExists;e.exports={createSymlink:i(function(e,t,a,i){i="function"==typeof a?a:i,a="function"!=typeof a&&a,f(t,(p,u)=>p?i(p):u?i(null):void s(e,t,(p,u)=>{if(p)return i(p);e=u.toDst,c(u.toCwd,a,(a,p)=>{if(a)return i(a);const u=r.dirname(t);f(u,(a,r)=>a?i(a):r?n.symlink(e,t,p,i):void o(u,a=>{if(a)return i(a);n.symlink(e,t,p,i)}))})}))}),createSymlinkSync:function(e,t,a){if(n.existsSync(t))return;const i=l(e,t);e=i.toDst,a=h(i.toCwd,a);const p=r.dirname(t);return n.existsSync(p)?n.symlinkSync(e,t,a):(u(p),n.symlinkSync(e,t,a))}}},function(e,t,a){"use strict";const i=a(0),r=a(1),n=a(10).pathExists;e.exports={symlinkPaths:function(e,t,a){if(i.isAbsolute(e))return r.lstat(e,t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),a(t)):a(null,{toCwd:e,toDst:e}));{const p=i.dirname(t),o=i.join(p,e);return n(o,(t,n)=>t?a(t):n?a(null,{toCwd:o,toDst:e}):r.lstat(e,t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),a(t)):a(null,{toCwd:e,toDst:i.relative(p,e)})))}},symlinkPathsSync:function(e,t){let a;if(i.isAbsolute(e)){if(!(a=r.existsSync(e)))throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}{const n=i.dirname(t),p=i.join(n,e);if(a=r.existsSync(p))return{toCwd:p,toDst:e};if(!(a=r.existsSync(e)))throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:i.relative(n,e)}}}}},function(e,t,a){"use strict";const i=a(1);e.exports={symlinkType:function(e,t,a){if(a="function"==typeof t?t:a,t="function"!=typeof t&&t)return a(null,t);i.lstat(e,(e,i)=>{if(e)return a(null,"file");t=i&&i.isDirectory()?"dir":"file",a(null,t)})},symlinkTypeSync:function(e,t){let a;if(t)return t;try{a=i.lstatSync(e)}catch(e){return"file"}return a&&a.isDirectory()?"dir":"file"}}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(35);r.outputJson=i(a(144)),r.outputJsonSync=a(145),r.outputJSON=r.outputJson,r.outputJSONSync=r.outputJsonSync,r.writeJSON=r.writeJson,r.writeJSONSync=r.writeJsonSync,r.readJSON=r.readJson,r.readJSONSync=r.readJsonSync,e.exports=r},function(e,t,a){var i;try{i=a(1)}catch(e){i=a(18)}function r(e,t){var a,i="\n";return"object"==typeof t&&null!==t&&(t.spaces&&(a=t.spaces),t.EOL&&(i=t.EOL)),JSON.stringify(e,t?t.replacer:null,a).replace(/\n/g,i)+i}function n(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e=e.replace(/^\uFEFF/,"")}var p={readFile:function(e,t,a){null==a&&(a=t,t={}),"string"==typeof t&&(t={encoding:t});var r=(t=t||{}).fs||i,p=!0;"throws"in t&&(p=t.throws),r.readFile(e,t,function(i,r){if(i)return a(i);var o;r=n(r);try{o=JSON.parse(r,t?t.reviver:null)}catch(t){return p?(t.message=e+": "+t.message,a(t)):a(null,null)}a(null,o)})},readFileSync:function(e,t){"string"==typeof(t=t||{})&&(t={encoding:t});var a=t.fs||i,r=!0;"throws"in t&&(r=t.throws);try{var p=a.readFileSync(e,t);return p=n(p),JSON.parse(p,t.reviver)}catch(t){if(r)throw t.message=e+": "+t.message,t;return null}},writeFile:function(e,t,a,n){null==n&&(n=a,a={});var p=(a=a||{}).fs||i,o="";try{o=r(t,a)}catch(e){return void(n&&n(e,null))}p.writeFile(e,o,a,n)},writeFileSync:function(e,t,a){var n=(a=a||{}).fs||i,p=r(t,a);return n.writeFileSync(e,p,a)}};e.exports=p},function(e,t,a){"use strict";const i=a(0),r=a(6),n=a(10).pathExists,p=a(35);e.exports=function(e,t,a,o){"function"==typeof a&&(o=a,a={});const u=i.dirname(e);n(u,(i,n)=>i?o(i):n?p.writeJson(e,t,a,o):void r.mkdirs(u,i=>{if(i)return o(i);p.writeJson(e,t,a,o)}))}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(6),p=a(35);e.exports=function(e,t,a){const o=r.dirname(e);i.existsSync(o)||n.mkdirsSync(o),p.writeJsonSync(e,t,a)}},function(e,t,a){"use strict";const i=a(1),r=a(0),n=a(49).copySync,p=a(25).removeSync,o=a(6).mkdirsSync,u=a(52);function d(e,t,a){return i.statSync(e).isDirectory()?function(e,t,a){const i={overwrite:!1};a?(p(t),r()):r();function r(){return n(e,t,i),p(e)}}(e,t,a):function(e,t,a){const r=u(65536),n=a?"w":"wx",p=i.openSync(e,"r"),o=i.fstatSync(p),d=i.openSync(t,n,o.mode);let s=0;for(;s-1&&t.split(r.dirname(e)+r.sep)[1].split(r.sep)[0]===r.basename(e)}catch(e){return!1}}(t,a))throw new Error(`Cannot move '${t}' into itself '${a}'.`);o(r.dirname(a)),function(){if(u)try{i.renameSync(t,a)}catch(i){if("ENOTEMPTY"===i.code||"EEXIST"===i.code||"EPERM"===i.code)return p(a),n.overwrite=!1,e(t,a,n);if("EXDEV"!==i.code)throw i;return d(t,a,u)}else try{i.linkSync(t,a),i.unlinkSync(t)}catch(e){if("EXDEV"===e.code||"EISDIR"===e.code||"EPERM"===e.code||"ENOTSUP"===e.code)return d(t,a,u);throw e}}()}}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(1),n=a(0),p=a(53).copy,o=a(25).remove,u=a(6).mkdirp,d=a(10).pathExists;function s(e,t,a,i){r.rename(e,t,r=>r?"EXDEV"!==r.code?i(r):function(e,t,a,i){p(e,t,{overwrite:a,errorOnExist:!0},t=>t?i(t):o(e,i))}(e,t,a,i):i())}e.exports={move:i(function(e,t,a,i){"function"==typeof a&&(i=a,a={});const p=a.overwrite||a.clobber||!1;if(e=n.resolve(e),t=n.resolve(t),e===t)return r.access(e,i);r.stat(e,(a,r)=>a?i(a):r.isDirectory()&&function(e,t){const a=e.split(n.sep),i=t.split(n.sep);return a.reduce((e,t,a)=>e&&i[a]===t,!0)}(e,t)?i(new Error(`Cannot move '${e}' to a subdirectory of itself, '${t}'.`)):void u(n.dirname(t),a=>a?i(a):function(e,t,a,i){if(a)return o(t,r=>r?i(r):s(e,t,a,i));d(t,(r,n)=>r?i(r):n?i(new Error("dest already exists.")):s(e,t,a,i))}(e,t,p,i)))})}},function(e,t,a){"use strict";const i=a(3).fromCallback,r=a(1),n=a(0),p=a(6),o=a(10).pathExists;e.exports={outputFile:i(function(e,t,a,i){"function"==typeof a&&(i=a,a="utf8");const u=n.dirname(e);o(u,(n,o)=>n?i(n):o?r.writeFile(e,t,a,i):void p.mkdirs(u,n=>{if(n)return i(n);r.writeFile(e,t,a,i)}))}),outputFileSync:function(e,...t){const a=n.dirname(e);if(r.existsSync(a))return r.writeFileSync(e,...t);p.mkdirsSync(a),r.writeFileSync(e,...t)}}},function(e,t,a){var i=a(150),r=a(152);e.exports=function(e,t,a){var n=t&&a||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var p=(e=e||{}).random||(e.rng||i)();if(p[6]=15&p[6]|64,p[8]=63&p[8]|128,t)for(var o=0;o<16;++o)t[n+o]=p[o];return t||r(p)}},function(e,t,a){var i=a(151);e.exports=function(){return i.randomBytes(16)}},function(e,t){e.exports=require("crypto")},function(e,t){for(var a=[],i=0;i<256;++i)a[i]=(i+256).toString(16).substr(1);e.exports=function(e,t){var i=t||0,r=a;return[r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]]].join("")}},function(e,t,a){"use strict";const i=a(54),r=a(55),n=r.implSymbol;function p(e){if(!new.target)throw new TypeError("Failed to construct 'URL'. Please use the 'new' operator; this constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");const t=[];for(let e=0;er.tryWrapperForImpl(this[n].searchParams))},enumerable:!0,configurable:!0}),Object.defineProperty(p.prototype,"hash",{get(){if(!this||!e.exports.is(this))throw new TypeError("Illegal invocation");return this[n].hash},set(t){if(!this||!e.exports.is(this))throw new TypeError("Illegal invocation");t=i.USVString(t,{context:"Failed to set the 'hash' property on 'URL': The provided value"}),this[n].hash=t},enumerable:!0,configurable:!0}),Object.defineProperty(p.prototype,Symbol.toStringTag,{value:"URL",writable:!1,enumerable:!1,configurable:!0});const o={mixedInto:[],is(t){if(t){if(t[n]instanceof u.implementation)return!0;for(let a=0;a=e){if(p[1].startsWith("disallowed_STD3_")){return[t?"disallowed":p[1].slice(16),...p.slice(2)]}return p.slice(1)}p[0][0]>e?i=r-1:a=r+1}return null}function o(e,{checkHyphens:t,checkBidi:a,checkJoiners:i,processingOption:n,useSTD3ASCIIRules:o}){if(e.normalize("NFC")!==e)return!1;const u=Array.from(e);if(t&&("-"===u[2]&&"-"===u[3]||e.startsWith("-")||e.endsWith("-")))return!1;if(e.includes(".")||u.length>0&&r.combiningMarks.test(u[0]))return!1;for(const e of u){const[t]=p(e.codePointAt(0),{useSTD3ASCIIRules:o});if("transitional"===n&&"valid"!==t||"nontransitional"===n&&"valid"!==t&&"deviation"!==t)return!1}if(i){let e=0;for(const[t,a]of u.entries())if("‌"===a||"‍"===a){if(t>0){if(r.combiningClassVirama.test(u[t-1]))continue;if("‌"===a){const a=u.indexOf("‌",t+1),i=a<0?u.slice(e):u.slice(e,a);if(r.validZWNJ.test(i.join(""))){e=t+1;continue}}}return!1}}if(a){let t;if(r.bidiS1LTR.test(u[0]))t=!1;else{if(!r.bidiS1RTL.test(u[0]))return!1;t=!0}if(t){if(!r.bidiS2.test(e)||!r.bidiS3.test(e)||r.bidiS4EN.test(e)&&r.bidiS4AN.test(e))return!1}else if(!r.bidiS5.test(e)||!r.bidiS6.test(e))return!1}return!0}function u(e,t){const{processingOption:a}=t;let{string:n,error:u}=function(e,{useSTD3ASCIIRules:t,processingOption:a}){let i=!1,r="";for(const n of e){const[e,o]=p(n.codePointAt(0),{useSTD3ASCIIRules:t});switch(e){case"disallowed":i=!0,r+=n;break;case"ignored":break;case"mapped":r+=o;break;case"deviation":r+="transitional"===a?o:n;break;case"valid":r+=n}}return{string:r,error:i}}(e,t);const d=(n=n.normalize("NFC")).split("."),s=function(e){const t=e.map(e=>{if(e.startsWith("xn--"))try{return i.decode(e.substring(4))}catch(e){return""}return e}).join(".");return r.bidiDomain.test(t)}(d);for(const[e,r]of d.entries()){let n=r,p=a;if(n.startsWith("xn--")){try{n=i.decode(n.substring(4)),d[e]=n}catch(e){u=!0;continue}p="nontransitional"}if(u)continue;o(n,Object.assign({},t,{processingOption:p,checkBidi:t.checkBidi&&s}))||(u=!0)}return{string:d.join("."),error:u}}e.exports={toASCII:function(e,{checkHyphens:t=!1,checkBidi:a=!1,checkJoiners:r=!1,useSTD3ASCIIRules:n=!1,processingOption:p="nontransitional",verifyDNSLength:o=!1}={}){if("transitional"!==p&&"nontransitional"!==p)throw new RangeError("processingOption must be either transitional or nontransitional");const d=u(e,{processingOption:p,checkHyphens:t,checkBidi:a,checkJoiners:r,useSTD3ASCIIRules:n});let s=d.string.split(".");if(s=s.map(e=>{if(function(e){return/[^\x00-\x7F]/.test(e)}(e))try{return"xn--"+i.encode(e)}catch(e){d.error=!0}return e}),o){const e=s.join(".").length;(e>253||0===e)&&(d.error=!0);for(let e=0;e63||0===s[e].length){d.error=!0;break}}return d.error?null:s.join(".")},toUnicode:function(e,{checkHyphens:t=!1,checkBidi:a=!1,checkJoiners:i=!1,useSTD3ASCIIRules:r=!1}={}){const n=u(e,{processingOption:"nontransitional",checkHyphens:t,checkBidi:a,checkJoiners:i,useSTD3ASCIIRules:r});return{domain:n.string,error:n.error}}}},function(e,t,a){"use strict";e.exports={combiningMarks:/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{11000}-\u{11002}\u{11038}-\u{11046}\u{1107F}-\u{11082}\u{110B0}-\u{110BA}\u{11100}-\u{11102}\u{11127}-\u{11134}\u{11173}\u{11180}-\u{11182}\u{111B3}-\u{111C0}\u{111CA}-\u{111CC}\u{1122C}-\u{11237}\u{1123E}\u{112DF}-\u{112EA}\u{11300}-\u{11303}\u{1133C}\u{1133E}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11357}\u{11362}\u{11363}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11435}-\u{11446}\u{114B0}-\u{114C3}\u{115AF}-\u{115B5}\u{115B8}-\u{115C0}\u{115DC}\u{115DD}\u{11630}-\u{11640}\u{116AB}-\u{116B7}\u{1171D}-\u{1172B}\u{11A01}-\u{11A0A}\u{11A33}-\u{11A39}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A5B}\u{11A8A}-\u{11A99}\u{11C2F}-\u{11C36}\u{11C38}-\u{11C3F}\u{11C92}-\u{11CA7}\u{11CA9}-\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F51}-\u{16F7E}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1D165}-\u{1D169}\u{1D16D}-\u{1D172}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]/u,combiningClassVirama:/[\u094D\u09CD\u0A4D\u0ACD\u0B4D\u0BCD\u0C4D\u0CCD\u0D3B\u0D3C\u0D4D\u0DCA\u0E3A\u0F84\u1039\u103A\u1714\u1734\u17D2\u1A60\u1B44\u1BAA\u1BAB\u1BF2\u1BF3\u2D7F\uA806\uA8C4\uA953\uA9C0\uAAF6\uABED\u{10A3F}\u{11046}\u{1107F}\u{110B9}\u{11133}\u{11134}\u{111C0}\u{11235}\u{112EA}\u{1134D}\u{11442}\u{114C2}\u{115BF}\u{1163F}\u{116B6}\u{1172B}\u{11A34}\u{11A47}\u{11A99}\u{11C3F}\u{11D44}\u{11D45}]/u,validZWNJ:/[\u0620\u0626\u0628\u062A-\u062E\u0633-\u063F\u0641-\u0647\u0649\u064A\u066E\u066F\u0678-\u0687\u069A-\u06BF\u06C1\u06C2\u06CC\u06CE\u06D0\u06D1\u06FA-\u06FC\u06FF\u0712-\u0714\u071A-\u071D\u071F-\u0727\u0729\u072B\u072D\u072E\u074E-\u0758\u075C-\u076A\u076D-\u0770\u0772\u0775-\u0777\u077A-\u077F\u07CA-\u07EA\u0841-\u0845\u0848\u084A-\u0853\u0855\u0860\u0862-\u0865\u0868\u08A0-\u08A9\u08AF\u08B0\u08B3\u08B4\u08B6-\u08B8\u08BA-\u08BD\u1807\u1820-\u1877\u1887-\u18A8\u18AA\uA840-\uA872\u{10AC0}-\u{10AC4}\u{10ACD}\u{10AD3}-\u{10ADC}\u{10ADE}-\u{10AE0}\u{10AEB}-\u{10AEE}\u{10B80}\u{10B82}\u{10B86}-\u{10B88}\u{10B8A}\u{10B8B}\u{10B8D}\u{10B90}\u{10BAD}\u{10BAE}\u{1E900}-\u{1E943}][\xAD\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u061C\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200B\u200E\u200F\u202A-\u202E\u2060-\u2064\u206A-\u206F\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFEFF\uFFF9-\uFFFB\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{11001}\u{11038}-\u{11046}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110BD}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111CA}-\u{111CC}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}-\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C3F}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*\u200C[\xAD\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u061C\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200B\u200E\u200F\u202A-\u202E\u2060-\u2064\u206A-\u206F\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFEFF\uFFF9-\uFFFB\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{11001}\u{11038}-\u{11046}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110BD}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111CA}-\u{111CC}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}-\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C3F}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*[\u0620\u0622-\u063F\u0641-\u064A\u066E\u066F\u0671-\u0673\u0675-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u077F\u07CA-\u07EA\u0840-\u0855\u0860\u0862-\u0865\u0867-\u086A\u08A0-\u08AC\u08AE-\u08B4\u08B6-\u08BD\u1807\u1820-\u1877\u1887-\u18A8\u18AA\uA840-\uA871\u{10AC0}-\u{10AC5}\u{10AC7}\u{10AC9}\u{10ACA}\u{10ACE}-\u{10AD6}\u{10AD8}-\u{10AE1}\u{10AE4}\u{10AEB}-\u{10AEF}\u{10B80}-\u{10B91}\u{10BA9}-\u{10BAE}\u{1E900}-\u{1E943}]/u,bidiDomain:/[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05F0-\u05F4\u0600-\u0605\u0608\u060B\u060D\u061B\u061C\u061E-\u064A\u0660-\u0669\u066B-\u066F\u0671-\u06D5\u06DD\u06E5\u06E6\u06EE\u06EF\u06FA-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08E2\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A33}\u{10A40}-\u{10A47}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10CFF}\u{10E60}-\u{10E7E}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}]/u,bidiS1LTR:/[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02BB-\u02C1\u02D0\u02D1\u02E0-\u02E4\u02EE\u0370-\u0373\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0482\u048A-\u052F\u0531-\u0556\u0559-\u055F\u0561-\u0587\u0589\u0903-\u0939\u093B\u093D-\u0940\u0949-\u094C\u094E-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C0\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09FA\u09FC\u09FD\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A40\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC0\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0\u0AE1\u0AE6-\u0AF0\u0AF9\u0B02\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0BE6-\u0BF2\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C41-\u0C44\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C7F\u0C80\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D4F\u0D54-\u0D61\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E4F-\u0E5B\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3E-\u0F47\u0F49-\u0F6C\u0F7F\u0F85\u0F88-\u0F8C\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE-\u0FDA\u1000-\u102C\u1031\u1038\u103B\u103C\u103F-\u1057\u105A-\u105D\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108C\u108E-\u109C\u109E-\u10C5\u10C7\u10CD\u10D0-\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\u1360-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u167F\u1681-\u169A\u16A0-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1735\u1736\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17B6\u17BE-\u17C5\u17C7\u17C8\u17D4-\u17DA\u17DC\u17E0-\u17E9\u1810-\u1819\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A19\u1A1A\u1A1E-\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1A80-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1B04-\u1B33\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B4B\u1B50-\u1B6A\u1B74-\u1B7C\u1B82-\u1BA1\u1BA6\u1BA7\u1BAA\u1BAE-\u1BE5\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1BFC-\u1C2B\u1C34\u1C35\u1C3B-\u1C49\u1C4D-\u1C88\u1CC0-\u1CC7\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\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\u200E\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u214F\u2160-\u2188\u2336-\u237A\u2395\u249C-\u24E9\u26AC\u2800-\u28FF\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u302E\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u3190-\u31BA\u31F0-\u321C\u3220-\u324F\u3260-\u327B\u327F-\u32B0\u32C0-\u32CB\u32D0-\u32FE\u3300-\u3376\u337B-\u33DD\u33E0-\u33FE\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA60C\uA610-\uA62B\uA640-\uA66E\uA680-\uA69D\uA6A0-\uA6EF\uA6F2-\uA6F7\uA722-\uA787\uA789-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA824\uA827\uA830-\uA837\uA840-\uA873\uA880-\uA8C3\uA8CE-\uA8D9\uA8F2-\uA8FD\uA900-\uA925\uA92E-\uA946\uA952\uA953\uA95F-\uA97C\uA983-\uA9B2\uA9B4\uA9B5\uA9BA\uA9BB\uA9BD-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA2F\uAA30\uAA33\uAA34\uAA40-\uAA42\uAA44-\uAA4B\uAA4D\uAA50-\uAA59\uAA5C-\uAA7B\uAA7D-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAAEB\uAAEE-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB65\uAB70-\uABE4\uABE6\uABE7\uABE9-\uABEC\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1013F}\u{1018D}\u{1018E}\u{101D0}-\u{101FC}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{10375}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{11000}\u{11002}-\u{11037}\u{11047}-\u{1104D}\u{11066}-\u{1106F}\u{11082}-\u{110B2}\u{110B7}\u{110B8}\u{110BB}-\u{110C1}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11103}-\u{11126}\u{1112C}\u{11136}-\u{11143}\u{11150}-\u{11172}\u{11174}-\u{11176}\u{11182}-\u{111B5}\u{111BF}-\u{111C9}\u{111CD}\u{111D0}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{1122E}\u{11232}\u{11233}\u{11235}\u{11238}-\u{1123D}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112DE}\u{112E0}-\u{112E2}\u{112F0}-\u{112F9}\u{11302}\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133D}-\u{1133F}\u{11341}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11400}-\u{11437}\u{11440}\u{11441}\u{11445}\u{11447}-\u{11459}\u{1145B}\u{1145D}\u{11480}-\u{114B2}\u{114B9}\u{114BB}-\u{114BE}\u{114C1}\u{114C4}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B1}\u{115B8}-\u{115BB}\u{115BE}\u{115C1}-\u{115DB}\u{11600}-\u{11632}\u{1163B}\u{1163C}\u{1163E}\u{11641}-\u{11644}\u{11650}-\u{11659}\u{11680}-\u{116AA}\u{116AC}\u{116AE}\u{116AF}\u{116B6}\u{116C0}-\u{116C9}\u{11700}-\u{11719}\u{11720}\u{11721}\u{11726}\u{11730}-\u{1173F}\u{118A0}-\u{118F2}\u{118FF}\u{11A00}\u{11A07}\u{11A08}\u{11A0B}-\u{11A32}\u{11A39}\u{11A3A}\u{11A3F}-\u{11A46}\u{11A50}\u{11A57}\u{11A58}\u{11A5C}-\u{11A83}\u{11A86}-\u{11A89}\u{11A97}\u{11A9A}-\u{11A9C}\u{11A9E}-\u{11AA2}\u{11AC0}-\u{11AF8}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C2F}\u{11C3E}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11CA9}\u{11CB1}\u{11CB4}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D30}\u{11D46}\u{11D50}-\u{11D59}\u{12000}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{13000}-\u{1342E}\u{14400}-\u{14646}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}\u{16A6F}\u{16AD0}-\u{16AED}\u{16AF5}\u{16B00}-\u{16B2F}\u{16B37}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16F00}-\u{16F44}\u{16F50}-\u{16F7E}\u{16F93}-\u{16F9F}\u{16FE0}\u{16FE1}\u{17000}-\u{187EC}\u{18800}-\u{18AF2}\u{1B000}-\u{1B11E}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}\u{1BC9F}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D166}\u{1D16A}-\u{1D172}\u{1D183}\u{1D184}\u{1D18C}-\u{1D1A9}\u{1D1AE}-\u{1D1E8}\u{1D360}-\u{1D371}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D6DA}\u{1D6DC}-\u{1D714}\u{1D716}-\u{1D74E}\u{1D750}-\u{1D788}\u{1D78A}-\u{1D7C2}\u{1D7C4}-\u{1D7CB}\u{1D800}-\u{1D9FF}\u{1DA37}-\u{1DA3A}\u{1DA6D}-\u{1DA74}\u{1DA76}-\u{1DA83}\u{1DA85}-\u{1DA8B}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F169}\u{1F170}-\u{1F1AC}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{20000}-\u{2A6D6}\u{2A700}-\u{2B734}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2F800}-\u{2FA1D}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/u,bidiS1RTL:/[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05F0-\u05F4\u0608\u060B\u060D\u061B\u061C\u061E-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A33}\u{10A40}-\u{10A47}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10CFF}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}]/u,bidiS2:/^[\0-\x08\x0E-\x1B!-@\[-`\{-\x84\x86-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02B9\u02BA\u02C2-\u02CF\u02D2-\u02DF\u02E5-\u02ED\u02EF-\u036F\u0374\u0375\u037E\u0384\u0385\u0387\u03F6\u0483-\u0489\u058A\u058D-\u058F\u0591-\u05C7\u05D0-\u05EA\u05F0-\u05F4\u0600-\u061C\u061E-\u070D\u070F-\u074A\u074D-\u07B1\u07C0-\u07FA\u0800-\u082D\u0830-\u083E\u0840-\u085B\u085E\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09F2\u09F3\u09FB\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AF1\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0BF3-\u0BFA\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C78-\u0C7E\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E3F\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39-\u0F3D\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1390-\u1399\u1400\u169B\u169C\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DB\u17DD\u17F0-\u17F9\u1800-\u180E\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1940\u1944\u1945\u19DE-\u19FF\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u200B-\u200D\u200F-\u2027\u202F-\u205E\u2060-\u2064\u206A-\u2070\u2074-\u207E\u2080-\u208E\u20A0-\u20BF\u20D0-\u20F0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u2150-\u215F\u2189-\u218B\u2190-\u2335\u237B-\u2394\u2396-\u2426\u2440-\u244A\u2460-\u249B\u24EA-\u26AB\u26AD-\u27FF\u2900-\u2B73\u2B76-\u2B95\u2B98-\u2BB9\u2BBD-\u2BC8\u2BCA-\u2BD2\u2BEC-\u2BEF\u2CE5-\u2CEA\u2CEF-\u2CF1\u2CF9-\u2CFF\u2D7F\u2DE0-\u2E49\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u3004\u3008-\u3020\u302A-\u302D\u3030\u3036\u3037\u303D-\u303F\u3099-\u309C\u30A0\u30FB\u31C0-\u31E3\u321D\u321E\u3250-\u325F\u327C-\u327E\u32B1-\u32BF\u32CC-\u32CF\u3377-\u337A\u33DE\u33DF\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA60D-\uA60F\uA66F-\uA67F\uA69E\uA69F\uA6F0\uA6F1\uA700-\uA721\uA788\uA802\uA806\uA80B\uA825\uA826\uA828-\uA82B\uA838\uA839\uA874-\uA877\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC1\uFBD3-\uFD3F\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFD\uFE00-\uFE19\uFE20-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFE70-\uFE74\uFE76-\uFEFC\uFEFF\uFF01-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD\u{10101}\u{10140}-\u{1018C}\u{10190}-\u{1019B}\u{101A0}\u{101FD}\u{102E0}-\u{102FB}\u{10376}-\u{1037A}\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{1091F}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A33}\u{10A38}-\u{10A3A}\u{10A3F}-\u{10A47}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE6}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B39}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10CFF}\u{10E60}-\u{10E7E}\u{11001}\u{11038}-\u{11046}\u{11052}-\u{11065}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111CA}-\u{111CC}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{11660}-\u{1166C}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}-\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D200}-\u{1D245}\u{1D300}-\u{1D356}\u{1D6DB}\u{1D715}\u{1D74F}\u{1D789}\u{1D7C3}\u{1D7CE}-\u{1D7FF}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8D6}\u{1E900}-\u{1E94A}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{1EEF0}\u{1EEF1}\u{1F000}-\u{1F02B}\u{1F030}-\u{1F093}\u{1F0A0}-\u{1F0AE}\u{1F0B1}-\u{1F0BF}\u{1F0C1}-\u{1F0CF}\u{1F0D1}-\u{1F0F5}\u{1F100}-\u{1F10C}\u{1F16A}\u{1F16B}\u{1F260}-\u{1F265}\u{1F300}-\u{1F6D4}\u{1F6E0}-\u{1F6EC}\u{1F6F0}-\u{1F6F8}\u{1F700}-\u{1F773}\u{1F780}-\u{1F7D4}\u{1F800}-\u{1F80B}\u{1F810}-\u{1F847}\u{1F850}-\u{1F859}\u{1F860}-\u{1F887}\u{1F890}-\u{1F8AD}\u{1F900}-\u{1F90B}\u{1F910}-\u{1F93E}\u{1F940}-\u{1F94C}\u{1F950}-\u{1F96B}\u{1F980}-\u{1F997}\u{1F9C0}\u{1F9D0}-\u{1F9E6}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*$/u,bidiS3:/[0-9\xB2\xB3\xB9\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05F0-\u05F4\u0600-\u0605\u0608\u060B\u060D\u061B\u061C\u061E-\u064A\u0660-\u0669\u066B-\u066F\u0671-\u06D5\u06DD\u06E5\u06E6\u06EE-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08E2\u200F\u2070\u2074-\u2079\u2080-\u2089\u2488-\u249B\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\u{102E1}-\u{102FB}\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A33}\u{10A40}-\u{10A47}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10CFF}\u{10E60}-\u{10E7E}\u{1D7CE}-\u{1D7FF}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{1F100}-\u{1F10A}][\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{11001}\u{11038}-\u{11046}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111CA}-\u{111CC}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}-\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1D167}-\u{1D169}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]*$/u,bidiS4EN:/[0-9\xB2\xB3\xB9\u06F0-\u06F9\u2070\u2074-\u2079\u2080-\u2089\u2488-\u249B\uFF10-\uFF19\u{102E1}-\u{102FB}\u{1D7CE}-\u{1D7FF}\u{1F100}-\u{1F10A}]/u,bidiS4AN:/[\u0600-\u0605\u0660-\u0669\u066B\u066C\u06DD\u08E2\u{10E60}-\u{10E7E}]/u,bidiS5:/^[\0-\x08\x0E-\x1B!-\x84\x86-\u0377\u037A-\u037F\u0384-\u038A\u038C\u038E-\u03A1\u03A3-\u052F\u0531-\u0556\u0559-\u055F\u0561-\u0587\u0589\u058A\u058D-\u058F\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0606\u0607\u0609\u060A\u060C\u060E-\u061A\u064B-\u065F\u066A\u0670\u06D6-\u06DC\u06DE-\u06E4\u06E7-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07F6-\u07F9\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09FD\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-\u0AF1\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-\u0B77\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-\u0BFA\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C78-\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-\u0D4F\u0D54-\u0D63\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E3A\u0E3F-\u0E5B\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FDA\u1000-\u10C5\u10C7\u10CD\u10D0-\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-\u137C\u1380-\u1399\u13A0-\u13F5\u13F8-\u13FD\u1400-\u167F\u1681-\u169C\u16A0-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1736\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17DD\u17E0-\u17E9\u17F0-\u17F9\u1800-\u180E\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1940\u1944-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u19DE-\u1A1B\u1A1E-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1AB0-\u1ABE\u1B00-\u1B4B\u1B50-\u1B7C\u1B80-\u1BF3\u1BFC-\u1C37\u1C3B-\u1C49\u1C4D-\u1C88\u1CC0-\u1CC7\u1CD0-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEF\u1FF2-\u1FF4\u1FF6-\u1FFE\u200B-\u200E\u2010-\u2027\u202F-\u205E\u2060-\u2064\u206A-\u2071\u2074-\u208E\u2090-\u209C\u20A0-\u20BF\u20D0-\u20F0\u2100-\u218B\u2190-\u2426\u2440-\u244A\u2460-\u2B73\u2B76-\u2B95\u2B98-\u2BB9\u2BBD-\u2BC8\u2BCA-\u2BD2\u2BEC-\u2BEF\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CF3\u2CF9-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2E49\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303F\u3041-\u3096\u3099-\u30FF\u3105-\u312E\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u32FE\u3300-\u4DB5\u4DC0-\u9FEA\uA000-\uA48C\uA490-\uA4C6\uA4D0-\uA62B\uA640-\uA6F7\uA700-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA82B\uA830-\uA839\uA840-\uA877\uA880-\uA8C5\uA8CE-\uA8D9\uA8E0-\uA8FD\uA900-\uA953\uA95F-\uA97C\uA980-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA5C-\uAAC2\uAADB-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB65\uAB70-\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1E\uFB29\uFD3E\uFD3F\uFDFD\uFE00-\uFE19\uFE20-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFEFF\uFF01-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}-\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1018E}\u{10190}-\u{1019B}\u{101A0}\u{101D0}-\u{101FD}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{102E0}-\u{102FB}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{1037A}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{1091F}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10B39}-\u{10B3F}\u{11000}-\u{1104D}\u{11052}-\u{1106F}\u{1107F}-\u{110C1}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11100}-\u{11134}\u{11136}-\u{11143}\u{11150}-\u{11176}\u{11180}-\u{111CD}\u{111D0}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{1123E}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112EA}\u{112F0}-\u{112F9}\u{11300}-\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133C}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11400}-\u{11459}\u{1145B}\u{1145D}\u{11480}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B5}\u{115B8}-\u{115DD}\u{11600}-\u{11644}\u{11650}-\u{11659}\u{11660}-\u{1166C}\u{11680}-\u{116B7}\u{116C0}-\u{116C9}\u{11700}-\u{11719}\u{1171D}-\u{1172B}\u{11730}-\u{1173F}\u{118A0}-\u{118F2}\u{118FF}\u{11A00}-\u{11A47}\u{11A50}-\u{11A83}\u{11A86}-\u{11A9C}\u{11A9E}-\u{11AA2}\u{11AC0}-\u{11AF8}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C36}\u{11C38}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11C92}-\u{11CA7}\u{11CA9}-\u{11CB6}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D47}\u{11D50}-\u{11D59}\u{12000}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{13000}-\u{1342E}\u{14400}-\u{14646}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}\u{16A6F}\u{16AD0}-\u{16AED}\u{16AF0}-\u{16AF5}\u{16B00}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16F00}-\u{16F44}\u{16F50}-\u{16F7E}\u{16F8F}-\u{16F9F}\u{16FE0}\u{16FE1}\u{17000}-\u{187EC}\u{18800}-\u{18AF2}\u{1B000}-\u{1B11E}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}-\u{1BCA3}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D1E8}\u{1D200}-\u{1D245}\u{1D300}-\u{1D356}\u{1D360}-\u{1D371}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D7CB}\u{1D7CE}-\u{1DA8B}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{1EEF0}\u{1EEF1}\u{1F000}-\u{1F02B}\u{1F030}-\u{1F093}\u{1F0A0}-\u{1F0AE}\u{1F0B1}-\u{1F0BF}\u{1F0C1}-\u{1F0CF}\u{1F0D1}-\u{1F0F5}\u{1F100}-\u{1F10C}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F16B}\u{1F170}-\u{1F1AC}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{1F260}-\u{1F265}\u{1F300}-\u{1F6D4}\u{1F6E0}-\u{1F6EC}\u{1F6F0}-\u{1F6F8}\u{1F700}-\u{1F773}\u{1F780}-\u{1F7D4}\u{1F800}-\u{1F80B}\u{1F810}-\u{1F847}\u{1F850}-\u{1F859}\u{1F860}-\u{1F887}\u{1F890}-\u{1F8AD}\u{1F900}-\u{1F90B}\u{1F910}-\u{1F93E}\u{1F940}-\u{1F94C}\u{1F950}-\u{1F96B}\u{1F980}-\u{1F997}\u{1F9C0}\u{1F9D0}-\u{1F9E6}\u{20000}-\u{2A6D6}\u{2A700}-\u{2B734}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2F800}-\u{2FA1D}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]*$/u,bidiS6:/[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02BB-\u02C1\u02D0\u02D1\u02E0-\u02E4\u02EE\u0370-\u0373\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0482\u048A-\u052F\u0531-\u0556\u0559-\u055F\u0561-\u0587\u0589\u06F0-\u06F9\u0903-\u0939\u093B\u093D-\u0940\u0949-\u094C\u094E-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C0\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09FA\u09FC\u09FD\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A40\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC0\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0\u0AE1\u0AE6-\u0AF0\u0AF9\u0B02\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0BE6-\u0BF2\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C41-\u0C44\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C7F\u0C80\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D4F\u0D54-\u0D61\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E4F-\u0E5B\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3E-\u0F47\u0F49-\u0F6C\u0F7F\u0F85\u0F88-\u0F8C\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE-\u0FDA\u1000-\u102C\u1031\u1038\u103B\u103C\u103F-\u1057\u105A-\u105D\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108C\u108E-\u109C\u109E-\u10C5\u10C7\u10CD\u10D0-\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\u1360-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u167F\u1681-\u169A\u16A0-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1735\u1736\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17B6\u17BE-\u17C5\u17C7\u17C8\u17D4-\u17DA\u17DC\u17E0-\u17E9\u1810-\u1819\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A19\u1A1A\u1A1E-\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1A80-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1B04-\u1B33\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B4B\u1B50-\u1B6A\u1B74-\u1B7C\u1B82-\u1BA1\u1BA6\u1BA7\u1BAA\u1BAE-\u1BE5\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1BFC-\u1C2B\u1C34\u1C35\u1C3B-\u1C49\u1C4D-\u1C88\u1CC0-\u1CC7\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\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\u200E\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u214F\u2160-\u2188\u2336-\u237A\u2395\u2488-\u24E9\u26AC\u2800-\u28FF\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u302E\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u3190-\u31BA\u31F0-\u321C\u3220-\u324F\u3260-\u327B\u327F-\u32B0\u32C0-\u32CB\u32D0-\u32FE\u3300-\u3376\u337B-\u33DD\u33E0-\u33FE\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA60C\uA610-\uA62B\uA640-\uA66E\uA680-\uA69D\uA6A0-\uA6EF\uA6F2-\uA6F7\uA722-\uA787\uA789-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA824\uA827\uA830-\uA837\uA840-\uA873\uA880-\uA8C3\uA8CE-\uA8D9\uA8F2-\uA8FD\uA900-\uA925\uA92E-\uA946\uA952\uA953\uA95F-\uA97C\uA983-\uA9B2\uA9B4\uA9B5\uA9BA\uA9BB\uA9BD-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA2F\uAA30\uAA33\uAA34\uAA40-\uAA42\uAA44-\uAA4B\uAA4D\uAA50-\uAA59\uAA5C-\uAA7B\uAA7D-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAAEB\uAAEE-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB65\uAB70-\uABE4\uABE6\uABE7\uABE9-\uABEC\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1013F}\u{1018D}\u{1018E}\u{101D0}-\u{101FC}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{102E1}-\u{102FB}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{10375}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{11000}\u{11002}-\u{11037}\u{11047}-\u{1104D}\u{11066}-\u{1106F}\u{11082}-\u{110B2}\u{110B7}\u{110B8}\u{110BB}-\u{110C1}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11103}-\u{11126}\u{1112C}\u{11136}-\u{11143}\u{11150}-\u{11172}\u{11174}-\u{11176}\u{11182}-\u{111B5}\u{111BF}-\u{111C9}\u{111CD}\u{111D0}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{1122E}\u{11232}\u{11233}\u{11235}\u{11238}-\u{1123D}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112DE}\u{112E0}-\u{112E2}\u{112F0}-\u{112F9}\u{11302}\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133D}-\u{1133F}\u{11341}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11400}-\u{11437}\u{11440}\u{11441}\u{11445}\u{11447}-\u{11459}\u{1145B}\u{1145D}\u{11480}-\u{114B2}\u{114B9}\u{114BB}-\u{114BE}\u{114C1}\u{114C4}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B1}\u{115B8}-\u{115BB}\u{115BE}\u{115C1}-\u{115DB}\u{11600}-\u{11632}\u{1163B}\u{1163C}\u{1163E}\u{11641}-\u{11644}\u{11650}-\u{11659}\u{11680}-\u{116AA}\u{116AC}\u{116AE}\u{116AF}\u{116B6}\u{116C0}-\u{116C9}\u{11700}-\u{11719}\u{11720}\u{11721}\u{11726}\u{11730}-\u{1173F}\u{118A0}-\u{118F2}\u{118FF}\u{11A00}\u{11A07}\u{11A08}\u{11A0B}-\u{11A32}\u{11A39}\u{11A3A}\u{11A3F}-\u{11A46}\u{11A50}\u{11A57}\u{11A58}\u{11A5C}-\u{11A83}\u{11A86}-\u{11A89}\u{11A97}\u{11A9A}-\u{11A9C}\u{11A9E}-\u{11AA2}\u{11AC0}-\u{11AF8}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C2F}\u{11C3E}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11CA9}\u{11CB1}\u{11CB4}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D30}\u{11D46}\u{11D50}-\u{11D59}\u{12000}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{13000}-\u{1342E}\u{14400}-\u{14646}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}\u{16A6F}\u{16AD0}-\u{16AED}\u{16AF5}\u{16B00}-\u{16B2F}\u{16B37}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16F00}-\u{16F44}\u{16F50}-\u{16F7E}\u{16F93}-\u{16F9F}\u{16FE0}\u{16FE1}\u{17000}-\u{187EC}\u{18800}-\u{18AF2}\u{1B000}-\u{1B11E}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}\u{1BC9F}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D166}\u{1D16A}-\u{1D172}\u{1D183}\u{1D184}\u{1D18C}-\u{1D1A9}\u{1D1AE}-\u{1D1E8}\u{1D360}-\u{1D371}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D6DA}\u{1D6DC}-\u{1D714}\u{1D716}-\u{1D74E}\u{1D750}-\u{1D788}\u{1D78A}-\u{1D7C2}\u{1D7C4}-\u{1D7CB}\u{1D7CE}-\u{1D9FF}\u{1DA37}-\u{1DA3A}\u{1DA6D}-\u{1DA74}\u{1DA76}-\u{1DA83}\u{1DA85}-\u{1DA8B}\u{1F100}-\u{1F10A}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F169}\u{1F170}-\u{1F1AC}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{20000}-\u{2A6D6}\u{2A700}-\u{2B734}\u{2B740}-\u{2B81D}\u{2B820}-\u{2CEA1}\u{2CEB0}-\u{2EBE0}\u{2F800}-\u{2FA1D}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}][\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{11001}\u{11038}-\u{11046}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111CA}-\u{111CC}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}-\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F8F}-\u{16F92}\u{1BC9D}\u{1BC9E}\u{1D167}-\u{1D169}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]*$/u}},function(e){e.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped","a"],[[66,66],"mapped","b"],[[67,67],"mapped","c"],[[68,68],"mapped","d"],[[69,69],"mapped","e"],[[70,70],"mapped","f"],[[71,71],"mapped","g"],[[72,72],"mapped","h"],[[73,73],"mapped","i"],[[74,74],"mapped","j"],[[75,75],"mapped","k"],[[76,76],"mapped","l"],[[77,77],"mapped","m"],[[78,78],"mapped","n"],[[79,79],"mapped","o"],[[80,80],"mapped","p"],[[81,81],"mapped","q"],[[82,82],"mapped","r"],[[83,83],"mapped","s"],[[84,84],"mapped","t"],[[85,85],"mapped","u"],[[86,86],"mapped","v"],[[87,87],"mapped","w"],[[88,88],"mapped","x"],[[89,89],"mapped","y"],[[90,90],"mapped","z"],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped"," "],[[161,167],"valid","","NV8"],[[168,168],"disallowed_STD3_mapped"," ̈"],[[169,169],"valid","","NV8"],[[170,170],"mapped","a"],[[171,172],"valid","","NV8"],[[173,173],"ignored"],[[174,174],"valid","","NV8"],[[175,175],"disallowed_STD3_mapped"," ̄"],[[176,177],"valid","","NV8"],[[178,178],"mapped","2"],[[179,179],"mapped","3"],[[180,180],"disallowed_STD3_mapped"," ́"],[[181,181],"mapped","μ"],[[182,182],"valid","","NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped"," ̧"],[[185,185],"mapped","1"],[[186,186],"mapped","o"],[[187,187],"valid","","NV8"],[[188,188],"mapped","1⁄4"],[[189,189],"mapped","1⁄2"],[[190,190],"mapped","3⁄4"],[[191,191],"valid","","NV8"],[[192,192],"mapped","à"],[[193,193],"mapped","á"],[[194,194],"mapped","â"],[[195,195],"mapped","ã"],[[196,196],"mapped","ä"],[[197,197],"mapped","å"],[[198,198],"mapped","æ"],[[199,199],"mapped","ç"],[[200,200],"mapped","è"],[[201,201],"mapped","é"],[[202,202],"mapped","ê"],[[203,203],"mapped","ë"],[[204,204],"mapped","ì"],[[205,205],"mapped","í"],[[206,206],"mapped","î"],[[207,207],"mapped","ï"],[[208,208],"mapped","ð"],[[209,209],"mapped","ñ"],[[210,210],"mapped","ò"],[[211,211],"mapped","ó"],[[212,212],"mapped","ô"],[[213,213],"mapped","õ"],[[214,214],"mapped","ö"],[[215,215],"valid","","NV8"],[[216,216],"mapped","ø"],[[217,217],"mapped","ù"],[[218,218],"mapped","ú"],[[219,219],"mapped","û"],[[220,220],"mapped","ü"],[[221,221],"mapped","ý"],[[222,222],"mapped","þ"],[[223,223],"deviation","ss"],[[224,246],"valid"],[[247,247],"valid","","NV8"],[[248,255],"valid"],[[256,256],"mapped","ā"],[[257,257],"valid"],[[258,258],"mapped","ă"],[[259,259],"valid"],[[260,260],"mapped","ą"],[[261,261],"valid"],[[262,262],"mapped","ć"],[[263,263],"valid"],[[264,264],"mapped","ĉ"],[[265,265],"valid"],[[266,266],"mapped","ċ"],[[267,267],"valid"],[[268,268],"mapped","č"],[[269,269],"valid"],[[270,270],"mapped","ď"],[[271,271],"valid"],[[272,272],"mapped","đ"],[[273,273],"valid"],[[274,274],"mapped","ē"],[[275,275],"valid"],[[276,276],"mapped","ĕ"],[[277,277],"valid"],[[278,278],"mapped","ė"],[[279,279],"valid"],[[280,280],"mapped","ę"],[[281,281],"valid"],[[282,282],"mapped","ě"],[[283,283],"valid"],[[284,284],"mapped","ĝ"],[[285,285],"valid"],[[286,286],"mapped","ğ"],[[287,287],"valid"],[[288,288],"mapped","ġ"],[[289,289],"valid"],[[290,290],"mapped","ģ"],[[291,291],"valid"],[[292,292],"mapped","ĥ"],[[293,293],"valid"],[[294,294],"mapped","ħ"],[[295,295],"valid"],[[296,296],"mapped","ĩ"],[[297,297],"valid"],[[298,298],"mapped","ī"],[[299,299],"valid"],[[300,300],"mapped","ĭ"],[[301,301],"valid"],[[302,302],"mapped","į"],[[303,303],"valid"],[[304,304],"mapped","i̇"],[[305,305],"valid"],[[306,307],"mapped","ij"],[[308,308],"mapped","ĵ"],[[309,309],"valid"],[[310,310],"mapped","ķ"],[[311,312],"valid"],[[313,313],"mapped","ĺ"],[[314,314],"valid"],[[315,315],"mapped","ļ"],[[316,316],"valid"],[[317,317],"mapped","ľ"],[[318,318],"valid"],[[319,320],"mapped","l·"],[[321,321],"mapped","ł"],[[322,322],"valid"],[[323,323],"mapped","ń"],[[324,324],"valid"],[[325,325],"mapped","ņ"],[[326,326],"valid"],[[327,327],"mapped","ň"],[[328,328],"valid"],[[329,329],"mapped","ʼn"],[[330,330],"mapped","ŋ"],[[331,331],"valid"],[[332,332],"mapped","ō"],[[333,333],"valid"],[[334,334],"mapped","ŏ"],[[335,335],"valid"],[[336,336],"mapped","ő"],[[337,337],"valid"],[[338,338],"mapped","œ"],[[339,339],"valid"],[[340,340],"mapped","ŕ"],[[341,341],"valid"],[[342,342],"mapped","ŗ"],[[343,343],"valid"],[[344,344],"mapped","ř"],[[345,345],"valid"],[[346,346],"mapped","ś"],[[347,347],"valid"],[[348,348],"mapped","ŝ"],[[349,349],"valid"],[[350,350],"mapped","ş"],[[351,351],"valid"],[[352,352],"mapped","š"],[[353,353],"valid"],[[354,354],"mapped","ţ"],[[355,355],"valid"],[[356,356],"mapped","ť"],[[357,357],"valid"],[[358,358],"mapped","ŧ"],[[359,359],"valid"],[[360,360],"mapped","ũ"],[[361,361],"valid"],[[362,362],"mapped","ū"],[[363,363],"valid"],[[364,364],"mapped","ŭ"],[[365,365],"valid"],[[366,366],"mapped","ů"],[[367,367],"valid"],[[368,368],"mapped","ű"],[[369,369],"valid"],[[370,370],"mapped","ų"],[[371,371],"valid"],[[372,372],"mapped","ŵ"],[[373,373],"valid"],[[374,374],"mapped","ŷ"],[[375,375],"valid"],[[376,376],"mapped","ÿ"],[[377,377],"mapped","ź"],[[378,378],"valid"],[[379,379],"mapped","ż"],[[380,380],"valid"],[[381,381],"mapped","ž"],[[382,382],"valid"],[[383,383],"mapped","s"],[[384,384],"valid"],[[385,385],"mapped","ɓ"],[[386,386],"mapped","ƃ"],[[387,387],"valid"],[[388,388],"mapped","ƅ"],[[389,389],"valid"],[[390,390],"mapped","ɔ"],[[391,391],"mapped","ƈ"],[[392,392],"valid"],[[393,393],"mapped","ɖ"],[[394,394],"mapped","ɗ"],[[395,395],"mapped","ƌ"],[[396,397],"valid"],[[398,398],"mapped","ǝ"],[[399,399],"mapped","ə"],[[400,400],"mapped","ɛ"],[[401,401],"mapped","ƒ"],[[402,402],"valid"],[[403,403],"mapped","ɠ"],[[404,404],"mapped","ɣ"],[[405,405],"valid"],[[406,406],"mapped","ɩ"],[[407,407],"mapped","ɨ"],[[408,408],"mapped","ƙ"],[[409,411],"valid"],[[412,412],"mapped","ɯ"],[[413,413],"mapped","ɲ"],[[414,414],"valid"],[[415,415],"mapped","ɵ"],[[416,416],"mapped","ơ"],[[417,417],"valid"],[[418,418],"mapped","ƣ"],[[419,419],"valid"],[[420,420],"mapped","ƥ"],[[421,421],"valid"],[[422,422],"mapped","ʀ"],[[423,423],"mapped","ƨ"],[[424,424],"valid"],[[425,425],"mapped","ʃ"],[[426,427],"valid"],[[428,428],"mapped","ƭ"],[[429,429],"valid"],[[430,430],"mapped","ʈ"],[[431,431],"mapped","ư"],[[432,432],"valid"],[[433,433],"mapped","ʊ"],[[434,434],"mapped","ʋ"],[[435,435],"mapped","ƴ"],[[436,436],"valid"],[[437,437],"mapped","ƶ"],[[438,438],"valid"],[[439,439],"mapped","ʒ"],[[440,440],"mapped","ƹ"],[[441,443],"valid"],[[444,444],"mapped","ƽ"],[[445,451],"valid"],[[452,454],"mapped","dž"],[[455,457],"mapped","lj"],[[458,460],"mapped","nj"],[[461,461],"mapped","ǎ"],[[462,462],"valid"],[[463,463],"mapped","ǐ"],[[464,464],"valid"],[[465,465],"mapped","ǒ"],[[466,466],"valid"],[[467,467],"mapped","ǔ"],[[468,468],"valid"],[[469,469],"mapped","ǖ"],[[470,470],"valid"],[[471,471],"mapped","ǘ"],[[472,472],"valid"],[[473,473],"mapped","ǚ"],[[474,474],"valid"],[[475,475],"mapped","ǜ"],[[476,477],"valid"],[[478,478],"mapped","ǟ"],[[479,479],"valid"],[[480,480],"mapped","ǡ"],[[481,481],"valid"],[[482,482],"mapped","ǣ"],[[483,483],"valid"],[[484,484],"mapped","ǥ"],[[485,485],"valid"],[[486,486],"mapped","ǧ"],[[487,487],"valid"],[[488,488],"mapped","ǩ"],[[489,489],"valid"],[[490,490],"mapped","ǫ"],[[491,491],"valid"],[[492,492],"mapped","ǭ"],[[493,493],"valid"],[[494,494],"mapped","ǯ"],[[495,496],"valid"],[[497,499],"mapped","dz"],[[500,500],"mapped","ǵ"],[[501,501],"valid"],[[502,502],"mapped","ƕ"],[[503,503],"mapped","ƿ"],[[504,504],"mapped","ǹ"],[[505,505],"valid"],[[506,506],"mapped","ǻ"],[[507,507],"valid"],[[508,508],"mapped","ǽ"],[[509,509],"valid"],[[510,510],"mapped","ǿ"],[[511,511],"valid"],[[512,512],"mapped","ȁ"],[[513,513],"valid"],[[514,514],"mapped","ȃ"],[[515,515],"valid"],[[516,516],"mapped","ȅ"],[[517,517],"valid"],[[518,518],"mapped","ȇ"],[[519,519],"valid"],[[520,520],"mapped","ȉ"],[[521,521],"valid"],[[522,522],"mapped","ȋ"],[[523,523],"valid"],[[524,524],"mapped","ȍ"],[[525,525],"valid"],[[526,526],"mapped","ȏ"],[[527,527],"valid"],[[528,528],"mapped","ȑ"],[[529,529],"valid"],[[530,530],"mapped","ȓ"],[[531,531],"valid"],[[532,532],"mapped","ȕ"],[[533,533],"valid"],[[534,534],"mapped","ȗ"],[[535,535],"valid"],[[536,536],"mapped","ș"],[[537,537],"valid"],[[538,538],"mapped","ț"],[[539,539],"valid"],[[540,540],"mapped","ȝ"],[[541,541],"valid"],[[542,542],"mapped","ȟ"],[[543,543],"valid"],[[544,544],"mapped","ƞ"],[[545,545],"valid"],[[546,546],"mapped","ȣ"],[[547,547],"valid"],[[548,548],"mapped","ȥ"],[[549,549],"valid"],[[550,550],"mapped","ȧ"],[[551,551],"valid"],[[552,552],"mapped","ȩ"],[[553,553],"valid"],[[554,554],"mapped","ȫ"],[[555,555],"valid"],[[556,556],"mapped","ȭ"],[[557,557],"valid"],[[558,558],"mapped","ȯ"],[[559,559],"valid"],[[560,560],"mapped","ȱ"],[[561,561],"valid"],[[562,562],"mapped","ȳ"],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped","ⱥ"],[[571,571],"mapped","ȼ"],[[572,572],"valid"],[[573,573],"mapped","ƚ"],[[574,574],"mapped","ⱦ"],[[575,576],"valid"],[[577,577],"mapped","ɂ"],[[578,578],"valid"],[[579,579],"mapped","ƀ"],[[580,580],"mapped","ʉ"],[[581,581],"mapped","ʌ"],[[582,582],"mapped","ɇ"],[[583,583],"valid"],[[584,584],"mapped","ɉ"],[[585,585],"valid"],[[586,586],"mapped","ɋ"],[[587,587],"valid"],[[588,588],"mapped","ɍ"],[[589,589],"valid"],[[590,590],"mapped","ɏ"],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped","h"],[[689,689],"mapped","ɦ"],[[690,690],"mapped","j"],[[691,691],"mapped","r"],[[692,692],"mapped","ɹ"],[[693,693],"mapped","ɻ"],[[694,694],"mapped","ʁ"],[[695,695],"mapped","w"],[[696,696],"mapped","y"],[[697,705],"valid"],[[706,709],"valid","","NV8"],[[710,721],"valid"],[[722,727],"valid","","NV8"],[[728,728],"disallowed_STD3_mapped"," ̆"],[[729,729],"disallowed_STD3_mapped"," ̇"],[[730,730],"disallowed_STD3_mapped"," ̊"],[[731,731],"disallowed_STD3_mapped"," ̨"],[[732,732],"disallowed_STD3_mapped"," ̃"],[[733,733],"disallowed_STD3_mapped"," ̋"],[[734,734],"valid","","NV8"],[[735,735],"valid","","NV8"],[[736,736],"mapped","ɣ"],[[737,737],"mapped","l"],[[738,738],"mapped","s"],[[739,739],"mapped","x"],[[740,740],"mapped","ʕ"],[[741,745],"valid","","NV8"],[[746,747],"valid","","NV8"],[[748,748],"valid"],[[749,749],"valid","","NV8"],[[750,750],"valid"],[[751,767],"valid","","NV8"],[[768,831],"valid"],[[832,832],"mapped","̀"],[[833,833],"mapped","́"],[[834,834],"valid"],[[835,835],"mapped","̓"],[[836,836],"mapped","̈́"],[[837,837],"mapped","ι"],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped","ͱ"],[[881,881],"valid"],[[882,882],"mapped","ͳ"],[[883,883],"valid"],[[884,884],"mapped","ʹ"],[[885,885],"valid"],[[886,886],"mapped","ͷ"],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped"," ι"],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",";"],[[895,895],"mapped","ϳ"],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped"," ́"],[[901,901],"disallowed_STD3_mapped"," ̈́"],[[902,902],"mapped","ά"],[[903,903],"mapped","·"],[[904,904],"mapped","έ"],[[905,905],"mapped","ή"],[[906,906],"mapped","ί"],[[907,907],"disallowed"],[[908,908],"mapped","ό"],[[909,909],"disallowed"],[[910,910],"mapped","ύ"],[[911,911],"mapped","ώ"],[[912,912],"valid"],[[913,913],"mapped","α"],[[914,914],"mapped","β"],[[915,915],"mapped","γ"],[[916,916],"mapped","δ"],[[917,917],"mapped","ε"],[[918,918],"mapped","ζ"],[[919,919],"mapped","η"],[[920,920],"mapped","θ"],[[921,921],"mapped","ι"],[[922,922],"mapped","κ"],[[923,923],"mapped","λ"],[[924,924],"mapped","μ"],[[925,925],"mapped","ν"],[[926,926],"mapped","ξ"],[[927,927],"mapped","ο"],[[928,928],"mapped","π"],[[929,929],"mapped","ρ"],[[930,930],"disallowed"],[[931,931],"mapped","σ"],[[932,932],"mapped","τ"],[[933,933],"mapped","υ"],[[934,934],"mapped","φ"],[[935,935],"mapped","χ"],[[936,936],"mapped","ψ"],[[937,937],"mapped","ω"],[[938,938],"mapped","ϊ"],[[939,939],"mapped","ϋ"],[[940,961],"valid"],[[962,962],"deviation","σ"],[[963,974],"valid"],[[975,975],"mapped","ϗ"],[[976,976],"mapped","β"],[[977,977],"mapped","θ"],[[978,978],"mapped","υ"],[[979,979],"mapped","ύ"],[[980,980],"mapped","ϋ"],[[981,981],"mapped","φ"],[[982,982],"mapped","π"],[[983,983],"valid"],[[984,984],"mapped","ϙ"],[[985,985],"valid"],[[986,986],"mapped","ϛ"],[[987,987],"valid"],[[988,988],"mapped","ϝ"],[[989,989],"valid"],[[990,990],"mapped","ϟ"],[[991,991],"valid"],[[992,992],"mapped","ϡ"],[[993,993],"valid"],[[994,994],"mapped","ϣ"],[[995,995],"valid"],[[996,996],"mapped","ϥ"],[[997,997],"valid"],[[998,998],"mapped","ϧ"],[[999,999],"valid"],[[1e3,1e3],"mapped","ϩ"],[[1001,1001],"valid"],[[1002,1002],"mapped","ϫ"],[[1003,1003],"valid"],[[1004,1004],"mapped","ϭ"],[[1005,1005],"valid"],[[1006,1006],"mapped","ϯ"],[[1007,1007],"valid"],[[1008,1008],"mapped","κ"],[[1009,1009],"mapped","ρ"],[[1010,1010],"mapped","σ"],[[1011,1011],"valid"],[[1012,1012],"mapped","θ"],[[1013,1013],"mapped","ε"],[[1014,1014],"valid","","NV8"],[[1015,1015],"mapped","ϸ"],[[1016,1016],"valid"],[[1017,1017],"mapped","σ"],[[1018,1018],"mapped","ϻ"],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped","ͻ"],[[1022,1022],"mapped","ͼ"],[[1023,1023],"mapped","ͽ"],[[1024,1024],"mapped","ѐ"],[[1025,1025],"mapped","ё"],[[1026,1026],"mapped","ђ"],[[1027,1027],"mapped","ѓ"],[[1028,1028],"mapped","є"],[[1029,1029],"mapped","ѕ"],[[1030,1030],"mapped","і"],[[1031,1031],"mapped","ї"],[[1032,1032],"mapped","ј"],[[1033,1033],"mapped","љ"],[[1034,1034],"mapped","њ"],[[1035,1035],"mapped","ћ"],[[1036,1036],"mapped","ќ"],[[1037,1037],"mapped","ѝ"],[[1038,1038],"mapped","ў"],[[1039,1039],"mapped","џ"],[[1040,1040],"mapped","а"],[[1041,1041],"mapped","б"],[[1042,1042],"mapped","в"],[[1043,1043],"mapped","г"],[[1044,1044],"mapped","д"],[[1045,1045],"mapped","е"],[[1046,1046],"mapped","ж"],[[1047,1047],"mapped","з"],[[1048,1048],"mapped","и"],[[1049,1049],"mapped","й"],[[1050,1050],"mapped","к"],[[1051,1051],"mapped","л"],[[1052,1052],"mapped","м"],[[1053,1053],"mapped","н"],[[1054,1054],"mapped","о"],[[1055,1055],"mapped","п"],[[1056,1056],"mapped","р"],[[1057,1057],"mapped","с"],[[1058,1058],"mapped","т"],[[1059,1059],"mapped","у"],[[1060,1060],"mapped","ф"],[[1061,1061],"mapped","х"],[[1062,1062],"mapped","ц"],[[1063,1063],"mapped","ч"],[[1064,1064],"mapped","ш"],[[1065,1065],"mapped","щ"],[[1066,1066],"mapped","ъ"],[[1067,1067],"mapped","ы"],[[1068,1068],"mapped","ь"],[[1069,1069],"mapped","э"],[[1070,1070],"mapped","ю"],[[1071,1071],"mapped","я"],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped","ѡ"],[[1121,1121],"valid"],[[1122,1122],"mapped","ѣ"],[[1123,1123],"valid"],[[1124,1124],"mapped","ѥ"],[[1125,1125],"valid"],[[1126,1126],"mapped","ѧ"],[[1127,1127],"valid"],[[1128,1128],"mapped","ѩ"],[[1129,1129],"valid"],[[1130,1130],"mapped","ѫ"],[[1131,1131],"valid"],[[1132,1132],"mapped","ѭ"],[[1133,1133],"valid"],[[1134,1134],"mapped","ѯ"],[[1135,1135],"valid"],[[1136,1136],"mapped","ѱ"],[[1137,1137],"valid"],[[1138,1138],"mapped","ѳ"],[[1139,1139],"valid"],[[1140,1140],"mapped","ѵ"],[[1141,1141],"valid"],[[1142,1142],"mapped","ѷ"],[[1143,1143],"valid"],[[1144,1144],"mapped","ѹ"],[[1145,1145],"valid"],[[1146,1146],"mapped","ѻ"],[[1147,1147],"valid"],[[1148,1148],"mapped","ѽ"],[[1149,1149],"valid"],[[1150,1150],"mapped","ѿ"],[[1151,1151],"valid"],[[1152,1152],"mapped","ҁ"],[[1153,1153],"valid"],[[1154,1154],"valid","","NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid","","NV8"],[[1162,1162],"mapped","ҋ"],[[1163,1163],"valid"],[[1164,1164],"mapped","ҍ"],[[1165,1165],"valid"],[[1166,1166],"mapped","ҏ"],[[1167,1167],"valid"],[[1168,1168],"mapped","ґ"],[[1169,1169],"valid"],[[1170,1170],"mapped","ғ"],[[1171,1171],"valid"],[[1172,1172],"mapped","ҕ"],[[1173,1173],"valid"],[[1174,1174],"mapped","җ"],[[1175,1175],"valid"],[[1176,1176],"mapped","ҙ"],[[1177,1177],"valid"],[[1178,1178],"mapped","қ"],[[1179,1179],"valid"],[[1180,1180],"mapped","ҝ"],[[1181,1181],"valid"],[[1182,1182],"mapped","ҟ"],[[1183,1183],"valid"],[[1184,1184],"mapped","ҡ"],[[1185,1185],"valid"],[[1186,1186],"mapped","ң"],[[1187,1187],"valid"],[[1188,1188],"mapped","ҥ"],[[1189,1189],"valid"],[[1190,1190],"mapped","ҧ"],[[1191,1191],"valid"],[[1192,1192],"mapped","ҩ"],[[1193,1193],"valid"],[[1194,1194],"mapped","ҫ"],[[1195,1195],"valid"],[[1196,1196],"mapped","ҭ"],[[1197,1197],"valid"],[[1198,1198],"mapped","ү"],[[1199,1199],"valid"],[[1200,1200],"mapped","ұ"],[[1201,1201],"valid"],[[1202,1202],"mapped","ҳ"],[[1203,1203],"valid"],[[1204,1204],"mapped","ҵ"],[[1205,1205],"valid"],[[1206,1206],"mapped","ҷ"],[[1207,1207],"valid"],[[1208,1208],"mapped","ҹ"],[[1209,1209],"valid"],[[1210,1210],"mapped","һ"],[[1211,1211],"valid"],[[1212,1212],"mapped","ҽ"],[[1213,1213],"valid"],[[1214,1214],"mapped","ҿ"],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped","ӂ"],[[1218,1218],"valid"],[[1219,1219],"mapped","ӄ"],[[1220,1220],"valid"],[[1221,1221],"mapped","ӆ"],[[1222,1222],"valid"],[[1223,1223],"mapped","ӈ"],[[1224,1224],"valid"],[[1225,1225],"mapped","ӊ"],[[1226,1226],"valid"],[[1227,1227],"mapped","ӌ"],[[1228,1228],"valid"],[[1229,1229],"mapped","ӎ"],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped","ӑ"],[[1233,1233],"valid"],[[1234,1234],"mapped","ӓ"],[[1235,1235],"valid"],[[1236,1236],"mapped","ӕ"],[[1237,1237],"valid"],[[1238,1238],"mapped","ӗ"],[[1239,1239],"valid"],[[1240,1240],"mapped","ә"],[[1241,1241],"valid"],[[1242,1242],"mapped","ӛ"],[[1243,1243],"valid"],[[1244,1244],"mapped","ӝ"],[[1245,1245],"valid"],[[1246,1246],"mapped","ӟ"],[[1247,1247],"valid"],[[1248,1248],"mapped","ӡ"],[[1249,1249],"valid"],[[1250,1250],"mapped","ӣ"],[[1251,1251],"valid"],[[1252,1252],"mapped","ӥ"],[[1253,1253],"valid"],[[1254,1254],"mapped","ӧ"],[[1255,1255],"valid"],[[1256,1256],"mapped","ө"],[[1257,1257],"valid"],[[1258,1258],"mapped","ӫ"],[[1259,1259],"valid"],[[1260,1260],"mapped","ӭ"],[[1261,1261],"valid"],[[1262,1262],"mapped","ӯ"],[[1263,1263],"valid"],[[1264,1264],"mapped","ӱ"],[[1265,1265],"valid"],[[1266,1266],"mapped","ӳ"],[[1267,1267],"valid"],[[1268,1268],"mapped","ӵ"],[[1269,1269],"valid"],[[1270,1270],"mapped","ӷ"],[[1271,1271],"valid"],[[1272,1272],"mapped","ӹ"],[[1273,1273],"valid"],[[1274,1274],"mapped","ӻ"],[[1275,1275],"valid"],[[1276,1276],"mapped","ӽ"],[[1277,1277],"valid"],[[1278,1278],"mapped","ӿ"],[[1279,1279],"valid"],[[1280,1280],"mapped","ԁ"],[[1281,1281],"valid"],[[1282,1282],"mapped","ԃ"],[[1283,1283],"valid"],[[1284,1284],"mapped","ԅ"],[[1285,1285],"valid"],[[1286,1286],"mapped","ԇ"],[[1287,1287],"valid"],[[1288,1288],"mapped","ԉ"],[[1289,1289],"valid"],[[1290,1290],"mapped","ԋ"],[[1291,1291],"valid"],[[1292,1292],"mapped","ԍ"],[[1293,1293],"valid"],[[1294,1294],"mapped","ԏ"],[[1295,1295],"valid"],[[1296,1296],"mapped","ԑ"],[[1297,1297],"valid"],[[1298,1298],"mapped","ԓ"],[[1299,1299],"valid"],[[1300,1300],"mapped","ԕ"],[[1301,1301],"valid"],[[1302,1302],"mapped","ԗ"],[[1303,1303],"valid"],[[1304,1304],"mapped","ԙ"],[[1305,1305],"valid"],[[1306,1306],"mapped","ԛ"],[[1307,1307],"valid"],[[1308,1308],"mapped","ԝ"],[[1309,1309],"valid"],[[1310,1310],"mapped","ԟ"],[[1311,1311],"valid"],[[1312,1312],"mapped","ԡ"],[[1313,1313],"valid"],[[1314,1314],"mapped","ԣ"],[[1315,1315],"valid"],[[1316,1316],"mapped","ԥ"],[[1317,1317],"valid"],[[1318,1318],"mapped","ԧ"],[[1319,1319],"valid"],[[1320,1320],"mapped","ԩ"],[[1321,1321],"valid"],[[1322,1322],"mapped","ԫ"],[[1323,1323],"valid"],[[1324,1324],"mapped","ԭ"],[[1325,1325],"valid"],[[1326,1326],"mapped","ԯ"],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped","ա"],[[1330,1330],"mapped","բ"],[[1331,1331],"mapped","գ"],[[1332,1332],"mapped","դ"],[[1333,1333],"mapped","ե"],[[1334,1334],"mapped","զ"],[[1335,1335],"mapped","է"],[[1336,1336],"mapped","ը"],[[1337,1337],"mapped","թ"],[[1338,1338],"mapped","ժ"],[[1339,1339],"mapped","ի"],[[1340,1340],"mapped","լ"],[[1341,1341],"mapped","խ"],[[1342,1342],"mapped","ծ"],[[1343,1343],"mapped","կ"],[[1344,1344],"mapped","հ"],[[1345,1345],"mapped","ձ"],[[1346,1346],"mapped","ղ"],[[1347,1347],"mapped","ճ"],[[1348,1348],"mapped","մ"],[[1349,1349],"mapped","յ"],[[1350,1350],"mapped","ն"],[[1351,1351],"mapped","շ"],[[1352,1352],"mapped","ո"],[[1353,1353],"mapped","չ"],[[1354,1354],"mapped","պ"],[[1355,1355],"mapped","ջ"],[[1356,1356],"mapped","ռ"],[[1357,1357],"mapped","ս"],[[1358,1358],"mapped","վ"],[[1359,1359],"mapped","տ"],[[1360,1360],"mapped","ր"],[[1361,1361],"mapped","ց"],[[1362,1362],"mapped","ւ"],[[1363,1363],"mapped","փ"],[[1364,1364],"mapped","ք"],[[1365,1365],"mapped","օ"],[[1366,1366],"mapped","ֆ"],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid","","NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped","եւ"],[[1416,1416],"disallowed"],[[1417,1417],"valid","","NV8"],[[1418,1418],"valid","","NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid","","NV8"],[[1423,1423],"valid","","NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid","","NV8"],[[1471,1471],"valid"],[[1472,1472],"valid","","NV8"],[[1473,1474],"valid"],[[1475,1475],"valid","","NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid","","NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid","","NV8"],[[1547,1547],"valid","","NV8"],[[1548,1548],"valid","","NV8"],[[1549,1551],"valid","","NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid","","NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid","","NV8"],[[1567,1567],"valid","","NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid","","NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid","","NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped","اٴ"],[[1654,1654],"mapped","وٴ"],[[1655,1655],"mapped","ۇٴ"],[[1656,1656],"mapped","يٴ"],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid","","NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid","","NV8"],[[1759,1768],"valid"],[[1769,1769],"valid","","NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid","","NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid","","NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid","","NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid","","NV8"],[[2143,2143],"disallowed"],[[2144,2154],"valid"],[[2155,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2229],"disallowed"],[[2230,2237],"valid"],[[2238,2259],"disallowed"],[[2260,2273],"valid"],[[2274,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped","क़"],[[2393,2393],"mapped","ख़"],[[2394,2394],"mapped","ग़"],[[2395,2395],"mapped","ज़"],[[2396,2396],"mapped","ड़"],[[2397,2397],"mapped","ढ़"],[[2398,2398],"mapped","फ़"],[[2399,2399],"mapped","य़"],[[2400,2403],"valid"],[[2404,2405],"valid","","NV8"],[[2406,2415],"valid"],[[2416,2416],"valid","","NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped","ড়"],[[2525,2525],"mapped","ঢ়"],[[2526,2526],"disallowed"],[[2527,2527],"mapped","য়"],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid","","NV8"],[[2555,2555],"valid","","NV8"],[[2556,2556],"valid"],[[2557,2557],"valid","","NV8"],[[2558,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped","ਲ਼"],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped","ਸ਼"],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped","ਖ਼"],[[2650,2650],"mapped","ਗ਼"],[[2651,2651],"mapped","ਜ਼"],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped","ਫ਼"],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid","","NV8"],[[2801,2801],"valid","","NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2815],"valid"],[[2816,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped","ଡ଼"],[[2909,2909],"mapped","ଢ଼"],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid","","NV8"],[[2929,2929],"valid"],[[2930,2935],"valid","","NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid","","NV8"],[[3059,3066],"valid","","NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid","","NV8"],[[3200,3200],"valid"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3327],"disallowed"],[[3328,3328],"valid"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"valid"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3407],"valid","","NV8"],[[3408,3411],"disallowed"],[[3412,3414],"valid"],[[3415,3415],"valid"],[[3416,3422],"valid","","NV8"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid","","NV8"],[[3446,3448],"valid","","NV8"],[[3449,3449],"valid","","NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid","","NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped","ํา"],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid","","NV8"],[[3648,3662],"valid"],[[3663,3663],"valid","","NV8"],[[3664,3673],"valid"],[[3674,3675],"valid","","NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped","ໍາ"],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped","ຫນ"],[[3805,3805],"mapped","ຫມ"],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid","","NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped","་"],[[3853,3863],"valid","","NV8"],[[3864,3865],"valid"],[[3866,3871],"valid","","NV8"],[[3872,3881],"valid"],[[3882,3892],"valid","","NV8"],[[3893,3893],"valid"],[[3894,3894],"valid","","NV8"],[[3895,3895],"valid"],[[3896,3896],"valid","","NV8"],[[3897,3897],"valid"],[[3898,3901],"valid","","NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped","གྷ"],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped","ཌྷ"],[[3918,3921],"valid"],[[3922,3922],"mapped","དྷ"],[[3923,3926],"valid"],[[3927,3927],"mapped","བྷ"],[[3928,3931],"valid"],[[3932,3932],"mapped","ཛྷ"],[[3933,3944],"valid"],[[3945,3945],"mapped","ཀྵ"],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped","ཱི"],[[3956,3956],"valid"],[[3957,3957],"mapped","ཱུ"],[[3958,3958],"mapped","ྲྀ"],[[3959,3959],"mapped","ྲཱྀ"],[[3960,3960],"mapped","ླྀ"],[[3961,3961],"mapped","ླཱྀ"],[[3962,3968],"valid"],[[3969,3969],"mapped","ཱྀ"],[[3970,3972],"valid"],[[3973,3973],"valid","","NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped","ྒྷ"],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped","ྜྷ"],[[3998,4001],"valid"],[[4002,4002],"mapped","ྡྷ"],[[4003,4006],"valid"],[[4007,4007],"mapped","ྦྷ"],[[4008,4011],"valid"],[[4012,4012],"mapped","ྫྷ"],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped","ྐྵ"],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid","","NV8"],[[4038,4038],"valid"],[[4039,4044],"valid","","NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid","","NV8"],[[4047,4047],"valid","","NV8"],[[4048,4049],"valid","","NV8"],[[4050,4052],"valid","","NV8"],[[4053,4056],"valid","","NV8"],[[4057,4058],"valid","","NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid","","NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid","","NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped","ⴧ"],[[4296,4300],"disallowed"],[[4301,4301],"mapped","ⴭ"],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid","","NV8"],[[4348,4348],"mapped","ნ"],[[4349,4351],"valid"],[[4352,4441],"valid","","NV8"],[[4442,4446],"valid","","NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid","","NV8"],[[4515,4519],"valid","","NV8"],[[4520,4601],"valid","","NV8"],[[4602,4607],"valid","","NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid","","NV8"],[[4961,4988],"valid","","NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid","","NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped","Ᏸ"],[[5113,5113],"mapped","Ᏹ"],[[5114,5114],"mapped","Ᏺ"],[[5115,5115],"mapped","Ᏻ"],[[5116,5116],"mapped","Ᏼ"],[[5117,5117],"mapped","Ᏽ"],[[5118,5119],"disallowed"],[[5120,5120],"valid","","NV8"],[[5121,5740],"valid"],[[5741,5742],"valid","","NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid","","NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid","","NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid","","NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid","","NV8"],[[6103,6103],"valid"],[[6104,6107],"valid","","NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid","","NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid","","NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid","","NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid","","NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid","","NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid","","XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid","","NV8"],[[6624,6655],"valid","","NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid","","NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid","","NV8"],[[6823,6823],"valid"],[[6824,6829],"valid","","NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid","","NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid","","NV8"],[[7019,7027],"valid"],[[7028,7036],"valid","","NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid","","NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid","","NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid","","NV8"],[[7296,7296],"mapped","в"],[[7297,7297],"mapped","д"],[[7298,7298],"mapped","о"],[[7299,7299],"mapped","с"],[[7300,7301],"mapped","т"],[[7302,7302],"mapped","ъ"],[[7303,7303],"mapped","ѣ"],[[7304,7304],"mapped","ꙋ"],[[7305,7359],"disallowed"],[[7360,7367],"valid","","NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid","","NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"valid"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped","a"],[[7469,7469],"mapped","æ"],[[7470,7470],"mapped","b"],[[7471,7471],"valid"],[[7472,7472],"mapped","d"],[[7473,7473],"mapped","e"],[[7474,7474],"mapped","ǝ"],[[7475,7475],"mapped","g"],[[7476,7476],"mapped","h"],[[7477,7477],"mapped","i"],[[7478,7478],"mapped","j"],[[7479,7479],"mapped","k"],[[7480,7480],"mapped","l"],[[7481,7481],"mapped","m"],[[7482,7482],"mapped","n"],[[7483,7483],"valid"],[[7484,7484],"mapped","o"],[[7485,7485],"mapped","ȣ"],[[7486,7486],"mapped","p"],[[7487,7487],"mapped","r"],[[7488,7488],"mapped","t"],[[7489,7489],"mapped","u"],[[7490,7490],"mapped","w"],[[7491,7491],"mapped","a"],[[7492,7492],"mapped","ɐ"],[[7493,7493],"mapped","ɑ"],[[7494,7494],"mapped","ᴂ"],[[7495,7495],"mapped","b"],[[7496,7496],"mapped","d"],[[7497,7497],"mapped","e"],[[7498,7498],"mapped","ə"],[[7499,7499],"mapped","ɛ"],[[7500,7500],"mapped","ɜ"],[[7501,7501],"mapped","g"],[[7502,7502],"valid"],[[7503,7503],"mapped","k"],[[7504,7504],"mapped","m"],[[7505,7505],"mapped","ŋ"],[[7506,7506],"mapped","o"],[[7507,7507],"mapped","ɔ"],[[7508,7508],"mapped","ᴖ"],[[7509,7509],"mapped","ᴗ"],[[7510,7510],"mapped","p"],[[7511,7511],"mapped","t"],[[7512,7512],"mapped","u"],[[7513,7513],"mapped","ᴝ"],[[7514,7514],"mapped","ɯ"],[[7515,7515],"mapped","v"],[[7516,7516],"mapped","ᴥ"],[[7517,7517],"mapped","β"],[[7518,7518],"mapped","γ"],[[7519,7519],"mapped","δ"],[[7520,7520],"mapped","φ"],[[7521,7521],"mapped","χ"],[[7522,7522],"mapped","i"],[[7523,7523],"mapped","r"],[[7524,7524],"mapped","u"],[[7525,7525],"mapped","v"],[[7526,7526],"mapped","β"],[[7527,7527],"mapped","γ"],[[7528,7528],"mapped","ρ"],[[7529,7529],"mapped","φ"],[[7530,7530],"mapped","χ"],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped","н"],[[7545,7578],"valid"],[[7579,7579],"mapped","ɒ"],[[7580,7580],"mapped","c"],[[7581,7581],"mapped","ɕ"],[[7582,7582],"mapped","ð"],[[7583,7583],"mapped","ɜ"],[[7584,7584],"mapped","f"],[[7585,7585],"mapped","ɟ"],[[7586,7586],"mapped","ɡ"],[[7587,7587],"mapped","ɥ"],[[7588,7588],"mapped","ɨ"],[[7589,7589],"mapped","ɩ"],[[7590,7590],"mapped","ɪ"],[[7591,7591],"mapped","ᵻ"],[[7592,7592],"mapped","ʝ"],[[7593,7593],"mapped","ɭ"],[[7594,7594],"mapped","ᶅ"],[[7595,7595],"mapped","ʟ"],[[7596,7596],"mapped","ɱ"],[[7597,7597],"mapped","ɰ"],[[7598,7598],"mapped","ɲ"],[[7599,7599],"mapped","ɳ"],[[7600,7600],"mapped","ɴ"],[[7601,7601],"mapped","ɵ"],[[7602,7602],"mapped","ɸ"],[[7603,7603],"mapped","ʂ"],[[7604,7604],"mapped","ʃ"],[[7605,7605],"mapped","ƫ"],[[7606,7606],"mapped","ʉ"],[[7607,7607],"mapped","ʊ"],[[7608,7608],"mapped","ᴜ"],[[7609,7609],"mapped","ʋ"],[[7610,7610],"mapped","ʌ"],[[7611,7611],"mapped","z"],[[7612,7612],"mapped","ʐ"],[[7613,7613],"mapped","ʑ"],[[7614,7614],"mapped","ʒ"],[[7615,7615],"mapped","θ"],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7673],"valid"],[[7674,7674],"disallowed"],[[7675,7675],"valid"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped","ḁ"],[[7681,7681],"valid"],[[7682,7682],"mapped","ḃ"],[[7683,7683],"valid"],[[7684,7684],"mapped","ḅ"],[[7685,7685],"valid"],[[7686,7686],"mapped","ḇ"],[[7687,7687],"valid"],[[7688,7688],"mapped","ḉ"],[[7689,7689],"valid"],[[7690,7690],"mapped","ḋ"],[[7691,7691],"valid"],[[7692,7692],"mapped","ḍ"],[[7693,7693],"valid"],[[7694,7694],"mapped","ḏ"],[[7695,7695],"valid"],[[7696,7696],"mapped","ḑ"],[[7697,7697],"valid"],[[7698,7698],"mapped","ḓ"],[[7699,7699],"valid"],[[7700,7700],"mapped","ḕ"],[[7701,7701],"valid"],[[7702,7702],"mapped","ḗ"],[[7703,7703],"valid"],[[7704,7704],"mapped","ḙ"],[[7705,7705],"valid"],[[7706,7706],"mapped","ḛ"],[[7707,7707],"valid"],[[7708,7708],"mapped","ḝ"],[[7709,7709],"valid"],[[7710,7710],"mapped","ḟ"],[[7711,7711],"valid"],[[7712,7712],"mapped","ḡ"],[[7713,7713],"valid"],[[7714,7714],"mapped","ḣ"],[[7715,7715],"valid"],[[7716,7716],"mapped","ḥ"],[[7717,7717],"valid"],[[7718,7718],"mapped","ḧ"],[[7719,7719],"valid"],[[7720,7720],"mapped","ḩ"],[[7721,7721],"valid"],[[7722,7722],"mapped","ḫ"],[[7723,7723],"valid"],[[7724,7724],"mapped","ḭ"],[[7725,7725],"valid"],[[7726,7726],"mapped","ḯ"],[[7727,7727],"valid"],[[7728,7728],"mapped","ḱ"],[[7729,7729],"valid"],[[7730,7730],"mapped","ḳ"],[[7731,7731],"valid"],[[7732,7732],"mapped","ḵ"],[[7733,7733],"valid"],[[7734,7734],"mapped","ḷ"],[[7735,7735],"valid"],[[7736,7736],"mapped","ḹ"],[[7737,7737],"valid"],[[7738,7738],"mapped","ḻ"],[[7739,7739],"valid"],[[7740,7740],"mapped","ḽ"],[[7741,7741],"valid"],[[7742,7742],"mapped","ḿ"],[[7743,7743],"valid"],[[7744,7744],"mapped","ṁ"],[[7745,7745],"valid"],[[7746,7746],"mapped","ṃ"],[[7747,7747],"valid"],[[7748,7748],"mapped","ṅ"],[[7749,7749],"valid"],[[7750,7750],"mapped","ṇ"],[[7751,7751],"valid"],[[7752,7752],"mapped","ṉ"],[[7753,7753],"valid"],[[7754,7754],"mapped","ṋ"],[[7755,7755],"valid"],[[7756,7756],"mapped","ṍ"],[[7757,7757],"valid"],[[7758,7758],"mapped","ṏ"],[[7759,7759],"valid"],[[7760,7760],"mapped","ṑ"],[[7761,7761],"valid"],[[7762,7762],"mapped","ṓ"],[[7763,7763],"valid"],[[7764,7764],"mapped","ṕ"],[[7765,7765],"valid"],[[7766,7766],"mapped","ṗ"],[[7767,7767],"valid"],[[7768,7768],"mapped","ṙ"],[[7769,7769],"valid"],[[7770,7770],"mapped","ṛ"],[[7771,7771],"valid"],[[7772,7772],"mapped","ṝ"],[[7773,7773],"valid"],[[7774,7774],"mapped","ṟ"],[[7775,7775],"valid"],[[7776,7776],"mapped","ṡ"],[[7777,7777],"valid"],[[7778,7778],"mapped","ṣ"],[[7779,7779],"valid"],[[7780,7780],"mapped","ṥ"],[[7781,7781],"valid"],[[7782,7782],"mapped","ṧ"],[[7783,7783],"valid"],[[7784,7784],"mapped","ṩ"],[[7785,7785],"valid"],[[7786,7786],"mapped","ṫ"],[[7787,7787],"valid"],[[7788,7788],"mapped","ṭ"],[[7789,7789],"valid"],[[7790,7790],"mapped","ṯ"],[[7791,7791],"valid"],[[7792,7792],"mapped","ṱ"],[[7793,7793],"valid"],[[7794,7794],"mapped","ṳ"],[[7795,7795],"valid"],[[7796,7796],"mapped","ṵ"],[[7797,7797],"valid"],[[7798,7798],"mapped","ṷ"],[[7799,7799],"valid"],[[7800,7800],"mapped","ṹ"],[[7801,7801],"valid"],[[7802,7802],"mapped","ṻ"],[[7803,7803],"valid"],[[7804,7804],"mapped","ṽ"],[[7805,7805],"valid"],[[7806,7806],"mapped","ṿ"],[[7807,7807],"valid"],[[7808,7808],"mapped","ẁ"],[[7809,7809],"valid"],[[7810,7810],"mapped","ẃ"],[[7811,7811],"valid"],[[7812,7812],"mapped","ẅ"],[[7813,7813],"valid"],[[7814,7814],"mapped","ẇ"],[[7815,7815],"valid"],[[7816,7816],"mapped","ẉ"],[[7817,7817],"valid"],[[7818,7818],"mapped","ẋ"],[[7819,7819],"valid"],[[7820,7820],"mapped","ẍ"],[[7821,7821],"valid"],[[7822,7822],"mapped","ẏ"],[[7823,7823],"valid"],[[7824,7824],"mapped","ẑ"],[[7825,7825],"valid"],[[7826,7826],"mapped","ẓ"],[[7827,7827],"valid"],[[7828,7828],"mapped","ẕ"],[[7829,7833],"valid"],[[7834,7834],"mapped","aʾ"],[[7835,7835],"mapped","ṡ"],[[7836,7837],"valid"],[[7838,7838],"mapped","ss"],[[7839,7839],"valid"],[[7840,7840],"mapped","ạ"],[[7841,7841],"valid"],[[7842,7842],"mapped","ả"],[[7843,7843],"valid"],[[7844,7844],"mapped","ấ"],[[7845,7845],"valid"],[[7846,7846],"mapped","ầ"],[[7847,7847],"valid"],[[7848,7848],"mapped","ẩ"],[[7849,7849],"valid"],[[7850,7850],"mapped","ẫ"],[[7851,7851],"valid"],[[7852,7852],"mapped","ậ"],[[7853,7853],"valid"],[[7854,7854],"mapped","ắ"],[[7855,7855],"valid"],[[7856,7856],"mapped","ằ"],[[7857,7857],"valid"],[[7858,7858],"mapped","ẳ"],[[7859,7859],"valid"],[[7860,7860],"mapped","ẵ"],[[7861,7861],"valid"],[[7862,7862],"mapped","ặ"],[[7863,7863],"valid"],[[7864,7864],"mapped","ẹ"],[[7865,7865],"valid"],[[7866,7866],"mapped","ẻ"],[[7867,7867],"valid"],[[7868,7868],"mapped","ẽ"],[[7869,7869],"valid"],[[7870,7870],"mapped","ế"],[[7871,7871],"valid"],[[7872,7872],"mapped","ề"],[[7873,7873],"valid"],[[7874,7874],"mapped","ể"],[[7875,7875],"valid"],[[7876,7876],"mapped","ễ"],[[7877,7877],"valid"],[[7878,7878],"mapped","ệ"],[[7879,7879],"valid"],[[7880,7880],"mapped","ỉ"],[[7881,7881],"valid"],[[7882,7882],"mapped","ị"],[[7883,7883],"valid"],[[7884,7884],"mapped","ọ"],[[7885,7885],"valid"],[[7886,7886],"mapped","ỏ"],[[7887,7887],"valid"],[[7888,7888],"mapped","ố"],[[7889,7889],"valid"],[[7890,7890],"mapped","ồ"],[[7891,7891],"valid"],[[7892,7892],"mapped","ổ"],[[7893,7893],"valid"],[[7894,7894],"mapped","ỗ"],[[7895,7895],"valid"],[[7896,7896],"mapped","ộ"],[[7897,7897],"valid"],[[7898,7898],"mapped","ớ"],[[7899,7899],"valid"],[[7900,7900],"mapped","ờ"],[[7901,7901],"valid"],[[7902,7902],"mapped","ở"],[[7903,7903],"valid"],[[7904,7904],"mapped","ỡ"],[[7905,7905],"valid"],[[7906,7906],"mapped","ợ"],[[7907,7907],"valid"],[[7908,7908],"mapped","ụ"],[[7909,7909],"valid"],[[7910,7910],"mapped","ủ"],[[7911,7911],"valid"],[[7912,7912],"mapped","ứ"],[[7913,7913],"valid"],[[7914,7914],"mapped","ừ"],[[7915,7915],"valid"],[[7916,7916],"mapped","ử"],[[7917,7917],"valid"],[[7918,7918],"mapped","ữ"],[[7919,7919],"valid"],[[7920,7920],"mapped","ự"],[[7921,7921],"valid"],[[7922,7922],"mapped","ỳ"],[[7923,7923],"valid"],[[7924,7924],"mapped","ỵ"],[[7925,7925],"valid"],[[7926,7926],"mapped","ỷ"],[[7927,7927],"valid"],[[7928,7928],"mapped","ỹ"],[[7929,7929],"valid"],[[7930,7930],"mapped","ỻ"],[[7931,7931],"valid"],[[7932,7932],"mapped","ỽ"],[[7933,7933],"valid"],[[7934,7934],"mapped","ỿ"],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped","ἀ"],[[7945,7945],"mapped","ἁ"],[[7946,7946],"mapped","ἂ"],[[7947,7947],"mapped","ἃ"],[[7948,7948],"mapped","ἄ"],[[7949,7949],"mapped","ἅ"],[[7950,7950],"mapped","ἆ"],[[7951,7951],"mapped","ἇ"],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped","ἐ"],[[7961,7961],"mapped","ἑ"],[[7962,7962],"mapped","ἒ"],[[7963,7963],"mapped","ἓ"],[[7964,7964],"mapped","ἔ"],[[7965,7965],"mapped","ἕ"],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped","ἠ"],[[7977,7977],"mapped","ἡ"],[[7978,7978],"mapped","ἢ"],[[7979,7979],"mapped","ἣ"],[[7980,7980],"mapped","ἤ"],[[7981,7981],"mapped","ἥ"],[[7982,7982],"mapped","ἦ"],[[7983,7983],"mapped","ἧ"],[[7984,7991],"valid"],[[7992,7992],"mapped","ἰ"],[[7993,7993],"mapped","ἱ"],[[7994,7994],"mapped","ἲ"],[[7995,7995],"mapped","ἳ"],[[7996,7996],"mapped","ἴ"],[[7997,7997],"mapped","ἵ"],[[7998,7998],"mapped","ἶ"],[[7999,7999],"mapped","ἷ"],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped","ὀ"],[[8009,8009],"mapped","ὁ"],[[8010,8010],"mapped","ὂ"],[[8011,8011],"mapped","ὃ"],[[8012,8012],"mapped","ὄ"],[[8013,8013],"mapped","ὅ"],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped","ὑ"],[[8026,8026],"disallowed"],[[8027,8027],"mapped","ὓ"],[[8028,8028],"disallowed"],[[8029,8029],"mapped","ὕ"],[[8030,8030],"disallowed"],[[8031,8031],"mapped","ὗ"],[[8032,8039],"valid"],[[8040,8040],"mapped","ὠ"],[[8041,8041],"mapped","ὡ"],[[8042,8042],"mapped","ὢ"],[[8043,8043],"mapped","ὣ"],[[8044,8044],"mapped","ὤ"],[[8045,8045],"mapped","ὥ"],[[8046,8046],"mapped","ὦ"],[[8047,8047],"mapped","ὧ"],[[8048,8048],"valid"],[[8049,8049],"mapped","ά"],[[8050,8050],"valid"],[[8051,8051],"mapped","έ"],[[8052,8052],"valid"],[[8053,8053],"mapped","ή"],[[8054,8054],"valid"],[[8055,8055],"mapped","ί"],[[8056,8056],"valid"],[[8057,8057],"mapped","ό"],[[8058,8058],"valid"],[[8059,8059],"mapped","ύ"],[[8060,8060],"valid"],[[8061,8061],"mapped","ώ"],[[8062,8063],"disallowed"],[[8064,8064],"mapped","ἀι"],[[8065,8065],"mapped","ἁι"],[[8066,8066],"mapped","ἂι"],[[8067,8067],"mapped","ἃι"],[[8068,8068],"mapped","ἄι"],[[8069,8069],"mapped","ἅι"],[[8070,8070],"mapped","ἆι"],[[8071,8071],"mapped","ἇι"],[[8072,8072],"mapped","ἀι"],[[8073,8073],"mapped","ἁι"],[[8074,8074],"mapped","ἂι"],[[8075,8075],"mapped","ἃι"],[[8076,8076],"mapped","ἄι"],[[8077,8077],"mapped","ἅι"],[[8078,8078],"mapped","ἆι"],[[8079,8079],"mapped","ἇι"],[[8080,8080],"mapped","ἠι"],[[8081,8081],"mapped","ἡι"],[[8082,8082],"mapped","ἢι"],[[8083,8083],"mapped","ἣι"],[[8084,8084],"mapped","ἤι"],[[8085,8085],"mapped","ἥι"],[[8086,8086],"mapped","ἦι"],[[8087,8087],"mapped","ἧι"],[[8088,8088],"mapped","ἠι"],[[8089,8089],"mapped","ἡι"],[[8090,8090],"mapped","ἢι"],[[8091,8091],"mapped","ἣι"],[[8092,8092],"mapped","ἤι"],[[8093,8093],"mapped","ἥι"],[[8094,8094],"mapped","ἦι"],[[8095,8095],"mapped","ἧι"],[[8096,8096],"mapped","ὠι"],[[8097,8097],"mapped","ὡι"],[[8098,8098],"mapped","ὢι"],[[8099,8099],"mapped","ὣι"],[[8100,8100],"mapped","ὤι"],[[8101,8101],"mapped","ὥι"],[[8102,8102],"mapped","ὦι"],[[8103,8103],"mapped","ὧι"],[[8104,8104],"mapped","ὠι"],[[8105,8105],"mapped","ὡι"],[[8106,8106],"mapped","ὢι"],[[8107,8107],"mapped","ὣι"],[[8108,8108],"mapped","ὤι"],[[8109,8109],"mapped","ὥι"],[[8110,8110],"mapped","ὦι"],[[8111,8111],"mapped","ὧι"],[[8112,8113],"valid"],[[8114,8114],"mapped","ὰι"],[[8115,8115],"mapped","αι"],[[8116,8116],"mapped","άι"],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped","ᾶι"],[[8120,8120],"mapped","ᾰ"],[[8121,8121],"mapped","ᾱ"],[[8122,8122],"mapped","ὰ"],[[8123,8123],"mapped","ά"],[[8124,8124],"mapped","αι"],[[8125,8125],"disallowed_STD3_mapped"," ̓"],[[8126,8126],"mapped","ι"],[[8127,8127],"disallowed_STD3_mapped"," ̓"],[[8128,8128],"disallowed_STD3_mapped"," ͂"],[[8129,8129],"disallowed_STD3_mapped"," ̈͂"],[[8130,8130],"mapped","ὴι"],[[8131,8131],"mapped","ηι"],[[8132,8132],"mapped","ήι"],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped","ῆι"],[[8136,8136],"mapped","ὲ"],[[8137,8137],"mapped","έ"],[[8138,8138],"mapped","ὴ"],[[8139,8139],"mapped","ή"],[[8140,8140],"mapped","ηι"],[[8141,8141],"disallowed_STD3_mapped"," ̓̀"],[[8142,8142],"disallowed_STD3_mapped"," ̓́"],[[8143,8143],"disallowed_STD3_mapped"," ̓͂"],[[8144,8146],"valid"],[[8147,8147],"mapped","ΐ"],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped","ῐ"],[[8153,8153],"mapped","ῑ"],[[8154,8154],"mapped","ὶ"],[[8155,8155],"mapped","ί"],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped"," ̔̀"],[[8158,8158],"disallowed_STD3_mapped"," ̔́"],[[8159,8159],"disallowed_STD3_mapped"," ̔͂"],[[8160,8162],"valid"],[[8163,8163],"mapped","ΰ"],[[8164,8167],"valid"],[[8168,8168],"mapped","ῠ"],[[8169,8169],"mapped","ῡ"],[[8170,8170],"mapped","ὺ"],[[8171,8171],"mapped","ύ"],[[8172,8172],"mapped","ῥ"],[[8173,8173],"disallowed_STD3_mapped"," ̈̀"],[[8174,8174],"disallowed_STD3_mapped"," ̈́"],[[8175,8175],"disallowed_STD3_mapped","`"],[[8176,8177],"disallowed"],[[8178,8178],"mapped","ὼι"],[[8179,8179],"mapped","ωι"],[[8180,8180],"mapped","ώι"],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped","ῶι"],[[8184,8184],"mapped","ὸ"],[[8185,8185],"mapped","ό"],[[8186,8186],"mapped","ὼ"],[[8187,8187],"mapped","ώ"],[[8188,8188],"mapped","ωι"],[[8189,8189],"disallowed_STD3_mapped"," ́"],[[8190,8190],"disallowed_STD3_mapped"," ̔"],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped"," "],[[8203,8203],"ignored"],[[8204,8205],"deviation",""],[[8206,8207],"disallowed"],[[8208,8208],"valid","","NV8"],[[8209,8209],"mapped","‐"],[[8210,8214],"valid","","NV8"],[[8215,8215],"disallowed_STD3_mapped"," ̳"],[[8216,8227],"valid","","NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid","","NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped"," "],[[8240,8242],"valid","","NV8"],[[8243,8243],"mapped","′′"],[[8244,8244],"mapped","′′′"],[[8245,8245],"valid","","NV8"],[[8246,8246],"mapped","‵‵"],[[8247,8247],"mapped","‵‵‵"],[[8248,8251],"valid","","NV8"],[[8252,8252],"disallowed_STD3_mapped","!!"],[[8253,8253],"valid","","NV8"],[[8254,8254],"disallowed_STD3_mapped"," ̅"],[[8255,8262],"valid","","NV8"],[[8263,8263],"disallowed_STD3_mapped","??"],[[8264,8264],"disallowed_STD3_mapped","?!"],[[8265,8265],"disallowed_STD3_mapped","!?"],[[8266,8269],"valid","","NV8"],[[8270,8274],"valid","","NV8"],[[8275,8276],"valid","","NV8"],[[8277,8278],"valid","","NV8"],[[8279,8279],"mapped","′′′′"],[[8280,8286],"valid","","NV8"],[[8287,8287],"disallowed_STD3_mapped"," "],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped","0"],[[8305,8305],"mapped","i"],[[8306,8307],"disallowed"],[[8308,8308],"mapped","4"],[[8309,8309],"mapped","5"],[[8310,8310],"mapped","6"],[[8311,8311],"mapped","7"],[[8312,8312],"mapped","8"],[[8313,8313],"mapped","9"],[[8314,8314],"disallowed_STD3_mapped","+"],[[8315,8315],"mapped","−"],[[8316,8316],"disallowed_STD3_mapped","="],[[8317,8317],"disallowed_STD3_mapped","("],[[8318,8318],"disallowed_STD3_mapped",")"],[[8319,8319],"mapped","n"],[[8320,8320],"mapped","0"],[[8321,8321],"mapped","1"],[[8322,8322],"mapped","2"],[[8323,8323],"mapped","3"],[[8324,8324],"mapped","4"],[[8325,8325],"mapped","5"],[[8326,8326],"mapped","6"],[[8327,8327],"mapped","7"],[[8328,8328],"mapped","8"],[[8329,8329],"mapped","9"],[[8330,8330],"disallowed_STD3_mapped","+"],[[8331,8331],"mapped","−"],[[8332,8332],"disallowed_STD3_mapped","="],[[8333,8333],"disallowed_STD3_mapped","("],[[8334,8334],"disallowed_STD3_mapped",")"],[[8335,8335],"disallowed"],[[8336,8336],"mapped","a"],[[8337,8337],"mapped","e"],[[8338,8338],"mapped","o"],[[8339,8339],"mapped","x"],[[8340,8340],"mapped","ə"],[[8341,8341],"mapped","h"],[[8342,8342],"mapped","k"],[[8343,8343],"mapped","l"],[[8344,8344],"mapped","m"],[[8345,8345],"mapped","n"],[[8346,8346],"mapped","p"],[[8347,8347],"mapped","s"],[[8348,8348],"mapped","t"],[[8349,8351],"disallowed"],[[8352,8359],"valid","","NV8"],[[8360,8360],"mapped","rs"],[[8361,8362],"valid","","NV8"],[[8363,8363],"valid","","NV8"],[[8364,8364],"valid","","NV8"],[[8365,8367],"valid","","NV8"],[[8368,8369],"valid","","NV8"],[[8370,8373],"valid","","NV8"],[[8374,8376],"valid","","NV8"],[[8377,8377],"valid","","NV8"],[[8378,8378],"valid","","NV8"],[[8379,8381],"valid","","NV8"],[[8382,8382],"valid","","NV8"],[[8383,8383],"valid","","NV8"],[[8384,8399],"disallowed"],[[8400,8417],"valid","","NV8"],[[8418,8419],"valid","","NV8"],[[8420,8426],"valid","","NV8"],[[8427,8427],"valid","","NV8"],[[8428,8431],"valid","","NV8"],[[8432,8432],"valid","","NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped","a/c"],[[8449,8449],"disallowed_STD3_mapped","a/s"],[[8450,8450],"mapped","c"],[[8451,8451],"mapped","°c"],[[8452,8452],"valid","","NV8"],[[8453,8453],"disallowed_STD3_mapped","c/o"],[[8454,8454],"disallowed_STD3_mapped","c/u"],[[8455,8455],"mapped","ɛ"],[[8456,8456],"valid","","NV8"],[[8457,8457],"mapped","°f"],[[8458,8458],"mapped","g"],[[8459,8462],"mapped","h"],[[8463,8463],"mapped","ħ"],[[8464,8465],"mapped","i"],[[8466,8467],"mapped","l"],[[8468,8468],"valid","","NV8"],[[8469,8469],"mapped","n"],[[8470,8470],"mapped","no"],[[8471,8472],"valid","","NV8"],[[8473,8473],"mapped","p"],[[8474,8474],"mapped","q"],[[8475,8477],"mapped","r"],[[8478,8479],"valid","","NV8"],[[8480,8480],"mapped","sm"],[[8481,8481],"mapped","tel"],[[8482,8482],"mapped","tm"],[[8483,8483],"valid","","NV8"],[[8484,8484],"mapped","z"],[[8485,8485],"valid","","NV8"],[[8486,8486],"mapped","ω"],[[8487,8487],"valid","","NV8"],[[8488,8488],"mapped","z"],[[8489,8489],"valid","","NV8"],[[8490,8490],"mapped","k"],[[8491,8491],"mapped","å"],[[8492,8492],"mapped","b"],[[8493,8493],"mapped","c"],[[8494,8494],"valid","","NV8"],[[8495,8496],"mapped","e"],[[8497,8497],"mapped","f"],[[8498,8498],"disallowed"],[[8499,8499],"mapped","m"],[[8500,8500],"mapped","o"],[[8501,8501],"mapped","א"],[[8502,8502],"mapped","ב"],[[8503,8503],"mapped","ג"],[[8504,8504],"mapped","ד"],[[8505,8505],"mapped","i"],[[8506,8506],"valid","","NV8"],[[8507,8507],"mapped","fax"],[[8508,8508],"mapped","π"],[[8509,8510],"mapped","γ"],[[8511,8511],"mapped","π"],[[8512,8512],"mapped","∑"],[[8513,8516],"valid","","NV8"],[[8517,8518],"mapped","d"],[[8519,8519],"mapped","e"],[[8520,8520],"mapped","i"],[[8521,8521],"mapped","j"],[[8522,8523],"valid","","NV8"],[[8524,8524],"valid","","NV8"],[[8525,8525],"valid","","NV8"],[[8526,8526],"valid"],[[8527,8527],"valid","","NV8"],[[8528,8528],"mapped","1⁄7"],[[8529,8529],"mapped","1⁄9"],[[8530,8530],"mapped","1⁄10"],[[8531,8531],"mapped","1⁄3"],[[8532,8532],"mapped","2⁄3"],[[8533,8533],"mapped","1⁄5"],[[8534,8534],"mapped","2⁄5"],[[8535,8535],"mapped","3⁄5"],[[8536,8536],"mapped","4⁄5"],[[8537,8537],"mapped","1⁄6"],[[8538,8538],"mapped","5⁄6"],[[8539,8539],"mapped","1⁄8"],[[8540,8540],"mapped","3⁄8"],[[8541,8541],"mapped","5⁄8"],[[8542,8542],"mapped","7⁄8"],[[8543,8543],"mapped","1⁄"],[[8544,8544],"mapped","i"],[[8545,8545],"mapped","ii"],[[8546,8546],"mapped","iii"],[[8547,8547],"mapped","iv"],[[8548,8548],"mapped","v"],[[8549,8549],"mapped","vi"],[[8550,8550],"mapped","vii"],[[8551,8551],"mapped","viii"],[[8552,8552],"mapped","ix"],[[8553,8553],"mapped","x"],[[8554,8554],"mapped","xi"],[[8555,8555],"mapped","xii"],[[8556,8556],"mapped","l"],[[8557,8557],"mapped","c"],[[8558,8558],"mapped","d"],[[8559,8559],"mapped","m"],[[8560,8560],"mapped","i"],[[8561,8561],"mapped","ii"],[[8562,8562],"mapped","iii"],[[8563,8563],"mapped","iv"],[[8564,8564],"mapped","v"],[[8565,8565],"mapped","vi"],[[8566,8566],"mapped","vii"],[[8567,8567],"mapped","viii"],[[8568,8568],"mapped","ix"],[[8569,8569],"mapped","x"],[[8570,8570],"mapped","xi"],[[8571,8571],"mapped","xii"],[[8572,8572],"mapped","l"],[[8573,8573],"mapped","c"],[[8574,8574],"mapped","d"],[[8575,8575],"mapped","m"],[[8576,8578],"valid","","NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid","","NV8"],[[8585,8585],"mapped","0⁄3"],[[8586,8587],"valid","","NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid","","NV8"],[[8683,8691],"valid","","NV8"],[[8692,8703],"valid","","NV8"],[[8704,8747],"valid","","NV8"],[[8748,8748],"mapped","∫∫"],[[8749,8749],"mapped","∫∫∫"],[[8750,8750],"valid","","NV8"],[[8751,8751],"mapped","∮∮"],[[8752,8752],"mapped","∮∮∮"],[[8753,8799],"valid","","NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid","","NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid","","NV8"],[[8946,8959],"valid","","NV8"],[[8960,8960],"valid","","NV8"],[[8961,8961],"valid","","NV8"],[[8962,9e3],"valid","","NV8"],[[9001,9001],"mapped","〈"],[[9002,9002],"mapped","〉"],[[9003,9082],"valid","","NV8"],[[9083,9083],"valid","","NV8"],[[9084,9084],"valid","","NV8"],[[9085,9114],"valid","","NV8"],[[9115,9166],"valid","","NV8"],[[9167,9168],"valid","","NV8"],[[9169,9179],"valid","","NV8"],[[9180,9191],"valid","","NV8"],[[9192,9192],"valid","","NV8"],[[9193,9203],"valid","","NV8"],[[9204,9210],"valid","","NV8"],[[9211,9214],"valid","","NV8"],[[9215,9215],"valid","","NV8"],[[9216,9252],"valid","","NV8"],[[9253,9254],"valid","","NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid","","NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped","1"],[[9313,9313],"mapped","2"],[[9314,9314],"mapped","3"],[[9315,9315],"mapped","4"],[[9316,9316],"mapped","5"],[[9317,9317],"mapped","6"],[[9318,9318],"mapped","7"],[[9319,9319],"mapped","8"],[[9320,9320],"mapped","9"],[[9321,9321],"mapped","10"],[[9322,9322],"mapped","11"],[[9323,9323],"mapped","12"],[[9324,9324],"mapped","13"],[[9325,9325],"mapped","14"],[[9326,9326],"mapped","15"],[[9327,9327],"mapped","16"],[[9328,9328],"mapped","17"],[[9329,9329],"mapped","18"],[[9330,9330],"mapped","19"],[[9331,9331],"mapped","20"],[[9332,9332],"disallowed_STD3_mapped","(1)"],[[9333,9333],"disallowed_STD3_mapped","(2)"],[[9334,9334],"disallowed_STD3_mapped","(3)"],[[9335,9335],"disallowed_STD3_mapped","(4)"],[[9336,9336],"disallowed_STD3_mapped","(5)"],[[9337,9337],"disallowed_STD3_mapped","(6)"],[[9338,9338],"disallowed_STD3_mapped","(7)"],[[9339,9339],"disallowed_STD3_mapped","(8)"],[[9340,9340],"disallowed_STD3_mapped","(9)"],[[9341,9341],"disallowed_STD3_mapped","(10)"],[[9342,9342],"disallowed_STD3_mapped","(11)"],[[9343,9343],"disallowed_STD3_mapped","(12)"],[[9344,9344],"disallowed_STD3_mapped","(13)"],[[9345,9345],"disallowed_STD3_mapped","(14)"],[[9346,9346],"disallowed_STD3_mapped","(15)"],[[9347,9347],"disallowed_STD3_mapped","(16)"],[[9348,9348],"disallowed_STD3_mapped","(17)"],[[9349,9349],"disallowed_STD3_mapped","(18)"],[[9350,9350],"disallowed_STD3_mapped","(19)"],[[9351,9351],"disallowed_STD3_mapped","(20)"],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped","(a)"],[[9373,9373],"disallowed_STD3_mapped","(b)"],[[9374,9374],"disallowed_STD3_mapped","(c)"],[[9375,9375],"disallowed_STD3_mapped","(d)"],[[9376,9376],"disallowed_STD3_mapped","(e)"],[[9377,9377],"disallowed_STD3_mapped","(f)"],[[9378,9378],"disallowed_STD3_mapped","(g)"],[[9379,9379],"disallowed_STD3_mapped","(h)"],[[9380,9380],"disallowed_STD3_mapped","(i)"],[[9381,9381],"disallowed_STD3_mapped","(j)"],[[9382,9382],"disallowed_STD3_mapped","(k)"],[[9383,9383],"disallowed_STD3_mapped","(l)"],[[9384,9384],"disallowed_STD3_mapped","(m)"],[[9385,9385],"disallowed_STD3_mapped","(n)"],[[9386,9386],"disallowed_STD3_mapped","(o)"],[[9387,9387],"disallowed_STD3_mapped","(p)"],[[9388,9388],"disallowed_STD3_mapped","(q)"],[[9389,9389],"disallowed_STD3_mapped","(r)"],[[9390,9390],"disallowed_STD3_mapped","(s)"],[[9391,9391],"disallowed_STD3_mapped","(t)"],[[9392,9392],"disallowed_STD3_mapped","(u)"],[[9393,9393],"disallowed_STD3_mapped","(v)"],[[9394,9394],"disallowed_STD3_mapped","(w)"],[[9395,9395],"disallowed_STD3_mapped","(x)"],[[9396,9396],"disallowed_STD3_mapped","(y)"],[[9397,9397],"disallowed_STD3_mapped","(z)"],[[9398,9398],"mapped","a"],[[9399,9399],"mapped","b"],[[9400,9400],"mapped","c"],[[9401,9401],"mapped","d"],[[9402,9402],"mapped","e"],[[9403,9403],"mapped","f"],[[9404,9404],"mapped","g"],[[9405,9405],"mapped","h"],[[9406,9406],"mapped","i"],[[9407,9407],"mapped","j"],[[9408,9408],"mapped","k"],[[9409,9409],"mapped","l"],[[9410,9410],"mapped","m"],[[9411,9411],"mapped","n"],[[9412,9412],"mapped","o"],[[9413,9413],"mapped","p"],[[9414,9414],"mapped","q"],[[9415,9415],"mapped","r"],[[9416,9416],"mapped","s"],[[9417,9417],"mapped","t"],[[9418,9418],"mapped","u"],[[9419,9419],"mapped","v"],[[9420,9420],"mapped","w"],[[9421,9421],"mapped","x"],[[9422,9422],"mapped","y"],[[9423,9423],"mapped","z"],[[9424,9424],"mapped","a"],[[9425,9425],"mapped","b"],[[9426,9426],"mapped","c"],[[9427,9427],"mapped","d"],[[9428,9428],"mapped","e"],[[9429,9429],"mapped","f"],[[9430,9430],"mapped","g"],[[9431,9431],"mapped","h"],[[9432,9432],"mapped","i"],[[9433,9433],"mapped","j"],[[9434,9434],"mapped","k"],[[9435,9435],"mapped","l"],[[9436,9436],"mapped","m"],[[9437,9437],"mapped","n"],[[9438,9438],"mapped","o"],[[9439,9439],"mapped","p"],[[9440,9440],"mapped","q"],[[9441,9441],"mapped","r"],[[9442,9442],"mapped","s"],[[9443,9443],"mapped","t"],[[9444,9444],"mapped","u"],[[9445,9445],"mapped","v"],[[9446,9446],"mapped","w"],[[9447,9447],"mapped","x"],[[9448,9448],"mapped","y"],[[9449,9449],"mapped","z"],[[9450,9450],"mapped","0"],[[9451,9470],"valid","","NV8"],[[9471,9471],"valid","","NV8"],[[9472,9621],"valid","","NV8"],[[9622,9631],"valid","","NV8"],[[9632,9711],"valid","","NV8"],[[9712,9719],"valid","","NV8"],[[9720,9727],"valid","","NV8"],[[9728,9747],"valid","","NV8"],[[9748,9749],"valid","","NV8"],[[9750,9751],"valid","","NV8"],[[9752,9752],"valid","","NV8"],[[9753,9753],"valid","","NV8"],[[9754,9839],"valid","","NV8"],[[9840,9841],"valid","","NV8"],[[9842,9853],"valid","","NV8"],[[9854,9855],"valid","","NV8"],[[9856,9865],"valid","","NV8"],[[9866,9873],"valid","","NV8"],[[9874,9884],"valid","","NV8"],[[9885,9885],"valid","","NV8"],[[9886,9887],"valid","","NV8"],[[9888,9889],"valid","","NV8"],[[9890,9905],"valid","","NV8"],[[9906,9906],"valid","","NV8"],[[9907,9916],"valid","","NV8"],[[9917,9919],"valid","","NV8"],[[9920,9923],"valid","","NV8"],[[9924,9933],"valid","","NV8"],[[9934,9934],"valid","","NV8"],[[9935,9953],"valid","","NV8"],[[9954,9954],"valid","","NV8"],[[9955,9955],"valid","","NV8"],[[9956,9959],"valid","","NV8"],[[9960,9983],"valid","","NV8"],[[9984,9984],"valid","","NV8"],[[9985,9988],"valid","","NV8"],[[9989,9989],"valid","","NV8"],[[9990,9993],"valid","","NV8"],[[9994,9995],"valid","","NV8"],[[9996,10023],"valid","","NV8"],[[10024,10024],"valid","","NV8"],[[10025,10059],"valid","","NV8"],[[10060,10060],"valid","","NV8"],[[10061,10061],"valid","","NV8"],[[10062,10062],"valid","","NV8"],[[10063,10066],"valid","","NV8"],[[10067,10069],"valid","","NV8"],[[10070,10070],"valid","","NV8"],[[10071,10071],"valid","","NV8"],[[10072,10078],"valid","","NV8"],[[10079,10080],"valid","","NV8"],[[10081,10087],"valid","","NV8"],[[10088,10101],"valid","","NV8"],[[10102,10132],"valid","","NV8"],[[10133,10135],"valid","","NV8"],[[10136,10159],"valid","","NV8"],[[10160,10160],"valid","","NV8"],[[10161,10174],"valid","","NV8"],[[10175,10175],"valid","","NV8"],[[10176,10182],"valid","","NV8"],[[10183,10186],"valid","","NV8"],[[10187,10187],"valid","","NV8"],[[10188,10188],"valid","","NV8"],[[10189,10189],"valid","","NV8"],[[10190,10191],"valid","","NV8"],[[10192,10219],"valid","","NV8"],[[10220,10223],"valid","","NV8"],[[10224,10239],"valid","","NV8"],[[10240,10495],"valid","","NV8"],[[10496,10763],"valid","","NV8"],[[10764,10764],"mapped","∫∫∫∫"],[[10765,10867],"valid","","NV8"],[[10868,10868],"disallowed_STD3_mapped","::="],[[10869,10869],"disallowed_STD3_mapped","=="],[[10870,10870],"disallowed_STD3_mapped","==="],[[10871,10971],"valid","","NV8"],[[10972,10972],"mapped","⫝̸"],[[10973,11007],"valid","","NV8"],[[11008,11021],"valid","","NV8"],[[11022,11027],"valid","","NV8"],[[11028,11034],"valid","","NV8"],[[11035,11039],"valid","","NV8"],[[11040,11043],"valid","","NV8"],[[11044,11084],"valid","","NV8"],[[11085,11087],"valid","","NV8"],[[11088,11092],"valid","","NV8"],[[11093,11097],"valid","","NV8"],[[11098,11123],"valid","","NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid","","NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid","","NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid","","NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid","","NV8"],[[11218,11218],"valid","","NV8"],[[11219,11243],"disallowed"],[[11244,11247],"valid","","NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped","ⰰ"],[[11265,11265],"mapped","ⰱ"],[[11266,11266],"mapped","ⰲ"],[[11267,11267],"mapped","ⰳ"],[[11268,11268],"mapped","ⰴ"],[[11269,11269],"mapped","ⰵ"],[[11270,11270],"mapped","ⰶ"],[[11271,11271],"mapped","ⰷ"],[[11272,11272],"mapped","ⰸ"],[[11273,11273],"mapped","ⰹ"],[[11274,11274],"mapped","ⰺ"],[[11275,11275],"mapped","ⰻ"],[[11276,11276],"mapped","ⰼ"],[[11277,11277],"mapped","ⰽ"],[[11278,11278],"mapped","ⰾ"],[[11279,11279],"mapped","ⰿ"],[[11280,11280],"mapped","ⱀ"],[[11281,11281],"mapped","ⱁ"],[[11282,11282],"mapped","ⱂ"],[[11283,11283],"mapped","ⱃ"],[[11284,11284],"mapped","ⱄ"],[[11285,11285],"mapped","ⱅ"],[[11286,11286],"mapped","ⱆ"],[[11287,11287],"mapped","ⱇ"],[[11288,11288],"mapped","ⱈ"],[[11289,11289],"mapped","ⱉ"],[[11290,11290],"mapped","ⱊ"],[[11291,11291],"mapped","ⱋ"],[[11292,11292],"mapped","ⱌ"],[[11293,11293],"mapped","ⱍ"],[[11294,11294],"mapped","ⱎ"],[[11295,11295],"mapped","ⱏ"],[[11296,11296],"mapped","ⱐ"],[[11297,11297],"mapped","ⱑ"],[[11298,11298],"mapped","ⱒ"],[[11299,11299],"mapped","ⱓ"],[[11300,11300],"mapped","ⱔ"],[[11301,11301],"mapped","ⱕ"],[[11302,11302],"mapped","ⱖ"],[[11303,11303],"mapped","ⱗ"],[[11304,11304],"mapped","ⱘ"],[[11305,11305],"mapped","ⱙ"],[[11306,11306],"mapped","ⱚ"],[[11307,11307],"mapped","ⱛ"],[[11308,11308],"mapped","ⱜ"],[[11309,11309],"mapped","ⱝ"],[[11310,11310],"mapped","ⱞ"],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped","ⱡ"],[[11361,11361],"valid"],[[11362,11362],"mapped","ɫ"],[[11363,11363],"mapped","ᵽ"],[[11364,11364],"mapped","ɽ"],[[11365,11366],"valid"],[[11367,11367],"mapped","ⱨ"],[[11368,11368],"valid"],[[11369,11369],"mapped","ⱪ"],[[11370,11370],"valid"],[[11371,11371],"mapped","ⱬ"],[[11372,11372],"valid"],[[11373,11373],"mapped","ɑ"],[[11374,11374],"mapped","ɱ"],[[11375,11375],"mapped","ɐ"],[[11376,11376],"mapped","ɒ"],[[11377,11377],"valid"],[[11378,11378],"mapped","ⱳ"],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped","ⱶ"],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped","j"],[[11389,11389],"mapped","v"],[[11390,11390],"mapped","ȿ"],[[11391,11391],"mapped","ɀ"],[[11392,11392],"mapped","ⲁ"],[[11393,11393],"valid"],[[11394,11394],"mapped","ⲃ"],[[11395,11395],"valid"],[[11396,11396],"mapped","ⲅ"],[[11397,11397],"valid"],[[11398,11398],"mapped","ⲇ"],[[11399,11399],"valid"],[[11400,11400],"mapped","ⲉ"],[[11401,11401],"valid"],[[11402,11402],"mapped","ⲋ"],[[11403,11403],"valid"],[[11404,11404],"mapped","ⲍ"],[[11405,11405],"valid"],[[11406,11406],"mapped","ⲏ"],[[11407,11407],"valid"],[[11408,11408],"mapped","ⲑ"],[[11409,11409],"valid"],[[11410,11410],"mapped","ⲓ"],[[11411,11411],"valid"],[[11412,11412],"mapped","ⲕ"],[[11413,11413],"valid"],[[11414,11414],"mapped","ⲗ"],[[11415,11415],"valid"],[[11416,11416],"mapped","ⲙ"],[[11417,11417],"valid"],[[11418,11418],"mapped","ⲛ"],[[11419,11419],"valid"],[[11420,11420],"mapped","ⲝ"],[[11421,11421],"valid"],[[11422,11422],"mapped","ⲟ"],[[11423,11423],"valid"],[[11424,11424],"mapped","ⲡ"],[[11425,11425],"valid"],[[11426,11426],"mapped","ⲣ"],[[11427,11427],"valid"],[[11428,11428],"mapped","ⲥ"],[[11429,11429],"valid"],[[11430,11430],"mapped","ⲧ"],[[11431,11431],"valid"],[[11432,11432],"mapped","ⲩ"],[[11433,11433],"valid"],[[11434,11434],"mapped","ⲫ"],[[11435,11435],"valid"],[[11436,11436],"mapped","ⲭ"],[[11437,11437],"valid"],[[11438,11438],"mapped","ⲯ"],[[11439,11439],"valid"],[[11440,11440],"mapped","ⲱ"],[[11441,11441],"valid"],[[11442,11442],"mapped","ⲳ"],[[11443,11443],"valid"],[[11444,11444],"mapped","ⲵ"],[[11445,11445],"valid"],[[11446,11446],"mapped","ⲷ"],[[11447,11447],"valid"],[[11448,11448],"mapped","ⲹ"],[[11449,11449],"valid"],[[11450,11450],"mapped","ⲻ"],[[11451,11451],"valid"],[[11452,11452],"mapped","ⲽ"],[[11453,11453],"valid"],[[11454,11454],"mapped","ⲿ"],[[11455,11455],"valid"],[[11456,11456],"mapped","ⳁ"],[[11457,11457],"valid"],[[11458,11458],"mapped","ⳃ"],[[11459,11459],"valid"],[[11460,11460],"mapped","ⳅ"],[[11461,11461],"valid"],[[11462,11462],"mapped","ⳇ"],[[11463,11463],"valid"],[[11464,11464],"mapped","ⳉ"],[[11465,11465],"valid"],[[11466,11466],"mapped","ⳋ"],[[11467,11467],"valid"],[[11468,11468],"mapped","ⳍ"],[[11469,11469],"valid"],[[11470,11470],"mapped","ⳏ"],[[11471,11471],"valid"],[[11472,11472],"mapped","ⳑ"],[[11473,11473],"valid"],[[11474,11474],"mapped","ⳓ"],[[11475,11475],"valid"],[[11476,11476],"mapped","ⳕ"],[[11477,11477],"valid"],[[11478,11478],"mapped","ⳗ"],[[11479,11479],"valid"],[[11480,11480],"mapped","ⳙ"],[[11481,11481],"valid"],[[11482,11482],"mapped","ⳛ"],[[11483,11483],"valid"],[[11484,11484],"mapped","ⳝ"],[[11485,11485],"valid"],[[11486,11486],"mapped","ⳟ"],[[11487,11487],"valid"],[[11488,11488],"mapped","ⳡ"],[[11489,11489],"valid"],[[11490,11490],"mapped","ⳣ"],[[11491,11492],"valid"],[[11493,11498],"valid","","NV8"],[[11499,11499],"mapped","ⳬ"],[[11500,11500],"valid"],[[11501,11501],"mapped","ⳮ"],[[11502,11505],"valid"],[[11506,11506],"mapped","ⳳ"],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid","","NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped","ⵡ"],[[11632,11632],"valid","","NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid","","NV8"],[[11800,11803],"valid","","NV8"],[[11804,11805],"valid","","NV8"],[[11806,11822],"valid","","NV8"],[[11823,11823],"valid"],[[11824,11824],"valid","","NV8"],[[11825,11825],"valid","","NV8"],[[11826,11835],"valid","","NV8"],[[11836,11842],"valid","","NV8"],[[11843,11844],"valid","","NV8"],[[11845,11849],"valid","","NV8"],[[11850,11903],"disallowed"],[[11904,11929],"valid","","NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid","","NV8"],[[11935,11935],"mapped","母"],[[11936,12018],"valid","","NV8"],[[12019,12019],"mapped","龟"],[[12020,12031],"disallowed"],[[12032,12032],"mapped","一"],[[12033,12033],"mapped","丨"],[[12034,12034],"mapped","丶"],[[12035,12035],"mapped","丿"],[[12036,12036],"mapped","乙"],[[12037,12037],"mapped","亅"],[[12038,12038],"mapped","二"],[[12039,12039],"mapped","亠"],[[12040,12040],"mapped","人"],[[12041,12041],"mapped","儿"],[[12042,12042],"mapped","入"],[[12043,12043],"mapped","八"],[[12044,12044],"mapped","冂"],[[12045,12045],"mapped","冖"],[[12046,12046],"mapped","冫"],[[12047,12047],"mapped","几"],[[12048,12048],"mapped","凵"],[[12049,12049],"mapped","刀"],[[12050,12050],"mapped","力"],[[12051,12051],"mapped","勹"],[[12052,12052],"mapped","匕"],[[12053,12053],"mapped","匚"],[[12054,12054],"mapped","匸"],[[12055,12055],"mapped","十"],[[12056,12056],"mapped","卜"],[[12057,12057],"mapped","卩"],[[12058,12058],"mapped","厂"],[[12059,12059],"mapped","厶"],[[12060,12060],"mapped","又"],[[12061,12061],"mapped","口"],[[12062,12062],"mapped","囗"],[[12063,12063],"mapped","土"],[[12064,12064],"mapped","士"],[[12065,12065],"mapped","夂"],[[12066,12066],"mapped","夊"],[[12067,12067],"mapped","夕"],[[12068,12068],"mapped","大"],[[12069,12069],"mapped","女"],[[12070,12070],"mapped","子"],[[12071,12071],"mapped","宀"],[[12072,12072],"mapped","寸"],[[12073,12073],"mapped","小"],[[12074,12074],"mapped","尢"],[[12075,12075],"mapped","尸"],[[12076,12076],"mapped","屮"],[[12077,12077],"mapped","山"],[[12078,12078],"mapped","巛"],[[12079,12079],"mapped","工"],[[12080,12080],"mapped","己"],[[12081,12081],"mapped","巾"],[[12082,12082],"mapped","干"],[[12083,12083],"mapped","幺"],[[12084,12084],"mapped","广"],[[12085,12085],"mapped","廴"],[[12086,12086],"mapped","廾"],[[12087,12087],"mapped","弋"],[[12088,12088],"mapped","弓"],[[12089,12089],"mapped","彐"],[[12090,12090],"mapped","彡"],[[12091,12091],"mapped","彳"],[[12092,12092],"mapped","心"],[[12093,12093],"mapped","戈"],[[12094,12094],"mapped","戶"],[[12095,12095],"mapped","手"],[[12096,12096],"mapped","支"],[[12097,12097],"mapped","攴"],[[12098,12098],"mapped","文"],[[12099,12099],"mapped","斗"],[[12100,12100],"mapped","斤"],[[12101,12101],"mapped","方"],[[12102,12102],"mapped","无"],[[12103,12103],"mapped","日"],[[12104,12104],"mapped","曰"],[[12105,12105],"mapped","月"],[[12106,12106],"mapped","木"],[[12107,12107],"mapped","欠"],[[12108,12108],"mapped","止"],[[12109,12109],"mapped","歹"],[[12110,12110],"mapped","殳"],[[12111,12111],"mapped","毋"],[[12112,12112],"mapped","比"],[[12113,12113],"mapped","毛"],[[12114,12114],"mapped","氏"],[[12115,12115],"mapped","气"],[[12116,12116],"mapped","水"],[[12117,12117],"mapped","火"],[[12118,12118],"mapped","爪"],[[12119,12119],"mapped","父"],[[12120,12120],"mapped","爻"],[[12121,12121],"mapped","爿"],[[12122,12122],"mapped","片"],[[12123,12123],"mapped","牙"],[[12124,12124],"mapped","牛"],[[12125,12125],"mapped","犬"],[[12126,12126],"mapped","玄"],[[12127,12127],"mapped","玉"],[[12128,12128],"mapped","瓜"],[[12129,12129],"mapped","瓦"],[[12130,12130],"mapped","甘"],[[12131,12131],"mapped","生"],[[12132,12132],"mapped","用"],[[12133,12133],"mapped","田"],[[12134,12134],"mapped","疋"],[[12135,12135],"mapped","疒"],[[12136,12136],"mapped","癶"],[[12137,12137],"mapped","白"],[[12138,12138],"mapped","皮"],[[12139,12139],"mapped","皿"],[[12140,12140],"mapped","目"],[[12141,12141],"mapped","矛"],[[12142,12142],"mapped","矢"],[[12143,12143],"mapped","石"],[[12144,12144],"mapped","示"],[[12145,12145],"mapped","禸"],[[12146,12146],"mapped","禾"],[[12147,12147],"mapped","穴"],[[12148,12148],"mapped","立"],[[12149,12149],"mapped","竹"],[[12150,12150],"mapped","米"],[[12151,12151],"mapped","糸"],[[12152,12152],"mapped","缶"],[[12153,12153],"mapped","网"],[[12154,12154],"mapped","羊"],[[12155,12155],"mapped","羽"],[[12156,12156],"mapped","老"],[[12157,12157],"mapped","而"],[[12158,12158],"mapped","耒"],[[12159,12159],"mapped","耳"],[[12160,12160],"mapped","聿"],[[12161,12161],"mapped","肉"],[[12162,12162],"mapped","臣"],[[12163,12163],"mapped","自"],[[12164,12164],"mapped","至"],[[12165,12165],"mapped","臼"],[[12166,12166],"mapped","舌"],[[12167,12167],"mapped","舛"],[[12168,12168],"mapped","舟"],[[12169,12169],"mapped","艮"],[[12170,12170],"mapped","色"],[[12171,12171],"mapped","艸"],[[12172,12172],"mapped","虍"],[[12173,12173],"mapped","虫"],[[12174,12174],"mapped","血"],[[12175,12175],"mapped","行"],[[12176,12176],"mapped","衣"],[[12177,12177],"mapped","襾"],[[12178,12178],"mapped","見"],[[12179,12179],"mapped","角"],[[12180,12180],"mapped","言"],[[12181,12181],"mapped","谷"],[[12182,12182],"mapped","豆"],[[12183,12183],"mapped","豕"],[[12184,12184],"mapped","豸"],[[12185,12185],"mapped","貝"],[[12186,12186],"mapped","赤"],[[12187,12187],"mapped","走"],[[12188,12188],"mapped","足"],[[12189,12189],"mapped","身"],[[12190,12190],"mapped","車"],[[12191,12191],"mapped","辛"],[[12192,12192],"mapped","辰"],[[12193,12193],"mapped","辵"],[[12194,12194],"mapped","邑"],[[12195,12195],"mapped","酉"],[[12196,12196],"mapped","釆"],[[12197,12197],"mapped","里"],[[12198,12198],"mapped","金"],[[12199,12199],"mapped","長"],[[12200,12200],"mapped","門"],[[12201,12201],"mapped","阜"],[[12202,12202],"mapped","隶"],[[12203,12203],"mapped","隹"],[[12204,12204],"mapped","雨"],[[12205,12205],"mapped","靑"],[[12206,12206],"mapped","非"],[[12207,12207],"mapped","面"],[[12208,12208],"mapped","革"],[[12209,12209],"mapped","韋"],[[12210,12210],"mapped","韭"],[[12211,12211],"mapped","音"],[[12212,12212],"mapped","頁"],[[12213,12213],"mapped","風"],[[12214,12214],"mapped","飛"],[[12215,12215],"mapped","食"],[[12216,12216],"mapped","首"],[[12217,12217],"mapped","香"],[[12218,12218],"mapped","馬"],[[12219,12219],"mapped","骨"],[[12220,12220],"mapped","高"],[[12221,12221],"mapped","髟"],[[12222,12222],"mapped","鬥"],[[12223,12223],"mapped","鬯"],[[12224,12224],"mapped","鬲"],[[12225,12225],"mapped","鬼"],[[12226,12226],"mapped","魚"],[[12227,12227],"mapped","鳥"],[[12228,12228],"mapped","鹵"],[[12229,12229],"mapped","鹿"],[[12230,12230],"mapped","麥"],[[12231,12231],"mapped","麻"],[[12232,12232],"mapped","黃"],[[12233,12233],"mapped","黍"],[[12234,12234],"mapped","黑"],[[12235,12235],"mapped","黹"],[[12236,12236],"mapped","黽"],[[12237,12237],"mapped","鼎"],[[12238,12238],"mapped","鼓"],[[12239,12239],"mapped","鼠"],[[12240,12240],"mapped","鼻"],[[12241,12241],"mapped","齊"],[[12242,12242],"mapped","齒"],[[12243,12243],"mapped","龍"],[[12244,12244],"mapped","龜"],[[12245,12245],"mapped","龠"],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped"," "],[[12289,12289],"valid","","NV8"],[[12290,12290],"mapped","."],[[12291,12292],"valid","","NV8"],[[12293,12295],"valid"],[[12296,12329],"valid","","NV8"],[[12330,12333],"valid"],[[12334,12341],"valid","","NV8"],[[12342,12342],"mapped","〒"],[[12343,12343],"valid","","NV8"],[[12344,12344],"mapped","十"],[[12345,12345],"mapped","卄"],[[12346,12346],"mapped","卅"],[[12347,12347],"valid","","NV8"],[[12348,12348],"valid"],[[12349,12349],"valid","","NV8"],[[12350,12350],"valid","","NV8"],[[12351,12351],"valid","","NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped"," ゙"],[[12444,12444],"disallowed_STD3_mapped"," ゚"],[[12445,12446],"valid"],[[12447,12447],"mapped","より"],[[12448,12448],"valid","","NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped","コト"],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12590],"valid"],[[12591,12592],"disallowed"],[[12593,12593],"mapped","ᄀ"],[[12594,12594],"mapped","ᄁ"],[[12595,12595],"mapped","ᆪ"],[[12596,12596],"mapped","ᄂ"],[[12597,12597],"mapped","ᆬ"],[[12598,12598],"mapped","ᆭ"],[[12599,12599],"mapped","ᄃ"],[[12600,12600],"mapped","ᄄ"],[[12601,12601],"mapped","ᄅ"],[[12602,12602],"mapped","ᆰ"],[[12603,12603],"mapped","ᆱ"],[[12604,12604],"mapped","ᆲ"],[[12605,12605],"mapped","ᆳ"],[[12606,12606],"mapped","ᆴ"],[[12607,12607],"mapped","ᆵ"],[[12608,12608],"mapped","ᄚ"],[[12609,12609],"mapped","ᄆ"],[[12610,12610],"mapped","ᄇ"],[[12611,12611],"mapped","ᄈ"],[[12612,12612],"mapped","ᄡ"],[[12613,12613],"mapped","ᄉ"],[[12614,12614],"mapped","ᄊ"],[[12615,12615],"mapped","ᄋ"],[[12616,12616],"mapped","ᄌ"],[[12617,12617],"mapped","ᄍ"],[[12618,12618],"mapped","ᄎ"],[[12619,12619],"mapped","ᄏ"],[[12620,12620],"mapped","ᄐ"],[[12621,12621],"mapped","ᄑ"],[[12622,12622],"mapped","ᄒ"],[[12623,12623],"mapped","ᅡ"],[[12624,12624],"mapped","ᅢ"],[[12625,12625],"mapped","ᅣ"],[[12626,12626],"mapped","ᅤ"],[[12627,12627],"mapped","ᅥ"],[[12628,12628],"mapped","ᅦ"],[[12629,12629],"mapped","ᅧ"],[[12630,12630],"mapped","ᅨ"],[[12631,12631],"mapped","ᅩ"],[[12632,12632],"mapped","ᅪ"],[[12633,12633],"mapped","ᅫ"],[[12634,12634],"mapped","ᅬ"],[[12635,12635],"mapped","ᅭ"],[[12636,12636],"mapped","ᅮ"],[[12637,12637],"mapped","ᅯ"],[[12638,12638],"mapped","ᅰ"],[[12639,12639],"mapped","ᅱ"],[[12640,12640],"mapped","ᅲ"],[[12641,12641],"mapped","ᅳ"],[[12642,12642],"mapped","ᅴ"],[[12643,12643],"mapped","ᅵ"],[[12644,12644],"disallowed"],[[12645,12645],"mapped","ᄔ"],[[12646,12646],"mapped","ᄕ"],[[12647,12647],"mapped","ᇇ"],[[12648,12648],"mapped","ᇈ"],[[12649,12649],"mapped","ᇌ"],[[12650,12650],"mapped","ᇎ"],[[12651,12651],"mapped","ᇓ"],[[12652,12652],"mapped","ᇗ"],[[12653,12653],"mapped","ᇙ"],[[12654,12654],"mapped","ᄜ"],[[12655,12655],"mapped","ᇝ"],[[12656,12656],"mapped","ᇟ"],[[12657,12657],"mapped","ᄝ"],[[12658,12658],"mapped","ᄞ"],[[12659,12659],"mapped","ᄠ"],[[12660,12660],"mapped","ᄢ"],[[12661,12661],"mapped","ᄣ"],[[12662,12662],"mapped","ᄧ"],[[12663,12663],"mapped","ᄩ"],[[12664,12664],"mapped","ᄫ"],[[12665,12665],"mapped","ᄬ"],[[12666,12666],"mapped","ᄭ"],[[12667,12667],"mapped","ᄮ"],[[12668,12668],"mapped","ᄯ"],[[12669,12669],"mapped","ᄲ"],[[12670,12670],"mapped","ᄶ"],[[12671,12671],"mapped","ᅀ"],[[12672,12672],"mapped","ᅇ"],[[12673,12673],"mapped","ᅌ"],[[12674,12674],"mapped","ᇱ"],[[12675,12675],"mapped","ᇲ"],[[12676,12676],"mapped","ᅗ"],[[12677,12677],"mapped","ᅘ"],[[12678,12678],"mapped","ᅙ"],[[12679,12679],"mapped","ᆄ"],[[12680,12680],"mapped","ᆅ"],[[12681,12681],"mapped","ᆈ"],[[12682,12682],"mapped","ᆑ"],[[12683,12683],"mapped","ᆒ"],[[12684,12684],"mapped","ᆔ"],[[12685,12685],"mapped","ᆞ"],[[12686,12686],"mapped","ᆡ"],[[12687,12687],"disallowed"],[[12688,12689],"valid","","NV8"],[[12690,12690],"mapped","一"],[[12691,12691],"mapped","二"],[[12692,12692],"mapped","三"],[[12693,12693],"mapped","四"],[[12694,12694],"mapped","上"],[[12695,12695],"mapped","中"],[[12696,12696],"mapped","下"],[[12697,12697],"mapped","甲"],[[12698,12698],"mapped","乙"],[[12699,12699],"mapped","丙"],[[12700,12700],"mapped","丁"],[[12701,12701],"mapped","天"],[[12702,12702],"mapped","地"],[[12703,12703],"mapped","人"],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid","","NV8"],[[12752,12771],"valid","","NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped","(ᄀ)"],[[12801,12801],"disallowed_STD3_mapped","(ᄂ)"],[[12802,12802],"disallowed_STD3_mapped","(ᄃ)"],[[12803,12803],"disallowed_STD3_mapped","(ᄅ)"],[[12804,12804],"disallowed_STD3_mapped","(ᄆ)"],[[12805,12805],"disallowed_STD3_mapped","(ᄇ)"],[[12806,12806],"disallowed_STD3_mapped","(ᄉ)"],[[12807,12807],"disallowed_STD3_mapped","(ᄋ)"],[[12808,12808],"disallowed_STD3_mapped","(ᄌ)"],[[12809,12809],"disallowed_STD3_mapped","(ᄎ)"],[[12810,12810],"disallowed_STD3_mapped","(ᄏ)"],[[12811,12811],"disallowed_STD3_mapped","(ᄐ)"],[[12812,12812],"disallowed_STD3_mapped","(ᄑ)"],[[12813,12813],"disallowed_STD3_mapped","(ᄒ)"],[[12814,12814],"disallowed_STD3_mapped","(가)"],[[12815,12815],"disallowed_STD3_mapped","(나)"],[[12816,12816],"disallowed_STD3_mapped","(다)"],[[12817,12817],"disallowed_STD3_mapped","(라)"],[[12818,12818],"disallowed_STD3_mapped","(마)"],[[12819,12819],"disallowed_STD3_mapped","(바)"],[[12820,12820],"disallowed_STD3_mapped","(사)"],[[12821,12821],"disallowed_STD3_mapped","(아)"],[[12822,12822],"disallowed_STD3_mapped","(자)"],[[12823,12823],"disallowed_STD3_mapped","(차)"],[[12824,12824],"disallowed_STD3_mapped","(카)"],[[12825,12825],"disallowed_STD3_mapped","(타)"],[[12826,12826],"disallowed_STD3_mapped","(파)"],[[12827,12827],"disallowed_STD3_mapped","(하)"],[[12828,12828],"disallowed_STD3_mapped","(주)"],[[12829,12829],"disallowed_STD3_mapped","(오전)"],[[12830,12830],"disallowed_STD3_mapped","(오후)"],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped","(一)"],[[12833,12833],"disallowed_STD3_mapped","(二)"],[[12834,12834],"disallowed_STD3_mapped","(三)"],[[12835,12835],"disallowed_STD3_mapped","(四)"],[[12836,12836],"disallowed_STD3_mapped","(五)"],[[12837,12837],"disallowed_STD3_mapped","(六)"],[[12838,12838],"disallowed_STD3_mapped","(七)"],[[12839,12839],"disallowed_STD3_mapped","(八)"],[[12840,12840],"disallowed_STD3_mapped","(九)"],[[12841,12841],"disallowed_STD3_mapped","(十)"],[[12842,12842],"disallowed_STD3_mapped","(月)"],[[12843,12843],"disallowed_STD3_mapped","(火)"],[[12844,12844],"disallowed_STD3_mapped","(水)"],[[12845,12845],"disallowed_STD3_mapped","(木)"],[[12846,12846],"disallowed_STD3_mapped","(金)"],[[12847,12847],"disallowed_STD3_mapped","(土)"],[[12848,12848],"disallowed_STD3_mapped","(日)"],[[12849,12849],"disallowed_STD3_mapped","(株)"],[[12850,12850],"disallowed_STD3_mapped","(有)"],[[12851,12851],"disallowed_STD3_mapped","(社)"],[[12852,12852],"disallowed_STD3_mapped","(名)"],[[12853,12853],"disallowed_STD3_mapped","(特)"],[[12854,12854],"disallowed_STD3_mapped","(財)"],[[12855,12855],"disallowed_STD3_mapped","(祝)"],[[12856,12856],"disallowed_STD3_mapped","(労)"],[[12857,12857],"disallowed_STD3_mapped","(代)"],[[12858,12858],"disallowed_STD3_mapped","(呼)"],[[12859,12859],"disallowed_STD3_mapped","(学)"],[[12860,12860],"disallowed_STD3_mapped","(監)"],[[12861,12861],"disallowed_STD3_mapped","(企)"],[[12862,12862],"disallowed_STD3_mapped","(資)"],[[12863,12863],"disallowed_STD3_mapped","(協)"],[[12864,12864],"disallowed_STD3_mapped","(祭)"],[[12865,12865],"disallowed_STD3_mapped","(休)"],[[12866,12866],"disallowed_STD3_mapped","(自)"],[[12867,12867],"disallowed_STD3_mapped","(至)"],[[12868,12868],"mapped","問"],[[12869,12869],"mapped","幼"],[[12870,12870],"mapped","文"],[[12871,12871],"mapped","箏"],[[12872,12879],"valid","","NV8"],[[12880,12880],"mapped","pte"],[[12881,12881],"mapped","21"],[[12882,12882],"mapped","22"],[[12883,12883],"mapped","23"],[[12884,12884],"mapped","24"],[[12885,12885],"mapped","25"],[[12886,12886],"mapped","26"],[[12887,12887],"mapped","27"],[[12888,12888],"mapped","28"],[[12889,12889],"mapped","29"],[[12890,12890],"mapped","30"],[[12891,12891],"mapped","31"],[[12892,12892],"mapped","32"],[[12893,12893],"mapped","33"],[[12894,12894],"mapped","34"],[[12895,12895],"mapped","35"],[[12896,12896],"mapped","ᄀ"],[[12897,12897],"mapped","ᄂ"],[[12898,12898],"mapped","ᄃ"],[[12899,12899],"mapped","ᄅ"],[[12900,12900],"mapped","ᄆ"],[[12901,12901],"mapped","ᄇ"],[[12902,12902],"mapped","ᄉ"],[[12903,12903],"mapped","ᄋ"],[[12904,12904],"mapped","ᄌ"],[[12905,12905],"mapped","ᄎ"],[[12906,12906],"mapped","ᄏ"],[[12907,12907],"mapped","ᄐ"],[[12908,12908],"mapped","ᄑ"],[[12909,12909],"mapped","ᄒ"],[[12910,12910],"mapped","가"],[[12911,12911],"mapped","나"],[[12912,12912],"mapped","다"],[[12913,12913],"mapped","라"],[[12914,12914],"mapped","마"],[[12915,12915],"mapped","바"],[[12916,12916],"mapped","사"],[[12917,12917],"mapped","아"],[[12918,12918],"mapped","자"],[[12919,12919],"mapped","차"],[[12920,12920],"mapped","카"],[[12921,12921],"mapped","타"],[[12922,12922],"mapped","파"],[[12923,12923],"mapped","하"],[[12924,12924],"mapped","참고"],[[12925,12925],"mapped","주의"],[[12926,12926],"mapped","우"],[[12927,12927],"valid","","NV8"],[[12928,12928],"mapped","一"],[[12929,12929],"mapped","二"],[[12930,12930],"mapped","三"],[[12931,12931],"mapped","四"],[[12932,12932],"mapped","五"],[[12933,12933],"mapped","六"],[[12934,12934],"mapped","七"],[[12935,12935],"mapped","八"],[[12936,12936],"mapped","九"],[[12937,12937],"mapped","十"],[[12938,12938],"mapped","月"],[[12939,12939],"mapped","火"],[[12940,12940],"mapped","水"],[[12941,12941],"mapped","木"],[[12942,12942],"mapped","金"],[[12943,12943],"mapped","土"],[[12944,12944],"mapped","日"],[[12945,12945],"mapped","株"],[[12946,12946],"mapped","有"],[[12947,12947],"mapped","社"],[[12948,12948],"mapped","名"],[[12949,12949],"mapped","特"],[[12950,12950],"mapped","財"],[[12951,12951],"mapped","祝"],[[12952,12952],"mapped","労"],[[12953,12953],"mapped","秘"],[[12954,12954],"mapped","男"],[[12955,12955],"mapped","女"],[[12956,12956],"mapped","適"],[[12957,12957],"mapped","優"],[[12958,12958],"mapped","印"],[[12959,12959],"mapped","注"],[[12960,12960],"mapped","項"],[[12961,12961],"mapped","休"],[[12962,12962],"mapped","写"],[[12963,12963],"mapped","正"],[[12964,12964],"mapped","上"],[[12965,12965],"mapped","中"],[[12966,12966],"mapped","下"],[[12967,12967],"mapped","左"],[[12968,12968],"mapped","右"],[[12969,12969],"mapped","医"],[[12970,12970],"mapped","宗"],[[12971,12971],"mapped","学"],[[12972,12972],"mapped","監"],[[12973,12973],"mapped","企"],[[12974,12974],"mapped","資"],[[12975,12975],"mapped","協"],[[12976,12976],"mapped","夜"],[[12977,12977],"mapped","36"],[[12978,12978],"mapped","37"],[[12979,12979],"mapped","38"],[[12980,12980],"mapped","39"],[[12981,12981],"mapped","40"],[[12982,12982],"mapped","41"],[[12983,12983],"mapped","42"],[[12984,12984],"mapped","43"],[[12985,12985],"mapped","44"],[[12986,12986],"mapped","45"],[[12987,12987],"mapped","46"],[[12988,12988],"mapped","47"],[[12989,12989],"mapped","48"],[[12990,12990],"mapped","49"],[[12991,12991],"mapped","50"],[[12992,12992],"mapped","1月"],[[12993,12993],"mapped","2月"],[[12994,12994],"mapped","3月"],[[12995,12995],"mapped","4月"],[[12996,12996],"mapped","5月"],[[12997,12997],"mapped","6月"],[[12998,12998],"mapped","7月"],[[12999,12999],"mapped","8月"],[[13e3,13e3],"mapped","9月"],[[13001,13001],"mapped","10月"],[[13002,13002],"mapped","11月"],[[13003,13003],"mapped","12月"],[[13004,13004],"mapped","hg"],[[13005,13005],"mapped","erg"],[[13006,13006],"mapped","ev"],[[13007,13007],"mapped","ltd"],[[13008,13008],"mapped","ア"],[[13009,13009],"mapped","イ"],[[13010,13010],"mapped","ウ"],[[13011,13011],"mapped","エ"],[[13012,13012],"mapped","オ"],[[13013,13013],"mapped","カ"],[[13014,13014],"mapped","キ"],[[13015,13015],"mapped","ク"],[[13016,13016],"mapped","ケ"],[[13017,13017],"mapped","コ"],[[13018,13018],"mapped","サ"],[[13019,13019],"mapped","シ"],[[13020,13020],"mapped","ス"],[[13021,13021],"mapped","セ"],[[13022,13022],"mapped","ソ"],[[13023,13023],"mapped","タ"],[[13024,13024],"mapped","チ"],[[13025,13025],"mapped","ツ"],[[13026,13026],"mapped","テ"],[[13027,13027],"mapped","ト"],[[13028,13028],"mapped","ナ"],[[13029,13029],"mapped","ニ"],[[13030,13030],"mapped","ヌ"],[[13031,13031],"mapped","ネ"],[[13032,13032],"mapped","ノ"],[[13033,13033],"mapped","ハ"],[[13034,13034],"mapped","ヒ"],[[13035,13035],"mapped","フ"],[[13036,13036],"mapped","ヘ"],[[13037,13037],"mapped","ホ"],[[13038,13038],"mapped","マ"],[[13039,13039],"mapped","ミ"],[[13040,13040],"mapped","ム"],[[13041,13041],"mapped","メ"],[[13042,13042],"mapped","モ"],[[13043,13043],"mapped","ヤ"],[[13044,13044],"mapped","ユ"],[[13045,13045],"mapped","ヨ"],[[13046,13046],"mapped","ラ"],[[13047,13047],"mapped","リ"],[[13048,13048],"mapped","ル"],[[13049,13049],"mapped","レ"],[[13050,13050],"mapped","ロ"],[[13051,13051],"mapped","ワ"],[[13052,13052],"mapped","ヰ"],[[13053,13053],"mapped","ヱ"],[[13054,13054],"mapped","ヲ"],[[13055,13055],"disallowed"],[[13056,13056],"mapped","アパート"],[[13057,13057],"mapped","アルファ"],[[13058,13058],"mapped","アンペア"],[[13059,13059],"mapped","アール"],[[13060,13060],"mapped","イニング"],[[13061,13061],"mapped","インチ"],[[13062,13062],"mapped","ウォン"],[[13063,13063],"mapped","エスクード"],[[13064,13064],"mapped","エーカー"],[[13065,13065],"mapped","オンス"],[[13066,13066],"mapped","オーム"],[[13067,13067],"mapped","カイリ"],[[13068,13068],"mapped","カラット"],[[13069,13069],"mapped","カロリー"],[[13070,13070],"mapped","ガロン"],[[13071,13071],"mapped","ガンマ"],[[13072,13072],"mapped","ギガ"],[[13073,13073],"mapped","ギニー"],[[13074,13074],"mapped","キュリー"],[[13075,13075],"mapped","ギルダー"],[[13076,13076],"mapped","キロ"],[[13077,13077],"mapped","キログラム"],[[13078,13078],"mapped","キロメートル"],[[13079,13079],"mapped","キロワット"],[[13080,13080],"mapped","グラム"],[[13081,13081],"mapped","グラムトン"],[[13082,13082],"mapped","クルゼイロ"],[[13083,13083],"mapped","クローネ"],[[13084,13084],"mapped","ケース"],[[13085,13085],"mapped","コルナ"],[[13086,13086],"mapped","コーポ"],[[13087,13087],"mapped","サイクル"],[[13088,13088],"mapped","サンチーム"],[[13089,13089],"mapped","シリング"],[[13090,13090],"mapped","センチ"],[[13091,13091],"mapped","セント"],[[13092,13092],"mapped","ダース"],[[13093,13093],"mapped","デシ"],[[13094,13094],"mapped","ドル"],[[13095,13095],"mapped","トン"],[[13096,13096],"mapped","ナノ"],[[13097,13097],"mapped","ノット"],[[13098,13098],"mapped","ハイツ"],[[13099,13099],"mapped","パーセント"],[[13100,13100],"mapped","パーツ"],[[13101,13101],"mapped","バーレル"],[[13102,13102],"mapped","ピアストル"],[[13103,13103],"mapped","ピクル"],[[13104,13104],"mapped","ピコ"],[[13105,13105],"mapped","ビル"],[[13106,13106],"mapped","ファラッド"],[[13107,13107],"mapped","フィート"],[[13108,13108],"mapped","ブッシェル"],[[13109,13109],"mapped","フラン"],[[13110,13110],"mapped","ヘクタール"],[[13111,13111],"mapped","ペソ"],[[13112,13112],"mapped","ペニヒ"],[[13113,13113],"mapped","ヘルツ"],[[13114,13114],"mapped","ペンス"],[[13115,13115],"mapped","ページ"],[[13116,13116],"mapped","ベータ"],[[13117,13117],"mapped","ポイント"],[[13118,13118],"mapped","ボルト"],[[13119,13119],"mapped","ホン"],[[13120,13120],"mapped","ポンド"],[[13121,13121],"mapped","ホール"],[[13122,13122],"mapped","ホーン"],[[13123,13123],"mapped","マイクロ"],[[13124,13124],"mapped","マイル"],[[13125,13125],"mapped","マッハ"],[[13126,13126],"mapped","マルク"],[[13127,13127],"mapped","マンション"],[[13128,13128],"mapped","ミクロン"],[[13129,13129],"mapped","ミリ"],[[13130,13130],"mapped","ミリバール"],[[13131,13131],"mapped","メガ"],[[13132,13132],"mapped","メガトン"],[[13133,13133],"mapped","メートル"],[[13134,13134],"mapped","ヤード"],[[13135,13135],"mapped","ヤール"],[[13136,13136],"mapped","ユアン"],[[13137,13137],"mapped","リットル"],[[13138,13138],"mapped","リラ"],[[13139,13139],"mapped","ルピー"],[[13140,13140],"mapped","ルーブル"],[[13141,13141],"mapped","レム"],[[13142,13142],"mapped","レントゲン"],[[13143,13143],"mapped","ワット"],[[13144,13144],"mapped","0点"],[[13145,13145],"mapped","1点"],[[13146,13146],"mapped","2点"],[[13147,13147],"mapped","3点"],[[13148,13148],"mapped","4点"],[[13149,13149],"mapped","5点"],[[13150,13150],"mapped","6点"],[[13151,13151],"mapped","7点"],[[13152,13152],"mapped","8点"],[[13153,13153],"mapped","9点"],[[13154,13154],"mapped","10点"],[[13155,13155],"mapped","11点"],[[13156,13156],"mapped","12点"],[[13157,13157],"mapped","13点"],[[13158,13158],"mapped","14点"],[[13159,13159],"mapped","15点"],[[13160,13160],"mapped","16点"],[[13161,13161],"mapped","17点"],[[13162,13162],"mapped","18点"],[[13163,13163],"mapped","19点"],[[13164,13164],"mapped","20点"],[[13165,13165],"mapped","21点"],[[13166,13166],"mapped","22点"],[[13167,13167],"mapped","23点"],[[13168,13168],"mapped","24点"],[[13169,13169],"mapped","hpa"],[[13170,13170],"mapped","da"],[[13171,13171],"mapped","au"],[[13172,13172],"mapped","bar"],[[13173,13173],"mapped","ov"],[[13174,13174],"mapped","pc"],[[13175,13175],"mapped","dm"],[[13176,13176],"mapped","dm2"],[[13177,13177],"mapped","dm3"],[[13178,13178],"mapped","iu"],[[13179,13179],"mapped","平成"],[[13180,13180],"mapped","昭和"],[[13181,13181],"mapped","大正"],[[13182,13182],"mapped","明治"],[[13183,13183],"mapped","株式会社"],[[13184,13184],"mapped","pa"],[[13185,13185],"mapped","na"],[[13186,13186],"mapped","μa"],[[13187,13187],"mapped","ma"],[[13188,13188],"mapped","ka"],[[13189,13189],"mapped","kb"],[[13190,13190],"mapped","mb"],[[13191,13191],"mapped","gb"],[[13192,13192],"mapped","cal"],[[13193,13193],"mapped","kcal"],[[13194,13194],"mapped","pf"],[[13195,13195],"mapped","nf"],[[13196,13196],"mapped","μf"],[[13197,13197],"mapped","μg"],[[13198,13198],"mapped","mg"],[[13199,13199],"mapped","kg"],[[13200,13200],"mapped","hz"],[[13201,13201],"mapped","khz"],[[13202,13202],"mapped","mhz"],[[13203,13203],"mapped","ghz"],[[13204,13204],"mapped","thz"],[[13205,13205],"mapped","μl"],[[13206,13206],"mapped","ml"],[[13207,13207],"mapped","dl"],[[13208,13208],"mapped","kl"],[[13209,13209],"mapped","fm"],[[13210,13210],"mapped","nm"],[[13211,13211],"mapped","μm"],[[13212,13212],"mapped","mm"],[[13213,13213],"mapped","cm"],[[13214,13214],"mapped","km"],[[13215,13215],"mapped","mm2"],[[13216,13216],"mapped","cm2"],[[13217,13217],"mapped","m2"],[[13218,13218],"mapped","km2"],[[13219,13219],"mapped","mm3"],[[13220,13220],"mapped","cm3"],[[13221,13221],"mapped","m3"],[[13222,13222],"mapped","km3"],[[13223,13223],"mapped","m∕s"],[[13224,13224],"mapped","m∕s2"],[[13225,13225],"mapped","pa"],[[13226,13226],"mapped","kpa"],[[13227,13227],"mapped","mpa"],[[13228,13228],"mapped","gpa"],[[13229,13229],"mapped","rad"],[[13230,13230],"mapped","rad∕s"],[[13231,13231],"mapped","rad∕s2"],[[13232,13232],"mapped","ps"],[[13233,13233],"mapped","ns"],[[13234,13234],"mapped","μs"],[[13235,13235],"mapped","ms"],[[13236,13236],"mapped","pv"],[[13237,13237],"mapped","nv"],[[13238,13238],"mapped","μv"],[[13239,13239],"mapped","mv"],[[13240,13240],"mapped","kv"],[[13241,13241],"mapped","mv"],[[13242,13242],"mapped","pw"],[[13243,13243],"mapped","nw"],[[13244,13244],"mapped","μw"],[[13245,13245],"mapped","mw"],[[13246,13246],"mapped","kw"],[[13247,13247],"mapped","mw"],[[13248,13248],"mapped","kω"],[[13249,13249],"mapped","mω"],[[13250,13250],"disallowed"],[[13251,13251],"mapped","bq"],[[13252,13252],"mapped","cc"],[[13253,13253],"mapped","cd"],[[13254,13254],"mapped","c∕kg"],[[13255,13255],"disallowed"],[[13256,13256],"mapped","db"],[[13257,13257],"mapped","gy"],[[13258,13258],"mapped","ha"],[[13259,13259],"mapped","hp"],[[13260,13260],"mapped","in"],[[13261,13261],"mapped","kk"],[[13262,13262],"mapped","km"],[[13263,13263],"mapped","kt"],[[13264,13264],"mapped","lm"],[[13265,13265],"mapped","ln"],[[13266,13266],"mapped","log"],[[13267,13267],"mapped","lx"],[[13268,13268],"mapped","mb"],[[13269,13269],"mapped","mil"],[[13270,13270],"mapped","mol"],[[13271,13271],"mapped","ph"],[[13272,13272],"disallowed"],[[13273,13273],"mapped","ppm"],[[13274,13274],"mapped","pr"],[[13275,13275],"mapped","sr"],[[13276,13276],"mapped","sv"],[[13277,13277],"mapped","wb"],[[13278,13278],"mapped","v∕m"],[[13279,13279],"mapped","a∕m"],[[13280,13280],"mapped","1日"],[[13281,13281],"mapped","2日"],[[13282,13282],"mapped","3日"],[[13283,13283],"mapped","4日"],[[13284,13284],"mapped","5日"],[[13285,13285],"mapped","6日"],[[13286,13286],"mapped","7日"],[[13287,13287],"mapped","8日"],[[13288,13288],"mapped","9日"],[[13289,13289],"mapped","10日"],[[13290,13290],"mapped","11日"],[[13291,13291],"mapped","12日"],[[13292,13292],"mapped","13日"],[[13293,13293],"mapped","14日"],[[13294,13294],"mapped","15日"],[[13295,13295],"mapped","16日"],[[13296,13296],"mapped","17日"],[[13297,13297],"mapped","18日"],[[13298,13298],"mapped","19日"],[[13299,13299],"mapped","20日"],[[13300,13300],"mapped","21日"],[[13301,13301],"mapped","22日"],[[13302,13302],"mapped","23日"],[[13303,13303],"mapped","24日"],[[13304,13304],"mapped","25日"],[[13305,13305],"mapped","26日"],[[13306,13306],"mapped","27日"],[[13307,13307],"mapped","28日"],[[13308,13308],"mapped","29日"],[[13309,13309],"mapped","30日"],[[13310,13310],"mapped","31日"],[[13311,13311],"mapped","gal"],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid","","NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40938],"valid"],[[40939,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid","","NV8"],[[42146,42147],"valid","","NV8"],[[42148,42163],"valid","","NV8"],[[42164,42164],"valid","","NV8"],[[42165,42176],"valid","","NV8"],[[42177,42177],"valid","","NV8"],[[42178,42180],"valid","","NV8"],[[42181,42181],"valid","","NV8"],[[42182,42182],"valid","","NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid","","NV8"],[[42240,42508],"valid"],[[42509,42511],"valid","","NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped","ꙁ"],[[42561,42561],"valid"],[[42562,42562],"mapped","ꙃ"],[[42563,42563],"valid"],[[42564,42564],"mapped","ꙅ"],[[42565,42565],"valid"],[[42566,42566],"mapped","ꙇ"],[[42567,42567],"valid"],[[42568,42568],"mapped","ꙉ"],[[42569,42569],"valid"],[[42570,42570],"mapped","ꙋ"],[[42571,42571],"valid"],[[42572,42572],"mapped","ꙍ"],[[42573,42573],"valid"],[[42574,42574],"mapped","ꙏ"],[[42575,42575],"valid"],[[42576,42576],"mapped","ꙑ"],[[42577,42577],"valid"],[[42578,42578],"mapped","ꙓ"],[[42579,42579],"valid"],[[42580,42580],"mapped","ꙕ"],[[42581,42581],"valid"],[[42582,42582],"mapped","ꙗ"],[[42583,42583],"valid"],[[42584,42584],"mapped","ꙙ"],[[42585,42585],"valid"],[[42586,42586],"mapped","ꙛ"],[[42587,42587],"valid"],[[42588,42588],"mapped","ꙝ"],[[42589,42589],"valid"],[[42590,42590],"mapped","ꙟ"],[[42591,42591],"valid"],[[42592,42592],"mapped","ꙡ"],[[42593,42593],"valid"],[[42594,42594],"mapped","ꙣ"],[[42595,42595],"valid"],[[42596,42596],"mapped","ꙥ"],[[42597,42597],"valid"],[[42598,42598],"mapped","ꙧ"],[[42599,42599],"valid"],[[42600,42600],"mapped","ꙩ"],[[42601,42601],"valid"],[[42602,42602],"mapped","ꙫ"],[[42603,42603],"valid"],[[42604,42604],"mapped","ꙭ"],[[42605,42607],"valid"],[[42608,42611],"valid","","NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid","","NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped","ꚁ"],[[42625,42625],"valid"],[[42626,42626],"mapped","ꚃ"],[[42627,42627],"valid"],[[42628,42628],"mapped","ꚅ"],[[42629,42629],"valid"],[[42630,42630],"mapped","ꚇ"],[[42631,42631],"valid"],[[42632,42632],"mapped","ꚉ"],[[42633,42633],"valid"],[[42634,42634],"mapped","ꚋ"],[[42635,42635],"valid"],[[42636,42636],"mapped","ꚍ"],[[42637,42637],"valid"],[[42638,42638],"mapped","ꚏ"],[[42639,42639],"valid"],[[42640,42640],"mapped","ꚑ"],[[42641,42641],"valid"],[[42642,42642],"mapped","ꚓ"],[[42643,42643],"valid"],[[42644,42644],"mapped","ꚕ"],[[42645,42645],"valid"],[[42646,42646],"mapped","ꚗ"],[[42647,42647],"valid"],[[42648,42648],"mapped","ꚙ"],[[42649,42649],"valid"],[[42650,42650],"mapped","ꚛ"],[[42651,42651],"valid"],[[42652,42652],"mapped","ъ"],[[42653,42653],"mapped","ь"],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid","","NV8"],[[42736,42737],"valid"],[[42738,42743],"valid","","NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid","","NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid","","NV8"],[[42786,42786],"mapped","ꜣ"],[[42787,42787],"valid"],[[42788,42788],"mapped","ꜥ"],[[42789,42789],"valid"],[[42790,42790],"mapped","ꜧ"],[[42791,42791],"valid"],[[42792,42792],"mapped","ꜩ"],[[42793,42793],"valid"],[[42794,42794],"mapped","ꜫ"],[[42795,42795],"valid"],[[42796,42796],"mapped","ꜭ"],[[42797,42797],"valid"],[[42798,42798],"mapped","ꜯ"],[[42799,42801],"valid"],[[42802,42802],"mapped","ꜳ"],[[42803,42803],"valid"],[[42804,42804],"mapped","ꜵ"],[[42805,42805],"valid"],[[42806,42806],"mapped","ꜷ"],[[42807,42807],"valid"],[[42808,42808],"mapped","ꜹ"],[[42809,42809],"valid"],[[42810,42810],"mapped","ꜻ"],[[42811,42811],"valid"],[[42812,42812],"mapped","ꜽ"],[[42813,42813],"valid"],[[42814,42814],"mapped","ꜿ"],[[42815,42815],"valid"],[[42816,42816],"mapped","ꝁ"],[[42817,42817],"valid"],[[42818,42818],"mapped","ꝃ"],[[42819,42819],"valid"],[[42820,42820],"mapped","ꝅ"],[[42821,42821],"valid"],[[42822,42822],"mapped","ꝇ"],[[42823,42823],"valid"],[[42824,42824],"mapped","ꝉ"],[[42825,42825],"valid"],[[42826,42826],"mapped","ꝋ"],[[42827,42827],"valid"],[[42828,42828],"mapped","ꝍ"],[[42829,42829],"valid"],[[42830,42830],"mapped","ꝏ"],[[42831,42831],"valid"],[[42832,42832],"mapped","ꝑ"],[[42833,42833],"valid"],[[42834,42834],"mapped","ꝓ"],[[42835,42835],"valid"],[[42836,42836],"mapped","ꝕ"],[[42837,42837],"valid"],[[42838,42838],"mapped","ꝗ"],[[42839,42839],"valid"],[[42840,42840],"mapped","ꝙ"],[[42841,42841],"valid"],[[42842,42842],"mapped","ꝛ"],[[42843,42843],"valid"],[[42844,42844],"mapped","ꝝ"],[[42845,42845],"valid"],[[42846,42846],"mapped","ꝟ"],[[42847,42847],"valid"],[[42848,42848],"mapped","ꝡ"],[[42849,42849],"valid"],[[42850,42850],"mapped","ꝣ"],[[42851,42851],"valid"],[[42852,42852],"mapped","ꝥ"],[[42853,42853],"valid"],[[42854,42854],"mapped","ꝧ"],[[42855,42855],"valid"],[[42856,42856],"mapped","ꝩ"],[[42857,42857],"valid"],[[42858,42858],"mapped","ꝫ"],[[42859,42859],"valid"],[[42860,42860],"mapped","ꝭ"],[[42861,42861],"valid"],[[42862,42862],"mapped","ꝯ"],[[42863,42863],"valid"],[[42864,42864],"mapped","ꝯ"],[[42865,42872],"valid"],[[42873,42873],"mapped","ꝺ"],[[42874,42874],"valid"],[[42875,42875],"mapped","ꝼ"],[[42876,42876],"valid"],[[42877,42877],"mapped","ᵹ"],[[42878,42878],"mapped","ꝿ"],[[42879,42879],"valid"],[[42880,42880],"mapped","ꞁ"],[[42881,42881],"valid"],[[42882,42882],"mapped","ꞃ"],[[42883,42883],"valid"],[[42884,42884],"mapped","ꞅ"],[[42885,42885],"valid"],[[42886,42886],"mapped","ꞇ"],[[42887,42888],"valid"],[[42889,42890],"valid","","NV8"],[[42891,42891],"mapped","ꞌ"],[[42892,42892],"valid"],[[42893,42893],"mapped","ɥ"],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped","ꞑ"],[[42897,42897],"valid"],[[42898,42898],"mapped","ꞓ"],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped","ꞗ"],[[42903,42903],"valid"],[[42904,42904],"mapped","ꞙ"],[[42905,42905],"valid"],[[42906,42906],"mapped","ꞛ"],[[42907,42907],"valid"],[[42908,42908],"mapped","ꞝ"],[[42909,42909],"valid"],[[42910,42910],"mapped","ꞟ"],[[42911,42911],"valid"],[[42912,42912],"mapped","ꞡ"],[[42913,42913],"valid"],[[42914,42914],"mapped","ꞣ"],[[42915,42915],"valid"],[[42916,42916],"mapped","ꞥ"],[[42917,42917],"valid"],[[42918,42918],"mapped","ꞧ"],[[42919,42919],"valid"],[[42920,42920],"mapped","ꞩ"],[[42921,42921],"valid"],[[42922,42922],"mapped","ɦ"],[[42923,42923],"mapped","ɜ"],[[42924,42924],"mapped","ɡ"],[[42925,42925],"mapped","ɬ"],[[42926,42926],"mapped","ɪ"],[[42927,42927],"disallowed"],[[42928,42928],"mapped","ʞ"],[[42929,42929],"mapped","ʇ"],[[42930,42930],"mapped","ʝ"],[[42931,42931],"mapped","ꭓ"],[[42932,42932],"mapped","ꞵ"],[[42933,42933],"valid"],[[42934,42934],"mapped","ꞷ"],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped","ħ"],[[43001,43001],"mapped","œ"],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid","","NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid","","NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid","","NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43205],"valid"],[[43206,43213],"disallowed"],[[43214,43215],"valid","","NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid","","NV8"],[[43259,43259],"valid"],[[43260,43260],"valid","","NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid","","NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid","","NV8"],[[43360,43388],"valid","","NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid","","NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid","","NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid","","NV8"],[[43616,43638],"valid"],[[43639,43641],"valid","","NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid","","NV8"],[[43744,43759],"valid"],[[43760,43761],"valid","","NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid","","NV8"],[[43868,43868],"mapped","ꜧ"],[[43869,43869],"mapped","ꬷ"],[[43870,43870],"mapped","ɫ"],[[43871,43871],"mapped","ꭒ"],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped","Ꭰ"],[[43889,43889],"mapped","Ꭱ"],[[43890,43890],"mapped","Ꭲ"],[[43891,43891],"mapped","Ꭳ"],[[43892,43892],"mapped","Ꭴ"],[[43893,43893],"mapped","Ꭵ"],[[43894,43894],"mapped","Ꭶ"],[[43895,43895],"mapped","Ꭷ"],[[43896,43896],"mapped","Ꭸ"],[[43897,43897],"mapped","Ꭹ"],[[43898,43898],"mapped","Ꭺ"],[[43899,43899],"mapped","Ꭻ"],[[43900,43900],"mapped","Ꭼ"],[[43901,43901],"mapped","Ꭽ"],[[43902,43902],"mapped","Ꭾ"],[[43903,43903],"mapped","Ꭿ"],[[43904,43904],"mapped","Ꮀ"],[[43905,43905],"mapped","Ꮁ"],[[43906,43906],"mapped","Ꮂ"],[[43907,43907],"mapped","Ꮃ"],[[43908,43908],"mapped","Ꮄ"],[[43909,43909],"mapped","Ꮅ"],[[43910,43910],"mapped","Ꮆ"],[[43911,43911],"mapped","Ꮇ"],[[43912,43912],"mapped","Ꮈ"],[[43913,43913],"mapped","Ꮉ"],[[43914,43914],"mapped","Ꮊ"],[[43915,43915],"mapped","Ꮋ"],[[43916,43916],"mapped","Ꮌ"],[[43917,43917],"mapped","Ꮍ"],[[43918,43918],"mapped","Ꮎ"],[[43919,43919],"mapped","Ꮏ"],[[43920,43920],"mapped","Ꮐ"],[[43921,43921],"mapped","Ꮑ"],[[43922,43922],"mapped","Ꮒ"],[[43923,43923],"mapped","Ꮓ"],[[43924,43924],"mapped","Ꮔ"],[[43925,43925],"mapped","Ꮕ"],[[43926,43926],"mapped","Ꮖ"],[[43927,43927],"mapped","Ꮗ"],[[43928,43928],"mapped","Ꮘ"],[[43929,43929],"mapped","Ꮙ"],[[43930,43930],"mapped","Ꮚ"],[[43931,43931],"mapped","Ꮛ"],[[43932,43932],"mapped","Ꮜ"],[[43933,43933],"mapped","Ꮝ"],[[43934,43934],"mapped","Ꮞ"],[[43935,43935],"mapped","Ꮟ"],[[43936,43936],"mapped","Ꮠ"],[[43937,43937],"mapped","Ꮡ"],[[43938,43938],"mapped","Ꮢ"],[[43939,43939],"mapped","Ꮣ"],[[43940,43940],"mapped","Ꮤ"],[[43941,43941],"mapped","Ꮥ"],[[43942,43942],"mapped","Ꮦ"],[[43943,43943],"mapped","Ꮧ"],[[43944,43944],"mapped","Ꮨ"],[[43945,43945],"mapped","Ꮩ"],[[43946,43946],"mapped","Ꮪ"],[[43947,43947],"mapped","Ꮫ"],[[43948,43948],"mapped","Ꮬ"],[[43949,43949],"mapped","Ꮭ"],[[43950,43950],"mapped","Ꮮ"],[[43951,43951],"mapped","Ꮯ"],[[43952,43952],"mapped","Ꮰ"],[[43953,43953],"mapped","Ꮱ"],[[43954,43954],"mapped","Ꮲ"],[[43955,43955],"mapped","Ꮳ"],[[43956,43956],"mapped","Ꮴ"],[[43957,43957],"mapped","Ꮵ"],[[43958,43958],"mapped","Ꮶ"],[[43959,43959],"mapped","Ꮷ"],[[43960,43960],"mapped","Ꮸ"],[[43961,43961],"mapped","Ꮹ"],[[43962,43962],"mapped","Ꮺ"],[[43963,43963],"mapped","Ꮻ"],[[43964,43964],"mapped","Ꮼ"],[[43965,43965],"mapped","Ꮽ"],[[43966,43966],"mapped","Ꮾ"],[[43967,43967],"mapped","Ꮿ"],[[43968,44010],"valid"],[[44011,44011],"valid","","NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid","","NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid","","NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped","豈"],[[63745,63745],"mapped","更"],[[63746,63746],"mapped","車"],[[63747,63747],"mapped","賈"],[[63748,63748],"mapped","滑"],[[63749,63749],"mapped","串"],[[63750,63750],"mapped","句"],[[63751,63752],"mapped","龜"],[[63753,63753],"mapped","契"],[[63754,63754],"mapped","金"],[[63755,63755],"mapped","喇"],[[63756,63756],"mapped","奈"],[[63757,63757],"mapped","懶"],[[63758,63758],"mapped","癩"],[[63759,63759],"mapped","羅"],[[63760,63760],"mapped","蘿"],[[63761,63761],"mapped","螺"],[[63762,63762],"mapped","裸"],[[63763,63763],"mapped","邏"],[[63764,63764],"mapped","樂"],[[63765,63765],"mapped","洛"],[[63766,63766],"mapped","烙"],[[63767,63767],"mapped","珞"],[[63768,63768],"mapped","落"],[[63769,63769],"mapped","酪"],[[63770,63770],"mapped","駱"],[[63771,63771],"mapped","亂"],[[63772,63772],"mapped","卵"],[[63773,63773],"mapped","欄"],[[63774,63774],"mapped","爛"],[[63775,63775],"mapped","蘭"],[[63776,63776],"mapped","鸞"],[[63777,63777],"mapped","嵐"],[[63778,63778],"mapped","濫"],[[63779,63779],"mapped","藍"],[[63780,63780],"mapped","襤"],[[63781,63781],"mapped","拉"],[[63782,63782],"mapped","臘"],[[63783,63783],"mapped","蠟"],[[63784,63784],"mapped","廊"],[[63785,63785],"mapped","朗"],[[63786,63786],"mapped","浪"],[[63787,63787],"mapped","狼"],[[63788,63788],"mapped","郎"],[[63789,63789],"mapped","來"],[[63790,63790],"mapped","冷"],[[63791,63791],"mapped","勞"],[[63792,63792],"mapped","擄"],[[63793,63793],"mapped","櫓"],[[63794,63794],"mapped","爐"],[[63795,63795],"mapped","盧"],[[63796,63796],"mapped","老"],[[63797,63797],"mapped","蘆"],[[63798,63798],"mapped","虜"],[[63799,63799],"mapped","路"],[[63800,63800],"mapped","露"],[[63801,63801],"mapped","魯"],[[63802,63802],"mapped","鷺"],[[63803,63803],"mapped","碌"],[[63804,63804],"mapped","祿"],[[63805,63805],"mapped","綠"],[[63806,63806],"mapped","菉"],[[63807,63807],"mapped","錄"],[[63808,63808],"mapped","鹿"],[[63809,63809],"mapped","論"],[[63810,63810],"mapped","壟"],[[63811,63811],"mapped","弄"],[[63812,63812],"mapped","籠"],[[63813,63813],"mapped","聾"],[[63814,63814],"mapped","牢"],[[63815,63815],"mapped","磊"],[[63816,63816],"mapped","賂"],[[63817,63817],"mapped","雷"],[[63818,63818],"mapped","壘"],[[63819,63819],"mapped","屢"],[[63820,63820],"mapped","樓"],[[63821,63821],"mapped","淚"],[[63822,63822],"mapped","漏"],[[63823,63823],"mapped","累"],[[63824,63824],"mapped","縷"],[[63825,63825],"mapped","陋"],[[63826,63826],"mapped","勒"],[[63827,63827],"mapped","肋"],[[63828,63828],"mapped","凜"],[[63829,63829],"mapped","凌"],[[63830,63830],"mapped","稜"],[[63831,63831],"mapped","綾"],[[63832,63832],"mapped","菱"],[[63833,63833],"mapped","陵"],[[63834,63834],"mapped","讀"],[[63835,63835],"mapped","拏"],[[63836,63836],"mapped","樂"],[[63837,63837],"mapped","諾"],[[63838,63838],"mapped","丹"],[[63839,63839],"mapped","寧"],[[63840,63840],"mapped","怒"],[[63841,63841],"mapped","率"],[[63842,63842],"mapped","異"],[[63843,63843],"mapped","北"],[[63844,63844],"mapped","磻"],[[63845,63845],"mapped","便"],[[63846,63846],"mapped","復"],[[63847,63847],"mapped","不"],[[63848,63848],"mapped","泌"],[[63849,63849],"mapped","數"],[[63850,63850],"mapped","索"],[[63851,63851],"mapped","參"],[[63852,63852],"mapped","塞"],[[63853,63853],"mapped","省"],[[63854,63854],"mapped","葉"],[[63855,63855],"mapped","說"],[[63856,63856],"mapped","殺"],[[63857,63857],"mapped","辰"],[[63858,63858],"mapped","沈"],[[63859,63859],"mapped","拾"],[[63860,63860],"mapped","若"],[[63861,63861],"mapped","掠"],[[63862,63862],"mapped","略"],[[63863,63863],"mapped","亮"],[[63864,63864],"mapped","兩"],[[63865,63865],"mapped","凉"],[[63866,63866],"mapped","梁"],[[63867,63867],"mapped","糧"],[[63868,63868],"mapped","良"],[[63869,63869],"mapped","諒"],[[63870,63870],"mapped","量"],[[63871,63871],"mapped","勵"],[[63872,63872],"mapped","呂"],[[63873,63873],"mapped","女"],[[63874,63874],"mapped","廬"],[[63875,63875],"mapped","旅"],[[63876,63876],"mapped","濾"],[[63877,63877],"mapped","礪"],[[63878,63878],"mapped","閭"],[[63879,63879],"mapped","驪"],[[63880,63880],"mapped","麗"],[[63881,63881],"mapped","黎"],[[63882,63882],"mapped","力"],[[63883,63883],"mapped","曆"],[[63884,63884],"mapped","歷"],[[63885,63885],"mapped","轢"],[[63886,63886],"mapped","年"],[[63887,63887],"mapped","憐"],[[63888,63888],"mapped","戀"],[[63889,63889],"mapped","撚"],[[63890,63890],"mapped","漣"],[[63891,63891],"mapped","煉"],[[63892,63892],"mapped","璉"],[[63893,63893],"mapped","秊"],[[63894,63894],"mapped","練"],[[63895,63895],"mapped","聯"],[[63896,63896],"mapped","輦"],[[63897,63897],"mapped","蓮"],[[63898,63898],"mapped","連"],[[63899,63899],"mapped","鍊"],[[63900,63900],"mapped","列"],[[63901,63901],"mapped","劣"],[[63902,63902],"mapped","咽"],[[63903,63903],"mapped","烈"],[[63904,63904],"mapped","裂"],[[63905,63905],"mapped","說"],[[63906,63906],"mapped","廉"],[[63907,63907],"mapped","念"],[[63908,63908],"mapped","捻"],[[63909,63909],"mapped","殮"],[[63910,63910],"mapped","簾"],[[63911,63911],"mapped","獵"],[[63912,63912],"mapped","令"],[[63913,63913],"mapped","囹"],[[63914,63914],"mapped","寧"],[[63915,63915],"mapped","嶺"],[[63916,63916],"mapped","怜"],[[63917,63917],"mapped","玲"],[[63918,63918],"mapped","瑩"],[[63919,63919],"mapped","羚"],[[63920,63920],"mapped","聆"],[[63921,63921],"mapped","鈴"],[[63922,63922],"mapped","零"],[[63923,63923],"mapped","靈"],[[63924,63924],"mapped","領"],[[63925,63925],"mapped","例"],[[63926,63926],"mapped","禮"],[[63927,63927],"mapped","醴"],[[63928,63928],"mapped","隸"],[[63929,63929],"mapped","惡"],[[63930,63930],"mapped","了"],[[63931,63931],"mapped","僚"],[[63932,63932],"mapped","寮"],[[63933,63933],"mapped","尿"],[[63934,63934],"mapped","料"],[[63935,63935],"mapped","樂"],[[63936,63936],"mapped","燎"],[[63937,63937],"mapped","療"],[[63938,63938],"mapped","蓼"],[[63939,63939],"mapped","遼"],[[63940,63940],"mapped","龍"],[[63941,63941],"mapped","暈"],[[63942,63942],"mapped","阮"],[[63943,63943],"mapped","劉"],[[63944,63944],"mapped","杻"],[[63945,63945],"mapped","柳"],[[63946,63946],"mapped","流"],[[63947,63947],"mapped","溜"],[[63948,63948],"mapped","琉"],[[63949,63949],"mapped","留"],[[63950,63950],"mapped","硫"],[[63951,63951],"mapped","紐"],[[63952,63952],"mapped","類"],[[63953,63953],"mapped","六"],[[63954,63954],"mapped","戮"],[[63955,63955],"mapped","陸"],[[63956,63956],"mapped","倫"],[[63957,63957],"mapped","崙"],[[63958,63958],"mapped","淪"],[[63959,63959],"mapped","輪"],[[63960,63960],"mapped","律"],[[63961,63961],"mapped","慄"],[[63962,63962],"mapped","栗"],[[63963,63963],"mapped","率"],[[63964,63964],"mapped","隆"],[[63965,63965],"mapped","利"],[[63966,63966],"mapped","吏"],[[63967,63967],"mapped","履"],[[63968,63968],"mapped","易"],[[63969,63969],"mapped","李"],[[63970,63970],"mapped","梨"],[[63971,63971],"mapped","泥"],[[63972,63972],"mapped","理"],[[63973,63973],"mapped","痢"],[[63974,63974],"mapped","罹"],[[63975,63975],"mapped","裏"],[[63976,63976],"mapped","裡"],[[63977,63977],"mapped","里"],[[63978,63978],"mapped","離"],[[63979,63979],"mapped","匿"],[[63980,63980],"mapped","溺"],[[63981,63981],"mapped","吝"],[[63982,63982],"mapped","燐"],[[63983,63983],"mapped","璘"],[[63984,63984],"mapped","藺"],[[63985,63985],"mapped","隣"],[[63986,63986],"mapped","鱗"],[[63987,63987],"mapped","麟"],[[63988,63988],"mapped","林"],[[63989,63989],"mapped","淋"],[[63990,63990],"mapped","臨"],[[63991,63991],"mapped","立"],[[63992,63992],"mapped","笠"],[[63993,63993],"mapped","粒"],[[63994,63994],"mapped","狀"],[[63995,63995],"mapped","炙"],[[63996,63996],"mapped","識"],[[63997,63997],"mapped","什"],[[63998,63998],"mapped","茶"],[[63999,63999],"mapped","刺"],[[64e3,64e3],"mapped","切"],[[64001,64001],"mapped","度"],[[64002,64002],"mapped","拓"],[[64003,64003],"mapped","糖"],[[64004,64004],"mapped","宅"],[[64005,64005],"mapped","洞"],[[64006,64006],"mapped","暴"],[[64007,64007],"mapped","輻"],[[64008,64008],"mapped","行"],[[64009,64009],"mapped","降"],[[64010,64010],"mapped","見"],[[64011,64011],"mapped","廓"],[[64012,64012],"mapped","兀"],[[64013,64013],"mapped","嗀"],[[64014,64015],"valid"],[[64016,64016],"mapped","塚"],[[64017,64017],"valid"],[[64018,64018],"mapped","晴"],[[64019,64020],"valid"],[[64021,64021],"mapped","凞"],[[64022,64022],"mapped","猪"],[[64023,64023],"mapped","益"],[[64024,64024],"mapped","礼"],[[64025,64025],"mapped","神"],[[64026,64026],"mapped","祥"],[[64027,64027],"mapped","福"],[[64028,64028],"mapped","靖"],[[64029,64029],"mapped","精"],[[64030,64030],"mapped","羽"],[[64031,64031],"valid"],[[64032,64032],"mapped","蘒"],[[64033,64033],"valid"],[[64034,64034],"mapped","諸"],[[64035,64036],"valid"],[[64037,64037],"mapped","逸"],[[64038,64038],"mapped","都"],[[64039,64041],"valid"],[[64042,64042],"mapped","飯"],[[64043,64043],"mapped","飼"],[[64044,64044],"mapped","館"],[[64045,64045],"mapped","鶴"],[[64046,64046],"mapped","郞"],[[64047,64047],"mapped","隷"],[[64048,64048],"mapped","侮"],[[64049,64049],"mapped","僧"],[[64050,64050],"mapped","免"],[[64051,64051],"mapped","勉"],[[64052,64052],"mapped","勤"],[[64053,64053],"mapped","卑"],[[64054,64054],"mapped","喝"],[[64055,64055],"mapped","嘆"],[[64056,64056],"mapped","器"],[[64057,64057],"mapped","塀"],[[64058,64058],"mapped","墨"],[[64059,64059],"mapped","層"],[[64060,64060],"mapped","屮"],[[64061,64061],"mapped","悔"],[[64062,64062],"mapped","慨"],[[64063,64063],"mapped","憎"],[[64064,64064],"mapped","懲"],[[64065,64065],"mapped","敏"],[[64066,64066],"mapped","既"],[[64067,64067],"mapped","暑"],[[64068,64068],"mapped","梅"],[[64069,64069],"mapped","海"],[[64070,64070],"mapped","渚"],[[64071,64071],"mapped","漢"],[[64072,64072],"mapped","煮"],[[64073,64073],"mapped","爫"],[[64074,64074],"mapped","琢"],[[64075,64075],"mapped","碑"],[[64076,64076],"mapped","社"],[[64077,64077],"mapped","祉"],[[64078,64078],"mapped","祈"],[[64079,64079],"mapped","祐"],[[64080,64080],"mapped","祖"],[[64081,64081],"mapped","祝"],[[64082,64082],"mapped","禍"],[[64083,64083],"mapped","禎"],[[64084,64084],"mapped","穀"],[[64085,64085],"mapped","突"],[[64086,64086],"mapped","節"],[[64087,64087],"mapped","練"],[[64088,64088],"mapped","縉"],[[64089,64089],"mapped","繁"],[[64090,64090],"mapped","署"],[[64091,64091],"mapped","者"],[[64092,64092],"mapped","臭"],[[64093,64094],"mapped","艹"],[[64095,64095],"mapped","著"],[[64096,64096],"mapped","褐"],[[64097,64097],"mapped","視"],[[64098,64098],"mapped","謁"],[[64099,64099],"mapped","謹"],[[64100,64100],"mapped","賓"],[[64101,64101],"mapped","贈"],[[64102,64102],"mapped","辶"],[[64103,64103],"mapped","逸"],[[64104,64104],"mapped","難"],[[64105,64105],"mapped","響"],[[64106,64106],"mapped","頻"],[[64107,64107],"mapped","恵"],[[64108,64108],"mapped","𤋮"],[[64109,64109],"mapped","舘"],[[64110,64111],"disallowed"],[[64112,64112],"mapped","並"],[[64113,64113],"mapped","况"],[[64114,64114],"mapped","全"],[[64115,64115],"mapped","侀"],[[64116,64116],"mapped","充"],[[64117,64117],"mapped","冀"],[[64118,64118],"mapped","勇"],[[64119,64119],"mapped","勺"],[[64120,64120],"mapped","喝"],[[64121,64121],"mapped","啕"],[[64122,64122],"mapped","喙"],[[64123,64123],"mapped","嗢"],[[64124,64124],"mapped","塚"],[[64125,64125],"mapped","墳"],[[64126,64126],"mapped","奄"],[[64127,64127],"mapped","奔"],[[64128,64128],"mapped","婢"],[[64129,64129],"mapped","嬨"],[[64130,64130],"mapped","廒"],[[64131,64131],"mapped","廙"],[[64132,64132],"mapped","彩"],[[64133,64133],"mapped","徭"],[[64134,64134],"mapped","惘"],[[64135,64135],"mapped","慎"],[[64136,64136],"mapped","愈"],[[64137,64137],"mapped","憎"],[[64138,64138],"mapped","慠"],[[64139,64139],"mapped","懲"],[[64140,64140],"mapped","戴"],[[64141,64141],"mapped","揄"],[[64142,64142],"mapped","搜"],[[64143,64143],"mapped","摒"],[[64144,64144],"mapped","敖"],[[64145,64145],"mapped","晴"],[[64146,64146],"mapped","朗"],[[64147,64147],"mapped","望"],[[64148,64148],"mapped","杖"],[[64149,64149],"mapped","歹"],[[64150,64150],"mapped","殺"],[[64151,64151],"mapped","流"],[[64152,64152],"mapped","滛"],[[64153,64153],"mapped","滋"],[[64154,64154],"mapped","漢"],[[64155,64155],"mapped","瀞"],[[64156,64156],"mapped","煮"],[[64157,64157],"mapped","瞧"],[[64158,64158],"mapped","爵"],[[64159,64159],"mapped","犯"],[[64160,64160],"mapped","猪"],[[64161,64161],"mapped","瑱"],[[64162,64162],"mapped","甆"],[[64163,64163],"mapped","画"],[[64164,64164],"mapped","瘝"],[[64165,64165],"mapped","瘟"],[[64166,64166],"mapped","益"],[[64167,64167],"mapped","盛"],[[64168,64168],"mapped","直"],[[64169,64169],"mapped","睊"],[[64170,64170],"mapped","着"],[[64171,64171],"mapped","磌"],[[64172,64172],"mapped","窱"],[[64173,64173],"mapped","節"],[[64174,64174],"mapped","类"],[[64175,64175],"mapped","絛"],[[64176,64176],"mapped","練"],[[64177,64177],"mapped","缾"],[[64178,64178],"mapped","者"],[[64179,64179],"mapped","荒"],[[64180,64180],"mapped","華"],[[64181,64181],"mapped","蝹"],[[64182,64182],"mapped","襁"],[[64183,64183],"mapped","覆"],[[64184,64184],"mapped","視"],[[64185,64185],"mapped","調"],[[64186,64186],"mapped","諸"],[[64187,64187],"mapped","請"],[[64188,64188],"mapped","謁"],[[64189,64189],"mapped","諾"],[[64190,64190],"mapped","諭"],[[64191,64191],"mapped","謹"],[[64192,64192],"mapped","變"],[[64193,64193],"mapped","贈"],[[64194,64194],"mapped","輸"],[[64195,64195],"mapped","遲"],[[64196,64196],"mapped","醙"],[[64197,64197],"mapped","鉶"],[[64198,64198],"mapped","陼"],[[64199,64199],"mapped","難"],[[64200,64200],"mapped","靖"],[[64201,64201],"mapped","韛"],[[64202,64202],"mapped","響"],[[64203,64203],"mapped","頋"],[[64204,64204],"mapped","頻"],[[64205,64205],"mapped","鬒"],[[64206,64206],"mapped","龜"],[[64207,64207],"mapped","𢡊"],[[64208,64208],"mapped","𢡄"],[[64209,64209],"mapped","𣏕"],[[64210,64210],"mapped","㮝"],[[64211,64211],"mapped","䀘"],[[64212,64212],"mapped","䀹"],[[64213,64213],"mapped","𥉉"],[[64214,64214],"mapped","𥳐"],[[64215,64215],"mapped","𧻓"],[[64216,64216],"mapped","齃"],[[64217,64217],"mapped","龎"],[[64218,64255],"disallowed"],[[64256,64256],"mapped","ff"],[[64257,64257],"mapped","fi"],[[64258,64258],"mapped","fl"],[[64259,64259],"mapped","ffi"],[[64260,64260],"mapped","ffl"],[[64261,64262],"mapped","st"],[[64263,64274],"disallowed"],[[64275,64275],"mapped","մն"],[[64276,64276],"mapped","մե"],[[64277,64277],"mapped","մի"],[[64278,64278],"mapped","վն"],[[64279,64279],"mapped","մխ"],[[64280,64284],"disallowed"],[[64285,64285],"mapped","יִ"],[[64286,64286],"valid"],[[64287,64287],"mapped","ײַ"],[[64288,64288],"mapped","ע"],[[64289,64289],"mapped","א"],[[64290,64290],"mapped","ד"],[[64291,64291],"mapped","ה"],[[64292,64292],"mapped","כ"],[[64293,64293],"mapped","ל"],[[64294,64294],"mapped","ם"],[[64295,64295],"mapped","ר"],[[64296,64296],"mapped","ת"],[[64297,64297],"disallowed_STD3_mapped","+"],[[64298,64298],"mapped","שׁ"],[[64299,64299],"mapped","שׂ"],[[64300,64300],"mapped","שּׁ"],[[64301,64301],"mapped","שּׂ"],[[64302,64302],"mapped","אַ"],[[64303,64303],"mapped","אָ"],[[64304,64304],"mapped","אּ"],[[64305,64305],"mapped","בּ"],[[64306,64306],"mapped","גּ"],[[64307,64307],"mapped","דּ"],[[64308,64308],"mapped","הּ"],[[64309,64309],"mapped","וּ"],[[64310,64310],"mapped","זּ"],[[64311,64311],"disallowed"],[[64312,64312],"mapped","טּ"],[[64313,64313],"mapped","יּ"],[[64314,64314],"mapped","ךּ"],[[64315,64315],"mapped","כּ"],[[64316,64316],"mapped","לּ"],[[64317,64317],"disallowed"],[[64318,64318],"mapped","מּ"],[[64319,64319],"disallowed"],[[64320,64320],"mapped","נּ"],[[64321,64321],"mapped","סּ"],[[64322,64322],"disallowed"],[[64323,64323],"mapped","ףּ"],[[64324,64324],"mapped","פּ"],[[64325,64325],"disallowed"],[[64326,64326],"mapped","צּ"],[[64327,64327],"mapped","קּ"],[[64328,64328],"mapped","רּ"],[[64329,64329],"mapped","שּ"],[[64330,64330],"mapped","תּ"],[[64331,64331],"mapped","וֹ"],[[64332,64332],"mapped","בֿ"],[[64333,64333],"mapped","כֿ"],[[64334,64334],"mapped","פֿ"],[[64335,64335],"mapped","אל"],[[64336,64337],"mapped","ٱ"],[[64338,64341],"mapped","ٻ"],[[64342,64345],"mapped","پ"],[[64346,64349],"mapped","ڀ"],[[64350,64353],"mapped","ٺ"],[[64354,64357],"mapped","ٿ"],[[64358,64361],"mapped","ٹ"],[[64362,64365],"mapped","ڤ"],[[64366,64369],"mapped","ڦ"],[[64370,64373],"mapped","ڄ"],[[64374,64377],"mapped","ڃ"],[[64378,64381],"mapped","چ"],[[64382,64385],"mapped","ڇ"],[[64386,64387],"mapped","ڍ"],[[64388,64389],"mapped","ڌ"],[[64390,64391],"mapped","ڎ"],[[64392,64393],"mapped","ڈ"],[[64394,64395],"mapped","ژ"],[[64396,64397],"mapped","ڑ"],[[64398,64401],"mapped","ک"],[[64402,64405],"mapped","گ"],[[64406,64409],"mapped","ڳ"],[[64410,64413],"mapped","ڱ"],[[64414,64415],"mapped","ں"],[[64416,64419],"mapped","ڻ"],[[64420,64421],"mapped","ۀ"],[[64422,64425],"mapped","ہ"],[[64426,64429],"mapped","ھ"],[[64430,64431],"mapped","ے"],[[64432,64433],"mapped","ۓ"],[[64434,64449],"valid","","NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped","ڭ"],[[64471,64472],"mapped","ۇ"],[[64473,64474],"mapped","ۆ"],[[64475,64476],"mapped","ۈ"],[[64477,64477],"mapped","ۇٴ"],[[64478,64479],"mapped","ۋ"],[[64480,64481],"mapped","ۅ"],[[64482,64483],"mapped","ۉ"],[[64484,64487],"mapped","ې"],[[64488,64489],"mapped","ى"],[[64490,64491],"mapped","ئا"],[[64492,64493],"mapped","ئە"],[[64494,64495],"mapped","ئو"],[[64496,64497],"mapped","ئۇ"],[[64498,64499],"mapped","ئۆ"],[[64500,64501],"mapped","ئۈ"],[[64502,64504],"mapped","ئې"],[[64505,64507],"mapped","ئى"],[[64508,64511],"mapped","ی"],[[64512,64512],"mapped","ئج"],[[64513,64513],"mapped","ئح"],[[64514,64514],"mapped","ئم"],[[64515,64515],"mapped","ئى"],[[64516,64516],"mapped","ئي"],[[64517,64517],"mapped","بج"],[[64518,64518],"mapped","بح"],[[64519,64519],"mapped","بخ"],[[64520,64520],"mapped","بم"],[[64521,64521],"mapped","بى"],[[64522,64522],"mapped","بي"],[[64523,64523],"mapped","تج"],[[64524,64524],"mapped","تح"],[[64525,64525],"mapped","تخ"],[[64526,64526],"mapped","تم"],[[64527,64527],"mapped","تى"],[[64528,64528],"mapped","تي"],[[64529,64529],"mapped","ثج"],[[64530,64530],"mapped","ثم"],[[64531,64531],"mapped","ثى"],[[64532,64532],"mapped","ثي"],[[64533,64533],"mapped","جح"],[[64534,64534],"mapped","جم"],[[64535,64535],"mapped","حج"],[[64536,64536],"mapped","حم"],[[64537,64537],"mapped","خج"],[[64538,64538],"mapped","خح"],[[64539,64539],"mapped","خم"],[[64540,64540],"mapped","سج"],[[64541,64541],"mapped","سح"],[[64542,64542],"mapped","سخ"],[[64543,64543],"mapped","سم"],[[64544,64544],"mapped","صح"],[[64545,64545],"mapped","صم"],[[64546,64546],"mapped","ضج"],[[64547,64547],"mapped","ضح"],[[64548,64548],"mapped","ضخ"],[[64549,64549],"mapped","ضم"],[[64550,64550],"mapped","طح"],[[64551,64551],"mapped","طم"],[[64552,64552],"mapped","ظم"],[[64553,64553],"mapped","عج"],[[64554,64554],"mapped","عم"],[[64555,64555],"mapped","غج"],[[64556,64556],"mapped","غم"],[[64557,64557],"mapped","فج"],[[64558,64558],"mapped","فح"],[[64559,64559],"mapped","فخ"],[[64560,64560],"mapped","فم"],[[64561,64561],"mapped","فى"],[[64562,64562],"mapped","في"],[[64563,64563],"mapped","قح"],[[64564,64564],"mapped","قم"],[[64565,64565],"mapped","قى"],[[64566,64566],"mapped","قي"],[[64567,64567],"mapped","كا"],[[64568,64568],"mapped","كج"],[[64569,64569],"mapped","كح"],[[64570,64570],"mapped","كخ"],[[64571,64571],"mapped","كل"],[[64572,64572],"mapped","كم"],[[64573,64573],"mapped","كى"],[[64574,64574],"mapped","كي"],[[64575,64575],"mapped","لج"],[[64576,64576],"mapped","لح"],[[64577,64577],"mapped","لخ"],[[64578,64578],"mapped","لم"],[[64579,64579],"mapped","لى"],[[64580,64580],"mapped","لي"],[[64581,64581],"mapped","مج"],[[64582,64582],"mapped","مح"],[[64583,64583],"mapped","مخ"],[[64584,64584],"mapped","مم"],[[64585,64585],"mapped","مى"],[[64586,64586],"mapped","مي"],[[64587,64587],"mapped","نج"],[[64588,64588],"mapped","نح"],[[64589,64589],"mapped","نخ"],[[64590,64590],"mapped","نم"],[[64591,64591],"mapped","نى"],[[64592,64592],"mapped","ني"],[[64593,64593],"mapped","هج"],[[64594,64594],"mapped","هم"],[[64595,64595],"mapped","هى"],[[64596,64596],"mapped","هي"],[[64597,64597],"mapped","يج"],[[64598,64598],"mapped","يح"],[[64599,64599],"mapped","يخ"],[[64600,64600],"mapped","يم"],[[64601,64601],"mapped","يى"],[[64602,64602],"mapped","يي"],[[64603,64603],"mapped","ذٰ"],[[64604,64604],"mapped","رٰ"],[[64605,64605],"mapped","ىٰ"],[[64606,64606],"disallowed_STD3_mapped"," ٌّ"],[[64607,64607],"disallowed_STD3_mapped"," ٍّ"],[[64608,64608],"disallowed_STD3_mapped"," َّ"],[[64609,64609],"disallowed_STD3_mapped"," ُّ"],[[64610,64610],"disallowed_STD3_mapped"," ِّ"],[[64611,64611],"disallowed_STD3_mapped"," ّٰ"],[[64612,64612],"mapped","ئر"],[[64613,64613],"mapped","ئز"],[[64614,64614],"mapped","ئم"],[[64615,64615],"mapped","ئن"],[[64616,64616],"mapped","ئى"],[[64617,64617],"mapped","ئي"],[[64618,64618],"mapped","بر"],[[64619,64619],"mapped","بز"],[[64620,64620],"mapped","بم"],[[64621,64621],"mapped","بن"],[[64622,64622],"mapped","بى"],[[64623,64623],"mapped","بي"],[[64624,64624],"mapped","تر"],[[64625,64625],"mapped","تز"],[[64626,64626],"mapped","تم"],[[64627,64627],"mapped","تن"],[[64628,64628],"mapped","تى"],[[64629,64629],"mapped","تي"],[[64630,64630],"mapped","ثر"],[[64631,64631],"mapped","ثز"],[[64632,64632],"mapped","ثم"],[[64633,64633],"mapped","ثن"],[[64634,64634],"mapped","ثى"],[[64635,64635],"mapped","ثي"],[[64636,64636],"mapped","فى"],[[64637,64637],"mapped","في"],[[64638,64638],"mapped","قى"],[[64639,64639],"mapped","قي"],[[64640,64640],"mapped","كا"],[[64641,64641],"mapped","كل"],[[64642,64642],"mapped","كم"],[[64643,64643],"mapped","كى"],[[64644,64644],"mapped","كي"],[[64645,64645],"mapped","لم"],[[64646,64646],"mapped","لى"],[[64647,64647],"mapped","لي"],[[64648,64648],"mapped","ما"],[[64649,64649],"mapped","مم"],[[64650,64650],"mapped","نر"],[[64651,64651],"mapped","نز"],[[64652,64652],"mapped","نم"],[[64653,64653],"mapped","نن"],[[64654,64654],"mapped","نى"],[[64655,64655],"mapped","ني"],[[64656,64656],"mapped","ىٰ"],[[64657,64657],"mapped","ير"],[[64658,64658],"mapped","يز"],[[64659,64659],"mapped","يم"],[[64660,64660],"mapped","ين"],[[64661,64661],"mapped","يى"],[[64662,64662],"mapped","يي"],[[64663,64663],"mapped","ئج"],[[64664,64664],"mapped","ئح"],[[64665,64665],"mapped","ئخ"],[[64666,64666],"mapped","ئم"],[[64667,64667],"mapped","ئه"],[[64668,64668],"mapped","بج"],[[64669,64669],"mapped","بح"],[[64670,64670],"mapped","بخ"],[[64671,64671],"mapped","بم"],[[64672,64672],"mapped","به"],[[64673,64673],"mapped","تج"],[[64674,64674],"mapped","تح"],[[64675,64675],"mapped","تخ"],[[64676,64676],"mapped","تم"],[[64677,64677],"mapped","ته"],[[64678,64678],"mapped","ثم"],[[64679,64679],"mapped","جح"],[[64680,64680],"mapped","جم"],[[64681,64681],"mapped","حج"],[[64682,64682],"mapped","حم"],[[64683,64683],"mapped","خج"],[[64684,64684],"mapped","خم"],[[64685,64685],"mapped","سج"],[[64686,64686],"mapped","سح"],[[64687,64687],"mapped","سخ"],[[64688,64688],"mapped","سم"],[[64689,64689],"mapped","صح"],[[64690,64690],"mapped","صخ"],[[64691,64691],"mapped","صم"],[[64692,64692],"mapped","ضج"],[[64693,64693],"mapped","ضح"],[[64694,64694],"mapped","ضخ"],[[64695,64695],"mapped","ضم"],[[64696,64696],"mapped","طح"],[[64697,64697],"mapped","ظم"],[[64698,64698],"mapped","عج"],[[64699,64699],"mapped","عم"],[[64700,64700],"mapped","غج"],[[64701,64701],"mapped","غم"],[[64702,64702],"mapped","فج"],[[64703,64703],"mapped","فح"],[[64704,64704],"mapped","فخ"],[[64705,64705],"mapped","فم"],[[64706,64706],"mapped","قح"],[[64707,64707],"mapped","قم"],[[64708,64708],"mapped","كج"],[[64709,64709],"mapped","كح"],[[64710,64710],"mapped","كخ"],[[64711,64711],"mapped","كل"],[[64712,64712],"mapped","كم"],[[64713,64713],"mapped","لج"],[[64714,64714],"mapped","لح"],[[64715,64715],"mapped","لخ"],[[64716,64716],"mapped","لم"],[[64717,64717],"mapped","له"],[[64718,64718],"mapped","مج"],[[64719,64719],"mapped","مح"],[[64720,64720],"mapped","مخ"],[[64721,64721],"mapped","مم"],[[64722,64722],"mapped","نج"],[[64723,64723],"mapped","نح"],[[64724,64724],"mapped","نخ"],[[64725,64725],"mapped","نم"],[[64726,64726],"mapped","نه"],[[64727,64727],"mapped","هج"],[[64728,64728],"mapped","هم"],[[64729,64729],"mapped","هٰ"],[[64730,64730],"mapped","يج"],[[64731,64731],"mapped","يح"],[[64732,64732],"mapped","يخ"],[[64733,64733],"mapped","يم"],[[64734,64734],"mapped","يه"],[[64735,64735],"mapped","ئم"],[[64736,64736],"mapped","ئه"],[[64737,64737],"mapped","بم"],[[64738,64738],"mapped","به"],[[64739,64739],"mapped","تم"],[[64740,64740],"mapped","ته"],[[64741,64741],"mapped","ثم"],[[64742,64742],"mapped","ثه"],[[64743,64743],"mapped","سم"],[[64744,64744],"mapped","سه"],[[64745,64745],"mapped","شم"],[[64746,64746],"mapped","شه"],[[64747,64747],"mapped","كل"],[[64748,64748],"mapped","كم"],[[64749,64749],"mapped","لم"],[[64750,64750],"mapped","نم"],[[64751,64751],"mapped","نه"],[[64752,64752],"mapped","يم"],[[64753,64753],"mapped","يه"],[[64754,64754],"mapped","ـَّ"],[[64755,64755],"mapped","ـُّ"],[[64756,64756],"mapped","ـِّ"],[[64757,64757],"mapped","طى"],[[64758,64758],"mapped","طي"],[[64759,64759],"mapped","عى"],[[64760,64760],"mapped","عي"],[[64761,64761],"mapped","غى"],[[64762,64762],"mapped","غي"],[[64763,64763],"mapped","سى"],[[64764,64764],"mapped","سي"],[[64765,64765],"mapped","شى"],[[64766,64766],"mapped","شي"],[[64767,64767],"mapped","حى"],[[64768,64768],"mapped","حي"],[[64769,64769],"mapped","جى"],[[64770,64770],"mapped","جي"],[[64771,64771],"mapped","خى"],[[64772,64772],"mapped","خي"],[[64773,64773],"mapped","صى"],[[64774,64774],"mapped","صي"],[[64775,64775],"mapped","ضى"],[[64776,64776],"mapped","ضي"],[[64777,64777],"mapped","شج"],[[64778,64778],"mapped","شح"],[[64779,64779],"mapped","شخ"],[[64780,64780],"mapped","شم"],[[64781,64781],"mapped","شر"],[[64782,64782],"mapped","سر"],[[64783,64783],"mapped","صر"],[[64784,64784],"mapped","ضر"],[[64785,64785],"mapped","طى"],[[64786,64786],"mapped","طي"],[[64787,64787],"mapped","عى"],[[64788,64788],"mapped","عي"],[[64789,64789],"mapped","غى"],[[64790,64790],"mapped","غي"],[[64791,64791],"mapped","سى"],[[64792,64792],"mapped","سي"],[[64793,64793],"mapped","شى"],[[64794,64794],"mapped","شي"],[[64795,64795],"mapped","حى"],[[64796,64796],"mapped","حي"],[[64797,64797],"mapped","جى"],[[64798,64798],"mapped","جي"],[[64799,64799],"mapped","خى"],[[64800,64800],"mapped","خي"],[[64801,64801],"mapped","صى"],[[64802,64802],"mapped","صي"],[[64803,64803],"mapped","ضى"],[[64804,64804],"mapped","ضي"],[[64805,64805],"mapped","شج"],[[64806,64806],"mapped","شح"],[[64807,64807],"mapped","شخ"],[[64808,64808],"mapped","شم"],[[64809,64809],"mapped","شر"],[[64810,64810],"mapped","سر"],[[64811,64811],"mapped","صر"],[[64812,64812],"mapped","ضر"],[[64813,64813],"mapped","شج"],[[64814,64814],"mapped","شح"],[[64815,64815],"mapped","شخ"],[[64816,64816],"mapped","شم"],[[64817,64817],"mapped","سه"],[[64818,64818],"mapped","شه"],[[64819,64819],"mapped","طم"],[[64820,64820],"mapped","سج"],[[64821,64821],"mapped","سح"],[[64822,64822],"mapped","سخ"],[[64823,64823],"mapped","شج"],[[64824,64824],"mapped","شح"],[[64825,64825],"mapped","شخ"],[[64826,64826],"mapped","طم"],[[64827,64827],"mapped","ظم"],[[64828,64829],"mapped","اً"],[[64830,64831],"valid","","NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped","تجم"],[[64849,64850],"mapped","تحج"],[[64851,64851],"mapped","تحم"],[[64852,64852],"mapped","تخم"],[[64853,64853],"mapped","تمج"],[[64854,64854],"mapped","تمح"],[[64855,64855],"mapped","تمخ"],[[64856,64857],"mapped","جمح"],[[64858,64858],"mapped","حمي"],[[64859,64859],"mapped","حمى"],[[64860,64860],"mapped","سحج"],[[64861,64861],"mapped","سجح"],[[64862,64862],"mapped","سجى"],[[64863,64864],"mapped","سمح"],[[64865,64865],"mapped","سمج"],[[64866,64867],"mapped","سمم"],[[64868,64869],"mapped","صحح"],[[64870,64870],"mapped","صمم"],[[64871,64872],"mapped","شحم"],[[64873,64873],"mapped","شجي"],[[64874,64875],"mapped","شمخ"],[[64876,64877],"mapped","شمم"],[[64878,64878],"mapped","ضحى"],[[64879,64880],"mapped","ضخم"],[[64881,64882],"mapped","طمح"],[[64883,64883],"mapped","طمم"],[[64884,64884],"mapped","طمي"],[[64885,64885],"mapped","عجم"],[[64886,64887],"mapped","عمم"],[[64888,64888],"mapped","عمى"],[[64889,64889],"mapped","غمم"],[[64890,64890],"mapped","غمي"],[[64891,64891],"mapped","غمى"],[[64892,64893],"mapped","فخم"],[[64894,64894],"mapped","قمح"],[[64895,64895],"mapped","قمم"],[[64896,64896],"mapped","لحم"],[[64897,64897],"mapped","لحي"],[[64898,64898],"mapped","لحى"],[[64899,64900],"mapped","لجج"],[[64901,64902],"mapped","لخم"],[[64903,64904],"mapped","لمح"],[[64905,64905],"mapped","محج"],[[64906,64906],"mapped","محم"],[[64907,64907],"mapped","محي"],[[64908,64908],"mapped","مجح"],[[64909,64909],"mapped","مجم"],[[64910,64910],"mapped","مخج"],[[64911,64911],"mapped","مخم"],[[64912,64913],"disallowed"],[[64914,64914],"mapped","مجخ"],[[64915,64915],"mapped","همج"],[[64916,64916],"mapped","همم"],[[64917,64917],"mapped","نحم"],[[64918,64918],"mapped","نحى"],[[64919,64920],"mapped","نجم"],[[64921,64921],"mapped","نجى"],[[64922,64922],"mapped","نمي"],[[64923,64923],"mapped","نمى"],[[64924,64925],"mapped","يمم"],[[64926,64926],"mapped","بخي"],[[64927,64927],"mapped","تجي"],[[64928,64928],"mapped","تجى"],[[64929,64929],"mapped","تخي"],[[64930,64930],"mapped","تخى"],[[64931,64931],"mapped","تمي"],[[64932,64932],"mapped","تمى"],[[64933,64933],"mapped","جمي"],[[64934,64934],"mapped","جحى"],[[64935,64935],"mapped","جمى"],[[64936,64936],"mapped","سخى"],[[64937,64937],"mapped","صحي"],[[64938,64938],"mapped","شحي"],[[64939,64939],"mapped","ضحي"],[[64940,64940],"mapped","لجي"],[[64941,64941],"mapped","لمي"],[[64942,64942],"mapped","يحي"],[[64943,64943],"mapped","يجي"],[[64944,64944],"mapped","يمي"],[[64945,64945],"mapped","ممي"],[[64946,64946],"mapped","قمي"],[[64947,64947],"mapped","نحي"],[[64948,64948],"mapped","قمح"],[[64949,64949],"mapped","لحم"],[[64950,64950],"mapped","عمي"],[[64951,64951],"mapped","كمي"],[[64952,64952],"mapped","نجح"],[[64953,64953],"mapped","مخي"],[[64954,64954],"mapped","لجم"],[[64955,64955],"mapped","كمم"],[[64956,64956],"mapped","لجم"],[[64957,64957],"mapped","نجح"],[[64958,64958],"mapped","جحي"],[[64959,64959],"mapped","حجي"],[[64960,64960],"mapped","مجي"],[[64961,64961],"mapped","فمي"],[[64962,64962],"mapped","بحي"],[[64963,64963],"mapped","كمم"],[[64964,64964],"mapped","عجم"],[[64965,64965],"mapped","صمم"],[[64966,64966],"mapped","سخي"],[[64967,64967],"mapped","نجي"],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped","صلے"],[[65009,65009],"mapped","قلے"],[[65010,65010],"mapped","الله"],[[65011,65011],"mapped","اكبر"],[[65012,65012],"mapped","محمد"],[[65013,65013],"mapped","صلعم"],[[65014,65014],"mapped","رسول"],[[65015,65015],"mapped","عليه"],[[65016,65016],"mapped","وسلم"],[[65017,65017],"mapped","صلى"],[[65018,65018],"disallowed_STD3_mapped","صلى الله عليه وسلم"],[[65019,65019],"disallowed_STD3_mapped","جل جلاله"],[[65020,65020],"mapped","ریال"],[[65021,65021],"valid","","NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",","],[[65041,65041],"mapped","、"],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",":"],[[65044,65044],"disallowed_STD3_mapped",";"],[[65045,65045],"disallowed_STD3_mapped","!"],[[65046,65046],"disallowed_STD3_mapped","?"],[[65047,65047],"mapped","〖"],[[65048,65048],"mapped","〗"],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped","—"],[[65074,65074],"mapped","–"],[[65075,65076],"disallowed_STD3_mapped","_"],[[65077,65077],"disallowed_STD3_mapped","("],[[65078,65078],"disallowed_STD3_mapped",")"],[[65079,65079],"disallowed_STD3_mapped","{"],[[65080,65080],"disallowed_STD3_mapped","}"],[[65081,65081],"mapped","〔"],[[65082,65082],"mapped","〕"],[[65083,65083],"mapped","【"],[[65084,65084],"mapped","】"],[[65085,65085],"mapped","《"],[[65086,65086],"mapped","》"],[[65087,65087],"mapped","〈"],[[65088,65088],"mapped","〉"],[[65089,65089],"mapped","「"],[[65090,65090],"mapped","」"],[[65091,65091],"mapped","『"],[[65092,65092],"mapped","』"],[[65093,65094],"valid","","NV8"],[[65095,65095],"disallowed_STD3_mapped","["],[[65096,65096],"disallowed_STD3_mapped","]"],[[65097,65100],"disallowed_STD3_mapped"," ̅"],[[65101,65103],"disallowed_STD3_mapped","_"],[[65104,65104],"disallowed_STD3_mapped",","],[[65105,65105],"mapped","、"],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",";"],[[65109,65109],"disallowed_STD3_mapped",":"],[[65110,65110],"disallowed_STD3_mapped","?"],[[65111,65111],"disallowed_STD3_mapped","!"],[[65112,65112],"mapped","—"],[[65113,65113],"disallowed_STD3_mapped","("],[[65114,65114],"disallowed_STD3_mapped",")"],[[65115,65115],"disallowed_STD3_mapped","{"],[[65116,65116],"disallowed_STD3_mapped","}"],[[65117,65117],"mapped","〔"],[[65118,65118],"mapped","〕"],[[65119,65119],"disallowed_STD3_mapped","#"],[[65120,65120],"disallowed_STD3_mapped","&"],[[65121,65121],"disallowed_STD3_mapped","*"],[[65122,65122],"disallowed_STD3_mapped","+"],[[65123,65123],"mapped","-"],[[65124,65124],"disallowed_STD3_mapped","<"],[[65125,65125],"disallowed_STD3_mapped",">"],[[65126,65126],"disallowed_STD3_mapped","="],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped","\\"],[[65129,65129],"disallowed_STD3_mapped","$"],[[65130,65130],"disallowed_STD3_mapped","%"],[[65131,65131],"disallowed_STD3_mapped","@"],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped"," ً"],[[65137,65137],"mapped","ـً"],[[65138,65138],"disallowed_STD3_mapped"," ٌ"],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped"," ٍ"],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped"," َ"],[[65143,65143],"mapped","ـَ"],[[65144,65144],"disallowed_STD3_mapped"," ُ"],[[65145,65145],"mapped","ـُ"],[[65146,65146],"disallowed_STD3_mapped"," ِ"],[[65147,65147],"mapped","ـِ"],[[65148,65148],"disallowed_STD3_mapped"," ّ"],[[65149,65149],"mapped","ـّ"],[[65150,65150],"disallowed_STD3_mapped"," ْ"],[[65151,65151],"mapped","ـْ"],[[65152,65152],"mapped","ء"],[[65153,65154],"mapped","آ"],[[65155,65156],"mapped","أ"],[[65157,65158],"mapped","ؤ"],[[65159,65160],"mapped","إ"],[[65161,65164],"mapped","ئ"],[[65165,65166],"mapped","ا"],[[65167,65170],"mapped","ب"],[[65171,65172],"mapped","ة"],[[65173,65176],"mapped","ت"],[[65177,65180],"mapped","ث"],[[65181,65184],"mapped","ج"],[[65185,65188],"mapped","ح"],[[65189,65192],"mapped","خ"],[[65193,65194],"mapped","د"],[[65195,65196],"mapped","ذ"],[[65197,65198],"mapped","ر"],[[65199,65200],"mapped","ز"],[[65201,65204],"mapped","س"],[[65205,65208],"mapped","ش"],[[65209,65212],"mapped","ص"],[[65213,65216],"mapped","ض"],[[65217,65220],"mapped","ط"],[[65221,65224],"mapped","ظ"],[[65225,65228],"mapped","ع"],[[65229,65232],"mapped","غ"],[[65233,65236],"mapped","ف"],[[65237,65240],"mapped","ق"],[[65241,65244],"mapped","ك"],[[65245,65248],"mapped","ل"],[[65249,65252],"mapped","م"],[[65253,65256],"mapped","ن"],[[65257,65260],"mapped","ه"],[[65261,65262],"mapped","و"],[[65263,65264],"mapped","ى"],[[65265,65268],"mapped","ي"],[[65269,65270],"mapped","لآ"],[[65271,65272],"mapped","لأ"],[[65273,65274],"mapped","لإ"],[[65275,65276],"mapped","لا"],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped","!"],[[65282,65282],"disallowed_STD3_mapped",'"'],[[65283,65283],"disallowed_STD3_mapped","#"],[[65284,65284],"disallowed_STD3_mapped","$"],[[65285,65285],"disallowed_STD3_mapped","%"],[[65286,65286],"disallowed_STD3_mapped","&"],[[65287,65287],"disallowed_STD3_mapped","'"],[[65288,65288],"disallowed_STD3_mapped","("],[[65289,65289],"disallowed_STD3_mapped",")"],[[65290,65290],"disallowed_STD3_mapped","*"],[[65291,65291],"disallowed_STD3_mapped","+"],[[65292,65292],"disallowed_STD3_mapped",","],[[65293,65293],"mapped","-"],[[65294,65294],"mapped","."],[[65295,65295],"disallowed_STD3_mapped","/"],[[65296,65296],"mapped","0"],[[65297,65297],"mapped","1"],[[65298,65298],"mapped","2"],[[65299,65299],"mapped","3"],[[65300,65300],"mapped","4"],[[65301,65301],"mapped","5"],[[65302,65302],"mapped","6"],[[65303,65303],"mapped","7"],[[65304,65304],"mapped","8"],[[65305,65305],"mapped","9"],[[65306,65306],"disallowed_STD3_mapped",":"],[[65307,65307],"disallowed_STD3_mapped",";"],[[65308,65308],"disallowed_STD3_mapped","<"],[[65309,65309],"disallowed_STD3_mapped","="],[[65310,65310],"disallowed_STD3_mapped",">"],[[65311,65311],"disallowed_STD3_mapped","?"],[[65312,65312],"disallowed_STD3_mapped","@"],[[65313,65313],"mapped","a"],[[65314,65314],"mapped","b"],[[65315,65315],"mapped","c"],[[65316,65316],"mapped","d"],[[65317,65317],"mapped","e"],[[65318,65318],"mapped","f"],[[65319,65319],"mapped","g"],[[65320,65320],"mapped","h"],[[65321,65321],"mapped","i"],[[65322,65322],"mapped","j"],[[65323,65323],"mapped","k"],[[65324,65324],"mapped","l"],[[65325,65325],"mapped","m"],[[65326,65326],"mapped","n"],[[65327,65327],"mapped","o"],[[65328,65328],"mapped","p"],[[65329,65329],"mapped","q"],[[65330,65330],"mapped","r"],[[65331,65331],"mapped","s"],[[65332,65332],"mapped","t"],[[65333,65333],"mapped","u"],[[65334,65334],"mapped","v"],[[65335,65335],"mapped","w"],[[65336,65336],"mapped","x"],[[65337,65337],"mapped","y"],[[65338,65338],"mapped","z"],[[65339,65339],"disallowed_STD3_mapped","["],[[65340,65340],"disallowed_STD3_mapped","\\"],[[65341,65341],"disallowed_STD3_mapped","]"],[[65342,65342],"disallowed_STD3_mapped","^"],[[65343,65343],"disallowed_STD3_mapped","_"],[[65344,65344],"disallowed_STD3_mapped","`"],[[65345,65345],"mapped","a"],[[65346,65346],"mapped","b"],[[65347,65347],"mapped","c"],[[65348,65348],"mapped","d"],[[65349,65349],"mapped","e"],[[65350,65350],"mapped","f"],[[65351,65351],"mapped","g"],[[65352,65352],"mapped","h"],[[65353,65353],"mapped","i"],[[65354,65354],"mapped","j"],[[65355,65355],"mapped","k"],[[65356,65356],"mapped","l"],[[65357,65357],"mapped","m"],[[65358,65358],"mapped","n"],[[65359,65359],"mapped","o"],[[65360,65360],"mapped","p"],[[65361,65361],"mapped","q"],[[65362,65362],"mapped","r"],[[65363,65363],"mapped","s"],[[65364,65364],"mapped","t"],[[65365,65365],"mapped","u"],[[65366,65366],"mapped","v"],[[65367,65367],"mapped","w"],[[65368,65368],"mapped","x"],[[65369,65369],"mapped","y"],[[65370,65370],"mapped","z"],[[65371,65371],"disallowed_STD3_mapped","{"],[[65372,65372],"disallowed_STD3_mapped","|"],[[65373,65373],"disallowed_STD3_mapped","}"],[[65374,65374],"disallowed_STD3_mapped","~"],[[65375,65375],"mapped","⦅"],[[65376,65376],"mapped","⦆"],[[65377,65377],"mapped","."],[[65378,65378],"mapped","「"],[[65379,65379],"mapped","」"],[[65380,65380],"mapped","、"],[[65381,65381],"mapped","・"],[[65382,65382],"mapped","ヲ"],[[65383,65383],"mapped","ァ"],[[65384,65384],"mapped","ィ"],[[65385,65385],"mapped","ゥ"],[[65386,65386],"mapped","ェ"],[[65387,65387],"mapped","ォ"],[[65388,65388],"mapped","ャ"],[[65389,65389],"mapped","ュ"],[[65390,65390],"mapped","ョ"],[[65391,65391],"mapped","ッ"],[[65392,65392],"mapped","ー"],[[65393,65393],"mapped","ア"],[[65394,65394],"mapped","イ"],[[65395,65395],"mapped","ウ"],[[65396,65396],"mapped","エ"],[[65397,65397],"mapped","オ"],[[65398,65398],"mapped","カ"],[[65399,65399],"mapped","キ"],[[65400,65400],"mapped","ク"],[[65401,65401],"mapped","ケ"],[[65402,65402],"mapped","コ"],[[65403,65403],"mapped","サ"],[[65404,65404],"mapped","シ"],[[65405,65405],"mapped","ス"],[[65406,65406],"mapped","セ"],[[65407,65407],"mapped","ソ"],[[65408,65408],"mapped","タ"],[[65409,65409],"mapped","チ"],[[65410,65410],"mapped","ツ"],[[65411,65411],"mapped","テ"],[[65412,65412],"mapped","ト"],[[65413,65413],"mapped","ナ"],[[65414,65414],"mapped","ニ"],[[65415,65415],"mapped","ヌ"],[[65416,65416],"mapped","ネ"],[[65417,65417],"mapped","ノ"],[[65418,65418],"mapped","ハ"],[[65419,65419],"mapped","ヒ"],[[65420,65420],"mapped","フ"],[[65421,65421],"mapped","ヘ"],[[65422,65422],"mapped","ホ"],[[65423,65423],"mapped","マ"],[[65424,65424],"mapped","ミ"],[[65425,65425],"mapped","ム"],[[65426,65426],"mapped","メ"],[[65427,65427],"mapped","モ"],[[65428,65428],"mapped","ヤ"],[[65429,65429],"mapped","ユ"],[[65430,65430],"mapped","ヨ"],[[65431,65431],"mapped","ラ"],[[65432,65432],"mapped","リ"],[[65433,65433],"mapped","ル"],[[65434,65434],"mapped","レ"],[[65435,65435],"mapped","ロ"],[[65436,65436],"mapped","ワ"],[[65437,65437],"mapped","ン"],[[65438,65438],"mapped","゙"],[[65439,65439],"mapped","゚"],[[65440,65440],"disallowed"],[[65441,65441],"mapped","ᄀ"],[[65442,65442],"mapped","ᄁ"],[[65443,65443],"mapped","ᆪ"],[[65444,65444],"mapped","ᄂ"],[[65445,65445],"mapped","ᆬ"],[[65446,65446],"mapped","ᆭ"],[[65447,65447],"mapped","ᄃ"],[[65448,65448],"mapped","ᄄ"],[[65449,65449],"mapped","ᄅ"],[[65450,65450],"mapped","ᆰ"],[[65451,65451],"mapped","ᆱ"],[[65452,65452],"mapped","ᆲ"],[[65453,65453],"mapped","ᆳ"],[[65454,65454],"mapped","ᆴ"],[[65455,65455],"mapped","ᆵ"],[[65456,65456],"mapped","ᄚ"],[[65457,65457],"mapped","ᄆ"],[[65458,65458],"mapped","ᄇ"],[[65459,65459],"mapped","ᄈ"],[[65460,65460],"mapped","ᄡ"],[[65461,65461],"mapped","ᄉ"],[[65462,65462],"mapped","ᄊ"],[[65463,65463],"mapped","ᄋ"],[[65464,65464],"mapped","ᄌ"],[[65465,65465],"mapped","ᄍ"],[[65466,65466],"mapped","ᄎ"],[[65467,65467],"mapped","ᄏ"],[[65468,65468],"mapped","ᄐ"],[[65469,65469],"mapped","ᄑ"],[[65470,65470],"mapped","ᄒ"],[[65471,65473],"disallowed"],[[65474,65474],"mapped","ᅡ"],[[65475,65475],"mapped","ᅢ"],[[65476,65476],"mapped","ᅣ"],[[65477,65477],"mapped","ᅤ"],[[65478,65478],"mapped","ᅥ"],[[65479,65479],"mapped","ᅦ"],[[65480,65481],"disallowed"],[[65482,65482],"mapped","ᅧ"],[[65483,65483],"mapped","ᅨ"],[[65484,65484],"mapped","ᅩ"],[[65485,65485],"mapped","ᅪ"],[[65486,65486],"mapped","ᅫ"],[[65487,65487],"mapped","ᅬ"],[[65488,65489],"disallowed"],[[65490,65490],"mapped","ᅭ"],[[65491,65491],"mapped","ᅮ"],[[65492,65492],"mapped","ᅯ"],[[65493,65493],"mapped","ᅰ"],[[65494,65494],"mapped","ᅱ"],[[65495,65495],"mapped","ᅲ"],[[65496,65497],"disallowed"],[[65498,65498],"mapped","ᅳ"],[[65499,65499],"mapped","ᅴ"],[[65500,65500],"mapped","ᅵ"],[[65501,65503],"disallowed"],[[65504,65504],"mapped","¢"],[[65505,65505],"mapped","£"],[[65506,65506],"mapped","¬"],[[65507,65507],"disallowed_STD3_mapped"," ̄"],[[65508,65508],"mapped","¦"],[[65509,65509],"mapped","¥"],[[65510,65510],"mapped","₩"],[[65511,65511],"disallowed"],[[65512,65512],"mapped","│"],[[65513,65513],"mapped","←"],[[65514,65514],"mapped","↑"],[[65515,65515],"mapped","→"],[[65516,65516],"mapped","↓"],[[65517,65517],"mapped","■"],[[65518,65518],"mapped","○"],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid","","NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid","","NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid","","NV8"],[[65856,65930],"valid","","NV8"],[[65931,65932],"valid","","NV8"],[[65933,65934],"valid","","NV8"],[[65935,65935],"disallowed"],[[65936,65947],"valid","","NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid","","NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid","","NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid","","NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid","","NV8"],[[66340,66348],"disallowed"],[[66349,66351],"valid"],[[66352,66368],"valid"],[[66369,66369],"valid","","NV8"],[[66370,66377],"valid"],[[66378,66378],"valid","","NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid","","NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid","","NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped","𐐨"],[[66561,66561],"mapped","𐐩"],[[66562,66562],"mapped","𐐪"],[[66563,66563],"mapped","𐐫"],[[66564,66564],"mapped","𐐬"],[[66565,66565],"mapped","𐐭"],[[66566,66566],"mapped","𐐮"],[[66567,66567],"mapped","𐐯"],[[66568,66568],"mapped","𐐰"],[[66569,66569],"mapped","𐐱"],[[66570,66570],"mapped","𐐲"],[[66571,66571],"mapped","𐐳"],[[66572,66572],"mapped","𐐴"],[[66573,66573],"mapped","𐐵"],[[66574,66574],"mapped","𐐶"],[[66575,66575],"mapped","𐐷"],[[66576,66576],"mapped","𐐸"],[[66577,66577],"mapped","𐐹"],[[66578,66578],"mapped","𐐺"],[[66579,66579],"mapped","𐐻"],[[66580,66580],"mapped","𐐼"],[[66581,66581],"mapped","𐐽"],[[66582,66582],"mapped","𐐾"],[[66583,66583],"mapped","𐐿"],[[66584,66584],"mapped","𐑀"],[[66585,66585],"mapped","𐑁"],[[66586,66586],"mapped","𐑂"],[[66587,66587],"mapped","𐑃"],[[66588,66588],"mapped","𐑄"],[[66589,66589],"mapped","𐑅"],[[66590,66590],"mapped","𐑆"],[[66591,66591],"mapped","𐑇"],[[66592,66592],"mapped","𐑈"],[[66593,66593],"mapped","𐑉"],[[66594,66594],"mapped","𐑊"],[[66595,66595],"mapped","𐑋"],[[66596,66596],"mapped","𐑌"],[[66597,66597],"mapped","𐑍"],[[66598,66598],"mapped","𐑎"],[[66599,66599],"mapped","𐑏"],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66735],"disallowed"],[[66736,66736],"mapped","𐓘"],[[66737,66737],"mapped","𐓙"],[[66738,66738],"mapped","𐓚"],[[66739,66739],"mapped","𐓛"],[[66740,66740],"mapped","𐓜"],[[66741,66741],"mapped","𐓝"],[[66742,66742],"mapped","𐓞"],[[66743,66743],"mapped","𐓟"],[[66744,66744],"mapped","𐓠"],[[66745,66745],"mapped","𐓡"],[[66746,66746],"mapped","𐓢"],[[66747,66747],"mapped","𐓣"],[[66748,66748],"mapped","𐓤"],[[66749,66749],"mapped","𐓥"],[[66750,66750],"mapped","𐓦"],[[66751,66751],"mapped","𐓧"],[[66752,66752],"mapped","𐓨"],[[66753,66753],"mapped","𐓩"],[[66754,66754],"mapped","𐓪"],[[66755,66755],"mapped","𐓫"],[[66756,66756],"mapped","𐓬"],[[66757,66757],"mapped","𐓭"],[[66758,66758],"mapped","𐓮"],[[66759,66759],"mapped","𐓯"],[[66760,66760],"mapped","𐓰"],[[66761,66761],"mapped","𐓱"],[[66762,66762],"mapped","𐓲"],[[66763,66763],"mapped","𐓳"],[[66764,66764],"mapped","𐓴"],[[66765,66765],"mapped","𐓵"],[[66766,66766],"mapped","𐓶"],[[66767,66767],"mapped","𐓷"],[[66768,66768],"mapped","𐓸"],[[66769,66769],"mapped","𐓹"],[[66770,66770],"mapped","𐓺"],[[66771,66771],"mapped","𐓻"],[[66772,66775],"disallowed"],[[66776,66811],"valid"],[[66812,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid","","NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid","","NV8"],[[67680,67702],"valid"],[[67703,67711],"valid","","NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid","","NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid","","NV8"],[[67840,67861],"valid"],[[67862,67865],"valid","","NV8"],[[67866,67867],"valid","","NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid","","NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid","","NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid","","NV8"],[[68030,68031],"valid"],[[68032,68047],"valid","","NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid","","NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid","","NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid","","NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid","","NV8"],[[68224,68252],"valid"],[[68253,68255],"valid","","NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid","","NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid","","NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid","","NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid","","NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid","","NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid","","NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid","","NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped","𐳀"],[[68737,68737],"mapped","𐳁"],[[68738,68738],"mapped","𐳂"],[[68739,68739],"mapped","𐳃"],[[68740,68740],"mapped","𐳄"],[[68741,68741],"mapped","𐳅"],[[68742,68742],"mapped","𐳆"],[[68743,68743],"mapped","𐳇"],[[68744,68744],"mapped","𐳈"],[[68745,68745],"mapped","𐳉"],[[68746,68746],"mapped","𐳊"],[[68747,68747],"mapped","𐳋"],[[68748,68748],"mapped","𐳌"],[[68749,68749],"mapped","𐳍"],[[68750,68750],"mapped","𐳎"],[[68751,68751],"mapped","𐳏"],[[68752,68752],"mapped","𐳐"],[[68753,68753],"mapped","𐳑"],[[68754,68754],"mapped","𐳒"],[[68755,68755],"mapped","𐳓"],[[68756,68756],"mapped","𐳔"],[[68757,68757],"mapped","𐳕"],[[68758,68758],"mapped","𐳖"],[[68759,68759],"mapped","𐳗"],[[68760,68760],"mapped","𐳘"],[[68761,68761],"mapped","𐳙"],[[68762,68762],"mapped","𐳚"],[[68763,68763],"mapped","𐳛"],[[68764,68764],"mapped","𐳜"],[[68765,68765],"mapped","𐳝"],[[68766,68766],"mapped","𐳞"],[[68767,68767],"mapped","𐳟"],[[68768,68768],"mapped","𐳠"],[[68769,68769],"mapped","𐳡"],[[68770,68770],"mapped","𐳢"],[[68771,68771],"mapped","𐳣"],[[68772,68772],"mapped","𐳤"],[[68773,68773],"mapped","𐳥"],[[68774,68774],"mapped","𐳦"],[[68775,68775],"mapped","𐳧"],[[68776,68776],"mapped","𐳨"],[[68777,68777],"mapped","𐳩"],[[68778,68778],"mapped","𐳪"],[[68779,68779],"mapped","𐳫"],[[68780,68780],"mapped","𐳬"],[[68781,68781],"mapped","𐳭"],[[68782,68782],"mapped","𐳮"],[[68783,68783],"mapped","𐳯"],[[68784,68784],"mapped","𐳰"],[[68785,68785],"mapped","𐳱"],[[68786,68786],"mapped","𐳲"],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid","","NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid","","NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid","","NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid","","NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid","","NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid","","NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid","","NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid","","NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid","","NV8"],[[70089,70089],"valid","","NV8"],[[70090,70092],"valid"],[[70093,70093],"valid","","NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid","","NV8"],[[70108,70108],"valid"],[[70109,70111],"valid","","NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid","","NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid","","NV8"],[[70206,70206],"valid"],[[70207,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid","","NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70655],"disallowed"],[[70656,70730],"valid"],[[70731,70735],"valid","","NV8"],[[70736,70745],"valid"],[[70746,70746],"disallowed"],[[70747,70747],"valid","","NV8"],[[70748,70748],"disallowed"],[[70749,70749],"valid","","NV8"],[[70750,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid","","NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid","","NV8"],[[71114,71127],"valid","","NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid","","NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71263],"disallowed"],[[71264,71276],"valid","","NV8"],[[71277,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid","","NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped","𑣀"],[[71841,71841],"mapped","𑣁"],[[71842,71842],"mapped","𑣂"],[[71843,71843],"mapped","𑣃"],[[71844,71844],"mapped","𑣄"],[[71845,71845],"mapped","𑣅"],[[71846,71846],"mapped","𑣆"],[[71847,71847],"mapped","𑣇"],[[71848,71848],"mapped","𑣈"],[[71849,71849],"mapped","𑣉"],[[71850,71850],"mapped","𑣊"],[[71851,71851],"mapped","𑣋"],[[71852,71852],"mapped","𑣌"],[[71853,71853],"mapped","𑣍"],[[71854,71854],"mapped","𑣎"],[[71855,71855],"mapped","𑣏"],[[71856,71856],"mapped","𑣐"],[[71857,71857],"mapped","𑣑"],[[71858,71858],"mapped","𑣒"],[[71859,71859],"mapped","𑣓"],[[71860,71860],"mapped","𑣔"],[[71861,71861],"mapped","𑣕"],[[71862,71862],"mapped","𑣖"],[[71863,71863],"mapped","𑣗"],[[71864,71864],"mapped","𑣘"],[[71865,71865],"mapped","𑣙"],[[71866,71866],"mapped","𑣚"],[[71867,71867],"mapped","𑣛"],[[71868,71868],"mapped","𑣜"],[[71869,71869],"mapped","𑣝"],[[71870,71870],"mapped","𑣞"],[[71871,71871],"mapped","𑣟"],[[71872,71913],"valid"],[[71914,71922],"valid","","NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72191],"disallowed"],[[72192,72254],"valid"],[[72255,72262],"valid","","NV8"],[[72263,72263],"valid"],[[72264,72271],"disallowed"],[[72272,72323],"valid"],[[72324,72325],"disallowed"],[[72326,72345],"valid"],[[72346,72348],"valid","","NV8"],[[72349,72349],"disallowed"],[[72350,72354],"valid","","NV8"],[[72355,72383],"disallowed"],[[72384,72440],"valid"],[[72441,72703],"disallowed"],[[72704,72712],"valid"],[[72713,72713],"disallowed"],[[72714,72758],"valid"],[[72759,72759],"disallowed"],[[72760,72768],"valid"],[[72769,72773],"valid","","NV8"],[[72774,72783],"disallowed"],[[72784,72793],"valid"],[[72794,72812],"valid","","NV8"],[[72813,72815],"disallowed"],[[72816,72817],"valid","","NV8"],[[72818,72847],"valid"],[[72848,72849],"disallowed"],[[72850,72871],"valid"],[[72872,72872],"disallowed"],[[72873,72886],"valid"],[[72887,72959],"disallowed"],[[72960,72966],"valid"],[[72967,72967],"disallowed"],[[72968,72969],"valid"],[[72970,72970],"disallowed"],[[72971,73014],"valid"],[[73015,73017],"disallowed"],[[73018,73018],"valid"],[[73019,73019],"disallowed"],[[73020,73021],"valid"],[[73022,73022],"disallowed"],[[73023,73031],"valid"],[[73032,73039],"disallowed"],[[73040,73049],"valid"],[[73050,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid","","NV8"],[[74851,74862],"valid","","NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid","","NV8"],[[74868,74868],"valid","","NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid","","NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid","","NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid","","NV8"],[[92992,92995],"valid"],[[92996,92997],"valid","","NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid","","NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,94175],"disallowed"],[[94176,94176],"valid"],[[94177,94177],"valid"],[[94178,94207],"disallowed"],[[94208,100332],"valid"],[[100333,100351],"disallowed"],[[100352,101106],"valid"],[[101107,110591],"disallowed"],[[110592,110593],"valid"],[[110594,110878],"valid"],[[110879,110959],"disallowed"],[[110960,111355],"valid"],[[111356,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid","","NV8"],[[113821,113822],"valid"],[[113823,113823],"valid","","NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid","","NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid","","NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid","","NV8"],[[119082,119133],"valid","","NV8"],[[119134,119134],"mapped","𝅗𝅥"],[[119135,119135],"mapped","𝅘𝅥"],[[119136,119136],"mapped","𝅘𝅥𝅮"],[[119137,119137],"mapped","𝅘𝅥𝅯"],[[119138,119138],"mapped","𝅘𝅥𝅰"],[[119139,119139],"mapped","𝅘𝅥𝅱"],[[119140,119140],"mapped","𝅘𝅥𝅲"],[[119141,119154],"valid","","NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid","","NV8"],[[119227,119227],"mapped","𝆹𝅥"],[[119228,119228],"mapped","𝆺𝅥"],[[119229,119229],"mapped","𝆹𝅥𝅮"],[[119230,119230],"mapped","𝆺𝅥𝅮"],[[119231,119231],"mapped","𝆹𝅥𝅯"],[[119232,119232],"mapped","𝆺𝅥𝅯"],[[119233,119261],"valid","","NV8"],[[119262,119272],"valid","","NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid","","NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid","","NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid","","NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped","a"],[[119809,119809],"mapped","b"],[[119810,119810],"mapped","c"],[[119811,119811],"mapped","d"],[[119812,119812],"mapped","e"],[[119813,119813],"mapped","f"],[[119814,119814],"mapped","g"],[[119815,119815],"mapped","h"],[[119816,119816],"mapped","i"],[[119817,119817],"mapped","j"],[[119818,119818],"mapped","k"],[[119819,119819],"mapped","l"],[[119820,119820],"mapped","m"],[[119821,119821],"mapped","n"],[[119822,119822],"mapped","o"],[[119823,119823],"mapped","p"],[[119824,119824],"mapped","q"],[[119825,119825],"mapped","r"],[[119826,119826],"mapped","s"],[[119827,119827],"mapped","t"],[[119828,119828],"mapped","u"],[[119829,119829],"mapped","v"],[[119830,119830],"mapped","w"],[[119831,119831],"mapped","x"],[[119832,119832],"mapped","y"],[[119833,119833],"mapped","z"],[[119834,119834],"mapped","a"],[[119835,119835],"mapped","b"],[[119836,119836],"mapped","c"],[[119837,119837],"mapped","d"],[[119838,119838],"mapped","e"],[[119839,119839],"mapped","f"],[[119840,119840],"mapped","g"],[[119841,119841],"mapped","h"],[[119842,119842],"mapped","i"],[[119843,119843],"mapped","j"],[[119844,119844],"mapped","k"],[[119845,119845],"mapped","l"],[[119846,119846],"mapped","m"],[[119847,119847],"mapped","n"],[[119848,119848],"mapped","o"],[[119849,119849],"mapped","p"],[[119850,119850],"mapped","q"],[[119851,119851],"mapped","r"],[[119852,119852],"mapped","s"],[[119853,119853],"mapped","t"],[[119854,119854],"mapped","u"],[[119855,119855],"mapped","v"],[[119856,119856],"mapped","w"],[[119857,119857],"mapped","x"],[[119858,119858],"mapped","y"],[[119859,119859],"mapped","z"],[[119860,119860],"mapped","a"],[[119861,119861],"mapped","b"],[[119862,119862],"mapped","c"],[[119863,119863],"mapped","d"],[[119864,119864],"mapped","e"],[[119865,119865],"mapped","f"],[[119866,119866],"mapped","g"],[[119867,119867],"mapped","h"],[[119868,119868],"mapped","i"],[[119869,119869],"mapped","j"],[[119870,119870],"mapped","k"],[[119871,119871],"mapped","l"],[[119872,119872],"mapped","m"],[[119873,119873],"mapped","n"],[[119874,119874],"mapped","o"],[[119875,119875],"mapped","p"],[[119876,119876],"mapped","q"],[[119877,119877],"mapped","r"],[[119878,119878],"mapped","s"],[[119879,119879],"mapped","t"],[[119880,119880],"mapped","u"],[[119881,119881],"mapped","v"],[[119882,119882],"mapped","w"],[[119883,119883],"mapped","x"],[[119884,119884],"mapped","y"],[[119885,119885],"mapped","z"],[[119886,119886],"mapped","a"],[[119887,119887],"mapped","b"],[[119888,119888],"mapped","c"],[[119889,119889],"mapped","d"],[[119890,119890],"mapped","e"],[[119891,119891],"mapped","f"],[[119892,119892],"mapped","g"],[[119893,119893],"disallowed"],[[119894,119894],"mapped","i"],[[119895,119895],"mapped","j"],[[119896,119896],"mapped","k"],[[119897,119897],"mapped","l"],[[119898,119898],"mapped","m"],[[119899,119899],"mapped","n"],[[119900,119900],"mapped","o"],[[119901,119901],"mapped","p"],[[119902,119902],"mapped","q"],[[119903,119903],"mapped","r"],[[119904,119904],"mapped","s"],[[119905,119905],"mapped","t"],[[119906,119906],"mapped","u"],[[119907,119907],"mapped","v"],[[119908,119908],"mapped","w"],[[119909,119909],"mapped","x"],[[119910,119910],"mapped","y"],[[119911,119911],"mapped","z"],[[119912,119912],"mapped","a"],[[119913,119913],"mapped","b"],[[119914,119914],"mapped","c"],[[119915,119915],"mapped","d"],[[119916,119916],"mapped","e"],[[119917,119917],"mapped","f"],[[119918,119918],"mapped","g"],[[119919,119919],"mapped","h"],[[119920,119920],"mapped","i"],[[119921,119921],"mapped","j"],[[119922,119922],"mapped","k"],[[119923,119923],"mapped","l"],[[119924,119924],"mapped","m"],[[119925,119925],"mapped","n"],[[119926,119926],"mapped","o"],[[119927,119927],"mapped","p"],[[119928,119928],"mapped","q"],[[119929,119929],"mapped","r"],[[119930,119930],"mapped","s"],[[119931,119931],"mapped","t"],[[119932,119932],"mapped","u"],[[119933,119933],"mapped","v"],[[119934,119934],"mapped","w"],[[119935,119935],"mapped","x"],[[119936,119936],"mapped","y"],[[119937,119937],"mapped","z"],[[119938,119938],"mapped","a"],[[119939,119939],"mapped","b"],[[119940,119940],"mapped","c"],[[119941,119941],"mapped","d"],[[119942,119942],"mapped","e"],[[119943,119943],"mapped","f"],[[119944,119944],"mapped","g"],[[119945,119945],"mapped","h"],[[119946,119946],"mapped","i"],[[119947,119947],"mapped","j"],[[119948,119948],"mapped","k"],[[119949,119949],"mapped","l"],[[119950,119950],"mapped","m"],[[119951,119951],"mapped","n"],[[119952,119952],"mapped","o"],[[119953,119953],"mapped","p"],[[119954,119954],"mapped","q"],[[119955,119955],"mapped","r"],[[119956,119956],"mapped","s"],[[119957,119957],"mapped","t"],[[119958,119958],"mapped","u"],[[119959,119959],"mapped","v"],[[119960,119960],"mapped","w"],[[119961,119961],"mapped","x"],[[119962,119962],"mapped","y"],[[119963,119963],"mapped","z"],[[119964,119964],"mapped","a"],[[119965,119965],"disallowed"],[[119966,119966],"mapped","c"],[[119967,119967],"mapped","d"],[[119968,119969],"disallowed"],[[119970,119970],"mapped","g"],[[119971,119972],"disallowed"],[[119973,119973],"mapped","j"],[[119974,119974],"mapped","k"],[[119975,119976],"disallowed"],[[119977,119977],"mapped","n"],[[119978,119978],"mapped","o"],[[119979,119979],"mapped","p"],[[119980,119980],"mapped","q"],[[119981,119981],"disallowed"],[[119982,119982],"mapped","s"],[[119983,119983],"mapped","t"],[[119984,119984],"mapped","u"],[[119985,119985],"mapped","v"],[[119986,119986],"mapped","w"],[[119987,119987],"mapped","x"],[[119988,119988],"mapped","y"],[[119989,119989],"mapped","z"],[[119990,119990],"mapped","a"],[[119991,119991],"mapped","b"],[[119992,119992],"mapped","c"],[[119993,119993],"mapped","d"],[[119994,119994],"disallowed"],[[119995,119995],"mapped","f"],[[119996,119996],"disallowed"],[[119997,119997],"mapped","h"],[[119998,119998],"mapped","i"],[[119999,119999],"mapped","j"],[[12e4,12e4],"mapped","k"],[[120001,120001],"mapped","l"],[[120002,120002],"mapped","m"],[[120003,120003],"mapped","n"],[[120004,120004],"disallowed"],[[120005,120005],"mapped","p"],[[120006,120006],"mapped","q"],[[120007,120007],"mapped","r"],[[120008,120008],"mapped","s"],[[120009,120009],"mapped","t"],[[120010,120010],"mapped","u"],[[120011,120011],"mapped","v"],[[120012,120012],"mapped","w"],[[120013,120013],"mapped","x"],[[120014,120014],"mapped","y"],[[120015,120015],"mapped","z"],[[120016,120016],"mapped","a"],[[120017,120017],"mapped","b"],[[120018,120018],"mapped","c"],[[120019,120019],"mapped","d"],[[120020,120020],"mapped","e"],[[120021,120021],"mapped","f"],[[120022,120022],"mapped","g"],[[120023,120023],"mapped","h"],[[120024,120024],"mapped","i"],[[120025,120025],"mapped","j"],[[120026,120026],"mapped","k"],[[120027,120027],"mapped","l"],[[120028,120028],"mapped","m"],[[120029,120029],"mapped","n"],[[120030,120030],"mapped","o"],[[120031,120031],"mapped","p"],[[120032,120032],"mapped","q"],[[120033,120033],"mapped","r"],[[120034,120034],"mapped","s"],[[120035,120035],"mapped","t"],[[120036,120036],"mapped","u"],[[120037,120037],"mapped","v"],[[120038,120038],"mapped","w"],[[120039,120039],"mapped","x"],[[120040,120040],"mapped","y"],[[120041,120041],"mapped","z"],[[120042,120042],"mapped","a"],[[120043,120043],"mapped","b"],[[120044,120044],"mapped","c"],[[120045,120045],"mapped","d"],[[120046,120046],"mapped","e"],[[120047,120047],"mapped","f"],[[120048,120048],"mapped","g"],[[120049,120049],"mapped","h"],[[120050,120050],"mapped","i"],[[120051,120051],"mapped","j"],[[120052,120052],"mapped","k"],[[120053,120053],"mapped","l"],[[120054,120054],"mapped","m"],[[120055,120055],"mapped","n"],[[120056,120056],"mapped","o"],[[120057,120057],"mapped","p"],[[120058,120058],"mapped","q"],[[120059,120059],"mapped","r"],[[120060,120060],"mapped","s"],[[120061,120061],"mapped","t"],[[120062,120062],"mapped","u"],[[120063,120063],"mapped","v"],[[120064,120064],"mapped","w"],[[120065,120065],"mapped","x"],[[120066,120066],"mapped","y"],[[120067,120067],"mapped","z"],[[120068,120068],"mapped","a"],[[120069,120069],"mapped","b"],[[120070,120070],"disallowed"],[[120071,120071],"mapped","d"],[[120072,120072],"mapped","e"],[[120073,120073],"mapped","f"],[[120074,120074],"mapped","g"],[[120075,120076],"disallowed"],[[120077,120077],"mapped","j"],[[120078,120078],"mapped","k"],[[120079,120079],"mapped","l"],[[120080,120080],"mapped","m"],[[120081,120081],"mapped","n"],[[120082,120082],"mapped","o"],[[120083,120083],"mapped","p"],[[120084,120084],"mapped","q"],[[120085,120085],"disallowed"],[[120086,120086],"mapped","s"],[[120087,120087],"mapped","t"],[[120088,120088],"mapped","u"],[[120089,120089],"mapped","v"],[[120090,120090],"mapped","w"],[[120091,120091],"mapped","x"],[[120092,120092],"mapped","y"],[[120093,120093],"disallowed"],[[120094,120094],"mapped","a"],[[120095,120095],"mapped","b"],[[120096,120096],"mapped","c"],[[120097,120097],"mapped","d"],[[120098,120098],"mapped","e"],[[120099,120099],"mapped","f"],[[120100,120100],"mapped","g"],[[120101,120101],"mapped","h"],[[120102,120102],"mapped","i"],[[120103,120103],"mapped","j"],[[120104,120104],"mapped","k"],[[120105,120105],"mapped","l"],[[120106,120106],"mapped","m"],[[120107,120107],"mapped","n"],[[120108,120108],"mapped","o"],[[120109,120109],"mapped","p"],[[120110,120110],"mapped","q"],[[120111,120111],"mapped","r"],[[120112,120112],"mapped","s"],[[120113,120113],"mapped","t"],[[120114,120114],"mapped","u"],[[120115,120115],"mapped","v"],[[120116,120116],"mapped","w"],[[120117,120117],"mapped","x"],[[120118,120118],"mapped","y"],[[120119,120119],"mapped","z"],[[120120,120120],"mapped","a"],[[120121,120121],"mapped","b"],[[120122,120122],"disallowed"],[[120123,120123],"mapped","d"],[[120124,120124],"mapped","e"],[[120125,120125],"mapped","f"],[[120126,120126],"mapped","g"],[[120127,120127],"disallowed"],[[120128,120128],"mapped","i"],[[120129,120129],"mapped","j"],[[120130,120130],"mapped","k"],[[120131,120131],"mapped","l"],[[120132,120132],"mapped","m"],[[120133,120133],"disallowed"],[[120134,120134],"mapped","o"],[[120135,120137],"disallowed"],[[120138,120138],"mapped","s"],[[120139,120139],"mapped","t"],[[120140,120140],"mapped","u"],[[120141,120141],"mapped","v"],[[120142,120142],"mapped","w"],[[120143,120143],"mapped","x"],[[120144,120144],"mapped","y"],[[120145,120145],"disallowed"],[[120146,120146],"mapped","a"],[[120147,120147],"mapped","b"],[[120148,120148],"mapped","c"],[[120149,120149],"mapped","d"],[[120150,120150],"mapped","e"],[[120151,120151],"mapped","f"],[[120152,120152],"mapped","g"],[[120153,120153],"mapped","h"],[[120154,120154],"mapped","i"],[[120155,120155],"mapped","j"],[[120156,120156],"mapped","k"],[[120157,120157],"mapped","l"],[[120158,120158],"mapped","m"],[[120159,120159],"mapped","n"],[[120160,120160],"mapped","o"],[[120161,120161],"mapped","p"],[[120162,120162],"mapped","q"],[[120163,120163],"mapped","r"],[[120164,120164],"mapped","s"],[[120165,120165],"mapped","t"],[[120166,120166],"mapped","u"],[[120167,120167],"mapped","v"],[[120168,120168],"mapped","w"],[[120169,120169],"mapped","x"],[[120170,120170],"mapped","y"],[[120171,120171],"mapped","z"],[[120172,120172],"mapped","a"],[[120173,120173],"mapped","b"],[[120174,120174],"mapped","c"],[[120175,120175],"mapped","d"],[[120176,120176],"mapped","e"],[[120177,120177],"mapped","f"],[[120178,120178],"mapped","g"],[[120179,120179],"mapped","h"],[[120180,120180],"mapped","i"],[[120181,120181],"mapped","j"],[[120182,120182],"mapped","k"],[[120183,120183],"mapped","l"],[[120184,120184],"mapped","m"],[[120185,120185],"mapped","n"],[[120186,120186],"mapped","o"],[[120187,120187],"mapped","p"],[[120188,120188],"mapped","q"],[[120189,120189],"mapped","r"],[[120190,120190],"mapped","s"],[[120191,120191],"mapped","t"],[[120192,120192],"mapped","u"],[[120193,120193],"mapped","v"],[[120194,120194],"mapped","w"],[[120195,120195],"mapped","x"],[[120196,120196],"mapped","y"],[[120197,120197],"mapped","z"],[[120198,120198],"mapped","a"],[[120199,120199],"mapped","b"],[[120200,120200],"mapped","c"],[[120201,120201],"mapped","d"],[[120202,120202],"mapped","e"],[[120203,120203],"mapped","f"],[[120204,120204],"mapped","g"],[[120205,120205],"mapped","h"],[[120206,120206],"mapped","i"],[[120207,120207],"mapped","j"],[[120208,120208],"mapped","k"],[[120209,120209],"mapped","l"],[[120210,120210],"mapped","m"],[[120211,120211],"mapped","n"],[[120212,120212],"mapped","o"],[[120213,120213],"mapped","p"],[[120214,120214],"mapped","q"],[[120215,120215],"mapped","r"],[[120216,120216],"mapped","s"],[[120217,120217],"mapped","t"],[[120218,120218],"mapped","u"],[[120219,120219],"mapped","v"],[[120220,120220],"mapped","w"],[[120221,120221],"mapped","x"],[[120222,120222],"mapped","y"],[[120223,120223],"mapped","z"],[[120224,120224],"mapped","a"],[[120225,120225],"mapped","b"],[[120226,120226],"mapped","c"],[[120227,120227],"mapped","d"],[[120228,120228],"mapped","e"],[[120229,120229],"mapped","f"],[[120230,120230],"mapped","g"],[[120231,120231],"mapped","h"],[[120232,120232],"mapped","i"],[[120233,120233],"mapped","j"],[[120234,120234],"mapped","k"],[[120235,120235],"mapped","l"],[[120236,120236],"mapped","m"],[[120237,120237],"mapped","n"],[[120238,120238],"mapped","o"],[[120239,120239],"mapped","p"],[[120240,120240],"mapped","q"],[[120241,120241],"mapped","r"],[[120242,120242],"mapped","s"],[[120243,120243],"mapped","t"],[[120244,120244],"mapped","u"],[[120245,120245],"mapped","v"],[[120246,120246],"mapped","w"],[[120247,120247],"mapped","x"],[[120248,120248],"mapped","y"],[[120249,120249],"mapped","z"],[[120250,120250],"mapped","a"],[[120251,120251],"mapped","b"],[[120252,120252],"mapped","c"],[[120253,120253],"mapped","d"],[[120254,120254],"mapped","e"],[[120255,120255],"mapped","f"],[[120256,120256],"mapped","g"],[[120257,120257],"mapped","h"],[[120258,120258],"mapped","i"],[[120259,120259],"mapped","j"],[[120260,120260],"mapped","k"],[[120261,120261],"mapped","l"],[[120262,120262],"mapped","m"],[[120263,120263],"mapped","n"],[[120264,120264],"mapped","o"],[[120265,120265],"mapped","p"],[[120266,120266],"mapped","q"],[[120267,120267],"mapped","r"],[[120268,120268],"mapped","s"],[[120269,120269],"mapped","t"],[[120270,120270],"mapped","u"],[[120271,120271],"mapped","v"],[[120272,120272],"mapped","w"],[[120273,120273],"mapped","x"],[[120274,120274],"mapped","y"],[[120275,120275],"mapped","z"],[[120276,120276],"mapped","a"],[[120277,120277],"mapped","b"],[[120278,120278],"mapped","c"],[[120279,120279],"mapped","d"],[[120280,120280],"mapped","e"],[[120281,120281],"mapped","f"],[[120282,120282],"mapped","g"],[[120283,120283],"mapped","h"],[[120284,120284],"mapped","i"],[[120285,120285],"mapped","j"],[[120286,120286],"mapped","k"],[[120287,120287],"mapped","l"],[[120288,120288],"mapped","m"],[[120289,120289],"mapped","n"],[[120290,120290],"mapped","o"],[[120291,120291],"mapped","p"],[[120292,120292],"mapped","q"],[[120293,120293],"mapped","r"],[[120294,120294],"mapped","s"],[[120295,120295],"mapped","t"],[[120296,120296],"mapped","u"],[[120297,120297],"mapped","v"],[[120298,120298],"mapped","w"],[[120299,120299],"mapped","x"],[[120300,120300],"mapped","y"],[[120301,120301],"mapped","z"],[[120302,120302],"mapped","a"],[[120303,120303],"mapped","b"],[[120304,120304],"mapped","c"],[[120305,120305],"mapped","d"],[[120306,120306],"mapped","e"],[[120307,120307],"mapped","f"],[[120308,120308],"mapped","g"],[[120309,120309],"mapped","h"],[[120310,120310],"mapped","i"],[[120311,120311],"mapped","j"],[[120312,120312],"mapped","k"],[[120313,120313],"mapped","l"],[[120314,120314],"mapped","m"],[[120315,120315],"mapped","n"],[[120316,120316],"mapped","o"],[[120317,120317],"mapped","p"],[[120318,120318],"mapped","q"],[[120319,120319],"mapped","r"],[[120320,120320],"mapped","s"],[[120321,120321],"mapped","t"],[[120322,120322],"mapped","u"],[[120323,120323],"mapped","v"],[[120324,120324],"mapped","w"],[[120325,120325],"mapped","x"],[[120326,120326],"mapped","y"],[[120327,120327],"mapped","z"],[[120328,120328],"mapped","a"],[[120329,120329],"mapped","b"],[[120330,120330],"mapped","c"],[[120331,120331],"mapped","d"],[[120332,120332],"mapped","e"],[[120333,120333],"mapped","f"],[[120334,120334],"mapped","g"],[[120335,120335],"mapped","h"],[[120336,120336],"mapped","i"],[[120337,120337],"mapped","j"],[[120338,120338],"mapped","k"],[[120339,120339],"mapped","l"],[[120340,120340],"mapped","m"],[[120341,120341],"mapped","n"],[[120342,120342],"mapped","o"],[[120343,120343],"mapped","p"],[[120344,120344],"mapped","q"],[[120345,120345],"mapped","r"],[[120346,120346],"mapped","s"],[[120347,120347],"mapped","t"],[[120348,120348],"mapped","u"],[[120349,120349],"mapped","v"],[[120350,120350],"mapped","w"],[[120351,120351],"mapped","x"],[[120352,120352],"mapped","y"],[[120353,120353],"mapped","z"],[[120354,120354],"mapped","a"],[[120355,120355],"mapped","b"],[[120356,120356],"mapped","c"],[[120357,120357],"mapped","d"],[[120358,120358],"mapped","e"],[[120359,120359],"mapped","f"],[[120360,120360],"mapped","g"],[[120361,120361],"mapped","h"],[[120362,120362],"mapped","i"],[[120363,120363],"mapped","j"],[[120364,120364],"mapped","k"],[[120365,120365],"mapped","l"],[[120366,120366],"mapped","m"],[[120367,120367],"mapped","n"],[[120368,120368],"mapped","o"],[[120369,120369],"mapped","p"],[[120370,120370],"mapped","q"],[[120371,120371],"mapped","r"],[[120372,120372],"mapped","s"],[[120373,120373],"mapped","t"],[[120374,120374],"mapped","u"],[[120375,120375],"mapped","v"],[[120376,120376],"mapped","w"],[[120377,120377],"mapped","x"],[[120378,120378],"mapped","y"],[[120379,120379],"mapped","z"],[[120380,120380],"mapped","a"],[[120381,120381],"mapped","b"],[[120382,120382],"mapped","c"],[[120383,120383],"mapped","d"],[[120384,120384],"mapped","e"],[[120385,120385],"mapped","f"],[[120386,120386],"mapped","g"],[[120387,120387],"mapped","h"],[[120388,120388],"mapped","i"],[[120389,120389],"mapped","j"],[[120390,120390],"mapped","k"],[[120391,120391],"mapped","l"],[[120392,120392],"mapped","m"],[[120393,120393],"mapped","n"],[[120394,120394],"mapped","o"],[[120395,120395],"mapped","p"],[[120396,120396],"mapped","q"],[[120397,120397],"mapped","r"],[[120398,120398],"mapped","s"],[[120399,120399],"mapped","t"],[[120400,120400],"mapped","u"],[[120401,120401],"mapped","v"],[[120402,120402],"mapped","w"],[[120403,120403],"mapped","x"],[[120404,120404],"mapped","y"],[[120405,120405],"mapped","z"],[[120406,120406],"mapped","a"],[[120407,120407],"mapped","b"],[[120408,120408],"mapped","c"],[[120409,120409],"mapped","d"],[[120410,120410],"mapped","e"],[[120411,120411],"mapped","f"],[[120412,120412],"mapped","g"],[[120413,120413],"mapped","h"],[[120414,120414],"mapped","i"],[[120415,120415],"mapped","j"],[[120416,120416],"mapped","k"],[[120417,120417],"mapped","l"],[[120418,120418],"mapped","m"],[[120419,120419],"mapped","n"],[[120420,120420],"mapped","o"],[[120421,120421],"mapped","p"],[[120422,120422],"mapped","q"],[[120423,120423],"mapped","r"],[[120424,120424],"mapped","s"],[[120425,120425],"mapped","t"],[[120426,120426],"mapped","u"],[[120427,120427],"mapped","v"],[[120428,120428],"mapped","w"],[[120429,120429],"mapped","x"],[[120430,120430],"mapped","y"],[[120431,120431],"mapped","z"],[[120432,120432],"mapped","a"],[[120433,120433],"mapped","b"],[[120434,120434],"mapped","c"],[[120435,120435],"mapped","d"],[[120436,120436],"mapped","e"],[[120437,120437],"mapped","f"],[[120438,120438],"mapped","g"],[[120439,120439],"mapped","h"],[[120440,120440],"mapped","i"],[[120441,120441],"mapped","j"],[[120442,120442],"mapped","k"],[[120443,120443],"mapped","l"],[[120444,120444],"mapped","m"],[[120445,120445],"mapped","n"],[[120446,120446],"mapped","o"],[[120447,120447],"mapped","p"],[[120448,120448],"mapped","q"],[[120449,120449],"mapped","r"],[[120450,120450],"mapped","s"],[[120451,120451],"mapped","t"],[[120452,120452],"mapped","u"],[[120453,120453],"mapped","v"],[[120454,120454],"mapped","w"],[[120455,120455],"mapped","x"],[[120456,120456],"mapped","y"],[[120457,120457],"mapped","z"],[[120458,120458],"mapped","a"],[[120459,120459],"mapped","b"],[[120460,120460],"mapped","c"],[[120461,120461],"mapped","d"],[[120462,120462],"mapped","e"],[[120463,120463],"mapped","f"],[[120464,120464],"mapped","g"],[[120465,120465],"mapped","h"],[[120466,120466],"mapped","i"],[[120467,120467],"mapped","j"],[[120468,120468],"mapped","k"],[[120469,120469],"mapped","l"],[[120470,120470],"mapped","m"],[[120471,120471],"mapped","n"],[[120472,120472],"mapped","o"],[[120473,120473],"mapped","p"],[[120474,120474],"mapped","q"],[[120475,120475],"mapped","r"],[[120476,120476],"mapped","s"],[[120477,120477],"mapped","t"],[[120478,120478],"mapped","u"],[[120479,120479],"mapped","v"],[[120480,120480],"mapped","w"],[[120481,120481],"mapped","x"],[[120482,120482],"mapped","y"],[[120483,120483],"mapped","z"],[[120484,120484],"mapped","ı"],[[120485,120485],"mapped","ȷ"],[[120486,120487],"disallowed"],[[120488,120488],"mapped","α"],[[120489,120489],"mapped","β"],[[120490,120490],"mapped","γ"],[[120491,120491],"mapped","δ"],[[120492,120492],"mapped","ε"],[[120493,120493],"mapped","ζ"],[[120494,120494],"mapped","η"],[[120495,120495],"mapped","θ"],[[120496,120496],"mapped","ι"],[[120497,120497],"mapped","κ"],[[120498,120498],"mapped","λ"],[[120499,120499],"mapped","μ"],[[120500,120500],"mapped","ν"],[[120501,120501],"mapped","ξ"],[[120502,120502],"mapped","ο"],[[120503,120503],"mapped","π"],[[120504,120504],"mapped","ρ"],[[120505,120505],"mapped","θ"],[[120506,120506],"mapped","σ"],[[120507,120507],"mapped","τ"],[[120508,120508],"mapped","υ"],[[120509,120509],"mapped","φ"],[[120510,120510],"mapped","χ"],[[120511,120511],"mapped","ψ"],[[120512,120512],"mapped","ω"],[[120513,120513],"mapped","∇"],[[120514,120514],"mapped","α"],[[120515,120515],"mapped","β"],[[120516,120516],"mapped","γ"],[[120517,120517],"mapped","δ"],[[120518,120518],"mapped","ε"],[[120519,120519],"mapped","ζ"],[[120520,120520],"mapped","η"],[[120521,120521],"mapped","θ"],[[120522,120522],"mapped","ι"],[[120523,120523],"mapped","κ"],[[120524,120524],"mapped","λ"],[[120525,120525],"mapped","μ"],[[120526,120526],"mapped","ν"],[[120527,120527],"mapped","ξ"],[[120528,120528],"mapped","ο"],[[120529,120529],"mapped","π"],[[120530,120530],"mapped","ρ"],[[120531,120532],"mapped","σ"],[[120533,120533],"mapped","τ"],[[120534,120534],"mapped","υ"],[[120535,120535],"mapped","φ"],[[120536,120536],"mapped","χ"],[[120537,120537],"mapped","ψ"],[[120538,120538],"mapped","ω"],[[120539,120539],"mapped","∂"],[[120540,120540],"mapped","ε"],[[120541,120541],"mapped","θ"],[[120542,120542],"mapped","κ"],[[120543,120543],"mapped","φ"],[[120544,120544],"mapped","ρ"],[[120545,120545],"mapped","π"],[[120546,120546],"mapped","α"],[[120547,120547],"mapped","β"],[[120548,120548],"mapped","γ"],[[120549,120549],"mapped","δ"],[[120550,120550],"mapped","ε"],[[120551,120551],"mapped","ζ"],[[120552,120552],"mapped","η"],[[120553,120553],"mapped","θ"],[[120554,120554],"mapped","ι"],[[120555,120555],"mapped","κ"],[[120556,120556],"mapped","λ"],[[120557,120557],"mapped","μ"],[[120558,120558],"mapped","ν"],[[120559,120559],"mapped","ξ"],[[120560,120560],"mapped","ο"],[[120561,120561],"mapped","π"],[[120562,120562],"mapped","ρ"],[[120563,120563],"mapped","θ"],[[120564,120564],"mapped","σ"],[[120565,120565],"mapped","τ"],[[120566,120566],"mapped","υ"],[[120567,120567],"mapped","φ"],[[120568,120568],"mapped","χ"],[[120569,120569],"mapped","ψ"],[[120570,120570],"mapped","ω"],[[120571,120571],"mapped","∇"],[[120572,120572],"mapped","α"],[[120573,120573],"mapped","β"],[[120574,120574],"mapped","γ"],[[120575,120575],"mapped","δ"],[[120576,120576],"mapped","ε"],[[120577,120577],"mapped","ζ"],[[120578,120578],"mapped","η"],[[120579,120579],"mapped","θ"],[[120580,120580],"mapped","ι"],[[120581,120581],"mapped","κ"],[[120582,120582],"mapped","λ"],[[120583,120583],"mapped","μ"],[[120584,120584],"mapped","ν"],[[120585,120585],"mapped","ξ"],[[120586,120586],"mapped","ο"],[[120587,120587],"mapped","π"],[[120588,120588],"mapped","ρ"],[[120589,120590],"mapped","σ"],[[120591,120591],"mapped","τ"],[[120592,120592],"mapped","υ"],[[120593,120593],"mapped","φ"],[[120594,120594],"mapped","χ"],[[120595,120595],"mapped","ψ"],[[120596,120596],"mapped","ω"],[[120597,120597],"mapped","∂"],[[120598,120598],"mapped","ε"],[[120599,120599],"mapped","θ"],[[120600,120600],"mapped","κ"],[[120601,120601],"mapped","φ"],[[120602,120602],"mapped","ρ"],[[120603,120603],"mapped","π"],[[120604,120604],"mapped","α"],[[120605,120605],"mapped","β"],[[120606,120606],"mapped","γ"],[[120607,120607],"mapped","δ"],[[120608,120608],"mapped","ε"],[[120609,120609],"mapped","ζ"],[[120610,120610],"mapped","η"],[[120611,120611],"mapped","θ"],[[120612,120612],"mapped","ι"],[[120613,120613],"mapped","κ"],[[120614,120614],"mapped","λ"],[[120615,120615],"mapped","μ"],[[120616,120616],"mapped","ν"],[[120617,120617],"mapped","ξ"],[[120618,120618],"mapped","ο"],[[120619,120619],"mapped","π"],[[120620,120620],"mapped","ρ"],[[120621,120621],"mapped","θ"],[[120622,120622],"mapped","σ"],[[120623,120623],"mapped","τ"],[[120624,120624],"mapped","υ"],[[120625,120625],"mapped","φ"],[[120626,120626],"mapped","χ"],[[120627,120627],"mapped","ψ"],[[120628,120628],"mapped","ω"],[[120629,120629],"mapped","∇"],[[120630,120630],"mapped","α"],[[120631,120631],"mapped","β"],[[120632,120632],"mapped","γ"],[[120633,120633],"mapped","δ"],[[120634,120634],"mapped","ε"],[[120635,120635],"mapped","ζ"],[[120636,120636],"mapped","η"],[[120637,120637],"mapped","θ"],[[120638,120638],"mapped","ι"],[[120639,120639],"mapped","κ"],[[120640,120640],"mapped","λ"],[[120641,120641],"mapped","μ"],[[120642,120642],"mapped","ν"],[[120643,120643],"mapped","ξ"],[[120644,120644],"mapped","ο"],[[120645,120645],"mapped","π"],[[120646,120646],"mapped","ρ"],[[120647,120648],"mapped","σ"],[[120649,120649],"mapped","τ"],[[120650,120650],"mapped","υ"],[[120651,120651],"mapped","φ"],[[120652,120652],"mapped","χ"],[[120653,120653],"mapped","ψ"],[[120654,120654],"mapped","ω"],[[120655,120655],"mapped","∂"],[[120656,120656],"mapped","ε"],[[120657,120657],"mapped","θ"],[[120658,120658],"mapped","κ"],[[120659,120659],"mapped","φ"],[[120660,120660],"mapped","ρ"],[[120661,120661],"mapped","π"],[[120662,120662],"mapped","α"],[[120663,120663],"mapped","β"],[[120664,120664],"mapped","γ"],[[120665,120665],"mapped","δ"],[[120666,120666],"mapped","ε"],[[120667,120667],"mapped","ζ"],[[120668,120668],"mapped","η"],[[120669,120669],"mapped","θ"],[[120670,120670],"mapped","ι"],[[120671,120671],"mapped","κ"],[[120672,120672],"mapped","λ"],[[120673,120673],"mapped","μ"],[[120674,120674],"mapped","ν"],[[120675,120675],"mapped","ξ"],[[120676,120676],"mapped","ο"],[[120677,120677],"mapped","π"],[[120678,120678],"mapped","ρ"],[[120679,120679],"mapped","θ"],[[120680,120680],"mapped","σ"],[[120681,120681],"mapped","τ"],[[120682,120682],"mapped","υ"],[[120683,120683],"mapped","φ"],[[120684,120684],"mapped","χ"],[[120685,120685],"mapped","ψ"],[[120686,120686],"mapped","ω"],[[120687,120687],"mapped","∇"],[[120688,120688],"mapped","α"],[[120689,120689],"mapped","β"],[[120690,120690],"mapped","γ"],[[120691,120691],"mapped","δ"],[[120692,120692],"mapped","ε"],[[120693,120693],"mapped","ζ"],[[120694,120694],"mapped","η"],[[120695,120695],"mapped","θ"],[[120696,120696],"mapped","ι"],[[120697,120697],"mapped","κ"],[[120698,120698],"mapped","λ"],[[120699,120699],"mapped","μ"],[[120700,120700],"mapped","ν"],[[120701,120701],"mapped","ξ"],[[120702,120702],"mapped","ο"],[[120703,120703],"mapped","π"],[[120704,120704],"mapped","ρ"],[[120705,120706],"mapped","σ"],[[120707,120707],"mapped","τ"],[[120708,120708],"mapped","υ"],[[120709,120709],"mapped","φ"],[[120710,120710],"mapped","χ"],[[120711,120711],"mapped","ψ"],[[120712,120712],"mapped","ω"],[[120713,120713],"mapped","∂"],[[120714,120714],"mapped","ε"],[[120715,120715],"mapped","θ"],[[120716,120716],"mapped","κ"],[[120717,120717],"mapped","φ"],[[120718,120718],"mapped","ρ"],[[120719,120719],"mapped","π"],[[120720,120720],"mapped","α"],[[120721,120721],"mapped","β"],[[120722,120722],"mapped","γ"],[[120723,120723],"mapped","δ"],[[120724,120724],"mapped","ε"],[[120725,120725],"mapped","ζ"],[[120726,120726],"mapped","η"],[[120727,120727],"mapped","θ"],[[120728,120728],"mapped","ι"],[[120729,120729],"mapped","κ"],[[120730,120730],"mapped","λ"],[[120731,120731],"mapped","μ"],[[120732,120732],"mapped","ν"],[[120733,120733],"mapped","ξ"],[[120734,120734],"mapped","ο"],[[120735,120735],"mapped","π"],[[120736,120736],"mapped","ρ"],[[120737,120737],"mapped","θ"],[[120738,120738],"mapped","σ"],[[120739,120739],"mapped","τ"],[[120740,120740],"mapped","υ"],[[120741,120741],"mapped","φ"],[[120742,120742],"mapped","χ"],[[120743,120743],"mapped","ψ"],[[120744,120744],"mapped","ω"],[[120745,120745],"mapped","∇"],[[120746,120746],"mapped","α"],[[120747,120747],"mapped","β"],[[120748,120748],"mapped","γ"],[[120749,120749],"mapped","δ"],[[120750,120750],"mapped","ε"],[[120751,120751],"mapped","ζ"],[[120752,120752],"mapped","η"],[[120753,120753],"mapped","θ"],[[120754,120754],"mapped","ι"],[[120755,120755],"mapped","κ"],[[120756,120756],"mapped","λ"],[[120757,120757],"mapped","μ"],[[120758,120758],"mapped","ν"],[[120759,120759],"mapped","ξ"],[[120760,120760],"mapped","ο"],[[120761,120761],"mapped","π"],[[120762,120762],"mapped","ρ"],[[120763,120764],"mapped","σ"],[[120765,120765],"mapped","τ"],[[120766,120766],"mapped","υ"],[[120767,120767],"mapped","φ"],[[120768,120768],"mapped","χ"],[[120769,120769],"mapped","ψ"],[[120770,120770],"mapped","ω"],[[120771,120771],"mapped","∂"],[[120772,120772],"mapped","ε"],[[120773,120773],"mapped","θ"],[[120774,120774],"mapped","κ"],[[120775,120775],"mapped","φ"],[[120776,120776],"mapped","ρ"],[[120777,120777],"mapped","π"],[[120778,120779],"mapped","ϝ"],[[120780,120781],"disallowed"],[[120782,120782],"mapped","0"],[[120783,120783],"mapped","1"],[[120784,120784],"mapped","2"],[[120785,120785],"mapped","3"],[[120786,120786],"mapped","4"],[[120787,120787],"mapped","5"],[[120788,120788],"mapped","6"],[[120789,120789],"mapped","7"],[[120790,120790],"mapped","8"],[[120791,120791],"mapped","9"],[[120792,120792],"mapped","0"],[[120793,120793],"mapped","1"],[[120794,120794],"mapped","2"],[[120795,120795],"mapped","3"],[[120796,120796],"mapped","4"],[[120797,120797],"mapped","5"],[[120798,120798],"mapped","6"],[[120799,120799],"mapped","7"],[[120800,120800],"mapped","8"],[[120801,120801],"mapped","9"],[[120802,120802],"mapped","0"],[[120803,120803],"mapped","1"],[[120804,120804],"mapped","2"],[[120805,120805],"mapped","3"],[[120806,120806],"mapped","4"],[[120807,120807],"mapped","5"],[[120808,120808],"mapped","6"],[[120809,120809],"mapped","7"],[[120810,120810],"mapped","8"],[[120811,120811],"mapped","9"],[[120812,120812],"mapped","0"],[[120813,120813],"mapped","1"],[[120814,120814],"mapped","2"],[[120815,120815],"mapped","3"],[[120816,120816],"mapped","4"],[[120817,120817],"mapped","5"],[[120818,120818],"mapped","6"],[[120819,120819],"mapped","7"],[[120820,120820],"mapped","8"],[[120821,120821],"mapped","9"],[[120822,120822],"mapped","0"],[[120823,120823],"mapped","1"],[[120824,120824],"mapped","2"],[[120825,120825],"mapped","3"],[[120826,120826],"mapped","4"],[[120827,120827],"mapped","5"],[[120828,120828],"mapped","6"],[[120829,120829],"mapped","7"],[[120830,120830],"mapped","8"],[[120831,120831],"mapped","9"],[[120832,121343],"valid","","NV8"],[[121344,121398],"valid"],[[121399,121402],"valid","","NV8"],[[121403,121452],"valid"],[[121453,121460],"valid","","NV8"],[[121461,121461],"valid"],[[121462,121475],"valid","","NV8"],[[121476,121476],"valid"],[[121477,121483],"valid","","NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,122879],"disallowed"],[[122880,122886],"valid"],[[122887,122887],"disallowed"],[[122888,122904],"valid"],[[122905,122906],"disallowed"],[[122907,122913],"valid"],[[122914,122914],"disallowed"],[[122915,122916],"valid"],[[122917,122917],"disallowed"],[[122918,122922],"valid"],[[122923,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid","","NV8"],[[125136,125142],"valid"],[[125143,125183],"disallowed"],[[125184,125184],"mapped","𞤢"],[[125185,125185],"mapped","𞤣"],[[125186,125186],"mapped","𞤤"],[[125187,125187],"mapped","𞤥"],[[125188,125188],"mapped","𞤦"],[[125189,125189],"mapped","𞤧"],[[125190,125190],"mapped","𞤨"],[[125191,125191],"mapped","𞤩"],[[125192,125192],"mapped","𞤪"],[[125193,125193],"mapped","𞤫"],[[125194,125194],"mapped","𞤬"],[[125195,125195],"mapped","𞤭"],[[125196,125196],"mapped","𞤮"],[[125197,125197],"mapped","𞤯"],[[125198,125198],"mapped","𞤰"],[[125199,125199],"mapped","𞤱"],[[125200,125200],"mapped","𞤲"],[[125201,125201],"mapped","𞤳"],[[125202,125202],"mapped","𞤴"],[[125203,125203],"mapped","𞤵"],[[125204,125204],"mapped","𞤶"],[[125205,125205],"mapped","𞤷"],[[125206,125206],"mapped","𞤸"],[[125207,125207],"mapped","𞤹"],[[125208,125208],"mapped","𞤺"],[[125209,125209],"mapped","𞤻"],[[125210,125210],"mapped","𞤼"],[[125211,125211],"mapped","𞤽"],[[125212,125212],"mapped","𞤾"],[[125213,125213],"mapped","𞤿"],[[125214,125214],"mapped","𞥀"],[[125215,125215],"mapped","𞥁"],[[125216,125216],"mapped","𞥂"],[[125217,125217],"mapped","𞥃"],[[125218,125258],"valid"],[[125259,125263],"disallowed"],[[125264,125273],"valid"],[[125274,125277],"disallowed"],[[125278,125279],"valid","","NV8"],[[125280,126463],"disallowed"],[[126464,126464],"mapped","ا"],[[126465,126465],"mapped","ب"],[[126466,126466],"mapped","ج"],[[126467,126467],"mapped","د"],[[126468,126468],"disallowed"],[[126469,126469],"mapped","و"],[[126470,126470],"mapped","ز"],[[126471,126471],"mapped","ح"],[[126472,126472],"mapped","ط"],[[126473,126473],"mapped","ي"],[[126474,126474],"mapped","ك"],[[126475,126475],"mapped","ل"],[[126476,126476],"mapped","م"],[[126477,126477],"mapped","ن"],[[126478,126478],"mapped","س"],[[126479,126479],"mapped","ع"],[[126480,126480],"mapped","ف"],[[126481,126481],"mapped","ص"],[[126482,126482],"mapped","ق"],[[126483,126483],"mapped","ر"],[[126484,126484],"mapped","ش"],[[126485,126485],"mapped","ت"],[[126486,126486],"mapped","ث"],[[126487,126487],"mapped","خ"],[[126488,126488],"mapped","ذ"],[[126489,126489],"mapped","ض"],[[126490,126490],"mapped","ظ"],[[126491,126491],"mapped","غ"],[[126492,126492],"mapped","ٮ"],[[126493,126493],"mapped","ں"],[[126494,126494],"mapped","ڡ"],[[126495,126495],"mapped","ٯ"],[[126496,126496],"disallowed"],[[126497,126497],"mapped","ب"],[[126498,126498],"mapped","ج"],[[126499,126499],"disallowed"],[[126500,126500],"mapped","ه"],[[126501,126502],"disallowed"],[[126503,126503],"mapped","ح"],[[126504,126504],"disallowed"],[[126505,126505],"mapped","ي"],[[126506,126506],"mapped","ك"],[[126507,126507],"mapped","ل"],[[126508,126508],"mapped","م"],[[126509,126509],"mapped","ن"],[[126510,126510],"mapped","س"],[[126511,126511],"mapped","ع"],[[126512,126512],"mapped","ف"],[[126513,126513],"mapped","ص"],[[126514,126514],"mapped","ق"],[[126515,126515],"disallowed"],[[126516,126516],"mapped","ش"],[[126517,126517],"mapped","ت"],[[126518,126518],"mapped","ث"],[[126519,126519],"mapped","خ"],[[126520,126520],"disallowed"],[[126521,126521],"mapped","ض"],[[126522,126522],"disallowed"],[[126523,126523],"mapped","غ"],[[126524,126529],"disallowed"],[[126530,126530],"mapped","ج"],[[126531,126534],"disallowed"],[[126535,126535],"mapped","ح"],[[126536,126536],"disallowed"],[[126537,126537],"mapped","ي"],[[126538,126538],"disallowed"],[[126539,126539],"mapped","ل"],[[126540,126540],"disallowed"],[[126541,126541],"mapped","ن"],[[126542,126542],"mapped","س"],[[126543,126543],"mapped","ع"],[[126544,126544],"disallowed"],[[126545,126545],"mapped","ص"],[[126546,126546],"mapped","ق"],[[126547,126547],"disallowed"],[[126548,126548],"mapped","ش"],[[126549,126550],"disallowed"],[[126551,126551],"mapped","خ"],[[126552,126552],"disallowed"],[[126553,126553],"mapped","ض"],[[126554,126554],"disallowed"],[[126555,126555],"mapped","غ"],[[126556,126556],"disallowed"],[[126557,126557],"mapped","ں"],[[126558,126558],"disallowed"],[[126559,126559],"mapped","ٯ"],[[126560,126560],"disallowed"],[[126561,126561],"mapped","ب"],[[126562,126562],"mapped","ج"],[[126563,126563],"disallowed"],[[126564,126564],"mapped","ه"],[[126565,126566],"disallowed"],[[126567,126567],"mapped","ح"],[[126568,126568],"mapped","ط"],[[126569,126569],"mapped","ي"],[[126570,126570],"mapped","ك"],[[126571,126571],"disallowed"],[[126572,126572],"mapped","م"],[[126573,126573],"mapped","ن"],[[126574,126574],"mapped","س"],[[126575,126575],"mapped","ع"],[[126576,126576],"mapped","ف"],[[126577,126577],"mapped","ص"],[[126578,126578],"mapped","ق"],[[126579,126579],"disallowed"],[[126580,126580],"mapped","ش"],[[126581,126581],"mapped","ت"],[[126582,126582],"mapped","ث"],[[126583,126583],"mapped","خ"],[[126584,126584],"disallowed"],[[126585,126585],"mapped","ض"],[[126586,126586],"mapped","ظ"],[[126587,126587],"mapped","غ"],[[126588,126588],"mapped","ٮ"],[[126589,126589],"disallowed"],[[126590,126590],"mapped","ڡ"],[[126591,126591],"disallowed"],[[126592,126592],"mapped","ا"],[[126593,126593],"mapped","ب"],[[126594,126594],"mapped","ج"],[[126595,126595],"mapped","د"],[[126596,126596],"mapped","ه"],[[126597,126597],"mapped","و"],[[126598,126598],"mapped","ز"],[[126599,126599],"mapped","ح"],[[126600,126600],"mapped","ط"],[[126601,126601],"mapped","ي"],[[126602,126602],"disallowed"],[[126603,126603],"mapped","ل"],[[126604,126604],"mapped","م"],[[126605,126605],"mapped","ن"],[[126606,126606],"mapped","س"],[[126607,126607],"mapped","ع"],[[126608,126608],"mapped","ف"],[[126609,126609],"mapped","ص"],[[126610,126610],"mapped","ق"],[[126611,126611],"mapped","ر"],[[126612,126612],"mapped","ش"],[[126613,126613],"mapped","ت"],[[126614,126614],"mapped","ث"],[[126615,126615],"mapped","خ"],[[126616,126616],"mapped","ذ"],[[126617,126617],"mapped","ض"],[[126618,126618],"mapped","ظ"],[[126619,126619],"mapped","غ"],[[126620,126624],"disallowed"],[[126625,126625],"mapped","ب"],[[126626,126626],"mapped","ج"],[[126627,126627],"mapped","د"],[[126628,126628],"disallowed"],[[126629,126629],"mapped","و"],[[126630,126630],"mapped","ز"],[[126631,126631],"mapped","ح"],[[126632,126632],"mapped","ط"],[[126633,126633],"mapped","ي"],[[126634,126634],"disallowed"],[[126635,126635],"mapped","ل"],[[126636,126636],"mapped","م"],[[126637,126637],"mapped","ن"],[[126638,126638],"mapped","س"],[[126639,126639],"mapped","ع"],[[126640,126640],"mapped","ف"],[[126641,126641],"mapped","ص"],[[126642,126642],"mapped","ق"],[[126643,126643],"mapped","ر"],[[126644,126644],"mapped","ش"],[[126645,126645],"mapped","ت"],[[126646,126646],"mapped","ث"],[[126647,126647],"mapped","خ"],[[126648,126648],"mapped","ذ"],[[126649,126649],"mapped","ض"],[[126650,126650],"mapped","ظ"],[[126651,126651],"mapped","غ"],[[126652,126703],"disallowed"],[[126704,126705],"valid","","NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid","","NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid","","NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid","","NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid","","NV8"],[[127167,127167],"valid","","NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid","","NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid","","NV8"],[[127200,127221],"valid","","NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped","0,"],[[127234,127234],"disallowed_STD3_mapped","1,"],[[127235,127235],"disallowed_STD3_mapped","2,"],[[127236,127236],"disallowed_STD3_mapped","3,"],[[127237,127237],"disallowed_STD3_mapped","4,"],[[127238,127238],"disallowed_STD3_mapped","5,"],[[127239,127239],"disallowed_STD3_mapped","6,"],[[127240,127240],"disallowed_STD3_mapped","7,"],[[127241,127241],"disallowed_STD3_mapped","8,"],[[127242,127242],"disallowed_STD3_mapped","9,"],[[127243,127244],"valid","","NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped","(a)"],[[127249,127249],"disallowed_STD3_mapped","(b)"],[[127250,127250],"disallowed_STD3_mapped","(c)"],[[127251,127251],"disallowed_STD3_mapped","(d)"],[[127252,127252],"disallowed_STD3_mapped","(e)"],[[127253,127253],"disallowed_STD3_mapped","(f)"],[[127254,127254],"disallowed_STD3_mapped","(g)"],[[127255,127255],"disallowed_STD3_mapped","(h)"],[[127256,127256],"disallowed_STD3_mapped","(i)"],[[127257,127257],"disallowed_STD3_mapped","(j)"],[[127258,127258],"disallowed_STD3_mapped","(k)"],[[127259,127259],"disallowed_STD3_mapped","(l)"],[[127260,127260],"disallowed_STD3_mapped","(m)"],[[127261,127261],"disallowed_STD3_mapped","(n)"],[[127262,127262],"disallowed_STD3_mapped","(o)"],[[127263,127263],"disallowed_STD3_mapped","(p)"],[[127264,127264],"disallowed_STD3_mapped","(q)"],[[127265,127265],"disallowed_STD3_mapped","(r)"],[[127266,127266],"disallowed_STD3_mapped","(s)"],[[127267,127267],"disallowed_STD3_mapped","(t)"],[[127268,127268],"disallowed_STD3_mapped","(u)"],[[127269,127269],"disallowed_STD3_mapped","(v)"],[[127270,127270],"disallowed_STD3_mapped","(w)"],[[127271,127271],"disallowed_STD3_mapped","(x)"],[[127272,127272],"disallowed_STD3_mapped","(y)"],[[127273,127273],"disallowed_STD3_mapped","(z)"],[[127274,127274],"mapped","〔s〕"],[[127275,127275],"mapped","c"],[[127276,127276],"mapped","r"],[[127277,127277],"mapped","cd"],[[127278,127278],"mapped","wz"],[[127279,127279],"disallowed"],[[127280,127280],"mapped","a"],[[127281,127281],"mapped","b"],[[127282,127282],"mapped","c"],[[127283,127283],"mapped","d"],[[127284,127284],"mapped","e"],[[127285,127285],"mapped","f"],[[127286,127286],"mapped","g"],[[127287,127287],"mapped","h"],[[127288,127288],"mapped","i"],[[127289,127289],"mapped","j"],[[127290,127290],"mapped","k"],[[127291,127291],"mapped","l"],[[127292,127292],"mapped","m"],[[127293,127293],"mapped","n"],[[127294,127294],"mapped","o"],[[127295,127295],"mapped","p"],[[127296,127296],"mapped","q"],[[127297,127297],"mapped","r"],[[127298,127298],"mapped","s"],[[127299,127299],"mapped","t"],[[127300,127300],"mapped","u"],[[127301,127301],"mapped","v"],[[127302,127302],"mapped","w"],[[127303,127303],"mapped","x"],[[127304,127304],"mapped","y"],[[127305,127305],"mapped","z"],[[127306,127306],"mapped","hv"],[[127307,127307],"mapped","mv"],[[127308,127308],"mapped","sd"],[[127309,127309],"mapped","ss"],[[127310,127310],"mapped","ppv"],[[127311,127311],"mapped","wc"],[[127312,127318],"valid","","NV8"],[[127319,127319],"valid","","NV8"],[[127320,127326],"valid","","NV8"],[[127327,127327],"valid","","NV8"],[[127328,127337],"valid","","NV8"],[[127338,127338],"mapped","mc"],[[127339,127339],"mapped","md"],[[127340,127343],"disallowed"],[[127344,127352],"valid","","NV8"],[[127353,127353],"valid","","NV8"],[[127354,127354],"valid","","NV8"],[[127355,127356],"valid","","NV8"],[[127357,127358],"valid","","NV8"],[[127359,127359],"valid","","NV8"],[[127360,127369],"valid","","NV8"],[[127370,127373],"valid","","NV8"],[[127374,127375],"valid","","NV8"],[[127376,127376],"mapped","dj"],[[127377,127386],"valid","","NV8"],[[127387,127404],"valid","","NV8"],[[127405,127461],"disallowed"],[[127462,127487],"valid","","NV8"],[[127488,127488],"mapped","ほか"],[[127489,127489],"mapped","ココ"],[[127490,127490],"mapped","サ"],[[127491,127503],"disallowed"],[[127504,127504],"mapped","手"],[[127505,127505],"mapped","字"],[[127506,127506],"mapped","双"],[[127507,127507],"mapped","デ"],[[127508,127508],"mapped","二"],[[127509,127509],"mapped","多"],[[127510,127510],"mapped","解"],[[127511,127511],"mapped","天"],[[127512,127512],"mapped","交"],[[127513,127513],"mapped","映"],[[127514,127514],"mapped","無"],[[127515,127515],"mapped","料"],[[127516,127516],"mapped","前"],[[127517,127517],"mapped","後"],[[127518,127518],"mapped","再"],[[127519,127519],"mapped","新"],[[127520,127520],"mapped","初"],[[127521,127521],"mapped","終"],[[127522,127522],"mapped","生"],[[127523,127523],"mapped","販"],[[127524,127524],"mapped","声"],[[127525,127525],"mapped","吹"],[[127526,127526],"mapped","演"],[[127527,127527],"mapped","投"],[[127528,127528],"mapped","捕"],[[127529,127529],"mapped","一"],[[127530,127530],"mapped","三"],[[127531,127531],"mapped","遊"],[[127532,127532],"mapped","左"],[[127533,127533],"mapped","中"],[[127534,127534],"mapped","右"],[[127535,127535],"mapped","指"],[[127536,127536],"mapped","走"],[[127537,127537],"mapped","打"],[[127538,127538],"mapped","禁"],[[127539,127539],"mapped","空"],[[127540,127540],"mapped","合"],[[127541,127541],"mapped","満"],[[127542,127542],"mapped","有"],[[127543,127543],"mapped","月"],[[127544,127544],"mapped","申"],[[127545,127545],"mapped","割"],[[127546,127546],"mapped","営"],[[127547,127547],"mapped","配"],[[127548,127551],"disallowed"],[[127552,127552],"mapped","〔本〕"],[[127553,127553],"mapped","〔三〕"],[[127554,127554],"mapped","〔二〕"],[[127555,127555],"mapped","〔安〕"],[[127556,127556],"mapped","〔点〕"],[[127557,127557],"mapped","〔打〕"],[[127558,127558],"mapped","〔盗〕"],[[127559,127559],"mapped","〔勝〕"],[[127560,127560],"mapped","〔敗〕"],[[127561,127567],"disallowed"],[[127568,127568],"mapped","得"],[[127569,127569],"mapped","可"],[[127570,127583],"disallowed"],[[127584,127589],"valid","","NV8"],[[127590,127743],"disallowed"],[[127744,127776],"valid","","NV8"],[[127777,127788],"valid","","NV8"],[[127789,127791],"valid","","NV8"],[[127792,127797],"valid","","NV8"],[[127798,127798],"valid","","NV8"],[[127799,127868],"valid","","NV8"],[[127869,127869],"valid","","NV8"],[[127870,127871],"valid","","NV8"],[[127872,127891],"valid","","NV8"],[[127892,127903],"valid","","NV8"],[[127904,127940],"valid","","NV8"],[[127941,127941],"valid","","NV8"],[[127942,127946],"valid","","NV8"],[[127947,127950],"valid","","NV8"],[[127951,127955],"valid","","NV8"],[[127956,127967],"valid","","NV8"],[[127968,127984],"valid","","NV8"],[[127985,127991],"valid","","NV8"],[[127992,127999],"valid","","NV8"],[[128e3,128062],"valid","","NV8"],[[128063,128063],"valid","","NV8"],[[128064,128064],"valid","","NV8"],[[128065,128065],"valid","","NV8"],[[128066,128247],"valid","","NV8"],[[128248,128248],"valid","","NV8"],[[128249,128252],"valid","","NV8"],[[128253,128254],"valid","","NV8"],[[128255,128255],"valid","","NV8"],[[128256,128317],"valid","","NV8"],[[128318,128319],"valid","","NV8"],[[128320,128323],"valid","","NV8"],[[128324,128330],"valid","","NV8"],[[128331,128335],"valid","","NV8"],[[128336,128359],"valid","","NV8"],[[128360,128377],"valid","","NV8"],[[128378,128378],"valid","","NV8"],[[128379,128419],"valid","","NV8"],[[128420,128420],"valid","","NV8"],[[128421,128506],"valid","","NV8"],[[128507,128511],"valid","","NV8"],[[128512,128512],"valid","","NV8"],[[128513,128528],"valid","","NV8"],[[128529,128529],"valid","","NV8"],[[128530,128532],"valid","","NV8"],[[128533,128533],"valid","","NV8"],[[128534,128534],"valid","","NV8"],[[128535,128535],"valid","","NV8"],[[128536,128536],"valid","","NV8"],[[128537,128537],"valid","","NV8"],[[128538,128538],"valid","","NV8"],[[128539,128539],"valid","","NV8"],[[128540,128542],"valid","","NV8"],[[128543,128543],"valid","","NV8"],[[128544,128549],"valid","","NV8"],[[128550,128551],"valid","","NV8"],[[128552,128555],"valid","","NV8"],[[128556,128556],"valid","","NV8"],[[128557,128557],"valid","","NV8"],[[128558,128559],"valid","","NV8"],[[128560,128563],"valid","","NV8"],[[128564,128564],"valid","","NV8"],[[128565,128576],"valid","","NV8"],[[128577,128578],"valid","","NV8"],[[128579,128580],"valid","","NV8"],[[128581,128591],"valid","","NV8"],[[128592,128639],"valid","","NV8"],[[128640,128709],"valid","","NV8"],[[128710,128719],"valid","","NV8"],[[128720,128720],"valid","","NV8"],[[128721,128722],"valid","","NV8"],[[128723,128724],"valid","","NV8"],[[128725,128735],"disallowed"],[[128736,128748],"valid","","NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid","","NV8"],[[128756,128758],"valid","","NV8"],[[128759,128760],"valid","","NV8"],[[128761,128767],"disallowed"],[[128768,128883],"valid","","NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid","","NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid","","NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid","","NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid","","NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid","","NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid","","NV8"],[[129198,129279],"disallowed"],[[129280,129291],"valid","","NV8"],[[129292,129295],"disallowed"],[[129296,129304],"valid","","NV8"],[[129305,129310],"valid","","NV8"],[[129311,129311],"valid","","NV8"],[[129312,129319],"valid","","NV8"],[[129320,129327],"valid","","NV8"],[[129328,129328],"valid","","NV8"],[[129329,129330],"valid","","NV8"],[[129331,129342],"valid","","NV8"],[[129343,129343],"disallowed"],[[129344,129355],"valid","","NV8"],[[129356,129356],"valid","","NV8"],[[129357,129359],"disallowed"],[[129360,129374],"valid","","NV8"],[[129375,129387],"valid","","NV8"],[[129388,129407],"disallowed"],[[129408,129412],"valid","","NV8"],[[129413,129425],"valid","","NV8"],[[129426,129431],"valid","","NV8"],[[129432,129471],"disallowed"],[[129472,129472],"valid","","NV8"],[[129473,129487],"disallowed"],[[129488,129510],"valid","","NV8"],[[129511,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,183983],"disallowed"],[[183984,191456],"valid"],[[191457,194559],"disallowed"],[[194560,194560],"mapped","丽"],[[194561,194561],"mapped","丸"],[[194562,194562],"mapped","乁"],[[194563,194563],"mapped","𠄢"],[[194564,194564],"mapped","你"],[[194565,194565],"mapped","侮"],[[194566,194566],"mapped","侻"],[[194567,194567],"mapped","倂"],[[194568,194568],"mapped","偺"],[[194569,194569],"mapped","備"],[[194570,194570],"mapped","僧"],[[194571,194571],"mapped","像"],[[194572,194572],"mapped","㒞"],[[194573,194573],"mapped","𠘺"],[[194574,194574],"mapped","免"],[[194575,194575],"mapped","兔"],[[194576,194576],"mapped","兤"],[[194577,194577],"mapped","具"],[[194578,194578],"mapped","𠔜"],[[194579,194579],"mapped","㒹"],[[194580,194580],"mapped","內"],[[194581,194581],"mapped","再"],[[194582,194582],"mapped","𠕋"],[[194583,194583],"mapped","冗"],[[194584,194584],"mapped","冤"],[[194585,194585],"mapped","仌"],[[194586,194586],"mapped","冬"],[[194587,194587],"mapped","况"],[[194588,194588],"mapped","𩇟"],[[194589,194589],"mapped","凵"],[[194590,194590],"mapped","刃"],[[194591,194591],"mapped","㓟"],[[194592,194592],"mapped","刻"],[[194593,194593],"mapped","剆"],[[194594,194594],"mapped","割"],[[194595,194595],"mapped","剷"],[[194596,194596],"mapped","㔕"],[[194597,194597],"mapped","勇"],[[194598,194598],"mapped","勉"],[[194599,194599],"mapped","勤"],[[194600,194600],"mapped","勺"],[[194601,194601],"mapped","包"],[[194602,194602],"mapped","匆"],[[194603,194603],"mapped","北"],[[194604,194604],"mapped","卉"],[[194605,194605],"mapped","卑"],[[194606,194606],"mapped","博"],[[194607,194607],"mapped","即"],[[194608,194608],"mapped","卽"],[[194609,194611],"mapped","卿"],[[194612,194612],"mapped","𠨬"],[[194613,194613],"mapped","灰"],[[194614,194614],"mapped","及"],[[194615,194615],"mapped","叟"],[[194616,194616],"mapped","𠭣"],[[194617,194617],"mapped","叫"],[[194618,194618],"mapped","叱"],[[194619,194619],"mapped","吆"],[[194620,194620],"mapped","咞"],[[194621,194621],"mapped","吸"],[[194622,194622],"mapped","呈"],[[194623,194623],"mapped","周"],[[194624,194624],"mapped","咢"],[[194625,194625],"mapped","哶"],[[194626,194626],"mapped","唐"],[[194627,194627],"mapped","啓"],[[194628,194628],"mapped","啣"],[[194629,194630],"mapped","善"],[[194631,194631],"mapped","喙"],[[194632,194632],"mapped","喫"],[[194633,194633],"mapped","喳"],[[194634,194634],"mapped","嗂"],[[194635,194635],"mapped","圖"],[[194636,194636],"mapped","嘆"],[[194637,194637],"mapped","圗"],[[194638,194638],"mapped","噑"],[[194639,194639],"mapped","噴"],[[194640,194640],"mapped","切"],[[194641,194641],"mapped","壮"],[[194642,194642],"mapped","城"],[[194643,194643],"mapped","埴"],[[194644,194644],"mapped","堍"],[[194645,194645],"mapped","型"],[[194646,194646],"mapped","堲"],[[194647,194647],"mapped","報"],[[194648,194648],"mapped","墬"],[[194649,194649],"mapped","𡓤"],[[194650,194650],"mapped","売"],[[194651,194651],"mapped","壷"],[[194652,194652],"mapped","夆"],[[194653,194653],"mapped","多"],[[194654,194654],"mapped","夢"],[[194655,194655],"mapped","奢"],[[194656,194656],"mapped","𡚨"],[[194657,194657],"mapped","𡛪"],[[194658,194658],"mapped","姬"],[[194659,194659],"mapped","娛"],[[194660,194660],"mapped","娧"],[[194661,194661],"mapped","姘"],[[194662,194662],"mapped","婦"],[[194663,194663],"mapped","㛮"],[[194664,194664],"disallowed"],[[194665,194665],"mapped","嬈"],[[194666,194667],"mapped","嬾"],[[194668,194668],"mapped","𡧈"],[[194669,194669],"mapped","寃"],[[194670,194670],"mapped","寘"],[[194671,194671],"mapped","寧"],[[194672,194672],"mapped","寳"],[[194673,194673],"mapped","𡬘"],[[194674,194674],"mapped","寿"],[[194675,194675],"mapped","将"],[[194676,194676],"disallowed"],[[194677,194677],"mapped","尢"],[[194678,194678],"mapped","㞁"],[[194679,194679],"mapped","屠"],[[194680,194680],"mapped","屮"],[[194681,194681],"mapped","峀"],[[194682,194682],"mapped","岍"],[[194683,194683],"mapped","𡷤"],[[194684,194684],"mapped","嵃"],[[194685,194685],"mapped","𡷦"],[[194686,194686],"mapped","嵮"],[[194687,194687],"mapped","嵫"],[[194688,194688],"mapped","嵼"],[[194689,194689],"mapped","巡"],[[194690,194690],"mapped","巢"],[[194691,194691],"mapped","㠯"],[[194692,194692],"mapped","巽"],[[194693,194693],"mapped","帨"],[[194694,194694],"mapped","帽"],[[194695,194695],"mapped","幩"],[[194696,194696],"mapped","㡢"],[[194697,194697],"mapped","𢆃"],[[194698,194698],"mapped","㡼"],[[194699,194699],"mapped","庰"],[[194700,194700],"mapped","庳"],[[194701,194701],"mapped","庶"],[[194702,194702],"mapped","廊"],[[194703,194703],"mapped","𪎒"],[[194704,194704],"mapped","廾"],[[194705,194706],"mapped","𢌱"],[[194707,194707],"mapped","舁"],[[194708,194709],"mapped","弢"],[[194710,194710],"mapped","㣇"],[[194711,194711],"mapped","𣊸"],[[194712,194712],"mapped","𦇚"],[[194713,194713],"mapped","形"],[[194714,194714],"mapped","彫"],[[194715,194715],"mapped","㣣"],[[194716,194716],"mapped","徚"],[[194717,194717],"mapped","忍"],[[194718,194718],"mapped","志"],[[194719,194719],"mapped","忹"],[[194720,194720],"mapped","悁"],[[194721,194721],"mapped","㤺"],[[194722,194722],"mapped","㤜"],[[194723,194723],"mapped","悔"],[[194724,194724],"mapped","𢛔"],[[194725,194725],"mapped","惇"],[[194726,194726],"mapped","慈"],[[194727,194727],"mapped","慌"],[[194728,194728],"mapped","慎"],[[194729,194729],"mapped","慌"],[[194730,194730],"mapped","慺"],[[194731,194731],"mapped","憎"],[[194732,194732],"mapped","憲"],[[194733,194733],"mapped","憤"],[[194734,194734],"mapped","憯"],[[194735,194735],"mapped","懞"],[[194736,194736],"mapped","懲"],[[194737,194737],"mapped","懶"],[[194738,194738],"mapped","成"],[[194739,194739],"mapped","戛"],[[194740,194740],"mapped","扝"],[[194741,194741],"mapped","抱"],[[194742,194742],"mapped","拔"],[[194743,194743],"mapped","捐"],[[194744,194744],"mapped","𢬌"],[[194745,194745],"mapped","挽"],[[194746,194746],"mapped","拼"],[[194747,194747],"mapped","捨"],[[194748,194748],"mapped","掃"],[[194749,194749],"mapped","揤"],[[194750,194750],"mapped","𢯱"],[[194751,194751],"mapped","搢"],[[194752,194752],"mapped","揅"],[[194753,194753],"mapped","掩"],[[194754,194754],"mapped","㨮"],[[194755,194755],"mapped","摩"],[[194756,194756],"mapped","摾"],[[194757,194757],"mapped","撝"],[[194758,194758],"mapped","摷"],[[194759,194759],"mapped","㩬"],[[194760,194760],"mapped","敏"],[[194761,194761],"mapped","敬"],[[194762,194762],"mapped","𣀊"],[[194763,194763],"mapped","旣"],[[194764,194764],"mapped","書"],[[194765,194765],"mapped","晉"],[[194766,194766],"mapped","㬙"],[[194767,194767],"mapped","暑"],[[194768,194768],"mapped","㬈"],[[194769,194769],"mapped","㫤"],[[194770,194770],"mapped","冒"],[[194771,194771],"mapped","冕"],[[194772,194772],"mapped","最"],[[194773,194773],"mapped","暜"],[[194774,194774],"mapped","肭"],[[194775,194775],"mapped","䏙"],[[194776,194776],"mapped","朗"],[[194777,194777],"mapped","望"],[[194778,194778],"mapped","朡"],[[194779,194779],"mapped","杞"],[[194780,194780],"mapped","杓"],[[194781,194781],"mapped","𣏃"],[[194782,194782],"mapped","㭉"],[[194783,194783],"mapped","柺"],[[194784,194784],"mapped","枅"],[[194785,194785],"mapped","桒"],[[194786,194786],"mapped","梅"],[[194787,194787],"mapped","𣑭"],[[194788,194788],"mapped","梎"],[[194789,194789],"mapped","栟"],[[194790,194790],"mapped","椔"],[[194791,194791],"mapped","㮝"],[[194792,194792],"mapped","楂"],[[194793,194793],"mapped","榣"],[[194794,194794],"mapped","槪"],[[194795,194795],"mapped","檨"],[[194796,194796],"mapped","𣚣"],[[194797,194797],"mapped","櫛"],[[194798,194798],"mapped","㰘"],[[194799,194799],"mapped","次"],[[194800,194800],"mapped","𣢧"],[[194801,194801],"mapped","歔"],[[194802,194802],"mapped","㱎"],[[194803,194803],"mapped","歲"],[[194804,194804],"mapped","殟"],[[194805,194805],"mapped","殺"],[[194806,194806],"mapped","殻"],[[194807,194807],"mapped","𣪍"],[[194808,194808],"mapped","𡴋"],[[194809,194809],"mapped","𣫺"],[[194810,194810],"mapped","汎"],[[194811,194811],"mapped","𣲼"],[[194812,194812],"mapped","沿"],[[194813,194813],"mapped","泍"],[[194814,194814],"mapped","汧"],[[194815,194815],"mapped","洖"],[[194816,194816],"mapped","派"],[[194817,194817],"mapped","海"],[[194818,194818],"mapped","流"],[[194819,194819],"mapped","浩"],[[194820,194820],"mapped","浸"],[[194821,194821],"mapped","涅"],[[194822,194822],"mapped","𣴞"],[[194823,194823],"mapped","洴"],[[194824,194824],"mapped","港"],[[194825,194825],"mapped","湮"],[[194826,194826],"mapped","㴳"],[[194827,194827],"mapped","滋"],[[194828,194828],"mapped","滇"],[[194829,194829],"mapped","𣻑"],[[194830,194830],"mapped","淹"],[[194831,194831],"mapped","潮"],[[194832,194832],"mapped","𣽞"],[[194833,194833],"mapped","𣾎"],[[194834,194834],"mapped","濆"],[[194835,194835],"mapped","瀹"],[[194836,194836],"mapped","瀞"],[[194837,194837],"mapped","瀛"],[[194838,194838],"mapped","㶖"],[[194839,194839],"mapped","灊"],[[194840,194840],"mapped","災"],[[194841,194841],"mapped","灷"],[[194842,194842],"mapped","炭"],[[194843,194843],"mapped","𠔥"],[[194844,194844],"mapped","煅"],[[194845,194845],"mapped","𤉣"],[[194846,194846],"mapped","熜"],[[194847,194847],"disallowed"],[[194848,194848],"mapped","爨"],[[194849,194849],"mapped","爵"],[[194850,194850],"mapped","牐"],[[194851,194851],"mapped","𤘈"],[[194852,194852],"mapped","犀"],[[194853,194853],"mapped","犕"],[[194854,194854],"mapped","𤜵"],[[194855,194855],"mapped","𤠔"],[[194856,194856],"mapped","獺"],[[194857,194857],"mapped","王"],[[194858,194858],"mapped","㺬"],[[194859,194859],"mapped","玥"],[[194860,194861],"mapped","㺸"],[[194862,194862],"mapped","瑇"],[[194863,194863],"mapped","瑜"],[[194864,194864],"mapped","瑱"],[[194865,194865],"mapped","璅"],[[194866,194866],"mapped","瓊"],[[194867,194867],"mapped","㼛"],[[194868,194868],"mapped","甤"],[[194869,194869],"mapped","𤰶"],[[194870,194870],"mapped","甾"],[[194871,194871],"mapped","𤲒"],[[194872,194872],"mapped","異"],[[194873,194873],"mapped","𢆟"],[[194874,194874],"mapped","瘐"],[[194875,194875],"mapped","𤾡"],[[194876,194876],"mapped","𤾸"],[[194877,194877],"mapped","𥁄"],[[194878,194878],"mapped","㿼"],[[194879,194879],"mapped","䀈"],[[194880,194880],"mapped","直"],[[194881,194881],"mapped","𥃳"],[[194882,194882],"mapped","𥃲"],[[194883,194883],"mapped","𥄙"],[[194884,194884],"mapped","𥄳"],[[194885,194885],"mapped","眞"],[[194886,194887],"mapped","真"],[[194888,194888],"mapped","睊"],[[194889,194889],"mapped","䀹"],[[194890,194890],"mapped","瞋"],[[194891,194891],"mapped","䁆"],[[194892,194892],"mapped","䂖"],[[194893,194893],"mapped","𥐝"],[[194894,194894],"mapped","硎"],[[194895,194895],"mapped","碌"],[[194896,194896],"mapped","磌"],[[194897,194897],"mapped","䃣"],[[194898,194898],"mapped","𥘦"],[[194899,194899],"mapped","祖"],[[194900,194900],"mapped","𥚚"],[[194901,194901],"mapped","𥛅"],[[194902,194902],"mapped","福"],[[194903,194903],"mapped","秫"],[[194904,194904],"mapped","䄯"],[[194905,194905],"mapped","穀"],[[194906,194906],"mapped","穊"],[[194907,194907],"mapped","穏"],[[194908,194908],"mapped","𥥼"],[[194909,194910],"mapped","𥪧"],[[194911,194911],"disallowed"],[[194912,194912],"mapped","䈂"],[[194913,194913],"mapped","𥮫"],[[194914,194914],"mapped","篆"],[[194915,194915],"mapped","築"],[[194916,194916],"mapped","䈧"],[[194917,194917],"mapped","𥲀"],[[194918,194918],"mapped","糒"],[[194919,194919],"mapped","䊠"],[[194920,194920],"mapped","糨"],[[194921,194921],"mapped","糣"],[[194922,194922],"mapped","紀"],[[194923,194923],"mapped","𥾆"],[[194924,194924],"mapped","絣"],[[194925,194925],"mapped","䌁"],[[194926,194926],"mapped","緇"],[[194927,194927],"mapped","縂"],[[194928,194928],"mapped","繅"],[[194929,194929],"mapped","䌴"],[[194930,194930],"mapped","𦈨"],[[194931,194931],"mapped","𦉇"],[[194932,194932],"mapped","䍙"],[[194933,194933],"mapped","𦋙"],[[194934,194934],"mapped","罺"],[[194935,194935],"mapped","𦌾"],[[194936,194936],"mapped","羕"],[[194937,194937],"mapped","翺"],[[194938,194938],"mapped","者"],[[194939,194939],"mapped","𦓚"],[[194940,194940],"mapped","𦔣"],[[194941,194941],"mapped","聠"],[[194942,194942],"mapped","𦖨"],[[194943,194943],"mapped","聰"],[[194944,194944],"mapped","𣍟"],[[194945,194945],"mapped","䏕"],[[194946,194946],"mapped","育"],[[194947,194947],"mapped","脃"],[[194948,194948],"mapped","䐋"],[[194949,194949],"mapped","脾"],[[194950,194950],"mapped","媵"],[[194951,194951],"mapped","𦞧"],[[194952,194952],"mapped","𦞵"],[[194953,194953],"mapped","𣎓"],[[194954,194954],"mapped","𣎜"],[[194955,194955],"mapped","舁"],[[194956,194956],"mapped","舄"],[[194957,194957],"mapped","辞"],[[194958,194958],"mapped","䑫"],[[194959,194959],"mapped","芑"],[[194960,194960],"mapped","芋"],[[194961,194961],"mapped","芝"],[[194962,194962],"mapped","劳"],[[194963,194963],"mapped","花"],[[194964,194964],"mapped","芳"],[[194965,194965],"mapped","芽"],[[194966,194966],"mapped","苦"],[[194967,194967],"mapped","𦬼"],[[194968,194968],"mapped","若"],[[194969,194969],"mapped","茝"],[[194970,194970],"mapped","荣"],[[194971,194971],"mapped","莭"],[[194972,194972],"mapped","茣"],[[194973,194973],"mapped","莽"],[[194974,194974],"mapped","菧"],[[194975,194975],"mapped","著"],[[194976,194976],"mapped","荓"],[[194977,194977],"mapped","菊"],[[194978,194978],"mapped","菌"],[[194979,194979],"mapped","菜"],[[194980,194980],"mapped","𦰶"],[[194981,194981],"mapped","𦵫"],[[194982,194982],"mapped","𦳕"],[[194983,194983],"mapped","䔫"],[[194984,194984],"mapped","蓱"],[[194985,194985],"mapped","蓳"],[[194986,194986],"mapped","蔖"],[[194987,194987],"mapped","𧏊"],[[194988,194988],"mapped","蕤"],[[194989,194989],"mapped","𦼬"],[[194990,194990],"mapped","䕝"],[[194991,194991],"mapped","䕡"],[[194992,194992],"mapped","𦾱"],[[194993,194993],"mapped","𧃒"],[[194994,194994],"mapped","䕫"],[[194995,194995],"mapped","虐"],[[194996,194996],"mapped","虜"],[[194997,194997],"mapped","虧"],[[194998,194998],"mapped","虩"],[[194999,194999],"mapped","蚩"],[[195e3,195e3],"mapped","蚈"],[[195001,195001],"mapped","蜎"],[[195002,195002],"mapped","蛢"],[[195003,195003],"mapped","蝹"],[[195004,195004],"mapped","蜨"],[[195005,195005],"mapped","蝫"],[[195006,195006],"mapped","螆"],[[195007,195007],"disallowed"],[[195008,195008],"mapped","蟡"],[[195009,195009],"mapped","蠁"],[[195010,195010],"mapped","䗹"],[[195011,195011],"mapped","衠"],[[195012,195012],"mapped","衣"],[[195013,195013],"mapped","𧙧"],[[195014,195014],"mapped","裗"],[[195015,195015],"mapped","裞"],[[195016,195016],"mapped","䘵"],[[195017,195017],"mapped","裺"],[[195018,195018],"mapped","㒻"],[[195019,195019],"mapped","𧢮"],[[195020,195020],"mapped","𧥦"],[[195021,195021],"mapped","䚾"],[[195022,195022],"mapped","䛇"],[[195023,195023],"mapped","誠"],[[195024,195024],"mapped","諭"],[[195025,195025],"mapped","變"],[[195026,195026],"mapped","豕"],[[195027,195027],"mapped","𧲨"],[[195028,195028],"mapped","貫"],[[195029,195029],"mapped","賁"],[[195030,195030],"mapped","贛"],[[195031,195031],"mapped","起"],[[195032,195032],"mapped","𧼯"],[[195033,195033],"mapped","𠠄"],[[195034,195034],"mapped","跋"],[[195035,195035],"mapped","趼"],[[195036,195036],"mapped","跰"],[[195037,195037],"mapped","𠣞"],[[195038,195038],"mapped","軔"],[[195039,195039],"mapped","輸"],[[195040,195040],"mapped","𨗒"],[[195041,195041],"mapped","𨗭"],[[195042,195042],"mapped","邔"],[[195043,195043],"mapped","郱"],[[195044,195044],"mapped","鄑"],[[195045,195045],"mapped","𨜮"],[[195046,195046],"mapped","鄛"],[[195047,195047],"mapped","鈸"],[[195048,195048],"mapped","鋗"],[[195049,195049],"mapped","鋘"],[[195050,195050],"mapped","鉼"],[[195051,195051],"mapped","鏹"],[[195052,195052],"mapped","鐕"],[[195053,195053],"mapped","𨯺"],[[195054,195054],"mapped","開"],[[195055,195055],"mapped","䦕"],[[195056,195056],"mapped","閷"],[[195057,195057],"mapped","𨵷"],[[195058,195058],"mapped","䧦"],[[195059,195059],"mapped","雃"],[[195060,195060],"mapped","嶲"],[[195061,195061],"mapped","霣"],[[195062,195062],"mapped","𩅅"],[[195063,195063],"mapped","𩈚"],[[195064,195064],"mapped","䩮"],[[195065,195065],"mapped","䩶"],[[195066,195066],"mapped","韠"],[[195067,195067],"mapped","𩐊"],[[195068,195068],"mapped","䪲"],[[195069,195069],"mapped","𩒖"],[[195070,195071],"mapped","頋"],[[195072,195072],"mapped","頩"],[[195073,195073],"mapped","𩖶"],[[195074,195074],"mapped","飢"],[[195075,195075],"mapped","䬳"],[[195076,195076],"mapped","餩"],[[195077,195077],"mapped","馧"],[[195078,195078],"mapped","駂"],[[195079,195079],"mapped","駾"],[[195080,195080],"mapped","䯎"],[[195081,195081],"mapped","𩬰"],[[195082,195082],"mapped","鬒"],[[195083,195083],"mapped","鱀"],[[195084,195084],"mapped","鳽"],[[195085,195085],"mapped","䳎"],[[195086,195086],"mapped","䳭"],[[195087,195087],"mapped","鵧"],[[195088,195088],"mapped","𪃎"],[[195089,195089],"mapped","䳸"],[[195090,195090],"mapped","𪄅"],[[195091,195091],"mapped","𪈎"],[[195092,195092],"mapped","𪊑"],[[195093,195093],"mapped","麻"],[[195094,195094],"mapped","䵖"],[[195095,195095],"mapped","黹"],[[195096,195096],"mapped","黾"],[[195097,195097],"mapped","鼅"],[[195098,195098],"mapped","鼏"],[[195099,195099],"mapped","鼖"],[[195100,195100],"mapped","鼻"],[[195101,195101],"mapped","𪘀"],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]},function(e,t,a){"use strict";const i=a(159),r=a(26);t.implementation=class{constructor(e,{doNotStripQMark:t=!1}){let a=e[0];if(this._list=[],this._url=null,t||"string"!=typeof a||"?"!==a[0]||(a=a.slice(1)),Array.isArray(a))for(const e of a){if(2!==e.length)throw new TypeError("Failed to construct 'URLSearchParams': parameter 1 sequence's element does not contain exactly two elements.");this._list.push([e[0],e[1]])}else if("object"==typeof a&&null===Object.getPrototypeOf(a))for(const e of Object.keys(a)){const t=a[e];this._list.push([e,t])}else this._list=r.parseUrlencoded(a)}_updateSteps(){if(null!==this._url){let e=r.serializeUrlencoded(this._list);""===e&&(e=null),this._url._url.query=e}}append(e,t){this._list.push([e,t]),this._updateSteps()}delete(e){let t=0;for(;t-1},be.prototype.set=function(e,t){var a=this.__data__,i=Te(a,e);return i<0?a.push([e,t]):a[i][1]=t,this},Fe.prototype.clear=function(){this.__data__={hash:new De,map:new(le||be),string:new De}},Fe.prototype.delete=function(e){return Ue(this,e).delete(e)},Fe.prototype.get=function(e){return Ue(this,e).get(e)},Fe.prototype.has=function(e){return Ue(this,e).has(e)},Fe.prototype.set=function(e,t){return Ue(this,e).set(e,t),this},Be.prototype.add=Be.prototype.push=function(e){return this.__data__.set(e,r),this},Be.prototype.has=function(e){return this.__data__.has(e)},Se.prototype.clear=function(){this.__data__=new be},Se.prototype.delete=function(e){return this.__data__.delete(e)},Se.prototype.get=function(e){return this.__data__.get(e)},Se.prototype.has=function(e){return this.__data__.has(e)},Se.prototype.set=function(e,t){var i=this.__data__;if(i instanceof be){var r=i.__data__;if(!le||r.length=o)return u;var d=a[i];return u*("desc"==d?-1:1)}}return e.index-t.index}(e,t,a)})}function Ie(e){return nt(e)?e:Ze(e)}function je(e,t){if(e!==t){var a=void 0!==e,i=null===e,r=e==e,n=lt(e),p=void 0!==t,o=null===t,u=t==t,d=lt(t);if(!o&&!d&&!n&&e>t||n&&p&&u&&!o&&!d||i&&p&&u||!a&&u||!r)return 1;if(!i&&!n&&!d&&ed))return!1;var l=o.get(e);if(l&&o.get(t))return l==t;var m=-1,c=!0,h=r&n?new Be:void 0;for(o.set(e,t),o.set(t,e);++m-1&&e%1==0&&e1&&Ke(e,t[0],t[1])?t=[]:a>2&&Ke(t[0],t[1],t[2])&&(t=[t[0]]),He(e,function e(t,a,i,r,n){var p=-1,o=t.length;for(i||(i=qe),n||(n=[]);++p0&&i(u)?a>1?e(u,a-1,i,r,n):z(n,u):r||(n[n.length]=u)}return n}(t,1),[])});function at(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError(i);var a=function(){var i=arguments,r=t?t.apply(this,i):i[0],n=a.cache;if(n.has(r))return n.get(r);var p=e.apply(this,i);return a.cache=n.set(r,p),p};return a.cache=new(at.Cache||Fe),a}function it(e,t){return e===t||e!=e&&t!=t}function rt(e){return function(e){return st(e)&&pt(e)}(e)&&ee.call(e,"callee")&&(!ne.call(e,"callee")||te.call(e)==d)}at.Cache=Fe;var nt=Array.isArray;function pt(e){return null!=e&&ut(e.length)&&!ot(e)}function ot(e){var t=dt(e)?te.call(e):"";return t==h||t==f}function ut(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=u}function dt(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function st(e){return!!e&&"object"==typeof e}function lt(e){return"symbol"==typeof e||st(e)&&te.call(e)==g}var mt=I?W(I):function(e){return st(e)&&ut(e.length)&&!!N[te.call(e)]};function ct(e){return pt(e)?xe(e):Ve(e)}function ht(e){return e}e.exports=tt}).call(this,a(160)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,a){var i,r,n;r=[t,a(162),a(59),a(60),a(61),a(163)],void 0===(n="function"==typeof(i=function(e,t,a,i,r,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.detailedDiff=e.updatedDiff=e.deletedDiff=e.diff=e.addedDiff=void 0;var p=l(t),o=l(a),u=l(i),d=l(r),s=l(n);function l(e){return e&&e.__esModule?e:{default:e}}e.addedDiff=o.default,e.diff=p.default,e.deletedDiff=u.default,e.updatedDiff=d.default,e.detailedDiff=s.default})?i.apply(t,r):i)||(e.exports=n)},function(e,t,a){var i,r,n;r=[e,t,a(27)],void 0===(n="function"==typeof(i=function(e,t,a){"use strict";function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;ta?a=r:r div::-webkit-scrollbar { display: none; }\n\n",r+="."+i+" { -webkit-animation-duration: 0.1s; animation-duration: 0.1s; -webkit-animation-name: "+a+"; animation-name: "+a+"; }\n",r+="@-webkit-keyframes "+a+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\n",function(t,a){a=a||function(e){document.head.appendChild(e)};var i=document.createElement("style");i.innerHTML=t,i.id=e,a(i)}(r+="@keyframes "+a+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }")}}("erd_scroll_detection_scrollbar_style",o),{makeDetectable:function(e,d,m){function c(){if(e.debug){var a=Array.prototype.slice.call(arguments);if(a.unshift(n.get(d),"Scroll: "),t.log.apply)t.log.apply(null,a);else for(var i=0;i {\n arguments[arguments.length] = (err, res) => {\n if (err) return reject(err)\n resolve(res)\n }\n arguments.length++\n fn.apply(this, arguments)\n })\n }\n }, 'name', { value: fn.name })\n}\n\nexports.fromPromise = function (fn) {\n return Object.defineProperty(function () {\n const cb = arguments[arguments.length - 1]\n if (typeof cb !== 'function') return fn.apply(this, arguments)\n else fn.apply(this, arguments).then(r => cb(null, r), cb)\n }, 'name', { value: fn.name })\n}\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","'use strict'\nconst u = require('universalify').fromCallback\nconst mkdirs = u(require('./mkdirs'))\nconst mkdirsSync = require('./mkdirs-sync')\n\nmodule.exports = {\n mkdirs,\n mkdirsSync,\n // alias\n mkdirp: mkdirs,\n mkdirpSync: mkdirsSync,\n ensureDir: mkdirs,\n ensureDirSync: mkdirsSync\n}\n","\"use strict\";\nconst punycode = require(\"punycode\");\nconst tr46 = require(\"tr46\");\n\nconst infra = require(\"./infra\");\nconst { percentEncode, percentDecode } = require(\"./urlencoded\");\n\nconst specialSchemes = {\n ftp: 21,\n file: null,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nconst failure = Symbol(\"failure\");\n\nfunction countSymbols(str) {\n return punycode.ucs2.decode(str).length;\n}\n\nfunction at(input, idx) {\n const c = input[idx];\n return isNaN(c) ? undefined : String.fromCodePoint(c);\n}\n\nfunction isSingleDot(buffer) {\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\n}\n\nfunction isDoubleDot(buffer) {\n buffer = buffer.toLowerCase();\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\n}\n\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\n return infra.isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\n}\n\nfunction isWindowsDriveLetterString(string) {\n return string.length === 2 && infra.isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\n}\n\nfunction isNormalizedWindowsDriveLetterString(string) {\n return string.length === 2 && infra.isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\n}\n\nfunction containsForbiddenHostCodePoint(string) {\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\n}\n\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\n}\n\nfunction isSpecialScheme(scheme) {\n return specialSchemes[scheme] !== undefined;\n}\n\nfunction isSpecial(url) {\n return isSpecialScheme(url.scheme);\n}\n\nfunction isNotSpecial(url) {\n return !isSpecialScheme(url.scheme);\n}\n\nfunction defaultPort(scheme) {\n return specialSchemes[scheme];\n}\n\nfunction utf8PercentEncode(c) {\n const buf = Buffer.from(c);\n\n let str = \"\";\n\n for (let i = 0; i < buf.length; ++i) {\n str += percentEncode(buf[i]);\n }\n\n return str;\n}\n\nfunction isC0ControlPercentEncode(c) {\n return c <= 0x1F || c > 0x7E;\n}\n\nconst extraUserinfoPercentEncodeSet =\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\nfunction isUserinfoPercentEncode(c) {\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\n}\n\nconst extraFragmentPercentEncodeSet = new Set([32, 34, 60, 62, 96]);\nfunction isFragmentPercentEncode(c) {\n return isC0ControlPercentEncode(c) || extraFragmentPercentEncodeSet.has(c);\n}\n\nconst extraPathPercentEncodeSet = new Set([35, 63, 123, 125]);\nfunction isPathPercentEncode(c) {\n return isFragmentPercentEncode(c) || extraPathPercentEncodeSet.has(c);\n}\n\nfunction percentEncodeChar(c, encodeSetPredicate) {\n const cStr = String.fromCodePoint(c);\n\n if (encodeSetPredicate(c)) {\n return utf8PercentEncode(cStr);\n }\n\n return cStr;\n}\n\nfunction parseIPv4Number(input) {\n let R = 10;\n\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\n input = input.substring(2);\n R = 16;\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\n input = input.substring(1);\n R = 8;\n }\n\n if (input === \"\") {\n return 0;\n }\n\n let regex = /[^0-7]/;\n if (R === 10) {\n regex = /[^0-9]/;\n }\n if (R === 16) {\n regex = /[^0-9A-Fa-f]/;\n }\n\n if (regex.test(input)) {\n return failure;\n }\n\n return parseInt(input, R);\n}\n\nfunction parseIPv4(input) {\n const parts = input.split(\".\");\n if (parts[parts.length - 1] === \"\") {\n if (parts.length > 1) {\n parts.pop();\n }\n }\n\n if (parts.length > 4) {\n return input;\n }\n\n const numbers = [];\n for (const part of parts) {\n if (part === \"\") {\n return input;\n }\n const n = parseIPv4Number(part);\n if (n === failure) {\n return input;\n }\n\n numbers.push(n);\n }\n\n for (let i = 0; i < numbers.length - 1; ++i) {\n if (numbers[i] > 255) {\n return failure;\n }\n }\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\n return failure;\n }\n\n let ipv4 = numbers.pop();\n let counter = 0;\n\n for (const n of numbers) {\n ipv4 += n * Math.pow(256, 3 - counter);\n ++counter;\n }\n\n return ipv4;\n}\n\nfunction serializeIPv4(address) {\n let output = \"\";\n let n = address;\n\n for (let i = 1; i <= 4; ++i) {\n output = String(n % 256) + output;\n if (i !== 4) {\n output = \".\" + output;\n }\n n = Math.floor(n / 256);\n }\n\n return output;\n}\n\nfunction parseIPv6(input) {\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\n let pieceIndex = 0;\n let compress = null;\n let pointer = 0;\n\n input = punycode.ucs2.decode(input);\n\n if (input[pointer] === 58) {\n if (input[pointer + 1] !== 58) {\n return failure;\n }\n\n pointer += 2;\n ++pieceIndex;\n compress = pieceIndex;\n }\n\n while (pointer < input.length) {\n if (pieceIndex === 8) {\n return failure;\n }\n\n if (input[pointer] === 58) {\n if (compress !== null) {\n return failure;\n }\n ++pointer;\n ++pieceIndex;\n compress = pieceIndex;\n continue;\n }\n\n let value = 0;\n let length = 0;\n\n while (length < 4 && infra.isASCIIHex(input[pointer])) {\n value = value * 0x10 + parseInt(at(input, pointer), 16);\n ++pointer;\n ++length;\n }\n\n if (input[pointer] === 46) {\n if (length === 0) {\n return failure;\n }\n\n pointer -= length;\n\n if (pieceIndex > 6) {\n return failure;\n }\n\n let numbersSeen = 0;\n\n while (input[pointer] !== undefined) {\n let ipv4Piece = null;\n\n if (numbersSeen > 0) {\n if (input[pointer] === 46 && numbersSeen < 4) {\n ++pointer;\n } else {\n return failure;\n }\n }\n\n if (!infra.isASCIIDigit(input[pointer])) {\n return failure;\n }\n\n while (infra.isASCIIDigit(input[pointer])) {\n const number = parseInt(at(input, pointer));\n if (ipv4Piece === null) {\n ipv4Piece = number;\n } else if (ipv4Piece === 0) {\n return failure;\n } else {\n ipv4Piece = ipv4Piece * 10 + number;\n }\n if (ipv4Piece > 255) {\n return failure;\n }\n ++pointer;\n }\n\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\n\n ++numbersSeen;\n\n if (numbersSeen === 2 || numbersSeen === 4) {\n ++pieceIndex;\n }\n }\n\n if (numbersSeen !== 4) {\n return failure;\n }\n\n break;\n } else if (input[pointer] === 58) {\n ++pointer;\n if (input[pointer] === undefined) {\n return failure;\n }\n } else if (input[pointer] !== undefined) {\n return failure;\n }\n\n address[pieceIndex] = value;\n ++pieceIndex;\n }\n\n if (compress !== null) {\n let swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n const temp = address[compress + swaps - 1];\n address[compress + swaps - 1] = address[pieceIndex];\n address[pieceIndex] = temp;\n --pieceIndex;\n --swaps;\n }\n } else if (compress === null && pieceIndex !== 8) {\n return failure;\n }\n\n return address;\n}\n\nfunction serializeIPv6(address) {\n let output = \"\";\n const seqResult = findLongestZeroSequence(address);\n const compress = seqResult.idx;\n let ignore0 = false;\n\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\n if (ignore0 && address[pieceIndex] === 0) {\n continue;\n } else if (ignore0) {\n ignore0 = false;\n }\n\n if (compress === pieceIndex) {\n const separator = pieceIndex === 0 ? \"::\" : \":\";\n output += separator;\n ignore0 = true;\n continue;\n }\n\n output += address[pieceIndex].toString(16);\n\n if (pieceIndex !== 7) {\n output += \":\";\n }\n }\n\n return output;\n}\n\nfunction parseHost(input, isNotSpecialArg = false) {\n if (input[0] === \"[\") {\n if (input[input.length - 1] !== \"]\") {\n return failure;\n }\n\n return parseIPv6(input.substring(1, input.length - 1));\n }\n\n if (isNotSpecialArg) {\n return parseOpaqueHost(input);\n }\n\n const domain = percentDecode(Buffer.from(input)).toString();\n const asciiDomain = domainToASCII(domain);\n if (asciiDomain === failure) {\n return failure;\n }\n\n if (containsForbiddenHostCodePoint(asciiDomain)) {\n return failure;\n }\n\n const ipv4Host = parseIPv4(asciiDomain);\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\n return ipv4Host;\n }\n\n return asciiDomain;\n}\n\nfunction parseOpaqueHost(input) {\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\n return failure;\n }\n\n let output = \"\";\n const decoded = punycode.ucs2.decode(input);\n for (let i = 0; i < decoded.length; ++i) {\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\n }\n return output;\n}\n\nfunction findLongestZeroSequence(arr) {\n let maxIdx = null;\n let maxLen = 1; // only find elements > 1\n let currStart = null;\n let currLen = 0;\n\n for (let i = 0; i < arr.length; ++i) {\n if (arr[i] !== 0) {\n if (currLen > maxLen) {\n maxIdx = currStart;\n maxLen = currLen;\n }\n\n currStart = null;\n currLen = 0;\n } else {\n if (currStart === null) {\n currStart = i;\n }\n ++currLen;\n }\n }\n\n // if trailing zeros\n if (currLen > maxLen) {\n maxIdx = currStart;\n maxLen = currLen;\n }\n\n return {\n idx: maxIdx,\n len: maxLen\n };\n}\n\nfunction serializeHost(host) {\n if (typeof host === \"number\") {\n return serializeIPv4(host);\n }\n\n // IPv6 serializer\n if (host instanceof Array) {\n return \"[\" + serializeIPv6(host) + \"]\";\n }\n\n return host;\n}\n\nfunction domainToASCII(domain, beStrict = false) {\n const result = tr46.toASCII(domain, {\n checkBidi: true,\n checkHyphens: false,\n checkJoiners: true,\n useSTD3ASCIIRules: beStrict,\n verifyDNSLength: beStrict\n });\n if (result === null) {\n return failure;\n }\n return result;\n}\n\nfunction trimControlChars(url) {\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\n}\n\nfunction trimTabAndNewline(url) {\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\n}\n\nfunction shortenPath(url) {\n const { path } = url;\n if (path.length === 0) {\n return;\n }\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\n return;\n }\n\n path.pop();\n}\n\nfunction includesCredentials(url) {\n return url.username !== \"\" || url.password !== \"\";\n}\n\nfunction cannotHaveAUsernamePasswordPort(url) {\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\n}\n\nfunction isNormalizedWindowsDriveLetter(string) {\n return /^[A-Za-z]:$/.test(string);\n}\n\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\n this.pointer = 0;\n this.input = input;\n this.base = base || null;\n this.encodingOverride = encodingOverride || \"utf-8\";\n this.stateOverride = stateOverride;\n this.url = url;\n this.failure = false;\n this.parseError = false;\n\n if (!this.url) {\n this.url = {\n scheme: \"\",\n username: \"\",\n password: \"\",\n host: null,\n port: null,\n path: [],\n query: null,\n fragment: null,\n\n cannotBeABaseURL: false\n };\n\n const res = trimControlChars(this.input);\n if (res !== this.input) {\n this.parseError = true;\n }\n this.input = res;\n }\n\n const res = trimTabAndNewline(this.input);\n if (res !== this.input) {\n this.parseError = true;\n }\n this.input = res;\n\n this.state = stateOverride || \"scheme start\";\n\n this.buffer = \"\";\n this.atFlag = false;\n this.arrFlag = false;\n this.passwordTokenSeenFlag = false;\n\n this.input = punycode.ucs2.decode(this.input);\n\n for (; this.pointer <= this.input.length; ++this.pointer) {\n const c = this.input[this.pointer];\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\n\n // exec state machine\n const ret = this[\"parse \" + this.state](c, cStr);\n if (!ret) {\n break; // terminate algorithm\n } else if (ret === failure) {\n this.failure = true;\n break;\n }\n }\n}\n\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\n if (infra.isASCIIAlpha(c)) {\n this.buffer += cStr.toLowerCase();\n this.state = \"scheme\";\n } else if (!this.stateOverride) {\n this.state = \"no scheme\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\n if (infra.isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\n this.buffer += cStr.toLowerCase();\n } else if (c === 58) {\n if (this.stateOverride) {\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\n return false;\n }\n\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\n return false;\n }\n }\n this.url.scheme = this.buffer;\n if (this.stateOverride) {\n if (this.url.port === defaultPort(this.url.scheme)) {\n this.url.port = null;\n }\n return false;\n }\n this.buffer = \"\";\n if (this.url.scheme === \"file\") {\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\n this.parseError = true;\n }\n this.state = \"file\";\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\n this.state = \"special relative or authority\";\n } else if (isSpecial(this.url)) {\n this.state = \"special authority slashes\";\n } else if (this.input[this.pointer + 1] === 47) {\n this.state = \"path or authority\";\n ++this.pointer;\n } else {\n this.url.cannotBeABaseURL = true;\n this.url.path.push(\"\");\n this.state = \"cannot-be-a-base-URL path\";\n }\n } else if (!this.stateOverride) {\n this.buffer = \"\";\n this.state = \"no scheme\";\n this.pointer = -1;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\n return failure;\n } else if (this.base.cannotBeABaseURL && c === 35) {\n this.url.scheme = this.base.scheme;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.url.cannotBeABaseURL = true;\n this.state = \"fragment\";\n } else if (this.base.scheme === \"file\") {\n this.state = \"file\";\n --this.pointer;\n } else {\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\n if (c === 47 && this.input[this.pointer + 1] === 47) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\n if (c === 47) {\n this.state = \"authority\";\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\n this.url.scheme = this.base.scheme;\n if (isNaN(c)) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n } else if (c === 47) {\n this.state = \"relative slash\";\n } else if (c === 63) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (isSpecial(this.url) && c === 92) {\n this.parseError = true;\n this.state = \"relative slash\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\n\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"special authority ignore slashes\";\n } else if (c === 47) {\n this.state = \"authority\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\n if (c === 47 && this.input[this.pointer + 1] === 47) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"special authority ignore slashes\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\n if (c !== 47 && c !== 92) {\n this.state = \"authority\";\n --this.pointer;\n } else {\n this.parseError = true;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\n if (c === 64) {\n this.parseError = true;\n if (this.atFlag) {\n this.buffer = \"%40\" + this.buffer;\n }\n this.atFlag = true;\n\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\n const len = countSymbols(this.buffer);\n for (let pointer = 0; pointer < len; ++pointer) {\n const codePoint = this.buffer.codePointAt(pointer);\n\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\n this.passwordTokenSeenFlag = true;\n continue;\n }\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\n if (this.passwordTokenSeenFlag) {\n this.url.password += encodedCodePoints;\n } else {\n this.url.username += encodedCodePoints;\n }\n }\n this.buffer = \"\";\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92)) {\n if (this.atFlag && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n this.pointer -= countSymbols(this.buffer) + 1;\n this.buffer = \"\";\n this.state = \"host\";\n } else {\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse hostname\"] =\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\n if (this.stateOverride && this.url.scheme === \"file\") {\n --this.pointer;\n this.state = \"file host\";\n } else if (c === 58 && !this.arrFlag) {\n if (this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"port\";\n if (this.stateOverride === \"hostname\") {\n return false;\n }\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92)) {\n --this.pointer;\n if (isSpecial(this.url) && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n } else if (this.stateOverride && this.buffer === \"\" &&\n (includesCredentials(this.url) || this.url.port !== null)) {\n this.parseError = true;\n return false;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"path start\";\n if (this.stateOverride) {\n return false;\n }\n } else {\n if (c === 91) {\n this.arrFlag = true;\n } else if (c === 93) {\n this.arrFlag = false;\n }\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\n if (infra.isASCIIDigit(c)) {\n this.buffer += cStr;\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92) ||\n this.stateOverride) {\n if (this.buffer !== \"\") {\n const port = parseInt(this.buffer);\n if (port > Math.pow(2, 16) - 1) {\n this.parseError = true;\n return failure;\n }\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\n this.buffer = \"\";\n }\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\n\nfunction startsWithWindowsDriveLetter(input, pointer) {\n const length = input.length - pointer;\n return length >= 2 &&\n isWindowsDriveLetterCodePoints(input[pointer], input[pointer + 1]) &&\n (length === 2 || fileOtherwiseCodePoints.has(input[pointer + 2]));\n}\n\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\n this.url.scheme = \"file\";\n\n if (c === 47 || c === 92) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"file slash\";\n } else if (this.base !== null && this.base.scheme === \"file\") {\n if (isNaN(c)) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n } else if (c === 63) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else {\n if (!startsWithWindowsDriveLetter(this.input, this.pointer)) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n shortenPath(this.url);\n } else {\n this.parseError = true;\n }\n\n this.state = \"path\";\n --this.pointer;\n }\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\n if (c === 47 || c === 92) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"file host\";\n } else {\n if (this.base !== null && this.base.scheme === \"file\" &&\n !startsWithWindowsDriveLetter(this.input, this.pointer)) {\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\n this.url.path.push(this.base.path[0]);\n } else {\n this.url.host = this.base.host;\n }\n }\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\n --this.pointer;\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\n this.parseError = true;\n this.state = \"path\";\n } else if (this.buffer === \"\") {\n this.url.host = \"\";\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n } else {\n let host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n if (host === \"localhost\") {\n host = \"\";\n }\n this.url.host = host;\n\n if (this.stateOverride) {\n return false;\n }\n\n this.buffer = \"\";\n this.state = \"path start\";\n }\n } else {\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\n if (isSpecial(this.url)) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"path\";\n\n if (c !== 47 && c !== 92) {\n --this.pointer;\n }\n } else if (!this.stateOverride && c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (!this.stateOverride && c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (c !== undefined) {\n this.state = \"path\";\n if (c !== 47) {\n --this.pointer;\n }\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\n (!this.stateOverride && (c === 63 || c === 35))) {\n if (isSpecial(this.url) && c === 92) {\n this.parseError = true;\n }\n\n if (isDoubleDot(this.buffer)) {\n shortenPath(this.url);\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\n this.url.path.push(\"\");\n }\n } else if (isSingleDot(this.buffer) && c !== 47 &&\n !(isSpecial(this.url) && c === 92)) {\n this.url.path.push(\"\");\n } else if (!isSingleDot(this.buffer)) {\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\n if (this.url.host !== \"\" && this.url.host !== null) {\n this.parseError = true;\n this.url.host = \"\";\n }\n this.buffer = this.buffer[0] + \":\";\n }\n this.url.path.push(this.buffer);\n }\n this.buffer = \"\";\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\n this.parseError = true;\n this.url.path.shift();\n }\n }\n if (c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n }\n if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\n if (c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else {\n // TODO: Add: not a URL code point\n if (!isNaN(c) && c !== 37) {\n this.parseError = true;\n }\n\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n if (!isNaN(c)) {\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\n }\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\n this.encodingOverride = \"utf-8\";\n }\n\n const buffer = Buffer.from(this.buffer); // TODO: Use encoding override instead\n for (let i = 0; i < buffer.length; ++i) {\n if (buffer[i] < 0x21 ||\n buffer[i] > 0x7E ||\n buffer[i] === 0x22 || buffer[i] === 0x23 || buffer[i] === 0x3C || buffer[i] === 0x3E ||\n (buffer[i] === 0x27 && isSpecial(this.url))) {\n this.url.query += percentEncode(buffer[i]);\n } else {\n this.url.query += String.fromCodePoint(buffer[i]);\n }\n }\n\n this.buffer = \"\";\n if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\n if (isNaN(c)) { // do nothing\n } else if (c === 0x0) {\n this.parseError = true;\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.url.fragment += percentEncodeChar(c, isFragmentPercentEncode);\n }\n\n return true;\n};\n\nfunction serializeURL(url, excludeFragment) {\n let output = url.scheme + \":\";\n if (url.host !== null) {\n output += \"//\";\n\n if (url.username !== \"\" || url.password !== \"\") {\n output += url.username;\n if (url.password !== \"\") {\n output += \":\" + url.password;\n }\n output += \"@\";\n }\n\n output += serializeHost(url.host);\n\n if (url.port !== null) {\n output += \":\" + url.port;\n }\n } else if (url.host === null && url.scheme === \"file\") {\n output += \"//\";\n }\n\n if (url.cannotBeABaseURL) {\n output += url.path[0];\n } else {\n for (const string of url.path) {\n output += \"/\" + string;\n }\n }\n\n if (url.query !== null) {\n output += \"?\" + url.query;\n }\n\n if (!excludeFragment && url.fragment !== null) {\n output += \"#\" + url.fragment;\n }\n\n return output;\n}\n\nfunction serializeOrigin(tuple) {\n let result = tuple.scheme + \"://\";\n result += serializeHost(tuple.host);\n\n if (tuple.port !== null) {\n result += \":\" + tuple.port;\n }\n\n return result;\n}\n\nmodule.exports.serializeURL = serializeURL;\n\nmodule.exports.serializeURLOrigin = function (url) {\n // https://url.spec.whatwg.org/#concept-url-origin\n switch (url.scheme) {\n case \"blob\":\n try {\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\n } catch (e) {\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n case \"ftp\":\n case \"gopher\":\n case \"http\":\n case \"https\":\n case \"ws\":\n case \"wss\":\n return serializeOrigin({\n scheme: url.scheme,\n host: url.host,\n port: url.port\n });\n case \"file\":\n // spec says \"exercise to the reader\", chrome says \"file://\"\n return \"file://\";\n default:\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n};\n\nmodule.exports.basicURLParse = function (input, options) {\n if (options === undefined) {\n options = {};\n }\n\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\n if (usm.failure) {\n return null;\n }\n\n return usm.url;\n};\n\nmodule.exports.setTheUsername = function (url, username) {\n url.username = \"\";\n const decoded = punycode.ucs2.decode(username);\n for (let i = 0; i < decoded.length; ++i) {\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\n }\n};\n\nmodule.exports.setThePassword = function (url, password) {\n url.password = \"\";\n const decoded = punycode.ucs2.decode(password);\n for (let i = 0; i < decoded.length; ++i) {\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\n }\n};\n\nmodule.exports.serializeHost = serializeHost;\n\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\n\nmodule.exports.serializeInteger = function (integer) {\n return String(integer);\n};\n\nmodule.exports.parseURL = function (input, options) {\n if (options === undefined) {\n options = {};\n }\n\n // We don't handle blobs, so this just delegates:\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CircularList_1 = require(\"./common/CircularList\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nexports.DEFAULT_ATTR = (0 << 18) | (257 << 9) | (256 << 0);\nexports.CHAR_DATA_ATTR_INDEX = 0;\nexports.CHAR_DATA_CHAR_INDEX = 1;\nexports.CHAR_DATA_WIDTH_INDEX = 2;\nexports.CHAR_DATA_CODE_INDEX = 3;\nexports.MAX_BUFFER_SIZE = 4294967295;\nexports.NULL_CELL_CHAR = ' ';\nexports.NULL_CELL_WIDTH = 1;\nexports.NULL_CELL_CODE = 32;\nvar Buffer = (function () {\n function Buffer(_terminal, _hasScrollback) {\n this._terminal = _terminal;\n this._hasScrollback = _hasScrollback;\n this.markers = [];\n this.clear();\n }\n Object.defineProperty(Buffer.prototype, \"hasScrollback\", {\n get: function () {\n return this._hasScrollback && this.lines.maxLength > this._terminal.rows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Buffer.prototype, \"isCursorInViewport\", {\n get: function () {\n var absoluteY = this.ybase + this.y;\n var relativeY = absoluteY - this.ydisp;\n return (relativeY >= 0 && relativeY < this._terminal.rows);\n },\n enumerable: true,\n configurable: true\n });\n Buffer.prototype._getCorrectBufferLength = function (rows) {\n if (!this._hasScrollback) {\n return rows;\n }\n var correctBufferLength = rows + this._terminal.options.scrollback;\n return correctBufferLength > exports.MAX_BUFFER_SIZE ? exports.MAX_BUFFER_SIZE : correctBufferLength;\n };\n Buffer.prototype.fillViewportRows = function () {\n if (this.lines.length === 0) {\n var i = this._terminal.rows;\n while (i--) {\n this.lines.push(this._terminal.blankLine());\n }\n }\n };\n Buffer.prototype.clear = function () {\n this.ydisp = 0;\n this.ybase = 0;\n this.y = 0;\n this.x = 0;\n this.lines = new CircularList_1.CircularList(this._getCorrectBufferLength(this._terminal.rows));\n this.scrollTop = 0;\n this.scrollBottom = this._terminal.rows - 1;\n this.setupTabStops();\n };\n Buffer.prototype.resize = function (newCols, newRows) {\n var newMaxLength = this._getCorrectBufferLength(newRows);\n if (newMaxLength > this.lines.maxLength) {\n this.lines.maxLength = newMaxLength;\n }\n if (this.lines.length > 0) {\n if (this._terminal.cols < newCols) {\n var ch = [exports.DEFAULT_ATTR, exports.NULL_CELL_CHAR, exports.NULL_CELL_WIDTH, exports.NULL_CELL_CODE];\n for (var i = 0; i < this.lines.length; i++) {\n while (this.lines.get(i).length < newCols) {\n this.lines.get(i).push(ch);\n }\n }\n }\n var addToY = 0;\n if (this._terminal.rows < newRows) {\n for (var y = this._terminal.rows; y < newRows; y++) {\n if (this.lines.length < newRows + this.ybase) {\n if (this.ybase > 0 && this.lines.length <= this.ybase + this.y + addToY + 1) {\n this.ybase--;\n addToY++;\n if (this.ydisp > 0) {\n this.ydisp--;\n }\n }\n else {\n this.lines.push(this._terminal.blankLine(undefined, undefined, newCols));\n }\n }\n }\n }\n else {\n for (var y = this._terminal.rows; y > newRows; y--) {\n if (this.lines.length > newRows + this.ybase) {\n if (this.lines.length > this.ybase + this.y + 1) {\n this.lines.pop();\n }\n else {\n this.ybase++;\n this.ydisp++;\n }\n }\n }\n }\n if (newMaxLength < this.lines.maxLength) {\n var amountToTrim = this.lines.length - newMaxLength;\n if (amountToTrim > 0) {\n this.lines.trimStart(amountToTrim);\n this.ybase = Math.max(this.ybase - amountToTrim, 0);\n this.ydisp = Math.max(this.ydisp - amountToTrim, 0);\n }\n this.lines.maxLength = newMaxLength;\n }\n this.x = Math.min(this.x, newCols - 1);\n this.y = Math.min(this.y, newRows - 1);\n if (addToY) {\n this.y += addToY;\n }\n this.savedY = Math.min(this.savedY, newRows - 1);\n this.savedX = Math.min(this.savedX, newCols - 1);\n this.scrollTop = 0;\n }\n this.scrollBottom = newRows - 1;\n };\n Buffer.prototype.translateBufferLineToString = function (lineIndex, trimRight, startCol, endCol) {\n if (startCol === void 0) { startCol = 0; }\n if (endCol === void 0) { endCol = null; }\n var lineString = '';\n var line = this.lines.get(lineIndex);\n if (!line) {\n return '';\n }\n var startIndex = startCol;\n if (endCol === null) {\n endCol = line.length;\n }\n var endIndex = endCol;\n for (var i = 0; i < line.length; i++) {\n var char = line[i];\n lineString += char[exports.CHAR_DATA_CHAR_INDEX];\n if (char[exports.CHAR_DATA_WIDTH_INDEX] === 0) {\n if (startCol >= i) {\n startIndex--;\n }\n if (endCol > i) {\n endIndex--;\n }\n }\n else {\n if (char[exports.CHAR_DATA_CHAR_INDEX].length > 1) {\n if (startCol > i) {\n startIndex += char[exports.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n if (endCol > i) {\n endIndex += char[exports.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n }\n }\n }\n if (trimRight) {\n var rightWhitespaceIndex = lineString.search(/\\s+$/);\n if (rightWhitespaceIndex !== -1) {\n endIndex = Math.min(endIndex, rightWhitespaceIndex);\n }\n if (endIndex <= startIndex) {\n return '';\n }\n }\n return lineString.substring(startIndex, endIndex);\n };\n Buffer.prototype.getWrappedRangeForLine = function (y) {\n var first = y;\n var last = y;\n while (first > 0 && this.lines.get(first).isWrapped) {\n first--;\n }\n while (last + 1 < this.lines.length && this.lines.get(last + 1).isWrapped) {\n last++;\n }\n return { first: first, last: last };\n };\n Buffer.prototype.setupTabStops = function (i) {\n if (i != null) {\n if (!this.tabs[i]) {\n i = this.prevStop(i);\n }\n }\n else {\n this.tabs = {};\n i = 0;\n }\n for (; i < this._terminal.cols; i += this._terminal.options.tabStopWidth) {\n this.tabs[i] = true;\n }\n };\n Buffer.prototype.prevStop = function (x) {\n if (x == null) {\n x = this.x;\n }\n while (!this.tabs[--x] && x > 0)\n ;\n return x >= this._terminal.cols ? this._terminal.cols - 1 : x < 0 ? 0 : x;\n };\n Buffer.prototype.nextStop = function (x) {\n if (x == null) {\n x = this.x;\n }\n while (!this.tabs[++x] && x < this._terminal.cols)\n ;\n return x >= this._terminal.cols ? this._terminal.cols - 1 : x < 0 ? 0 : x;\n };\n Buffer.prototype.addMarker = function (y) {\n var _this = this;\n var marker = new Marker(y);\n this.markers.push(marker);\n marker.register(this.lines.addDisposableListener('trim', function (amount) {\n marker.line -= amount;\n if (marker.line < 0) {\n marker.dispose();\n }\n }));\n marker.register(marker.addDisposableListener('dispose', function () { return _this._removeMarker(marker); }));\n return marker;\n };\n Buffer.prototype._removeMarker = function (marker) {\n this.markers.splice(this.markers.indexOf(marker), 1);\n };\n return Buffer;\n}());\nexports.Buffer = Buffer;\nvar Marker = (function (_super) {\n __extends(Marker, _super);\n function Marker(line) {\n var _this = _super.call(this) || this;\n _this.line = line;\n _this._id = Marker._nextId++;\n _this.isDisposed = false;\n return _this;\n }\n Object.defineProperty(Marker.prototype, \"id\", {\n get: function () { return this._id; },\n enumerable: true,\n configurable: true\n });\n Marker.prototype.dispose = function () {\n if (this.isDisposed) {\n return;\n }\n this.isDisposed = true;\n this.emit('dispose');\n _super.prototype.dispose.call(this);\n };\n Marker._nextId = 1;\n return Marker;\n}(EventEmitter_1.EventEmitter));\nexports.Marker = Marker;\n//# sourceMappingURL=Buffer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar EventEmitter = (function (_super) {\n __extends(EventEmitter, _super);\n function EventEmitter() {\n var _this = _super.call(this) || this;\n _this._events = _this._events || {};\n return _this;\n }\n EventEmitter.prototype.on = function (type, listener) {\n this._events[type] = this._events[type] || [];\n this._events[type].push(listener);\n };\n EventEmitter.prototype.addDisposableListener = function (type, handler) {\n var _this = this;\n this.on(type, handler);\n return {\n dispose: function () {\n if (!handler) {\n return;\n }\n _this.off(type, handler);\n handler = null;\n }\n };\n };\n EventEmitter.prototype.off = function (type, listener) {\n if (!this._events[type]) {\n return;\n }\n var obj = this._events[type];\n var i = obj.length;\n while (i--) {\n if (obj[i] === listener) {\n obj.splice(i, 1);\n return;\n }\n }\n };\n EventEmitter.prototype.removeAllListeners = function (type) {\n if (this._events[type]) {\n delete this._events[type];\n }\n };\n EventEmitter.prototype.emit = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!this._events[type]) {\n return;\n }\n var obj = this._events[type];\n for (var i = 0; i < obj.length; i++) {\n obj[i].apply(this, args);\n }\n };\n EventEmitter.prototype.listeners = function (type) {\n return this._events[type] || [];\n };\n EventEmitter.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._events = {};\n };\n return EventEmitter;\n}(Lifecycle_1.Disposable));\nexports.EventEmitter = EventEmitter;\n//# sourceMappingURL=EventEmitter.js.map","'use strict'\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\n\nfunction pathExists (path) {\n return fs.access(path).then(() => true).catch(() => false)\n}\n\nmodule.exports = {\n pathExists: u(pathExists),\n pathExistsSync: fs.existsSync\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Disposable = (function () {\n function Disposable() {\n this._disposables = [];\n this._isDisposed = false;\n }\n Disposable.prototype.dispose = function () {\n this._isDisposed = true;\n this._disposables.forEach(function (d) { return d.dispose(); });\n this._disposables.length = 0;\n };\n Disposable.prototype.register = function (d) {\n this._disposables.push(d);\n };\n Disposable.prototype.unregister = function (d) {\n var index = this._disposables.indexOf(d);\n if (index !== -1) {\n this._disposables.splice(index, 1);\n }\n };\n return Disposable;\n}());\nexports.Disposable = Disposable;\n//# sourceMappingURL=Lifecycle.js.map","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { Emitter } from 'atom'\r\n\r\nimport atomXtermConfig from './atom-xterm-config'\r\n\r\nimport fs from 'fs-extra'\r\nimport path from 'path'\r\n\r\nimport uuidv4 from 'uuid/v4'\r\nimport { URL } from 'whatwg-url'\r\nimport { detailedDiff } from 'deep-object-diff'\r\n\r\nconst ATOM_XTERM_BASE_URI = 'atom-xterm://'\r\n\r\nconst CONFIG_KEY_TO_PROFILE_KEY_MAPPING = {\r\n 'atom-xterm.spawnPtySettings.command': 'command',\r\n 'atom-xterm.spawnPtySettings.args': 'args',\r\n 'atom-xterm.spawnPtySettings.name': 'name',\r\n 'atom-xterm.spawnPtySettings.cwd': 'cwd',\r\n 'atom-xterm.spawnPtySettings.env': 'env',\r\n 'atom-xterm.spawnPtySettings.setEnv': 'setEnv',\r\n 'atom-xterm.spawnPtySettings.deleteEnv': 'deleteEnv',\r\n 'atom-xterm.spawnPtySettings.encoding': 'encoding',\r\n 'atom-xterm.terminalSettings.fontSize': 'fontSize',\r\n 'atom-xterm.terminalSettings.leaveOpenAfterExit': 'leaveOpenAfterExit',\r\n 'atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup': 'allowRelaunchingTerminalsOnStartup',\r\n 'atom-xterm.terminalSettings.relaunchTerminalOnStartup': 'relaunchTerminalOnStartup',\r\n 'atom-xterm.terminalSettings.title': 'title',\r\n 'atom-xterm.terminalSettings.xtermOptions': 'xtermOptions',\r\n 'atom-xterm.terminalSettings.promptToStartup': 'promptToStartup'\r\n}\r\n\r\nconst AtomXtermProfilesSingletonSymbol = Symbol('AtomXtermProfilesSingleton sentinel')\r\n\r\nclass AtomXtermProfilesSingleton {\r\n constructor (symbolCheck) {\r\n if (AtomXtermProfilesSingletonSymbol !== symbolCheck) {\r\n throw new Error('AtomXtermProfilesSingleton cannot be instantiated directly.')\r\n }\r\n this.emitter = new Emitter()\r\n this.profilesConfigPath = path.join(atomXtermConfig.getUserDataPath(), 'profiles.json')\r\n this.profiles = {}\r\n this.previousBaseProfile = null\r\n this.baseProfile = this.getDefaultProfile()\r\n this.resetBaseProfile()\r\n this.profilesLoadPromise = null\r\n this.reloadProfiles()\r\n }\r\n\r\n static get instance () {\r\n if (!this[AtomXtermProfilesSingletonSymbol]) {\r\n this[AtomXtermProfilesSingletonSymbol] = new AtomXtermProfilesSingleton(AtomXtermProfilesSingletonSymbol)\r\n }\r\n return this[AtomXtermProfilesSingletonSymbol]\r\n }\r\n\r\n sortProfiles (profiles) {\r\n let orderedProfiles = {}\r\n Object.keys(profiles).sort().forEach((key) => {\r\n orderedProfiles[key] = profiles[key]\r\n })\r\n return orderedProfiles\r\n }\r\n\r\n reloadProfiles () {\r\n this.profilesLoadPromise = new Promise((resolve, reject) => {\r\n fs.readJson(this.profilesConfigPath, (err, data) => {\r\n if (err) {\r\n // Create the profiles file.\r\n this.updateProfiles({}).then(() => {\r\n this.emitter.emit('did-reload-profiles', this.getSanitizedProfilesData())\r\n resolve()\r\n })\r\n } else {\r\n this.profiles = this.sortProfiles(data)\r\n this.emitter.emit('did-reload-profiles', this.getSanitizedProfilesData())\r\n resolve()\r\n }\r\n })\r\n })\r\n }\r\n\r\n onDidReloadProfiles (callback) {\r\n return this.emitter.on('did-reload-profiles', callback)\r\n }\r\n\r\n onDidResetBaseProfile (callback) {\r\n return this.emitter.on('did-reset-base-profile', callback)\r\n }\r\n\r\n updateProfiles (newProfilesConfigData) {\r\n return new Promise((resolve, reject) => {\r\n fs.ensureDir(path.dirname(this.profilesConfigPath), (err) => {\r\n if (err) reject(err)\r\n newProfilesConfigData = this.sortProfiles(newProfilesConfigData)\r\n fs.writeJson(this.profilesConfigPath, newProfilesConfigData, (err) => {\r\n if (err) reject(err)\r\n this.profiles = newProfilesConfigData\r\n resolve()\r\n })\r\n })\r\n })\r\n }\r\n\r\n deepClone (data) {\r\n return JSON.parse(JSON.stringify(data))\r\n }\r\n\r\n diffProfiles (oldProfile, newProfile) {\r\n // This method will return added or modified entries.\r\n let diff = detailedDiff(oldProfile, newProfile)\r\n return Object.assign(diff.added, diff.updated)\r\n }\r\n\r\n getDefaultProfile () {\r\n return {\r\n command: atomXtermConfig.getDefaultShellCommand(),\r\n args: JSON.parse(atomXtermConfig.getDefaultArgs()),\r\n name: atomXtermConfig.getDefaultTermType(),\r\n cwd: atomXtermConfig.getDefaultCwd(),\r\n env: null,\r\n setEnv: JSON.parse(atomXtermConfig.getDefaultSetEnv()),\r\n deleteEnv: JSON.parse(atomXtermConfig.getDefaultDeleteEnv()),\r\n encoding: null,\r\n fontSize: atomXtermConfig.getDefaultFontSize(),\r\n leaveOpenAfterExit: atomXtermConfig.getDefaultLeaveOpenAfterExit(),\r\n relaunchTerminalOnStartup: atomXtermConfig.getDefaultRelaunchTerminalOnStartup(),\r\n title: null,\r\n xtermOptions: JSON.parse(atomXtermConfig.getDefaultXtermOptions()),\r\n promptToStartup: atomXtermConfig.getDefaultPromptToStartup()\r\n }\r\n }\r\n\r\n getBaseProfile () {\r\n return this.deepClone(this.baseProfile)\r\n }\r\n\r\n validateJsonConfigSetting (name, defaultJsonValue) {\r\n let profileKey = CONFIG_KEY_TO_PROFILE_KEY_MAPPING[name]\r\n let previousValue = this.previousBaseProfile[profileKey]\r\n let value = atom.config.get(name)\r\n try {\r\n value = JSON.parse(value || defaultJsonValue) || previousValue\r\n } catch (e) {\r\n // This normally happens when the user is in the middle of updating some\r\n // setting that is a JSON string. Ignore syntax errors and use the last\r\n // known good config setting.\r\n if (!(e instanceof SyntaxError)) {\r\n throw e\r\n }\r\n value = previousValue\r\n }\r\n return value\r\n }\r\n\r\n resetBaseProfile () {\r\n this.previousBaseProfile = this.deepClone(this.baseProfile)\r\n let env = this.validateJsonConfigSetting('atom-xterm.spawnPtySettings.env', 'null')\r\n if (!env || env.constructor !== Object) {\r\n env = null\r\n }\r\n let encoding = atom.config.get('atom-xterm.spawnPtySettings.encoding') || null\r\n let leaveOpenAfterExit = atom.config.get('atom-xterm.terminalSettings.leaveOpenAfterExit')\r\n if (leaveOpenAfterExit !== true && leaveOpenAfterExit !== false) leaveOpenAfterExit = atomXtermConfig.getDefaultLeaveOpenAfterExit()\r\n let relaunchTerminalOnStartup = atom.config.get('atom-xterm.terminalSettings.relaunchTerminalOnStartup')\r\n if (relaunchTerminalOnStartup !== true && relaunchTerminalOnStartup !== false) relaunchTerminalOnStartup = atomXtermConfig.getDefaultRelaunchTerminalOnStartup()\r\n let title = atom.config.get('atom-xterm.terminalSettings.title') || atomXtermConfig.getDefaultTitle()\r\n let promptToStartup = atom.config.get('atom-xterm.terminalSettings.promptToStartup')\r\n if (promptToStartup !== true && promptToStartup !== false) promptToStartup = atomXtermConfig.getDefaultPromptToStartup()\r\n this.baseProfile = {\r\n command: atom.config.get('atom-xterm.spawnPtySettings.command') || atomXtermConfig.getDefaultShellCommand(),\r\n args: this.validateJsonConfigSetting('atom-xterm.spawnPtySettings.args', atomXtermConfig.getDefaultArgs()),\r\n name: atom.config.get('atom-xterm.spawnPtySettings.name') || atomXtermConfig.getDefaultTermType(),\r\n cwd: atom.config.get('atom-xterm.spawnPtySettings.cwd') || atomXtermConfig.getDefaultCwd(),\r\n env: env,\r\n setEnv: this.validateJsonConfigSetting('atom-xterm.spawnPtySettings.setEnv', atomXtermConfig.getDefaultSetEnv()),\r\n deleteEnv: this.validateJsonConfigSetting('atom-xterm.spawnPtySettings.deleteEnv', atomXtermConfig.getDefaultDeleteEnv()),\r\n encoding: encoding,\r\n fontSize: atom.config.get('atom-xterm.terminalSettings.fontSize') || atomXtermConfig.getDefaultFontSize(),\r\n leaveOpenAfterExit: leaveOpenAfterExit,\r\n relaunchTerminalOnStartup: relaunchTerminalOnStartup,\r\n title: title || null,\r\n xtermOptions: this.validateJsonConfigSetting('atom-xterm.terminalSettings.xtermOptions', atomXtermConfig.getDefaultXtermOptions()),\r\n promptToStartup: promptToStartup\r\n }\r\n this.emitter.emit('did-reset-base-profile', this.getBaseProfile())\r\n }\r\n\r\n sanitizeData (data) {\r\n let sanitizedData = {}\r\n if ('command' in data) sanitizedData.command = data.command\r\n if ('args' in data) sanitizedData.args = data.args\r\n if ('name' in data) sanitizedData.name = data.name\r\n if ('cwd' in data) sanitizedData.cwd = data.cwd\r\n if ('env' in data) sanitizedData.env = data.env\r\n if ('setEnv' in data) sanitizedData.setEnv = data.setEnv\r\n if ('deleteEnv' in data) sanitizedData.deleteEnv = data.deleteEnv\r\n if ('encoding' in data) sanitizedData.encoding = data.encoding\r\n if ('fontSize' in data) sanitizedData.fontSize = data.fontSize\r\n if ('leaveOpenAfterExit' in data) sanitizedData.leaveOpenAfterExit = data.leaveOpenAfterExit\r\n if ('relaunchTerminalOnStartup' in data) sanitizedData.relaunchTerminalOnStartup = data.relaunchTerminalOnStartup\r\n if ('title' in data) sanitizedData.title = data.title\r\n if ('xtermOptions' in data) sanitizedData.xtermOptions = data.xtermOptions\r\n if ('promptToStartup' in data) sanitizedData.promptToStartup = data.promptToStartup\r\n return this.deepClone(sanitizedData)\r\n }\r\n\r\n getSanitizedProfilesData () {\r\n let retval = {}\r\n for (let key in this.profiles) {\r\n retval[key] = this.sanitizeData(this.profiles[key])\r\n }\r\n return retval\r\n }\r\n\r\n getProfiles () {\r\n return new Promise((resolve, reject) => {\r\n this.profilesLoadPromise.then(() => {\r\n resolve(this.getSanitizedProfilesData())\r\n })\r\n })\r\n }\r\n\r\n getProfile (profileName) {\r\n return new Promise((resolve, reject) => {\r\n this.profilesLoadPromise.then(() => {\r\n resolve(Object.assign(\r\n {},\r\n this.deepClone(this.baseProfile),\r\n this.sanitizeData(this.profiles[profileName] || {})\r\n ))\r\n })\r\n })\r\n }\r\n\r\n isProfileExists (profileName) {\r\n return new Promise((resolve, reject) => {\r\n this.profilesLoadPromise.then(() => {\r\n resolve(profileName in this.profiles)\r\n })\r\n })\r\n }\r\n\r\n setProfile (profileName, data) {\r\n return new Promise((resolve, reject) => {\r\n this.profilesLoadPromise.then(() => {\r\n let profileData = Object.assign(\r\n {},\r\n this.deepClone(this.baseProfile),\r\n this.sanitizeData(data)\r\n )\r\n let newProfilesConfigData = Object.assign(\r\n {},\r\n this.deepClone(this.profiles)\r\n )\r\n newProfilesConfigData[profileName] = profileData\r\n this.updateProfiles(newProfilesConfigData).then(() => {\r\n resolve()\r\n })\r\n })\r\n })\r\n }\r\n\r\n deleteProfile (profileName) {\r\n return new Promise((resolve, reject) => {\r\n this.profilesLoadPromise.then(() => {\r\n let newProfilesConfigData = Object.assign(\r\n {},\r\n this.deepClone(this.profiles)\r\n )\r\n delete newProfilesConfigData[profileName]\r\n this.updateProfiles(newProfilesConfigData).then(() => {\r\n resolve()\r\n })\r\n })\r\n })\r\n }\r\n\r\n generateNewUri () {\r\n return ATOM_XTERM_BASE_URI + uuidv4() + '/'\r\n }\r\n\r\n generateNewUrlFromProfileData (data) {\r\n data = this.sanitizeData(data)\r\n let url = new URL(this.generateNewUri())\r\n // Command to run, can be basename of command or full path to command.\r\n if ('command' in data) url.searchParams.set('command', data.command)\r\n // Arguments to pass to command. This should be in a JSON array.\r\n if ('args' in data) url.searchParams.set('args', JSON.stringify(data.args))\r\n // This defines the term type to use ('xterm', 'xterm-color', etc.). This\r\n // option does nothing on Windows.\r\n if ('name' in data) url.searchParams.set('name', data.name)\r\n // Current working directory to start command in.\r\n if ('cwd' in data) url.searchParams.set('cwd', data.cwd)\r\n // Environment to use for command. This can be null or left out in which\r\n // case the current environment is used.\r\n if ('env' in data) url.searchParams.set('env', JSON.stringify(data.env))\r\n // Environment variables to set or override from the defined environment\r\n // above or the current environment when starting command.\r\n if ('setEnv' in data) url.searchParams.set('setEnv', JSON.stringify(data.setEnv))\r\n // Environment variables to delete when starting command.\r\n if ('deleteEnv' in data) url.searchParams.set('deleteEnv', JSON.stringify(data.deleteEnv))\r\n // Encoding to use when running command.\r\n if ('encoding' in data) url.searchParams.set('encoding', data.encoding)\r\n // Font size to use.\r\n if ('fontSize' in data) url.searchParams.set('fontSize', JSON.stringify(data.fontSize))\r\n // This determines whether to leave the terminal tab open when the command\r\n // has finished running.\r\n if ('leaveOpenAfterExit' in data) url.searchParams.set('leaveOpenAfterExit', JSON.stringify(data.leaveOpenAfterExit))\r\n // This determines whether the terminal tab should be restarted when Atom\r\n // is restarted.\r\n if ('relaunchTerminalOnStartup' in data) url.searchParams.set('relaunchTerminalOnStartup', JSON.stringify(data.relaunchTerminalOnStartup))\r\n // This is used to set a custom title for the new terminal tab.\r\n if ('title' in data) url.searchParams.set('title', data.title)\r\n // The options supported by the Terminal object in xterm.js. See also\r\n // https://github.com/xtermjs/xterm.js/blob/3.0.2/typings/xterm.d.ts#L14 .\r\n // NOTE: The 'fontSize' setting defined in the options here is ignored.\r\n if ('xtermOptions' in data) url.searchParams.set('xtermOptions', JSON.stringify(data.xtermOptions))\r\n // This determines whether to prompt the user to startup the terminal\r\n // process.\r\n if ('promptToStartup' in data) url.searchParams.set('promptToStartup', JSON.stringify(data.promptToStartup))\r\n return url\r\n }\r\n\r\n createProfileDataFromUri (uri) {\r\n let param\r\n let url = new URL(uri)\r\n let baseProfile = this.getBaseProfile()\r\n let newProfile = {}\r\n param = url.searchParams.get('command')\r\n if (param) newProfile.command = param\r\n if (!('command' in newProfile)) newProfile.command = baseProfile.command\r\n param = url.searchParams.get('args')\r\n if (param) newProfile.args = JSON.parse(param)\r\n if (!('args' in newProfile && newProfile.args)) newProfile.args = baseProfile.args\r\n param = url.searchParams.get('name')\r\n if (param) newProfile.name = param\r\n if (!('name' in newProfile)) newProfile.name = baseProfile.name\r\n param = url.searchParams.get('cwd')\r\n if (param) newProfile.cwd = param\r\n if (!('cwd' in newProfile)) newProfile.cwd = baseProfile.cwd\r\n param = url.searchParams.get('env')\r\n if (param) newProfile.env = JSON.parse(param)\r\n if (!('env' in newProfile && newProfile.env)) newProfile.env = baseProfile.env\r\n param = url.searchParams.get('setEnv')\r\n if (param) newProfile.setEnv = JSON.parse(param)\r\n if (!('setEnv' in newProfile && newProfile.setEnv)) newProfile.setEnv = baseProfile.setEnv\r\n param = url.searchParams.get('deleteEnv')\r\n if (param) newProfile.deleteEnv = JSON.parse(param)\r\n if (!('deleteEnv' in newProfile && newProfile.deleteEnv)) newProfile.deleteEnv = baseProfile.deleteEnv\r\n param = url.searchParams.get('encoding')\r\n if (param && param !== 'null') newProfile.encoding = param\r\n if (!('encoding' in newProfile)) newProfile.encoding = baseProfile.encoding\r\n param = url.searchParams.get('fontSize')\r\n if (param) newProfile.fontSize = JSON.parse(param)\r\n if (!('fontSize' in newProfile && newProfile.fontSize)) newProfile.fontSize = baseProfile.fontSize\r\n param = url.searchParams.get('leaveOpenAfterExit')\r\n if (param) newProfile.leaveOpenAfterExit = JSON.parse(param)\r\n if (!('leaveOpenAfterExit' in newProfile && newProfile.leaveOpenAfterExit !== null && newProfile.leaveOpenAfterExit !== '')) newProfile.leaveOpenAfterExit = baseProfile.leaveOpenAfterExit\r\n param = url.searchParams.get('relaunchTerminalOnStartup')\r\n if (param) newProfile.relaunchTerminalOnStartup = JSON.parse(param)\r\n if (!('relaunchTerminalOnStartup' in newProfile && newProfile.relaunchTerminalOnStartup !== null && newProfile.relaunchTerminalOnStartup !== '')) newProfile.relaunchTerminalOnStartup = baseProfile.relaunchTerminalOnStartup\r\n param = url.searchParams.get('title')\r\n if (param && param !== 'null') newProfile.title = param\r\n if (!('title' in newProfile)) newProfile.title = baseProfile.title\r\n param = url.searchParams.get('xtermOptions')\r\n if (param) newProfile.xtermOptions = JSON.parse(param)\r\n if (!('xtermOptions' in newProfile && newProfile.xtermOptions)) newProfile.xtermOptions = baseProfile.xtermOptions\r\n param = url.searchParams.get('promptToStartup')\r\n if (param) newProfile.promptToStartup = JSON.parse(param)\r\n if (!('promptToStartup' in newProfile && newProfile.promptToStartup !== null && newProfile.promptToStartup !== '')) newProfile.promptToStartup = baseProfile.promptToStartup\r\n return newProfile\r\n }\r\n}\r\n\r\nexport {\r\n ATOM_XTERM_BASE_URI,\r\n AtomXtermProfilesSingleton\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__13__;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null) return null;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","module.exports = require(\"fs\");","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction addDisposableDomListener(node, type, handler, useCapture) {\n node.addEventListener(type, handler, useCapture);\n return {\n dispose: function () {\n if (!handler) {\n return;\n }\n node.removeEventListener(type, handler, useCapture);\n node = null;\n handler = null;\n }\n };\n}\nexports.addDisposableDomListener = addDisposableDomListener;\n//# sourceMappingURL=Lifecycle.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar C0;\n(function (C0) {\n C0.NUL = '\\x00';\n C0.SOH = '\\x01';\n C0.STX = '\\x02';\n C0.ETX = '\\x03';\n C0.EOT = '\\x04';\n C0.ENQ = '\\x05';\n C0.ACK = '\\x06';\n C0.BEL = '\\x07';\n C0.BS = '\\x08';\n C0.HT = '\\x09';\n C0.LF = '\\x0a';\n C0.VT = '\\x0b';\n C0.FF = '\\x0c';\n C0.CR = '\\x0d';\n C0.SO = '\\x0e';\n C0.SI = '\\x0f';\n C0.DLE = '\\x10';\n C0.DC1 = '\\x11';\n C0.DC2 = '\\x12';\n C0.DC3 = '\\x13';\n C0.DC4 = '\\x14';\n C0.NAK = '\\x15';\n C0.SYN = '\\x16';\n C0.ETB = '\\x17';\n C0.CAN = '\\x18';\n C0.EM = '\\x19';\n C0.SUB = '\\x1a';\n C0.ESC = '\\x1b';\n C0.FS = '\\x1c';\n C0.GS = '\\x1d';\n C0.RS = '\\x1e';\n C0.US = '\\x1f';\n C0.SP = '\\x20';\n C0.DEL = '\\x7f';\n})(C0 = exports.C0 || (exports.C0 = {}));\nvar C1;\n(function (C1) {\n C1.PAD = '\\x80';\n C1.HOP = '\\x81';\n C1.BPH = '\\x82';\n C1.NBH = '\\x83';\n C1.IND = '\\x84';\n C1.NEL = '\\x85';\n C1.SSA = '\\x86';\n C1.ESA = '\\x87';\n C1.HTS = '\\x88';\n C1.HTJ = '\\x89';\n C1.VTS = '\\x8a';\n C1.PLD = '\\x8b';\n C1.PLU = '\\x8c';\n C1.RI = '\\x8d';\n C1.SS2 = '\\x8e';\n C1.SS3 = '\\x8f';\n C1.DCS = '\\x90';\n C1.PU1 = '\\x91';\n C1.PU2 = '\\x92';\n C1.STS = '\\x93';\n C1.CCH = '\\x94';\n C1.MW = '\\x95';\n C1.SPA = '\\x96';\n C1.EPA = '\\x97';\n C1.SOS = '\\x98';\n C1.SGCI = '\\x99';\n C1.SCI = '\\x9a';\n C1.CSI = '\\x9b';\n C1.ST = '\\x9c';\n C1.OSC = '\\x9d';\n C1.PM = '\\x9e';\n C1.APC = '\\x9f';\n})(C1 = exports.C1 || (exports.C1 = {}));\n//# sourceMappingURL=EscapeSequences.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.INVERTED_DEFAULT_COLOR = -1;\nexports.DIM_OPACITY = 0.5;\n//# sourceMappingURL=Types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./atlas/Types\");\nvar CharAtlasCache_1 = require(\"./atlas/CharAtlasCache\");\nvar Buffer_1 = require(\"../Buffer\");\nvar BaseRenderLayer = (function () {\n function BaseRenderLayer(_container, id, zIndex, _alpha, _colors) {\n this._container = _container;\n this._alpha = _alpha;\n this._colors = _colors;\n this._scaledCharWidth = 0;\n this._scaledCharHeight = 0;\n this._scaledCellWidth = 0;\n this._scaledCellHeight = 0;\n this._scaledCharLeft = 0;\n this._scaledCharTop = 0;\n this._canvas = document.createElement('canvas');\n this._canvas.classList.add(\"xterm-\" + id + \"-layer\");\n this._canvas.style.zIndex = zIndex.toString();\n this._initCanvas();\n this._container.appendChild(this._canvas);\n }\n BaseRenderLayer.prototype.dispose = function () {\n this._container.removeChild(this._canvas);\n };\n BaseRenderLayer.prototype._initCanvas = function () {\n this._ctx = this._canvas.getContext('2d', { alpha: this._alpha });\n if (!this._alpha) {\n this.clearAll();\n }\n };\n BaseRenderLayer.prototype.onOptionsChanged = function (terminal) { };\n BaseRenderLayer.prototype.onBlur = function (terminal) { };\n BaseRenderLayer.prototype.onFocus = function (terminal) { };\n BaseRenderLayer.prototype.onCursorMove = function (terminal) { };\n BaseRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) { };\n BaseRenderLayer.prototype.onSelectionChanged = function (terminal, start, end, columnSelectMode) {\n if (columnSelectMode === void 0) { columnSelectMode = false; }\n };\n BaseRenderLayer.prototype.onThemeChanged = function (terminal, colorSet) {\n this._refreshCharAtlas(terminal, colorSet);\n };\n BaseRenderLayer.prototype.setTransparency = function (terminal, alpha) {\n if (alpha === this._alpha) {\n return;\n }\n var oldCanvas = this._canvas;\n this._alpha = alpha;\n this._canvas = this._canvas.cloneNode();\n this._initCanvas();\n this._container.replaceChild(this._canvas, oldCanvas);\n this._refreshCharAtlas(terminal, this._colors);\n this.onGridChanged(terminal, 0, terminal.rows - 1);\n };\n BaseRenderLayer.prototype._refreshCharAtlas = function (terminal, colorSet) {\n if (this._scaledCharWidth <= 0 && this._scaledCharHeight <= 0) {\n return;\n }\n this._charAtlas = CharAtlasCache_1.acquireCharAtlas(terminal, colorSet, this._scaledCharWidth, this._scaledCharHeight);\n this._charAtlas.warmUp();\n };\n BaseRenderLayer.prototype.resize = function (terminal, dim) {\n this._scaledCellWidth = dim.scaledCellWidth;\n this._scaledCellHeight = dim.scaledCellHeight;\n this._scaledCharWidth = dim.scaledCharWidth;\n this._scaledCharHeight = dim.scaledCharHeight;\n this._scaledCharLeft = dim.scaledCharLeft;\n this._scaledCharTop = dim.scaledCharTop;\n this._canvas.width = dim.scaledCanvasWidth;\n this._canvas.height = dim.scaledCanvasHeight;\n this._canvas.style.width = dim.canvasWidth + \"px\";\n this._canvas.style.height = dim.canvasHeight + \"px\";\n if (!this._alpha) {\n this.clearAll();\n }\n this._refreshCharAtlas(terminal, this._colors);\n };\n BaseRenderLayer.prototype.fillCells = function (x, y, width, height) {\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n };\n BaseRenderLayer.prototype.fillBottomLineAtCells = function (x, y, width) {\n if (width === void 0) { width = 1; }\n this._ctx.fillRect(x * this._scaledCellWidth, (y + 1) * this._scaledCellHeight - window.devicePixelRatio - 1, width * this._scaledCellWidth, window.devicePixelRatio);\n };\n BaseRenderLayer.prototype.fillLeftLineAtCell = function (x, y) {\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, window.devicePixelRatio, this._scaledCellHeight);\n };\n BaseRenderLayer.prototype.strokeRectAtCell = function (x, y, width, height) {\n this._ctx.lineWidth = window.devicePixelRatio;\n this._ctx.strokeRect(x * this._scaledCellWidth + window.devicePixelRatio / 2, y * this._scaledCellHeight + (window.devicePixelRatio / 2), width * this._scaledCellWidth - window.devicePixelRatio, (height * this._scaledCellHeight) - window.devicePixelRatio);\n };\n BaseRenderLayer.prototype.clearAll = function () {\n if (this._alpha) {\n this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);\n }\n else {\n this._ctx.fillStyle = this._colors.background.css;\n this._ctx.fillRect(0, 0, this._canvas.width, this._canvas.height);\n }\n };\n BaseRenderLayer.prototype.clearCells = function (x, y, width, height) {\n if (this._alpha) {\n this._ctx.clearRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n }\n else {\n this._ctx.fillStyle = this._colors.background.css;\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n }\n };\n BaseRenderLayer.prototype.fillCharTrueColor = function (terminal, charData, x, y) {\n this._ctx.font = this._getFont(terminal, false, false);\n this._ctx.textBaseline = 'top';\n this._clipRow(terminal, y);\n this._ctx.fillText(charData[Buffer_1.CHAR_DATA_CHAR_INDEX], x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\n };\n BaseRenderLayer.prototype.drawChars = function (terminal, chars, code, width, x, y, fg, bg, bold, dim, italic) {\n var drawInBrightColor = terminal.options.drawBoldTextInBrightColors && bold && fg < 8 && fg !== Types_1.INVERTED_DEFAULT_COLOR;\n fg += drawInBrightColor ? 8 : 0;\n var atlasDidDraw = this._charAtlas && this._charAtlas.draw(this._ctx, { chars: chars, code: code, bg: bg, fg: fg, bold: bold && terminal.options.enableBold, dim: dim, italic: italic }, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\n if (!atlasDidDraw) {\n this._drawUncachedChars(terminal, chars, width, fg, x, y, bold && terminal.options.enableBold, dim, italic);\n }\n };\n BaseRenderLayer.prototype._drawUncachedChars = function (terminal, chars, width, fg, x, y, bold, dim, italic) {\n this._ctx.save();\n this._ctx.font = this._getFont(terminal, bold, italic);\n this._ctx.textBaseline = 'top';\n if (fg === Types_1.INVERTED_DEFAULT_COLOR) {\n this._ctx.fillStyle = this._colors.background.css;\n }\n else if (fg < 256) {\n this._ctx.fillStyle = this._colors.ansi[fg].css;\n }\n else {\n this._ctx.fillStyle = this._colors.foreground.css;\n }\n this._clipRow(terminal, y);\n if (dim) {\n this._ctx.globalAlpha = Types_1.DIM_OPACITY;\n }\n this._ctx.fillText(chars, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\n this._ctx.restore();\n };\n BaseRenderLayer.prototype._clipRow = function (terminal, y) {\n this._ctx.beginPath();\n this._ctx.rect(0, y * this._scaledCellHeight, terminal.cols * this._scaledCellWidth, this._scaledCellHeight);\n this._ctx.clip();\n };\n BaseRenderLayer.prototype._getFont = function (terminal, isBold, isItalic) {\n var fontWeight = isBold ? terminal.options.fontWeightBold : terminal.options.fontWeight;\n var fontStyle = isItalic ? 'italic' : '';\n return fontStyle + \" \" + fontWeight + \" \" + terminal.options.fontSize * window.devicePixelRatio + \"px \" + terminal.options.fontFamily;\n };\n return BaseRenderLayer;\n}());\nexports.BaseRenderLayer = BaseRenderLayer;\n//# sourceMappingURL=BaseRenderLayer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DEFAULT_FOREGROUND = fromHex('#ffffff');\nvar DEFAULT_BACKGROUND = fromHex('#000000');\nvar DEFAULT_CURSOR = fromHex('#ffffff');\nvar DEFAULT_CURSOR_ACCENT = fromHex('#000000');\nvar DEFAULT_SELECTION = {\n css: 'rgba(255, 255, 255, 0.3)',\n rgba: 0xFFFFFF77\n};\nexports.DEFAULT_ANSI_COLORS = (function () {\n var colors = [\n fromHex('#2e3436'),\n fromHex('#cc0000'),\n fromHex('#4e9a06'),\n fromHex('#c4a000'),\n fromHex('#3465a4'),\n fromHex('#75507b'),\n fromHex('#06989a'),\n fromHex('#d3d7cf'),\n fromHex('#555753'),\n fromHex('#ef2929'),\n fromHex('#8ae234'),\n fromHex('#fce94f'),\n fromHex('#729fcf'),\n fromHex('#ad7fa8'),\n fromHex('#34e2e2'),\n fromHex('#eeeeec')\n ];\n var v = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff];\n for (var i = 0; i < 216; i++) {\n var r = v[(i / 36) % 6 | 0];\n var g = v[(i / 6) % 6 | 0];\n var b = v[i % 6];\n colors.push({\n css: \"#\" + toPaddedHex(r) + toPaddedHex(g) + toPaddedHex(b),\n rgba: ((r << 24) | (g << 16) | (b << 8) | 0xFF) >>> 0\n });\n }\n for (var i = 0; i < 24; i++) {\n var c = 8 + i * 10;\n var ch = toPaddedHex(c);\n colors.push({\n css: \"#\" + ch + ch + ch,\n rgba: ((c << 24) | (c << 16) | (c << 8) | 0xFF) >>> 0\n });\n }\n return colors;\n})();\nfunction fromHex(css) {\n return {\n css: css,\n rgba: parseInt(css.slice(1), 16) << 8 | 0xFF\n };\n}\nfunction toPaddedHex(c) {\n var s = c.toString(16);\n return s.length < 2 ? '0' + s : s;\n}\nvar ColorManager = (function () {\n function ColorManager(document, allowTransparency) {\n this.allowTransparency = allowTransparency;\n var canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n this._ctx = canvas.getContext('2d');\n this._ctx.globalCompositeOperation = 'copy';\n this._litmusColor = this._ctx.createLinearGradient(0, 0, 1, 1);\n this.colors = {\n foreground: DEFAULT_FOREGROUND,\n background: DEFAULT_BACKGROUND,\n cursor: DEFAULT_CURSOR,\n cursorAccent: DEFAULT_CURSOR_ACCENT,\n selection: DEFAULT_SELECTION,\n ansi: exports.DEFAULT_ANSI_COLORS.slice()\n };\n }\n ColorManager.prototype.setTheme = function (theme) {\n this.colors.foreground = this._parseColor(theme.foreground, DEFAULT_FOREGROUND);\n this.colors.background = this._parseColor(theme.background, DEFAULT_BACKGROUND);\n this.colors.cursor = this._parseColor(theme.cursor, DEFAULT_CURSOR, true);\n this.colors.cursorAccent = this._parseColor(theme.cursorAccent, DEFAULT_CURSOR_ACCENT, true);\n this.colors.selection = this._parseColor(theme.selection, DEFAULT_SELECTION, true);\n this.colors.ansi[0] = this._parseColor(theme.black, exports.DEFAULT_ANSI_COLORS[0]);\n this.colors.ansi[1] = this._parseColor(theme.red, exports.DEFAULT_ANSI_COLORS[1]);\n this.colors.ansi[2] = this._parseColor(theme.green, exports.DEFAULT_ANSI_COLORS[2]);\n this.colors.ansi[3] = this._parseColor(theme.yellow, exports.DEFAULT_ANSI_COLORS[3]);\n this.colors.ansi[4] = this._parseColor(theme.blue, exports.DEFAULT_ANSI_COLORS[4]);\n this.colors.ansi[5] = this._parseColor(theme.magenta, exports.DEFAULT_ANSI_COLORS[5]);\n this.colors.ansi[6] = this._parseColor(theme.cyan, exports.DEFAULT_ANSI_COLORS[6]);\n this.colors.ansi[7] = this._parseColor(theme.white, exports.DEFAULT_ANSI_COLORS[7]);\n this.colors.ansi[8] = this._parseColor(theme.brightBlack, exports.DEFAULT_ANSI_COLORS[8]);\n this.colors.ansi[9] = this._parseColor(theme.brightRed, exports.DEFAULT_ANSI_COLORS[9]);\n this.colors.ansi[10] = this._parseColor(theme.brightGreen, exports.DEFAULT_ANSI_COLORS[10]);\n this.colors.ansi[11] = this._parseColor(theme.brightYellow, exports.DEFAULT_ANSI_COLORS[11]);\n this.colors.ansi[12] = this._parseColor(theme.brightBlue, exports.DEFAULT_ANSI_COLORS[12]);\n this.colors.ansi[13] = this._parseColor(theme.brightMagenta, exports.DEFAULT_ANSI_COLORS[13]);\n this.colors.ansi[14] = this._parseColor(theme.brightCyan, exports.DEFAULT_ANSI_COLORS[14]);\n this.colors.ansi[15] = this._parseColor(theme.brightWhite, exports.DEFAULT_ANSI_COLORS[15]);\n };\n ColorManager.prototype._parseColor = function (css, fallback, allowTransparency) {\n if (allowTransparency === void 0) { allowTransparency = this.allowTransparency; }\n if (!css) {\n return fallback;\n }\n this._ctx.fillStyle = this._litmusColor;\n this._ctx.fillStyle = css;\n if (typeof this._ctx.fillStyle !== 'string') {\n console.warn(\"Color: \" + css + \" is invalid using fallback \" + fallback.css);\n return fallback;\n }\n this._ctx.fillRect(0, 0, 1, 1);\n var data = this._ctx.getImageData(0, 0, 1, 1).data;\n if (!allowTransparency && data[3] !== 0xFF) {\n console.warn(\"Color: \" + css + \" is using transparency, but allowTransparency is false. \" +\n (\"Using fallback \" + fallback.css + \".\"));\n return fallback;\n }\n return {\n css: css,\n rgba: (data[0] << 24 | data[1] << 16 | data[2] << 8 | data[3]) >>> 0\n };\n };\n return ColorManager;\n}());\nexports.ColorManager = ColorManager;\n//# sourceMappingURL=ColorManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isNode = (typeof navigator === 'undefined') ? true : false;\nvar userAgent = (isNode) ? 'node' : navigator.userAgent;\nvar platform = (isNode) ? 'node' : navigator.platform;\nexports.isFirefox = !!~userAgent.indexOf('Firefox');\nexports.isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nexports.isMSIE = !!~userAgent.indexOf('MSIE') || !!~userAgent.indexOf('Trident');\nexports.isMac = contains(['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'], platform);\nexports.isIpad = platform === 'iPad';\nexports.isIphone = platform === 'iPhone';\nexports.isMSWindows = contains(['Windows', 'Win16', 'Win32', 'WinCE'], platform);\nexports.isLinux = platform.indexOf('Linux') >= 0;\nfunction contains(arr, el) {\n return arr.indexOf(el) >= 0;\n}\n//# sourceMappingURL=Browser.js.map","'use strict'\n\nconst u = require('universalify').fromCallback\nconst rimraf = require('./rimraf')\n\nmodule.exports = {\n remove: u(rimraf),\n removeSync: rimraf.sync\n}\n","\"use strict\";\nconst { isASCIIHex } = require(\"./infra\");\n\nfunction strictlySplitByteSequence(buf, cp) {\n const list = [];\n let last = 0;\n let i = buf.indexOf(cp);\n while (i >= 0) {\n list.push(buf.slice(last, i));\n last = i + 1;\n i = buf.indexOf(cp, last);\n }\n if (last !== buf.length) {\n list.push(buf.slice(last));\n }\n return list;\n}\n\nfunction replaceByteInByteSequence(buf, from, to) {\n let i = buf.indexOf(from);\n while (i >= 0) {\n buf[i] = to;\n i = buf.indexOf(from, i + 1);\n }\n return buf;\n}\n\nfunction percentEncode(c) {\n let hex = c.toString(16).toUpperCase();\n if (hex.length === 1) {\n hex = \"0\" + hex;\n }\n\n return \"%\" + hex;\n}\n\nfunction percentDecode(input) {\n const output = Buffer.alloc(input.byteLength);\n let ptr = 0;\n for (let i = 0; i < input.length; ++i) {\n if (input[i] !== 37 || !isASCIIHex(input[i + 1]) || !isASCIIHex(input[i + 2])) {\n output[ptr++] = input[i];\n } else {\n output[ptr++] = parseInt(input.slice(i + 1, i + 3).toString(), 16);\n i += 2;\n }\n }\n return output.slice(0, ptr);\n}\n\nfunction parseUrlencoded(input) {\n const sequences = strictlySplitByteSequence(input, 38);\n const output = [];\n for (const bytes of sequences) {\n if (bytes.length === 0) {\n continue;\n }\n\n let name;\n let value;\n const indexOfEqual = bytes.indexOf(61);\n\n if (indexOfEqual >= 0) {\n name = bytes.slice(0, indexOfEqual);\n value = bytes.slice(indexOfEqual + 1);\n } else {\n name = bytes;\n value = Buffer.alloc(0);\n }\n\n name = replaceByteInByteSequence(Buffer.from(name), 43, 32);\n value = replaceByteInByteSequence(Buffer.from(value), 43, 32);\n\n output.push([percentDecode(name).toString(), percentDecode(value).toString()]);\n }\n return output;\n}\n\nfunction serializeUrlencodedByte(input) {\n let output = \"\";\n for (const byte of input) {\n if (byte === 32) {\n output += \"+\";\n } else if (byte === 42 ||\n byte === 45 ||\n byte === 46 ||\n (byte >= 48 && byte <= 57) ||\n (byte >= 65 && byte <= 90) ||\n byte === 95 ||\n (byte >= 97 && byte <= 122)) {\n output += String.fromCodePoint(byte);\n } else {\n output += percentEncode(byte);\n }\n }\n return output;\n}\n\nfunction serializeUrlencoded(tuples, encodingOverride = undefined) {\n let encoding = \"utf-8\";\n if (encodingOverride !== undefined) {\n encoding = encodingOverride;\n }\n\n let output = \"\";\n for (const [i, tuple] of tuples.entries()) {\n // TODO: handle encoding override\n const name = serializeUrlencodedByte(Buffer.from(tuple[0]));\n let value = tuple[1];\n if (tuple.length > 2 && tuple[2] !== undefined) {\n if (tuple[2] === \"hidden\" && name === \"_charset_\") {\n value = encoding;\n } else if (tuple[2] === \"file\") {\n // value is a File object\n value = value.name;\n }\n }\n value = serializeUrlencodedByte(Buffer.from(value));\n if (i !== 0) {\n output += \"&\";\n }\n output += `${name}=${value}`;\n }\n return output;\n}\n\nmodule.exports = {\n percentEncode,\n percentDecode,\n\n // application/x-www-form-urlencoded string parser\n parseUrlencoded(input) {\n return parseUrlencoded(Buffer.from(input));\n },\n\n // application/x-www-form-urlencoded serializer\n serializeUrlencoded\n};\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.index = mod.exports;\n }\n})(this, function (exports) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n var isDate = exports.isDate = function isDate(d) {\n return d instanceof Date;\n };\n var isEmpty = exports.isEmpty = function isEmpty(o) {\n return Object.keys(o).length === 0;\n };\n var isObject = exports.isObject = function isObject(o) {\n return o != null && (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object';\n };\n var properObject = exports.properObject = function properObject(o) {\n return isObject(o) && !o.hasOwnProperty ? _extends({}, o) : o;\n };\n});","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nexport function clearDiv (div) {\r\n while (div.firstChild) {\r\n div.removeChild(div.firstChild)\r\n }\r\n}\r\n\r\nexport function createHorizontalLine () {\r\n let hLine = document.createElement('div')\r\n hLine.classList.add('atom-xterm-profile-menu-element-hline')\r\n hLine.appendChild(document.createTextNode('.'))\r\n return hLine\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport os from 'os'\r\nimport path from 'path'\r\n\r\nexport default {\r\n\r\n getDefaultShellCommand () {\r\n if (process.platform === 'win32') {\r\n return process.env.COMSPEC || 'cmd.exe'\r\n }\r\n return process.env.SHELL || '/bin/sh'\r\n },\r\n\r\n getDefaultArgs () {\r\n return '[]'\r\n },\r\n\r\n getDefaultTermType () {\r\n return process.env.TERM || 'xterm-256color'\r\n },\r\n\r\n getDefaultCwd () {\r\n if (process.platform === 'win32') {\r\n return process.env.USERPROFILE\r\n }\r\n return process.env.HOME\r\n },\r\n\r\n getDefaultEnv () {\r\n return ''\r\n },\r\n\r\n getDefaultSetEnv () {\r\n return '{}'\r\n },\r\n\r\n getDefaultDeleteEnv () {\r\n return '[]'\r\n },\r\n\r\n getDefaultEncoding () {\r\n return ''\r\n },\r\n\r\n getDefaultFontSize () {\r\n return 14\r\n },\r\n\r\n getMinimumFontSize () {\r\n // NOTE: Atom will crash if the font is set below 8.\r\n return 8\r\n },\r\n\r\n getMaximumFontSize () {\r\n return 100\r\n },\r\n\r\n getDefaultLeaveOpenAfterExit () {\r\n return true\r\n },\r\n\r\n getDefaultAllowRelaunchingTerminalsOnStartup () {\r\n return true\r\n },\r\n\r\n getDefaultRelaunchTerminalOnStartup () {\r\n return true\r\n },\r\n\r\n getUserDataPath () {\r\n let appDataPath\r\n if (process.platform === 'win32') {\r\n appDataPath = process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming')\r\n } else if (process.platform === 'darwin') {\r\n appDataPath = path.join(os.homedir(), 'Library', 'Application Support')\r\n } else {\r\n appDataPath = process.env.XDG_CONFIG_HOME || path.join(os.homedir(), '.config')\r\n }\r\n return path.join(appDataPath, 'atom-xterm')\r\n },\r\n\r\n getDefaultTitle () {\r\n return ''\r\n },\r\n\r\n getDefaultXtermOptions () {\r\n return '{}'\r\n },\r\n\r\n getDefaultPromptToStartup () {\r\n return false\r\n }\r\n}\r\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseCharAtlas = (function () {\n function BaseCharAtlas() {\n this._didWarmUp = false;\n }\n BaseCharAtlas.prototype.warmUp = function () {\n if (!this._didWarmUp) {\n this._doWarmUp();\n this._didWarmUp = true;\n }\n };\n BaseCharAtlas.prototype._doWarmUp = function () { };\n BaseCharAtlas.prototype.beginFrame = function () { };\n return BaseCharAtlas;\n}());\nexports.default = BaseCharAtlas;\n//# sourceMappingURL=BaseCharAtlas.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RenderDebouncer = (function () {\n function RenderDebouncer(_terminal, _callback) {\n this._terminal = _terminal;\n this._callback = _callback;\n this._animationFrame = null;\n }\n RenderDebouncer.prototype.dispose = function () {\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n RenderDebouncer.prototype.refresh = function (rowStart, rowEnd) {\n var _this = this;\n rowStart = rowStart || 0;\n rowEnd = rowEnd || this._terminal.rows - 1;\n this._rowStart = this._rowStart !== undefined ? Math.min(this._rowStart, rowStart) : rowStart;\n this._rowEnd = this._rowEnd !== undefined ? Math.max(this._rowEnd, rowEnd) : rowEnd;\n if (this._animationFrame) {\n return;\n }\n this._animationFrame = window.requestAnimationFrame(function () { return _this._innerRefresh(); });\n };\n RenderDebouncer.prototype._innerRefresh = function () {\n this._rowStart = Math.max(this._rowStart, 0);\n this._rowEnd = Math.min(this._rowEnd, this._terminal.rows - 1);\n this._callback(this._rowStart, this._rowEnd);\n this._rowStart = null;\n this._rowEnd = null;\n this._animationFrame = null;\n };\n return RenderDebouncer;\n}());\nexports.RenderDebouncer = RenderDebouncer;\n//# sourceMappingURL=RenderDebouncer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.blankLine = 'Blank line';\nexports.promptLabel = 'Terminal input';\nexports.tooMuchOutput = 'Too much output to announce, navigate to rows manually to read';\n//# sourceMappingURL=Strings.js.map","'use strict'\n\nmodule.exports = Object.assign(\n {},\n // Export promiseified graceful-fs:\n require('./fs'),\n // Export extra methods:\n require('./copy-sync'),\n require('./copy'),\n require('./empty'),\n require('./ensure'),\n require('./json'),\n require('./mkdirs'),\n require('./move-sync'),\n require('./move'),\n require('./output'),\n require('./path-exists'),\n require('./remove')\n)\n\n// Export fs.promises as a getter property so that we don't trigger\n// ExperimentalWarning before fs.promises is actually accessed.\nconst fs = require('fs')\nif (Object.getOwnPropertyDescriptor(fs, 'promises')) {\n Object.defineProperty(module.exports, 'promises', {\n get () { return fs.promises }\n })\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst jsonFile = require('jsonfile')\n\nmodule.exports = {\n // jsonfile exports\n readJson: u(jsonFile.readFile),\n readJsonSync: jsonFile.readFileSync,\n writeJson: u(jsonFile.writeFile),\n writeJsonSync: jsonFile.writeFileSync\n}\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.URLSearchParams = require(\"./URLSearchParams\").interface;\n\nexports.parseURL = require(\"./url-state-machine\").parseURL;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.cannotHaveAUsernamePasswordPort = require(\"./url-state-machine\").cannotHaveAUsernamePasswordPort;\n\nexports.percentDecode = require(\"./urlencoded\").percentDecode;\n","module.exports = require(\"os\");","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CharAtlasUtils_1 = require(\"./CharAtlasUtils\");\nvar DynamicCharAtlas_1 = require(\"./DynamicCharAtlas\");\nvar NoneCharAtlas_1 = require(\"./NoneCharAtlas\");\nvar StaticCharAtlas_1 = require(\"./StaticCharAtlas\");\nvar charAtlasImplementations = {\n 'none': NoneCharAtlas_1.default,\n 'static': StaticCharAtlas_1.default,\n 'dynamic': DynamicCharAtlas_1.default\n};\nvar charAtlasCache = [];\nfunction acquireCharAtlas(terminal, colors, scaledCharWidth, scaledCharHeight) {\n var newConfig = CharAtlasUtils_1.generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors);\n for (var i = 0; i < charAtlasCache.length; i++) {\n var entry = charAtlasCache[i];\n var ownedByIndex = entry.ownedBy.indexOf(terminal);\n if (ownedByIndex >= 0) {\n if (CharAtlasUtils_1.configEquals(entry.config, newConfig)) {\n return entry.atlas;\n }\n if (entry.ownedBy.length === 1) {\n charAtlasCache.splice(i, 1);\n }\n else {\n entry.ownedBy.splice(ownedByIndex, 1);\n }\n break;\n }\n }\n for (var i = 0; i < charAtlasCache.length; i++) {\n var entry = charAtlasCache[i];\n if (CharAtlasUtils_1.configEquals(entry.config, newConfig)) {\n entry.ownedBy.push(terminal);\n return entry.atlas;\n }\n }\n var newEntry = {\n atlas: new charAtlasImplementations[terminal.options.experimentalCharAtlas](document, newConfig),\n config: newConfig,\n ownedBy: [terminal]\n };\n charAtlasCache.push(newEntry);\n return newEntry.atlas;\n}\nexports.acquireCharAtlas = acquireCharAtlas;\nfunction removeTerminalFromCache(terminal) {\n for (var i = 0; i < charAtlasCache.length; i++) {\n var index = charAtlasCache[i].ownedBy.indexOf(terminal);\n if (index !== -1) {\n if (charAtlasCache[i].ownedBy.length === 1) {\n charAtlasCache.splice(i, 1);\n }\n else {\n charAtlasCache[i].ownedBy.splice(index, 1);\n }\n break;\n }\n }\n}\nexports.removeTerminalFromCache = removeTerminalFromCache;\n//# sourceMappingURL=CharAtlasCache.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./Types\");\nvar Browser_1 = require(\"../utils/Browser\");\nfunction generateStaticCharAtlasTexture(context, canvasFactory, config) {\n var cellWidth = config.scaledCharWidth + Types_1.CHAR_ATLAS_CELL_SPACING;\n var cellHeight = config.scaledCharHeight + Types_1.CHAR_ATLAS_CELL_SPACING;\n var canvas = canvasFactory(255 * cellWidth, (2 + 16 + 16) * cellHeight);\n var ctx = canvas.getContext('2d', { alpha: config.allowTransparency });\n ctx.fillStyle = config.colors.background.css;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.save();\n ctx.fillStyle = config.colors.foreground.css;\n ctx.font = getFont(config.fontWeight, config);\n ctx.textBaseline = 'top';\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, 0, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillText(String.fromCharCode(i), i * cellWidth, 0);\n ctx.restore();\n }\n ctx.save();\n ctx.font = getFont(config.fontWeightBold, config);\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, cellHeight, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillText(String.fromCharCode(i), i * cellWidth, cellHeight);\n ctx.restore();\n }\n ctx.restore();\n ctx.font = getFont(config.fontWeight, config);\n for (var colorIndex = 0; colorIndex < 16; colorIndex++) {\n var y = (colorIndex + 2) * cellHeight;\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, y, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillStyle = config.colors.ansi[colorIndex].css;\n ctx.fillText(String.fromCharCode(i), i * cellWidth, y);\n ctx.restore();\n }\n }\n ctx.font = getFont(config.fontWeightBold, config);\n for (var colorIndex = 0; colorIndex < 16; colorIndex++) {\n var y = (colorIndex + 2 + 16) * cellHeight;\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, y, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillStyle = config.colors.ansi[colorIndex].css;\n ctx.fillText(String.fromCharCode(i), i * cellWidth, y);\n ctx.restore();\n }\n }\n ctx.restore();\n if (!('createImageBitmap' in context) || Browser_1.isFirefox || Browser_1.isSafari) {\n if (canvas instanceof HTMLCanvasElement) {\n return canvas;\n }\n return new Promise(function (r) { return r(canvas.transferToImageBitmap()); });\n }\n var charAtlasImageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n clearColor(charAtlasImageData, config.colors.background);\n return context.createImageBitmap(charAtlasImageData);\n}\nexports.generateStaticCharAtlasTexture = generateStaticCharAtlasTexture;\nfunction clearColor(imageData, color) {\n var isEmpty = true;\n var r = color.rgba >>> 24;\n var g = color.rgba >>> 16 & 0xFF;\n var b = color.rgba >>> 8 & 0xFF;\n for (var offset = 0; offset < imageData.data.length; offset += 4) {\n if (imageData.data[offset] === r &&\n imageData.data[offset + 1] === g &&\n imageData.data[offset + 2] === b) {\n imageData.data[offset + 3] = 0;\n }\n else {\n isEmpty = false;\n }\n }\n return isEmpty;\n}\nexports.clearColor = clearColor;\nfunction getFont(fontWeight, config) {\n return fontWeight + \" \" + config.fontSize * config.devicePixelRatio + \"px \" + config.fontFamily;\n}\n//# sourceMappingURL=CharAtlasGenerator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHAR_ATLAS_CELL_SPACING = 1;\n//# sourceMappingURL=Types.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"../common/Lifecycle\");\nvar ScreenDprMonitor = (function (_super) {\n __extends(ScreenDprMonitor, _super);\n function ScreenDprMonitor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScreenDprMonitor.prototype.setListener = function (listener) {\n var _this = this;\n if (this._listener) {\n this.clearListener();\n }\n this._listener = listener;\n this._outerListener = function () {\n _this._listener(window.devicePixelRatio, _this._currentDevicePixelRatio);\n _this._updateDpr();\n };\n this._updateDpr();\n };\n ScreenDprMonitor.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this.clearListener();\n };\n ScreenDprMonitor.prototype._updateDpr = function () {\n if (this._resolutionMediaMatchList) {\n this._resolutionMediaMatchList.removeListener(this._outerListener);\n }\n this._currentDevicePixelRatio = window.devicePixelRatio;\n this._resolutionMediaMatchList = window.matchMedia(\"screen and (resolution: \" + window.devicePixelRatio + \"dppx)\");\n this._resolutionMediaMatchList.addListener(this._outerListener);\n };\n ScreenDprMonitor.prototype.clearListener = function () {\n if (!this._listener) {\n return;\n }\n this._resolutionMediaMatchList.removeListener(this._outerListener);\n this._listener = null;\n this._outerListener = null;\n };\n return ScreenDprMonitor;\n}(Lifecycle_1.Disposable));\nexports.ScreenDprMonitor = ScreenDprMonitor;\n//# sourceMappingURL=ScreenDprMonitor.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"../common/Lifecycle\");\nvar Lifecycle_2 = require(\"./Lifecycle\");\nvar HOVER_DURATION = 500;\nvar MouseZoneManager = (function (_super) {\n __extends(MouseZoneManager, _super);\n function MouseZoneManager(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._zones = [];\n _this._areZonesActive = false;\n _this._tooltipTimeout = null;\n _this._currentZone = null;\n _this._lastHoverCoords = [null, null];\n _this.register(Lifecycle_2.addDisposableDomListener(_this._terminal.element, 'mousedown', function (e) { return _this._onMouseDown(e); }));\n _this._mouseMoveListener = function (e) { return _this._onMouseMove(e); };\n _this._clickListener = function (e) { return _this._onClick(e); };\n return _this;\n }\n MouseZoneManager.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._deactivate();\n };\n MouseZoneManager.prototype.add = function (zone) {\n this._zones.push(zone);\n if (this._zones.length === 1) {\n this._activate();\n }\n };\n MouseZoneManager.prototype.clearAll = function (start, end) {\n if (this._zones.length === 0) {\n return;\n }\n if (!end) {\n start = 0;\n end = this._terminal.rows - 1;\n }\n for (var i = 0; i < this._zones.length; i++) {\n var zone = this._zones[i];\n if ((zone.y1 > start && zone.y1 <= end + 1) ||\n (zone.y2 > start && zone.y2 <= end + 1) ||\n (zone.y1 < start && zone.y2 > end + 1)) {\n if (this._currentZone && this._currentZone === zone) {\n this._currentZone.leaveCallback();\n this._currentZone = null;\n }\n this._zones.splice(i--, 1);\n }\n }\n if (this._zones.length === 0) {\n this._deactivate();\n }\n };\n MouseZoneManager.prototype._activate = function () {\n if (!this._areZonesActive) {\n this._areZonesActive = true;\n this._terminal.element.addEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.addEventListener('click', this._clickListener);\n }\n };\n MouseZoneManager.prototype._deactivate = function () {\n if (this._areZonesActive) {\n this._areZonesActive = false;\n this._terminal.element.removeEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.removeEventListener('click', this._clickListener);\n }\n };\n MouseZoneManager.prototype._onMouseMove = function (e) {\n if (this._lastHoverCoords[0] !== e.pageX || this._lastHoverCoords[1] !== e.pageY) {\n this._onHover(e);\n this._lastHoverCoords = [e.pageX, e.pageY];\n }\n };\n MouseZoneManager.prototype._onHover = function (e) {\n var _this = this;\n var zone = this._findZoneEventAt(e);\n if (zone === this._currentZone) {\n return;\n }\n if (this._currentZone) {\n this._currentZone.leaveCallback();\n this._currentZone = null;\n if (this._tooltipTimeout) {\n clearTimeout(this._tooltipTimeout);\n }\n }\n if (!zone) {\n return;\n }\n this._currentZone = zone;\n if (zone.hoverCallback) {\n zone.hoverCallback(e);\n }\n this._tooltipTimeout = setTimeout(function () { return _this._onTooltip(e); }, HOVER_DURATION);\n };\n MouseZoneManager.prototype._onTooltip = function (e) {\n this._tooltipTimeout = null;\n var zone = this._findZoneEventAt(e);\n if (zone && zone.tooltipCallback) {\n zone.tooltipCallback(e);\n }\n };\n MouseZoneManager.prototype._onMouseDown = function (e) {\n if (!this._areZonesActive) {\n return;\n }\n var zone = this._findZoneEventAt(e);\n if (zone) {\n if (zone.willLinkActivate(e)) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n }\n };\n MouseZoneManager.prototype._onClick = function (e) {\n var zone = this._findZoneEventAt(e);\n if (zone) {\n zone.clickCallback(e);\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n };\n MouseZoneManager.prototype._findZoneEventAt = function (e) {\n var coords = this._terminal.mouseHelper.getCoords(e, this._terminal.screenElement, this._terminal.charMeasure, this._terminal.options.lineHeight, this._terminal.cols, this._terminal.rows);\n if (!coords) {\n return null;\n }\n var x = coords[0];\n var y = coords[1];\n for (var i = 0; i < this._zones.length; i++) {\n var zone = this._zones[i];\n if (zone.y1 === zone.y2) {\n if (y === zone.y1 && x >= zone.x1 && x < zone.x2) {\n return zone;\n }\n }\n else {\n if ((y === zone.y1 && x >= zone.x1) ||\n (y === zone.y2 && x < zone.x2) ||\n (y > zone.y1 && y < zone.y2)) {\n return zone;\n }\n }\n }\n return null;\n };\n return MouseZoneManager;\n}(Lifecycle_1.Disposable));\nexports.MouseZoneManager = MouseZoneManager;\nvar MouseZone = (function () {\n function MouseZone(x1, y1, x2, y2, clickCallback, hoverCallback, tooltipCallback, leaveCallback, willLinkActivate) {\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.clickCallback = clickCallback;\n this.hoverCallback = hoverCallback;\n this.tooltipCallback = tooltipCallback;\n this.leaveCallback = leaveCallback;\n this.willLinkActivate = willLinkActivate;\n }\n return MouseZone;\n}());\nexports.MouseZone = MouseZone;\n//# sourceMappingURL=MouseZoneManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseHelper = (function () {\n function MouseHelper(_renderer) {\n this._renderer = _renderer;\n }\n MouseHelper.getCoordsRelativeToElement = function (event, element) {\n if (event.pageX == null) {\n return null;\n }\n var originalElement = element;\n var x = event.pageX;\n var y = event.pageY;\n while (element) {\n x -= element.offsetLeft;\n y -= element.offsetTop;\n element = element.offsetParent;\n }\n element = originalElement;\n while (element && element !== element.ownerDocument.body) {\n x += element.scrollLeft;\n y += element.scrollTop;\n element = element.parentElement;\n }\n return [x, y];\n };\n MouseHelper.prototype.getCoords = function (event, element, charMeasure, lineHeight, colCount, rowCount, isSelection) {\n if (!charMeasure.width || !charMeasure.height) {\n return null;\n }\n var coords = MouseHelper.getCoordsRelativeToElement(event, element);\n if (!coords) {\n return null;\n }\n coords[0] = Math.ceil((coords[0] + (isSelection ? this._renderer.dimensions.actualCellWidth / 2 : 0)) / this._renderer.dimensions.actualCellWidth);\n coords[1] = Math.ceil(coords[1] / this._renderer.dimensions.actualCellHeight);\n coords[0] = Math.min(Math.max(coords[0], 1), colCount + (isSelection ? 1 : 0));\n coords[1] = Math.min(Math.max(coords[1], 1), rowCount);\n return coords;\n };\n MouseHelper.prototype.getRawByteCoords = function (event, element, charMeasure, lineHeight, colCount, rowCount) {\n var coords = this.getCoords(event, element, charMeasure, lineHeight, colCount, rowCount);\n var x = coords[0];\n var y = coords[1];\n x += 32;\n y += 32;\n return { x: x, y: y };\n };\n return MouseHelper;\n}());\nexports.MouseHelper = MouseHelper;\n//# sourceMappingURL=MouseHelper.js.map","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { CompositeDisposable, TextEditor } from 'atom'\r\n\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\nimport { AtomXtermDeleteProfileModel } from './atom-xterm-delete-profile-model'\r\nimport { AtomXtermSaveProfileModel } from './atom-xterm-save-profile-model'\r\nimport { createHorizontalLine } from './atom-xterm-utils'\r\n\r\nclass AtomXtermProfileMenuElementImpl extends HTMLElement {\r\n initialize (model) {\r\n this.model = model\r\n this.model.setElement(this)\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n let topDiv = document.createElement('div')\r\n topDiv.classList.add('atom-xterm-profile-menu-element-top-div')\r\n this.appendChild(topDiv)\r\n let leftDiv = document.createElement('div')\r\n leftDiv.classList.add('atom-xterm-profile-menu-element-left-div')\r\n this.appendChild(leftDiv)\r\n this.mainDiv = document.createElement('div')\r\n this.mainDiv.classList.add('atom-xterm-profile-menu-element-main-div')\r\n this.appendChild(this.mainDiv)\r\n let rightDiv = document.createElement('div')\r\n rightDiv.classList.add('atom-xterm-profile-menu-element-right-div')\r\n this.appendChild(rightDiv)\r\n let bottomDiv = document.createElement('div')\r\n bottomDiv.classList.add('atom-xterm-profile-menu-element-bottom-div')\r\n this.appendChild(bottomDiv)\r\n this.disposables = new CompositeDisposable()\r\n this.initializedPromise = new Promise((resolve, reject) => {\r\n this.createProfilesDropDown().then((profilesDiv) => {\r\n let modelProfile = this.getModelProfile()\r\n let baseProfile = this.profilesSingleton.getBaseProfile()\r\n // Profiles\r\n this.mainDiv.appendChild(profilesDiv)\r\n\r\n // Buttons div\r\n this.mainDiv.appendChild(this.createProfileMenuButtons())\r\n\r\n // Horizontal line.\r\n this.mainDiv.appendChild(createHorizontalLine())\r\n\r\n // Command\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'command-textbox',\r\n 'Command',\r\n 'Command to run in the terminal.',\r\n baseProfile.command,\r\n modelProfile.command\r\n ))\r\n // Arguments\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'args-textbox',\r\n 'Arguments',\r\n 'Arguments to pass to command. This must be defined as a JSON list.',\r\n baseProfile.args,\r\n modelProfile.args\r\n ))\r\n // Terminal type\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'name-textbox',\r\n 'Terminal Type',\r\n 'The terminal type to use for the terminal. Note that this does nothing on Windows.',\r\n baseProfile.name,\r\n modelProfile.name\r\n ))\r\n // Current working directory.\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'cwd-textbox',\r\n 'Current Working Directory',\r\n 'The current working directory to set for the terminal process.',\r\n baseProfile.cwd,\r\n modelProfile.cwd\r\n ))\r\n // Environment\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'env-textbox',\r\n 'Environment',\r\n 'The environment to use for the terminal process. If not set, the current environment is used. This must be defined as a JSON object.',\r\n baseProfile.env,\r\n modelProfile.env\r\n ))\r\n // Environment overrides\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'setenv-textbox',\r\n 'Environment Overrides',\r\n 'A key/value mapping of environment variables to set/override from the environment. This must be defined as a JSON object.',\r\n baseProfile.setEnv,\r\n modelProfile.setEnv\r\n ))\r\n // Environment deletions\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'deleteenv-textbox',\r\n 'Environment Deletions',\r\n 'A list of environment variables to delete from the environment. This must be defined as a JSON list.',\r\n baseProfile.deleteEnv,\r\n modelProfile.deleteEnv\r\n ))\r\n // Encoding\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'encoding-textbox',\r\n 'Encoding',\r\n 'The encoding to use for the terminal.',\r\n baseProfile.encoding,\r\n modelProfile.encoding\r\n ))\r\n // Font size\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'fontsize-textbox',\r\n 'Font Size',\r\n 'The font size to use for the terminal.',\r\n baseProfile.fontSize,\r\n modelProfile.fontSize\r\n ))\r\n // Leave open after terminal exit\r\n this.mainDiv.appendChild(this.createCheckbox(\r\n 'leaveopenafterexit-checkbox',\r\n 'Leave Open After Exit',\r\n 'Whether to leave the terminal open after the terminal process has exited.',\r\n baseProfile.leaveOpenAfterExit,\r\n modelProfile.leaveOpenAfterExit\r\n ))\r\n // Relaunch terminal on startup.\r\n this.mainDiv.appendChild(this.createCheckbox(\r\n 'relaunchterminalonstartup-checkbox',\r\n 'Relaunch terminal on startup',\r\n 'Whether to relaunch the terminal after exiting the Atom editor.',\r\n baseProfile.relaunchTerminalOnStartup,\r\n modelProfile.relaunchTerminalOnStartup\r\n ))\r\n // Title\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'title-textbox',\r\n 'Title',\r\n 'The title to give to the terminal tab.',\r\n baseProfile.title,\r\n modelProfile.title\r\n ))\r\n // xterm.js Terminal options\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'xtermoptions-textbox',\r\n 'xterm.js Terminal Options',\r\n 'The xterm.js options to use for Terminal object (i.e to apply theme for example). This must be defined as a JSON object.',\r\n baseProfile.xtermOptions,\r\n modelProfile.xtermOptions\r\n ))\r\n // Prompt to startup terminal command\r\n this.mainDiv.appendChild(this.createCheckbox(\r\n 'prompttostartup-checkbox',\r\n 'Prompt to start command',\r\n 'Whether to prompt to start command in terminal on startup.',\r\n baseProfile.promptToStartup,\r\n modelProfile.promptToStartup\r\n ))\r\n\r\n this.deleteProfileModel = new AtomXtermDeleteProfileModel(this)\r\n this.saveProfileModel = new AtomXtermSaveProfileModel(this)\r\n\r\n this.disposables.add(this.profilesSingleton.onDidReloadProfiles((profiles) => {\r\n this.createProfilesDropDownSelectItem().then((select) => {\r\n let menuItemContainer = this.mainDiv.querySelector('#profiles-selection')\r\n while (menuItemContainer.firstChild) {\r\n menuItemContainer.removeChild(menuItemContainer.firstChild)\r\n }\r\n menuItemContainer.appendChild(select)\r\n })\r\n }))\r\n resolve()\r\n })\r\n })\r\n return this.initializedPromise\r\n }\r\n\r\n destroy () {\r\n if (this.disposables) {\r\n this.disposables.dispose()\r\n }\r\n }\r\n\r\n getModelProfile () {\r\n return this.model.atomXtermModel.profile\r\n }\r\n\r\n parseJson (value, defaultValue, type) {\r\n let retval = value\r\n try {\r\n retval = JSON.parse(retval)\r\n } catch (e) {\r\n if (!(e instanceof SyntaxError)) {\r\n throw e\r\n }\r\n retval = null\r\n }\r\n if (!retval || retval.constructor !== type) {\r\n retval = defaultValue\r\n }\r\n return retval\r\n }\r\n\r\n getMenuElements () {\r\n let menuElements = {}\r\n menuElements.commandElement = this.mainDiv.querySelector('#command-textbox atom-text-editor')\r\n menuElements.argsElement = this.mainDiv.querySelector('#args-textbox atom-text-editor')\r\n menuElements.nameElement = this.mainDiv.querySelector('#name-textbox atom-text-editor')\r\n menuElements.cwdElement = this.mainDiv.querySelector('#cwd-textbox atom-text-editor')\r\n menuElements.envElement = this.mainDiv.querySelector('#env-textbox atom-text-editor')\r\n menuElements.setEnvElement = this.mainDiv.querySelector('#setenv-textbox atom-text-editor')\r\n menuElements.deleteEnvElement = this.mainDiv.querySelector('#deleteenv-textbox atom-text-editor')\r\n menuElements.encodingElement = this.mainDiv.querySelector('#encoding-textbox atom-text-editor')\r\n menuElements.fontSizeElement = this.mainDiv.querySelector('#fontsize-textbox atom-text-editor')\r\n menuElements.leaveOpenAfterExitElement = this.mainDiv.querySelector('#leaveopenafterexit-checkbox .atom-xterm-profile-menu-item-checkbox')\r\n menuElements.relaunchTerminalOnStartupElement = this.mainDiv.querySelector('#relaunchterminalonstartup-checkbox .atom-xterm-profile-menu-item-checkbox')\r\n menuElements.titleElement = this.mainDiv.querySelector('#title-textbox atom-text-editor')\r\n menuElements.xtermOptionsElement = this.mainDiv.querySelector('#xtermoptions-textbox atom-text-editor')\r\n menuElements.promptToStartupElement = this.mainDiv.querySelector('#prompttostartup-checkbox .atom-xterm-profile-menu-item-checkbox')\r\n return menuElements\r\n }\r\n\r\n getProfileMenuSettings () {\r\n let newProfile = {}\r\n let baseProfile = this.profilesSingleton.getBaseProfile()\r\n let menuElements = this.getMenuElements()\r\n newProfile.command = menuElements.commandElement.getModel().getText() || baseProfile.command\r\n newProfile.args = this.parseJson(\r\n menuElements.argsElement.getModel().getText(),\r\n baseProfile.args,\r\n Array\r\n )\r\n newProfile.name = menuElements.nameElement.getModel().getText() || baseProfile.name\r\n newProfile.cwd = menuElements.cwdElement.getModel().getText() || baseProfile.cwd\r\n newProfile.env = this.parseJson(\r\n menuElements.envElement.getModel().getText(),\r\n baseProfile.env,\r\n Object\r\n )\r\n newProfile.setEnv = this.parseJson(\r\n menuElements.setEnvElement.getModel().getText(),\r\n baseProfile.setEnv,\r\n Object\r\n )\r\n newProfile.deleteEnv = this.parseJson(\r\n menuElements.deleteEnvElement.getModel().getText(),\r\n baseProfile.deleteEnv,\r\n Array\r\n )\r\n newProfile.encoding = menuElements.encodingElement.getModel().getText() || baseProfile.encoding\r\n newProfile.fontSize = this.parseJson(\r\n menuElements.fontSizeElement.getModel().getText(),\r\n baseProfile.fontSize,\r\n Number\r\n )\r\n newProfile.leaveOpenAfterExit = menuElements.leaveOpenAfterExitElement.checked\r\n newProfile.relaunchTerminalOnStartup = menuElements.relaunchTerminalOnStartupElement.checked\r\n newProfile.title = menuElements.titleElement.getModel().getText() || baseProfile.title\r\n newProfile.xtermOptions = this.parseJson(\r\n menuElements.xtermOptionsElement.getModel().getText(),\r\n baseProfile.xtermOptions,\r\n Object\r\n )\r\n newProfile.promptToStartup = menuElements.promptToStartupElement.checked\r\n return newProfile\r\n }\r\n\r\n applyProfileChanges (profileChanges) {\r\n this.hideProfileMenu()\r\n this.model.getAtomXtermModel().applyProfileChanges(profileChanges)\r\n }\r\n\r\n restartTerminal () {\r\n this.hideProfileMenu()\r\n this.model.getAtomXtermModelElement().restartPtyProcess()\r\n }\r\n\r\n createMenuItemContainer (id, labelTitle, labelDescription) {\r\n let menuItemContainer = document.createElement('div')\r\n menuItemContainer.classList.add('atom-xterm-profile-menu-item')\r\n menuItemContainer.setAttribute('id', id)\r\n let menuItemLabel = document.createElement('label')\r\n menuItemLabel.classList.add('atom-xterm-profile-menu-item-label')\r\n let titleDiv = document.createElement('div')\r\n titleDiv.classList.add('atom-xterm-profile-menu-item-title')\r\n titleDiv.appendChild(document.createTextNode(labelTitle))\r\n menuItemLabel.appendChild(titleDiv)\r\n let descriptionDiv = document.createElement('div')\r\n descriptionDiv.classList.add('atom-xterm-profile-menu-item-description')\r\n descriptionDiv.appendChild(document.createTextNode(labelDescription))\r\n menuItemLabel.appendChild(descriptionDiv)\r\n menuItemContainer.appendChild(menuItemLabel)\r\n return menuItemContainer\r\n }\r\n\r\n createProfilesDropDownSelectItem () {\r\n return new Promise((resolve, reject) => {\r\n this.profilesSingleton.getProfiles().then((profiles) => {\r\n let select = document.createElement('select')\r\n select.setAttribute('id', 'profiles-dropdown')\r\n select.classList.add('atom-xterm-profile-menu-item-select')\r\n let option = document.createElement('option')\r\n let text = document.createTextNode('')\r\n option.setAttribute('value', text)\r\n option.appendChild(text)\r\n select.appendChild(option)\r\n for (let profile in profiles) {\r\n option = document.createElement('option')\r\n text = document.createTextNode(profile)\r\n option.setAttribute('value', text.textContent)\r\n option.appendChild(text)\r\n select.appendChild(option)\r\n }\r\n select.addEventListener('change', (event) => {\r\n let profile = this.profilesSingleton.getBaseProfile()\r\n if (!event.target.value) {\r\n this.setNewMenuSettings(profile, true)\r\n } else {\r\n this.profilesSingleton.getProfile(event.target.value).then((profile) => {\r\n this.setNewMenuSettings(profile)\r\n })\r\n }\r\n })\r\n resolve(select)\r\n })\r\n })\r\n }\r\n\r\n createProfilesDropDown () {\r\n let menuItemContainer = this.createMenuItemContainer(\r\n 'profiles-selection',\r\n 'Profiles',\r\n 'Available profiles'\r\n )\r\n return new Promise((resolve, reject) => {\r\n this.createProfilesDropDownSelectItem().then((select) => {\r\n menuItemContainer.appendChild(select)\r\n resolve(menuItemContainer)\r\n })\r\n })\r\n }\r\n\r\n createProfileMenuButtons () {\r\n let buttonsContainer = document.createElement('div')\r\n buttonsContainer.classList.add('atom-xterm-profile-menu-buttons-div')\r\n let button = this.createButton()\r\n button.appendChild(document.createTextNode('Load Settings'))\r\n button.addEventListener('click', (event) => {\r\n this.loadProfile()\r\n })\r\n buttonsContainer.appendChild(button)\r\n button = this.createButton()\r\n button.appendChild(document.createTextNode('Save Settings'))\r\n button.addEventListener('click', (event) => {\r\n this.saveProfile()\r\n })\r\n buttonsContainer.appendChild(button)\r\n button = this.createButton()\r\n button.appendChild(document.createTextNode('Delete Settings'))\r\n button.addEventListener('click', (event) => {\r\n this.deleteProfile()\r\n })\r\n buttonsContainer.appendChild(button)\r\n button = this.createButton()\r\n button.appendChild(document.createTextNode('Restart'))\r\n button.addEventListener('click', (event) => {\r\n this.restartTerminal()\r\n })\r\n buttonsContainer.appendChild(button)\r\n button = this.createButton()\r\n button.appendChild(document.createTextNode('Hide Menu'))\r\n button.addEventListener('click', (event) => {\r\n this.hideProfileMenu()\r\n })\r\n buttonsContainer.appendChild(button)\r\n return buttonsContainer\r\n }\r\n\r\n createButton () {\r\n let button = document.createElement('button')\r\n button.classList.add('atom-xterm-profile-menu-button')\r\n return button\r\n }\r\n\r\n createTextbox (id, labelTitle, labelDescription, defaultValue, initialValue) {\r\n let menuItemContainer = this.createMenuItemContainer(\r\n id,\r\n labelTitle,\r\n labelDescription\r\n )\r\n let textbox = new TextEditor({\r\n mini: true,\r\n placeholderText: defaultValue\r\n })\r\n if (initialValue) {\r\n if (initialValue.constructor === Array || initialValue.constructor === Object) {\r\n textbox.setText(JSON.stringify(initialValue))\r\n } else {\r\n textbox.setText(initialValue)\r\n }\r\n }\r\n menuItemContainer.appendChild(textbox.getElement())\r\n return menuItemContainer\r\n }\r\n\r\n createCheckbox (id, labelTitle, labelDescription, defaultValue, initialValue) {\r\n let menuItemContainer = document.createElement('div')\r\n menuItemContainer.classList.add('atom-xterm-profile-menu-item')\r\n menuItemContainer.setAttribute('id', id)\r\n let menuItemLabel = document.createElement('label')\r\n menuItemLabel.classList.add('atom-xterm-profile-menu-item-label')\r\n menuItemLabel.classList.add('atom-xterm-profile-menu-item-label-checkbox')\r\n let checkbox = document.createElement('input')\r\n checkbox.setAttribute('type', 'checkbox')\r\n checkbox.classList.add('atom-xterm-profile-menu-item-checkbox')\r\n checkbox.checked = defaultValue\r\n if (initialValue !== undefined) {\r\n checkbox.checked = initialValue\r\n }\r\n menuItemLabel.appendChild(checkbox)\r\n let titleDiv = document.createElement('div')\r\n titleDiv.classList.add('atom-xterm-profile-menu-item-title')\r\n titleDiv.appendChild(document.createTextNode(labelTitle))\r\n menuItemLabel.appendChild(titleDiv)\r\n menuItemContainer.appendChild(menuItemLabel)\r\n let descriptionDiv = document.createElement('div')\r\n descriptionDiv.classList.add('atom-xterm-profile-menu-item-description')\r\n descriptionDiv.classList.add('atom-xterm-profile-menu-item-description-checkbox')\r\n descriptionDiv.appendChild(document.createTextNode(labelDescription))\r\n menuItemContainer.appendChild(descriptionDiv)\r\n return menuItemContainer\r\n }\r\n\r\n isVisible () {\r\n let style = window.getComputedStyle(this, null)\r\n return (style.visibility === 'visible')\r\n }\r\n\r\n hideProfileMenu () {\r\n this.style.visibility = 'hidden'\r\n let e = this.model.getAtomXtermModelElement()\r\n e.showTerminal()\r\n e.focusOnTerminal()\r\n }\r\n\r\n showProfileMenu () {\r\n this.model.getAtomXtermModelElement().hideTerminal()\r\n this.style.visibility = 'visible'\r\n }\r\n\r\n toggleProfileMenu () {\r\n if (!this.isVisible()) {\r\n this.showProfileMenu()\r\n } else {\r\n this.hideProfileMenu()\r\n }\r\n }\r\n\r\n getNewProfileAndChanges () {\r\n let newProfile = this.getProfileMenuSettings()\r\n let profileChanges = this.profilesSingleton.diffProfiles(\r\n this.model.getAtomXtermModel().getProfile(),\r\n newProfile\r\n )\r\n return {\r\n newProfile: newProfile,\r\n profileChanges: profileChanges\r\n }\r\n }\r\n\r\n loadProfile () {\r\n let newProfileAndChanges = this.getNewProfileAndChanges()\r\n this.applyProfileChanges(newProfileAndChanges.profileChanges)\r\n }\r\n\r\n saveProfile () {\r\n // Get the current profile settings before entering the promise.\r\n let newProfileAndChanges = this.getNewProfileAndChanges()\r\n this.promptForNewProfileName(\r\n newProfileAndChanges.newProfile,\r\n newProfileAndChanges.profileChanges\r\n )\r\n }\r\n\r\n deleteProfile () {\r\n let e = this.mainDiv.querySelector('#profiles-dropdown')\r\n let profileName = e.options[e.selectedIndex].text\r\n if (!profileName) {\r\n atom.notifications.addWarning('Profile must be selected in order to delete it.')\r\n return\r\n }\r\n this.promptDelete(profileName)\r\n }\r\n\r\n promptDelete (newProfile) {\r\n return new Promise((resolve, reject) => {\r\n this.deleteProfileModel.promptDelete(newProfile)\r\n })\r\n }\r\n\r\n promptForNewProfileName (newProfile, profileChanges) {\r\n return new Promise((resolve, reject) => {\r\n this.saveProfileModel.promptForNewProfileName(newProfile, profileChanges)\r\n })\r\n }\r\n\r\n convertNullToEmptyString (value) {\r\n if (value === null) {\r\n return ''\r\n }\r\n return JSON.stringify(value)\r\n }\r\n\r\n setNewMenuSettings (profile, clear = false) {\r\n let newTextList = []\r\n let value\r\n newTextList.push(\r\n // Command\r\n {\r\n 'id': 'command-textbox',\r\n 'value': profile.command\r\n }\r\n )\r\n value = JSON.stringify(profile.args)\r\n newTextList.push(\r\n // Arguments\r\n {\r\n 'id': 'args-textbox',\r\n 'value': value\r\n }\r\n )\r\n newTextList.push(\r\n // Terminal type\r\n {\r\n 'id': 'name-textbox',\r\n 'value': profile.name\r\n }\r\n )\r\n newTextList.push(\r\n // Current working directory\r\n {\r\n 'id': 'cwd-textbox',\r\n 'value': profile.cwd\r\n }\r\n )\r\n value = this.convertNullToEmptyString(profile.env)\r\n newTextList.push(\r\n // Environment\r\n {\r\n 'id': 'env-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = JSON.stringify(profile.setEnv)\r\n newTextList.push(\r\n // Environment overrides\r\n {\r\n 'id': 'setenv-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = JSON.stringify(profile.deleteEnv)\r\n newTextList.push(\r\n // Environment deletions\r\n {\r\n 'id': 'deleteenv-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = this.convertNullToEmptyString(profile.encoding)\r\n newTextList.push(\r\n // Encoding\r\n {\r\n 'id': 'encoding-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = profile.fontSize\r\n newTextList.push(\r\n // Font size\r\n {\r\n 'id': 'fontsize-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = profile.title || ''\r\n newTextList.push(\r\n // Title\r\n {\r\n 'id': 'title-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = JSON.stringify(profile.xtermOptions)\r\n newTextList.push(\r\n // xterm.js Terminal options\r\n {\r\n 'id': 'xtermoptions-textbox',\r\n 'value': value\r\n }\r\n )\r\n for (let newText of newTextList) {\r\n let selector = '#' + newText.id + ' > atom-text-editor'\r\n let model = this.querySelector(selector).getModel()\r\n if (!clear) {\r\n model.setText(newText.value)\r\n } else {\r\n model.setText('')\r\n }\r\n }\r\n\r\n let newCheckboxList = [\r\n // Leave open after terminal exit\r\n {\r\n 'id': 'leaveopenafterexit-checkbox',\r\n 'value': profile.leaveOpenAfterExit\r\n },\r\n // Relaunch terminal on startup\r\n {\r\n 'id': 'relaunchterminalonstartup-checkbox',\r\n 'value': profile.relaunchTerminalOnStartup\r\n },\r\n // Prompt to startup terminal command\r\n {\r\n 'id': 'prompttostartup-checkbox',\r\n 'value': profile.promptToStartup\r\n }\r\n ]\r\n for (let newCheckbox of newCheckboxList) {\r\n let selector = '#' + newCheckbox.id + ' input'\r\n let checkbox = this.querySelector(selector)\r\n checkbox.checked = newCheckbox.value\r\n }\r\n }\r\n}\r\n\r\nconst AtomXtermProfileMenuElement = document.registerElement('atom-xterm-profile', {\r\n prototype: AtomXtermProfileMenuElementImpl.prototype\r\n})\r\n\r\nexport {\r\n AtomXtermProfileMenuElement\r\n}\r\n","'use strict'\n// This is adapted from https://github.com/normalize/mz\n// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors\nconst u = require('universalify').fromCallback\nconst fs = require('graceful-fs')\n\nconst api = [\n 'access',\n 'appendFile',\n 'chmod',\n 'chown',\n 'close',\n 'copyFile',\n 'fchmod',\n 'fchown',\n 'fdatasync',\n 'fstat',\n 'fsync',\n 'ftruncate',\n 'futimes',\n 'lchown',\n 'lchmod',\n 'link',\n 'lstat',\n 'mkdir',\n 'mkdtemp',\n 'open',\n 'readFile',\n 'readdir',\n 'readlink',\n 'realpath',\n 'rename',\n 'rmdir',\n 'stat',\n 'symlink',\n 'truncate',\n 'unlink',\n 'utimes',\n 'writeFile'\n].filter(key => {\n // Some commands are not available on some systems. Ex:\n // fs.copyFile was added in Node.js v8.5.0\n // fs.mkdtemp was added in Node.js v5.10.0\n // fs.lchown is not available on at least some Linux\n return typeof fs[key] === 'function'\n})\n\n// Export all keys:\nObject.keys(fs).forEach(key => {\n if (key === 'promises') {\n // fs.promises is a getter property that triggers ExperimentalWarning\n // Don't re-export it here, the getter is defined in \"lib/index.js\"\n return\n }\n exports[key] = fs[key]\n})\n\n// Universalify async methods:\napi.forEach(method => {\n exports[method] = u(fs[method])\n})\n\n// We differ from mz/fs in that we still ship the old, broken, fs.exists()\n// since we are a drop-in replacement for the native module\nexports.exists = function (filename, callback) {\n if (typeof callback === 'function') {\n return fs.exists(filename, callback)\n }\n return new Promise(resolve => {\n return fs.exists(filename, resolve)\n })\n}\n\n// fs.read() & fs.write need special treatment due to multiple callback args\n\nexports.read = function (fd, buffer, offset, length, position, callback) {\n if (typeof callback === 'function') {\n return fs.read(fd, buffer, offset, length, position, callback)\n }\n return new Promise((resolve, reject) => {\n fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => {\n if (err) return reject(err)\n resolve({ bytesRead, buffer })\n })\n })\n}\n\n// Function signature can be\n// fs.write(fd, buffer[, offset[, length[, position]]], callback)\n// OR\n// fs.write(fd, string[, position[, encoding]], callback)\n// We need to handle both cases, so we use ...args\nexports.write = function (fd, buffer, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.write(fd, buffer, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => {\n if (err) return reject(err)\n resolve({ bytesWritten, buffer })\n })\n })\n}\n","'use strict'\n\nvar fs = require('fs')\n\nmodule.exports = clone(fs)\n\nfunction clone (obj) {\n if (obj === null || typeof obj !== 'object')\n return obj\n\n if (obj instanceof Object)\n var copy = { __proto__: obj.__proto__ }\n else\n var copy = Object.create(null)\n\n Object.getOwnPropertyNames(obj).forEach(function (key) {\n Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))\n })\n\n return copy\n}\n","module.exports = require(\"assert\");","'use strict'\n\nmodule.exports = {\n copySync: require('./copy-sync')\n}\n","'use strict'\n\nconst path = require('path')\n\n// get drive on windows\nfunction getRootPath (p) {\n p = path.normalize(path.resolve(p)).split(path.sep)\n if (p.length > 0) return p[0]\n return null\n}\n\n// http://stackoverflow.com/a/62888/10333 contains more accurate\n// TODO: expand to include the rest\nconst INVALID_PATH_CHARS = /[<>:\"|?*]/\n\nfunction invalidWin32Path (p) {\n const rp = getRootPath(p)\n p = p.replace(rp, '')\n return INVALID_PATH_CHARS.test(p)\n}\n\nmodule.exports = {\n getRootPath,\n invalidWin32Path\n}\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst os = require('os')\nconst path = require('path')\n\n// HFS, ext{2,3}, FAT do not, Node.js v0.10 does not\nfunction hasMillisResSync () {\n let tmpfile = path.join('millis-test-sync' + Date.now().toString() + Math.random().toString().slice(2))\n tmpfile = path.join(os.tmpdir(), tmpfile)\n\n // 550 millis past UNIX epoch\n const d = new Date(1435410243862)\n fs.writeFileSync(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141')\n const fd = fs.openSync(tmpfile, 'r+')\n fs.futimesSync(fd, d, d)\n fs.closeSync(fd)\n return fs.statSync(tmpfile).mtime > 1435410243000\n}\n\nfunction hasMillisRes (callback) {\n let tmpfile = path.join('millis-test' + Date.now().toString() + Math.random().toString().slice(2))\n tmpfile = path.join(os.tmpdir(), tmpfile)\n\n // 550 millis past UNIX epoch\n const d = new Date(1435410243862)\n fs.writeFile(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141', err => {\n if (err) return callback(err)\n fs.open(tmpfile, 'r+', (err, fd) => {\n if (err) return callback(err)\n fs.futimes(fd, d, d, err => {\n if (err) return callback(err)\n fs.close(fd, err => {\n if (err) return callback(err)\n fs.stat(tmpfile, (err, stats) => {\n if (err) return callback(err)\n callback(null, stats.mtime > 1435410243000)\n })\n })\n })\n })\n })\n}\n\nfunction timeRemoveMillis (timestamp) {\n if (typeof timestamp === 'number') {\n return Math.floor(timestamp / 1000) * 1000\n } else if (timestamp instanceof Date) {\n return new Date(Math.floor(timestamp.getTime() / 1000) * 1000)\n } else {\n throw new Error('fs-extra: timeRemoveMillis() unknown parameter type')\n }\n}\n\nfunction utimesMillis (path, atime, mtime, callback) {\n // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)\n fs.open(path, 'r+', (err, fd) => {\n if (err) return callback(err)\n fs.futimes(fd, atime, mtime, futimesErr => {\n fs.close(fd, closeErr => {\n if (callback) callback(futimesErr || closeErr)\n })\n })\n })\n}\n\nfunction utimesMillisSync (path, atime, mtime) {\n const fd = fs.openSync(path, 'r+')\n fs.futimesSync(fd, atime, mtime)\n return fs.closeSync(fd)\n}\n\nmodule.exports = {\n hasMillisRes,\n hasMillisResSync,\n timeRemoveMillis,\n utimesMillis,\n utimesMillisSync\n}\n","'use strict'\n/* eslint-disable node/no-deprecated-api */\nmodule.exports = function (size) {\n if (typeof Buffer.allocUnsafe === 'function') {\n try {\n return Buffer.allocUnsafe(size)\n } catch (e) {\n return new Buffer(size)\n }\n }\n return new Buffer(size)\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nmodule.exports = {\n copy: u(require('./copy'))\n}\n","\"use strict\";\n\nfunction _(message, opts) {\n return `${opts && opts.context ? opts.context : \"Value\"} ${message}.`;\n}\n\nfunction type(V) {\n if (V === null) {\n return \"Null\";\n }\n switch (typeof V) {\n case \"undefined\":\n return \"Undefined\";\n case \"boolean\":\n return \"Boolean\";\n case \"number\":\n return \"Number\";\n case \"string\":\n return \"String\";\n case \"symbol\":\n return \"Symbol\";\n case \"object\":\n // Falls through\n case \"function\":\n // Falls through\n default:\n // Per ES spec, typeof returns an implemention-defined value that is not any of the existing ones for\n // uncallable non-standard exotic objects. Yet Type() which the Web IDL spec depends on returns Object for\n // such cases. So treat the default case as an object.\n return \"Object\";\n }\n}\n\n// Round x to the nearest integer, choosing the even integer if it lies halfway between two.\nfunction evenRound(x) {\n // There are four cases for numbers with fractional part being .5:\n //\n // case | x | floor(x) | round(x) | expected | x <> 0 | x % 1 | x & 1 | example\n // 1 | 2n + 0.5 | 2n | 2n + 1 | 2n | > | 0.5 | 0 | 0.5 -> 0\n // 2 | 2n + 1.5 | 2n + 1 | 2n + 2 | 2n + 2 | > | 0.5 | 1 | 1.5 -> 2\n // 3 | -2n - 0.5 | -2n - 1 | -2n | -2n | < | -0.5 | 0 | -0.5 -> 0\n // 4 | -2n - 1.5 | -2n - 2 | -2n - 1 | -2n - 2 | < | -0.5 | 1 | -1.5 -> -2\n // (where n is a non-negative integer)\n //\n // Branch here for cases 1 and 4\n if ((x > 0 && (x % 1) === +0.5 && (x & 1) === 0) ||\n (x < 0 && (x % 1) === -0.5 && (x & 1) === 1)) {\n return censorNegativeZero(Math.floor(x));\n }\n\n return censorNegativeZero(Math.round(x));\n}\n\nfunction integerPart(n) {\n return censorNegativeZero(Math.trunc(n));\n}\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction modulo(x, y) {\n // https://tc39.github.io/ecma262/#eqn-modulo\n // Note that http://stackoverflow.com/a/4467559/3191 does NOT work for large modulos\n const signMightNotMatch = x % y;\n if (sign(y) !== sign(signMightNotMatch)) {\n return signMightNotMatch + y;\n }\n return signMightNotMatch;\n}\n\nfunction censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n}\n\nfunction createIntegerConversion(bitLength, typeOpts) {\n const isSigned = !typeOpts.unsigned;\n\n let lowerBound;\n let upperBound;\n if (bitLength === 64) {\n upperBound = Math.pow(2, 53) - 1;\n lowerBound = !isSigned ? 0 : -Math.pow(2, 53) + 1;\n } else if (!isSigned) {\n lowerBound = 0;\n upperBound = Math.pow(2, bitLength) - 1;\n } else {\n lowerBound = -Math.pow(2, bitLength - 1);\n upperBound = Math.pow(2, bitLength - 1) - 1;\n }\n\n const twoToTheBitLength = Math.pow(2, bitLength);\n const twoToOneLessThanTheBitLength = Math.pow(2, bitLength - 1);\n\n return (V, opts) => {\n if (opts === undefined) {\n opts = {};\n }\n\n let x = +V;\n x = censorNegativeZero(x); // Spec discussion ongoing: https://github.com/heycam/webidl/issues/306\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite number\", opts));\n }\n\n x = integerPart(x);\n\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(_(\n `is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`, opts));\n }\n\n return x;\n }\n\n if (!Number.isNaN(x) && opts.clamp) {\n x = Math.min(Math.max(x, lowerBound), upperBound);\n x = evenRound(x);\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n x = integerPart(x);\n\n // Math.pow(2, 64) is not accurately representable in JavaScript, so try to avoid these per-spec operations if\n // possible. Hopefully it's an optimization for the non-64-bitLength cases too.\n if (x >= lowerBound && x <= upperBound) {\n return x;\n }\n\n // These will not work great for bitLength of 64, but oh well. See the README for more details.\n x = modulo(x, twoToTheBitLength);\n if (isSigned && x >= twoToOneLessThanTheBitLength) {\n return x - twoToTheBitLength;\n }\n return x;\n };\n}\n\nexports.any = V => {\n return V;\n};\n\nexports.void = function () {\n return undefined;\n};\n\nexports.boolean = function (val) {\n return !!val;\n};\n\nexports.byte = createIntegerConversion(8, { unsigned: false });\nexports.octet = createIntegerConversion(8, { unsigned: true });\n\nexports.short = createIntegerConversion(16, { unsigned: false });\nexports[\"unsigned short\"] = createIntegerConversion(16, { unsigned: true });\n\nexports.long = createIntegerConversion(32, { unsigned: false });\nexports[\"unsigned long\"] = createIntegerConversion(32, { unsigned: true });\n\nexports[\"long long\"] = createIntegerConversion(64, { unsigned: false });\nexports[\"unsigned long long\"] = createIntegerConversion(64, { unsigned: true });\n\nexports.double = (V, opts) => {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite floating-point value\", opts));\n }\n\n return x;\n};\n\nexports[\"unrestricted double\"] = V => {\n const x = +V;\n\n return x;\n};\n\nexports.float = (V, opts) => {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite floating-point value\", opts));\n }\n\n if (Object.is(x, -0)) {\n return x;\n }\n\n const y = Math.fround(x);\n\n if (!Number.isFinite(y)) {\n throw new TypeError(_(\"is outside the range of a single-precision floating-point value\", opts));\n }\n\n return y;\n};\n\nexports[\"unrestricted float\"] = V => {\n const x = +V;\n\n if (isNaN(x)) {\n return x;\n }\n\n if (Object.is(x, -0)) {\n return x;\n }\n\n return Math.fround(x);\n};\n\nexports.DOMString = function (V, opts) {\n if (opts === undefined) {\n opts = {};\n }\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n if (typeof V === \"symbol\") {\n throw new TypeError(_(\"is a symbol, which cannot be converted to a string\", opts));\n }\n\n return String(V);\n};\n\nexports.ByteString = (V, opts) => {\n const x = exports.DOMString(V, opts);\n let c;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(_(\"is not a valid ByteString\", opts));\n }\n }\n\n return x;\n};\n\nexports.USVString = (V, opts) => {\n const S = exports.DOMString(V, opts);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + ((2 << 9) * a) + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n\n return U.join(\"\");\n};\n\nexports.object = (V, opts) => {\n if (type(V) !== \"Object\") {\n throw new TypeError(_(\"is not an object\", opts));\n }\n\n return V;\n};\n\n// Not exported, but used in Function and VoidFunction.\n\n// Neither Function nor VoidFunction is defined with [TreatNonObjectAsNull], so\n// handling for that is omitted.\nfunction convertCallbackFunction(V, opts) {\n if (typeof V !== \"function\") {\n throw new TypeError(_(\"is not a function\", opts));\n }\n return V;\n}\n\n[\n Error,\n ArrayBuffer, // The IsDetachedBuffer abstract operation is not exposed in JS\n DataView, Int8Array, Int16Array, Int32Array, Uint8Array,\n Uint16Array, Uint32Array, Uint8ClampedArray, Float32Array, Float64Array\n].forEach(func => {\n const name = func.name;\n const article = /^[AEIOU]/.test(name) ? \"an\" : \"a\";\n exports[name] = (V, opts) => {\n if (!(V instanceof func)) {\n throw new TypeError(_(`is not ${article} ${name} object`, opts));\n }\n\n return V;\n };\n});\n\n// Common definitions\n\nexports.ArrayBufferView = (V, opts) => {\n if (!ArrayBuffer.isView(V)) {\n throw new TypeError(_(\"is not a view on an ArrayBuffer object\", opts));\n }\n\n return V;\n};\n\nexports.BufferSource = (V, opts) => {\n if (!(ArrayBuffer.isView(V) || V instanceof ArrayBuffer)) {\n throw new TypeError(_(\"is not an ArrayBuffer object or a view on one\", opts));\n }\n\n return V;\n};\n\nexports.DOMTimeStamp = exports[\"unsigned long long\"];\n\nexports.Function = convertCallbackFunction;\n\nexports.VoidFunction = convertCallbackFunction;\n","\"use strict\";\n\n// Returns \"Type(value) is Object\" in ES terminology.\nfunction isObject(value) {\n return typeof value === \"object\" && value !== null || typeof value === \"function\";\n}\n\nfunction getReferenceToBytes(bufferSource) {\n // Node.js' Buffer does not allow subclassing for now, so we can get away with a prototype object check for perf.\n if (Object.getPrototypeOf(bufferSource) === Buffer.prototype) {\n return bufferSource;\n }\n if (bufferSource instanceof ArrayBuffer) {\n return Buffer.from(bufferSource);\n }\n return Buffer.from(bufferSource.buffer, bufferSource.byteOffset, bufferSource.byteLength);\n}\n\nfunction getCopyToBytes(bufferSource) {\n return Buffer.from(getReferenceToBytes(bufferSource));\n}\n\nfunction mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n if (keys[i] in target) {\n continue;\n }\n\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n}\n\nconst wrapperSymbol = Symbol(\"wrapper\");\nconst implSymbol = Symbol(\"impl\");\nconst sameObjectCaches = Symbol(\"SameObject caches\");\n\nfunction getSameObject(wrapper, prop, creator) {\n if (!wrapper[sameObjectCaches]) {\n wrapper[sameObjectCaches] = Object.create(null);\n }\n\n if (prop in wrapper[sameObjectCaches]) {\n return wrapper[sameObjectCaches][prop];\n }\n\n wrapper[sameObjectCaches][prop] = creator();\n return wrapper[sameObjectCaches][prop];\n}\n\nfunction wrapperForImpl(impl) {\n return impl ? impl[wrapperSymbol] : null;\n}\n\nfunction implForWrapper(wrapper) {\n return wrapper ? wrapper[implSymbol] : null;\n}\n\nfunction tryWrapperForImpl(impl) {\n const wrapper = wrapperForImpl(impl);\n return wrapper ? wrapper : impl;\n}\n\nfunction tryImplForWrapper(wrapper) {\n const impl = implForWrapper(wrapper);\n return impl ? impl : wrapper;\n}\n\nconst iterInternalSymbol = Symbol(\"internal\");\nconst IteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));\n\nfunction isArrayIndexPropName(P) {\n if (typeof P !== \"string\") {\n return false;\n }\n const i = P >>> 0;\n if (i === Math.pow(2, 32) - 1) {\n return false;\n }\n const s = `${i}`;\n if (P !== s) {\n return false;\n }\n return true;\n}\n\nconst supportsPropertyIndex = Symbol(\"supports property index\");\nconst supportedPropertyIndices = Symbol(\"supported property indices\");\nconst supportsPropertyName = Symbol(\"supports property name\");\nconst supportedPropertyNames = Symbol(\"supported property names\");\nconst indexedGet = Symbol(\"indexed property get\");\nconst indexedSetNew = Symbol(\"indexed property set new\");\nconst indexedSetExisting = Symbol(\"indexed property set existing\");\nconst namedGet = Symbol(\"named property get\");\nconst namedSetNew = Symbol(\"named property set new\");\nconst namedSetExisting = Symbol(\"named property set existing\");\nconst namedDelete = Symbol(\"named property delete\");\n\nmodule.exports = exports = {\n isObject,\n getReferenceToBytes,\n getCopyToBytes,\n mixin,\n wrapperSymbol,\n implSymbol,\n getSameObject,\n wrapperForImpl,\n implForWrapper,\n tryWrapperForImpl,\n tryImplForWrapper,\n iterInternalSymbol,\n IteratorPrototype,\n isArrayIndexPropName,\n supportsPropertyIndex,\n supportedPropertyIndices,\n supportsPropertyName,\n supportedPropertyNames,\n indexedGet,\n indexedSetNew,\n indexedSetExisting,\n namedGet,\n namedSetNew,\n namedSetExisting,\n namedDelete\n};\n","module.exports = require(\"punycode\");","\"use strict\";\n\nfunction isASCIIDigit(c) {\n return c >= 0x30 && c <= 0x39;\n}\n\nfunction isASCIIAlpha(c) {\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\n}\n\nfunction isASCIIAlphanumeric(c) {\n return isASCIIAlpha(c) || isASCIIDigit(c);\n}\n\nfunction isASCIIHex(c) {\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\n}\n\nmodule.exports = {\n isASCIIDigit,\n isASCIIAlpha,\n isASCIIAlphanumeric,\n isASCIIHex\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\n\nconst impl = utils.implSymbol;\n\nconst IteratorPrototype = Object.create(utils.IteratorPrototype, {\n next: {\n value: function next() {\n const internal = this[utils.iterInternalSymbol];\n const { target, kind, index } = internal;\n const values = Array.from(target[impl]);\n const len = values.length;\n if (index >= len) {\n return { value: undefined, done: true };\n }\n\n const pair = values[index];\n internal.index = index + 1;\n const [key, value] = pair.map(utils.tryWrapperForImpl);\n\n let result;\n switch (kind) {\n case \"key\":\n result = key;\n break;\n case \"value\":\n result = value;\n break;\n case \"key+value\":\n result = [key, value];\n break;\n }\n return { value: result, done: false };\n },\n writable: true,\n enumerable: true,\n configurable: true\n },\n [Symbol.toStringTag]: {\n value: \"URLSearchParamsIterator\",\n writable: false,\n enumerable: false,\n configurable: true\n }\n});\n\nfunction URLSearchParams() {\n const args = [];\n for (let i = 0; i < arguments.length && i < 1; ++i) {\n args[i] = arguments[i];\n }\n\n if (args[0] !== undefined) {\n if (utils.isObject(args[0])) {\n if (args[0][Symbol.iterator] !== undefined) {\n if (!utils.isObject(args[0])) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1\" + \" sequence\" + \" is not an iterable object.\"\n );\n } else {\n const V = [];\n const tmp = args[0];\n for (let nextItem of tmp) {\n if (!utils.isObject(nextItem)) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1\" +\n \" sequence\" +\n \"'s element\" +\n \" is not an iterable object.\"\n );\n } else {\n const V = [];\n const tmp = nextItem;\n for (let nextItem of tmp) {\n nextItem = conversions[\"USVString\"](nextItem, {\n context:\n \"Failed to construct 'URLSearchParams': parameter 1\" + \" sequence\" + \"'s element\" + \"'s element\"\n });\n\n V.push(nextItem);\n }\n nextItem = V;\n }\n\n V.push(nextItem);\n }\n args[0] = V;\n }\n } else {\n if (!utils.isObject(args[0])) {\n throw new TypeError(\"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \" is not an object.\");\n } else {\n const result = Object.create(null);\n for (const key of Reflect.ownKeys(args[0])) {\n const desc = Object.getOwnPropertyDescriptor(args[0], key);\n if (desc && desc.enumerable) {\n let typedKey = key;\n let typedValue = args[0][key];\n\n typedKey = conversions[\"USVString\"](typedKey, {\n context: \"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \"'s key\"\n });\n\n typedValue = conversions[\"USVString\"](typedValue, {\n context: \"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \"'s value\"\n });\n\n result[typedKey] = typedValue;\n }\n }\n args[0] = result;\n }\n }\n } else {\n args[0] = conversions[\"USVString\"](args[0], { context: \"Failed to construct 'URLSearchParams': parameter 1\" });\n }\n } else {\n args[0] = \"\";\n }\n\n iface.setup(this, args);\n}\n\nObject.defineProperty(URLSearchParams, \"prototype\", {\n value: URLSearchParams.prototype,\n writable: false,\n enumerable: false,\n configurable: false\n});\n\nObject.defineProperty(URLSearchParams.prototype, Symbol.iterator, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: function entries() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"key+value\");\n }\n});\nURLSearchParams.prototype.forEach = function forEach(callback) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'URLSearchParams': 1 argument required, \" + \"but only 0 present.\"\n );\n }\n if (typeof callback !== \"function\") {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'URLSearchParams': The callback provided \" + \"as parameter 1 is not a function.\"\n );\n }\n const thisArg = arguments[1];\n let pairs = Array.from(this[impl]);\n let i = 0;\n while (i < pairs.length) {\n const [key, value] = pairs[i].map(utils.tryWrapperForImpl);\n callback.call(thisArg, value, key, this);\n pairs = Array.from(this[impl]);\n i++;\n }\n};\nURLSearchParams.prototype.append = function append(name, value) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n \"Failed to execute 'append' on 'URLSearchParams': 2 \" +\n \"arguments required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], {\n context: \"Failed to execute 'append' on 'URLSearchParams': parameter 1\"\n });\n\n args[1] = conversions[\"USVString\"](args[1], {\n context: \"Failed to execute 'append' on 'URLSearchParams': parameter 2\"\n });\n\n return this[impl].append(...args);\n};\n\nURLSearchParams.prototype.delete = function _(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'delete' on 'URLSearchParams': 1 \" +\n \"argument required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 1; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], {\n context: \"Failed to execute 'delete' on 'URLSearchParams': parameter 1\"\n });\n\n return this[impl].delete(...args);\n};\n\nURLSearchParams.prototype.get = function get(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'get' on 'URLSearchParams': 1 \" +\n \"argument required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 1; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], { context: \"Failed to execute 'get' on 'URLSearchParams': parameter 1\" });\n\n return this[impl].get(...args);\n};\n\nURLSearchParams.prototype.getAll = function getAll(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'getAll' on 'URLSearchParams': 1 \" +\n \"argument required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 1; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], {\n context: \"Failed to execute 'getAll' on 'URLSearchParams': parameter 1\"\n });\n\n return utils.tryWrapperForImpl(this[impl].getAll(...args));\n};\n\nURLSearchParams.prototype.has = function has(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'has' on 'URLSearchParams': 1 \" +\n \"argument required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 1; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], { context: \"Failed to execute 'has' on 'URLSearchParams': parameter 1\" });\n\n return this[impl].has(...args);\n};\n\nURLSearchParams.prototype.set = function set(name, value) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n \"Failed to execute 'set' on 'URLSearchParams': 2 \" +\n \"arguments required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], { context: \"Failed to execute 'set' on 'URLSearchParams': parameter 1\" });\n\n args[1] = conversions[\"USVString\"](args[1], { context: \"Failed to execute 'set' on 'URLSearchParams': parameter 2\" });\n\n return this[impl].set(...args);\n};\n\nURLSearchParams.prototype.sort = function sort() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].sort();\n};\n\nURLSearchParams.prototype.toString = function toString() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].toString();\n};\n\nURLSearchParams.prototype.entries = URLSearchParams.prototype[Symbol.iterator];\n\nURLSearchParams.prototype.keys = function keys() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"key\");\n};\n\nURLSearchParams.prototype.values = function values() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"value\");\n};\n\nObject.defineProperty(URLSearchParams.prototype, Symbol.toStringTag, {\n value: \"URLSearchParams\",\n writable: false,\n enumerable: false,\n configurable: true\n});\n\nconst iface = {\n mixedInto: [],\n is(obj) {\n if (obj) {\n if (obj[impl] instanceof Impl.implementation) {\n return true;\n }\n for (let i = 0; i < module.exports.mixedInto.length; ++i) {\n if (obj instanceof module.exports.mixedInto[i]) {\n return true;\n }\n }\n }\n return false;\n },\n isImpl(obj) {\n if (obj) {\n if (obj instanceof Impl.implementation) {\n return true;\n }\n\n const wrapper = utils.wrapperForImpl(obj);\n for (let i = 0; i < module.exports.mixedInto.length; ++i) {\n if (wrapper instanceof module.exports.mixedInto[i]) {\n return true;\n }\n }\n }\n return false;\n },\n convert(obj, { context = \"The provided value\" } = {}) {\n if (module.exports.is(obj)) {\n return utils.implForWrapper(obj);\n }\n throw new TypeError(`${context} is not of type 'URLSearchParams'.`);\n },\n\n createDefaultIterator(target, kind) {\n const iterator = Object.create(IteratorPrototype);\n Object.defineProperty(iterator, utils.iterInternalSymbol, {\n value: { target, kind, index: 0 },\n writable: false,\n enumerable: false,\n configurable: true\n });\n return iterator;\n },\n\n create(constructorArgs, privateData) {\n let obj = Object.create(URLSearchParams.prototype);\n obj = this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n createImpl(constructorArgs, privateData) {\n let obj = Object.create(URLSearchParams.prototype);\n obj = this.setup(obj, constructorArgs, privateData);\n return utils.implForWrapper(obj);\n },\n _internalSetup(obj) {},\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n\n privateData.wrapper = obj;\n\n this._internalSetup(obj);\n Object.defineProperty(obj, impl, {\n value: new Impl.implementation(constructorArgs, privateData),\n writable: false,\n enumerable: false,\n configurable: true\n });\n\n obj[impl][utils.wrapperSymbol] = obj;\n if (Impl.init) {\n Impl.init(obj[impl], privateData);\n }\n return obj;\n },\n interface: URLSearchParams,\n expose: {\n Window: { URLSearchParams },\n Worker: { URLSearchParams }\n }\n}; // iface\nmodule.exports = iface;\n\nconst Impl = require(\".//URLSearchParams-impl.js\");\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.utils);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _utils) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var addedDiff = function addedDiff(lhs, rhs) {\n\n if (lhs === rhs || !(0, _utils.isObject)(lhs) || !(0, _utils.isObject)(rhs)) return {};\n\n var l = (0, _utils.properObject)(lhs);\n var r = (0, _utils.properObject)(rhs);\n\n return Object.keys(r).reduce(function (acc, key) {\n if (l.hasOwnProperty(key)) {\n var difference = addedDiff(l[key], r[key]);\n\n if ((0, _utils.isObject)(difference) && (0, _utils.isEmpty)(difference)) return acc;\n\n return _extends({}, acc, _defineProperty({}, key, difference));\n }\n\n return _extends({}, acc, _defineProperty({}, key, r[key]));\n }, {});\n };\n\n exports.default = addedDiff;\n module.exports = exports['default'];\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.utils);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _utils) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var deletedDiff = function deletedDiff(lhs, rhs) {\n if (lhs === rhs || !(0, _utils.isObject)(lhs) || !(0, _utils.isObject)(rhs)) return {};\n\n var l = (0, _utils.properObject)(lhs);\n var r = (0, _utils.properObject)(rhs);\n\n return Object.keys(l).reduce(function (acc, key) {\n if (r.hasOwnProperty(key)) {\n var difference = deletedDiff(l[key], r[key]);\n\n if ((0, _utils.isObject)(difference) && (0, _utils.isEmpty)(difference)) return acc;\n\n return _extends({}, acc, _defineProperty({}, key, difference));\n }\n\n return _extends({}, acc, _defineProperty({}, key, undefined));\n }, {});\n };\n\n exports.default = deletedDiff;\n module.exports = exports['default'];\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.utils);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _utils) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var updatedDiff = function updatedDiff(lhs, rhs) {\n\n if (lhs === rhs) return {};\n\n if (!(0, _utils.isObject)(lhs) || !(0, _utils.isObject)(rhs)) return rhs;\n\n var l = (0, _utils.properObject)(lhs);\n var r = (0, _utils.properObject)(rhs);\n\n if ((0, _utils.isDate)(l) || (0, _utils.isDate)(r)) {\n if (l.valueOf() == r.valueOf()) return {};\n return r;\n }\n\n return Object.keys(r).reduce(function (acc, key) {\n\n if (l.hasOwnProperty(key)) {\n var difference = updatedDiff(l[key], r[key]);\n\n if ((0, _utils.isObject)(difference) && (0, _utils.isEmpty)(difference) && !(0, _utils.isDate)(difference)) return acc;\n\n return _extends({}, acc, _defineProperty({}, key, difference));\n }\n\n return acc;\n }, {});\n };\n\n exports.default = updatedDiff;\n module.exports = exports['default'];\n});","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\n\r\nclass AtomXtermDeleteProfileModel {\r\n constructor (atomXtermProfileMenuElement) {\r\n this.atomXtermProfileMenuElement = atomXtermProfileMenuElement\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n this.element = null\r\n this.panel = atom.workspace.addModalPanel({\r\n item: this,\r\n visible: false\r\n })\r\n }\r\n\r\n getTitle () {\r\n return 'atom-xterm Delete Profile Model'\r\n }\r\n\r\n getElement () {\r\n return this.element\r\n }\r\n\r\n setElement (element) {\r\n this.element = element\r\n }\r\n\r\n close () {\r\n if (!this.panel.isVisible()) {\r\n return\r\n }\r\n this.panel.hide()\r\n }\r\n\r\n promptDelete (profileName) {\r\n this.panel.show()\r\n let confirmHandler = (event) => {\r\n this.profilesSingleton.deleteProfile(profileName).then(() => {\r\n this.profilesSingleton.reloadProfiles()\r\n this.profilesSingleton.profilesLoadPromise.then(() => {\r\n this.close()\r\n })\r\n })\r\n }\r\n let cancelHandler = (event) => {\r\n this.close()\r\n }\r\n this.getElement().setNewPrompt(\r\n profileName,\r\n confirmHandler,\r\n cancelHandler\r\n )\r\n }\r\n}\r\n\r\nexport {\r\n AtomXtermDeleteProfileModel\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { TextEditor } from 'atom'\r\n\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\nimport { AtomXtermOverwriteProfileModel } from './atom-xterm-overwrite-profile-model'\r\nimport { currentItemIsAtomXtermModel } from './atom-xterm-model'\r\n\r\nclass AtomXtermSaveProfileModel {\r\n constructor (atomXtermProfileMenuElement) {\r\n this.atomXtermProfileMenuElement = atomXtermProfileMenuElement\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n this.element = null\r\n this.panel = atom.workspace.addModalPanel({\r\n item: this,\r\n visible: false\r\n })\r\n this.overwriteProfileModel = new AtomXtermOverwriteProfileModel(this)\r\n }\r\n\r\n getTitle () {\r\n return 'atom-xterm Save Profile Model'\r\n }\r\n\r\n getElement () {\r\n return this.element\r\n }\r\n\r\n setElement (element) {\r\n this.element = element\r\n }\r\n\r\n getTextbox () {\r\n return this.textbox\r\n }\r\n\r\n updateProfile (profileName, newProfile, profileChanges) {\r\n this.profilesSingleton.setProfile(profileName, newProfile).then(() => {\r\n this.profilesSingleton.reloadProfiles()\r\n this.profilesSingleton.profilesLoadPromise.then(() => {\r\n this.close()\r\n this.atomXtermProfileMenuElement.applyProfileChanges(profileChanges)\r\n })\r\n })\r\n }\r\n\r\n confirm (newProfile, profileChanges) {\r\n let profileName = this.textbox.getText()\r\n if (!profileName) {\r\n // Simply do nothing.\r\n return\r\n }\r\n this.profilesSingleton.isProfileExists(profileName).then((exists) => {\r\n if (exists) {\r\n this.close(false)\r\n this.overwriteProfileModel.promptOverwrite(profileName, newProfile, profileChanges)\r\n } else {\r\n this.updateProfile(profileName, newProfile, profileChanges)\r\n }\r\n })\r\n }\r\n\r\n close (focusMenuElement = true) {\r\n if (!this.panel.isVisible()) {\r\n return\r\n }\r\n this.textbox.setText('')\r\n this.panel.hide()\r\n if (this.atomXtermProfileMenuElement.isVisible() && focusMenuElement) {\r\n this.atomXtermProfileMenuElement.focus()\r\n }\r\n }\r\n\r\n promptForNewProfileName (newProfile, profileChanges) {\r\n // TODO: Is it possible for the active item to change while the\r\n // modal is displayed.\r\n if (this.panel.isVisible() || !currentItemIsAtomXtermModel()) {\r\n return\r\n }\r\n this.textbox = new TextEditor({mini: true})\r\n this.textbox.getElement().addEventListener('blur', (event) => {\r\n this.close()\r\n })\r\n atom.commands.add(this.textbox.getElement(), 'core:confirm', () => {\r\n this.confirm(newProfile, profileChanges)\r\n })\r\n atom.commands.add(this.textbox.getElement(), 'core:cancel', () => {\r\n this.close()\r\n })\r\n this.element.setNewTextbox(this.textbox)\r\n this.panel.show()\r\n this.textbox.getElement().focus()\r\n }\r\n}\r\n\r\nexport {\r\n AtomXtermSaveProfileModel\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\n\r\nclass AtomXtermOverwriteProfileModel {\r\n constructor (atomXtermSaveProfileModel) {\r\n this.atomXtermSaveProfileModel = atomXtermSaveProfileModel\r\n this.atomXtermProfileMenuElement = this.atomXtermSaveProfileModel.atomXtermProfileMenuElement\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n this.element = null\r\n this.panel = atom.workspace.addModalPanel({\r\n item: this,\r\n visible: false\r\n })\r\n }\r\n\r\n getTitle () {\r\n return 'atom-xterm Overwrite Profile Model'\r\n }\r\n\r\n getElement () {\r\n return this.element\r\n }\r\n\r\n setElement (element) {\r\n this.element = element\r\n }\r\n\r\n close (newProfile, profileChanges, rePrompt = false) {\r\n if (!this.panel.isVisible()) {\r\n return\r\n }\r\n this.panel.hide()\r\n if (rePrompt) {\r\n this.atomXtermSaveProfileModel.promptForNewProfileName(newProfile, profileChanges)\r\n }\r\n }\r\n\r\n promptOverwrite (profileName, newProfile, profileChanges) {\r\n this.panel.show()\r\n let confirmHandler = (event) => {\r\n this.profilesSingleton.setProfile(profileName, newProfile).then(() => {\r\n this.profilesSingleton.reloadProfiles()\r\n this.profilesSingleton.profilesLoadPromise.then(() => {\r\n this.close(newProfile, profileChanges)\r\n this.atomXtermProfileMenuElement.applyProfileChanges(profileChanges)\r\n })\r\n })\r\n }\r\n let cancelHandler = (event) => {\r\n this.close(newProfile, profileChanges, true)\r\n }\r\n this.getElement().setNewPrompt(\r\n profileName,\r\n confirmHandler,\r\n cancelHandler\r\n )\r\n }\r\n}\r\n\r\nexport {\r\n AtomXtermOverwriteProfileModel\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { Emitter } from 'atom'\r\n\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\n\r\nimport fs from 'fs-extra'\r\nimport path from 'path'\r\n\r\nimport { URL } from 'whatwg-url'\r\n\r\nconst DEFAULT_TITLE = 'Atom Xterm'\r\n\r\n/**\r\n * The main terminal model, or rather item, displayed in the Atom workspace.\r\n *\r\n * @class\r\n */\r\nclass AtomXtermModel {\r\n // NOTE: Though the class is publically accessible, all methods except for the\r\n // ones defined at the very bottom of the class should be considered private\r\n // and subject to change at any time.\r\n constructor (options) {\r\n this.options = options\r\n this.uri = this.options.uri\r\n let url = new URL(this.uri)\r\n this.sessionId = url.host\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n this.profile = this.profilesSingleton.createProfileDataFromUri(this.uri)\r\n this.terminals_set = this.options.terminals_set\r\n this.element = null\r\n this.pane = null\r\n this.title = DEFAULT_TITLE\r\n if (this.profile.title !== null) {\r\n this.title = this.profile.title\r\n }\r\n this.modified = false\r\n this.emitter = new Emitter()\r\n this.terminals_set.add(this)\r\n\r\n // Determine appropriate initial working directory based on previous\r\n // active item. Since this involves async operations on the file\r\n // system, a Promise will be used to indicate when initialization is\r\n // done.\r\n this.isInitialized = false\r\n this.initializedPromise = new Promise((resolve, reject) => {\r\n let baseProfile = this.profilesSingleton.getBaseProfile()\r\n let previousActiveItem = atom.workspace.getActivePaneItem()\r\n let cwd = this.profile.cwd\r\n if (typeof previousActiveItem !== 'undefined' && typeof previousActiveItem.getPath === 'function') {\r\n cwd = previousActiveItem.getPath()\r\n }\r\n let dir = atom.project.relativizePath(cwd)[0]\r\n if (dir) {\r\n // Use project paths whenever they are available by default.\r\n this.profile.cwd = dir\r\n resolve()\r\n } else if (cwd) {\r\n fs.exists(cwd, (exists) => {\r\n if (exists) {\r\n // Otherwise, if the path exists on the local file system, use the\r\n // path or parent directory as appropriate.\r\n fs.stat(cwd, (err, stats) => {\r\n if (err) {\r\n reject(err)\r\n }\r\n if (!stats.isDirectory()) {\r\n cwd = path.dirname(cwd)\r\n fs.stat(cwd, (err, stats) => {\r\n if (err) {\r\n reject(err)\r\n }\r\n if (!stats.isDirectory) {\r\n this.profile.cwd = baseProfile.cwd\r\n resolve()\r\n } else {\r\n this.profile.cwd = cwd\r\n resolve()\r\n }\r\n })\r\n } else {\r\n this.profile.cwd = cwd\r\n resolve()\r\n }\r\n })\r\n } else {\r\n this.profile.cwd = baseProfile.cwd\r\n resolve()\r\n }\r\n })\r\n } else {\r\n this.profile.cwd = baseProfile.cwd\r\n resolve()\r\n }\r\n }).then(() => {\r\n this.isInitialized = true\r\n })\r\n }\r\n\r\n serialize () {\r\n return {\r\n deserializer: 'AtomXtermModel',\r\n version: '2017-09-17',\r\n uri: this.profilesSingleton.generateNewUrlFromProfileData(this.profile).href\r\n }\r\n }\r\n\r\n destroy () {\r\n if (this.element) {\r\n this.element.destroy()\r\n }\r\n this.terminals_set.delete(this)\r\n }\r\n\r\n getTitle () {\r\n return this.title\r\n }\r\n\r\n getElement () {\r\n return this.element\r\n }\r\n\r\n getURI () {\r\n return this.uri\r\n }\r\n\r\n getLongTitle () {\r\n if (this.title === DEFAULT_TITLE) {\r\n return DEFAULT_TITLE\r\n }\r\n return DEFAULT_TITLE + ' (' + this.title + ')'\r\n }\r\n\r\n onDidChangeTitle (callback) {\r\n return this.emitter.on('did-change-title', callback)\r\n }\r\n\r\n getIconName () {\r\n return 'terminal'\r\n }\r\n\r\n getPath () {\r\n return this.profile.cwd\r\n }\r\n\r\n isModified () {\r\n return this.modified\r\n }\r\n\r\n onDidChangeModified (callback) {\r\n return this.emitter.on('did-change-modified', callback)\r\n }\r\n\r\n handleNewDataArrival () {\r\n if (!this.pane) {\r\n this.pane = atom.workspace.paneForItem(this)\r\n }\r\n let oldIsModified = this.modified\r\n let item\r\n if (this.pane) {\r\n item = this.pane.getActiveItem()\r\n }\r\n if (item === this) {\r\n this.modified = false\r\n } else {\r\n this.modified = true\r\n }\r\n if (oldIsModified !== this.modified) {\r\n this.emitter.emit('did-change-modified', this.modified)\r\n }\r\n }\r\n\r\n getSessionId () {\r\n return this.sessionId\r\n }\r\n\r\n getSessionParameters () {\r\n let url = this.profilesSingleton.generateNewUrlFromProfileData(this.profile)\r\n url.searchParams.sort()\r\n return url.searchParams.toString()\r\n }\r\n\r\n refitTerminal () {\r\n // Only refit if there's a DOM element attached to the model.\r\n if (this.element) {\r\n this.element.refitTerminal()\r\n }\r\n }\r\n\r\n focusOnTerminal () {\r\n this.element.focusOnTerminal()\r\n let oldIsModified = this.modified\r\n this.modified = false\r\n if (oldIsModified !== this.modified) {\r\n this.emitter.emit('did-change-modified', this.modified)\r\n }\r\n }\r\n\r\n exit () {\r\n this.pane.destroyItem(this, true)\r\n }\r\n\r\n restartPtyProcess () {\r\n if (this.element) {\r\n this.element.restartPtyProcess()\r\n }\r\n }\r\n\r\n copyFromTerminal () {\r\n return this.element.terminal.getSelection()\r\n }\r\n\r\n pasteToTerminal (text) {\r\n this.element.ptyProcess.write(text)\r\n }\r\n\r\n setNewPane (pane) {\r\n this.pane = pane\r\n }\r\n\r\n openHoveredLink () {\r\n this.element.openHoveredLink()\r\n }\r\n\r\n getHoveredLink () {\r\n return this.element.getHoveredLink()\r\n }\r\n\r\n toggleProfileMenu () {\r\n this.element.toggleProfileMenu()\r\n }\r\n\r\n /* Public methods are defined below this line. */\r\n\r\n /**\r\n * Retrieve profile for this {@link AtomXtermModel} instance.\r\n *\r\n * @function\r\n * @return {Object} Profile for {@link AtomXtermModel} instance.\r\n */\r\n getProfile () {\r\n return this.profile\r\n }\r\n\r\n /**\r\n * Apply profile changes to {@link AtomXtermModel} instance.\r\n *\r\n * @function\r\n * @param {Object} profileChanges Profile changes to apply.\r\n */\r\n applyProfileChanges (profileChanges) {\r\n profileChanges = this.profilesSingleton.sanitizeData(profileChanges)\r\n this.profile = this.profilesSingleton.deepClone(Object.assign(this.profile, profileChanges))\r\n this.element.queueNewProfileChanges(profileChanges)\r\n }\r\n}\r\n\r\nfunction isAtomXtermModel (item) {\r\n return (item instanceof AtomXtermModel)\r\n}\r\n\r\nfunction currentItemIsAtomXtermModel () {\r\n return isAtomXtermModel(atom.workspace.getActivePaneItem())\r\n}\r\n\r\nexport {\r\n AtomXtermModel,\r\n isAtomXtermModel,\r\n currentItemIsAtomXtermModel\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nclass AtomXtermProfileMenuModel {\r\n constructor (atomXtermModel) {\r\n this.atomXtermModel = atomXtermModel\r\n this.element = null\r\n }\r\n\r\n destroy () {\r\n if (this.element) {\r\n this.element.destroy()\r\n }\r\n }\r\n\r\n getTitle () {\r\n return 'Atom Xterm Profile Menu'\r\n }\r\n\r\n getElement () {\r\n return this.element\r\n }\r\n\r\n setElement (element) {\r\n this.element = element\r\n }\r\n\r\n getAtomXtermModelElement () {\r\n return this.atomXtermModel.getElement()\r\n }\r\n\r\n getAtomXtermModel () {\r\n return this.atomXtermModel\r\n }\r\n}\r\n\r\nexport {\r\n AtomXtermProfileMenuModel\r\n}\r\n","\"use strict\";\n\nvar utils = module.exports = {};\n\n/**\n * Loops through the collection and calls the callback for each element. if the callback returns truthy, the loop is broken and returns the same value.\n * @public\n * @param {*} collection The collection to loop through. Needs to have a length property set and have indices set from 0 to length - 1.\n * @param {function} callback The callback to be called for each element. The element will be given as a parameter to the callback. If this callback returns truthy, the loop is broken and the same value is returned.\n * @returns {*} The value that a callback has returned (if truthy). Otherwise nothing.\n */\nutils.forEach = function(collection, callback) {\n for(var i = 0; i < collection.length; i++) {\n var result = callback(collection[i]);\n if(result) {\n return result;\n }\n }\n};\n","\"use strict\";\n\nvar detector = module.exports = {};\n\ndetector.isIE = function(version) {\n function isAnyIeVersion() {\n var agent = navigator.userAgent.toLowerCase();\n return agent.indexOf(\"msie\") !== -1 || agent.indexOf(\"trident\") !== -1 || agent.indexOf(\" edge/\") !== -1;\n }\n\n if(!isAnyIeVersion()) {\n return false;\n }\n\n if(!version) {\n return true;\n }\n\n //Shamelessly stolen from https://gist.github.com/padolsey/527683\n var ieVersion = (function(){\n var undef,\n v = 3,\n div = document.createElement(\"div\"),\n all = div.getElementsByTagName(\"i\");\n\n do {\n div.innerHTML = \"\";\n }\n while (all[0]);\n\n return v > 4 ? v : undef;\n }());\n\n return version === ieVersion;\n};\n\ndetector.isLegacyOpera = function() {\n return !!window.opera;\n};\n","/** @babel */\r\n/** @module atom-xterm */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport '../styles/atom-xterm.sass'\r\n\r\nimport { CompositeDisposable } from 'atom'\r\n\r\nimport atomXtermConfig from './atom-xterm-config'\r\nimport { AtomXtermElement } from './atom-xterm-element'\r\nimport { AtomXtermModel, isAtomXtermModel } from './atom-xterm-model'\r\nimport { ATOM_XTERM_BASE_URI, AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\nimport { AtomXtermProfileMenuElement } from './atom-xterm-profile-menu-element'\r\nimport { AtomXtermProfileMenuModel } from './atom-xterm-profile-menu-model'\r\nimport { AtomXtermDeleteProfileElement } from './atom-xterm-delete-profile-element'\r\nimport { AtomXtermDeleteProfileModel } from './atom-xterm-delete-profile-model'\r\nimport { AtomXtermOverwriteProfileElement } from './atom-xterm-overwrite-profile-element'\r\nimport { AtomXtermOverwriteProfileModel } from './atom-xterm-overwrite-profile-model'\r\nimport { AtomXtermSaveProfileElement } from './atom-xterm-save-profile-element'\r\nimport { AtomXtermSaveProfileModel } from './atom-xterm-save-profile-model'\r\n\r\nimport { URL } from 'whatwg-url'\r\n\r\nconst AtomXtermSingletonSymbol = Symbol('AtomXtermSingleton sentinel')\r\n\r\nclass AtomXtermSingleton {\r\n constructor (symbolCheck) {\r\n if (AtomXtermSingletonSymbol !== symbolCheck) {\r\n throw new Error('AtomXtermSingleton cannot be instantiated directly.')\r\n }\r\n }\r\n\r\n static get instance () {\r\n if (!this[AtomXtermSingletonSymbol]) {\r\n this[AtomXtermSingletonSymbol] = new AtomXtermSingleton(AtomXtermSingletonSymbol)\r\n }\r\n return this[AtomXtermSingletonSymbol]\r\n }\r\n\r\n activate (state) {\r\n // Load profiles configuration.\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n\r\n // Reset base profile in case this package was deactivated then\r\n // reactivated.\r\n this.profilesSingleton.resetBaseProfile()\r\n\r\n // Disposables for this plugin.\r\n this.disposables = new CompositeDisposable()\r\n\r\n // Set holding all terminals available at any moment.\r\n this.terminals_set = new Set()\r\n\r\n // Monitor for changes to all config values.\r\n let configKeys = [\r\n 'atom-xterm.spawnPtySettings.command',\r\n 'atom-xterm.spawnPtySettings.args',\r\n 'atom-xterm.spawnPtySettings.name',\r\n 'atom-xterm.spawnPtySettings.cwd',\r\n 'atom-xterm.spawnPtySettings.env',\r\n 'atom-xterm.spawnPtySettings.setEnv',\r\n 'atom-xterm.spawnPtySettings.deleteEnv',\r\n 'atom-xterm.spawnPtySettings.encoding',\r\n 'atom-xterm.terminalSettings.fontSize',\r\n 'atom-xterm.terminalSettings.leaveOpenAfterExit',\r\n 'atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup',\r\n 'atom-xterm.terminalSettings.relaunchTerminalOnStartup',\r\n 'atom-xterm.terminalSettings.title',\r\n 'atom-xterm.terminalSettings.xtermOptions',\r\n 'atom-xterm.terminalSettings.promptToStartup'\r\n ]\r\n for (let key of configKeys) {\r\n this.disposables.add(atom.config.onDidChange(key, ({newValue, oldValue}) => {\r\n this.profilesSingleton.resetBaseProfile()\r\n }))\r\n }\r\n\r\n // Register view provider for terminal emulator item.\r\n this.disposables.add(atom.views.addViewProvider(AtomXtermModel, (atomXtermModel) => {\r\n let atomXtermElement = new AtomXtermElement()\r\n atomXtermElement.initialize(atomXtermModel)\r\n return atomXtermElement\r\n }))\r\n\r\n // Register view provider for terminal emulator profile menu item.\r\n this.disposables.add(atom.views.addViewProvider(AtomXtermProfileMenuModel, (atomXtermProfileMenuModel) => {\r\n let atomXtermProfileMenuElement = new AtomXtermProfileMenuElement()\r\n atomXtermProfileMenuElement.initialize(atomXtermProfileMenuModel)\r\n return atomXtermProfileMenuElement\r\n }))\r\n\r\n // Register view profile for modal items.\r\n this.disposables.add(atom.views.addViewProvider(AtomXtermDeleteProfileModel, (atomXtermDeleteProfileModel) => {\r\n let atomXtermDeleteProfileElement = new AtomXtermDeleteProfileElement()\r\n atomXtermDeleteProfileElement.initialize(atomXtermDeleteProfileModel)\r\n return atomXtermDeleteProfileElement\r\n }))\r\n this.disposables.add(atom.views.addViewProvider(AtomXtermOverwriteProfileModel, (atomXtermOverwriteProfileModel) => {\r\n let atomXtermOverwriteProfileElement = new AtomXtermOverwriteProfileElement()\r\n atomXtermOverwriteProfileElement.initialize(atomXtermOverwriteProfileModel)\r\n return atomXtermOverwriteProfileElement\r\n }))\r\n this.disposables.add(atom.views.addViewProvider(AtomXtermSaveProfileModel, (atomXtermSaveProfileModel) => {\r\n let atomXtermSaveProfileElement = new AtomXtermSaveProfileElement()\r\n atomXtermSaveProfileElement.initialize(atomXtermSaveProfileModel)\r\n return atomXtermSaveProfileElement\r\n }))\r\n\r\n // Add opener for terminal emulator item.\r\n this.disposables.add(atom.workspace.addOpener((uri) => {\r\n if (uri.startsWith(ATOM_XTERM_BASE_URI)) {\r\n let item = new AtomXtermModel({\r\n uri: uri,\r\n terminals_set: this.terminals_set\r\n })\r\n return item\r\n }\r\n }))\r\n\r\n // Set callback to run on current and future panes.\r\n this.disposables.add(atom.workspace.observePanes((pane) => {\r\n // In callback, set another callback to run on current and future items.\r\n this.disposables.add(pane.observeItems((item) => {\r\n // In callback, set current pane for terminal items.\r\n if (isAtomXtermModel(item)) {\r\n item.setNewPane(pane)\r\n }\r\n }))\r\n }))\r\n\r\n // Add callbacks to run for current and future active items on active panes.\r\n this.disposables.add(atom.workspace.observeActivePaneItem((item) => {\r\n // In callback, focus specifically on terminal when item is terminal item.\r\n if (isAtomXtermModel(item)) {\r\n item.focusOnTerminal()\r\n }\r\n }))\r\n\r\n // Add commands.\r\n this.disposables.add(atom.commands.add('atom-workspace', {\r\n 'atom-xterm:open': () => {\r\n this.openInCenterOrDock(atom.workspace)\r\n },\r\n 'atom-xterm:open-split-up': () => this.open(\r\n this.profilesSingleton.generateNewUri(),\r\n {'split': 'up'}\r\n ),\r\n 'atom-xterm:open-split-down': () => this.open(\r\n this.profilesSingleton.generateNewUri(),\r\n {'split': 'down'}\r\n ),\r\n 'atom-xterm:open-split-left': () => this.open(\r\n this.profilesSingleton.generateNewUri(),\r\n {'split': 'left'}\r\n ),\r\n 'atom-xterm:open-split-right': () => this.open(\r\n this.profilesSingleton.generateNewUri(),\r\n {'split': 'right'}\r\n ),\r\n 'atom-xterm:open-split-bottom-dock': () => {\r\n this.openInCenterOrDock(atom.workspace.getBottomDock())\r\n },\r\n 'atom-xterm:open-split-left-dock': () => {\r\n this.openInCenterOrDock(atom.workspace.getLeftDock())\r\n },\r\n 'atom-xterm:open-split-right-dock': () => {\r\n this.openInCenterOrDock(atom.workspace.getRightDock())\r\n },\r\n 'atom-xterm:toggle-profile-menu': () => this.toggleProfileMenu(),\r\n 'atom-xterm:reorganize': () => this.reorganize('current'),\r\n 'atom-xterm:reorganize-top': () => this.reorganize('top'),\r\n 'atom-xterm:reorganize-bottom': () => this.reorganize('bottom'),\r\n 'atom-xterm:reorganize-left': () => this.reorganize('left'),\r\n 'atom-xterm:reorganize-right': () => this.reorganize('right'),\r\n 'atom-xterm:reorganize-bottom-dock': () => this.reorganize('bottom-dock'),\r\n 'atom-xterm:reorganize-left-dock': () => this.reorganize('left-dock'),\r\n 'atom-xterm:reorganize-right-dock': () => this.reorganize('right-dock'),\r\n 'atom-xterm:close-all': () => this.exitAllTerminals(),\r\n 'atom-xterm:need-this-to-activate-package-for-tests-do-not-remove': () => {\r\n /*\r\n * This is just here for activating the package in tests.\r\n * From the main program, the 'core:loaded-shell-environment'\r\n * activation hook is used to activate the package.\r\n */\r\n }\r\n }))\r\n this.disposables.add(atom.commands.add('atom-xterm', {\r\n 'atom-xterm:close': () => this.close(),\r\n 'atom-xterm:restart': () => this.restart(),\r\n 'atom-xterm:copy': () => this.copy(),\r\n 'atom-xterm:paste': () => this.paste(),\r\n 'atom-xterm:open-link': () => this.openLink(),\r\n 'atom-xterm:copy-link': () => this.copyLink()\r\n }))\r\n }\r\n\r\n deactivate () {\r\n this.exitAllTerminals()\r\n this.disposables.dispose()\r\n }\r\n\r\n deserializeAtomXtermModel (serializedModel, atomEnvironment) {\r\n let pack = atom.packages.enablePackage('atom-xterm')\r\n pack.preload()\r\n pack.activateNow()\r\n let allowRelaunchingTerminalsOnStartup = atom.config.get('atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup')\r\n if (!allowRelaunchingTerminalsOnStartup) {\r\n return\r\n }\r\n let url = new URL(serializedModel.uri)\r\n let relaunchTerminalOnStartup = url.searchParams.get('relaunchTerminalOnStartup')\r\n if (relaunchTerminalOnStartup === 'false') {\r\n return\r\n }\r\n return new AtomXtermModel({\r\n uri: url.href,\r\n terminals_set: this.terminals_set\r\n })\r\n }\r\n\r\n openInCenterOrDock (centerOrDock) {\r\n let options = {}\r\n let pane = centerOrDock.getActivePane()\r\n if (pane) {\r\n options.pane = pane\r\n }\r\n this.open(\r\n this.profilesSingleton.generateNewUri(),\r\n options\r\n )\r\n }\r\n\r\n refitAllTerminals () {\r\n let currentActivePane = atom.workspace.getActivePane()\r\n let currentActiveItem = currentActivePane.getActiveItem()\r\n for (let terminal of this.terminals_set) {\r\n // To refit, simply bring the terminal in focus in order for the\r\n // resize event to refit the terminal.\r\n let paneActiveItem = terminal.pane.getActiveItem()\r\n terminal.pane.getElement().focus()\r\n terminal.pane.setActiveItem(terminal)\r\n terminal.pane.setActiveItem(paneActiveItem)\r\n }\r\n currentActivePane.getElement().focus()\r\n currentActivePane.setActiveItem(currentActiveItem)\r\n }\r\n\r\n exitAllTerminals () {\r\n for (let terminal of this.terminals_set) {\r\n terminal.exit()\r\n }\r\n }\r\n\r\n async open (uri, options = {}) {\r\n let url = new URL(uri)\r\n let relaunchTerminalOnStartup = url.searchParams.get('relaunchTerminalOnStartup')\r\n if (relaunchTerminalOnStartup === null) {\r\n relaunchTerminalOnStartup = this.profilesSingleton.getBaseProfile().relaunchTerminalOnStartup\r\n if (!relaunchTerminalOnStartup) {\r\n url.searchParams.set('relaunchTerminalOnStartup', false)\r\n }\r\n }\r\n return atom.workspace.open(url.href, options)\r\n }\r\n\r\n /**\r\n * Service function which is a wrapper around 'atom.workspace.open()'. The\r\n * only difference with this function from 'atom.workspace.open()' is that it\r\n * accepts a profile Object as the first argument.\r\n *\r\n * @async\r\n * @function\r\n * @param {Object} profile Profile data to use when opening terminal.\r\n * @param {Object} options Options to pass to call to 'atom.workspace.open()'.\r\n * @return {AtomXtermModel} Instance of AtomXtermModel.\r\n */\r\n async openTerminal (profile, options = {}) {\r\n return this.open(\r\n AtomXtermProfilesSingleton.instance.generateNewUrlFromProfileData(profile),\r\n options\r\n )\r\n }\r\n\r\n /**\r\n * Function providing service functions offered by 'atom-xterm' package.\r\n *\r\n * @function\r\n * @returns {Object} Object holding service functions.\r\n */\r\n provideAtomXtermService () {\r\n return {\r\n openTerminal: async (...args) => {\r\n return this.openTerminal(...args)\r\n }\r\n }\r\n }\r\n\r\n performOperationOnItem (operation) {\r\n let item = atom.workspace.getActivePaneItem()\r\n if (isAtomXtermModel(item)) {\r\n switch (operation) {\r\n case 'close':\r\n item.exit()\r\n break\r\n case 'restart':\r\n item.restartPtyProcess()\r\n break\r\n case 'copy':\r\n atom.clipboard.write(item.copyFromTerminal())\r\n break\r\n case 'paste':\r\n item.pasteToTerminal(atom.clipboard.read())\r\n break\r\n case 'open-link':\r\n item.openHoveredLink()\r\n break\r\n case 'copy-link':\r\n let link = item.getHoveredLink()\r\n if (link) {\r\n atom.clipboard.write(link)\r\n }\r\n break\r\n default:\r\n throw new Error('Unknown operation: ' + operation)\r\n }\r\n }\r\n }\r\n\r\n close () {\r\n this.performOperationOnItem('close')\r\n }\r\n\r\n restart () {\r\n this.performOperationOnItem('restart')\r\n }\r\n\r\n copy () {\r\n this.performOperationOnItem('copy')\r\n }\r\n\r\n paste () {\r\n this.performOperationOnItem('paste')\r\n }\r\n\r\n openLink () {\r\n this.performOperationOnItem('open-link')\r\n }\r\n\r\n copyLink () {\r\n this.performOperationOnItem('copy-link')\r\n }\r\n\r\n toggleProfileMenu () {\r\n let item = atom.workspace.getActivePaneItem()\r\n if (isAtomXtermModel(item)) {\r\n item.toggleProfileMenu()\r\n }\r\n }\r\n\r\n reorganize (orientation) {\r\n if (this.terminals_set.size === 0) {\r\n return\r\n }\r\n let activePane = atom.workspace.getActivePane()\r\n let activeItem = activePane.getActiveItem()\r\n let newPane\r\n switch (orientation) {\r\n case 'current':\r\n newPane = activePane\r\n break\r\n case 'top':\r\n newPane = activePane.findTopmostSibling().splitUp()\r\n break\r\n case 'bottom':\r\n newPane = activePane.findBottommostSibling().splitDown()\r\n break\r\n case 'left':\r\n newPane = activePane.findLeftmostSibling().splitLeft()\r\n break\r\n case 'right':\r\n newPane = activePane.findRightmostSibling().splitRight()\r\n break\r\n case 'bottom-dock':\r\n newPane = atom.workspace.getBottomDock().getActivePane()\r\n break\r\n case 'left-dock':\r\n newPane = atom.workspace.getLeftDock().getActivePane()\r\n break\r\n case 'right-dock':\r\n newPane = atom.workspace.getRightDock().getActivePane()\r\n break\r\n default:\r\n throw new Error('Unknown orientation: ' + orientation)\r\n }\r\n for (let item of this.terminals_set) {\r\n item.pane.moveItemToPane(item, newPane, -1)\r\n }\r\n if (isAtomXtermModel(activeItem)) {\r\n if (atom.workspace.getPanes().length > 1) {\r\n // When reorganizing still leaves more than one pane in the\r\n // workspace, another pane that doesn't include the newly\r\n // reorganized terminal tabs needs to be focused in order for\r\n // the terminal views to get properly resized in the new pane.\r\n // All this is yet another quirk.\r\n for (let pane of atom.workspace.getPanes()) {\r\n if (pane !== activeItem.pane) {\r\n pane.getElement().focus()\r\n break\r\n }\r\n }\r\n }\r\n activeItem.pane.getElement().focus()\r\n activeItem.pane.setActiveItem(activeItem)\r\n } else if (activeItem instanceof HTMLElement) {\r\n activeItem.focus()\r\n } else if (typeof activeItem.getElement === 'function') {\r\n activeItem = activeItem.getElement()\r\n activeItem.focus()\r\n }\r\n }\r\n}\r\n\r\nexport const config = {\r\n 'spawnPtySettings': {\r\n 'title': 'Shell Process Settings',\r\n 'description': 'Settings related to the process running the shell.',\r\n 'type': 'object',\r\n 'properties': {\r\n 'command': {\r\n 'title': 'Command',\r\n 'description': 'Command to run',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultShellCommand()\r\n },\r\n 'args': {\r\n 'title': 'Arguments',\r\n 'description': 'Arguments to pass to command, must be in a JSON array.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultArgs()\r\n },\r\n 'name': {\r\n 'title': 'Terminal Type',\r\n 'description': 'The terminal type to use.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultTermType()\r\n },\r\n 'cwd': {\r\n 'title': 'Working Directory',\r\n 'description': 'The working directory to use when launching command.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultCwd()\r\n },\r\n 'env': {\r\n 'title': 'Environment',\r\n 'description': 'The environment to use when launching command, must be in a JSON object. If not set, defaults to the current environment.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultEnv()\r\n },\r\n 'setEnv': {\r\n 'title': 'Environment Overrides',\r\n 'description': 'Environment variables to use in place of the atom process environment, must be in a JSON object.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultSetEnv()\r\n },\r\n 'deleteEnv': {\r\n 'title': 'Environment Deletions',\r\n 'description': 'Environment variables to delete from original environment, must be in a JSON array.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultDeleteEnv()\r\n },\r\n 'encoding': {\r\n 'title': 'Character Encoding',\r\n 'description': 'Character encoding to use in spawned terminal.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultEncoding()\r\n }\r\n }\r\n },\r\n 'terminalSettings': {\r\n 'title': 'Terminal Emulator Settings',\r\n 'description': 'Settings for the terminal emulator.',\r\n 'type': 'object',\r\n 'properties': {\r\n 'fontSize': {\r\n 'title': 'Font Size',\r\n 'description': 'Font size used in terminal emulator.',\r\n 'type': 'integer',\r\n 'default': atomXtermConfig.getDefaultFontSize(),\r\n 'minimum': atomXtermConfig.getMinimumFontSize(),\r\n 'maximum': atomXtermConfig.getMaximumFontSize()\r\n },\r\n 'leaveOpenAfterExit': {\r\n 'title': 'Leave Open After Exit',\r\n 'description': 'Whether to leave terminal emulators open after their shell processes have exited.',\r\n 'type': 'boolean',\r\n 'default': atomXtermConfig.getDefaultLeaveOpenAfterExit()\r\n },\r\n 'allowRelaunchingTerminalsOnStartup': {\r\n 'title': 'Allow relaunching terminals on startup',\r\n 'description': 'Whether to allow relaunching terminals on startup.',\r\n 'type': 'boolean',\r\n 'default': atomXtermConfig.getDefaultAllowRelaunchingTerminalsOnStartup()\r\n },\r\n 'relaunchTerminalOnStartup': {\r\n 'title': 'Relaunch terminal on startup',\r\n 'description': 'Whether to relaunch terminal on startup.',\r\n 'type': 'boolean',\r\n 'default': atomXtermConfig.getDefaultRelaunchTerminalOnStartup()\r\n },\r\n 'title': {\r\n 'title': 'Terminal tab title',\r\n 'description': 'Title to use for terminal tabs.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultTitle()\r\n },\r\n 'xtermOptions': {\r\n 'title': 'xterm.js Terminal Options',\r\n 'description': 'Options to apply to xterm.js Terminal objects.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultXtermOptions()\r\n },\r\n 'promptToStartup': {\r\n 'title': 'Prompt to start command',\r\n 'description': 'Whether to prompt to start command in terminal on startup.',\r\n 'type': 'boolean',\r\n 'default': atomXtermConfig.getDefaultPromptToStartup()\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function activate (state) {\r\n return AtomXtermSingleton.instance.activate(state)\r\n}\r\n\r\nexport function deactivate () {\r\n return AtomXtermSingleton.instance.deactivate()\r\n}\r\n\r\nexport function deserializeAtomXtermModel (serializedModel, atomEnvironment) {\r\n return AtomXtermSingleton.instance.deserializeAtomXtermModel(\r\n serializedModel,\r\n atomEnvironment\r\n )\r\n}\r\n\r\nexport function provideAtomXtermService () {\r\n return AtomXtermSingleton.instance.provideAtomXtermService()\r\n}\r\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { CompositeDisposable } from 'atom'\r\nimport { spawn as spawnPty } from 'node-pty-prebuilt'\r\nimport { Terminal } from 'xterm'\r\nimport * as fit from 'xterm/lib/addons/fit/fit'\r\nimport urlRegex from 'url-regex'\r\nimport { shell } from 'electron'\r\n\r\nimport atomXtermConfig from './atom-xterm-config'\r\nimport { AtomXtermProfileMenuElement } from './atom-xterm-profile-menu-element'\r\nimport { AtomXtermProfileMenuModel } from './atom-xterm-profile-menu-model'\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\n\r\nimport fs from 'fs-extra'\r\n\r\nimport elementResizeDetectorMaker from 'element-resize-detector'\r\n\r\nTerminal.applyAddon(fit)\r\n\r\nconst STRICT_URL_REGEX = new RegExp(`(${urlRegex({exact: false, strict: true}).source})`)\r\nconst PTY_PROCESS_OPTIONS = new Set([\r\n 'command',\r\n 'args',\r\n 'name',\r\n 'cwd',\r\n 'env',\r\n 'setEnv',\r\n 'deleteEnv',\r\n 'encoding'\r\n])\r\nconst ATOM_XTERM_OPTIONS = [\r\n 'leaveOpenAfterExit',\r\n 'relaunchTerminalOnStartup',\r\n 'title',\r\n 'promptToStartup'\r\n]\r\n\r\nclass AtomXtermElementImpl extends HTMLElement {\r\n initialize (model) {\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n this.model = model\r\n this.model.element = this\r\n this.disposables = new CompositeDisposable()\r\n this.topDiv = document.createElement('div')\r\n this.topDiv.classList.add('atom-xterm-top-div')\r\n this.appendChild(this.topDiv)\r\n this.mainDiv = document.createElement('div')\r\n this.mainDiv.classList.add('atom-xterm-main-div')\r\n this.appendChild(this.mainDiv)\r\n this.menuDiv = document.createElement('div')\r\n this.menuDiv.classList.add('atom-xterm-menu-div')\r\n this.mainDiv.appendChild(this.menuDiv)\r\n this.terminalDiv = document.createElement('div')\r\n this.terminalDiv.classList.add('atom-xterm-term-container')\r\n this.mainDiv.appendChild(this.terminalDiv)\r\n this.atomXtermProfileMenuElement = new AtomXtermProfileMenuElement()\r\n this.hoveredLink = null\r\n this.pendingTerminalProfileOptions = {}\r\n this.terminalDivIntersectionRatio = 0.0\r\n this.isInitialized = false\r\n this.initializedPromise = new Promise((resolve, reject) => {\r\n // Always wait for the model to finish initializing before proceeding.\r\n this.model.initializedPromise.then((atomXtermModel) => {\r\n this.setAttribute('session-id', this.model.getSessionId())\r\n this.atomXtermProfileMenuElement.initialize(new AtomXtermProfileMenuModel(this.model)).then(() => {\r\n this.menuDiv.append(this.atomXtermProfileMenuElement)\r\n this.createTerminal().then(() => {\r\n // An element resize detector is used to check when this element is\r\n // resized due to the pane resizing or due to the entire window\r\n // resizing.\r\n this.erd = elementResizeDetectorMaker({\r\n strategy: 'scroll'\r\n })\r\n this.erd.listenTo(this.mainDiv, (element) => {\r\n this.refitTerminal()\r\n })\r\n // Add an IntersectionObserver in order to apply new options and\r\n // refit as soon as the terminal is visible.\r\n this.terminalDivIntersectionObserver = new IntersectionObserver((entries, observer) => {\r\n // NOTE: Only the terminal div should be observed therefore there\r\n // should only be one entry.\r\n let entry = entries[0]\r\n this.terminalDivIntersectionRatio = entry.intersectionRatio\r\n this.applyPendingTerminalProfileOptions()\r\n }, {\r\n root: this,\r\n threshold: 1.0\r\n })\r\n this.terminalDivIntersectionObserver.observe(this.terminalDiv)\r\n // Add event handler for increasing/decreasing the font when\r\n // holding 'ctrl' and moving the mouse wheel up or down.\r\n this.terminalDiv.addEventListener(\r\n 'wheel',\r\n (wheelEvent) => {\r\n if (wheelEvent.ctrlKey && atom.config.get('editor.zoomFontWhenCtrlScrolling')) {\r\n if (wheelEvent.deltaY < 0) {\r\n let fontSize = this.model.profile.fontSize + 1\r\n if (fontSize > atomXtermConfig.getMaximumFontSize()) {\r\n fontSize = atomXtermConfig.getMaximumFontSize()\r\n }\r\n this.model.applyProfileChanges({fontSize: fontSize})\r\n wheelEvent.stopPropagation()\r\n } else if (wheelEvent.deltaY > 0) {\r\n let fontSize = this.model.profile.fontSize - 1\r\n if (fontSize < atomXtermConfig.getMinimumFontSize()) {\r\n fontSize = atomXtermConfig.getMinimumFontSize()\r\n }\r\n this.model.applyProfileChanges({fontSize: fontSize})\r\n wheelEvent.stopPropagation()\r\n }\r\n }\r\n },\r\n {capture: true}\r\n )\r\n resolve()\r\n })\r\n })\r\n }).then(() => {\r\n this.isInitialized = true\r\n })\r\n })\r\n return this.initializedPromise\r\n }\r\n\r\n destroy () {\r\n this.atomXtermProfileMenuElement.destroy()\r\n if (this.ptyProcess) {\r\n this.ptyProcess.kill()\r\n }\r\n if (this.terminal) {\r\n this.terminal.destroy()\r\n }\r\n this.disposables.dispose()\r\n }\r\n\r\n getShellCommand () {\r\n return this.model.profile.command\r\n }\r\n\r\n getArgs () {\r\n let args = this.model.profile.args\r\n if (!Array.isArray(args)) {\r\n throw new Error('Arguments set are not an array.')\r\n }\r\n return args\r\n }\r\n\r\n getTermType () {\r\n return this.model.profile.name\r\n }\r\n\r\n checkPathIsDirectory (path) {\r\n return new Promise((resolve, reject) => {\r\n if (path) {\r\n fs.stat(path, (err, stats) => {\r\n if (err) {\r\n resolve(false)\r\n }\r\n if (stats && stats.isDirectory()) {\r\n resolve(true)\r\n }\r\n resolve(false)\r\n })\r\n } else {\r\n resolve(false)\r\n }\r\n })\r\n }\r\n\r\n getCwd () {\r\n return new Promise((resolve, reject) => {\r\n let cwd = this.model.profile.cwd\r\n this.checkPathIsDirectory(cwd).then((isDirectory) => {\r\n if (isDirectory) {\r\n resolve(cwd)\r\n } else {\r\n cwd = this.model.getPath()\r\n this.checkPathIsDirectory(cwd).then((isDirectory) => {\r\n if (isDirectory) {\r\n resolve(cwd)\r\n } else {\r\n // If the cwd from the model was invalid, reset it to null.\r\n this.model.cwd = null\r\n cwd = this.profilesSingleton.getBaseProfile.cwd\r\n this.checkPathIsDirectory(cwd).then((isDirectory) => {\r\n if (isDirectory) {\r\n this.model.cwd = cwd\r\n resolve(cwd)\r\n }\r\n resolve(null)\r\n })\r\n }\r\n })\r\n }\r\n })\r\n })\r\n }\r\n\r\n getEnv () {\r\n let env = this.model.profile.env\r\n if (!env) {\r\n env = Object.assign({}, process.env)\r\n }\r\n if (typeof env !== 'object' || Array.isArray(env)) {\r\n throw new Error('Environment set is not an object.')\r\n }\r\n let setEnv = this.model.profile.setEnv\r\n let deleteEnv = this.model.profile.deleteEnv\r\n for (let key in setEnv) {\r\n env[key] = setEnv[key]\r\n }\r\n for (let key of deleteEnv) {\r\n delete env[key]\r\n }\r\n return env\r\n }\r\n\r\n getEncoding () {\r\n return this.model.profile.encoding\r\n }\r\n\r\n leaveOpenAfterExit () {\r\n return this.model.profile.leaveOpenAfterExit\r\n }\r\n\r\n isPromptToStartup () {\r\n return this.model.profile.promptToStartup\r\n }\r\n\r\n isPtyProcessRunning () {\r\n return (this.ptyProcess && this.ptyProcessRunning)\r\n }\r\n\r\n getXtermOptions () {\r\n let xtermOptions = {\r\n cursorBlink: true,\r\n experimentalCharAtlas: 'dynamic'\r\n }\r\n xtermOptions = Object.assign(xtermOptions, this.model.profile.xtermOptions)\r\n xtermOptions.fontSize = this.model.profile.fontSize\r\n // NOTE: The cloning is needed because the Terminal class modifies the\r\n // options passed to it.\r\n return this.profilesSingleton.deepClone(xtermOptions)\r\n }\r\n\r\n setMainBackgroundColor () {\r\n let xtermOptions = this.getXtermOptions()\r\n if (xtermOptions.theme && xtermOptions.theme.background) {\r\n this.style.backgroundColor = xtermOptions.theme.background\r\n } else {\r\n this.style.backgroundColor = '#000'\r\n }\r\n }\r\n\r\n createTerminal () {\r\n // Attach terminal emulator to this element and refit.\r\n this.setMainBackgroundColor()\r\n this.terminal = new Terminal(this.getXtermOptions())\r\n this.terminal.open(this.terminalDiv)\r\n this.ptyProcessCols = 80\r\n this.ptyProcessRows = 25\r\n this.refitTerminal()\r\n this.ptyProcess = null\r\n this.ptyProcessRunning = false\r\n this.terminal.on('data', (data) => {\r\n if (this.isPtyProcessRunning()) {\r\n this.ptyProcess.write(data)\r\n }\r\n })\r\n this.terminal.registerLinkMatcher(\r\n STRICT_URL_REGEX,\r\n (mouseEvent, uri) => {\r\n shell.openExternal(uri)\r\n },\r\n {\r\n matchIndex: 1,\r\n leaveCallback: () => {\r\n this.clearHoveredLink()\r\n },\r\n priority: 100,\r\n willLinkActivate: (mouseEvent, uri) => {\r\n this.setHoveredLink(uri)\r\n }\r\n }\r\n )\r\n this.disposables.add(this.profilesSingleton.onDidResetBaseProfile((baseProfile) => {\r\n let profileChanges = this.profilesSingleton.diffProfiles(\r\n this.model.getProfile(),\r\n {\r\n // Only allow changes to settings related to the terminal front end\r\n // to be applied to existing terminals.\r\n fontSize: baseProfile.fontSize,\r\n xtermOptions: baseProfile.xtermOptions\r\n }\r\n )\r\n this.model.applyProfileChanges(profileChanges)\r\n }))\r\n if (this.isPromptToStartup()) {\r\n return this.promptToStartup()\r\n }\r\n return this.restartPtyProcess()\r\n }\r\n\r\n showNotification (message, infoType, restartButtonText = 'Restart') {\r\n let messageDiv = document.createElement('div')\r\n let restartButton = document.createElement('button')\r\n restartButton.classList.add('btn')\r\n restartButton.appendChild(document.createTextNode(restartButtonText))\r\n restartButton.addEventListener('click', (event) => {\r\n this.restartPtyProcess()\r\n })\r\n restartButton.classList.add('btn-' + infoType)\r\n restartButton.classList.add('atom-xterm-restart-btn')\r\n messageDiv.classList.add('atom-xterm-notice-' + infoType)\r\n messageDiv.appendChild(document.createTextNode(message))\r\n messageDiv.appendChild(restartButton)\r\n this.topDiv.innerHTML = ''\r\n this.topDiv.appendChild(messageDiv)\r\n if (infoType === 'success') {\r\n atom.notifications.addSuccess(message)\r\n } else if (infoType === 'error') {\r\n atom.notifications.addError(message)\r\n } else if (infoType === 'warning') {\r\n atom.notifications.addWarning(message)\r\n } else if (infoType === 'info') {\r\n atom.notifications.addInfo(message)\r\n } else {\r\n throw new Error('Unknown info type: ' + infoType)\r\n }\r\n }\r\n\r\n promptToStartup () {\r\n return new Promise((resolve, reject) => {\r\n let message\r\n if (this.model.profile.title === null) {\r\n let command = [this.getShellCommand()]\r\n command.push(...this.getArgs())\r\n message = `New command ${JSON.stringify(command)} ready to start.`\r\n } else {\r\n message = `New command for profile ${this.model.profile.title} ready to start.`\r\n }\r\n this.showNotification(\r\n message,\r\n 'info',\r\n 'Start'\r\n )\r\n resolve()\r\n })\r\n }\r\n\r\n restartPtyProcess () {\r\n return new Promise((resolve, reject) => {\r\n this.getCwd().then((cwd) => {\r\n if (this.ptyProcessRunning) {\r\n this.ptyProcess.removeAllListeners('exit')\r\n this.ptyProcess.kill()\r\n }\r\n // Reset the terminal.\r\n this.atomXtermProfileMenuElement.hideProfileMenu()\r\n this.terminal.reset()\r\n\r\n // Setup pty process.\r\n this.ptyProcessCommand = this.getShellCommand()\r\n this.ptyProcessArgs = this.getArgs()\r\n let name = this.getTermType()\r\n let env = this.getEnv()\r\n let encoding = this.getEncoding()\r\n\r\n // Attach pty process to terminal.\r\n // NOTE: This must be done after the terminal is attached to the\r\n // parent element and refitted.\r\n this.ptyProcessOptions = {\r\n 'name': name,\r\n 'cwd': cwd,\r\n 'env': env\r\n }\r\n if (encoding) {\r\n // There's some issue if 'encoding=null' is passed in the options,\r\n // therefore, only set it if there's an actual encoding to set.\r\n this.ptyProcessOptions['encoding'] = encoding\r\n }\r\n\r\n this.ptyProcessOptions.cols = this.ptyProcessCols\r\n this.ptyProcessOptions.rows = this.ptyProcessRows\r\n this.ptyProcess = null\r\n this.ptyProcessRunning = false\r\n try {\r\n this.ptyProcess = spawnPty(this.ptyProcessCommand, this.ptyProcessArgs, this.ptyProcessOptions)\r\n } catch (err) {\r\n let message = 'Launching \\'' + this.ptyProcessCommand + '\\' raised the following error: ' + err.message\r\n if (err.message.startsWith('File not found:')) {\r\n message = 'Could not find command \\'' + this.ptyProcessCommand + '\\'.'\r\n }\r\n this.showNotification(\r\n message,\r\n 'error'\r\n )\r\n resolve()\r\n }\r\n if (this.ptyProcess) {\r\n this.ptyProcessRunning = true\r\n this.ptyProcess.on('data', (data) => {\r\n let oldTitle = this.model.title\r\n if (this.model.profile.title !== null) {\r\n this.model.title = this.model.profile.title\r\n } else if (process.platform !== 'win32') {\r\n this.model.title = this.ptyProcess.process\r\n }\r\n if (oldTitle !== this.model.title) {\r\n this.model.emitter.emit('did-change-title', this.model.title)\r\n }\r\n this.terminal.write(data)\r\n this.model.handleNewDataArrival()\r\n })\r\n this.ptyProcess.on('exit', (code, signal) => {\r\n this.ptyProcessRunning = false\r\n if (!this.leaveOpenAfterExit()) {\r\n this.model.exit()\r\n } else {\r\n if (code === 0) {\r\n this.showNotification(\r\n 'The terminal process has finished successfully.',\r\n 'success'\r\n )\r\n } else {\r\n this.showNotification(\r\n 'The terminal process has exited with failure code \\'' + code + '\\'.',\r\n 'error'\r\n )\r\n }\r\n }\r\n })\r\n this.topDiv.innerHTML = ''\r\n resolve()\r\n }\r\n })\r\n })\r\n }\r\n\r\n applyPendingTerminalProfileOptions () {\r\n // For any changes involving the xterm.js Terminal object, only apply them\r\n // when the terminal is visible.\r\n if (this.terminalDivIntersectionRatio === 1.0) {\r\n let xtermOptions = this.pendingTerminalProfileOptions.xtermOptions || {}\r\n // NOTE: For legacy reasons, the font size is defined from the 'fontSize'\r\n // key outside of any defined xterm.js Terminal options.\r\n delete xtermOptions.fontSize\r\n if (this.pendingTerminalProfileOptions.hasOwnProperty('fontSize')) {\r\n xtermOptions.fontSize = this.pendingTerminalProfileOptions.fontSize\r\n delete this.pendingTerminalProfileOptions.fontSize\r\n }\r\n this.setMainBackgroundColor()\r\n for (const key of Object.keys(xtermOptions)) {\r\n this.terminal.setOption(key, xtermOptions[key])\r\n }\r\n delete this.pendingTerminalProfileOptions.xtermOptions\r\n\r\n // Restart the pty process if changes to the pty process settings are\r\n // being made.\r\n // NOTE: When applying new pty settings, the terminal still needs to be\r\n // visible.\r\n let a = new Set(Object.keys(this.pendingTerminalProfileOptions))\r\n let intersection = new Set([...a].filter(x => PTY_PROCESS_OPTIONS.has(x)))\r\n if (intersection.size !== 0) {\r\n this.restartPtyProcess()\r\n for (const key of intersection) {\r\n delete this.pendingTerminalProfileOptions[key]\r\n }\r\n }\r\n\r\n this.refitTerminal()\r\n }\r\n\r\n // atom-xterm specific options can be removed since at this point they\r\n // should already be applied in the terminal's profile.\r\n for (const key of ATOM_XTERM_OPTIONS) {\r\n delete this.pendingTerminalProfileOptions[key]\r\n }\r\n }\r\n\r\n refitTerminal () {\r\n // Only refit the terminal when it is completely visible.\r\n if (this.terminalDivIntersectionRatio === 1.0) {\r\n const geometry = this.terminal.proposeGeometry()\r\n if (geometry) {\r\n // Resize terminal\r\n let newTerminalCols = geometry.cols\r\n if (process.platform === 'win32' && newTerminalCols < this.terminal.cols) {\r\n // In Windows, resizing to smaller amount of columns poses a problem.\r\n // Workaround this by only allowing increasing the number of columns.\r\n // See also\r\n // https://github.com/amejia1/atom-xterm/issues/10 .\r\n newTerminalCols = this.terminal.cols\r\n }\r\n if (geometry.rows !== this.terminal.rows || newTerminalCols !== this.terminal.cols) {\r\n this.terminal.resize(newTerminalCols, geometry.rows)\r\n }\r\n\r\n // Resize pty process\r\n if (this.isPtyProcessRunning()) {\r\n if (this.ptyProcessCols !== geometry.cols || this.ptyProcessRows !== geometry.rows) {\r\n this.ptyProcess.resize(geometry.cols, geometry.rows)\r\n }\r\n }\r\n this.ptyProcessCols = geometry.cols\r\n this.ptyProcessRows = geometry.rows\r\n }\r\n }\r\n }\r\n\r\n focusOnTerminal () {\r\n if (this.terminal) {\r\n this.terminal.focus()\r\n }\r\n }\r\n\r\n toggleProfileMenu () {\r\n // The profile menu needs to be initialized before it can be toggled.\r\n this.atomXtermProfileMenuElement.initializedPromise.then(() => {\r\n this.atomXtermProfileMenuElement.toggleProfileMenu()\r\n })\r\n }\r\n\r\n hideTerminal () {\r\n this.terminalDiv.style.visibility = 'hidden'\r\n }\r\n\r\n showTerminal () {\r\n this.terminalDiv.style.visibility = 'visible'\r\n }\r\n\r\n setHoveredLink (link) {\r\n this.hoveredLink = link\r\n this.terminalDiv.classList.add('atom-xterm-term-container-has-link')\r\n }\r\n\r\n clearHoveredLink () {\r\n this.terminalDiv.classList.remove('atom-xterm-term-container-has-link')\r\n this.hoveredLink = null\r\n }\r\n\r\n openHoveredLink () {\r\n if (this.hoveredLink) {\r\n shell.openExternal(this.hoveredLink)\r\n }\r\n }\r\n\r\n getHoveredLink () {\r\n if (this.hoveredLink) {\r\n return this.hoveredLink\r\n }\r\n }\r\n\r\n queueNewProfileChanges (profileChanges) {\r\n this.pendingTerminalProfileOptions = Object.assign(this.pendingTerminalProfileOptions, profileChanges)\r\n this.applyPendingTerminalProfileOptions()\r\n }\r\n}\r\n\r\nconst AtomXtermElement = document.registerElement('atom-xterm', {\r\n prototype: AtomXtermElementImpl.prototype\r\n})\r\n\r\nexport {\r\n AtomXtermElement\r\n}\r\n","function _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nmodule.exports = _interopRequireWildcard;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","module.exports = __WEBPACK_EXTERNAL_MODULE__85__;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Terminal_1 = require(\"../Terminal\");\nvar Strings = require(\"../Strings\");\nvar Terminal = (function () {\n function Terminal(options) {\n this._core = new Terminal_1.Terminal(options);\n }\n Object.defineProperty(Terminal.prototype, \"element\", {\n get: function () { return this._core.element; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"textarea\", {\n get: function () { return this._core.textarea; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"rows\", {\n get: function () { return this._core.rows; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"cols\", {\n get: function () { return this._core.cols; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"markers\", {\n get: function () { return this._core.markers; },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.blur = function () {\n this._core.blur();\n };\n Terminal.prototype.focus = function () {\n this._core.focus();\n };\n Terminal.prototype.on = function (type, listener) {\n this._core.on(type, listener);\n };\n Terminal.prototype.off = function (type, listener) {\n this._core.off(type, listener);\n };\n Terminal.prototype.emit = function (type, data) {\n this._core.emit(type, data);\n };\n Terminal.prototype.addDisposableListener = function (type, handler) {\n return this._core.addDisposableListener(type, handler);\n };\n Terminal.prototype.resize = function (columns, rows) {\n this._core.resize(columns, rows);\n };\n Terminal.prototype.writeln = function (data) {\n this._core.writeln(data);\n };\n Terminal.prototype.open = function (parent) {\n this._core.open(parent);\n };\n Terminal.prototype.attachCustomKeyEventHandler = function (customKeyEventHandler) {\n this._core.attachCustomKeyEventHandler(customKeyEventHandler);\n };\n Terminal.prototype.registerLinkMatcher = function (regex, handler, options) {\n return this._core.registerLinkMatcher(regex, handler, options);\n };\n Terminal.prototype.deregisterLinkMatcher = function (matcherId) {\n this._core.deregisterLinkMatcher(matcherId);\n };\n Terminal.prototype.registerCharacterJoiner = function (handler) {\n return this._core.registerCharacterJoiner(handler);\n };\n Terminal.prototype.deregisterCharacterJoiner = function (joinerId) {\n this._core.deregisterCharacterJoiner(joinerId);\n };\n Terminal.prototype.addMarker = function (cursorYOffset) {\n return this._core.addMarker(cursorYOffset);\n };\n Terminal.prototype.hasSelection = function () {\n return this._core.hasSelection();\n };\n Terminal.prototype.getSelection = function () {\n return this._core.getSelection();\n };\n Terminal.prototype.clearSelection = function () {\n this._core.clearSelection();\n };\n Terminal.prototype.selectAll = function () {\n this._core.selectAll();\n };\n Terminal.prototype.selectLines = function (start, end) {\n this._core.selectLines(start, end);\n };\n Terminal.prototype.dispose = function () {\n this._core.dispose();\n };\n Terminal.prototype.destroy = function () {\n this._core.destroy();\n };\n Terminal.prototype.scrollLines = function (amount) {\n this._core.scrollLines(amount);\n };\n Terminal.prototype.scrollPages = function (pageCount) {\n this._core.scrollPages(pageCount);\n };\n Terminal.prototype.scrollToTop = function () {\n this._core.scrollToTop();\n };\n Terminal.prototype.scrollToBottom = function () {\n this._core.scrollToBottom();\n };\n Terminal.prototype.scrollToLine = function (line) {\n this._core.scrollToLine(line);\n };\n Terminal.prototype.clear = function () {\n this._core.clear();\n };\n Terminal.prototype.write = function (data) {\n this._core.write(data);\n };\n Terminal.prototype.getOption = function (key) {\n return this._core.getOption(key);\n };\n Terminal.prototype.setOption = function (key, value) {\n this._core.setOption(key, value);\n };\n Terminal.prototype.refresh = function (start, end) {\n this._core.refresh(start, end);\n };\n Terminal.prototype.reset = function () {\n this._core.reset();\n };\n Terminal.applyAddon = function (addon) {\n addon.apply(Terminal);\n };\n Object.defineProperty(Terminal, \"strings\", {\n get: function () {\n return Strings;\n },\n enumerable: true,\n configurable: true\n });\n return Terminal;\n}());\nexports.Terminal = Terminal;\n//# sourceMappingURL=Terminal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BufferSet_1 = require(\"./BufferSet\");\nvar Buffer_1 = require(\"./Buffer\");\nvar CompositionHelper_1 = require(\"./CompositionHelper\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar Viewport_1 = require(\"./Viewport\");\nvar Clipboard_1 = require(\"./handlers/Clipboard\");\nvar EscapeSequences_1 = require(\"./common/data/EscapeSequences\");\nvar InputHandler_1 = require(\"./InputHandler\");\nvar Renderer_1 = require(\"./renderer/Renderer\");\nvar Linkifier_1 = require(\"./Linkifier\");\nvar SelectionManager_1 = require(\"./SelectionManager\");\nvar CharMeasure_1 = require(\"./ui/CharMeasure\");\nvar Browser = require(\"./shared/utils/Browser\");\nvar Lifecycle_1 = require(\"./ui/Lifecycle\");\nvar Strings = require(\"./Strings\");\nvar MouseHelper_1 = require(\"./utils/MouseHelper\");\nvar Clone_1 = require(\"./utils/Clone\");\nvar SoundManager_1 = require(\"./SoundManager\");\nvar ColorManager_1 = require(\"./renderer/ColorManager\");\nvar MouseZoneManager_1 = require(\"./ui/MouseZoneManager\");\nvar AccessibilityManager_1 = require(\"./AccessibilityManager\");\nvar ScreenDprMonitor_1 = require(\"./ui/ScreenDprMonitor\");\nvar CharAtlasCache_1 = require(\"./renderer/atlas/CharAtlasCache\");\nvar DomRenderer_1 = require(\"./renderer/dom/DomRenderer\");\nvar Keyboard_1 = require(\"./core/input/Keyboard\");\nvar document = (typeof window !== 'undefined') ? window.document : null;\nvar WRITE_BUFFER_PAUSE_THRESHOLD = 5;\nvar WRITE_BATCH_SIZE = 300;\nvar CONSTRUCTOR_ONLY_OPTIONS = ['cols', 'rows'];\nvar DEFAULT_OPTIONS = {\n cols: 80,\n rows: 24,\n convertEol: false,\n termName: 'xterm',\n cursorBlink: false,\n cursorStyle: 'block',\n bellSound: SoundManager_1.DEFAULT_BELL_SOUND,\n bellStyle: 'none',\n drawBoldTextInBrightColors: true,\n enableBold: true,\n experimentalCharAtlas: 'static',\n fontFamily: 'courier-new, courier, monospace',\n fontSize: 15,\n fontWeight: 'normal',\n fontWeightBold: 'bold',\n lineHeight: 1.0,\n letterSpacing: 0,\n scrollback: 1000,\n screenKeys: false,\n screenReaderMode: false,\n debug: false,\n macOptionIsMeta: false,\n macOptionClickForcesSelection: false,\n cancelEvents: false,\n disableStdin: false,\n useFlowControl: false,\n allowTransparency: false,\n tabStopWidth: 8,\n theme: null,\n rightClickSelectsWord: Browser.isMac,\n rendererType: 'canvas'\n};\nvar Terminal = (function (_super) {\n __extends(Terminal, _super);\n function Terminal(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this) || this;\n _this.browser = Browser;\n _this.options = Clone_1.clone(options);\n _this._setup();\n return _this;\n }\n Terminal.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._customKeyEventHandler = null;\n CharAtlasCache_1.removeTerminalFromCache(this);\n this.handler = function () { };\n this.write = function () { };\n if (this.element && this.element.parentNode) {\n this.element.parentNode.removeChild(this.element);\n }\n };\n Terminal.prototype.destroy = function () {\n this.dispose();\n };\n Terminal.prototype._setup = function () {\n var _this = this;\n Object.keys(DEFAULT_OPTIONS).forEach(function (key) {\n if (_this.options[key] == null) {\n _this.options[key] = DEFAULT_OPTIONS[key];\n }\n });\n this._parent = document ? document.body : null;\n this.cols = this.options.cols;\n this.rows = this.options.rows;\n if (this.options.handler) {\n this.on('data', this.options.handler);\n }\n this.cursorState = 0;\n this.cursorHidden = false;\n this._customKeyEventHandler = null;\n this.applicationKeypad = false;\n this.applicationCursor = false;\n this.originMode = false;\n this.insertMode = false;\n this.wraparoundMode = true;\n this.bracketedPasteMode = false;\n this.charset = null;\n this.gcharset = null;\n this.glevel = 0;\n this.charsets = [null];\n this.curAttr = Buffer_1.DEFAULT_ATTR;\n this.params = [];\n this.currentParam = 0;\n this.writeBuffer = [];\n this._writeInProgress = false;\n this._xoffSentToCatchUp = false;\n this._userScrolling = false;\n this._inputHandler = new InputHandler_1.InputHandler(this);\n this.register(this._inputHandler);\n this.renderer = this.renderer || null;\n this.selectionManager = this.selectionManager || null;\n this.linkifier = this.linkifier || new Linkifier_1.Linkifier(this);\n this._mouseZoneManager = this._mouseZoneManager || null;\n this.soundManager = this.soundManager || new SoundManager_1.SoundManager(this);\n this.buffers = new BufferSet_1.BufferSet(this);\n if (this.selectionManager) {\n this.selectionManager.clearSelection();\n this.selectionManager.initBuffersListeners();\n }\n };\n Object.defineProperty(Terminal.prototype, \"buffer\", {\n get: function () {\n return this.buffers.active;\n },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.eraseAttr = function () {\n return (Buffer_1.DEFAULT_ATTR & ~0x1ff) | (this.curAttr & 0x1ff);\n };\n Terminal.prototype.focus = function () {\n if (this.textarea) {\n this.textarea.focus();\n }\n };\n Object.defineProperty(Terminal.prototype, \"isFocused\", {\n get: function () {\n return document.activeElement === this.textarea;\n },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.getOption = function (key) {\n if (!(key in DEFAULT_OPTIONS)) {\n throw new Error('No option with key \"' + key + '\"');\n }\n return this.options[key];\n };\n Terminal.prototype.setOption = function (key, value) {\n if (!(key in DEFAULT_OPTIONS)) {\n throw new Error('No option with key \"' + key + '\"');\n }\n if (CONSTRUCTOR_ONLY_OPTIONS.indexOf(key) !== -1) {\n console.error(\"Option \\\"\" + key + \"\\\" can only be set in the constructor\");\n }\n if (this.options[key] === value) {\n return;\n }\n switch (key) {\n case 'bellStyle':\n if (!value) {\n value = 'none';\n }\n break;\n case 'cursorStyle':\n if (!value) {\n value = 'block';\n }\n break;\n case 'fontWeight':\n if (!value) {\n value = 'normal';\n }\n break;\n case 'fontWeightBold':\n if (!value) {\n value = 'bold';\n }\n break;\n case 'lineHeight':\n if (value < 1) {\n console.warn(key + \" cannot be less than 1, value: \" + value);\n return;\n }\n case 'rendererType':\n if (!value) {\n value = 'canvas';\n }\n break;\n case 'tabStopWidth':\n if (value < 1) {\n console.warn(key + \" cannot be less than 1, value: \" + value);\n return;\n }\n break;\n case 'theme':\n if (this.renderer) {\n this._setTheme(value);\n return;\n }\n break;\n case 'scrollback':\n value = Math.min(value, Buffer_1.MAX_BUFFER_SIZE);\n if (value < 0) {\n console.warn(key + \" cannot be less than 0, value: \" + value);\n return;\n }\n if (this.options[key] !== value) {\n var newBufferLength = this.rows + value;\n if (this.buffer.lines.length > newBufferLength) {\n var amountToTrim = this.buffer.lines.length - newBufferLength;\n var needsRefresh = (this.buffer.ydisp - amountToTrim < 0);\n this.buffer.lines.trimStart(amountToTrim);\n this.buffer.ybase = Math.max(this.buffer.ybase - amountToTrim, 0);\n this.buffer.ydisp = Math.max(this.buffer.ydisp - amountToTrim, 0);\n if (needsRefresh) {\n this.refresh(0, this.rows - 1);\n }\n }\n }\n break;\n }\n this.options[key] = value;\n switch (key) {\n case 'fontFamily':\n case 'fontSize':\n if (this.renderer) {\n this.renderer.clear();\n this.charMeasure.measure(this.options);\n }\n break;\n case 'drawBoldTextInBrightColors':\n case 'experimentalCharAtlas':\n case 'enableBold':\n case 'letterSpacing':\n case 'lineHeight':\n case 'fontWeight':\n case 'fontWeightBold':\n if (this.renderer) {\n this.renderer.clear();\n this.renderer.onResize(this.cols, this.rows);\n this.refresh(0, this.rows - 1);\n }\n case 'rendererType':\n if (this.renderer) {\n this.unregister(this.renderer);\n this.renderer.dispose();\n this.renderer = null;\n }\n this._setupRenderer();\n this.renderer.onCharSizeChanged();\n if (this._theme) {\n this.renderer.setTheme(this._theme);\n }\n break;\n case 'scrollback':\n this.buffers.resize(this.cols, this.rows);\n if (this.viewport) {\n this.viewport.syncScrollArea();\n }\n break;\n case 'screenReaderMode':\n if (value) {\n if (!this._accessibilityManager) {\n this._accessibilityManager = new AccessibilityManager_1.AccessibilityManager(this);\n }\n }\n else {\n if (this._accessibilityManager) {\n this._accessibilityManager.dispose();\n this._accessibilityManager = null;\n }\n }\n break;\n case 'tabStopWidth':\n this.buffers.setupTabStops();\n break;\n }\n if (this.renderer) {\n this.renderer.onOptionsChanged();\n }\n };\n Terminal.prototype._onTextAreaFocus = function () {\n if (this.sendFocus) {\n this.handler(EscapeSequences_1.C0.ESC + '[I');\n }\n this.element.classList.add('focus');\n this.showCursor();\n this.emit('focus');\n };\n Terminal.prototype.blur = function () {\n return this.textarea.blur();\n };\n Terminal.prototype._onTextAreaBlur = function () {\n this.textarea.value = '';\n this.refresh(this.buffer.y, this.buffer.y);\n if (this.sendFocus) {\n this.handler(EscapeSequences_1.C0.ESC + '[O');\n }\n this.element.classList.remove('focus');\n this.emit('blur');\n };\n Terminal.prototype._initGlobal = function () {\n var _this = this;\n this._bindKeys();\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'copy', function (event) {\n if (!_this.hasSelection()) {\n return;\n }\n Clipboard_1.copyHandler(event, _this, _this.selectionManager);\n }));\n var pasteHandlerWrapper = function (event) { return Clipboard_1.pasteHandler(event, _this); };\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'paste', pasteHandlerWrapper));\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'paste', pasteHandlerWrapper));\n if (Browser.isFirefox) {\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'mousedown', function (event) {\n if (event.button === 2) {\n Clipboard_1.rightClickHandler(event, _this.textarea, _this.selectionManager, _this.options.rightClickSelectsWord);\n }\n }));\n }\n else {\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'contextmenu', function (event) {\n Clipboard_1.rightClickHandler(event, _this.textarea, _this.selectionManager, _this.options.rightClickSelectsWord);\n }));\n }\n if (Browser.isLinux) {\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'auxclick', function (event) {\n if (event.button === 1) {\n Clipboard_1.moveTextAreaUnderMouseCursor(event, _this.textarea);\n }\n }));\n }\n };\n Terminal.prototype._bindKeys = function () {\n var _this = this;\n var self = this;\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keydown', function (ev) {\n if (document.activeElement !== this) {\n return;\n }\n self._keyDown(ev);\n }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keypress', function (ev) {\n if (document.activeElement !== this) {\n return;\n }\n self._keyPress(ev);\n }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keyup', function (ev) {\n if (!wasModifierKeyOnlyEvent(ev)) {\n _this.focus();\n }\n self._keyUp(ev);\n }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'keydown', function (ev) { return _this._keyDown(ev); }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'keypress', function (ev) { return _this._keyPress(ev); }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionstart', function () { return _this._compositionHelper.compositionstart(); }));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionupdate', function (e) { return _this._compositionHelper.compositionupdate(e); }));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionend', function () { return _this._compositionHelper.compositionend(); }));\n this.register(this.addDisposableListener('refresh', function () { return _this._compositionHelper.updateCompositionElements(); }));\n this.register(this.addDisposableListener('refresh', function (data) { return _this._queueLinkification(data.start, data.end); }));\n };\n Terminal.prototype.open = function (parent) {\n var _this = this;\n this._parent = parent || this._parent;\n if (!this._parent) {\n throw new Error('Terminal requires a parent element.');\n }\n this._context = this._parent.ownerDocument.defaultView;\n this._document = this._parent.ownerDocument;\n this._screenDprMonitor = new ScreenDprMonitor_1.ScreenDprMonitor();\n this._screenDprMonitor.setListener(function () { return _this.emit('dprchange', window.devicePixelRatio); });\n this.register(this._screenDprMonitor);\n this.element = this._document.createElement('div');\n this.element.dir = 'ltr';\n this.element.classList.add('terminal');\n this.element.classList.add('xterm');\n this.element.setAttribute('tabindex', '0');\n this._parent.appendChild(this.element);\n var fragment = document.createDocumentFragment();\n this._viewportElement = document.createElement('div');\n this._viewportElement.classList.add('xterm-viewport');\n fragment.appendChild(this._viewportElement);\n this._viewportScrollArea = document.createElement('div');\n this._viewportScrollArea.classList.add('xterm-scroll-area');\n this._viewportElement.appendChild(this._viewportScrollArea);\n this.screenElement = document.createElement('div');\n this.screenElement.classList.add('xterm-screen');\n this._helperContainer = document.createElement('div');\n this._helperContainer.classList.add('xterm-helpers');\n this.screenElement.appendChild(this._helperContainer);\n fragment.appendChild(this.screenElement);\n this._mouseZoneManager = new MouseZoneManager_1.MouseZoneManager(this);\n this.register(this._mouseZoneManager);\n this.register(this.addDisposableListener('scroll', function () { return _this._mouseZoneManager.clearAll(); }));\n this.linkifier.attachToDom(this._mouseZoneManager);\n this.textarea = document.createElement('textarea');\n this.textarea.classList.add('xterm-helper-textarea');\n this.textarea.setAttribute('aria-label', Strings.promptLabel);\n this.textarea.setAttribute('aria-multiline', 'false');\n this.textarea.setAttribute('autocorrect', 'off');\n this.textarea.setAttribute('autocapitalize', 'off');\n this.textarea.setAttribute('spellcheck', 'false');\n this.textarea.tabIndex = 0;\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'focus', function () { return _this._onTextAreaFocus(); }));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'blur', function () { return _this._onTextAreaBlur(); }));\n this._helperContainer.appendChild(this.textarea);\n this._compositionView = document.createElement('div');\n this._compositionView.classList.add('composition-view');\n this._compositionHelper = new CompositionHelper_1.CompositionHelper(this.textarea, this._compositionView, this);\n this._helperContainer.appendChild(this._compositionView);\n this.charMeasure = new CharMeasure_1.CharMeasure(document, this._helperContainer);\n this.element.appendChild(fragment);\n this._setupRenderer();\n this._theme = this.options.theme;\n this.options.theme = null;\n this.viewport = new Viewport_1.Viewport(this, this._viewportElement, this._viewportScrollArea, this.charMeasure);\n this.viewport.onThemeChanged(this.renderer.colorManager.colors);\n this.register(this.viewport);\n this.register(this.addDisposableListener('cursormove', function () { return _this.renderer.onCursorMove(); }));\n this.register(this.addDisposableListener('resize', function () { return _this.renderer.onResize(_this.cols, _this.rows); }));\n this.register(this.addDisposableListener('blur', function () { return _this.renderer.onBlur(); }));\n this.register(this.addDisposableListener('focus', function () { return _this.renderer.onFocus(); }));\n this.register(this.addDisposableListener('dprchange', function () { return _this.renderer.onWindowResize(window.devicePixelRatio); }));\n this.register(Lifecycle_1.addDisposableDomListener(window, 'resize', function () { return _this.renderer.onWindowResize(window.devicePixelRatio); }));\n this.register(this.charMeasure.addDisposableListener('charsizechanged', function () { return _this.renderer.onCharSizeChanged(); }));\n this.register(this.renderer.addDisposableListener('resize', function (dimensions) { return _this.viewport.syncScrollArea(); }));\n this.selectionManager = new SelectionManager_1.SelectionManager(this, this.charMeasure);\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'mousedown', function (e) { return _this.selectionManager.onMouseDown(e); }));\n this.register(this.selectionManager.addDisposableListener('refresh', function (data) { return _this.renderer.onSelectionChanged(data.start, data.end, data.columnSelectMode); }));\n this.register(this.selectionManager.addDisposableListener('newselection', function (text) {\n _this.textarea.value = text;\n _this.textarea.focus();\n _this.textarea.select();\n }));\n this.register(this.addDisposableListener('scroll', function () {\n _this.viewport.syncScrollArea();\n _this.selectionManager.refresh();\n }));\n this.register(Lifecycle_1.addDisposableDomListener(this._viewportElement, 'scroll', function () { return _this.selectionManager.refresh(); }));\n this.mouseHelper = new MouseHelper_1.MouseHelper(this.renderer);\n if (this.options.screenReaderMode) {\n this._accessibilityManager = new AccessibilityManager_1.AccessibilityManager(this);\n }\n this.charMeasure.measure(this.options);\n this.refresh(0, this.rows - 1);\n this._initGlobal();\n this.bindMouse();\n };\n Terminal.prototype._setupRenderer = function () {\n switch (this.options.rendererType) {\n case 'canvas':\n this.renderer = new Renderer_1.Renderer(this, this.options.theme);\n break;\n case 'dom':\n this.renderer = new DomRenderer_1.DomRenderer(this, this.options.theme);\n break;\n default: throw new Error(\"Unrecognized rendererType \\\"\" + this.options.rendererType + \"\\\"\");\n }\n this.register(this.renderer);\n };\n Terminal.prototype._setTheme = function (theme) {\n this._theme = theme;\n var colors = this.renderer.setTheme(theme);\n if (this.viewport) {\n this.viewport.onThemeChanged(colors);\n }\n };\n Terminal.prototype.bindMouse = function () {\n var _this = this;\n var el = this.element;\n var self = this;\n var pressed = 32;\n function sendButton(ev) {\n var button;\n var pos;\n button = getButton(ev);\n pos = self.mouseHelper.getRawByteCoords(ev, self.screenElement, self.charMeasure, self.options.lineHeight, self.cols, self.rows);\n if (!pos)\n return;\n sendEvent(button, pos);\n switch (ev.overrideType || ev.type) {\n case 'mousedown':\n pressed = button;\n break;\n case 'mouseup':\n pressed = 32;\n break;\n case 'wheel':\n break;\n }\n }\n function sendMove(ev) {\n var button = pressed;\n var pos = self.mouseHelper.getRawByteCoords(ev, self.screenElement, self.charMeasure, self.options.lineHeight, self.cols, self.rows);\n if (!pos)\n return;\n button += 32;\n sendEvent(button, pos);\n }\n function encode(data, ch) {\n if (!self.utfMouse) {\n if (ch === 255) {\n data.push(0);\n return;\n }\n if (ch > 127)\n ch = 127;\n data.push(ch);\n }\n else {\n if (ch === 2047) {\n data.push(0);\n return;\n }\n if (ch < 127) {\n data.push(ch);\n }\n else {\n if (ch > 2047)\n ch = 2047;\n data.push(0xC0 | (ch >> 6));\n data.push(0x80 | (ch & 0x3F));\n }\n }\n }\n function sendEvent(button, pos) {\n if (self._vt300Mouse) {\n button &= 3;\n pos.x -= 32;\n pos.y -= 32;\n var data_1 = EscapeSequences_1.C0.ESC + '[24';\n if (button === 0)\n data_1 += '1';\n else if (button === 1)\n data_1 += '3';\n else if (button === 2)\n data_1 += '5';\n else if (button === 3)\n return;\n else\n data_1 += '0';\n data_1 += '~[' + pos.x + ',' + pos.y + ']\\r';\n self.handler(data_1);\n return;\n }\n if (self._decLocator) {\n button &= 3;\n pos.x -= 32;\n pos.y -= 32;\n if (button === 0)\n button = 2;\n else if (button === 1)\n button = 4;\n else if (button === 2)\n button = 6;\n else if (button === 3)\n button = 3;\n self.handler(EscapeSequences_1.C0.ESC + '['\n + button\n + ';'\n + (button === 3 ? 4 : 0)\n + ';'\n + pos.y\n + ';'\n + pos.x\n + ';'\n + pos.page || 0\n + '&w');\n return;\n }\n if (self.urxvtMouse) {\n pos.x -= 32;\n pos.y -= 32;\n pos.x++;\n pos.y++;\n self.handler(EscapeSequences_1.C0.ESC + '[' + button + ';' + pos.x + ';' + pos.y + 'M');\n return;\n }\n if (self.sgrMouse) {\n pos.x -= 32;\n pos.y -= 32;\n self.handler(EscapeSequences_1.C0.ESC + '[<'\n + (((button & 3) === 3 ? button & ~3 : button) - 32)\n + ';'\n + pos.x\n + ';'\n + pos.y\n + ((button & 3) === 3 ? 'm' : 'M'));\n return;\n }\n var data = [];\n encode(data, button);\n encode(data, pos.x);\n encode(data, pos.y);\n self.handler(EscapeSequences_1.C0.ESC + '[M' + String.fromCharCode.apply(String, data));\n }\n function getButton(ev) {\n var button;\n var shift;\n var meta;\n var ctrl;\n var mod;\n switch (ev.overrideType || ev.type) {\n case 'mousedown':\n button = ev.button != null\n ? +ev.button\n : ev.which != null\n ? ev.which - 1\n : null;\n if (Browser.isMSIE) {\n button = button === 1 ? 0 : button === 4 ? 1 : button;\n }\n break;\n case 'mouseup':\n button = 3;\n break;\n case 'DOMMouseScroll':\n button = ev.detail < 0\n ? 64\n : 65;\n break;\n case 'wheel':\n button = ev.wheelDeltaY > 0\n ? 64\n : 65;\n break;\n }\n shift = ev.shiftKey ? 4 : 0;\n meta = ev.metaKey ? 8 : 0;\n ctrl = ev.ctrlKey ? 16 : 0;\n mod = shift | meta | ctrl;\n if (self.vt200Mouse) {\n mod &= ctrl;\n }\n else if (!self.normalMouse) {\n mod = 0;\n }\n button = (32 + (mod << 2)) + button;\n return button;\n }\n this.register(Lifecycle_1.addDisposableDomListener(el, 'mousedown', function (ev) {\n ev.preventDefault();\n _this.focus();\n if (!_this.mouseEvents || _this.selectionManager.shouldForceSelection(ev)) {\n return;\n }\n sendButton(ev);\n if (_this.vt200Mouse) {\n ev.overrideType = 'mouseup';\n sendButton(ev);\n return _this.cancel(ev);\n }\n var moveHandler;\n if (_this.normalMouse) {\n moveHandler = function (event) {\n if (!_this.normalMouse) {\n return;\n }\n sendMove(event);\n };\n _this._document.addEventListener('mousemove', moveHandler);\n }\n var handler = function (ev) {\n if (_this.normalMouse && !_this.x10Mouse) {\n sendButton(ev);\n }\n if (moveHandler) {\n _this._document.removeEventListener('mousemove', moveHandler);\n moveHandler = null;\n }\n _this._document.removeEventListener('mouseup', handler);\n return _this.cancel(ev);\n };\n _this._document.addEventListener('mouseup', handler);\n return _this.cancel(ev);\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'wheel', function (ev) {\n if (!_this.mouseEvents) {\n if (!_this.buffer.hasScrollback) {\n var amount = _this.viewport.getLinesScrolled(ev);\n if (amount === 0) {\n return;\n }\n var sequence = EscapeSequences_1.C0.ESC + (_this.applicationCursor ? 'O' : '[') + (ev.deltaY < 0 ? 'A' : 'B');\n var data = '';\n for (var i = 0; i < Math.abs(amount); i++) {\n data += sequence;\n }\n _this.handler(data);\n }\n return;\n }\n if (_this.x10Mouse || _this._vt300Mouse || _this._decLocator)\n return;\n sendButton(ev);\n ev.preventDefault();\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'wheel', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onWheel(ev);\n return _this.cancel(ev);\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'touchstart', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onTouchStart(ev);\n return _this.cancel(ev);\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'touchmove', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onTouchMove(ev);\n return _this.cancel(ev);\n }));\n };\n Terminal.prototype.refresh = function (start, end) {\n if (this.renderer) {\n this.renderer.refreshRows(start, end);\n }\n };\n Terminal.prototype._queueLinkification = function (start, end) {\n if (this.linkifier) {\n this.linkifier.linkifyRows(start, end);\n }\n };\n Terminal.prototype.updateCursorStyle = function (ev) {\n if (this.selectionManager && this.selectionManager.shouldColumnSelect(ev)) {\n this.element.classList.add('xterm-cursor-crosshair');\n }\n else {\n this.element.classList.remove('xterm-cursor-crosshair');\n }\n };\n Terminal.prototype.showCursor = function () {\n if (!this.cursorState) {\n this.cursorState = 1;\n this.refresh(this.buffer.y, this.buffer.y);\n }\n };\n Terminal.prototype.scroll = function (isWrapped) {\n var newLine = this.blankLine(undefined, isWrapped);\n var topRow = this.buffer.ybase + this.buffer.scrollTop;\n var bottomRow = this.buffer.ybase + this.buffer.scrollBottom;\n if (this.buffer.scrollTop === 0) {\n var willBufferBeTrimmed = this.buffer.lines.length === this.buffer.lines.maxLength;\n if (bottomRow === this.buffer.lines.length - 1) {\n this.buffer.lines.push(newLine);\n }\n else {\n this.buffer.lines.splice(bottomRow + 1, 0, newLine);\n }\n if (!willBufferBeTrimmed) {\n this.buffer.ybase++;\n if (!this._userScrolling) {\n this.buffer.ydisp++;\n }\n }\n else {\n if (this._userScrolling) {\n this.buffer.ydisp = Math.max(this.buffer.ydisp - 1, 0);\n }\n }\n }\n else {\n var scrollRegionHeight = bottomRow - topRow + 1;\n this.buffer.lines.shiftElements(topRow + 1, scrollRegionHeight - 1, -1);\n this.buffer.lines.set(bottomRow, newLine);\n }\n if (!this._userScrolling) {\n this.buffer.ydisp = this.buffer.ybase;\n }\n this.updateRange(this.buffer.scrollTop);\n this.updateRange(this.buffer.scrollBottom);\n this.emit('scroll', this.buffer.ydisp);\n };\n Terminal.prototype.scrollLines = function (disp, suppressScrollEvent) {\n if (disp < 0) {\n if (this.buffer.ydisp === 0) {\n return;\n }\n this._userScrolling = true;\n }\n else if (disp + this.buffer.ydisp >= this.buffer.ybase) {\n this._userScrolling = false;\n }\n var oldYdisp = this.buffer.ydisp;\n this.buffer.ydisp = Math.max(Math.min(this.buffer.ydisp + disp, this.buffer.ybase), 0);\n if (oldYdisp === this.buffer.ydisp) {\n return;\n }\n if (!suppressScrollEvent) {\n this.emit('scroll', this.buffer.ydisp);\n }\n this.refresh(0, this.rows - 1);\n };\n Terminal.prototype.scrollPages = function (pageCount) {\n this.scrollLines(pageCount * (this.rows - 1));\n };\n Terminal.prototype.scrollToTop = function () {\n this.scrollLines(-this.buffer.ydisp);\n };\n Terminal.prototype.scrollToBottom = function () {\n this.scrollLines(this.buffer.ybase - this.buffer.ydisp);\n };\n Terminal.prototype.scrollToLine = function (line) {\n var scrollAmount = line - this.buffer.ydisp;\n if (scrollAmount !== 0) {\n this.scrollLines(scrollAmount);\n }\n };\n Terminal.prototype.write = function (data) {\n var _this = this;\n if (this._isDisposed) {\n return;\n }\n if (!data) {\n return;\n }\n this.writeBuffer.push(data);\n if (this.options.useFlowControl && !this._xoffSentToCatchUp && this.writeBuffer.length >= WRITE_BUFFER_PAUSE_THRESHOLD) {\n this.handler(EscapeSequences_1.C0.DC3);\n this._xoffSentToCatchUp = true;\n }\n if (!this._writeInProgress && this.writeBuffer.length > 0) {\n this._writeInProgress = true;\n setTimeout(function () {\n _this._innerWrite();\n });\n }\n };\n Terminal.prototype._innerWrite = function () {\n var _this = this;\n if (this._isDisposed) {\n this.writeBuffer = [];\n }\n var writeBatch = this.writeBuffer.splice(0, WRITE_BATCH_SIZE);\n while (writeBatch.length > 0) {\n var data = writeBatch.shift();\n if (this._xoffSentToCatchUp && writeBatch.length === 0 && this.writeBuffer.length === 0) {\n this.handler(EscapeSequences_1.C0.DC1);\n this._xoffSentToCatchUp = false;\n }\n this._refreshStart = this.buffer.y;\n this._refreshEnd = this.buffer.y;\n this._inputHandler.parse(data);\n this.updateRange(this.buffer.y);\n this.refresh(this._refreshStart, this._refreshEnd);\n }\n if (this.writeBuffer.length > 0) {\n setTimeout(function () { return _this._innerWrite(); }, 0);\n }\n else {\n this._writeInProgress = false;\n }\n };\n Terminal.prototype.writeln = function (data) {\n this.write(data + '\\r\\n');\n };\n Terminal.prototype.attachCustomKeyEventHandler = function (customKeyEventHandler) {\n this._customKeyEventHandler = customKeyEventHandler;\n };\n Terminal.prototype.registerLinkMatcher = function (regex, handler, options) {\n var matcherId = this.linkifier.registerLinkMatcher(regex, handler, options);\n this.refresh(0, this.rows - 1);\n return matcherId;\n };\n Terminal.prototype.deregisterLinkMatcher = function (matcherId) {\n if (this.linkifier.deregisterLinkMatcher(matcherId)) {\n this.refresh(0, this.rows - 1);\n }\n };\n Terminal.prototype.registerCharacterJoiner = function (handler) {\n var joinerId = this.renderer.registerCharacterJoiner(handler);\n this.refresh(0, this.rows - 1);\n return joinerId;\n };\n Terminal.prototype.deregisterCharacterJoiner = function (joinerId) {\n if (this.renderer.deregisterCharacterJoiner(joinerId)) {\n this.refresh(0, this.rows - 1);\n }\n };\n Object.defineProperty(Terminal.prototype, \"markers\", {\n get: function () {\n return this.buffer.markers;\n },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.addMarker = function (cursorYOffset) {\n if (this.buffer !== this.buffers.normal) {\n return;\n }\n return this.buffer.addMarker(this.buffer.ybase + this.buffer.y + cursorYOffset);\n };\n Terminal.prototype.hasSelection = function () {\n return this.selectionManager ? this.selectionManager.hasSelection : false;\n };\n Terminal.prototype.getSelection = function () {\n return this.selectionManager ? this.selectionManager.selectionText : '';\n };\n Terminal.prototype.clearSelection = function () {\n if (this.selectionManager) {\n this.selectionManager.clearSelection();\n }\n };\n Terminal.prototype.selectAll = function () {\n if (this.selectionManager) {\n this.selectionManager.selectAll();\n }\n };\n Terminal.prototype.selectLines = function (start, end) {\n if (this.selectionManager) {\n this.selectionManager.selectLines(start, end);\n }\n };\n Terminal.prototype._keyDown = function (event) {\n if (this._customKeyEventHandler && this._customKeyEventHandler(event) === false) {\n return false;\n }\n if (!this._compositionHelper.keydown(event)) {\n if (this.buffer.ybase !== this.buffer.ydisp) {\n this.scrollToBottom();\n }\n return false;\n }\n var result = Keyboard_1.evaluateKeyboardEvent(event, this.applicationCursor, this.browser.isMac, this.options.macOptionIsMeta);\n this.updateCursorStyle(event);\n if (result.type === 3 || result.type === 2) {\n var scrollCount = this.rows - 1;\n this.scrollLines(result.type === 2 ? -scrollCount : scrollCount);\n return this.cancel(event, true);\n }\n if (result.type === 1) {\n this.selectAll();\n }\n if (this._isThirdLevelShift(this.browser, event)) {\n return true;\n }\n if (result.cancel) {\n this.cancel(event, true);\n }\n if (!result.key) {\n return true;\n }\n this.emit('keydown', event);\n this.emit('key', result.key, event);\n this.showCursor();\n this.handler(result.key);\n return this.cancel(event, true);\n };\n Terminal.prototype._isThirdLevelShift = function (browser, ev) {\n var thirdLevelKey = (browser.isMac && !this.options.macOptionIsMeta && ev.altKey && !ev.ctrlKey && !ev.metaKey) ||\n (browser.isMSWindows && ev.altKey && ev.ctrlKey && !ev.metaKey);\n if (ev.type === 'keypress') {\n return thirdLevelKey;\n }\n return thirdLevelKey && (!ev.keyCode || ev.keyCode > 47);\n };\n Terminal.prototype.setgLevel = function (g) {\n this.glevel = g;\n this.charset = this.charsets[g];\n };\n Terminal.prototype.setgCharset = function (g, charset) {\n this.charsets[g] = charset;\n if (this.glevel === g) {\n this.charset = charset;\n }\n };\n Terminal.prototype._keyUp = function (ev) {\n this.updateCursorStyle(ev);\n };\n Terminal.prototype._keyPress = function (ev) {\n var key;\n if (this._customKeyEventHandler && this._customKeyEventHandler(ev) === false) {\n return false;\n }\n this.cancel(ev);\n if (ev.charCode) {\n key = ev.charCode;\n }\n else if (ev.which == null) {\n key = ev.keyCode;\n }\n else if (ev.which !== 0 && ev.charCode !== 0) {\n key = ev.which;\n }\n else {\n return false;\n }\n if (!key || ((ev.altKey || ev.ctrlKey || ev.metaKey) && !this._isThirdLevelShift(this.browser, ev))) {\n return false;\n }\n key = String.fromCharCode(key);\n this.emit('keypress', key, ev);\n this.emit('key', key, ev);\n this.showCursor();\n this.handler(key);\n return true;\n };\n Terminal.prototype.bell = function () {\n var _this = this;\n this.emit('bell');\n if (this._soundBell()) {\n this.soundManager.playBellSound();\n }\n if (this._visualBell()) {\n this.element.classList.add('visual-bell-active');\n clearTimeout(this._visualBellTimer);\n this._visualBellTimer = window.setTimeout(function () {\n _this.element.classList.remove('visual-bell-active');\n }, 200);\n }\n };\n Terminal.prototype.log = function (text, data) {\n if (!this.options.debug)\n return;\n if (!this._context.console || !this._context.console.log)\n return;\n this._context.console.log(text, data);\n };\n Terminal.prototype.error = function (text, data) {\n if (!this.options.debug)\n return;\n if (!this._context.console || !this._context.console.error)\n return;\n this._context.console.error(text, data);\n };\n Terminal.prototype.resize = function (x, y) {\n if (isNaN(x) || isNaN(y)) {\n return;\n }\n if (x === this.cols && y === this.rows) {\n if (this.charMeasure && (!this.charMeasure.width || !this.charMeasure.height)) {\n this.charMeasure.measure(this.options);\n }\n return;\n }\n if (x < 1)\n x = 1;\n if (y < 1)\n y = 1;\n this.buffers.resize(x, y);\n this.cols = x;\n this.rows = y;\n this.buffers.setupTabStops(this.cols);\n if (this.charMeasure) {\n this.charMeasure.measure(this.options);\n }\n this.refresh(0, this.rows - 1);\n this.emit('resize', { cols: x, rows: y });\n };\n Terminal.prototype.updateRange = function (y) {\n if (y < this._refreshStart)\n this._refreshStart = y;\n if (y > this._refreshEnd)\n this._refreshEnd = y;\n };\n Terminal.prototype.maxRange = function () {\n this._refreshStart = 0;\n this._refreshEnd = this.rows - 1;\n };\n Terminal.prototype.eraseRight = function (x, y) {\n var line = this.buffer.lines.get(this.buffer.ybase + y);\n if (!line) {\n return;\n }\n var ch = [this.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n for (; x < this.cols; x++) {\n line[x] = ch;\n }\n this.updateRange(y);\n };\n Terminal.prototype.eraseLeft = function (x, y) {\n var line = this.buffer.lines.get(this.buffer.ybase + y);\n if (!line) {\n return;\n }\n var ch = [this.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n x++;\n while (x--) {\n line[x] = ch;\n }\n this.updateRange(y);\n };\n Terminal.prototype.clear = function () {\n if (this.buffer.ybase === 0 && this.buffer.y === 0) {\n return;\n }\n this.buffer.lines.set(0, this.buffer.lines.get(this.buffer.ybase + this.buffer.y));\n this.buffer.lines.length = 1;\n this.buffer.ydisp = 0;\n this.buffer.ybase = 0;\n this.buffer.y = 0;\n for (var i = 1; i < this.rows; i++) {\n this.buffer.lines.push(this.blankLine());\n }\n this.refresh(0, this.rows - 1);\n this.emit('scroll', this.buffer.ydisp);\n };\n Terminal.prototype.eraseLine = function (y) {\n this.eraseRight(0, y);\n };\n Terminal.prototype.blankLine = function (cur, isWrapped, cols) {\n var attr = cur ? this.eraseAttr() : Buffer_1.DEFAULT_ATTR;\n var ch = [attr, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n var line = [];\n if (isWrapped) {\n line.isWrapped = isWrapped;\n }\n cols = cols || this.cols;\n for (var i = 0; i < cols; i++) {\n line[i] = ch;\n }\n return line;\n };\n Terminal.prototype.ch = function (cur) {\n if (cur) {\n return [this.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n }\n return [Buffer_1.DEFAULT_ATTR, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n };\n Terminal.prototype.is = function (term) {\n return (this.options.termName + '').indexOf(term) === 0;\n };\n Terminal.prototype.handler = function (data) {\n if (this.options.disableStdin) {\n return;\n }\n if (this.selectionManager && this.selectionManager.hasSelection) {\n this.selectionManager.clearSelection();\n }\n if (this.buffer.ybase !== this.buffer.ydisp) {\n this.scrollToBottom();\n }\n this.emit('data', data);\n };\n Terminal.prototype.handleTitle = function (title) {\n this.emit('title', title);\n };\n Terminal.prototype.index = function () {\n this.buffer.y++;\n if (this.buffer.y > this.buffer.scrollBottom) {\n this.buffer.y--;\n this.scroll();\n }\n if (this.buffer.x >= this.cols) {\n this.buffer.x--;\n }\n };\n Terminal.prototype.reverseIndex = function () {\n if (this.buffer.y === this.buffer.scrollTop) {\n var scrollRegionHeight = this.buffer.scrollBottom - this.buffer.scrollTop;\n this.buffer.lines.shiftElements(this.buffer.y + this.buffer.ybase, scrollRegionHeight, 1);\n this.buffer.lines.set(this.buffer.y + this.buffer.ybase, this.blankLine(true));\n this.updateRange(this.buffer.scrollTop);\n this.updateRange(this.buffer.scrollBottom);\n }\n else {\n this.buffer.y--;\n }\n };\n Terminal.prototype.reset = function () {\n this.options.rows = this.rows;\n this.options.cols = this.cols;\n var customKeyEventHandler = this._customKeyEventHandler;\n var inputHandler = this._inputHandler;\n var cursorState = this.cursorState;\n this._setup();\n this._customKeyEventHandler = customKeyEventHandler;\n this._inputHandler = inputHandler;\n this.cursorState = cursorState;\n this.refresh(0, this.rows - 1);\n if (this.viewport) {\n this.viewport.syncScrollArea();\n }\n };\n Terminal.prototype.tabSet = function () {\n this.buffer.tabs[this.buffer.x] = true;\n };\n Terminal.prototype.cancel = function (ev, force) {\n if (!this.options.cancelEvents && !force) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n };\n Terminal.prototype.matchColor = function (r1, g1, b1) {\n var hash = (r1 << 16) | (g1 << 8) | b1;\n if (matchColorCache[hash] != null) {\n return matchColorCache[hash];\n }\n var ldiff = Infinity;\n var li = -1;\n var i = 0;\n var c;\n var r2;\n var g2;\n var b2;\n var diff;\n for (; i < ColorManager_1.DEFAULT_ANSI_COLORS.length; i++) {\n c = ColorManager_1.DEFAULT_ANSI_COLORS[i].rgba;\n r2 = c >>> 24;\n g2 = c >>> 16 & 0xFF;\n b2 = c >>> 8 & 0xFF;\n diff = matchColorDistance(r1, g1, b1, r2, g2, b2);\n if (diff === 0) {\n li = i;\n break;\n }\n if (diff < ldiff) {\n ldiff = diff;\n li = i;\n }\n }\n return matchColorCache[hash] = li;\n };\n Terminal.prototype._visualBell = function () {\n return false;\n };\n Terminal.prototype._soundBell = function () {\n return this.options.bellStyle === 'sound';\n };\n return Terminal;\n}(EventEmitter_1.EventEmitter));\nexports.Terminal = Terminal;\nfunction wasModifierKeyOnlyEvent(ev) {\n return ev.keyCode === 16 ||\n ev.keyCode === 17 ||\n ev.keyCode === 18;\n}\nvar matchColorCache = {};\nfunction matchColorDistance(r1, g1, b1, r2, g2, b2) {\n return Math.pow(30 * (r1 - r2), 2)\n + Math.pow(59 * (g1 - g2), 2)\n + Math.pow(11 * (b1 - b2), 2);\n}\n//# sourceMappingURL=Terminal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"./Buffer\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar BufferSet = (function (_super) {\n __extends(BufferSet, _super);\n function BufferSet(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._normal = new Buffer_1.Buffer(_this._terminal, true);\n _this._normal.fillViewportRows();\n _this._alt = new Buffer_1.Buffer(_this._terminal, false);\n _this._activeBuffer = _this._normal;\n _this.setupTabStops();\n return _this;\n }\n Object.defineProperty(BufferSet.prototype, \"alt\", {\n get: function () {\n return this._alt;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferSet.prototype, \"active\", {\n get: function () {\n return this._activeBuffer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferSet.prototype, \"normal\", {\n get: function () {\n return this._normal;\n },\n enumerable: true,\n configurable: true\n });\n BufferSet.prototype.activateNormalBuffer = function () {\n if (this._activeBuffer === this._normal) {\n return;\n }\n this._alt.clear();\n this._activeBuffer = this._normal;\n this.emit('activate', {\n activeBuffer: this._normal,\n inactiveBuffer: this._alt\n });\n };\n BufferSet.prototype.activateAltBuffer = function () {\n if (this._activeBuffer === this._alt) {\n return;\n }\n this._alt.fillViewportRows();\n this._activeBuffer = this._alt;\n this.emit('activate', {\n activeBuffer: this._alt,\n inactiveBuffer: this._normal\n });\n };\n BufferSet.prototype.resize = function (newCols, newRows) {\n this._normal.resize(newCols, newRows);\n this._alt.resize(newCols, newRows);\n };\n BufferSet.prototype.setupTabStops = function (i) {\n this._normal.setupTabStops(i);\n this._alt.setupTabStops(i);\n };\n return BufferSet;\n}(EventEmitter_1.EventEmitter));\nexports.BufferSet = BufferSet;\n//# sourceMappingURL=BufferSet.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter_1 = require(\"../EventEmitter\");\nvar CircularList = (function (_super) {\n __extends(CircularList, _super);\n function CircularList(_maxLength) {\n var _this = _super.call(this) || this;\n _this._maxLength = _maxLength;\n _this._array = new Array(_this._maxLength);\n _this._startIndex = 0;\n _this._length = 0;\n return _this;\n }\n Object.defineProperty(CircularList.prototype, \"maxLength\", {\n get: function () {\n return this._maxLength;\n },\n set: function (newMaxLength) {\n if (this._maxLength === newMaxLength) {\n return;\n }\n var newArray = new Array(newMaxLength);\n for (var i = 0; i < Math.min(newMaxLength, this.length); i++) {\n newArray[i] = this._array[this._getCyclicIndex(i)];\n }\n this._array = newArray;\n this._maxLength = newMaxLength;\n this._startIndex = 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CircularList.prototype, \"length\", {\n get: function () {\n return this._length;\n },\n set: function (newLength) {\n if (newLength > this._length) {\n for (var i = this._length; i < newLength; i++) {\n this._array[i] = undefined;\n }\n }\n this._length = newLength;\n },\n enumerable: true,\n configurable: true\n });\n CircularList.prototype.get = function (index) {\n return this._array[this._getCyclicIndex(index)];\n };\n CircularList.prototype.set = function (index, value) {\n this._array[this._getCyclicIndex(index)] = value;\n };\n CircularList.prototype.push = function (value) {\n this._array[this._getCyclicIndex(this._length)] = value;\n if (this._length === this._maxLength) {\n this._startIndex++;\n if (this._startIndex === this._maxLength) {\n this._startIndex = 0;\n }\n this.emit('trim', 1);\n }\n else {\n this._length++;\n }\n };\n CircularList.prototype.pop = function () {\n return this._array[this._getCyclicIndex(this._length-- - 1)];\n };\n CircularList.prototype.splice = function (start, deleteCount) {\n var items = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n items[_i - 2] = arguments[_i];\n }\n if (deleteCount) {\n for (var i = start; i < this._length - deleteCount; i++) {\n this._array[this._getCyclicIndex(i)] = this._array[this._getCyclicIndex(i + deleteCount)];\n }\n this._length -= deleteCount;\n }\n if (items && items.length) {\n for (var i = this._length - 1; i >= start; i--) {\n this._array[this._getCyclicIndex(i + items.length)] = this._array[this._getCyclicIndex(i)];\n }\n for (var i = 0; i < items.length; i++) {\n this._array[this._getCyclicIndex(start + i)] = items[i];\n }\n if (this._length + items.length > this.maxLength) {\n var countToTrim = (this._length + items.length) - this.maxLength;\n this._startIndex += countToTrim;\n this._length = this.maxLength;\n this.emit('trim', countToTrim);\n }\n else {\n this._length += items.length;\n }\n }\n };\n CircularList.prototype.trimStart = function (count) {\n if (count > this._length) {\n count = this._length;\n }\n this._startIndex += count;\n this._length -= count;\n this.emit('trim', count);\n };\n CircularList.prototype.shiftElements = function (start, count, offset) {\n if (count <= 0) {\n return;\n }\n if (start < 0 || start >= this._length) {\n throw new Error('start argument out of range');\n }\n if (start + offset < 0) {\n throw new Error('Cannot shift elements in list beyond index 0');\n }\n if (offset > 0) {\n for (var i = count - 1; i >= 0; i--) {\n this.set(start + i + offset, this.get(start + i));\n }\n var expandListBy = (start + count + offset) - this._length;\n if (expandListBy > 0) {\n this._length += expandListBy;\n while (this._length > this.maxLength) {\n this._length--;\n this._startIndex++;\n this.emit('trim', 1);\n }\n }\n }\n else {\n for (var i = 0; i < count; i++) {\n this.set(start + i + offset, this.get(start + i));\n }\n }\n };\n CircularList.prototype._getCyclicIndex = function (index) {\n return (this._startIndex + index) % this.maxLength;\n };\n return CircularList;\n}(EventEmitter_1.EventEmitter));\nexports.CircularList = CircularList;\n//# sourceMappingURL=CircularList.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CompositionHelper = (function () {\n function CompositionHelper(_textarea, _compositionView, _terminal) {\n this._textarea = _textarea;\n this._compositionView = _compositionView;\n this._terminal = _terminal;\n this._isComposing = false;\n this._isSendingComposition = false;\n this._compositionPosition = { start: null, end: null };\n }\n CompositionHelper.prototype.compositionstart = function () {\n this._isComposing = true;\n this._compositionPosition.start = this._textarea.value.length;\n this._compositionView.textContent = '';\n this._compositionView.classList.add('active');\n };\n CompositionHelper.prototype.compositionupdate = function (ev) {\n var _this = this;\n this._compositionView.textContent = ev.data;\n this.updateCompositionElements();\n setTimeout(function () {\n _this._compositionPosition.end = _this._textarea.value.length;\n }, 0);\n };\n CompositionHelper.prototype.compositionend = function () {\n this._finalizeComposition(true);\n };\n CompositionHelper.prototype.keydown = function (ev) {\n if (this._isComposing || this._isSendingComposition) {\n if (ev.keyCode === 229) {\n return false;\n }\n else if (ev.keyCode === 16 || ev.keyCode === 17 || ev.keyCode === 18) {\n return false;\n }\n this._finalizeComposition(false);\n }\n if (ev.keyCode === 229) {\n this._handleAnyTextareaChanges();\n return false;\n }\n return true;\n };\n CompositionHelper.prototype._finalizeComposition = function (waitForPropogation) {\n var _this = this;\n this._compositionView.classList.remove('active');\n this._isComposing = false;\n this._clearTextareaPosition();\n if (!waitForPropogation) {\n this._isSendingComposition = false;\n var input = this._textarea.value.substring(this._compositionPosition.start, this._compositionPosition.end);\n this._terminal.handler(input);\n }\n else {\n var currentCompositionPosition_1 = {\n start: this._compositionPosition.start,\n end: this._compositionPosition.end\n };\n this._isSendingComposition = true;\n setTimeout(function () {\n if (_this._isSendingComposition) {\n _this._isSendingComposition = false;\n var input = void 0;\n if (_this._isComposing) {\n input = _this._textarea.value.substring(currentCompositionPosition_1.start, currentCompositionPosition_1.end);\n }\n else {\n input = _this._textarea.value.substring(currentCompositionPosition_1.start);\n }\n _this._terminal.handler(input);\n }\n }, 0);\n }\n };\n CompositionHelper.prototype._handleAnyTextareaChanges = function () {\n var _this = this;\n var oldValue = this._textarea.value;\n setTimeout(function () {\n if (!_this._isComposing) {\n var newValue = _this._textarea.value;\n var diff = newValue.replace(oldValue, '');\n if (diff.length > 0) {\n _this._terminal.handler(diff);\n }\n }\n }, 0);\n };\n CompositionHelper.prototype.updateCompositionElements = function (dontRecurse) {\n var _this = this;\n if (!this._isComposing) {\n return;\n }\n if (this._terminal.buffer.isCursorInViewport) {\n var cellHeight = Math.ceil(this._terminal.charMeasure.height * this._terminal.options.lineHeight);\n var cursorTop = this._terminal.buffer.y * cellHeight;\n var cursorLeft = this._terminal.buffer.x * this._terminal.charMeasure.width;\n this._compositionView.style.left = cursorLeft + 'px';\n this._compositionView.style.top = cursorTop + 'px';\n this._compositionView.style.height = cellHeight + 'px';\n this._compositionView.style.lineHeight = cellHeight + 'px';\n var compositionViewBounds = this._compositionView.getBoundingClientRect();\n this._textarea.style.left = cursorLeft + 'px';\n this._textarea.style.top = cursorTop + 'px';\n this._textarea.style.width = compositionViewBounds.width + 'px';\n this._textarea.style.height = compositionViewBounds.height + 'px';\n this._textarea.style.lineHeight = compositionViewBounds.height + 'px';\n }\n if (!dontRecurse) {\n setTimeout(function () { return _this.updateCompositionElements(true); }, 0);\n }\n };\n CompositionHelper.prototype._clearTextareaPosition = function () {\n this._textarea.style.left = '';\n this._textarea.style.top = '';\n };\n return CompositionHelper;\n}());\nexports.CompositionHelper = CompositionHelper;\n//# sourceMappingURL=CompositionHelper.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar Lifecycle_2 = require(\"./ui/Lifecycle\");\nvar FALLBACK_SCROLL_BAR_WIDTH = 15;\nvar Viewport = (function (_super) {\n __extends(Viewport, _super);\n function Viewport(_terminal, _viewportElement, _scrollArea, _charMeasure) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._viewportElement = _viewportElement;\n _this._scrollArea = _scrollArea;\n _this._charMeasure = _charMeasure;\n _this.scrollBarWidth = 0;\n _this._currentRowHeight = 0;\n _this._lastRecordedBufferLength = 0;\n _this._lastRecordedViewportHeight = 0;\n _this._lastRecordedBufferHeight = 0;\n _this._wheelPartialScroll = 0;\n _this.scrollBarWidth = (_this._viewportElement.offsetWidth - _this._scrollArea.offsetWidth) || FALLBACK_SCROLL_BAR_WIDTH;\n _this.register(Lifecycle_2.addDisposableDomListener(_this._viewportElement, 'scroll', _this._onScroll.bind(_this)));\n setTimeout(function () { return _this.syncScrollArea(); }, 0);\n return _this;\n }\n Viewport.prototype.onThemeChanged = function (colors) {\n this._viewportElement.style.backgroundColor = colors.background.css;\n };\n Viewport.prototype._refresh = function () {\n if (this._charMeasure.height > 0) {\n this._currentRowHeight = this._terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio;\n this._lastRecordedViewportHeight = this._viewportElement.offsetHeight;\n var newBufferHeight = Math.round(this._currentRowHeight * this._lastRecordedBufferLength) + (this._lastRecordedViewportHeight - this._terminal.renderer.dimensions.canvasHeight);\n if (this._lastRecordedBufferHeight !== newBufferHeight) {\n this._lastRecordedBufferHeight = newBufferHeight;\n this._scrollArea.style.height = this._lastRecordedBufferHeight + 'px';\n }\n }\n };\n Viewport.prototype.syncScrollArea = function () {\n if (this._lastRecordedBufferLength !== this._terminal.buffer.lines.length) {\n this._lastRecordedBufferLength = this._terminal.buffer.lines.length;\n this._refresh();\n }\n else if (this._lastRecordedViewportHeight !== this._terminal.renderer.dimensions.canvasHeight) {\n this._refresh();\n }\n else {\n if (this._terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio !== this._currentRowHeight) {\n this._refresh();\n }\n }\n var scrollTop = this._terminal.buffer.ydisp * this._currentRowHeight;\n if (this._viewportElement.scrollTop !== scrollTop) {\n this._viewportElement.scrollTop = scrollTop;\n }\n };\n Viewport.prototype._onScroll = function (ev) {\n if (!this._viewportElement.offsetParent) {\n return;\n }\n var newRow = Math.round(this._viewportElement.scrollTop / this._currentRowHeight);\n var diff = newRow - this._terminal.buffer.ydisp;\n this._terminal.scrollLines(diff, true);\n };\n Viewport.prototype.onWheel = function (ev) {\n var amount = this._getPixelsScrolled(ev);\n if (amount === 0) {\n return;\n }\n this._viewportElement.scrollTop += amount;\n ev.preventDefault();\n };\n Viewport.prototype._getPixelsScrolled = function (ev) {\n if (ev.deltaY === 0) {\n return 0;\n }\n var amount = ev.deltaY;\n if (ev.deltaMode === WheelEvent.DOM_DELTA_LINE) {\n amount *= this._currentRowHeight;\n }\n else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {\n amount *= this._currentRowHeight * this._terminal.rows;\n }\n return amount;\n };\n Viewport.prototype.getLinesScrolled = function (ev) {\n if (ev.deltaY === 0) {\n return 0;\n }\n var amount = ev.deltaY;\n if (ev.deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n amount /= this._currentRowHeight + 0.0;\n this._wheelPartialScroll += amount;\n amount = Math.floor(Math.abs(this._wheelPartialScroll)) * (this._wheelPartialScroll > 0 ? 1 : -1);\n this._wheelPartialScroll %= 1;\n }\n else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {\n amount *= this._terminal.rows;\n }\n return amount;\n };\n Viewport.prototype.onTouchStart = function (ev) {\n this._lastTouchY = ev.touches[0].pageY;\n };\n Viewport.prototype.onTouchMove = function (ev) {\n var deltaY = this._lastTouchY - ev.touches[0].pageY;\n this._lastTouchY = ev.touches[0].pageY;\n if (deltaY === 0) {\n return;\n }\n this._viewportElement.scrollTop += deltaY;\n ev.preventDefault();\n };\n return Viewport;\n}(Lifecycle_1.Disposable));\nexports.Viewport = Viewport;\n//# sourceMappingURL=Viewport.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction prepareTextForTerminal(text) {\n return text.replace(/\\r?\\n/g, '\\r');\n}\nexports.prepareTextForTerminal = prepareTextForTerminal;\nfunction bracketTextForPaste(text, bracketedPasteMode) {\n if (bracketedPasteMode) {\n return '\\x1b[200~' + text + '\\x1b[201~';\n }\n return text;\n}\nexports.bracketTextForPaste = bracketTextForPaste;\nfunction copyHandler(ev, term, selectionManager) {\n if (term.browser.isMSIE) {\n window.clipboardData.setData('Text', selectionManager.selectionText);\n }\n else {\n ev.clipboardData.setData('text/plain', selectionManager.selectionText);\n }\n ev.preventDefault();\n}\nexports.copyHandler = copyHandler;\nfunction pasteHandler(ev, term) {\n ev.stopPropagation();\n var text;\n var dispatchPaste = function (text) {\n text = prepareTextForTerminal(text);\n text = bracketTextForPaste(text, term.bracketedPasteMode);\n term.handler(text);\n term.textarea.value = '';\n term.emit('paste', text);\n term.cancel(ev);\n };\n if (term.browser.isMSIE) {\n if (window.clipboardData) {\n text = window.clipboardData.getData('Text');\n dispatchPaste(text);\n }\n }\n else {\n if (ev.clipboardData) {\n text = ev.clipboardData.getData('text/plain');\n dispatchPaste(text);\n }\n }\n}\nexports.pasteHandler = pasteHandler;\nfunction moveTextAreaUnderMouseCursor(ev, textarea) {\n textarea.style.position = 'fixed';\n textarea.style.width = '20px';\n textarea.style.height = '20px';\n textarea.style.left = (ev.clientX - 10) + 'px';\n textarea.style.top = (ev.clientY - 10) + 'px';\n textarea.style.zIndex = '1000';\n textarea.focus();\n setTimeout(function () {\n textarea.style.position = null;\n textarea.style.width = null;\n textarea.style.height = null;\n textarea.style.left = null;\n textarea.style.top = null;\n textarea.style.zIndex = null;\n }, 200);\n}\nexports.moveTextAreaUnderMouseCursor = moveTextAreaUnderMouseCursor;\nfunction rightClickHandler(ev, textarea, selectionManager, shouldSelectWord) {\n moveTextAreaUnderMouseCursor(ev, textarea);\n if (shouldSelectWord && !selectionManager.isClickInSelection(ev)) {\n selectionManager.selectWordAtCursor(ev);\n }\n textarea.value = selectionManager.selectionText;\n textarea.select();\n}\nexports.rightClickHandler = rightClickHandler;\n//# sourceMappingURL=Clipboard.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"./common/data/EscapeSequences\");\nvar Charsets_1 = require(\"./core/data/Charsets\");\nvar Buffer_1 = require(\"./Buffer\");\nvar CharWidth_1 = require(\"./CharWidth\");\nvar EscapeSequenceParser_1 = require(\"./EscapeSequenceParser\");\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar GLEVEL = { '(': 0, ')': 1, '*': 2, '+': 3, '-': 1, '.': 2 };\nvar RequestTerminfo = (function () {\n function RequestTerminfo(_terminal) {\n this._terminal = _terminal;\n }\n RequestTerminfo.prototype.hook = function (collect, params, flag) {\n this._data = '';\n };\n RequestTerminfo.prototype.put = function (data, start, end) {\n this._data += data.substring(start, end);\n };\n RequestTerminfo.prototype.unhook = function () {\n this._terminal.handler(EscapeSequences_1.C0.ESC + \"P0+r\" + this._data + EscapeSequences_1.C0.ESC + \"\\\\\");\n };\n return RequestTerminfo;\n}());\nvar DECRQSS = (function () {\n function DECRQSS(_terminal) {\n this._terminal = _terminal;\n }\n DECRQSS.prototype.hook = function (collect, params, flag) {\n this._data = '';\n };\n DECRQSS.prototype.put = function (data, start, end) {\n this._data += data.substring(start, end);\n };\n DECRQSS.prototype.unhook = function () {\n switch (this._data) {\n case '\"q':\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r0\\\"q\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n case '\"p':\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r61\\\"p\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n case 'r':\n var pt = '' + (this._terminal.buffer.scrollTop + 1) +\n ';' + (this._terminal.buffer.scrollBottom + 1) + 'r';\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r\" + pt + EscapeSequences_1.C0.ESC + \"\\\\\");\n case 'm':\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r0m\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n case ' q':\n var STYLES = { 'block': 2, 'underline': 4, 'bar': 6 };\n var style = STYLES[this._terminal.getOption('cursorStyle')];\n style -= this._terminal.getOption('cursorBlink');\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r\" + style + \" q\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n default:\n this._terminal.error('Unknown DCS $q %s', this._data);\n this._terminal.handler(EscapeSequences_1.C0.ESC + \"P0$r\" + this._data + EscapeSequences_1.C0.ESC + \"\\\\\");\n }\n };\n return DECRQSS;\n}());\nvar InputHandler = (function (_super) {\n __extends(InputHandler, _super);\n function InputHandler(_terminal, _parser) {\n if (_parser === void 0) { _parser = new EscapeSequenceParser_1.EscapeSequenceParser(); }\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._parser = _parser;\n _this.register(_this._parser);\n _this._surrogateHigh = '';\n _this._parser.setCsiHandlerFallback(function (collect, params, flag) {\n _this._terminal.error('Unknown CSI code: ', { collect: collect, params: params, flag: String.fromCharCode(flag) });\n });\n _this._parser.setEscHandlerFallback(function (collect, flag) {\n _this._terminal.error('Unknown ESC code: ', { collect: collect, flag: String.fromCharCode(flag) });\n });\n _this._parser.setExecuteHandlerFallback(function (code) {\n _this._terminal.error('Unknown EXECUTE code: ', { code: code });\n });\n _this._parser.setOscHandlerFallback(function (identifier, data) {\n _this._terminal.error('Unknown OSC code: ', { identifier: identifier, data: data });\n });\n _this._parser.setPrintHandler(function (data, start, end) { return _this.print(data, start, end); });\n _this._parser.setCsiHandler('@', function (params, collect) { return _this.insertChars(params); });\n _this._parser.setCsiHandler('A', function (params, collect) { return _this.cursorUp(params); });\n _this._parser.setCsiHandler('B', function (params, collect) { return _this.cursorDown(params); });\n _this._parser.setCsiHandler('C', function (params, collect) { return _this.cursorForward(params); });\n _this._parser.setCsiHandler('D', function (params, collect) { return _this.cursorBackward(params); });\n _this._parser.setCsiHandler('E', function (params, collect) { return _this.cursorNextLine(params); });\n _this._parser.setCsiHandler('F', function (params, collect) { return _this.cursorPrecedingLine(params); });\n _this._parser.setCsiHandler('G', function (params, collect) { return _this.cursorCharAbsolute(params); });\n _this._parser.setCsiHandler('H', function (params, collect) { return _this.cursorPosition(params); });\n _this._parser.setCsiHandler('I', function (params, collect) { return _this.cursorForwardTab(params); });\n _this._parser.setCsiHandler('J', function (params, collect) { return _this.eraseInDisplay(params); });\n _this._parser.setCsiHandler('K', function (params, collect) { return _this.eraseInLine(params); });\n _this._parser.setCsiHandler('L', function (params, collect) { return _this.insertLines(params); });\n _this._parser.setCsiHandler('M', function (params, collect) { return _this.deleteLines(params); });\n _this._parser.setCsiHandler('P', function (params, collect) { return _this.deleteChars(params); });\n _this._parser.setCsiHandler('S', function (params, collect) { return _this.scrollUp(params); });\n _this._parser.setCsiHandler('T', function (params, collect) { return _this.scrollDown(params, collect); });\n _this._parser.setCsiHandler('X', function (params, collect) { return _this.eraseChars(params); });\n _this._parser.setCsiHandler('Z', function (params, collect) { return _this.cursorBackwardTab(params); });\n _this._parser.setCsiHandler('`', function (params, collect) { return _this.charPosAbsolute(params); });\n _this._parser.setCsiHandler('a', function (params, collect) { return _this.hPositionRelative(params); });\n _this._parser.setCsiHandler('b', function (params, collect) { return _this.repeatPrecedingCharacter(params); });\n _this._parser.setCsiHandler('c', function (params, collect) { return _this.sendDeviceAttributes(params, collect); });\n _this._parser.setCsiHandler('d', function (params, collect) { return _this.linePosAbsolute(params); });\n _this._parser.setCsiHandler('e', function (params, collect) { return _this.vPositionRelative(params); });\n _this._parser.setCsiHandler('f', function (params, collect) { return _this.hVPosition(params); });\n _this._parser.setCsiHandler('g', function (params, collect) { return _this.tabClear(params); });\n _this._parser.setCsiHandler('h', function (params, collect) { return _this.setMode(params, collect); });\n _this._parser.setCsiHandler('l', function (params, collect) { return _this.resetMode(params, collect); });\n _this._parser.setCsiHandler('m', function (params, collect) { return _this.charAttributes(params); });\n _this._parser.setCsiHandler('n', function (params, collect) { return _this.deviceStatus(params, collect); });\n _this._parser.setCsiHandler('p', function (params, collect) { return _this.softReset(params, collect); });\n _this._parser.setCsiHandler('q', function (params, collect) { return _this.setCursorStyle(params, collect); });\n _this._parser.setCsiHandler('r', function (params, collect) { return _this.setScrollRegion(params, collect); });\n _this._parser.setCsiHandler('s', function (params, collect) { return _this.saveCursor(params); });\n _this._parser.setCsiHandler('u', function (params, collect) { return _this.restoreCursor(params); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.BEL, function () { return _this.bell(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.LF, function () { return _this.lineFeed(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.VT, function () { return _this.lineFeed(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.FF, function () { return _this.lineFeed(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.CR, function () { return _this.carriageReturn(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.BS, function () { return _this.backspace(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.HT, function () { return _this.tab(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.SO, function () { return _this.shiftOut(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.SI, function () { return _this.shiftIn(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C1.IND, function () { return _this.index(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C1.NEL, function () { return _this.nextLine(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C1.HTS, function () { return _this.tabSet(); });\n _this._parser.setOscHandler(0, function (data) { return _this.setTitle(data); });\n _this._parser.setOscHandler(2, function (data) { return _this.setTitle(data); });\n _this._parser.setEscHandler('7', function () { return _this.saveCursor([]); });\n _this._parser.setEscHandler('8', function () { return _this.restoreCursor([]); });\n _this._parser.setEscHandler('D', function () { return _this.index(); });\n _this._parser.setEscHandler('E', function () { return _this.nextLine(); });\n _this._parser.setEscHandler('H', function () { return _this.tabSet(); });\n _this._parser.setEscHandler('M', function () { return _this.reverseIndex(); });\n _this._parser.setEscHandler('=', function () { return _this.keypadApplicationMode(); });\n _this._parser.setEscHandler('>', function () { return _this.keypadNumericMode(); });\n _this._parser.setEscHandler('c', function () { return _this.reset(); });\n _this._parser.setEscHandler('n', function () { return _this.setgLevel(2); });\n _this._parser.setEscHandler('o', function () { return _this.setgLevel(3); });\n _this._parser.setEscHandler('|', function () { return _this.setgLevel(3); });\n _this._parser.setEscHandler('}', function () { return _this.setgLevel(2); });\n _this._parser.setEscHandler('~', function () { return _this.setgLevel(1); });\n _this._parser.setEscHandler('%@', function () { return _this.selectDefaultCharset(); });\n _this._parser.setEscHandler('%G', function () { return _this.selectDefaultCharset(); });\n var _loop_1 = function (flag) {\n this_1._parser.setEscHandler('(' + flag, function () { return _this.selectCharset('(' + flag); });\n this_1._parser.setEscHandler(')' + flag, function () { return _this.selectCharset(')' + flag); });\n this_1._parser.setEscHandler('*' + flag, function () { return _this.selectCharset('*' + flag); });\n this_1._parser.setEscHandler('+' + flag, function () { return _this.selectCharset('+' + flag); });\n this_1._parser.setEscHandler('-' + flag, function () { return _this.selectCharset('-' + flag); });\n this_1._parser.setEscHandler('.' + flag, function () { return _this.selectCharset('.' + flag); });\n this_1._parser.setEscHandler('/' + flag, function () { return _this.selectCharset('/' + flag); });\n };\n var this_1 = this;\n for (var flag in Charsets_1.CHARSETS) {\n _loop_1(flag);\n }\n _this._parser.setErrorHandler(function (state) {\n _this._terminal.error('Parsing error: ', state);\n return state;\n });\n _this._parser.setDcsHandler('$q', new DECRQSS(_this._terminal));\n _this._parser.setDcsHandler('+q', new RequestTerminfo(_this._terminal));\n return _this;\n }\n InputHandler.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._terminal = null;\n };\n InputHandler.prototype.parse = function (data) {\n if (!this._terminal) {\n return;\n }\n var buffer = this._terminal.buffer;\n var cursorStartX = buffer.x;\n var cursorStartY = buffer.y;\n if (this._terminal.debug) {\n this._terminal.log('data: ' + data);\n }\n if (this._surrogateHigh) {\n data = this._surrogateHigh + data;\n this._surrogateHigh = '';\n }\n this._parser.parse(data);\n buffer = this._terminal.buffer;\n if (buffer.x !== cursorStartX || buffer.y !== cursorStartY) {\n this._terminal.emit('cursormove');\n }\n };\n InputHandler.prototype.print = function (data, start, end) {\n var char;\n var code;\n var low;\n var chWidth;\n var buffer = this._terminal.buffer;\n var charset = this._terminal.charset;\n var screenReaderMode = this._terminal.options.screenReaderMode;\n var cols = this._terminal.cols;\n var wraparoundMode = this._terminal.wraparoundMode;\n var insertMode = this._terminal.insertMode;\n var curAttr = this._terminal.curAttr;\n var bufferRow = buffer.lines.get(buffer.y + buffer.ybase);\n this._terminal.updateRange(buffer.y);\n for (var stringPosition = start; stringPosition < end; ++stringPosition) {\n char = data.charAt(stringPosition);\n code = data.charCodeAt(stringPosition);\n if (0xD800 <= code && code <= 0xDBFF) {\n low = data.charCodeAt(stringPosition + 1);\n if (isNaN(low)) {\n this._surrogateHigh = char;\n continue;\n }\n code = ((code - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n char += data.charAt(stringPosition + 1);\n }\n if (0xDC00 <= code && code <= 0xDFFF) {\n continue;\n }\n chWidth = CharWidth_1.wcwidth(code);\n if (charset) {\n char = charset[char] || char;\n code = char.charCodeAt(0);\n }\n if (screenReaderMode) {\n this._terminal.emit('a11y.char', char);\n }\n if (!chWidth && buffer.x) {\n if (bufferRow[buffer.x - 1]) {\n if (!bufferRow[buffer.x - 1][Buffer_1.CHAR_DATA_WIDTH_INDEX]) {\n if (bufferRow[buffer.x - 2]) {\n bufferRow[buffer.x - 2][Buffer_1.CHAR_DATA_CHAR_INDEX] += char;\n bufferRow[buffer.x - 2][Buffer_1.CHAR_DATA_CODE_INDEX] = code;\n }\n }\n else {\n bufferRow[buffer.x - 1][Buffer_1.CHAR_DATA_CHAR_INDEX] += char;\n bufferRow[buffer.x - 1][Buffer_1.CHAR_DATA_CODE_INDEX] = code;\n }\n }\n continue;\n }\n if (buffer.x + chWidth - 1 >= cols) {\n if (wraparoundMode) {\n buffer.x = 0;\n buffer.y++;\n if (buffer.y > buffer.scrollBottom) {\n buffer.y--;\n this._terminal.scroll(true);\n }\n else {\n buffer.lines.get(buffer.y).isWrapped = true;\n }\n bufferRow = buffer.lines.get(buffer.y + buffer.ybase);\n }\n else {\n if (chWidth === 2) {\n continue;\n }\n }\n }\n if (insertMode) {\n for (var moves = 0; moves < chWidth; ++moves) {\n var removed = bufferRow.pop();\n if (removed[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0\n && bufferRow[this._terminal.cols - 2]\n && bufferRow[this._terminal.cols - 2][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n bufferRow[this._terminal.cols - 2] = [curAttr, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n }\n bufferRow.splice(buffer.x, 0, [curAttr, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE]);\n }\n }\n bufferRow[buffer.x++] = [curAttr, char, chWidth, code];\n if (chWidth === 2) {\n bufferRow[buffer.x++] = [curAttr, '', 0, undefined];\n }\n }\n this._terminal.updateRange(buffer.y);\n };\n InputHandler.prototype.bell = function () {\n this._terminal.bell();\n };\n InputHandler.prototype.lineFeed = function () {\n var buffer = this._terminal.buffer;\n if (this._terminal.convertEol) {\n buffer.x = 0;\n }\n buffer.y++;\n if (buffer.y > buffer.scrollBottom) {\n buffer.y--;\n this._terminal.scroll();\n }\n if (buffer.x >= this._terminal.cols) {\n buffer.x--;\n }\n this._terminal.emit('linefeed');\n };\n InputHandler.prototype.carriageReturn = function () {\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.backspace = function () {\n if (this._terminal.buffer.x > 0) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.tab = function () {\n var originalX = this._terminal.buffer.x;\n this._terminal.buffer.x = this._terminal.buffer.nextStop();\n if (this._terminal.options.screenReaderMode) {\n this._terminal.emit('a11y.tab', this._terminal.buffer.x - originalX);\n }\n };\n InputHandler.prototype.shiftOut = function () {\n this._terminal.setgLevel(1);\n };\n InputHandler.prototype.shiftIn = function () {\n this._terminal.setgLevel(0);\n };\n InputHandler.prototype.insertChars = function (params) {\n var param = params[0];\n if (param < 1)\n param = 1;\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var j = buffer.x;\n var ch = [this._terminal.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n while (param-- && j < this._terminal.cols) {\n buffer.lines.get(row).splice(j++, 0, ch);\n buffer.lines.get(row).pop();\n }\n };\n InputHandler.prototype.cursorUp = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y -= param;\n if (this._terminal.buffer.y < 0) {\n this._terminal.buffer.y = 0;\n }\n };\n InputHandler.prototype.cursorDown = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.cursorForward = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x += param;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.cursorBackward = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n this._terminal.buffer.x -= param;\n if (this._terminal.buffer.x < 0) {\n this._terminal.buffer.x = 0;\n }\n };\n InputHandler.prototype.cursorNextLine = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.cursorPrecedingLine = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y -= param;\n if (this._terminal.buffer.y < 0) {\n this._terminal.buffer.y = 0;\n }\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.cursorCharAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x = param - 1;\n };\n InputHandler.prototype.cursorPosition = function (params) {\n var col;\n var row = params[0] - 1;\n if (params.length >= 2) {\n col = params[1] - 1;\n }\n else {\n col = 0;\n }\n if (row < 0) {\n row = 0;\n }\n else if (row >= this._terminal.rows) {\n row = this._terminal.rows - 1;\n }\n if (col < 0) {\n col = 0;\n }\n else if (col >= this._terminal.cols) {\n col = this._terminal.cols - 1;\n }\n this._terminal.buffer.x = col;\n this._terminal.buffer.y = row;\n };\n InputHandler.prototype.cursorForwardTab = function (params) {\n var param = params[0] || 1;\n while (param--) {\n this._terminal.buffer.x = this._terminal.buffer.nextStop();\n }\n };\n InputHandler.prototype.eraseInDisplay = function (params) {\n var j;\n switch (params[0]) {\n case 0:\n this._terminal.eraseRight(this._terminal.buffer.x, this._terminal.buffer.y);\n j = this._terminal.buffer.y + 1;\n for (; j < this._terminal.rows; j++) {\n this._terminal.eraseLine(j);\n }\n break;\n case 1:\n this._terminal.eraseLeft(this._terminal.buffer.x, this._terminal.buffer.y);\n j = this._terminal.buffer.y;\n while (j--) {\n this._terminal.eraseLine(j);\n }\n break;\n case 2:\n j = this._terminal.rows;\n while (j--)\n this._terminal.eraseLine(j);\n break;\n case 3:\n var scrollBackSize = this._terminal.buffer.lines.length - this._terminal.rows;\n if (scrollBackSize > 0) {\n this._terminal.buffer.lines.trimStart(scrollBackSize);\n this._terminal.buffer.ybase = Math.max(this._terminal.buffer.ybase - scrollBackSize, 0);\n this._terminal.buffer.ydisp = Math.max(this._terminal.buffer.ydisp - scrollBackSize, 0);\n this._terminal.emit('scroll', 0);\n }\n break;\n }\n };\n InputHandler.prototype.eraseInLine = function (params) {\n switch (params[0]) {\n case 0:\n this._terminal.eraseRight(this._terminal.buffer.x, this._terminal.buffer.y);\n break;\n case 1:\n this._terminal.eraseLeft(this._terminal.buffer.x, this._terminal.buffer.y);\n break;\n case 2:\n this._terminal.eraseLine(this._terminal.buffer.y);\n break;\n }\n };\n InputHandler.prototype.insertLines = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var scrollBottomRowsOffset = this._terminal.rows - 1 - buffer.scrollBottom;\n var scrollBottomAbsolute = this._terminal.rows - 1 + buffer.ybase - scrollBottomRowsOffset + 1;\n while (param--) {\n buffer.lines.splice(scrollBottomAbsolute - 1, 1);\n buffer.lines.splice(row, 0, this._terminal.blankLine(true));\n }\n this._terminal.updateRange(buffer.y);\n this._terminal.updateRange(buffer.scrollBottom);\n };\n InputHandler.prototype.deleteLines = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var j;\n j = this._terminal.rows - 1 - buffer.scrollBottom;\n j = this._terminal.rows - 1 + buffer.ybase - j;\n while (param--) {\n buffer.lines.splice(row, 1);\n buffer.lines.splice(j, 0, this._terminal.blankLine(true));\n }\n this._terminal.updateRange(buffer.y);\n this._terminal.updateRange(buffer.scrollBottom);\n };\n InputHandler.prototype.deleteChars = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var ch = [this._terminal.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n while (param--) {\n buffer.lines.get(row).splice(buffer.x, 1);\n buffer.lines.get(row).push(ch);\n }\n this._terminal.updateRange(buffer.y);\n };\n InputHandler.prototype.scrollUp = function (params) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n while (param--) {\n buffer.lines.splice(buffer.ybase + buffer.scrollTop, 1);\n buffer.lines.splice(buffer.ybase + buffer.scrollBottom, 0, this._terminal.blankLine());\n }\n this._terminal.updateRange(buffer.scrollTop);\n this._terminal.updateRange(buffer.scrollBottom);\n };\n InputHandler.prototype.scrollDown = function (params, collect) {\n if (params.length < 2 && !collect) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n while (param--) {\n buffer.lines.splice(buffer.ybase + buffer.scrollBottom, 1);\n buffer.lines.splice(buffer.ybase + buffer.scrollTop, 0, this._terminal.blankLine());\n }\n this._terminal.updateRange(buffer.scrollTop);\n this._terminal.updateRange(buffer.scrollBottom);\n }\n };\n InputHandler.prototype.eraseChars = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var j = buffer.x;\n var ch = [this._terminal.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n while (param-- && j < this._terminal.cols) {\n buffer.lines.get(row)[j++] = ch;\n }\n };\n InputHandler.prototype.cursorBackwardTab = function (params) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n while (param--) {\n buffer.x = buffer.prevStop();\n }\n };\n InputHandler.prototype.charPosAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x = param - 1;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.hPositionRelative = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x += param;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.repeatPrecedingCharacter = function (params) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n var line = buffer.lines.get(buffer.ybase + buffer.y);\n var ch = line[buffer.x - 1] || [Buffer_1.DEFAULT_ATTR, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n while (param--) {\n line[buffer.x++] = ch;\n }\n };\n InputHandler.prototype.sendDeviceAttributes = function (params, collect) {\n if (params[0] > 0) {\n return;\n }\n if (!collect) {\n if (this._terminal.is('xterm') || this._terminal.is('rxvt-unicode') || this._terminal.is('screen')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[?1;2c');\n }\n else if (this._terminal.is('linux')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[?6c');\n }\n }\n else if (collect === '>') {\n if (this._terminal.is('xterm')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[>0;276;0c');\n }\n else if (this._terminal.is('rxvt-unicode')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[>85;95;0c');\n }\n else if (this._terminal.is('linux')) {\n this._terminal.handler(params[0] + 'c');\n }\n else if (this._terminal.is('screen')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[>83;40003;0c');\n }\n }\n };\n InputHandler.prototype.linePosAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y = param - 1;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n };\n InputHandler.prototype.vPositionRelative = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.hVPosition = function (params) {\n if (params[0] < 1)\n params[0] = 1;\n if (params[1] < 1)\n params[1] = 1;\n this._terminal.buffer.y = params[0] - 1;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n this._terminal.buffer.x = params[1] - 1;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.tabClear = function (params) {\n var param = params[0];\n if (param <= 0) {\n delete this._terminal.buffer.tabs[this._terminal.buffer.x];\n }\n else if (param === 3) {\n this._terminal.buffer.tabs = {};\n }\n };\n InputHandler.prototype.setMode = function (params, collect) {\n if (params.length > 1) {\n for (var i = 0; i < params.length; i++) {\n this.setMode([params[i]]);\n }\n return;\n }\n if (!collect) {\n switch (params[0]) {\n case 4:\n this._terminal.insertMode = true;\n break;\n case 20:\n break;\n }\n }\n else if (collect === '?') {\n switch (params[0]) {\n case 1:\n this._terminal.applicationCursor = true;\n break;\n case 2:\n this._terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(1, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(2, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(3, Charsets_1.DEFAULT_CHARSET);\n break;\n case 3:\n this._terminal.savedCols = this._terminal.cols;\n this._terminal.resize(132, this._terminal.rows);\n break;\n case 6:\n this._terminal.originMode = true;\n break;\n case 7:\n this._terminal.wraparoundMode = true;\n break;\n case 12:\n break;\n case 66:\n this._terminal.log('Serial port requested application keypad.');\n this._terminal.applicationKeypad = true;\n this._terminal.viewport.syncScrollArea();\n break;\n case 9:\n case 1000:\n case 1002:\n case 1003:\n this._terminal.x10Mouse = params[0] === 9;\n this._terminal.vt200Mouse = params[0] === 1000;\n this._terminal.normalMouse = params[0] > 1000;\n this._terminal.mouseEvents = true;\n this._terminal.element.classList.add('enable-mouse-events');\n this._terminal.selectionManager.disable();\n this._terminal.log('Binding to mouse events.');\n break;\n case 1004:\n this._terminal.sendFocus = true;\n break;\n case 1005:\n this._terminal.utfMouse = true;\n break;\n case 1006:\n this._terminal.sgrMouse = true;\n break;\n case 1015:\n this._terminal.urxvtMouse = true;\n break;\n case 25:\n this._terminal.cursorHidden = false;\n break;\n case 1049:\n case 47:\n case 1047:\n this._terminal.buffers.activateAltBuffer();\n this._terminal.viewport.syncScrollArea();\n this._terminal.showCursor();\n break;\n case 2004:\n this._terminal.bracketedPasteMode = true;\n break;\n }\n }\n };\n InputHandler.prototype.resetMode = function (params, collect) {\n if (params.length > 1) {\n for (var i = 0; i < params.length; i++) {\n this.resetMode([params[i]]);\n }\n return;\n }\n if (!collect) {\n switch (params[0]) {\n case 4:\n this._terminal.insertMode = false;\n break;\n case 20:\n break;\n }\n }\n else if (collect === '?') {\n switch (params[0]) {\n case 1:\n this._terminal.applicationCursor = false;\n break;\n case 3:\n if (this._terminal.cols === 132 && this._terminal.savedCols) {\n this._terminal.resize(this._terminal.savedCols, this._terminal.rows);\n }\n delete this._terminal.savedCols;\n break;\n case 6:\n this._terminal.originMode = false;\n break;\n case 7:\n this._terminal.wraparoundMode = false;\n break;\n case 12:\n break;\n case 66:\n this._terminal.log('Switching back to normal keypad.');\n this._terminal.applicationKeypad = false;\n this._terminal.viewport.syncScrollArea();\n break;\n case 9:\n case 1000:\n case 1002:\n case 1003:\n this._terminal.x10Mouse = false;\n this._terminal.vt200Mouse = false;\n this._terminal.normalMouse = false;\n this._terminal.mouseEvents = false;\n this._terminal.element.classList.remove('enable-mouse-events');\n this._terminal.selectionManager.enable();\n break;\n case 1004:\n this._terminal.sendFocus = false;\n break;\n case 1005:\n this._terminal.utfMouse = false;\n break;\n case 1006:\n this._terminal.sgrMouse = false;\n break;\n case 1015:\n this._terminal.urxvtMouse = false;\n break;\n case 25:\n this._terminal.cursorHidden = true;\n break;\n case 1049:\n case 47:\n case 1047:\n this._terminal.buffers.activateNormalBuffer();\n this._terminal.refresh(0, this._terminal.rows - 1);\n this._terminal.viewport.syncScrollArea();\n this._terminal.showCursor();\n break;\n case 2004:\n this._terminal.bracketedPasteMode = false;\n break;\n }\n }\n };\n InputHandler.prototype.charAttributes = function (params) {\n if (params.length === 1 && params[0] === 0) {\n this._terminal.curAttr = Buffer_1.DEFAULT_ATTR;\n return;\n }\n var l = params.length;\n var flags = this._terminal.curAttr >> 18;\n var fg = (this._terminal.curAttr >> 9) & 0x1ff;\n var bg = this._terminal.curAttr & 0x1ff;\n var p;\n for (var i = 0; i < l; i++) {\n p = params[i];\n if (p >= 30 && p <= 37) {\n fg = p - 30;\n }\n else if (p >= 40 && p <= 47) {\n bg = p - 40;\n }\n else if (p >= 90 && p <= 97) {\n p += 8;\n fg = p - 90;\n }\n else if (p >= 100 && p <= 107) {\n p += 8;\n bg = p - 100;\n }\n else if (p === 0) {\n flags = Buffer_1.DEFAULT_ATTR >> 18;\n fg = (Buffer_1.DEFAULT_ATTR >> 9) & 0x1ff;\n bg = Buffer_1.DEFAULT_ATTR & 0x1ff;\n }\n else if (p === 1) {\n flags |= 1;\n }\n else if (p === 3) {\n flags |= 64;\n }\n else if (p === 4) {\n flags |= 2;\n }\n else if (p === 5) {\n flags |= 4;\n }\n else if (p === 7) {\n flags |= 8;\n }\n else if (p === 8) {\n flags |= 16;\n }\n else if (p === 2) {\n flags |= 32;\n }\n else if (p === 22) {\n flags &= ~1;\n flags &= ~32;\n }\n else if (p === 24) {\n flags &= ~2;\n }\n else if (p === 25) {\n flags &= ~4;\n }\n else if (p === 27) {\n flags &= ~8;\n }\n else if (p === 28) {\n flags &= ~16;\n }\n else if (p === 39) {\n fg = (Buffer_1.DEFAULT_ATTR >> 9) & 0x1ff;\n }\n else if (p === 49) {\n bg = Buffer_1.DEFAULT_ATTR & 0x1ff;\n }\n else if (p === 38) {\n if (params[i + 1] === 2) {\n i += 2;\n fg = this._terminal.matchColor(params[i] & 0xff, params[i + 1] & 0xff, params[i + 2] & 0xff);\n if (fg === -1)\n fg = 0x1ff;\n i += 2;\n }\n else if (params[i + 1] === 5) {\n i += 2;\n p = params[i] & 0xff;\n fg = p;\n }\n }\n else if (p === 48) {\n if (params[i + 1] === 2) {\n i += 2;\n bg = this._terminal.matchColor(params[i] & 0xff, params[i + 1] & 0xff, params[i + 2] & 0xff);\n if (bg === -1)\n bg = 0x1ff;\n i += 2;\n }\n else if (params[i + 1] === 5) {\n i += 2;\n p = params[i] & 0xff;\n bg = p;\n }\n }\n else if (p === 100) {\n fg = (Buffer_1.DEFAULT_ATTR >> 9) & 0x1ff;\n bg = Buffer_1.DEFAULT_ATTR & 0x1ff;\n }\n else {\n this._terminal.error('Unknown SGR attribute: %d.', p);\n }\n }\n this._terminal.curAttr = (flags << 18) | (fg << 9) | bg;\n };\n InputHandler.prototype.deviceStatus = function (params, collect) {\n if (!collect) {\n switch (params[0]) {\n case 5:\n this._terminal.emit('data', EscapeSequences_1.C0.ESC + \"[0n\");\n break;\n case 6:\n var y = this._terminal.buffer.y + 1;\n var x = this._terminal.buffer.x + 1;\n this._terminal.emit('data', EscapeSequences_1.C0.ESC + \"[\" + y + \";\" + x + \"R\");\n break;\n }\n }\n else if (collect === '?') {\n switch (params[0]) {\n case 6:\n var y = this._terminal.buffer.y + 1;\n var x = this._terminal.buffer.x + 1;\n this._terminal.emit('data', EscapeSequences_1.C0.ESC + \"[?\" + y + \";\" + x + \"R\");\n break;\n case 15:\n break;\n case 25:\n break;\n case 26:\n break;\n case 53:\n break;\n }\n }\n };\n InputHandler.prototype.softReset = function (params, collect) {\n if (collect === '!') {\n this._terminal.cursorHidden = false;\n this._terminal.insertMode = false;\n this._terminal.originMode = false;\n this._terminal.wraparoundMode = true;\n this._terminal.applicationKeypad = false;\n this._terminal.viewport.syncScrollArea();\n this._terminal.applicationCursor = false;\n this._terminal.buffer.scrollTop = 0;\n this._terminal.buffer.scrollBottom = this._terminal.rows - 1;\n this._terminal.curAttr = Buffer_1.DEFAULT_ATTR;\n this._terminal.buffer.x = this._terminal.buffer.y = 0;\n this._terminal.charset = null;\n this._terminal.glevel = 0;\n this._terminal.charsets = [null];\n }\n };\n InputHandler.prototype.setCursorStyle = function (params, collect) {\n if (collect === ' ') {\n var param = params[0] < 1 ? 1 : params[0];\n switch (param) {\n case 1:\n case 2:\n this._terminal.setOption('cursorStyle', 'block');\n break;\n case 3:\n case 4:\n this._terminal.setOption('cursorStyle', 'underline');\n break;\n case 5:\n case 6:\n this._terminal.setOption('cursorStyle', 'bar');\n break;\n }\n var isBlinking = param % 2 === 1;\n this._terminal.setOption('cursorBlink', isBlinking);\n }\n };\n InputHandler.prototype.setScrollRegion = function (params, collect) {\n if (collect)\n return;\n this._terminal.buffer.scrollTop = (params[0] || 1) - 1;\n this._terminal.buffer.scrollBottom = (params[1] && params[1] <= this._terminal.rows ? params[1] : this._terminal.rows) - 1;\n this._terminal.buffer.x = 0;\n this._terminal.buffer.y = 0;\n };\n InputHandler.prototype.saveCursor = function (params) {\n this._terminal.buffer.savedX = this._terminal.buffer.x;\n this._terminal.buffer.savedY = this._terminal.buffer.y;\n this._terminal.savedCurAttr = this._terminal.curAttr;\n };\n InputHandler.prototype.restoreCursor = function (params) {\n this._terminal.buffer.x = this._terminal.buffer.savedX || 0;\n this._terminal.buffer.y = this._terminal.buffer.savedY || 0;\n this._terminal.curAttr = this._terminal.savedCurAttr || Buffer_1.DEFAULT_ATTR;\n };\n InputHandler.prototype.setTitle = function (data) {\n this._terminal.handleTitle(data);\n };\n InputHandler.prototype.nextLine = function () {\n this._terminal.buffer.x = 0;\n this.index();\n };\n InputHandler.prototype.keypadApplicationMode = function () {\n this._terminal.log('Serial port requested application keypad.');\n this._terminal.applicationKeypad = true;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n };\n InputHandler.prototype.keypadNumericMode = function () {\n this._terminal.log('Switching back to normal keypad.');\n this._terminal.applicationKeypad = false;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n };\n InputHandler.prototype.selectDefaultCharset = function () {\n this._terminal.setgLevel(0);\n this._terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET);\n };\n InputHandler.prototype.selectCharset = function (collectAndFlag) {\n if (collectAndFlag.length !== 2)\n return this.selectDefaultCharset();\n if (collectAndFlag[0] === '/')\n return;\n this._terminal.setgCharset(GLEVEL[collectAndFlag[0]], Charsets_1.CHARSETS[collectAndFlag[1]] || Charsets_1.DEFAULT_CHARSET);\n };\n InputHandler.prototype.index = function () {\n this._terminal.index();\n };\n InputHandler.prototype.tabSet = function () {\n this._terminal.tabSet();\n };\n InputHandler.prototype.reverseIndex = function () {\n this._terminal.reverseIndex();\n };\n InputHandler.prototype.reset = function () {\n this._parser.reset();\n this._terminal.reset();\n };\n InputHandler.prototype.setgLevel = function (level) {\n this._terminal.setgLevel(level);\n };\n return InputHandler;\n}(Lifecycle_1.Disposable));\nexports.InputHandler = InputHandler;\n//# sourceMappingURL=InputHandler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHARSETS = {};\nexports.DEFAULT_CHARSET = exports.CHARSETS['B'];\nexports.CHARSETS['0'] = {\n '`': '\\u25c6',\n 'a': '\\u2592',\n 'b': '\\u0009',\n 'c': '\\u000c',\n 'd': '\\u000d',\n 'e': '\\u000a',\n 'f': '\\u00b0',\n 'g': '\\u00b1',\n 'h': '\\u2424',\n 'i': '\\u000b',\n 'j': '\\u2518',\n 'k': '\\u2510',\n 'l': '\\u250c',\n 'm': '\\u2514',\n 'n': '\\u253c',\n 'o': '\\u23ba',\n 'p': '\\u23bb',\n 'q': '\\u2500',\n 'r': '\\u23bc',\n 's': '\\u23bd',\n 't': '\\u251c',\n 'u': '\\u2524',\n 'v': '\\u2534',\n 'w': '\\u252c',\n 'x': '\\u2502',\n 'y': '\\u2264',\n 'z': '\\u2265',\n '{': '\\u03c0',\n '|': '\\u2260',\n '}': '\\u00a3',\n '~': '\\u00b7'\n};\nexports.CHARSETS['A'] = {\n '#': '£'\n};\nexports.CHARSETS['B'] = null;\nexports.CHARSETS['4'] = {\n '#': '£',\n '@': '¾',\n '[': 'ij',\n '\\\\': '½',\n ']': '|',\n '{': '¨',\n '|': 'f',\n '}': '¼',\n '~': '´'\n};\nexports.CHARSETS['C'] =\n exports.CHARSETS['5'] = {\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Å',\n '^': 'Ü',\n '`': 'é',\n '{': 'ä',\n '|': 'ö',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['R'] = {\n '#': '£',\n '@': 'à',\n '[': '°',\n '\\\\': 'ç',\n ']': '§',\n '{': 'é',\n '|': 'ù',\n '}': 'è',\n '~': '¨'\n};\nexports.CHARSETS['Q'] = {\n '@': 'à',\n '[': 'â',\n '\\\\': 'ç',\n ']': 'ê',\n '^': 'î',\n '`': 'ô',\n '{': 'é',\n '|': 'ù',\n '}': 'è',\n '~': 'û'\n};\nexports.CHARSETS['K'] = {\n '@': '§',\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Ü',\n '{': 'ä',\n '|': 'ö',\n '}': 'ü',\n '~': 'ß'\n};\nexports.CHARSETS['Y'] = {\n '#': '£',\n '@': '§',\n '[': '°',\n '\\\\': 'ç',\n ']': 'é',\n '`': 'ù',\n '{': 'à',\n '|': 'ò',\n '}': 'è',\n '~': 'ì'\n};\nexports.CHARSETS['E'] =\n exports.CHARSETS['6'] = {\n '@': 'Ä',\n '[': 'Æ',\n '\\\\': 'Ø',\n ']': 'Å',\n '^': 'Ü',\n '`': 'ä',\n '{': 'æ',\n '|': 'ø',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['Z'] = {\n '#': '£',\n '@': '§',\n '[': '¡',\n '\\\\': 'Ñ',\n ']': '¿',\n '{': '°',\n '|': 'ñ',\n '}': 'ç'\n};\nexports.CHARSETS['H'] =\n exports.CHARSETS['7'] = {\n '@': 'É',\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Å',\n '^': 'Ü',\n '`': 'é',\n '{': 'ä',\n '|': 'ö',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['='] = {\n '#': 'ù',\n '@': 'à',\n '[': 'é',\n '\\\\': 'ç',\n ']': 'ê',\n '^': 'î',\n '_': 'è',\n '`': 'ô',\n '{': 'ä',\n '|': 'ö',\n '}': 'ü',\n '~': 'û'\n};\n//# sourceMappingURL=Charsets.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wcwidth = (function (opts) {\n var COMBINING_BMP = [\n [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489],\n [0x0591, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2],\n [0x05C4, 0x05C5], [0x05C7, 0x05C7], [0x0600, 0x0603],\n [0x0610, 0x0615], [0x064B, 0x065E], [0x0670, 0x0670],\n [0x06D6, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED],\n [0x070F, 0x070F], [0x0711, 0x0711], [0x0730, 0x074A],\n [0x07A6, 0x07B0], [0x07EB, 0x07F3], [0x0901, 0x0902],\n [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D],\n [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981],\n [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD],\n [0x09E2, 0x09E3], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C],\n [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D],\n [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC],\n [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD],\n [0x0AE2, 0x0AE3], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C],\n [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D],\n [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0],\n [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48],\n [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBC, 0x0CBC],\n [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD],\n [0x0CE2, 0x0CE3], [0x0D41, 0x0D43], [0x0D4D, 0x0D4D],\n [0x0DCA, 0x0DCA], [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6],\n [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E],\n [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC],\n [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35],\n [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E],\n [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F97],\n [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6], [0x102D, 0x1030],\n [0x1032, 0x1032], [0x1036, 0x1037], [0x1039, 0x1039],\n [0x1058, 0x1059], [0x1160, 0x11FF], [0x135F, 0x135F],\n [0x1712, 0x1714], [0x1732, 0x1734], [0x1752, 0x1753],\n [0x1772, 0x1773], [0x17B4, 0x17B5], [0x17B7, 0x17BD],\n [0x17C6, 0x17C6], [0x17C9, 0x17D3], [0x17DD, 0x17DD],\n [0x180B, 0x180D], [0x18A9, 0x18A9], [0x1920, 0x1922],\n [0x1927, 0x1928], [0x1932, 0x1932], [0x1939, 0x193B],\n [0x1A17, 0x1A18], [0x1B00, 0x1B03], [0x1B34, 0x1B34],\n [0x1B36, 0x1B3A], [0x1B3C, 0x1B3C], [0x1B42, 0x1B42],\n [0x1B6B, 0x1B73], [0x1DC0, 0x1DCA], [0x1DFE, 0x1DFF],\n [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2063],\n [0x206A, 0x206F], [0x20D0, 0x20EF], [0x302A, 0x302F],\n [0x3099, 0x309A], [0xA806, 0xA806], [0xA80B, 0xA80B],\n [0xA825, 0xA826], [0xFB1E, 0xFB1E], [0xFE00, 0xFE0F],\n [0xFE20, 0xFE23], [0xFEFF, 0xFEFF], [0xFFF9, 0xFFFB]\n ];\n var COMBINING_HIGH = [\n [0x10A01, 0x10A03], [0x10A05, 0x10A06], [0x10A0C, 0x10A0F],\n [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F], [0x1D167, 0x1D169],\n [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD],\n [0x1D242, 0x1D244], [0xE0001, 0xE0001], [0xE0020, 0xE007F],\n [0xE0100, 0xE01EF]\n ];\n function bisearch(ucs, data) {\n var min = 0;\n var max = data.length - 1;\n var mid;\n if (ucs < data[0][0] || ucs > data[max][1]) {\n return false;\n }\n while (max >= min) {\n mid = (min + max) >> 1;\n if (ucs > data[mid][1]) {\n min = mid + 1;\n }\n else if (ucs < data[mid][0]) {\n max = mid - 1;\n }\n else {\n return true;\n }\n }\n return false;\n }\n function wcwidthBMP(ucs) {\n if (ucs === 0) {\n return opts.nul;\n }\n if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) {\n return opts.control;\n }\n if (bisearch(ucs, COMBINING_BMP)) {\n return 0;\n }\n if (isWideBMP(ucs)) {\n return 2;\n }\n return 1;\n }\n function isWideBMP(ucs) {\n return (ucs >= 0x1100 && (ucs <= 0x115f ||\n ucs === 0x2329 ||\n ucs === 0x232a ||\n (ucs >= 0x2e80 && ucs <= 0xa4cf && ucs !== 0x303f) ||\n (ucs >= 0xac00 && ucs <= 0xd7a3) ||\n (ucs >= 0xf900 && ucs <= 0xfaff) ||\n (ucs >= 0xfe10 && ucs <= 0xfe19) ||\n (ucs >= 0xfe30 && ucs <= 0xfe6f) ||\n (ucs >= 0xff00 && ucs <= 0xff60) ||\n (ucs >= 0xffe0 && ucs <= 0xffe6)));\n }\n function wcwidthHigh(ucs) {\n if (bisearch(ucs, COMBINING_HIGH)) {\n return 0;\n }\n if ((ucs >= 0x20000 && ucs <= 0x2fffd) || (ucs >= 0x30000 && ucs <= 0x3fffd)) {\n return 2;\n }\n return 1;\n }\n var control = opts.control | 0;\n var table = null;\n function initTable() {\n var CODEPOINTS = 65536;\n var BITWIDTH = 2;\n var ITEMSIZE = 32;\n var CONTAINERSIZE = CODEPOINTS * BITWIDTH / ITEMSIZE;\n var CODEPOINTS_PER_ITEM = ITEMSIZE / BITWIDTH;\n table = (typeof Uint32Array === 'undefined')\n ? new Array(CONTAINERSIZE)\n : new Uint32Array(CONTAINERSIZE);\n for (var i = 0; i < CONTAINERSIZE; ++i) {\n var num = 0;\n var pos = CODEPOINTS_PER_ITEM;\n while (pos--) {\n num = (num << 2) | wcwidthBMP(CODEPOINTS_PER_ITEM * i + pos);\n }\n table[i] = num;\n }\n return table;\n }\n return function (num) {\n num = num | 0;\n if (num < 32) {\n return control | 0;\n }\n if (num < 127) {\n return 1;\n }\n var t = table || initTable();\n if (num < 65536) {\n return t[num >> 4] >> ((num & 15) << 1) & 3;\n }\n return wcwidthHigh(num);\n };\n})({ nul: 0, control: 0 });\n//# sourceMappingURL=CharWidth.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nfunction r(low, high) {\n var c = high - low;\n var arr = new Array(c);\n while (c--) {\n arr[c] = --high;\n }\n return arr;\n}\nvar TransitionTable = (function () {\n function TransitionTable(length) {\n this.table = (typeof Uint8Array === 'undefined')\n ? new Array(length)\n : new Uint8Array(length);\n }\n TransitionTable.prototype.add = function (code, state, action, next) {\n this.table[state << 8 | code] = ((action | 0) << 4) | ((next === undefined) ? state : next);\n };\n TransitionTable.prototype.addMany = function (codes, state, action, next) {\n for (var i = 0; i < codes.length; i++) {\n this.add(codes[i], state, action, next);\n }\n };\n return TransitionTable;\n}());\nexports.TransitionTable = TransitionTable;\nvar PRINTABLES = r(0x20, 0x7f);\nvar EXECUTABLES = r(0x00, 0x18);\nEXECUTABLES.push(0x19);\nEXECUTABLES.concat(r(0x1c, 0x20));\nvar DEFAULT_TRANSITION = 1 << 4 | 0;\nexports.VT500_TRANSITION_TABLE = (function () {\n var table = new TransitionTable(4095);\n var states = r(0, 13 + 1);\n var state;\n for (state in states) {\n for (var code = 0; code < 160; ++code) {\n table.add(code, state, 1, 0);\n }\n }\n table.addMany(PRINTABLES, 0, 2, 0);\n for (state in states) {\n table.addMany([0x18, 0x1a, 0x99, 0x9a], state, 3, 0);\n table.addMany(r(0x80, 0x90), state, 3, 0);\n table.addMany(r(0x90, 0x98), state, 3, 0);\n table.add(0x9c, state, 0, 0);\n table.add(0x1b, state, 11, 1);\n table.add(0x9d, state, 4, 8);\n table.addMany([0x98, 0x9e, 0x9f], state, 0, 7);\n table.add(0x9b, state, 11, 3);\n table.add(0x90, state, 11, 9);\n }\n table.addMany(EXECUTABLES, 0, 3, 0);\n table.addMany(EXECUTABLES, 1, 3, 1);\n table.add(0x7f, 1, 0, 1);\n table.addMany(EXECUTABLES, 8, 0, 8);\n table.addMany(EXECUTABLES, 3, 3, 3);\n table.add(0x7f, 3, 0, 3);\n table.addMany(EXECUTABLES, 4, 3, 4);\n table.add(0x7f, 4, 0, 4);\n table.addMany(EXECUTABLES, 6, 3, 6);\n table.addMany(EXECUTABLES, 5, 3, 5);\n table.add(0x7f, 5, 0, 5);\n table.addMany(EXECUTABLES, 2, 3, 2);\n table.add(0x7f, 2, 0, 2);\n table.add(0x5d, 1, 4, 8);\n table.addMany(PRINTABLES, 8, 5, 8);\n table.add(0x7f, 8, 5, 8);\n table.addMany([0x9c, 0x1b, 0x18, 0x1a, 0x07], 8, 6, 0);\n table.addMany(r(0x1c, 0x20), 8, 0, 8);\n table.addMany([0x58, 0x5e, 0x5f], 1, 0, 7);\n table.addMany(PRINTABLES, 7, 0, 7);\n table.addMany(EXECUTABLES, 7, 0, 7);\n table.add(0x9c, 7, 0, 0);\n table.add(0x5b, 1, 11, 3);\n table.addMany(r(0x40, 0x7f), 3, 7, 0);\n table.addMany(r(0x30, 0x3a), 3, 8, 4);\n table.add(0x3b, 3, 8, 4);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], 3, 9, 4);\n table.addMany(r(0x30, 0x3a), 4, 8, 4);\n table.add(0x3b, 4, 8, 4);\n table.addMany(r(0x40, 0x7f), 4, 7, 0);\n table.addMany([0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 4, 0, 6);\n table.addMany(r(0x20, 0x40), 6, 0, 6);\n table.add(0x7f, 6, 0, 6);\n table.addMany(r(0x40, 0x7f), 6, 0, 0);\n table.add(0x3a, 3, 0, 6);\n table.addMany(r(0x20, 0x30), 3, 9, 5);\n table.addMany(r(0x20, 0x30), 5, 9, 5);\n table.addMany(r(0x30, 0x40), 5, 0, 6);\n table.addMany(r(0x40, 0x7f), 5, 7, 0);\n table.addMany(r(0x20, 0x30), 4, 9, 5);\n table.addMany(r(0x20, 0x30), 1, 9, 2);\n table.addMany(r(0x20, 0x30), 2, 9, 2);\n table.addMany(r(0x30, 0x7f), 2, 10, 0);\n table.addMany(r(0x30, 0x50), 1, 10, 0);\n table.addMany(r(0x51, 0x58), 1, 10, 0);\n table.addMany([0x59, 0x5a, 0x5c], 1, 10, 0);\n table.addMany(r(0x60, 0x7f), 1, 10, 0);\n table.add(0x50, 1, 11, 9);\n table.addMany(EXECUTABLES, 9, 0, 9);\n table.add(0x7f, 9, 0, 9);\n table.addMany(r(0x1c, 0x20), 9, 0, 9);\n table.addMany(r(0x20, 0x30), 9, 9, 12);\n table.add(0x3a, 9, 0, 11);\n table.addMany(r(0x30, 0x3a), 9, 8, 10);\n table.add(0x3b, 9, 8, 10);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], 9, 9, 10);\n table.addMany(EXECUTABLES, 11, 0, 11);\n table.addMany(r(0x20, 0x80), 11, 0, 11);\n table.addMany(r(0x1c, 0x20), 11, 0, 11);\n table.addMany(EXECUTABLES, 10, 0, 10);\n table.add(0x7f, 10, 0, 10);\n table.addMany(r(0x1c, 0x20), 10, 0, 10);\n table.addMany(r(0x30, 0x3a), 10, 8, 10);\n table.add(0x3b, 10, 8, 10);\n table.addMany([0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 10, 0, 11);\n table.addMany(r(0x20, 0x30), 10, 9, 12);\n table.addMany(EXECUTABLES, 12, 0, 12);\n table.add(0x7f, 12, 0, 12);\n table.addMany(r(0x1c, 0x20), 12, 0, 12);\n table.addMany(r(0x20, 0x30), 12, 9, 12);\n table.addMany(r(0x30, 0x40), 12, 0, 11);\n table.addMany(r(0x40, 0x7f), 12, 12, 13);\n table.addMany(r(0x40, 0x7f), 10, 12, 13);\n table.addMany(r(0x40, 0x7f), 9, 12, 13);\n table.addMany(EXECUTABLES, 13, 13, 13);\n table.addMany(PRINTABLES, 13, 13, 13);\n table.add(0x7f, 13, 0, 13);\n table.addMany([0x1b, 0x9c], 13, 14, 0);\n return table;\n})();\nvar DcsDummy = (function () {\n function DcsDummy() {\n }\n DcsDummy.prototype.hook = function (collect, params, flag) { };\n DcsDummy.prototype.put = function (data, start, end) { };\n DcsDummy.prototype.unhook = function () { };\n return DcsDummy;\n}());\nvar EscapeSequenceParser = (function (_super) {\n __extends(EscapeSequenceParser, _super);\n function EscapeSequenceParser(TRANSITIONS) {\n if (TRANSITIONS === void 0) { TRANSITIONS = exports.VT500_TRANSITION_TABLE; }\n var _this = _super.call(this) || this;\n _this.TRANSITIONS = TRANSITIONS;\n _this.initialState = 0;\n _this.currentState = _this.initialState;\n _this._osc = '';\n _this._params = [0];\n _this._collect = '';\n _this._printHandlerFb = function (data, start, end) { };\n _this._executeHandlerFb = function (code) { };\n _this._csiHandlerFb = function (collect, params, flag) { };\n _this._escHandlerFb = function (collect, flag) { };\n _this._oscHandlerFb = function (identifier, data) { };\n _this._dcsHandlerFb = new DcsDummy();\n _this._errorHandlerFb = function (state) { return state; };\n _this._printHandler = _this._printHandlerFb;\n _this._executeHandlers = Object.create(null);\n _this._csiHandlers = Object.create(null);\n _this._escHandlers = Object.create(null);\n _this._oscHandlers = Object.create(null);\n _this._dcsHandlers = Object.create(null);\n _this._activeDcsHandler = null;\n _this._errorHandler = _this._errorHandlerFb;\n return _this;\n }\n EscapeSequenceParser.prototype.dispose = function () {\n this._printHandlerFb = null;\n this._executeHandlerFb = null;\n this._csiHandlerFb = null;\n this._escHandlerFb = null;\n this._oscHandlerFb = null;\n this._dcsHandlerFb = null;\n this._errorHandlerFb = null;\n this._printHandler = null;\n this._executeHandlers = null;\n this._csiHandlers = null;\n this._escHandlers = null;\n this._oscHandlers = null;\n this._dcsHandlers = null;\n this._activeDcsHandler = null;\n this._errorHandler = null;\n };\n EscapeSequenceParser.prototype.setPrintHandler = function (callback) {\n this._printHandler = callback;\n };\n EscapeSequenceParser.prototype.clearPrintHandler = function () {\n this._printHandler = this._printHandlerFb;\n };\n EscapeSequenceParser.prototype.setExecuteHandler = function (flag, callback) {\n this._executeHandlers[flag.charCodeAt(0)] = callback;\n };\n EscapeSequenceParser.prototype.clearExecuteHandler = function (flag) {\n if (this._executeHandlers[flag.charCodeAt(0)])\n delete this._executeHandlers[flag.charCodeAt(0)];\n };\n EscapeSequenceParser.prototype.setExecuteHandlerFallback = function (callback) {\n this._executeHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.setCsiHandler = function (flag, callback) {\n this._csiHandlers[flag.charCodeAt(0)] = callback;\n };\n EscapeSequenceParser.prototype.clearCsiHandler = function (flag) {\n if (this._csiHandlers[flag.charCodeAt(0)])\n delete this._csiHandlers[flag.charCodeAt(0)];\n };\n EscapeSequenceParser.prototype.setCsiHandlerFallback = function (callback) {\n this._csiHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.setEscHandler = function (collectAndFlag, callback) {\n this._escHandlers[collectAndFlag] = callback;\n };\n EscapeSequenceParser.prototype.clearEscHandler = function (collectAndFlag) {\n if (this._escHandlers[collectAndFlag])\n delete this._escHandlers[collectAndFlag];\n };\n EscapeSequenceParser.prototype.setEscHandlerFallback = function (callback) {\n this._escHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.setOscHandler = function (ident, callback) {\n this._oscHandlers[ident] = callback;\n };\n EscapeSequenceParser.prototype.clearOscHandler = function (ident) {\n if (this._oscHandlers[ident])\n delete this._oscHandlers[ident];\n };\n EscapeSequenceParser.prototype.setOscHandlerFallback = function (callback) {\n this._oscHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.setDcsHandler = function (collectAndFlag, handler) {\n this._dcsHandlers[collectAndFlag] = handler;\n };\n EscapeSequenceParser.prototype.clearDcsHandler = function (collectAndFlag) {\n if (this._dcsHandlers[collectAndFlag])\n delete this._dcsHandlers[collectAndFlag];\n };\n EscapeSequenceParser.prototype.setDcsHandlerFallback = function (handler) {\n this._dcsHandlerFb = handler;\n };\n EscapeSequenceParser.prototype.setErrorHandler = function (callback) {\n this._errorHandler = callback;\n };\n EscapeSequenceParser.prototype.clearErrorHandler = function () {\n this._errorHandler = this._errorHandlerFb;\n };\n EscapeSequenceParser.prototype.reset = function () {\n this.currentState = this.initialState;\n this._osc = '';\n this._params = [0];\n this._collect = '';\n this._activeDcsHandler = null;\n };\n EscapeSequenceParser.prototype.parse = function (data) {\n var code = 0;\n var transition = 0;\n var error = false;\n var currentState = this.currentState;\n var print = -1;\n var dcs = -1;\n var osc = this._osc;\n var collect = this._collect;\n var params = this._params;\n var table = this.TRANSITIONS.table;\n var dcsHandler = this._activeDcsHandler;\n var callback = null;\n var l = data.length;\n for (var i = 0; i < l; ++i) {\n code = data.charCodeAt(i);\n if (currentState === 0 && code > 0x1f && code < 0x80) {\n print = (~print) ? print : i;\n do\n i++;\n while (i < l && data.charCodeAt(i) > 0x1f && data.charCodeAt(i) < 0x80);\n i--;\n continue;\n }\n if (currentState === 4 && (code > 0x2f && code < 0x39)) {\n params[params.length - 1] = params[params.length - 1] * 10 + code - 48;\n continue;\n }\n transition = (code < 0xa0) ? (table[currentState << 8 | code]) : DEFAULT_TRANSITION;\n switch (transition >> 4) {\n case 2:\n print = (~print) ? print : i;\n break;\n case 3:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n callback = this._executeHandlers[code];\n if (callback)\n callback();\n else\n this._executeHandlerFb(code);\n break;\n case 0:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n else if (~dcs) {\n dcsHandler.put(data, dcs, i);\n dcs = -1;\n }\n break;\n case 1:\n if (code > 0x9f) {\n switch (currentState) {\n case 0:\n print = (~print) ? print : i;\n break;\n case 8:\n osc += String.fromCharCode(code);\n transition |= 8;\n break;\n case 6:\n transition |= 6;\n break;\n case 11:\n transition |= 11;\n break;\n case 13:\n dcs = (~dcs) ? dcs : i;\n transition |= 13;\n break;\n default:\n error = true;\n }\n }\n else {\n error = true;\n }\n if (error) {\n var inject = this._errorHandler({\n position: i,\n code: code,\n currentState: currentState,\n print: print,\n dcs: dcs,\n osc: osc,\n collect: collect,\n params: params,\n abort: false\n });\n if (inject.abort)\n return;\n error = false;\n }\n break;\n case 7:\n callback = this._csiHandlers[code];\n if (callback)\n callback(params, collect);\n else\n this._csiHandlerFb(collect, params, code);\n break;\n case 8:\n if (code === 0x3b)\n params.push(0);\n else\n params[params.length - 1] = params[params.length - 1] * 10 + code - 48;\n break;\n case 9:\n collect += String.fromCharCode(code);\n break;\n case 10:\n callback = this._escHandlers[collect + String.fromCharCode(code)];\n if (callback)\n callback(collect, code);\n else\n this._escHandlerFb(collect, code);\n break;\n case 11:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n osc = '';\n params = [0];\n collect = '';\n dcs = -1;\n break;\n case 12:\n dcsHandler = this._dcsHandlers[collect + String.fromCharCode(code)];\n if (!dcsHandler)\n dcsHandler = this._dcsHandlerFb;\n dcsHandler.hook(collect, params, code);\n break;\n case 13:\n dcs = (~dcs) ? dcs : i;\n break;\n case 14:\n if (dcsHandler) {\n if (~dcs)\n dcsHandler.put(data, dcs, i);\n dcsHandler.unhook();\n dcsHandler = null;\n }\n if (code === 0x1b)\n transition |= 1;\n osc = '';\n params = [0];\n collect = '';\n dcs = -1;\n break;\n case 4:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n osc = '';\n break;\n case 5:\n osc += data.charAt(i);\n break;\n case 6:\n if (osc && code !== 0x18 && code !== 0x1a) {\n var idx = osc.indexOf(';');\n if (idx === -1) {\n this._oscHandlerFb(-1, osc);\n }\n else {\n var identifier = parseInt(osc.substring(0, idx));\n var content = osc.substring(idx + 1);\n callback = this._oscHandlers[identifier];\n if (callback)\n callback(content);\n else\n this._oscHandlerFb(identifier, content);\n }\n }\n if (code === 0x1b)\n transition |= 1;\n osc = '';\n params = [0];\n collect = '';\n dcs = -1;\n break;\n }\n currentState = transition & 15;\n }\n if (currentState === 0 && ~print) {\n this._printHandler(data, print, data.length);\n }\n else if (currentState === 13 && ~dcs && dcsHandler) {\n dcsHandler.put(data, dcs, data.length);\n }\n this._osc = osc;\n this._collect = collect;\n this._params = params;\n this._activeDcsHandler = dcsHandler;\n this.currentState = currentState;\n };\n return EscapeSequenceParser;\n}(Lifecycle_1.Disposable));\nexports.EscapeSequenceParser = EscapeSequenceParser;\n//# sourceMappingURL=EscapeSequenceParser.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TextRenderLayer_1 = require(\"./TextRenderLayer\");\nvar SelectionRenderLayer_1 = require(\"./SelectionRenderLayer\");\nvar CursorRenderLayer_1 = require(\"./CursorRenderLayer\");\nvar ColorManager_1 = require(\"./ColorManager\");\nvar LinkRenderLayer_1 = require(\"./LinkRenderLayer\");\nvar EventEmitter_1 = require(\"../EventEmitter\");\nvar RenderDebouncer_1 = require(\"../ui/RenderDebouncer\");\nvar ScreenDprMonitor_1 = require(\"../ui/ScreenDprMonitor\");\nvar CharacterJoinerRegistry_1 = require(\"../renderer/CharacterJoinerRegistry\");\nvar Renderer = (function (_super) {\n __extends(Renderer, _super);\n function Renderer(_terminal, theme) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._isPaused = false;\n _this._needsFullRefresh = false;\n var allowTransparency = _this._terminal.options.allowTransparency;\n _this.colorManager = new ColorManager_1.ColorManager(document, allowTransparency);\n _this._characterJoinerRegistry = new CharacterJoinerRegistry_1.CharacterJoinerRegistry(_terminal);\n if (theme) {\n _this.colorManager.setTheme(theme);\n }\n _this._renderLayers = [\n new TextRenderLayer_1.TextRenderLayer(_this._terminal.screenElement, 0, _this.colorManager.colors, _this._characterJoinerRegistry, allowTransparency),\n new SelectionRenderLayer_1.SelectionRenderLayer(_this._terminal.screenElement, 1, _this.colorManager.colors),\n new LinkRenderLayer_1.LinkRenderLayer(_this._terminal.screenElement, 2, _this.colorManager.colors, _this._terminal),\n new CursorRenderLayer_1.CursorRenderLayer(_this._terminal.screenElement, 3, _this.colorManager.colors)\n ];\n _this.dimensions = {\n scaledCharWidth: null,\n scaledCharHeight: null,\n scaledCellWidth: null,\n scaledCellHeight: null,\n scaledCharLeft: null,\n scaledCharTop: null,\n scaledCanvasWidth: null,\n scaledCanvasHeight: null,\n canvasWidth: null,\n canvasHeight: null,\n actualCellWidth: null,\n actualCellHeight: null\n };\n _this._devicePixelRatio = window.devicePixelRatio;\n _this._updateDimensions();\n _this.onOptionsChanged();\n _this._renderDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._terminal, _this._renderRows.bind(_this));\n _this._screenDprMonitor = new ScreenDprMonitor_1.ScreenDprMonitor();\n _this._screenDprMonitor.setListener(function () { return _this.onWindowResize(window.devicePixelRatio); });\n _this.register(_this._screenDprMonitor);\n if ('IntersectionObserver' in window) {\n var observer_1 = new IntersectionObserver(function (e) { return _this.onIntersectionChange(e[0]); }, { threshold: 0 });\n observer_1.observe(_this._terminal.element);\n _this.register({ dispose: function () { return observer_1.disconnect(); } });\n }\n return _this;\n }\n Renderer.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._renderLayers.forEach(function (l) { return l.dispose(); });\n };\n Renderer.prototype.onIntersectionChange = function (entry) {\n this._isPaused = entry.intersectionRatio === 0;\n if (!this._isPaused && this._needsFullRefresh) {\n this._terminal.refresh(0, this._terminal.rows - 1);\n }\n };\n Renderer.prototype.onWindowResize = function (devicePixelRatio) {\n if (this._devicePixelRatio !== devicePixelRatio) {\n this._devicePixelRatio = devicePixelRatio;\n this.onResize(this._terminal.cols, this._terminal.rows);\n }\n };\n Renderer.prototype.setTheme = function (theme) {\n var _this = this;\n this.colorManager.setTheme(theme);\n this._renderLayers.forEach(function (l) {\n l.onThemeChanged(_this._terminal, _this.colorManager.colors);\n l.reset(_this._terminal);\n });\n if (this._isPaused) {\n this._needsFullRefresh = true;\n }\n else {\n this._terminal.refresh(0, this._terminal.rows - 1);\n }\n return this.colorManager.colors;\n };\n Renderer.prototype.onResize = function (cols, rows) {\n var _this = this;\n this._updateDimensions();\n this._renderLayers.forEach(function (l) { return l.resize(_this._terminal, _this.dimensions); });\n if (this._isPaused) {\n this._needsFullRefresh = true;\n }\n else {\n this._terminal.refresh(0, this._terminal.rows - 1);\n }\n this._terminal.screenElement.style.width = this.dimensions.canvasWidth + \"px\";\n this._terminal.screenElement.style.height = this.dimensions.canvasHeight + \"px\";\n this.emit('resize', {\n width: this.dimensions.canvasWidth,\n height: this.dimensions.canvasHeight\n });\n };\n Renderer.prototype.onCharSizeChanged = function () {\n this.onResize(this._terminal.cols, this._terminal.rows);\n };\n Renderer.prototype.onBlur = function () {\n var _this = this;\n this._runOperation(function (l) { return l.onBlur(_this._terminal); });\n };\n Renderer.prototype.onFocus = function () {\n var _this = this;\n this._runOperation(function (l) { return l.onFocus(_this._terminal); });\n };\n Renderer.prototype.onSelectionChanged = function (start, end, columnSelectMode) {\n var _this = this;\n if (columnSelectMode === void 0) { columnSelectMode = false; }\n this._runOperation(function (l) { return l.onSelectionChanged(_this._terminal, start, end, columnSelectMode); });\n };\n Renderer.prototype.onCursorMove = function () {\n var _this = this;\n this._runOperation(function (l) { return l.onCursorMove(_this._terminal); });\n };\n Renderer.prototype.onOptionsChanged = function () {\n var _this = this;\n this.colorManager.allowTransparency = this._terminal.options.allowTransparency;\n this._runOperation(function (l) { return l.onOptionsChanged(_this._terminal); });\n };\n Renderer.prototype.clear = function () {\n var _this = this;\n this._runOperation(function (l) { return l.reset(_this._terminal); });\n };\n Renderer.prototype._runOperation = function (operation) {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n }\n else {\n this._renderLayers.forEach(function (l) { return operation(l); });\n }\n };\n Renderer.prototype.refreshRows = function (start, end) {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n return;\n }\n this._renderDebouncer.refresh(start, end);\n };\n Renderer.prototype._renderRows = function (start, end) {\n var _this = this;\n this._renderLayers.forEach(function (l) { return l.onGridChanged(_this._terminal, start, end); });\n this._terminal.emit('refresh', { start: start, end: end });\n };\n Renderer.prototype._updateDimensions = function () {\n if (!this._terminal.charMeasure.width || !this._terminal.charMeasure.height) {\n return;\n }\n this.dimensions.scaledCharWidth = Math.floor(this._terminal.charMeasure.width * window.devicePixelRatio);\n this.dimensions.scaledCharHeight = Math.ceil(this._terminal.charMeasure.height * window.devicePixelRatio);\n this.dimensions.scaledCellHeight = Math.floor(this.dimensions.scaledCharHeight * this._terminal.options.lineHeight);\n this.dimensions.scaledCharTop = this._terminal.options.lineHeight === 1 ? 0 : Math.round((this.dimensions.scaledCellHeight - this.dimensions.scaledCharHeight) / 2);\n this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth + Math.round(this._terminal.options.letterSpacing);\n this.dimensions.scaledCharLeft = Math.floor(this._terminal.options.letterSpacing / 2);\n this.dimensions.scaledCanvasHeight = this._terminal.rows * this.dimensions.scaledCellHeight;\n this.dimensions.scaledCanvasWidth = this._terminal.cols * this.dimensions.scaledCellWidth;\n this.dimensions.canvasHeight = Math.round(this.dimensions.scaledCanvasHeight / window.devicePixelRatio);\n this.dimensions.canvasWidth = Math.round(this.dimensions.scaledCanvasWidth / window.devicePixelRatio);\n this.dimensions.actualCellHeight = this.dimensions.canvasHeight / this._terminal.rows;\n this.dimensions.actualCellWidth = this.dimensions.canvasWidth / this._terminal.cols;\n };\n Renderer.prototype.registerCharacterJoiner = function (handler) {\n return this._characterJoinerRegistry.registerCharacterJoiner(handler);\n };\n Renderer.prototype.deregisterCharacterJoiner = function (joinerId) {\n return this._characterJoinerRegistry.deregisterCharacterJoiner(joinerId);\n };\n return Renderer;\n}(EventEmitter_1.EventEmitter));\nexports.Renderer = Renderer;\n//# sourceMappingURL=Renderer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../Buffer\");\nvar Types_1 = require(\"./atlas/Types\");\nvar GridCache_1 = require(\"./GridCache\");\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar TextRenderLayer = (function (_super) {\n __extends(TextRenderLayer, _super);\n function TextRenderLayer(container, zIndex, colors, characterJoinerRegistry, alpha) {\n var _this = _super.call(this, container, 'text', zIndex, alpha, colors) || this;\n _this._characterOverlapCache = {};\n _this._state = new GridCache_1.GridCache();\n _this._characterJoinerRegistry = characterJoinerRegistry;\n return _this;\n }\n TextRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n var terminalFont = this._getFont(terminal, false, false);\n if (this._characterWidth !== dim.scaledCharWidth || this._characterFont !== terminalFont) {\n this._characterWidth = dim.scaledCharWidth;\n this._characterFont = terminalFont;\n this._characterOverlapCache = {};\n }\n this._state.clear();\n this._state.resize(terminal.cols, terminal.rows);\n };\n TextRenderLayer.prototype.reset = function (terminal) {\n this._state.clear();\n this.clearAll();\n };\n TextRenderLayer.prototype._forEachCell = function (terminal, firstRow, lastRow, joinerRegistry, callback) {\n for (var y = firstRow; y <= lastRow; y++) {\n var row = y + terminal.buffer.ydisp;\n var line = terminal.buffer.lines.get(row);\n var joinedRanges = joinerRegistry ? joinerRegistry.getJoinedCharacters(row) : [];\n for (var x = 0; x < terminal.cols; x++) {\n var charData = line[x];\n var code = charData[Buffer_1.CHAR_DATA_CODE_INDEX];\n var chars = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n var isJoined = false;\n var lastCharX = x;\n if (width === 0) {\n continue;\n }\n if (joinedRanges.length > 0 && x === joinedRanges[0][0]) {\n isJoined = true;\n var range = joinedRanges.shift();\n chars = terminal.buffer.translateBufferLineToString(row, true, range[0], range[1]);\n width = range[1] - range[0];\n code = Infinity;\n lastCharX = range[1] - 1;\n }\n if (!isJoined && this._isOverlapping(charData)) {\n if (lastCharX < line.length - 1 && line[lastCharX + 1][Buffer_1.CHAR_DATA_CODE_INDEX] === Buffer_1.NULL_CELL_CODE) {\n width = 2;\n }\n }\n var flags = attr >> 18;\n var bg = attr & 0x1ff;\n var fg = (attr >> 9) & 0x1ff;\n if (flags & 8) {\n var temp = bg;\n bg = fg;\n fg = temp;\n if (fg === 256) {\n fg = Types_1.INVERTED_DEFAULT_COLOR;\n }\n if (bg === 257) {\n bg = Types_1.INVERTED_DEFAULT_COLOR;\n }\n }\n callback(code, chars, width, x, y, fg, bg, flags);\n x = lastCharX;\n }\n }\n };\n TextRenderLayer.prototype._drawBackground = function (terminal, firstRow, lastRow) {\n var _this = this;\n var ctx = this._ctx;\n var cols = terminal.cols;\n var startX = 0;\n var startY = 0;\n var prevFillStyle = null;\n ctx.save();\n this._forEachCell(terminal, firstRow, lastRow, null, function (code, chars, width, x, y, fg, bg, flags) {\n var nextFillStyle = null;\n if (bg === Types_1.INVERTED_DEFAULT_COLOR) {\n nextFillStyle = _this._colors.foreground.css;\n }\n else if (bg < 256) {\n nextFillStyle = _this._colors.ansi[bg].css;\n }\n if (prevFillStyle === null) {\n startX = x;\n startY = y;\n }\n if (y !== startY) {\n ctx.fillStyle = prevFillStyle;\n _this.fillCells(startX, startY, cols - startX, 1);\n startX = x;\n startY = y;\n }\n else if (prevFillStyle !== nextFillStyle) {\n ctx.fillStyle = prevFillStyle;\n _this.fillCells(startX, startY, x - startX, 1);\n startX = x;\n startY = y;\n }\n prevFillStyle = nextFillStyle;\n });\n if (prevFillStyle !== null) {\n ctx.fillStyle = prevFillStyle;\n this.fillCells(startX, startY, cols - startX, 1);\n }\n ctx.restore();\n };\n TextRenderLayer.prototype._drawForeground = function (terminal, firstRow, lastRow) {\n var _this = this;\n this._forEachCell(terminal, firstRow, lastRow, this._characterJoinerRegistry, function (code, chars, width, x, y, fg, bg, flags) {\n if (flags & 16) {\n return;\n }\n if (flags & 2) {\n _this._ctx.save();\n if (fg === Types_1.INVERTED_DEFAULT_COLOR) {\n _this._ctx.fillStyle = _this._colors.background.css;\n }\n else if (fg < 256) {\n _this._ctx.fillStyle = _this._colors.ansi[fg].css;\n }\n else {\n _this._ctx.fillStyle = _this._colors.foreground.css;\n }\n _this.fillBottomLineAtCells(x, y, width);\n _this._ctx.restore();\n }\n _this.drawChars(terminal, chars, code, width, x, y, fg, bg, !!(flags & 1), !!(flags & 32), !!(flags & 64));\n });\n };\n TextRenderLayer.prototype.onGridChanged = function (terminal, firstRow, lastRow) {\n if (this._state.cache.length === 0) {\n return;\n }\n if (this._charAtlas) {\n this._charAtlas.beginFrame();\n }\n this.clearCells(0, firstRow, terminal.cols, lastRow - firstRow + 1);\n this._drawBackground(terminal, firstRow, lastRow);\n this._drawForeground(terminal, firstRow, lastRow);\n };\n TextRenderLayer.prototype.onOptionsChanged = function (terminal) {\n this.setTransparency(terminal, terminal.options.allowTransparency);\n };\n TextRenderLayer.prototype._isOverlapping = function (charData) {\n if (charData[Buffer_1.CHAR_DATA_WIDTH_INDEX] !== 1) {\n return false;\n }\n var code = charData[Buffer_1.CHAR_DATA_CODE_INDEX];\n if (code < 256) {\n return false;\n }\n var char = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n if (this._characterOverlapCache.hasOwnProperty(char)) {\n return this._characterOverlapCache[char];\n }\n this._ctx.save();\n this._ctx.font = this._characterFont;\n var overlaps = Math.floor(this._ctx.measureText(char).width) > this._characterWidth;\n this._ctx.restore();\n this._characterOverlapCache[char] = overlaps;\n return overlaps;\n };\n return TextRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.TextRenderLayer = TextRenderLayer;\n//# sourceMappingURL=TextRenderLayer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GridCache = (function () {\n function GridCache() {\n this.cache = [];\n }\n GridCache.prototype.resize = function (width, height) {\n for (var x = 0; x < width; x++) {\n if (this.cache.length <= x) {\n this.cache.push([]);\n }\n for (var y = this.cache[x].length; y < height; y++) {\n this.cache[x].push(null);\n }\n this.cache[x].length = height;\n }\n this.cache.length = width;\n };\n GridCache.prototype.clear = function () {\n for (var x = 0; x < this.cache.length; x++) {\n for (var y = 0; y < this.cache[x].length; y++) {\n this.cache[x][y] = null;\n }\n }\n };\n return GridCache;\n}());\nexports.GridCache = GridCache;\n//# sourceMappingURL=GridCache.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors) {\n var clonedColors = {\n foreground: colors.foreground,\n background: colors.background,\n cursor: null,\n cursorAccent: null,\n selection: null,\n ansi: colors.ansi.slice(0, 16)\n };\n return {\n type: terminal.options.experimentalCharAtlas,\n devicePixelRatio: window.devicePixelRatio,\n scaledCharWidth: scaledCharWidth,\n scaledCharHeight: scaledCharHeight,\n fontFamily: terminal.options.fontFamily,\n fontSize: terminal.options.fontSize,\n fontWeight: terminal.options.fontWeight,\n fontWeightBold: terminal.options.fontWeightBold,\n allowTransparency: terminal.options.allowTransparency,\n colors: clonedColors\n };\n}\nexports.generateConfig = generateConfig;\nfunction configEquals(a, b) {\n for (var i = 0; i < a.colors.ansi.length; i++) {\n if (a.colors.ansi[i].rgba !== b.colors.ansi[i].rgba) {\n return false;\n }\n }\n return a.type === b.type &&\n a.devicePixelRatio === b.devicePixelRatio &&\n a.fontFamily === b.fontFamily &&\n a.fontSize === b.fontSize &&\n a.fontWeight === b.fontWeight &&\n a.fontWeightBold === b.fontWeightBold &&\n a.allowTransparency === b.allowTransparency &&\n a.scaledCharWidth === b.scaledCharWidth &&\n a.scaledCharHeight === b.scaledCharHeight &&\n a.colors.foreground === b.colors.foreground &&\n a.colors.background === b.colors.background;\n}\nexports.configEquals = configEquals;\n//# sourceMappingURL=CharAtlasUtils.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./Types\");\nvar BaseCharAtlas_1 = require(\"./BaseCharAtlas\");\nvar ColorManager_1 = require(\"../ColorManager\");\nvar CharAtlasGenerator_1 = require(\"../../shared/atlas/CharAtlasGenerator\");\nvar LRUMap_1 = require(\"./LRUMap\");\nvar TEXTURE_WIDTH = 1024;\nvar TEXTURE_HEIGHT = 1024;\nvar TRANSPARENT_COLOR = {\n css: 'rgba(0, 0, 0, 0)',\n rgba: 0\n};\nvar FRAME_CACHE_DRAW_LIMIT = 100;\nfunction getGlyphCacheKey(glyph) {\n var styleFlags = (glyph.bold ? 0 : 4) + (glyph.dim ? 0 : 2) + (glyph.italic ? 0 : 1);\n return glyph.bg + \"_\" + glyph.fg + \"_\" + styleFlags + glyph.chars;\n}\nvar DynamicCharAtlas = (function (_super) {\n __extends(DynamicCharAtlas, _super);\n function DynamicCharAtlas(document, _config) {\n var _this = _super.call(this) || this;\n _this._config = _config;\n _this._drawToCacheCount = 0;\n _this._cacheCanvas = document.createElement('canvas');\n _this._cacheCanvas.width = TEXTURE_WIDTH;\n _this._cacheCanvas.height = TEXTURE_HEIGHT;\n _this._cacheCtx = _this._cacheCanvas.getContext('2d', { alpha: true });\n var tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = _this._config.scaledCharWidth;\n tmpCanvas.height = _this._config.scaledCharHeight;\n _this._tmpCtx = tmpCanvas.getContext('2d', { alpha: _this._config.allowTransparency });\n _this._width = Math.floor(TEXTURE_WIDTH / _this._config.scaledCharWidth);\n _this._height = Math.floor(TEXTURE_HEIGHT / _this._config.scaledCharHeight);\n var capacity = _this._width * _this._height;\n _this._cacheMap = new LRUMap_1.default(capacity);\n _this._cacheMap.prealloc(capacity);\n return _this;\n }\n DynamicCharAtlas.prototype.beginFrame = function () {\n this._drawToCacheCount = 0;\n };\n DynamicCharAtlas.prototype.draw = function (ctx, glyph, x, y) {\n var glyphKey = getGlyphCacheKey(glyph);\n var cacheValue = this._cacheMap.get(glyphKey);\n if (cacheValue != null) {\n this._drawFromCache(ctx, cacheValue, x, y);\n return true;\n }\n else if (this._canCache(glyph) && this._drawToCacheCount < FRAME_CACHE_DRAW_LIMIT) {\n var index = void 0;\n if (this._cacheMap.size < this._cacheMap.capacity) {\n index = this._cacheMap.size;\n }\n else {\n index = this._cacheMap.peek().index;\n }\n var cacheValue_1 = this._drawToCache(glyph, index);\n this._cacheMap.set(glyphKey, cacheValue_1);\n this._drawFromCache(ctx, cacheValue_1, x, y);\n return true;\n }\n return false;\n };\n DynamicCharAtlas.prototype._canCache = function (glyph) {\n return glyph.code < 256;\n };\n DynamicCharAtlas.prototype._toCoordinates = function (index) {\n return [\n (index % this._width) * this._config.scaledCharWidth,\n Math.floor(index / this._width) * this._config.scaledCharHeight\n ];\n };\n DynamicCharAtlas.prototype._drawFromCache = function (ctx, cacheValue, x, y) {\n if (cacheValue.isEmpty) {\n return;\n }\n var _a = this._toCoordinates(cacheValue.index), cacheX = _a[0], cacheY = _a[1];\n ctx.drawImage(this._cacheCanvas, cacheX, cacheY, this._config.scaledCharWidth, this._config.scaledCharHeight, x, y, this._config.scaledCharWidth, this._config.scaledCharHeight);\n };\n DynamicCharAtlas.prototype._getColorFromAnsiIndex = function (idx) {\n if (idx < this._config.colors.ansi.length) {\n return this._config.colors.ansi[idx];\n }\n return ColorManager_1.DEFAULT_ANSI_COLORS[idx];\n };\n DynamicCharAtlas.prototype._getBackgroundColor = function (glyph) {\n if (this._config.allowTransparency) {\n return TRANSPARENT_COLOR;\n }\n else if (glyph.bg === Types_1.INVERTED_DEFAULT_COLOR) {\n return this._config.colors.foreground;\n }\n else if (glyph.bg < 256) {\n return this._getColorFromAnsiIndex(glyph.bg);\n }\n return this._config.colors.background;\n };\n DynamicCharAtlas.prototype._getForegroundColor = function (glyph) {\n if (glyph.fg === Types_1.INVERTED_DEFAULT_COLOR) {\n return this._config.colors.background;\n }\n else if (glyph.fg < 256) {\n return this._getColorFromAnsiIndex(glyph.fg);\n }\n return this._config.colors.foreground;\n };\n DynamicCharAtlas.prototype._drawToCache = function (glyph, index) {\n this._drawToCacheCount++;\n this._tmpCtx.save();\n var backgroundColor = this._getBackgroundColor(glyph);\n this._tmpCtx.globalCompositeOperation = 'copy';\n this._tmpCtx.fillStyle = backgroundColor.css;\n this._tmpCtx.fillRect(0, 0, this._config.scaledCharWidth, this._config.scaledCharHeight);\n this._tmpCtx.globalCompositeOperation = 'source-over';\n var fontWeight = glyph.bold ? this._config.fontWeightBold : this._config.fontWeight;\n var fontStyle = glyph.italic ? 'italic' : '';\n this._tmpCtx.font =\n fontStyle + \" \" + fontWeight + \" \" + this._config.fontSize * this._config.devicePixelRatio + \"px \" + this._config.fontFamily;\n this._tmpCtx.textBaseline = 'top';\n this._tmpCtx.fillStyle = this._getForegroundColor(glyph).css;\n if (glyph.dim) {\n this._tmpCtx.globalAlpha = Types_1.DIM_OPACITY;\n }\n this._tmpCtx.fillText(glyph.chars, 0, 0);\n this._tmpCtx.restore();\n var imageData = this._tmpCtx.getImageData(0, 0, this._config.scaledCharWidth, this._config.scaledCharHeight);\n var isEmpty = false;\n if (!this._config.allowTransparency) {\n isEmpty = CharAtlasGenerator_1.clearColor(imageData, backgroundColor);\n }\n var _a = this._toCoordinates(index), x = _a[0], y = _a[1];\n this._cacheCtx.putImageData(imageData, x, y);\n return {\n index: index,\n isEmpty: isEmpty\n };\n };\n return DynamicCharAtlas;\n}(BaseCharAtlas_1.default));\nexports.default = DynamicCharAtlas;\n//# sourceMappingURL=DynamicCharAtlas.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRUMap = (function () {\n function LRUMap(capacity) {\n this.capacity = capacity;\n this._map = {};\n this._head = null;\n this._tail = null;\n this._nodePool = [];\n this.size = 0;\n }\n LRUMap.prototype._unlinkNode = function (node) {\n var prev = node.prev;\n var next = node.next;\n if (node === this._head) {\n this._head = next;\n }\n if (node === this._tail) {\n this._tail = prev;\n }\n if (prev !== null) {\n prev.next = next;\n }\n if (next !== null) {\n next.prev = prev;\n }\n };\n LRUMap.prototype._appendNode = function (node) {\n var tail = this._tail;\n if (tail !== null) {\n tail.next = node;\n }\n node.prev = tail;\n node.next = null;\n this._tail = node;\n if (this._head === null) {\n this._head = node;\n }\n };\n LRUMap.prototype.prealloc = function (count) {\n var nodePool = this._nodePool;\n for (var i = 0; i < count; i++) {\n nodePool.push({\n prev: null,\n next: null,\n key: null,\n value: null\n });\n }\n };\n LRUMap.prototype.get = function (key) {\n var node = this._map[key];\n if (node !== undefined) {\n this._unlinkNode(node);\n this._appendNode(node);\n return node.value;\n }\n return null;\n };\n LRUMap.prototype.peek = function () {\n var head = this._head;\n return head === null ? null : head.value;\n };\n LRUMap.prototype.set = function (key, value) {\n var node = this._map[key];\n if (node !== undefined) {\n node = this._map[key];\n this._unlinkNode(node);\n node.value = value;\n }\n else if (this.size >= this.capacity) {\n node = this._head;\n this._unlinkNode(node);\n delete this._map[node.key];\n node.key = key;\n node.value = value;\n this._map[key] = node;\n }\n else {\n var nodePool = this._nodePool;\n if (nodePool.length > 0) {\n node = nodePool.pop();\n node.key = key;\n node.value = value;\n }\n else {\n node = {\n prev: null,\n next: null,\n key: key,\n value: value\n };\n }\n this._map[key] = node;\n this.size++;\n }\n this._appendNode(node);\n };\n return LRUMap;\n}());\nexports.default = LRUMap;\n//# sourceMappingURL=LRUMap.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseCharAtlas_1 = require(\"./BaseCharAtlas\");\nvar NoneCharAtlas = (function (_super) {\n __extends(NoneCharAtlas, _super);\n function NoneCharAtlas(document, config) {\n return _super.call(this) || this;\n }\n NoneCharAtlas.prototype.draw = function (ctx, glyph, x, y) {\n return false;\n };\n return NoneCharAtlas;\n}(BaseCharAtlas_1.default));\nexports.default = NoneCharAtlas;\n//# sourceMappingURL=NoneCharAtlas.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./Types\");\nvar Types_2 = require(\"../../shared/atlas/Types\");\nvar CharAtlasGenerator_1 = require(\"../../shared/atlas/CharAtlasGenerator\");\nvar BaseCharAtlas_1 = require(\"./BaseCharAtlas\");\nvar StaticCharAtlas = (function (_super) {\n __extends(StaticCharAtlas, _super);\n function StaticCharAtlas(_document, _config) {\n var _this = _super.call(this) || this;\n _this._document = _document;\n _this._config = _config;\n _this._canvasFactory = function (width, height) {\n var canvas = _this._document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n };\n return _this;\n }\n StaticCharAtlas.prototype._doWarmUp = function () {\n var _this = this;\n var result = CharAtlasGenerator_1.generateStaticCharAtlasTexture(window, this._canvasFactory, this._config);\n if (result instanceof HTMLCanvasElement) {\n this._texture = result;\n }\n else {\n result.then(function (texture) {\n _this._texture = texture;\n });\n }\n };\n StaticCharAtlas.prototype._isCached = function (glyph, colorIndex) {\n var isAscii = glyph.code < 256;\n var isBasicColor = glyph.fg < 16;\n var isDefaultColor = glyph.fg >= 256;\n var isDefaultBackground = glyph.bg >= 256;\n return isAscii && (isBasicColor || isDefaultColor) && isDefaultBackground && !glyph.italic;\n };\n StaticCharAtlas.prototype.draw = function (ctx, glyph, x, y) {\n if (this._texture == null) {\n return false;\n }\n var colorIndex = 0;\n if (glyph.fg < 256) {\n colorIndex = 2 + glyph.fg + (glyph.bold ? 16 : 0);\n }\n else {\n if (glyph.bold) {\n colorIndex = 1;\n }\n }\n if (!this._isCached(glyph, colorIndex)) {\n return false;\n }\n ctx.save();\n var charAtlasCellWidth = this._config.scaledCharWidth + Types_2.CHAR_ATLAS_CELL_SPACING;\n var charAtlasCellHeight = this._config.scaledCharHeight + Types_2.CHAR_ATLAS_CELL_SPACING;\n if (glyph.dim) {\n ctx.globalAlpha = Types_1.DIM_OPACITY;\n }\n ctx.drawImage(this._texture, glyph.code * charAtlasCellWidth, colorIndex * charAtlasCellHeight, charAtlasCellWidth, this._config.scaledCharHeight, x, y, charAtlasCellWidth, this._config.scaledCharHeight);\n ctx.restore();\n return true;\n };\n return StaticCharAtlas;\n}(BaseCharAtlas_1.default));\nexports.default = StaticCharAtlas;\n//# sourceMappingURL=StaticCharAtlas.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar SelectionRenderLayer = (function (_super) {\n __extends(SelectionRenderLayer, _super);\n function SelectionRenderLayer(container, zIndex, colors) {\n var _this = _super.call(this, container, 'selection', zIndex, true, colors) || this;\n _this._clearState();\n return _this;\n }\n SelectionRenderLayer.prototype._clearState = function () {\n this._state = {\n start: null,\n end: null,\n columnSelectMode: null,\n ydisp: null\n };\n };\n SelectionRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n this._clearState();\n };\n SelectionRenderLayer.prototype.reset = function (terminal) {\n if (this._state.start && this._state.end) {\n this._clearState();\n this.clearAll();\n }\n };\n SelectionRenderLayer.prototype.onSelectionChanged = function (terminal, start, end, columnSelectMode) {\n if (!this._didStateChange(start, end, columnSelectMode, terminal.buffer.ydisp)) {\n return;\n }\n this.clearAll();\n if (!start || !end) {\n return;\n }\n var viewportStartRow = start[1] - terminal.buffer.ydisp;\n var viewportEndRow = end[1] - terminal.buffer.ydisp;\n var viewportCappedStartRow = Math.max(viewportStartRow, 0);\n var viewportCappedEndRow = Math.min(viewportEndRow, terminal.rows - 1);\n if (viewportCappedStartRow >= terminal.rows || viewportCappedEndRow < 0) {\n return;\n }\n this._ctx.fillStyle = this._colors.selection.css;\n if (columnSelectMode) {\n var startCol = start[0];\n var width = end[0] - startCol;\n var height = viewportCappedEndRow - viewportCappedStartRow + 1;\n this.fillCells(startCol, viewportCappedStartRow, width, height);\n }\n else {\n var startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;\n var startRowEndCol = viewportCappedStartRow === viewportCappedEndRow ? end[0] : terminal.cols;\n this.fillCells(startCol, viewportCappedStartRow, startRowEndCol - startCol, 1);\n var middleRowsCount = Math.max(viewportCappedEndRow - viewportCappedStartRow - 1, 0);\n this.fillCells(0, viewportCappedStartRow + 1, terminal.cols, middleRowsCount);\n if (viewportCappedStartRow !== viewportCappedEndRow) {\n var endCol = viewportEndRow === viewportCappedEndRow ? end[0] : terminal.cols;\n this.fillCells(0, viewportCappedEndRow, endCol, 1);\n }\n }\n this._state.start = [start[0], start[1]];\n this._state.end = [end[0], end[1]];\n this._state.columnSelectMode = columnSelectMode;\n this._state.ydisp = terminal.buffer.ydisp;\n };\n SelectionRenderLayer.prototype._didStateChange = function (start, end, columnSelectMode, ydisp) {\n return !this._areCoordinatesEqual(start, this._state.start) ||\n !this._areCoordinatesEqual(end, this._state.end) ||\n columnSelectMode !== this._state.columnSelectMode ||\n ydisp !== this._state.ydisp;\n };\n SelectionRenderLayer.prototype._areCoordinatesEqual = function (coord1, coord2) {\n if (!coord1 || !coord2) {\n return false;\n }\n return coord1[0] === coord2[0] && coord1[1] === coord2[1];\n };\n return SelectionRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.SelectionRenderLayer = SelectionRenderLayer;\n//# sourceMappingURL=SelectionRenderLayer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../Buffer\");\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar BLINK_INTERVAL = 600;\nvar CursorRenderLayer = (function (_super) {\n __extends(CursorRenderLayer, _super);\n function CursorRenderLayer(container, zIndex, colors) {\n var _this = _super.call(this, container, 'cursor', zIndex, true, colors) || this;\n _this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null\n };\n _this._cursorRenderers = {\n 'bar': _this._renderBarCursor.bind(_this),\n 'block': _this._renderBlockCursor.bind(_this),\n 'underline': _this._renderUnderlineCursor.bind(_this)\n };\n return _this;\n }\n CursorRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null\n };\n };\n CursorRenderLayer.prototype.reset = function (terminal) {\n this._clearCursor();\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.dispose();\n this._cursorBlinkStateManager = null;\n this.onOptionsChanged(terminal);\n }\n };\n CursorRenderLayer.prototype.onBlur = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.pause();\n }\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n };\n CursorRenderLayer.prototype.onFocus = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.resume(terminal);\n }\n else {\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n }\n };\n CursorRenderLayer.prototype.onOptionsChanged = function (terminal) {\n var _this = this;\n if (terminal.options.cursorBlink) {\n if (!this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager = new CursorBlinkStateManager(terminal, function () {\n _this._render(terminal, true);\n });\n }\n }\n else {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.dispose();\n this._cursorBlinkStateManager = null;\n }\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n }\n };\n CursorRenderLayer.prototype.onCursorMove = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.restartBlinkAnimation(terminal);\n }\n };\n CursorRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) {\n if (!this._cursorBlinkStateManager || this._cursorBlinkStateManager.isPaused) {\n this._render(terminal, false);\n }\n else {\n this._cursorBlinkStateManager.restartBlinkAnimation(terminal);\n }\n };\n CursorRenderLayer.prototype._render = function (terminal, triggeredByAnimationFrame) {\n if (!terminal.cursorState || terminal.cursorHidden) {\n this._clearCursor();\n return;\n }\n var cursorY = terminal.buffer.ybase + terminal.buffer.y;\n var viewportRelativeCursorY = cursorY - terminal.buffer.ydisp;\n if (viewportRelativeCursorY < 0 || viewportRelativeCursorY >= terminal.rows) {\n this._clearCursor();\n return;\n }\n var charData = terminal.buffer.lines.get(cursorY)[terminal.buffer.x];\n if (!charData) {\n return;\n }\n if (!terminal.isFocused) {\n this._clearCursor();\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this._renderBlurCursor(terminal, terminal.buffer.x, viewportRelativeCursorY, charData);\n this._ctx.restore();\n this._state.x = terminal.buffer.x;\n this._state.y = viewportRelativeCursorY;\n this._state.isFocused = false;\n this._state.style = terminal.options.cursorStyle;\n this._state.width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n return;\n }\n if (this._cursorBlinkStateManager && !this._cursorBlinkStateManager.isCursorVisible) {\n this._clearCursor();\n return;\n }\n if (this._state) {\n if (this._state.x === terminal.buffer.x &&\n this._state.y === viewportRelativeCursorY &&\n this._state.isFocused === terminal.isFocused &&\n this._state.style === terminal.options.cursorStyle &&\n this._state.width === charData[Buffer_1.CHAR_DATA_WIDTH_INDEX]) {\n return;\n }\n this._clearCursor();\n }\n this._ctx.save();\n this._cursorRenderers[terminal.options.cursorStyle || 'block'](terminal, terminal.buffer.x, viewportRelativeCursorY, charData);\n this._ctx.restore();\n this._state.x = terminal.buffer.x;\n this._state.y = viewportRelativeCursorY;\n this._state.isFocused = false;\n this._state.style = terminal.options.cursorStyle;\n this._state.width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n };\n CursorRenderLayer.prototype._clearCursor = function () {\n if (this._state) {\n this.clearCells(this._state.x, this._state.y, this._state.width, 1);\n this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null\n };\n }\n };\n CursorRenderLayer.prototype._renderBarCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this.fillLeftLineAtCell(x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderBlockCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this.fillCells(x, y, charData[Buffer_1.CHAR_DATA_WIDTH_INDEX], 1);\n this._ctx.fillStyle = this._colors.cursorAccent.css;\n this.fillCharTrueColor(terminal, charData, x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderUnderlineCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this.fillBottomLineAtCells(x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderBlurCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.strokeStyle = this._colors.cursor.css;\n this.strokeRectAtCell(x, y, charData[Buffer_1.CHAR_DATA_WIDTH_INDEX], 1);\n this._ctx.restore();\n };\n return CursorRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.CursorRenderLayer = CursorRenderLayer;\nvar CursorBlinkStateManager = (function () {\n function CursorBlinkStateManager(terminal, _renderCallback) {\n this._renderCallback = _renderCallback;\n this.isCursorVisible = true;\n if (terminal.isFocused) {\n this._restartInterval();\n }\n }\n Object.defineProperty(CursorBlinkStateManager.prototype, \"isPaused\", {\n get: function () { return !(this._blinkStartTimeout || this._blinkInterval); },\n enumerable: true,\n configurable: true\n });\n CursorBlinkStateManager.prototype.dispose = function () {\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n this._blinkInterval = null;\n }\n if (this._blinkStartTimeout) {\n window.clearTimeout(this._blinkStartTimeout);\n this._blinkStartTimeout = null;\n }\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n CursorBlinkStateManager.prototype.restartBlinkAnimation = function (terminal) {\n var _this = this;\n if (this.isPaused) {\n return;\n }\n this._animationTimeRestarted = Date.now();\n this.isCursorVisible = true;\n if (!this._animationFrame) {\n this._animationFrame = window.requestAnimationFrame(function () {\n _this._renderCallback();\n _this._animationFrame = null;\n });\n }\n };\n CursorBlinkStateManager.prototype._restartInterval = function (timeToStart) {\n var _this = this;\n if (timeToStart === void 0) { timeToStart = BLINK_INTERVAL; }\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n }\n this._blinkStartTimeout = setTimeout(function () {\n if (_this._animationTimeRestarted) {\n var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted);\n _this._animationTimeRestarted = null;\n if (time > 0) {\n _this._restartInterval(time);\n return;\n }\n }\n _this.isCursorVisible = false;\n _this._animationFrame = window.requestAnimationFrame(function () {\n _this._renderCallback();\n _this._animationFrame = null;\n });\n _this._blinkInterval = setInterval(function () {\n if (_this._animationTimeRestarted) {\n var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted);\n _this._animationTimeRestarted = null;\n _this._restartInterval(time);\n return;\n }\n _this.isCursorVisible = !_this.isCursorVisible;\n _this._animationFrame = window.requestAnimationFrame(function () {\n _this._renderCallback();\n _this._animationFrame = null;\n });\n }, BLINK_INTERVAL);\n }, timeToStart);\n };\n CursorBlinkStateManager.prototype.pause = function () {\n this.isCursorVisible = true;\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n this._blinkInterval = null;\n }\n if (this._blinkStartTimeout) {\n window.clearTimeout(this._blinkStartTimeout);\n this._blinkStartTimeout = null;\n }\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n CursorBlinkStateManager.prototype.resume = function (terminal) {\n this._animationTimeRestarted = null;\n this._restartInterval();\n this.restartBlinkAnimation(terminal);\n };\n return CursorBlinkStateManager;\n}());\n//# sourceMappingURL=CursorRenderLayer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar LinkRenderLayer = (function (_super) {\n __extends(LinkRenderLayer, _super);\n function LinkRenderLayer(container, zIndex, colors, terminal) {\n var _this = _super.call(this, container, 'link', zIndex, true, colors) || this;\n _this._state = null;\n terminal.linkifier.on(\"linkhover\", function (e) { return _this._onLinkHover(e); });\n terminal.linkifier.on(\"linkleave\", function (e) { return _this._onLinkLeave(e); });\n return _this;\n }\n LinkRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n this._state = null;\n };\n LinkRenderLayer.prototype.reset = function (terminal) {\n this._clearCurrentLink();\n };\n LinkRenderLayer.prototype._clearCurrentLink = function () {\n if (this._state) {\n this.clearCells(this._state.x1, this._state.y1, this._state.cols - this._state.x1, 1);\n var middleRowCount = this._state.y2 - this._state.y1 - 1;\n if (middleRowCount > 0) {\n this.clearCells(0, this._state.y1 + 1, this._state.cols, middleRowCount);\n }\n this.clearCells(0, this._state.y2, this._state.x2, 1);\n this._state = null;\n }\n };\n LinkRenderLayer.prototype._onLinkHover = function (e) {\n this._ctx.fillStyle = this._colors.foreground.css;\n if (e.y1 === e.y2) {\n this.fillBottomLineAtCells(e.x1, e.y1, e.x2 - e.x1);\n }\n else {\n this.fillBottomLineAtCells(e.x1, e.y1, e.cols - e.x1);\n for (var y = e.y1 + 1; y < e.y2; y++) {\n this.fillBottomLineAtCells(0, y, e.cols);\n }\n this.fillBottomLineAtCells(0, e.y2, e.x2);\n }\n this._state = e;\n };\n LinkRenderLayer.prototype._onLinkLeave = function (e) {\n this._clearCurrentLink();\n };\n return LinkRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.LinkRenderLayer = LinkRenderLayer;\n//# sourceMappingURL=LinkRenderLayer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../Buffer\");\nvar CharacterJoinerRegistry = (function () {\n function CharacterJoinerRegistry(_terminal) {\n this._terminal = _terminal;\n this._characterJoiners = [];\n this._nextCharacterJoinerId = 0;\n }\n CharacterJoinerRegistry.prototype.registerCharacterJoiner = function (handler) {\n var joiner = {\n id: this._nextCharacterJoinerId++,\n handler: handler\n };\n this._characterJoiners.push(joiner);\n return joiner.id;\n };\n CharacterJoinerRegistry.prototype.deregisterCharacterJoiner = function (joinerId) {\n for (var i = 0; i < this._characterJoiners.length; i++) {\n if (this._characterJoiners[i].id === joinerId) {\n this._characterJoiners.splice(i, 1);\n return true;\n }\n }\n return false;\n };\n CharacterJoinerRegistry.prototype.getJoinedCharacters = function (row) {\n if (this._characterJoiners.length === 0) {\n return [];\n }\n var line = this._terminal.buffer.lines.get(row);\n if (line.length === 0) {\n return [];\n }\n var ranges = [];\n var lineStr = this._terminal.buffer.translateBufferLineToString(row, true);\n var rangeStartColumn = 0;\n var currentStringIndex = 0;\n var rangeStartStringIndex = 0;\n var rangeAttr = line[0][Buffer_1.CHAR_DATA_ATTR_INDEX] >> 9;\n for (var x = 0; x < this._terminal.cols; x++) {\n var charData = line[x];\n var chars = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX] >> 9;\n if (width === 0) {\n continue;\n }\n if (attr !== rangeAttr) {\n if (x - rangeStartColumn > 1) {\n var joinedRanges = this._getJoinedRanges(lineStr, rangeStartStringIndex, currentStringIndex, line, rangeStartColumn);\n for (var i = 0; i < joinedRanges.length; i++) {\n ranges.push(joinedRanges[i]);\n }\n }\n rangeStartColumn = x;\n rangeStartStringIndex = currentStringIndex;\n rangeAttr = attr;\n }\n currentStringIndex += chars.length;\n }\n if (this._terminal.cols - rangeStartColumn > 1) {\n var joinedRanges = this._getJoinedRanges(lineStr, rangeStartStringIndex, currentStringIndex, line, rangeStartColumn);\n for (var i = 0; i < joinedRanges.length; i++) {\n ranges.push(joinedRanges[i]);\n }\n }\n return ranges;\n };\n CharacterJoinerRegistry.prototype._getJoinedRanges = function (line, startIndex, endIndex, lineData, startCol) {\n var text = line.substring(startIndex, endIndex);\n var joinedRanges = this._characterJoiners[0].handler(text);\n for (var i = 1; i < this._characterJoiners.length; i++) {\n var joinerRanges = this._characterJoiners[i].handler(text);\n for (var j = 0; j < joinerRanges.length; j++) {\n CharacterJoinerRegistry._mergeRanges(joinedRanges, joinerRanges[j]);\n }\n }\n this._stringRangesToCellRanges(joinedRanges, lineData, startCol);\n return joinedRanges;\n };\n CharacterJoinerRegistry.prototype._stringRangesToCellRanges = function (ranges, line, startCol) {\n var currentRangeIndex = 0;\n var currentRangeStarted = false;\n var currentStringIndex = 0;\n var currentRange = ranges[currentRangeIndex];\n if (!currentRange) {\n return;\n }\n for (var x = startCol; x < this._terminal.cols; x++) {\n var charData = line[x];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n var length_1 = charData[Buffer_1.CHAR_DATA_CHAR_INDEX].length;\n if (width === 0) {\n continue;\n }\n if (!currentRangeStarted && currentRange[0] <= currentStringIndex) {\n currentRange[0] = x;\n currentRangeStarted = true;\n }\n if (currentRange[1] <= currentStringIndex) {\n currentRange[1] = x;\n currentRange = ranges[++currentRangeIndex];\n if (!currentRange) {\n break;\n }\n if (currentRange[0] <= currentStringIndex) {\n currentRange[0] = x;\n currentRangeStarted = true;\n }\n else {\n currentRangeStarted = false;\n }\n }\n currentStringIndex += length_1;\n }\n if (currentRange) {\n currentRange[1] = this._terminal.cols;\n }\n };\n CharacterJoinerRegistry._mergeRanges = function (ranges, newRange) {\n var inRange = false;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!inRange) {\n if (newRange[1] <= range[0]) {\n ranges.splice(i, 0, newRange);\n return ranges;\n }\n if (newRange[1] <= range[1]) {\n range[0] = Math.min(newRange[0], range[0]);\n return ranges;\n }\n if (newRange[0] < range[1]) {\n range[0] = Math.min(newRange[0], range[0]);\n inRange = true;\n }\n continue;\n }\n else {\n if (newRange[1] <= range[0]) {\n ranges[i - 1][1] = newRange[1];\n return ranges;\n }\n if (newRange[1] <= range[1]) {\n ranges[i - 1][1] = Math.max(newRange[1], range[1]);\n ranges.splice(i, 1);\n inRange = false;\n return ranges;\n }\n ranges.splice(i, 1);\n i--;\n }\n }\n if (inRange) {\n ranges[ranges.length - 1][1] = newRange[1];\n }\n else {\n ranges.push(newRange);\n }\n return ranges;\n };\n return CharacterJoinerRegistry;\n}());\nexports.CharacterJoinerRegistry = CharacterJoinerRegistry;\n//# sourceMappingURL=CharacterJoinerRegistry.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseZoneManager_1 = require(\"./ui/MouseZoneManager\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar Linkifier = (function (_super) {\n __extends(Linkifier, _super);\n function Linkifier(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._linkMatchers = [];\n _this._nextLinkMatcherId = 0;\n _this._rowsToLinkify = {\n start: null,\n end: null\n };\n return _this;\n }\n Linkifier.prototype.attachToDom = function (mouseZoneManager) {\n this._mouseZoneManager = mouseZoneManager;\n };\n Linkifier.prototype.linkifyRows = function (start, end) {\n var _this = this;\n if (!this._mouseZoneManager) {\n return;\n }\n if (this._rowsToLinkify.start === null) {\n this._rowsToLinkify.start = start;\n this._rowsToLinkify.end = end;\n }\n else {\n this._rowsToLinkify.start = Math.min(this._rowsToLinkify.start, start);\n this._rowsToLinkify.end = Math.max(this._rowsToLinkify.end, end);\n }\n this._mouseZoneManager.clearAll(start, end);\n if (this._rowsTimeoutId) {\n clearTimeout(this._rowsTimeoutId);\n }\n this._rowsTimeoutId = setTimeout(function () { return _this._linkifyRows(); }, Linkifier.TIME_BEFORE_LINKIFY);\n };\n Linkifier.prototype._linkifyRows = function () {\n this._rowsTimeoutId = null;\n for (var i = this._rowsToLinkify.start; i <= this._rowsToLinkify.end; i++) {\n this._linkifyRow(i);\n }\n this._rowsToLinkify.start = null;\n this._rowsToLinkify.end = null;\n };\n Linkifier.prototype.registerLinkMatcher = function (regex, handler, options) {\n if (options === void 0) { options = {}; }\n if (!handler) {\n throw new Error('handler must be defined');\n }\n var matcher = {\n id: this._nextLinkMatcherId++,\n regex: regex,\n handler: handler,\n matchIndex: options.matchIndex,\n validationCallback: options.validationCallback,\n hoverTooltipCallback: options.tooltipCallback,\n hoverLeaveCallback: options.leaveCallback,\n willLinkActivate: options.willLinkActivate,\n priority: options.priority || 0\n };\n this._addLinkMatcherToList(matcher);\n return matcher.id;\n };\n Linkifier.prototype._addLinkMatcherToList = function (matcher) {\n if (this._linkMatchers.length === 0) {\n this._linkMatchers.push(matcher);\n return;\n }\n for (var i = this._linkMatchers.length - 1; i >= 0; i--) {\n if (matcher.priority <= this._linkMatchers[i].priority) {\n this._linkMatchers.splice(i + 1, 0, matcher);\n return;\n }\n }\n this._linkMatchers.splice(0, 0, matcher);\n };\n Linkifier.prototype.deregisterLinkMatcher = function (matcherId) {\n for (var i = 0; i < this._linkMatchers.length; i++) {\n if (this._linkMatchers[i].id === matcherId) {\n this._linkMatchers.splice(i, 1);\n return true;\n }\n }\n return false;\n };\n Linkifier.prototype._linkifyRow = function (rowIndex) {\n var absoluteRowIndex = this._terminal.buffer.ydisp + rowIndex;\n if (absoluteRowIndex >= this._terminal.buffer.lines.length) {\n return;\n }\n if (this._terminal.buffer.lines.get(absoluteRowIndex).isWrapped) {\n if (rowIndex !== 0) {\n return;\n }\n var line = void 0;\n do {\n rowIndex--;\n absoluteRowIndex--;\n line = this._terminal.buffer.lines.get(absoluteRowIndex);\n if (!line) {\n break;\n }\n } while (line.isWrapped);\n }\n var text = this._terminal.buffer.translateBufferLineToString(absoluteRowIndex, false);\n var currentIndex = absoluteRowIndex + 1;\n while (currentIndex < this._terminal.buffer.lines.length &&\n this._terminal.buffer.lines.get(currentIndex).isWrapped) {\n text += this._terminal.buffer.translateBufferLineToString(currentIndex++, false);\n }\n for (var i = 0; i < this._linkMatchers.length; i++) {\n this._doLinkifyRow(rowIndex, text, this._linkMatchers[i]);\n }\n };\n Linkifier.prototype._doLinkifyRow = function (rowIndex, text, matcher, offset) {\n var _this = this;\n if (offset === void 0) { offset = 0; }\n var match = text.match(matcher.regex);\n if (!match || match.length === 0) {\n return;\n }\n var uri = match[typeof matcher.matchIndex !== 'number' ? 0 : matcher.matchIndex];\n var index = text.indexOf(uri);\n if (matcher.validationCallback) {\n matcher.validationCallback(uri, function (isValid) {\n if (_this._rowsTimeoutId) {\n return;\n }\n if (isValid) {\n _this._addLink(offset + index, rowIndex, uri, matcher);\n }\n });\n }\n else {\n this._addLink(offset + index, rowIndex, uri, matcher);\n }\n var remainingStartIndex = index + uri.length;\n var remainingText = text.substr(remainingStartIndex);\n if (remainingText.length > 0) {\n this._doLinkifyRow(rowIndex, remainingText, matcher, offset + remainingStartIndex);\n }\n };\n Linkifier.prototype._addLink = function (x, y, uri, matcher) {\n var _this = this;\n var x1 = x % this._terminal.cols;\n var y1 = y + Math.floor(x / this._terminal.cols);\n var x2 = (x1 + uri.length) % this._terminal.cols;\n var y2 = y1 + Math.floor((x1 + uri.length) / this._terminal.cols);\n if (x2 === 0) {\n x2 = this._terminal.cols;\n y2--;\n }\n this._mouseZoneManager.add(new MouseZoneManager_1.MouseZone(x1 + 1, y1 + 1, x2 + 1, y2 + 1, function (e) {\n if (matcher.handler) {\n return matcher.handler(e, uri);\n }\n window.open(uri, '_blank');\n }, function (e) {\n _this.emit(\"linkhover\", _this._createLinkHoverEvent(x1, y1, x2, y2));\n _this._terminal.element.classList.add('xterm-cursor-pointer');\n }, function (e) {\n _this.emit(\"linktooltip\", _this._createLinkHoverEvent(x1, y1, x2, y2));\n if (matcher.hoverTooltipCallback) {\n matcher.hoverTooltipCallback(e, uri);\n }\n }, function () {\n _this.emit(\"linkleave\", _this._createLinkHoverEvent(x1, y1, x2, y2));\n _this._terminal.element.classList.remove('xterm-cursor-pointer');\n if (matcher.hoverLeaveCallback) {\n matcher.hoverLeaveCallback();\n }\n }, function (e) {\n if (matcher.willLinkActivate) {\n return matcher.willLinkActivate(e, uri);\n }\n return true;\n }));\n };\n Linkifier.prototype._createLinkHoverEvent = function (x1, y1, x2, y2) {\n return { x1: x1, y1: y1, x2: x2, y2: y2, cols: this._terminal.cols };\n };\n Linkifier.TIME_BEFORE_LINKIFY = 200;\n return Linkifier;\n}(EventEmitter_1.EventEmitter));\nexports.Linkifier = Linkifier;\n//# sourceMappingURL=Linkifier.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseHelper_1 = require(\"./utils/MouseHelper\");\nvar Browser = require(\"./shared/utils/Browser\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar SelectionModel_1 = require(\"./SelectionModel\");\nvar Buffer_1 = require(\"./Buffer\");\nvar AltClickHandler_1 = require(\"./handlers/AltClickHandler\");\nvar DRAG_SCROLL_MAX_THRESHOLD = 50;\nvar DRAG_SCROLL_MAX_SPEED = 15;\nvar DRAG_SCROLL_INTERVAL = 50;\nvar ALT_CLICK_MOVE_CURSOR_TIME = 500;\nvar WORD_SEPARATORS = ' ()[]{}\\'\"';\nvar NON_BREAKING_SPACE_CHAR = String.fromCharCode(160);\nvar ALL_NON_BREAKING_SPACE_REGEX = new RegExp(NON_BREAKING_SPACE_CHAR, 'g');\nvar SelectionManager = (function (_super) {\n __extends(SelectionManager, _super);\n function SelectionManager(_terminal, _charMeasure) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._charMeasure = _charMeasure;\n _this._enabled = true;\n _this._initListeners();\n _this.enable();\n _this._model = new SelectionModel_1.SelectionModel(_terminal);\n _this._activeSelectionMode = 0;\n return _this;\n }\n SelectionManager.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._removeMouseDownListeners();\n };\n Object.defineProperty(SelectionManager.prototype, \"_buffer\", {\n get: function () {\n return this._terminal.buffers.active;\n },\n enumerable: true,\n configurable: true\n });\n SelectionManager.prototype._initListeners = function () {\n var _this = this;\n this._mouseMoveListener = function (event) { return _this._onMouseMove(event); };\n this._mouseUpListener = function (event) { return _this._onMouseUp(event); };\n this._trimListener = function (amount) { return _this._onTrim(amount); };\n this.initBuffersListeners();\n };\n SelectionManager.prototype.initBuffersListeners = function () {\n var _this = this;\n this._terminal.buffer.lines.on('trim', this._trimListener);\n this._terminal.buffers.on('activate', function (e) { return _this._onBufferActivate(e); });\n };\n SelectionManager.prototype.disable = function () {\n this.clearSelection();\n this._enabled = false;\n };\n SelectionManager.prototype.enable = function () {\n this._enabled = true;\n };\n Object.defineProperty(SelectionManager.prototype, \"selectionStart\", {\n get: function () { return this._model.finalSelectionStart; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"selectionEnd\", {\n get: function () { return this._model.finalSelectionEnd; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"hasSelection\", {\n get: function () {\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[0] !== end[0] || start[1] !== end[1];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"selectionText\", {\n get: function () {\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return '';\n }\n var result = [];\n if (this._activeSelectionMode === 3) {\n if (start[0] === end[0]) {\n return '';\n }\n for (var i = start[1]; i <= end[1]; i++) {\n var lineText = this._buffer.translateBufferLineToString(i, true, start[0], end[0]);\n result.push(lineText);\n }\n }\n else {\n var startRowEndCol = start[1] === end[1] ? end[0] : null;\n result.push(this._buffer.translateBufferLineToString(start[1], true, start[0], startRowEndCol));\n for (var i = start[1] + 1; i <= end[1] - 1; i++) {\n var bufferLine = this._buffer.lines.get(i);\n var lineText = this._buffer.translateBufferLineToString(i, true);\n if (bufferLine.isWrapped) {\n result[result.length - 1] += lineText;\n }\n else {\n result.push(lineText);\n }\n }\n if (start[1] !== end[1]) {\n var bufferLine = this._buffer.lines.get(end[1]);\n var lineText = this._buffer.translateBufferLineToString(end[1], true, 0, end[0]);\n if (bufferLine.isWrapped) {\n result[result.length - 1] += lineText;\n }\n else {\n result.push(lineText);\n }\n }\n }\n var formattedResult = result.map(function (line) {\n return line.replace(ALL_NON_BREAKING_SPACE_REGEX, ' ');\n }).join(Browser.isMSWindows ? '\\r\\n' : '\\n');\n return formattedResult;\n },\n enumerable: true,\n configurable: true\n });\n SelectionManager.prototype.clearSelection = function () {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this.refresh();\n };\n SelectionManager.prototype.refresh = function (isNewSelection) {\n var _this = this;\n if (!this._refreshAnimationFrame) {\n this._refreshAnimationFrame = window.requestAnimationFrame(function () { return _this._refresh(); });\n }\n if (Browser.isLinux && isNewSelection) {\n var selectionText = this.selectionText;\n if (selectionText.length) {\n this.emit('newselection', this.selectionText);\n }\n }\n };\n SelectionManager.prototype._refresh = function () {\n this._refreshAnimationFrame = null;\n this.emit('refresh', {\n start: this._model.finalSelectionStart,\n end: this._model.finalSelectionEnd,\n columnSelectMode: this._activeSelectionMode === 3\n });\n };\n SelectionManager.prototype.isClickInSelection = function (event) {\n var coords = this._getMouseBufferCoords(event);\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return (coords[1] > start[1] && coords[1] < end[1]) ||\n (start[1] === end[1] && coords[1] === start[1] && coords[0] > start[0] && coords[0] < end[0]) ||\n (start[1] < end[1] && coords[1] === end[1] && coords[0] < end[0]);\n };\n SelectionManager.prototype.selectWordAtCursor = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._selectWordAt(coords, false);\n this._model.selectionEnd = null;\n this.refresh(true);\n }\n };\n SelectionManager.prototype.selectAll = function () {\n this._model.isSelectAllActive = true;\n this.refresh();\n this._terminal.emit('selection');\n };\n SelectionManager.prototype.selectLines = function (start, end) {\n this._model.clearSelection();\n start = Math.max(start, 0);\n end = Math.min(end, this._terminal.buffer.lines.length - 1);\n this._model.selectionStart = [0, start];\n this._model.selectionEnd = [this._terminal.cols, end];\n this.refresh();\n this._terminal.emit('selection');\n };\n SelectionManager.prototype._onTrim = function (amount) {\n var needsRefresh = this._model.onTrim(amount);\n if (needsRefresh) {\n this.refresh();\n }\n };\n SelectionManager.prototype._getMouseBufferCoords = function (event) {\n var coords = this._terminal.mouseHelper.getCoords(event, this._terminal.screenElement, this._charMeasure, this._terminal.options.lineHeight, this._terminal.cols, this._terminal.rows, true);\n if (!coords) {\n return null;\n }\n coords[0]--;\n coords[1]--;\n coords[1] += this._terminal.buffer.ydisp;\n return coords;\n };\n SelectionManager.prototype._getMouseEventScrollAmount = function (event) {\n var offset = MouseHelper_1.MouseHelper.getCoordsRelativeToElement(event, this._terminal.screenElement)[1];\n var terminalHeight = this._terminal.rows * Math.ceil(this._charMeasure.height * this._terminal.options.lineHeight);\n if (offset >= 0 && offset <= terminalHeight) {\n return 0;\n }\n if (offset > terminalHeight) {\n offset -= terminalHeight;\n }\n offset = Math.min(Math.max(offset, -DRAG_SCROLL_MAX_THRESHOLD), DRAG_SCROLL_MAX_THRESHOLD);\n offset /= DRAG_SCROLL_MAX_THRESHOLD;\n return (offset / Math.abs(offset)) + Math.round(offset * (DRAG_SCROLL_MAX_SPEED - 1));\n };\n SelectionManager.prototype.shouldForceSelection = function (event) {\n if (Browser.isMac) {\n return event.altKey && this._terminal.options.macOptionClickForcesSelection;\n }\n return event.shiftKey;\n };\n SelectionManager.prototype.onMouseDown = function (event) {\n this._mouseDownTimeStamp = event.timeStamp;\n if (event.button === 2 && this.hasSelection) {\n return;\n }\n if (event.button !== 0) {\n return;\n }\n if (!this._enabled) {\n if (!this.shouldForceSelection(event)) {\n return;\n }\n event.stopPropagation();\n }\n event.preventDefault();\n this._dragScrollAmount = 0;\n if (this._enabled && event.shiftKey) {\n this._onIncrementalClick(event);\n }\n else {\n if (event.detail === 1) {\n this._onSingleClick(event);\n }\n else if (event.detail === 2) {\n this._onDoubleClick(event);\n }\n else if (event.detail === 3) {\n this._onTripleClick(event);\n }\n }\n this._addMouseDownListeners();\n this.refresh(true);\n };\n SelectionManager.prototype._addMouseDownListeners = function () {\n var _this = this;\n this._terminal.element.ownerDocument.addEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.ownerDocument.addEventListener('mouseup', this._mouseUpListener);\n this._dragScrollIntervalTimer = setInterval(function () { return _this._dragScroll(); }, DRAG_SCROLL_INTERVAL);\n };\n SelectionManager.prototype._removeMouseDownListeners = function () {\n if (this._terminal.element.ownerDocument) {\n this._terminal.element.ownerDocument.removeEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.ownerDocument.removeEventListener('mouseup', this._mouseUpListener);\n }\n clearInterval(this._dragScrollIntervalTimer);\n this._dragScrollIntervalTimer = null;\n };\n SelectionManager.prototype._onIncrementalClick = function (event) {\n if (this._model.selectionStart) {\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n }\n };\n SelectionManager.prototype._onSingleClick = function (event) {\n this._model.selectionStartLength = 0;\n this._model.isSelectAllActive = false;\n this._activeSelectionMode = this.shouldColumnSelect(event) ? 3 : 0;\n this._model.selectionStart = this._getMouseBufferCoords(event);\n if (!this._model.selectionStart) {\n return;\n }\n this._model.selectionEnd = null;\n var line = this._buffer.lines.get(this._model.selectionStart[1]);\n if (!line) {\n return;\n }\n if (line.length >= this._model.selectionStart[0]) {\n return;\n }\n var char = line[this._model.selectionStart[0]];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n this._model.selectionStart[0]++;\n }\n };\n SelectionManager.prototype._onDoubleClick = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._activeSelectionMode = 1;\n this._selectWordAt(coords, true);\n }\n };\n SelectionManager.prototype._onTripleClick = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._activeSelectionMode = 2;\n this._selectLineAt(coords[1]);\n }\n };\n SelectionManager.prototype.shouldColumnSelect = function (event) {\n return event.altKey && !(Browser.isMac && this._terminal.options.macOptionClickForcesSelection);\n };\n SelectionManager.prototype._onMouseMove = function (event) {\n event.stopImmediatePropagation();\n var previousSelectionEnd = this._model.selectionEnd ? [this._model.selectionEnd[0], this._model.selectionEnd[1]] : null;\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n if (!this._model.selectionEnd) {\n this.refresh(true);\n return;\n }\n if (this._activeSelectionMode === 2) {\n if (this._model.selectionEnd[1] < this._model.selectionStart[1]) {\n this._model.selectionEnd[0] = 0;\n }\n else {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n }\n else if (this._activeSelectionMode === 1) {\n this._selectToWordAt(this._model.selectionEnd);\n }\n this._dragScrollAmount = this._getMouseEventScrollAmount(event);\n if (this._activeSelectionMode !== 3) {\n if (this._dragScrollAmount > 0) {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n else if (this._dragScrollAmount < 0) {\n this._model.selectionEnd[0] = 0;\n }\n }\n if (this._model.selectionEnd[1] < this._buffer.lines.length) {\n var char = this._buffer.lines.get(this._model.selectionEnd[1])[this._model.selectionEnd[0]];\n if (char && char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n this._model.selectionEnd[0]++;\n }\n }\n if (!previousSelectionEnd ||\n previousSelectionEnd[0] !== this._model.selectionEnd[0] ||\n previousSelectionEnd[1] !== this._model.selectionEnd[1]) {\n this.refresh(true);\n }\n };\n SelectionManager.prototype._dragScroll = function () {\n if (this._dragScrollAmount) {\n this._terminal.scrollLines(this._dragScrollAmount, false);\n if (this._dragScrollAmount > 0) {\n if (this._activeSelectionMode !== 3) {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n this._model.selectionEnd[1] = Math.min(this._terminal.buffer.ydisp + this._terminal.rows, this._terminal.buffer.lines.length - 1);\n }\n else {\n if (this._activeSelectionMode !== 3) {\n this._model.selectionEnd[0] = 0;\n }\n this._model.selectionEnd[1] = this._terminal.buffer.ydisp;\n }\n this.refresh();\n }\n };\n SelectionManager.prototype._onMouseUp = function (event) {\n var timeElapsed = event.timeStamp - this._mouseDownTimeStamp;\n this._removeMouseDownListeners();\n if (this.selectionText.length <= 1 && timeElapsed < ALT_CLICK_MOVE_CURSOR_TIME) {\n (new AltClickHandler_1.AltClickHandler(event, this._terminal)).move();\n }\n else if (this.hasSelection) {\n this._terminal.emit('selection');\n }\n };\n SelectionManager.prototype._onBufferActivate = function (e) {\n this.clearSelection();\n e.inactiveBuffer.lines.off('trim', this._trimListener);\n e.activeBuffer.lines.on('trim', this._trimListener);\n };\n SelectionManager.prototype._convertViewportColToCharacterIndex = function (bufferLine, coords) {\n var charIndex = coords[0];\n for (var i = 0; coords[0] >= i; i++) {\n var char = bufferLine[i];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n charIndex--;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1 && coords[0] !== i) {\n charIndex += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n }\n return charIndex;\n };\n SelectionManager.prototype.setSelection = function (col, row, length) {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this._model.selectionStart = [col, row];\n this._model.selectionStartLength = length;\n this.refresh();\n };\n SelectionManager.prototype._getWordAt = function (coords, allowWhitespaceOnlySelection, followWrappedLinesAbove, followWrappedLinesBelow) {\n if (followWrappedLinesAbove === void 0) { followWrappedLinesAbove = true; }\n if (followWrappedLinesBelow === void 0) { followWrappedLinesBelow = true; }\n if (coords[0] >= this._terminal.cols) {\n return null;\n }\n var bufferLine = this._buffer.lines.get(coords[1]);\n if (!bufferLine) {\n return null;\n }\n var line = this._buffer.translateBufferLineToString(coords[1], false);\n var startIndex = this._convertViewportColToCharacterIndex(bufferLine, coords);\n var endIndex = startIndex;\n var charOffset = coords[0] - startIndex;\n var leftWideCharCount = 0;\n var rightWideCharCount = 0;\n var leftLongCharOffset = 0;\n var rightLongCharOffset = 0;\n if (line.charAt(startIndex) === ' ') {\n while (startIndex > 0 && line.charAt(startIndex - 1) === ' ') {\n startIndex--;\n }\n while (endIndex < line.length && line.charAt(endIndex + 1) === ' ') {\n endIndex++;\n }\n }\n else {\n var startCol = coords[0];\n var endCol = coords[0];\n if (bufferLine[startCol][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n leftWideCharCount++;\n startCol--;\n }\n if (bufferLine[endCol][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n rightWideCharCount++;\n endCol++;\n }\n if (bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n rightLongCharOffset += bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n endIndex += bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n while (startCol > 0 && startIndex > 0 && !this._isCharWordSeparator(bufferLine[startCol - 1])) {\n var char = bufferLine[startCol - 1];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n leftWideCharCount++;\n startCol--;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n leftLongCharOffset += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n startIndex -= char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n startIndex--;\n startCol--;\n }\n while (endCol < bufferLine.length && endIndex + 1 < line.length && !this._isCharWordSeparator(bufferLine[endCol + 1])) {\n var char = bufferLine[endCol + 1];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n rightWideCharCount++;\n endCol++;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n rightLongCharOffset += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n endIndex += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n endIndex++;\n endCol++;\n }\n }\n endIndex++;\n var start = startIndex\n + charOffset\n - leftWideCharCount\n + leftLongCharOffset;\n var length = Math.min(this._terminal.cols, endIndex\n - startIndex\n + leftWideCharCount\n + rightWideCharCount\n - leftLongCharOffset\n - rightLongCharOffset);\n if (!allowWhitespaceOnlySelection && line.slice(startIndex, endIndex).trim() === '') {\n return null;\n }\n if (followWrappedLinesAbove) {\n if (start === 0 && bufferLine[0][Buffer_1.CHAR_DATA_CODE_INDEX] !== 32) {\n var previousBufferLine = this._buffer.lines.get(coords[1] - 1);\n if (previousBufferLine && bufferLine.isWrapped && previousBufferLine[this._terminal.cols - 1][Buffer_1.CHAR_DATA_CODE_INDEX] !== 32) {\n var previousLineWordPosition = this._getWordAt([this._terminal.cols - 1, coords[1] - 1], false, true, false);\n if (previousLineWordPosition) {\n var offset = this._terminal.cols - previousLineWordPosition.start;\n start -= offset;\n length += offset;\n }\n }\n }\n }\n if (followWrappedLinesBelow) {\n if (start + length === this._terminal.cols && bufferLine[this._terminal.cols - 1][Buffer_1.CHAR_DATA_CODE_INDEX] !== 32) {\n var nextBufferLine = this._buffer.lines.get(coords[1] + 1);\n if (nextBufferLine && nextBufferLine.isWrapped && nextBufferLine[0][Buffer_1.CHAR_DATA_CODE_INDEX] !== 32) {\n var nextLineWordPosition = this._getWordAt([0, coords[1] + 1], false, false, true);\n if (nextLineWordPosition) {\n length += nextLineWordPosition.length;\n }\n }\n }\n }\n return { start: start, length: length };\n };\n SelectionManager.prototype._selectWordAt = function (coords, allowWhitespaceOnlySelection) {\n var wordPosition = this._getWordAt(coords, allowWhitespaceOnlySelection);\n if (wordPosition) {\n while (wordPosition.start < 0) {\n wordPosition.start += this._terminal.cols;\n coords[1]--;\n }\n this._model.selectionStart = [wordPosition.start, coords[1]];\n this._model.selectionStartLength = wordPosition.length;\n }\n };\n SelectionManager.prototype._selectToWordAt = function (coords) {\n var wordPosition = this._getWordAt(coords, true);\n if (wordPosition) {\n var endRow = coords[1];\n while (wordPosition.start < 0) {\n wordPosition.start += this._terminal.cols;\n endRow--;\n }\n if (!this._model.areSelectionValuesReversed()) {\n while (wordPosition.start + wordPosition.length > this._terminal.cols) {\n wordPosition.length -= this._terminal.cols;\n endRow++;\n }\n }\n this._model.selectionEnd = [this._model.areSelectionValuesReversed() ? wordPosition.start : wordPosition.start + wordPosition.length, endRow];\n }\n };\n SelectionManager.prototype._isCharWordSeparator = function (charData) {\n if (charData[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n return false;\n }\n return WORD_SEPARATORS.indexOf(charData[Buffer_1.CHAR_DATA_CHAR_INDEX]) >= 0;\n };\n SelectionManager.prototype._selectLineAt = function (line) {\n var wrappedRange = this._buffer.getWrappedRangeForLine(line);\n this._model.selectionStart = [0, wrappedRange.first];\n this._model.selectionEnd = [this._terminal.cols, wrappedRange.last];\n this._model.selectionStartLength = 0;\n };\n return SelectionManager;\n}(EventEmitter_1.EventEmitter));\nexports.SelectionManager = SelectionManager;\n//# sourceMappingURL=SelectionManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar SelectionModel = (function () {\n function SelectionModel(_terminal) {\n this._terminal = _terminal;\n this.clearSelection();\n }\n SelectionModel.prototype.clearSelection = function () {\n this.selectionStart = null;\n this.selectionEnd = null;\n this.isSelectAllActive = false;\n this.selectionStartLength = 0;\n };\n Object.defineProperty(SelectionModel.prototype, \"finalSelectionStart\", {\n get: function () {\n if (this.isSelectAllActive) {\n return [0, 0];\n }\n if (!this.selectionEnd || !this.selectionStart) {\n return this.selectionStart;\n }\n return this.areSelectionValuesReversed() ? this.selectionEnd : this.selectionStart;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionModel.prototype, \"finalSelectionEnd\", {\n get: function () {\n if (this.isSelectAllActive) {\n return [this._terminal.cols, this._terminal.buffer.ybase + this._terminal.rows - 1];\n }\n if (!this.selectionStart) {\n return null;\n }\n if (!this.selectionEnd || this.areSelectionValuesReversed()) {\n var startPlusLength = this.selectionStart[0] + this.selectionStartLength;\n if (startPlusLength > this._terminal.cols) {\n return [startPlusLength % this._terminal.cols, this.selectionStart[1] + Math.floor(startPlusLength / this._terminal.cols)];\n }\n return [startPlusLength, this.selectionStart[1]];\n }\n if (this.selectionStartLength) {\n if (this.selectionEnd[1] === this.selectionStart[1]) {\n return [Math.max(this.selectionStart[0] + this.selectionStartLength, this.selectionEnd[0]), this.selectionEnd[1]];\n }\n }\n return this.selectionEnd;\n },\n enumerable: true,\n configurable: true\n });\n SelectionModel.prototype.areSelectionValuesReversed = function () {\n var start = this.selectionStart;\n var end = this.selectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[1] > end[1] || (start[1] === end[1] && start[0] > end[0]);\n };\n SelectionModel.prototype.onTrim = function (amount) {\n if (this.selectionStart) {\n this.selectionStart[1] -= amount;\n }\n if (this.selectionEnd) {\n this.selectionEnd[1] -= amount;\n }\n if (this.selectionEnd && this.selectionEnd[1] < 0) {\n this.clearSelection();\n return true;\n }\n if (this.selectionStart && this.selectionStart[1] < 0) {\n this.selectionStart[1] = 0;\n }\n return false;\n };\n return SelectionModel;\n}());\nexports.SelectionModel = SelectionModel;\n//# sourceMappingURL=SelectionModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"../common/data/EscapeSequences\");\nvar AltClickHandler = (function () {\n function AltClickHandler(_mouseEvent, _terminal) {\n this._mouseEvent = _mouseEvent;\n this._terminal = _terminal;\n this._lines = this._terminal.buffer.lines;\n this._startCol = this._terminal.buffer.x;\n this._startRow = this._terminal.buffer.y;\n var coordinates = this._terminal.mouseHelper.getCoords(this._mouseEvent, this._terminal.element, this._terminal.charMeasure, this._terminal.options.lineHeight, this._terminal.cols, this._terminal.rows, false);\n if (coordinates) {\n _a = coordinates.map(function (coordinate) {\n return coordinate - 1;\n }), this._endCol = _a[0], this._endRow = _a[1];\n }\n var _a;\n }\n AltClickHandler.prototype.move = function () {\n if (this._mouseEvent.altKey && this._endCol !== undefined && this._endRow !== undefined) {\n this._terminal.handler(this._arrowSequences());\n }\n };\n AltClickHandler.prototype._arrowSequences = function () {\n if (!this._terminal.buffer.hasScrollback) {\n return this._resetStartingRow() + this._moveToRequestedRow() + this._moveToRequestedCol();\n }\n return this._moveHorizontallyOnly();\n };\n AltClickHandler.prototype._resetStartingRow = function () {\n if (this._moveToRequestedRow().length === 0) {\n return '';\n }\n return repeat(this._bufferLine(this._startCol, this._startRow, this._startCol, this._startRow - this._wrappedRowsForRow(this._startRow), false).length, this._sequence(\"D\"));\n };\n AltClickHandler.prototype._moveToRequestedRow = function () {\n var startRow = this._startRow - this._wrappedRowsForRow(this._startRow);\n var endRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n var rowsToMove = Math.abs(startRow - endRow) - this._wrappedRowsCount();\n return repeat(rowsToMove, this._sequence(this._verticalDirection()));\n };\n AltClickHandler.prototype._moveToRequestedCol = function () {\n var startRow;\n if (this._moveToRequestedRow().length > 0) {\n startRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n }\n else {\n startRow = this._startRow;\n }\n var endRow = this._endRow;\n var direction = this._horizontalDirection();\n return repeat(this._bufferLine(this._startCol, startRow, this._endCol, endRow, direction === \"C\").length, this._sequence(direction));\n };\n AltClickHandler.prototype._moveHorizontallyOnly = function () {\n var direction = this._horizontalDirection();\n return repeat(Math.abs(this._startCol - this._endCol), this._sequence(direction));\n };\n AltClickHandler.prototype._wrappedRowsCount = function () {\n var wrappedRows = 0;\n var startRow = this._startRow - this._wrappedRowsForRow(this._startRow);\n var endRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n for (var i = 0; i < Math.abs(startRow - endRow); i++) {\n var direction = this._verticalDirection() === \"A\" ? -1 : 1;\n if (this._lines.get(startRow + (direction * i)).isWrapped) {\n wrappedRows++;\n }\n }\n return wrappedRows;\n };\n AltClickHandler.prototype._wrappedRowsForRow = function (currentRow) {\n var rowCount = 0;\n var lineWraps = this._lines.get(currentRow).isWrapped;\n while (lineWraps && currentRow >= 0 && currentRow < this._terminal.rows) {\n rowCount++;\n currentRow--;\n lineWraps = this._lines.get(currentRow).isWrapped;\n }\n return rowCount;\n };\n AltClickHandler.prototype._horizontalDirection = function () {\n var startRow;\n if (this._moveToRequestedRow().length > 0) {\n startRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n }\n else {\n startRow = this._startRow;\n }\n if ((this._startCol < this._endCol &&\n startRow <= this._endRow) ||\n (this._startCol >= this._endCol &&\n startRow < this._endRow)) {\n return \"C\";\n }\n return \"D\";\n };\n AltClickHandler.prototype._verticalDirection = function () {\n if (this._startRow > this._endRow) {\n return \"A\";\n }\n return \"B\";\n };\n AltClickHandler.prototype._bufferLine = function (startCol, startRow, endCol, endRow, forward) {\n var currentCol = startCol;\n var currentRow = startRow;\n var bufferStr = '';\n while (currentCol !== endCol || currentRow !== endRow) {\n currentCol += forward ? 1 : -1;\n if (forward && currentCol > this._terminal.cols - 1) {\n bufferStr += this._terminal.buffer.translateBufferLineToString(currentRow, false, startCol, currentCol);\n currentCol = 0;\n startCol = 0;\n currentRow++;\n }\n else if (!forward && currentCol < 0) {\n bufferStr += this._terminal.buffer.translateBufferLineToString(currentRow, false, 0, startCol + 1);\n currentCol = this._terminal.cols - 1;\n startCol = currentCol;\n currentRow--;\n }\n }\n return bufferStr + this._terminal.buffer.translateBufferLineToString(currentRow, false, startCol, currentCol);\n };\n AltClickHandler.prototype._sequence = function (direction) {\n var mod = this._terminal.applicationCursor ? 'O' : '[';\n return EscapeSequences_1.C0.ESC + mod + direction;\n };\n return AltClickHandler;\n}());\nexports.AltClickHandler = AltClickHandler;\nfunction repeat(count, str) {\n count = Math.floor(count);\n var rpt = '';\n for (var i = 0; i < count; i++) {\n rpt += str;\n }\n return rpt;\n}\n//# sourceMappingURL=AltClickHandler.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter_1 = require(\"../EventEmitter\");\nvar CharMeasure = (function (_super) {\n __extends(CharMeasure, _super);\n function CharMeasure(document, parentElement) {\n var _this = _super.call(this) || this;\n _this._document = document;\n _this._parentElement = parentElement;\n _this._measureElement = _this._document.createElement('span');\n _this._measureElement.classList.add('xterm-char-measure-element');\n _this._measureElement.textContent = 'W';\n _this._measureElement.setAttribute('aria-hidden', 'true');\n _this._parentElement.appendChild(_this._measureElement);\n return _this;\n }\n Object.defineProperty(CharMeasure.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CharMeasure.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: true,\n configurable: true\n });\n CharMeasure.prototype.measure = function (options) {\n this._measureElement.style.fontFamily = options.fontFamily;\n this._measureElement.style.fontSize = options.fontSize + \"px\";\n var geometry = this._measureElement.getBoundingClientRect();\n if (geometry.width === 0 || geometry.height === 0) {\n return;\n }\n if (this._width !== geometry.width || this._height !== geometry.height) {\n this._width = geometry.width;\n this._height = Math.ceil(geometry.height);\n this.emit('charsizechanged');\n }\n };\n return CharMeasure;\n}(EventEmitter_1.EventEmitter));\nexports.CharMeasure = CharMeasure;\n//# sourceMappingURL=CharMeasure.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clone = function (val, depth) {\n if (depth === void 0) { depth = 5; }\n if (typeof val !== 'object') {\n return val;\n }\n if (val === null) {\n return null;\n }\n var clonedObject = Array.isArray(val) ? [] : {};\n for (var key in val) {\n clonedObject[key] = depth <= 1 ? val[key] : exports.clone(val[key], depth - 1);\n }\n return clonedObject;\n};\n//# sourceMappingURL=Clone.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_BELL_SOUND = 'data:audio/wav;base64,UklGRigBAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQQBAADpAFgCwAMlBZoG/wdmCcoKRAypDQ8PbRDBEQQTOxRtFYcWlBePGIUZXhoiG88bcBz7HHIdzh0WHlMeZx51HmkeUx4WHs8dah0AHXwc3hs9G4saxRnyGBIYGBcQFv8U4RPAEoYRQBACD70NWwwHC6gJOwjWBloF7gOBAhABkf8b/qv8R/ve+Xf4Ife79W/0JfPZ8Z/wde9N7ijtE+wU6xvqM+lb6H7nw+YX5mrlxuQz5Mzje+Ma49fioeKD4nXiYeJy4pHitOL04j/jn+MN5IPkFOWs5U3mDefM55/ogOl36m7rdOyE7abuyu8D8Unyj/Pg9D/2qfcb+Yn6/vuK/Qj/lAAlAg==';\nvar SoundManager = (function () {\n function SoundManager(_terminal) {\n this._terminal = _terminal;\n }\n SoundManager.prototype.playBellSound = function () {\n var audioContextCtor = window.AudioContext || window.webkitAudioContext;\n if (!this._audioContext && audioContextCtor) {\n this._audioContext = new audioContextCtor();\n }\n if (this._audioContext) {\n var bellAudioSource_1 = this._audioContext.createBufferSource();\n var context_1 = this._audioContext;\n this._audioContext.decodeAudioData(this._base64ToArrayBuffer(this._removeMimeType(this._terminal.options.bellSound)), function (buffer) {\n bellAudioSource_1.buffer = buffer;\n bellAudioSource_1.connect(context_1.destination);\n bellAudioSource_1.start(0);\n });\n }\n else {\n console.warn('Sorry, but the Web Audio API is not supported by your browser. Please, consider upgrading to the latest version');\n }\n };\n SoundManager.prototype._base64ToArrayBuffer = function (base64) {\n var binaryString = window.atob(base64);\n var len = binaryString.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n };\n SoundManager.prototype._removeMimeType = function (dataURI) {\n var splitUri = dataURI.split(',');\n return splitUri[1];\n };\n return SoundManager;\n}());\nexports.SoundManager = SoundManager;\n//# sourceMappingURL=SoundManager.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Strings = require(\"./Strings\");\nvar Browser_1 = require(\"./shared/utils/Browser\");\nvar RenderDebouncer_1 = require(\"./ui/RenderDebouncer\");\nvar Lifecycle_1 = require(\"./ui/Lifecycle\");\nvar Lifecycle_2 = require(\"./common/Lifecycle\");\nvar MAX_ROWS_TO_READ = 20;\nvar AccessibilityManager = (function (_super) {\n __extends(AccessibilityManager, _super);\n function AccessibilityManager(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._liveRegionLineCount = 0;\n _this._charsToConsume = [];\n _this._accessibilityTreeRoot = document.createElement('div');\n _this._accessibilityTreeRoot.classList.add('xterm-accessibility');\n _this._rowContainer = document.createElement('div');\n _this._rowContainer.classList.add('xterm-accessibility-tree');\n _this._rowElements = [];\n for (var i = 0; i < _this._terminal.rows; i++) {\n _this._rowElements[i] = _this._createAccessibilityTreeNode();\n _this._rowContainer.appendChild(_this._rowElements[i]);\n }\n _this._topBoundaryFocusListener = function (e) { return _this._onBoundaryFocus(e, 0); };\n _this._bottomBoundaryFocusListener = function (e) { return _this._onBoundaryFocus(e, 1); };\n _this._rowElements[0].addEventListener('focus', _this._topBoundaryFocusListener);\n _this._rowElements[_this._rowElements.length - 1].addEventListener('focus', _this._bottomBoundaryFocusListener);\n _this._refreshRowsDimensions();\n _this._accessibilityTreeRoot.appendChild(_this._rowContainer);\n _this._renderRowsDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._terminal, _this._renderRows.bind(_this));\n _this._refreshRows();\n _this._liveRegion = document.createElement('div');\n _this._liveRegion.classList.add('live-region');\n _this._liveRegion.setAttribute('aria-live', 'assertive');\n _this._accessibilityTreeRoot.appendChild(_this._liveRegion);\n _this._terminal.element.insertAdjacentElement('afterbegin', _this._accessibilityTreeRoot);\n _this.register(_this._renderRowsDebouncer);\n _this.register(_this._terminal.addDisposableListener('resize', function (data) { return _this._onResize(data.rows); }));\n _this.register(_this._terminal.addDisposableListener('refresh', function (data) { return _this._refreshRows(data.start, data.end); }));\n _this.register(_this._terminal.addDisposableListener('scroll', function (data) { return _this._refreshRows(); }));\n _this.register(_this._terminal.addDisposableListener('a11y.char', function (char) { return _this._onChar(char); }));\n _this.register(_this._terminal.addDisposableListener('linefeed', function () { return _this._onChar('\\n'); }));\n _this.register(_this._terminal.addDisposableListener('a11y.tab', function (spaceCount) { return _this._onTab(spaceCount); }));\n _this.register(_this._terminal.addDisposableListener('key', function (keyChar) { return _this._onKey(keyChar); }));\n _this.register(_this._terminal.addDisposableListener('blur', function () { return _this._clearLiveRegion(); }));\n _this.register(_this._terminal.addDisposableListener('dprchange', function () { return _this._refreshRowsDimensions(); }));\n _this.register(_this._terminal.renderer.addDisposableListener('resize', function () { return _this._refreshRowsDimensions(); }));\n _this.register(Lifecycle_1.addDisposableDomListener(window, 'resize', function () { return _this._refreshRowsDimensions(); }));\n return _this;\n }\n AccessibilityManager.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._terminal.element.removeChild(this._accessibilityTreeRoot);\n this._rowElements.length = 0;\n };\n AccessibilityManager.prototype._onBoundaryFocus = function (e, position) {\n var boundaryElement = e.target;\n var beforeBoundaryElement = this._rowElements[position === 0 ? 1 : this._rowElements.length - 2];\n var posInSet = boundaryElement.getAttribute('aria-posinset');\n var lastRowPos = position === 0 ? '1' : \"\" + this._terminal.buffer.lines.length;\n if (posInSet === lastRowPos) {\n return;\n }\n if (e.relatedTarget !== beforeBoundaryElement) {\n return;\n }\n var topBoundaryElement;\n var bottomBoundaryElement;\n if (position === 0) {\n topBoundaryElement = boundaryElement;\n bottomBoundaryElement = this._rowElements.pop();\n this._rowContainer.removeChild(bottomBoundaryElement);\n }\n else {\n topBoundaryElement = this._rowElements.shift();\n bottomBoundaryElement = boundaryElement;\n this._rowContainer.removeChild(topBoundaryElement);\n }\n topBoundaryElement.removeEventListener('focus', this._topBoundaryFocusListener);\n bottomBoundaryElement.removeEventListener('focus', this._bottomBoundaryFocusListener);\n if (position === 0) {\n var newElement = this._createAccessibilityTreeNode();\n this._rowElements.unshift(newElement);\n this._rowContainer.insertAdjacentElement('afterbegin', newElement);\n }\n else {\n var newElement = this._createAccessibilityTreeNode();\n this._rowElements.push(newElement);\n this._rowContainer.appendChild(newElement);\n }\n this._rowElements[0].addEventListener('focus', this._topBoundaryFocusListener);\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n this._terminal.scrollLines(position === 0 ? -1 : 1);\n this._rowElements[position === 0 ? 1 : this._rowElements.length - 2].focus();\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n AccessibilityManager.prototype._onResize = function (rows) {\n this._rowElements[this._rowElements.length - 1].removeEventListener('focus', this._bottomBoundaryFocusListener);\n for (var i = this._rowContainer.children.length; i < this._terminal.rows; i++) {\n this._rowElements[i] = this._createAccessibilityTreeNode();\n this._rowContainer.appendChild(this._rowElements[i]);\n }\n while (this._rowElements.length > rows) {\n this._rowContainer.removeChild(this._rowElements.pop());\n }\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n this._refreshRowsDimensions();\n };\n AccessibilityManager.prototype._createAccessibilityTreeNode = function () {\n var element = document.createElement('div');\n element.setAttribute('role', 'listitem');\n element.tabIndex = -1;\n this._refreshRowDimensions(element);\n return element;\n };\n AccessibilityManager.prototype._onTab = function (spaceCount) {\n for (var i = 0; i < spaceCount; i++) {\n this._onChar(' ');\n }\n };\n AccessibilityManager.prototype._onChar = function (char) {\n var _this = this;\n if (this._liveRegionLineCount < MAX_ROWS_TO_READ + 1) {\n if (this._charsToConsume.length > 0) {\n var shiftedChar = this._charsToConsume.shift();\n if (shiftedChar !== char) {\n this._announceCharacter(char);\n }\n }\n else {\n this._announceCharacter(char);\n }\n if (char === '\\n') {\n this._liveRegionLineCount++;\n if (this._liveRegionLineCount === MAX_ROWS_TO_READ + 1) {\n this._liveRegion.textContent += Strings.tooMuchOutput;\n }\n }\n if (Browser_1.isMac) {\n if (this._liveRegion.textContent && this._liveRegion.textContent.length > 0 && !this._liveRegion.parentNode) {\n setTimeout(function () {\n _this._accessibilityTreeRoot.appendChild(_this._liveRegion);\n }, 0);\n }\n }\n }\n };\n AccessibilityManager.prototype._clearLiveRegion = function () {\n this._liveRegion.textContent = '';\n this._liveRegionLineCount = 0;\n if (Browser_1.isMac) {\n if (this._liveRegion.parentNode) {\n this._accessibilityTreeRoot.removeChild(this._liveRegion);\n }\n }\n };\n AccessibilityManager.prototype._onKey = function (keyChar) {\n this._clearLiveRegion();\n this._charsToConsume.push(keyChar);\n };\n AccessibilityManager.prototype._refreshRows = function (start, end) {\n this._renderRowsDebouncer.refresh(start, end);\n };\n AccessibilityManager.prototype._renderRows = function (start, end) {\n var buffer = this._terminal.buffer;\n var setSize = buffer.lines.length.toString();\n for (var i = start; i <= end; i++) {\n var lineData = buffer.translateBufferLineToString(buffer.ydisp + i, true);\n var posInSet = (buffer.ydisp + i + 1).toString();\n var element = this._rowElements[i];\n element.textContent = lineData.length === 0 ? Strings.blankLine : lineData;\n element.setAttribute('aria-posinset', posInSet);\n element.setAttribute('aria-setsize', setSize);\n }\n };\n AccessibilityManager.prototype._refreshRowsDimensions = function () {\n if (!this._terminal.renderer.dimensions.actualCellHeight) {\n return;\n }\n if (this._rowElements.length !== this._terminal.rows) {\n this._onResize(this._terminal.rows);\n }\n for (var i = 0; i < this._terminal.rows; i++) {\n this._refreshRowDimensions(this._rowElements[i]);\n }\n };\n AccessibilityManager.prototype._refreshRowDimensions = function (element) {\n element.style.height = this._terminal.renderer.dimensions.actualCellHeight + \"px\";\n };\n AccessibilityManager.prototype._announceCharacter = function (char) {\n if (char === ' ') {\n this._liveRegion.innerHTML += ' ';\n }\n else {\n this._liveRegion.textContent += char;\n }\n };\n return AccessibilityManager;\n}(Lifecycle_2.Disposable));\nexports.AccessibilityManager = AccessibilityManager;\n//# sourceMappingURL=AccessibilityManager.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter_1 = require(\"../../EventEmitter\");\nvar ColorManager_1 = require(\"../ColorManager\");\nvar RenderDebouncer_1 = require(\"../../ui/RenderDebouncer\");\nvar DomRendererRowFactory_1 = require(\"./DomRendererRowFactory\");\nvar TERMINAL_CLASS_PREFIX = 'xterm-dom-renderer-owner-';\nvar ROW_CONTAINER_CLASS = 'xterm-rows';\nvar FG_CLASS_PREFIX = 'xterm-fg-';\nvar BG_CLASS_PREFIX = 'xterm-bg-';\nvar FOCUS_CLASS = 'xterm-focus';\nvar SELECTION_CLASS = 'xterm-selection';\nvar nextTerminalId = 1;\nvar DomRenderer = (function (_super) {\n __extends(DomRenderer, _super);\n function DomRenderer(_terminal, theme) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._terminalClass = nextTerminalId++;\n _this._rowElements = [];\n var allowTransparency = _this._terminal.options.allowTransparency;\n _this.colorManager = new ColorManager_1.ColorManager(document, allowTransparency);\n _this.setTheme(theme);\n _this._rowContainer = document.createElement('div');\n _this._rowContainer.classList.add(ROW_CONTAINER_CLASS);\n _this._rowContainer.style.lineHeight = 'normal';\n _this._rowContainer.setAttribute('aria-hidden', 'true');\n _this._refreshRowElements(_this._terminal.cols, _this._terminal.rows);\n _this._selectionContainer = document.createElement('div');\n _this._selectionContainer.classList.add(SELECTION_CLASS);\n _this._selectionContainer.setAttribute('aria-hidden', 'true');\n _this.dimensions = {\n scaledCharWidth: null,\n scaledCharHeight: null,\n scaledCellWidth: null,\n scaledCellHeight: null,\n scaledCharLeft: null,\n scaledCharTop: null,\n scaledCanvasWidth: null,\n scaledCanvasHeight: null,\n canvasWidth: null,\n canvasHeight: null,\n actualCellWidth: null,\n actualCellHeight: null\n };\n _this._updateDimensions();\n _this._renderDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._terminal, _this._renderRows.bind(_this));\n _this._rowFactory = new DomRendererRowFactory_1.DomRendererRowFactory(document);\n _this._terminal.element.classList.add(TERMINAL_CLASS_PREFIX + _this._terminalClass);\n _this._terminal.screenElement.appendChild(_this._rowContainer);\n _this._terminal.screenElement.appendChild(_this._selectionContainer);\n return _this;\n }\n DomRenderer.prototype.dispose = function () {\n this._terminal.element.classList.remove(TERMINAL_CLASS_PREFIX + this._terminalClass);\n this._terminal.screenElement.removeChild(this._rowContainer);\n this._terminal.screenElement.removeChild(this._selectionContainer);\n this._terminal.screenElement.removeChild(this._themeStyleElement);\n this._terminal.screenElement.removeChild(this._dimensionsStyleElement);\n _super.prototype.dispose.call(this);\n };\n DomRenderer.prototype._updateDimensions = function () {\n var _this = this;\n this.dimensions.scaledCharWidth = this._terminal.charMeasure.width * window.devicePixelRatio;\n this.dimensions.scaledCharHeight = this._terminal.charMeasure.height * window.devicePixelRatio;\n this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth;\n this.dimensions.scaledCellHeight = this.dimensions.scaledCharHeight;\n this.dimensions.scaledCharLeft = 0;\n this.dimensions.scaledCharTop = 0;\n this.dimensions.scaledCanvasWidth = this.dimensions.scaledCellWidth * this._terminal.cols;\n this.dimensions.scaledCanvasHeight = this.dimensions.scaledCellHeight * this._terminal.rows;\n this.dimensions.canvasWidth = this._terminal.charMeasure.width * this._terminal.cols;\n this.dimensions.canvasHeight = this._terminal.charMeasure.height * this._terminal.rows;\n this.dimensions.actualCellWidth = this._terminal.charMeasure.width;\n this.dimensions.actualCellHeight = this._terminal.charMeasure.height;\n this._rowElements.forEach(function (element) {\n element.style.width = _this.dimensions.canvasWidth + \"px\";\n element.style.height = _this._terminal.charMeasure.height + \"px\";\n });\n if (!this._dimensionsStyleElement) {\n this._dimensionsStyleElement = document.createElement('style');\n this._terminal.screenElement.appendChild(this._dimensionsStyleElement);\n }\n var styles = this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \" span {\" +\n \" display: inline-block;\" +\n \" height: 100%;\" +\n \" vertical-align: top;\" +\n (\" width: \" + this._terminal.charMeasure.width + \"px\") +\n \"}\";\n this._dimensionsStyleElement.innerHTML = styles;\n this._selectionContainer.style.height = this._terminal._viewportElement.style.height;\n this._rowContainer.style.width = this.dimensions.canvasWidth + \"px\";\n this._rowContainer.style.height = this.dimensions.canvasHeight + \"px\";\n };\n DomRenderer.prototype.setTheme = function (theme) {\n var _this = this;\n if (theme) {\n this.colorManager.setTheme(theme);\n }\n if (!this._themeStyleElement) {\n this._themeStyleElement = document.createElement('style');\n this._terminal.screenElement.appendChild(this._themeStyleElement);\n }\n var styles = this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \" {\" +\n (\" color: \" + this.colorManager.colors.foreground.css + \";\") +\n (\" background-color: \" + this.colorManager.colors.background.css + \";\") +\n (\" font-family: \" + this._terminal.getOption('fontFamily') + \";\") +\n (\" font-size: \" + this._terminal.getOption('fontSize') + \"px;\") +\n \"}\";\n styles +=\n this._terminalSelector + \" span:not(.\" + DomRendererRowFactory_1.BOLD_CLASS + \") {\" +\n (\" font-weight: \" + this._terminal.options.fontWeight + \";\") +\n \"}\" +\n (this._terminalSelector + \" span.\" + DomRendererRowFactory_1.BOLD_CLASS + \" {\") +\n (\" font-weight: \" + this._terminal.options.fontWeightBold + \";\") +\n \"}\" +\n (this._terminalSelector + \" span.\" + DomRendererRowFactory_1.ITALIC_CLASS + \" {\") +\n \" font-style: italic;\" +\n \"}\";\n styles +=\n this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \".\" + FOCUS_CLASS + \" .\" + DomRendererRowFactory_1.CURSOR_CLASS + \" {\" +\n (\" background-color: \" + this.colorManager.colors.cursor.css + \";\") +\n (\" color: \" + this.colorManager.colors.cursorAccent.css + \";\") +\n \"}\" +\n (this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \":not(.\" + FOCUS_CLASS + \") .\" + DomRendererRowFactory_1.CURSOR_CLASS + \" {\") +\n \" outline: 1px solid #fff;\" +\n \" outline-offset: -1px;\" +\n \"}\";\n styles +=\n this._terminalSelector + \" .\" + SELECTION_CLASS + \" {\" +\n \" position: absolute;\" +\n \" top: 0;\" +\n \" left: 0;\" +\n \" z-index: 1;\" +\n \" pointer-events: none;\" +\n \"}\" +\n (this._terminalSelector + \" .\" + SELECTION_CLASS + \" div {\") +\n \" position: absolute;\" +\n (\" background-color: \" + this.colorManager.colors.selection.css + \";\") +\n \"}\";\n this.colorManager.colors.ansi.forEach(function (c, i) {\n styles +=\n _this._terminalSelector + \" .\" + FG_CLASS_PREFIX + i + \" { color: \" + c.css + \"; }\" +\n (_this._terminalSelector + \" .\" + BG_CLASS_PREFIX + i + \" { background-color: \" + c.css + \"; }\");\n });\n this._themeStyleElement.innerHTML = styles;\n return this.colorManager.colors;\n };\n DomRenderer.prototype.onWindowResize = function (devicePixelRatio) {\n this._updateDimensions();\n };\n DomRenderer.prototype._refreshRowElements = function (cols, rows) {\n for (var i = this._rowElements.length; i <= rows; i++) {\n var row = document.createElement('div');\n this._rowContainer.appendChild(row);\n this._rowElements.push(row);\n }\n while (this._rowElements.length > rows) {\n this._rowContainer.removeChild(this._rowElements.pop());\n }\n };\n DomRenderer.prototype.onResize = function (cols, rows) {\n this._refreshRowElements(cols, rows);\n this._updateDimensions();\n };\n DomRenderer.prototype.onCharSizeChanged = function () {\n this._updateDimensions();\n };\n DomRenderer.prototype.onBlur = function () {\n this._rowContainer.classList.remove(FOCUS_CLASS);\n };\n DomRenderer.prototype.onFocus = function () {\n this._rowContainer.classList.add(FOCUS_CLASS);\n };\n DomRenderer.prototype.onSelectionChanged = function (start, end, columnSelectMode) {\n while (this._selectionContainer.children.length) {\n this._selectionContainer.removeChild(this._selectionContainer.children[0]);\n }\n if (!start || !end) {\n return;\n }\n var viewportStartRow = start[1] - this._terminal.buffer.ydisp;\n var viewportEndRow = end[1] - this._terminal.buffer.ydisp;\n var viewportCappedStartRow = Math.max(viewportStartRow, 0);\n var viewportCappedEndRow = Math.min(viewportEndRow, this._terminal.rows - 1);\n if (viewportCappedStartRow >= this._terminal.rows || viewportCappedEndRow < 0) {\n return;\n }\n var documentFragment = document.createDocumentFragment();\n if (columnSelectMode) {\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow, start[0], end[0], viewportCappedEndRow - viewportCappedStartRow + 1));\n }\n else {\n var startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;\n var endCol = viewportCappedStartRow === viewportCappedEndRow ? end[0] : this._terminal.cols;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow, startCol, endCol));\n var middleRowsCount = viewportCappedEndRow - viewportCappedStartRow - 1;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow + 1, 0, this._terminal.cols, middleRowsCount));\n if (viewportCappedStartRow !== viewportCappedEndRow) {\n var endCol_1 = viewportEndRow === viewportCappedEndRow ? end[0] : this._terminal.cols;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedEndRow, 0, endCol_1));\n }\n }\n this._selectionContainer.appendChild(documentFragment);\n };\n DomRenderer.prototype._createSelectionElement = function (row, colStart, colEnd, rowCount) {\n if (rowCount === void 0) { rowCount = 1; }\n var element = document.createElement('div');\n element.style.height = rowCount * this._terminal.charMeasure.height + \"px\";\n element.style.top = row * this._terminal.charMeasure.height + \"px\";\n element.style.left = colStart * this._terminal.charMeasure.width + \"px\";\n element.style.width = this._terminal.charMeasure.width * (colEnd - colStart) + \"px\";\n return element;\n };\n DomRenderer.prototype.onCursorMove = function () {\n };\n DomRenderer.prototype.onOptionsChanged = function () {\n this._updateDimensions();\n this.setTheme(undefined);\n this._terminal.refresh(0, this._terminal.rows - 1);\n };\n DomRenderer.prototype.clear = function () {\n this._rowElements.forEach(function (e) { return e.innerHTML = ''; });\n };\n DomRenderer.prototype.refreshRows = function (start, end) {\n this._renderDebouncer.refresh(start, end);\n };\n DomRenderer.prototype._renderRows = function (start, end) {\n var terminal = this._terminal;\n var cursorAbsoluteY = terminal.buffer.ybase + terminal.buffer.y;\n var cursorX = this._terminal.buffer.x;\n for (var y = start; y <= end; y++) {\n var rowElement = this._rowElements[y];\n rowElement.innerHTML = '';\n var row = y + terminal.buffer.ydisp;\n var lineData = terminal.buffer.lines.get(row);\n rowElement.appendChild(this._rowFactory.createRow(lineData, row === cursorAbsoluteY, cursorX, terminal.charMeasure.width, terminal.cols));\n }\n this._terminal.emit('refresh', { start: start, end: end });\n };\n Object.defineProperty(DomRenderer.prototype, \"_terminalSelector\", {\n get: function () {\n return \".\" + TERMINAL_CLASS_PREFIX + this._terminalClass;\n },\n enumerable: true,\n configurable: true\n });\n DomRenderer.prototype.registerCharacterJoiner = function (handler) { return -1; };\n DomRenderer.prototype.deregisterCharacterJoiner = function (joinerId) { return false; };\n return DomRenderer;\n}(EventEmitter_1.EventEmitter));\nexports.DomRenderer = DomRenderer;\n//# sourceMappingURL=DomRenderer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../../Buffer\");\nexports.BOLD_CLASS = 'xterm-bold';\nexports.ITALIC_CLASS = 'xterm-italic';\nexports.CURSOR_CLASS = 'xterm-cursor';\nvar DomRendererRowFactory = (function () {\n function DomRendererRowFactory(_document) {\n this._document = _document;\n }\n DomRendererRowFactory.prototype.createRow = function (lineData, isCursorRow, cursorX, cellWidth, cols) {\n var fragment = this._document.createDocumentFragment();\n var colCount = 0;\n for (var x = 0; x < lineData.length; x++) {\n if (colCount >= cols) {\n continue;\n }\n var charData = lineData[x];\n var char = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n if (width === 0) {\n continue;\n }\n var charElement = this._document.createElement('span');\n if (width > 1) {\n charElement.style.width = cellWidth * width + \"px\";\n }\n var flags = attr >> 18;\n var bg = attr & 0x1ff;\n var fg = (attr >> 9) & 0x1ff;\n if (isCursorRow && x === cursorX) {\n charElement.classList.add(exports.CURSOR_CLASS);\n }\n if (flags & 8) {\n var temp = bg;\n bg = fg;\n fg = temp;\n if (fg === 256) {\n fg = 0;\n }\n if (bg === 257) {\n bg = 15;\n }\n }\n if (flags & 1) {\n if (fg < 8) {\n fg += 8;\n }\n charElement.classList.add(exports.BOLD_CLASS);\n }\n if (flags & 64) {\n charElement.classList.add(exports.ITALIC_CLASS);\n }\n charElement.textContent = char;\n if (fg !== 257) {\n charElement.classList.add(\"xterm-fg-\" + fg);\n }\n if (bg !== 256) {\n charElement.classList.add(\"xterm-bg-\" + bg);\n }\n fragment.appendChild(charElement);\n colCount += width;\n }\n return fragment;\n };\n return DomRendererRowFactory;\n}());\nexports.DomRendererRowFactory = DomRendererRowFactory;\n//# sourceMappingURL=DomRendererRowFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"../../common/data/EscapeSequences\");\nvar KEYCODE_KEY_MAPPINGS = {\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: ['\\'', '\"']\n};\nfunction evaluateKeyboardEvent(ev, applicationCursorMode, isMac, macOptionIsMeta) {\n var result = {\n type: 0,\n cancel: false,\n key: undefined\n };\n var modifiers = (ev.shiftKey ? 1 : 0) | (ev.altKey ? 2 : 0) | (ev.ctrlKey ? 4 : 0) | (ev.metaKey ? 8 : 0);\n switch (ev.keyCode) {\n case 0:\n if (ev.key === 'UIKeyInputUpArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OA';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[A';\n }\n }\n else if (ev.key === 'UIKeyInputLeftArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OD';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[D';\n }\n }\n else if (ev.key === 'UIKeyInputRightArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OC';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[C';\n }\n }\n else if (ev.key === 'UIKeyInputDownArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OB';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[B';\n }\n }\n break;\n case 8:\n if (ev.shiftKey) {\n result.key = EscapeSequences_1.C0.BS;\n break;\n }\n else if (ev.altKey) {\n result.key = EscapeSequences_1.C0.ESC + EscapeSequences_1.C0.DEL;\n break;\n }\n result.key = EscapeSequences_1.C0.DEL;\n break;\n case 9:\n if (ev.shiftKey) {\n result.key = EscapeSequences_1.C0.ESC + '[Z';\n break;\n }\n result.key = EscapeSequences_1.C0.HT;\n result.cancel = true;\n break;\n case 13:\n result.key = EscapeSequences_1.C0.CR;\n result.cancel = true;\n break;\n case 27:\n result.key = EscapeSequences_1.C0.ESC;\n result.cancel = true;\n break;\n case 37:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'D';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3D') {\n result.key = isMac ? EscapeSequences_1.C0.ESC + 'b' : EscapeSequences_1.C0.ESC + '[1;5D';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OD';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[D';\n }\n break;\n case 39:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'C';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3C') {\n result.key = isMac ? EscapeSequences_1.C0.ESC + 'f' : EscapeSequences_1.C0.ESC + '[1;5C';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OC';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[C';\n }\n break;\n case 38:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'A';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3A') {\n result.key = EscapeSequences_1.C0.ESC + '[1;5A';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OA';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[A';\n }\n break;\n case 40:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'B';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3B') {\n result.key = EscapeSequences_1.C0.ESC + '[1;5B';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OB';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[B';\n }\n break;\n case 45:\n if (!ev.shiftKey && !ev.ctrlKey) {\n result.key = EscapeSequences_1.C0.ESC + '[2~';\n }\n break;\n case 46:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[3;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[3~';\n }\n break;\n case 36:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'H';\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OH';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[H';\n }\n break;\n case 35:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'F';\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OF';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[F';\n }\n break;\n case 33:\n if (ev.shiftKey) {\n result.type = 2;\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[5~';\n }\n break;\n case 34:\n if (ev.shiftKey) {\n result.type = 3;\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[6~';\n }\n break;\n case 112:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'P';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OP';\n }\n break;\n case 113:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'Q';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OQ';\n }\n break;\n case 114:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'R';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OR';\n }\n break;\n case 115:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'S';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OS';\n }\n break;\n case 116:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[15;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[15~';\n }\n break;\n case 117:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[17;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[17~';\n }\n break;\n case 118:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[18;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[18~';\n }\n break;\n case 119:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[19;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[19~';\n }\n break;\n case 120:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[20;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[20~';\n }\n break;\n case 121:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[21;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[21~';\n }\n break;\n case 122:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[23;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[23~';\n }\n break;\n case 123:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[24;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[24~';\n }\n break;\n default:\n if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) {\n if (ev.keyCode >= 65 && ev.keyCode <= 90) {\n result.key = String.fromCharCode(ev.keyCode - 64);\n }\n else if (ev.keyCode === 32) {\n result.key = String.fromCharCode(0);\n }\n else if (ev.keyCode >= 51 && ev.keyCode <= 55) {\n result.key = String.fromCharCode(ev.keyCode - 51 + 27);\n }\n else if (ev.keyCode === 56) {\n result.key = String.fromCharCode(127);\n }\n else if (ev.keyCode === 219) {\n result.key = String.fromCharCode(27);\n }\n else if (ev.keyCode === 220) {\n result.key = String.fromCharCode(28);\n }\n else if (ev.keyCode === 221) {\n result.key = String.fromCharCode(29);\n }\n }\n else if ((!isMac || macOptionIsMeta) && ev.altKey && !ev.metaKey) {\n var keyMapping = KEYCODE_KEY_MAPPINGS[ev.keyCode];\n var key = keyMapping && keyMapping[!ev.shiftKey ? 0 : 1];\n if (key) {\n result.key = EscapeSequences_1.C0.ESC + key;\n }\n else if (ev.keyCode >= 65 && ev.keyCode <= 90) {\n var keyCode = ev.ctrlKey ? ev.keyCode - 64 : ev.keyCode + 32;\n result.key = EscapeSequences_1.C0.ESC + String.fromCharCode(keyCode);\n }\n }\n else if (isMac && !ev.altKey && !ev.ctrlKey && ev.metaKey) {\n if (ev.keyCode === 65) {\n result.type = 1;\n }\n }\n break;\n }\n return result;\n}\nexports.evaluateKeyboardEvent = evaluateKeyboardEvent;\n//# sourceMappingURL=Keyboard.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction proposeGeometry(term) {\n if (!term.element.parentElement) {\n return null;\n }\n var parentElementStyle = window.getComputedStyle(term.element.parentElement);\n var parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height'));\n var parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width')));\n var elementStyle = window.getComputedStyle(term.element);\n var elementPadding = {\n top: parseInt(elementStyle.getPropertyValue('padding-top')),\n bottom: parseInt(elementStyle.getPropertyValue('padding-bottom')),\n right: parseInt(elementStyle.getPropertyValue('padding-right')),\n left: parseInt(elementStyle.getPropertyValue('padding-left'))\n };\n var elementPaddingVer = elementPadding.top + elementPadding.bottom;\n var elementPaddingHor = elementPadding.right + elementPadding.left;\n var availableHeight = parentElementHeight - elementPaddingVer;\n var availableWidth = parentElementWidth - elementPaddingHor - term._core.viewport.scrollBarWidth;\n var geometry = {\n cols: Math.floor(availableWidth / term._core.renderer.dimensions.actualCellWidth),\n rows: Math.floor(availableHeight / term._core.renderer.dimensions.actualCellHeight)\n };\n return geometry;\n}\nexports.proposeGeometry = proposeGeometry;\nfunction fit(term) {\n var geometry = proposeGeometry(term);\n if (geometry) {\n if (term.rows !== geometry.rows || term.cols !== geometry.cols) {\n term._core.renderer.clear();\n term.resize(geometry.cols, geometry.rows);\n }\n }\n}\nexports.fit = fit;\nfunction apply(terminalConstructor) {\n terminalConstructor.prototype.proposeGeometry = function () {\n return proposeGeometry(this);\n };\n terminalConstructor.prototype.fit = function () {\n fit(this);\n };\n}\nexports.apply = apply;\n//# sourceMappingURL=fit.js.map","'use strict';\nconst ipRegex = require('ip-regex');\nconst tlds = require('tlds');\n\nmodule.exports = opts => {\n\topts = Object.assign({strict: true}, opts);\n\n\tconst protocol = `(?:(?:[a-z]+:)?//)${opts.strict ? '' : '?'}`;\n\tconst auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n\tconst ip = ipRegex.v4().source;\n\tconst host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n\tconst domain = '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n\tconst tld = `(?:\\\\.${opts.strict ? '(?:[a-z\\\\u00a1-\\\\uffff]{2,})' : `(?:${tlds.sort((a, b) => b.length - a.length).join('|')})`})\\\\.?`;\n\tconst port = '(?::\\\\d{2,5})?';\n\tconst path = '(?:[/?#][^\\\\s\"]*)?';\n\tconst regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ip}|${host}${domain}${tld})${port}${path}`;\n\n\treturn opts.exact ? new RegExp(`(?:^${regex}$)`, 'i') : new RegExp(regex, 'ig');\n};\n","'use strict';\n\nvar v4 = '(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}';\nvar v6 = '(?:(?:[0-9a-fA-F:]){1,4}(?:(?::(?:[0-9a-fA-F]){1,4}|:)){2,7})+';\n\nvar ip = module.exports = function (opts) {\n\topts = opts || {};\n\treturn opts.exact ? new RegExp('(?:^' + v4 + '$)|(?:^' + v6 + '$)') :\n\t new RegExp('(?:' + v4 + ')|(?:' + v6 + ')', 'g');\n};\n\nip.v4 = function (opts) {\n\topts = opts || {};\n\treturn opts.exact ? new RegExp('^' + v4 + '$') : new RegExp(v4, 'g');\n};\n\nip.v6 = function (opts) {\n\topts = opts || {};\n\treturn opts.exact ? new RegExp('^' + v6 + '$') : new RegExp(v6, 'g');\n};\n","module.exports = [\n \"aaa\",\n \"aarp\",\n \"abarth\",\n \"abb\",\n \"abbott\",\n \"abbvie\",\n \"abc\",\n \"able\",\n \"abogado\",\n \"abudhabi\",\n \"ac\",\n \"academy\",\n \"accenture\",\n \"accountant\",\n \"accountants\",\n \"aco\",\n \"active\",\n \"actor\",\n \"ad\",\n \"adac\",\n \"ads\",\n \"adult\",\n \"ae\",\n \"aeg\",\n \"aero\",\n \"aetna\",\n \"af\",\n \"afamilycompany\",\n \"afl\",\n \"africa\",\n \"ag\",\n \"agakhan\",\n \"agency\",\n \"ai\",\n \"aig\",\n \"aigo\",\n \"airbus\",\n \"airforce\",\n \"airtel\",\n \"akdn\",\n \"al\",\n \"alfaromeo\",\n \"alibaba\",\n \"alipay\",\n \"allfinanz\",\n \"allstate\",\n \"ally\",\n \"alsace\",\n \"alstom\",\n \"am\",\n \"americanexpress\",\n \"americanfamily\",\n \"amex\",\n \"amfam\",\n \"amica\",\n \"amsterdam\",\n \"analytics\",\n \"android\",\n \"anquan\",\n \"anz\",\n \"ao\",\n \"aol\",\n \"apartments\",\n \"app\",\n \"apple\",\n \"aq\",\n \"aquarelle\",\n \"ar\",\n \"arab\",\n \"aramco\",\n \"archi\",\n \"army\",\n \"arpa\",\n \"art\",\n \"arte\",\n \"as\",\n \"asda\",\n \"asia\",\n \"associates\",\n \"at\",\n \"athleta\",\n \"attorney\",\n \"au\",\n \"auction\",\n \"audi\",\n \"audible\",\n \"audio\",\n \"auspost\",\n \"author\",\n \"auto\",\n \"autos\",\n \"avianca\",\n \"aw\",\n \"aws\",\n \"ax\",\n \"axa\",\n \"az\",\n \"azure\",\n \"ba\",\n \"baby\",\n \"baidu\",\n \"banamex\",\n \"bananarepublic\",\n \"band\",\n \"bank\",\n \"bar\",\n \"barcelona\",\n \"barclaycard\",\n \"barclays\",\n \"barefoot\",\n \"bargains\",\n \"baseball\",\n \"basketball\",\n \"bauhaus\",\n \"bayern\",\n \"bb\",\n \"bbc\",\n \"bbt\",\n \"bbva\",\n \"bcg\",\n \"bcn\",\n \"bd\",\n \"be\",\n \"beats\",\n \"beauty\",\n \"beer\",\n \"bentley\",\n \"berlin\",\n \"best\",\n \"bestbuy\",\n \"bet\",\n \"bf\",\n \"bg\",\n \"bh\",\n \"bharti\",\n \"bi\",\n \"bible\",\n \"bid\",\n \"bike\",\n \"bing\",\n \"bingo\",\n \"bio\",\n \"biz\",\n \"bj\",\n \"black\",\n \"blackfriday\",\n \"blanco\",\n \"blockbuster\",\n \"blog\",\n \"bloomberg\",\n \"blue\",\n \"bm\",\n \"bms\",\n \"bmw\",\n \"bn\",\n \"bnl\",\n \"bnpparibas\",\n \"bo\",\n \"boats\",\n \"boehringer\",\n \"bofa\",\n \"bom\",\n \"bond\",\n \"boo\",\n \"book\",\n \"booking\",\n \"bosch\",\n \"bostik\",\n \"boston\",\n \"bot\",\n \"boutique\",\n \"box\",\n \"br\",\n \"bradesco\",\n \"bridgestone\",\n \"broadway\",\n \"broker\",\n \"brother\",\n \"brussels\",\n \"bs\",\n \"bt\",\n \"budapest\",\n \"bugatti\",\n \"build\",\n \"builders\",\n \"business\",\n \"buy\",\n \"buzz\",\n \"bv\",\n \"bw\",\n \"by\",\n \"bz\",\n \"bzh\",\n \"ca\",\n \"cab\",\n \"cafe\",\n \"cal\",\n \"call\",\n \"calvinklein\",\n \"cam\",\n \"camera\",\n \"camp\",\n \"cancerresearch\",\n \"canon\",\n \"capetown\",\n \"capital\",\n \"capitalone\",\n \"car\",\n \"caravan\",\n \"cards\",\n \"care\",\n \"career\",\n \"careers\",\n \"cars\",\n \"cartier\",\n \"casa\",\n \"case\",\n \"caseih\",\n \"cash\",\n \"casino\",\n \"cat\",\n \"catering\",\n \"catholic\",\n \"cba\",\n \"cbn\",\n \"cbre\",\n \"cbs\",\n \"cc\",\n \"cd\",\n \"ceb\",\n \"center\",\n \"ceo\",\n \"cern\",\n \"cf\",\n \"cfa\",\n \"cfd\",\n \"cg\",\n \"ch\",\n \"chanel\",\n \"channel\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"chintai\",\n \"christmas\",\n \"chrome\",\n \"chrysler\",\n \"church\",\n \"ci\",\n \"cipriani\",\n \"circle\",\n \"cisco\",\n \"citadel\",\n \"citi\",\n \"citic\",\n \"city\",\n \"cityeats\",\n \"ck\",\n \"cl\",\n \"claims\",\n \"cleaning\",\n \"click\",\n \"clinic\",\n \"clinique\",\n \"clothing\",\n \"cloud\",\n \"club\",\n \"clubmed\",\n \"cm\",\n \"cn\",\n \"co\",\n \"coach\",\n \"codes\",\n \"coffee\",\n \"college\",\n \"cologne\",\n \"com\",\n \"comcast\",\n \"commbank\",\n \"community\",\n \"company\",\n \"compare\",\n \"computer\",\n \"comsec\",\n \"condos\",\n \"construction\",\n \"consulting\",\n \"contact\",\n \"contractors\",\n \"cooking\",\n \"cookingchannel\",\n \"cool\",\n \"coop\",\n \"corsica\",\n \"country\",\n \"coupon\",\n \"coupons\",\n \"courses\",\n \"cr\",\n \"credit\",\n \"creditcard\",\n \"creditunion\",\n \"cricket\",\n \"crown\",\n \"crs\",\n \"cruise\",\n \"cruises\",\n \"csc\",\n \"cu\",\n \"cuisinella\",\n \"cv\",\n \"cw\",\n \"cx\",\n \"cy\",\n \"cymru\",\n \"cyou\",\n \"cz\",\n \"dabur\",\n \"dad\",\n \"dance\",\n \"data\",\n \"date\",\n \"dating\",\n \"datsun\",\n \"day\",\n \"dclk\",\n \"dds\",\n \"de\",\n \"deal\",\n \"dealer\",\n \"deals\",\n \"degree\",\n \"delivery\",\n \"dell\",\n \"deloitte\",\n \"delta\",\n \"democrat\",\n \"dental\",\n \"dentist\",\n \"desi\",\n \"design\",\n \"dev\",\n \"dhl\",\n \"diamonds\",\n \"diet\",\n \"digital\",\n \"direct\",\n \"directory\",\n \"discount\",\n \"discover\",\n \"dish\",\n \"diy\",\n \"dj\",\n \"dk\",\n \"dm\",\n \"dnp\",\n \"do\",\n \"docs\",\n \"doctor\",\n \"dodge\",\n \"dog\",\n \"doha\",\n \"domains\",\n \"dot\",\n \"download\",\n \"drive\",\n \"dtv\",\n \"dubai\",\n \"duck\",\n \"dunlop\",\n \"duns\",\n \"dupont\",\n \"durban\",\n \"dvag\",\n \"dvr\",\n \"dz\",\n \"earth\",\n \"eat\",\n \"ec\",\n \"eco\",\n \"edeka\",\n \"edu\",\n \"education\",\n \"ee\",\n \"eg\",\n \"email\",\n \"emerck\",\n \"energy\",\n \"engineer\",\n \"engineering\",\n \"enterprises\",\n \"epost\",\n \"epson\",\n \"equipment\",\n \"er\",\n \"ericsson\",\n \"erni\",\n \"es\",\n \"esq\",\n \"estate\",\n \"esurance\",\n \"et\",\n \"etisalat\",\n \"eu\",\n \"eurovision\",\n \"eus\",\n \"events\",\n \"everbank\",\n \"exchange\",\n \"expert\",\n \"exposed\",\n \"express\",\n \"extraspace\",\n \"fage\",\n \"fail\",\n \"fairwinds\",\n \"faith\",\n \"family\",\n \"fan\",\n \"fans\",\n \"farm\",\n \"farmers\",\n \"fashion\",\n \"fast\",\n \"fedex\",\n \"feedback\",\n \"ferrari\",\n \"ferrero\",\n \"fi\",\n \"fiat\",\n \"fidelity\",\n \"fido\",\n \"film\",\n \"final\",\n \"finance\",\n \"financial\",\n \"fire\",\n \"firestone\",\n \"firmdale\",\n \"fish\",\n \"fishing\",\n \"fit\",\n \"fitness\",\n \"fj\",\n \"fk\",\n \"flickr\",\n \"flights\",\n \"flir\",\n \"florist\",\n \"flowers\",\n \"fly\",\n \"fm\",\n \"fo\",\n \"foo\",\n \"food\",\n \"foodnetwork\",\n \"football\",\n \"ford\",\n \"forex\",\n \"forsale\",\n \"forum\",\n \"foundation\",\n \"fox\",\n \"fr\",\n \"free\",\n \"fresenius\",\n \"frl\",\n \"frogans\",\n \"frontdoor\",\n \"frontier\",\n \"ftr\",\n \"fujitsu\",\n \"fujixerox\",\n \"fun\",\n \"fund\",\n \"furniture\",\n \"futbol\",\n \"fyi\",\n \"ga\",\n \"gal\",\n \"gallery\",\n \"gallo\",\n \"gallup\",\n \"game\",\n \"games\",\n \"gap\",\n \"garden\",\n \"gb\",\n \"gbiz\",\n \"gd\",\n \"gdn\",\n \"ge\",\n \"gea\",\n \"gent\",\n \"genting\",\n \"george\",\n \"gf\",\n \"gg\",\n \"ggee\",\n \"gh\",\n \"gi\",\n \"gift\",\n \"gifts\",\n \"gives\",\n \"giving\",\n \"gl\",\n \"glade\",\n \"glass\",\n \"gle\",\n \"global\",\n \"globo\",\n \"gm\",\n \"gmail\",\n \"gmbh\",\n \"gmo\",\n \"gmx\",\n \"gn\",\n \"godaddy\",\n \"gold\",\n \"goldpoint\",\n \"golf\",\n \"goo\",\n \"goodhands\",\n \"goodyear\",\n \"goog\",\n \"google\",\n \"gop\",\n \"got\",\n \"gov\",\n \"gp\",\n \"gq\",\n \"gr\",\n \"grainger\",\n \"graphics\",\n \"gratis\",\n \"green\",\n \"gripe\",\n \"grocery\",\n \"group\",\n \"gs\",\n \"gt\",\n \"gu\",\n \"guardian\",\n \"gucci\",\n \"guge\",\n \"guide\",\n \"guitars\",\n \"guru\",\n \"gw\",\n \"gy\",\n \"hair\",\n \"hamburg\",\n \"hangout\",\n \"haus\",\n \"hbo\",\n \"hdfc\",\n \"hdfcbank\",\n \"health\",\n \"healthcare\",\n \"help\",\n \"helsinki\",\n \"here\",\n \"hermes\",\n \"hgtv\",\n \"hiphop\",\n \"hisamitsu\",\n \"hitachi\",\n \"hiv\",\n \"hk\",\n \"hkt\",\n \"hm\",\n \"hn\",\n \"hockey\",\n \"holdings\",\n \"holiday\",\n \"homedepot\",\n \"homegoods\",\n \"homes\",\n \"homesense\",\n \"honda\",\n \"honeywell\",\n \"horse\",\n \"hospital\",\n \"host\",\n \"hosting\",\n \"hot\",\n \"hoteles\",\n \"hotels\",\n \"hotmail\",\n \"house\",\n \"how\",\n \"hr\",\n \"hsbc\",\n \"ht\",\n \"hu\",\n \"hughes\",\n \"hyatt\",\n \"hyundai\",\n \"ibm\",\n \"icbc\",\n \"ice\",\n \"icu\",\n \"id\",\n \"ie\",\n \"ieee\",\n \"ifm\",\n \"ikano\",\n \"il\",\n \"im\",\n \"imamat\",\n \"imdb\",\n \"immo\",\n \"immobilien\",\n \"in\",\n \"industries\",\n \"infiniti\",\n \"info\",\n \"ing\",\n \"ink\",\n \"institute\",\n \"insurance\",\n \"insure\",\n \"int\",\n \"intel\",\n \"international\",\n \"intuit\",\n \"investments\",\n \"io\",\n \"ipiranga\",\n \"iq\",\n \"ir\",\n \"irish\",\n \"is\",\n \"iselect\",\n \"ismaili\",\n \"ist\",\n \"istanbul\",\n \"it\",\n \"itau\",\n \"itv\",\n \"iveco\",\n \"iwc\",\n \"jaguar\",\n \"java\",\n \"jcb\",\n \"jcp\",\n \"je\",\n \"jeep\",\n \"jetzt\",\n \"jewelry\",\n \"jio\",\n \"jlc\",\n \"jll\",\n \"jm\",\n \"jmp\",\n \"jnj\",\n \"jo\",\n \"jobs\",\n \"joburg\",\n \"jot\",\n \"joy\",\n \"jp\",\n \"jpmorgan\",\n \"jprs\",\n \"juegos\",\n \"juniper\",\n \"kaufen\",\n \"kddi\",\n \"ke\",\n \"kerryhotels\",\n \"kerrylogistics\",\n \"kerryproperties\",\n \"kfh\",\n \"kg\",\n \"kh\",\n \"ki\",\n \"kia\",\n \"kim\",\n \"kinder\",\n \"kindle\",\n \"kitchen\",\n \"kiwi\",\n \"km\",\n \"kn\",\n \"koeln\",\n \"komatsu\",\n \"kosher\",\n \"kp\",\n \"kpmg\",\n \"kpn\",\n \"kr\",\n \"krd\",\n \"kred\",\n \"kuokgroup\",\n \"kw\",\n \"ky\",\n \"kyoto\",\n \"kz\",\n \"la\",\n \"lacaixa\",\n \"ladbrokes\",\n \"lamborghini\",\n \"lamer\",\n \"lancaster\",\n \"lancia\",\n \"lancome\",\n \"land\",\n \"landrover\",\n \"lanxess\",\n \"lasalle\",\n \"lat\",\n \"latino\",\n \"latrobe\",\n \"law\",\n \"lawyer\",\n \"lb\",\n \"lc\",\n \"lds\",\n \"lease\",\n \"leclerc\",\n \"lefrak\",\n \"legal\",\n \"lego\",\n \"lexus\",\n \"lgbt\",\n \"li\",\n \"liaison\",\n \"lidl\",\n \"life\",\n \"lifeinsurance\",\n \"lifestyle\",\n \"lighting\",\n \"like\",\n \"lilly\",\n \"limited\",\n \"limo\",\n \"lincoln\",\n \"linde\",\n \"link\",\n \"lipsy\",\n \"live\",\n \"living\",\n \"lixil\",\n \"lk\",\n \"llc\",\n \"loan\",\n \"loans\",\n \"locker\",\n \"locus\",\n \"loft\",\n \"lol\",\n \"london\",\n \"lotte\",\n \"lotto\",\n \"love\",\n \"lpl\",\n \"lplfinancial\",\n \"lr\",\n \"ls\",\n \"lt\",\n \"ltd\",\n \"ltda\",\n \"lu\",\n \"lundbeck\",\n \"lupin\",\n \"luxe\",\n \"luxury\",\n \"lv\",\n \"ly\",\n \"ma\",\n \"macys\",\n \"madrid\",\n \"maif\",\n \"maison\",\n \"makeup\",\n \"man\",\n \"management\",\n \"mango\",\n \"map\",\n \"market\",\n \"marketing\",\n \"markets\",\n \"marriott\",\n \"marshalls\",\n \"maserati\",\n \"mattel\",\n \"mba\",\n \"mc\",\n \"mckinsey\",\n \"md\",\n \"me\",\n \"med\",\n \"media\",\n \"meet\",\n \"melbourne\",\n \"meme\",\n \"memorial\",\n \"men\",\n \"menu\",\n \"meo\",\n \"merckmsd\",\n \"metlife\",\n \"mg\",\n \"mh\",\n \"miami\",\n \"microsoft\",\n \"mil\",\n \"mini\",\n \"mint\",\n \"mit\",\n \"mitsubishi\",\n \"mk\",\n \"ml\",\n \"mlb\",\n \"mls\",\n \"mm\",\n \"mma\",\n \"mn\",\n \"mo\",\n \"mobi\",\n \"mobile\",\n \"mobily\",\n \"moda\",\n \"moe\",\n \"moi\",\n \"mom\",\n \"monash\",\n \"money\",\n \"monster\",\n \"mopar\",\n \"mormon\",\n \"mortgage\",\n \"moscow\",\n \"moto\",\n \"motorcycles\",\n \"mov\",\n \"movie\",\n \"movistar\",\n \"mp\",\n \"mq\",\n \"mr\",\n \"ms\",\n \"msd\",\n \"mt\",\n \"mtn\",\n \"mtr\",\n \"mu\",\n \"museum\",\n \"mutual\",\n \"mv\",\n \"mw\",\n \"mx\",\n \"my\",\n \"mz\",\n \"na\",\n \"nab\",\n \"nadex\",\n \"nagoya\",\n \"name\",\n \"nationwide\",\n \"natura\",\n \"navy\",\n \"nba\",\n \"nc\",\n \"ne\",\n \"nec\",\n \"net\",\n \"netbank\",\n \"netflix\",\n \"network\",\n \"neustar\",\n \"new\",\n \"newholland\",\n \"news\",\n \"next\",\n \"nextdirect\",\n \"nexus\",\n \"nf\",\n \"nfl\",\n \"ng\",\n \"ngo\",\n \"nhk\",\n \"ni\",\n \"nico\",\n \"nike\",\n \"nikon\",\n \"ninja\",\n \"nissan\",\n \"nissay\",\n \"nl\",\n \"no\",\n \"nokia\",\n \"northwesternmutual\",\n \"norton\",\n \"now\",\n \"nowruz\",\n \"nowtv\",\n \"np\",\n \"nr\",\n \"nra\",\n \"nrw\",\n \"ntt\",\n \"nu\",\n \"nyc\",\n \"nz\",\n \"obi\",\n \"observer\",\n \"off\",\n \"office\",\n \"okinawa\",\n \"olayan\",\n \"olayangroup\",\n \"oldnavy\",\n \"ollo\",\n \"om\",\n \"omega\",\n \"one\",\n \"ong\",\n \"onl\",\n \"online\",\n \"onyourside\",\n \"ooo\",\n \"open\",\n \"oracle\",\n \"orange\",\n \"org\",\n \"organic\",\n \"origins\",\n \"osaka\",\n \"otsuka\",\n \"ott\",\n \"ovh\",\n \"pa\",\n \"page\",\n \"panasonic\",\n \"panerai\",\n \"paris\",\n \"pars\",\n \"partners\",\n \"parts\",\n \"party\",\n \"passagens\",\n \"pay\",\n \"pccw\",\n \"pe\",\n \"pet\",\n \"pf\",\n \"pfizer\",\n \"pg\",\n \"ph\",\n \"pharmacy\",\n \"phd\",\n \"philips\",\n \"phone\",\n \"photo\",\n \"photography\",\n \"photos\",\n \"physio\",\n \"piaget\",\n \"pics\",\n \"pictet\",\n \"pictures\",\n \"pid\",\n \"pin\",\n \"ping\",\n \"pink\",\n \"pioneer\",\n \"pizza\",\n \"pk\",\n \"pl\",\n \"place\",\n \"play\",\n \"playstation\",\n \"plumbing\",\n \"plus\",\n \"pm\",\n \"pn\",\n \"pnc\",\n \"pohl\",\n \"poker\",\n \"politie\",\n \"porn\",\n \"post\",\n \"pr\",\n \"pramerica\",\n \"praxi\",\n \"press\",\n \"prime\",\n \"pro\",\n \"prod\",\n \"productions\",\n \"prof\",\n \"progressive\",\n \"promo\",\n \"properties\",\n \"property\",\n \"protection\",\n \"pru\",\n \"prudential\",\n \"ps\",\n \"pt\",\n \"pub\",\n \"pw\",\n \"pwc\",\n \"py\",\n \"qa\",\n \"qpon\",\n \"quebec\",\n \"quest\",\n \"qvc\",\n \"racing\",\n \"radio\",\n \"raid\",\n \"re\",\n \"read\",\n \"realestate\",\n \"realtor\",\n \"realty\",\n \"recipes\",\n \"red\",\n \"redstone\",\n \"redumbrella\",\n \"rehab\",\n \"reise\",\n \"reisen\",\n \"reit\",\n \"reliance\",\n \"ren\",\n \"rent\",\n \"rentals\",\n \"repair\",\n \"report\",\n \"republican\",\n \"rest\",\n \"restaurant\",\n \"review\",\n \"reviews\",\n \"rexroth\",\n \"rich\",\n \"richardli\",\n \"ricoh\",\n \"rightathome\",\n \"ril\",\n \"rio\",\n \"rip\",\n \"rmit\",\n \"ro\",\n \"rocher\",\n \"rocks\",\n \"rodeo\",\n \"rogers\",\n \"room\",\n \"rs\",\n \"rsvp\",\n \"ru\",\n \"rugby\",\n \"ruhr\",\n \"run\",\n \"rw\",\n \"rwe\",\n \"ryukyu\",\n \"sa\",\n \"saarland\",\n \"safe\",\n \"safety\",\n \"sakura\",\n \"sale\",\n \"salon\",\n \"samsclub\",\n \"samsung\",\n \"sandvik\",\n \"sandvikcoromant\",\n \"sanofi\",\n \"sap\",\n \"sapo\",\n \"sarl\",\n \"sas\",\n \"save\",\n \"saxo\",\n \"sb\",\n \"sbi\",\n \"sbs\",\n \"sc\",\n \"sca\",\n \"scb\",\n \"schaeffler\",\n \"schmidt\",\n \"scholarships\",\n \"school\",\n \"schule\",\n \"schwarz\",\n \"science\",\n \"scjohnson\",\n \"scor\",\n \"scot\",\n \"sd\",\n \"se\",\n \"search\",\n \"seat\",\n \"secure\",\n \"security\",\n \"seek\",\n \"select\",\n \"sener\",\n \"services\",\n \"ses\",\n \"seven\",\n \"sew\",\n \"sex\",\n \"sexy\",\n \"sfr\",\n \"sg\",\n \"sh\",\n \"shangrila\",\n \"sharp\",\n \"shaw\",\n \"shell\",\n \"shia\",\n \"shiksha\",\n \"shoes\",\n \"shop\",\n \"shopping\",\n \"shouji\",\n \"show\",\n \"showtime\",\n \"shriram\",\n \"si\",\n \"silk\",\n \"sina\",\n \"singles\",\n \"site\",\n \"sj\",\n \"sk\",\n \"ski\",\n \"skin\",\n \"sky\",\n \"skype\",\n \"sl\",\n \"sling\",\n \"sm\",\n \"smart\",\n \"smile\",\n \"sn\",\n \"sncf\",\n \"so\",\n \"soccer\",\n \"social\",\n \"softbank\",\n \"software\",\n \"sohu\",\n \"solar\",\n \"solutions\",\n \"song\",\n \"sony\",\n \"soy\",\n \"space\",\n \"spiegel\",\n \"sport\",\n \"spot\",\n \"spreadbetting\",\n \"sr\",\n \"srl\",\n \"srt\",\n \"st\",\n \"stada\",\n \"staples\",\n \"star\",\n \"starhub\",\n \"statebank\",\n \"statefarm\",\n \"statoil\",\n \"stc\",\n \"stcgroup\",\n \"stockholm\",\n \"storage\",\n \"store\",\n \"stream\",\n \"studio\",\n \"study\",\n \"style\",\n \"su\",\n \"sucks\",\n \"supplies\",\n \"supply\",\n \"support\",\n \"surf\",\n \"surgery\",\n \"suzuki\",\n \"sv\",\n \"swatch\",\n \"swiftcover\",\n \"swiss\",\n \"sx\",\n \"sy\",\n \"sydney\",\n \"symantec\",\n \"systems\",\n \"sz\",\n \"tab\",\n \"taipei\",\n \"talk\",\n \"taobao\",\n \"target\",\n \"tatamotors\",\n \"tatar\",\n \"tattoo\",\n \"tax\",\n \"taxi\",\n \"tc\",\n \"tci\",\n \"td\",\n \"tdk\",\n \"team\",\n \"tech\",\n \"technology\",\n \"tel\",\n \"telecity\",\n \"telefonica\",\n \"temasek\",\n \"tennis\",\n \"teva\",\n \"tf\",\n \"tg\",\n \"th\",\n \"thd\",\n \"theater\",\n \"theatre\",\n \"tiaa\",\n \"tickets\",\n \"tienda\",\n \"tiffany\",\n \"tips\",\n \"tires\",\n \"tirol\",\n \"tj\",\n \"tjmaxx\",\n \"tjx\",\n \"tk\",\n \"tkmaxx\",\n \"tl\",\n \"tm\",\n \"tmall\",\n \"tn\",\n \"to\",\n \"today\",\n \"tokyo\",\n \"tools\",\n \"top\",\n \"toray\",\n \"toshiba\",\n \"total\",\n \"tours\",\n \"town\",\n \"toyota\",\n \"toys\",\n \"tr\",\n \"trade\",\n \"trading\",\n \"training\",\n \"travel\",\n \"travelchannel\",\n \"travelers\",\n \"travelersinsurance\",\n \"trust\",\n \"trv\",\n \"tt\",\n \"tube\",\n \"tui\",\n \"tunes\",\n \"tushu\",\n \"tv\",\n \"tvs\",\n \"tw\",\n \"tz\",\n \"ua\",\n \"ubank\",\n \"ubs\",\n \"uconnect\",\n \"ug\",\n \"uk\",\n \"unicom\",\n \"university\",\n \"uno\",\n \"uol\",\n \"ups\",\n \"us\",\n \"uy\",\n \"uz\",\n \"va\",\n \"vacations\",\n \"vana\",\n \"vanguard\",\n \"vc\",\n \"ve\",\n \"vegas\",\n \"ventures\",\n \"verisign\",\n \"versicherung\",\n \"vet\",\n \"vg\",\n \"vi\",\n \"viajes\",\n \"video\",\n \"vig\",\n \"viking\",\n \"villas\",\n \"vin\",\n \"vip\",\n \"virgin\",\n \"visa\",\n \"vision\",\n \"vista\",\n \"vistaprint\",\n \"viva\",\n \"vivo\",\n \"vlaanderen\",\n \"vn\",\n \"vodka\",\n \"volkswagen\",\n \"volvo\",\n \"vote\",\n \"voting\",\n \"voto\",\n \"voyage\",\n \"vu\",\n \"vuelos\",\n \"wales\",\n \"walmart\",\n \"walter\",\n \"wang\",\n \"wanggou\",\n \"warman\",\n \"watch\",\n \"watches\",\n \"weather\",\n \"weatherchannel\",\n \"webcam\",\n \"weber\",\n \"website\",\n \"wed\",\n \"wedding\",\n \"weibo\",\n \"weir\",\n \"wf\",\n \"whoswho\",\n \"wien\",\n \"wiki\",\n \"williamhill\",\n \"win\",\n \"windows\",\n \"wine\",\n \"winners\",\n \"wme\",\n \"wolterskluwer\",\n \"woodside\",\n \"work\",\n \"works\",\n \"world\",\n \"wow\",\n \"ws\",\n \"wtc\",\n \"wtf\",\n \"xbox\",\n \"xerox\",\n \"xfinity\",\n \"xihuan\",\n \"xin\",\n \"कॉम\", // xn--11b4c3d\n \"セール\", // xn--1ck2e1b\n \"佛山\", // xn--1qqw23a\n \"ಭಾರತ\", // xn--2scrj9c\n \"慈善\", // xn--30rr7y\n \"集团\", // xn--3bst00m\n \"在线\", // xn--3ds443g\n \"한국\", // xn--3e0b707e\n \"ଭାରତ\", // xn--3hcrj9c\n \"大众汽车\", // xn--3oq18vl8pn36a\n \"点看\", // xn--3pxu8k\n \"คอม\", // xn--42c2d9a\n \"ভাৰত\", // xn--45br5cyl\n \"ভারত\", // xn--45brj9c\n \"八卦\", // xn--45q11c\n \"موقع\", // xn--4gbrim\n \"বাংলা\", // xn--54b7fta0cc\n \"公益\", // xn--55qw42g\n \"公司\", // xn--55qx5d\n \"香格里拉\", // xn--5su34j936bgsg\n \"网站\", // xn--5tzm5g\n \"移动\", // xn--6frz82g\n \"我爱你\", // xn--6qq986b3xl\n \"москва\", // xn--80adxhks\n \"қаз\", // xn--80ao21a\n \"католик\", // xn--80aqecdr1a\n \"онлайн\", // xn--80asehdb\n \"сайт\", // xn--80aswg\n \"联通\", // xn--8y0a063a\n \"срб\", // xn--90a3ac\n \"бг\", // xn--90ae\n \"бел\", // xn--90ais\n \"קום\", // xn--9dbq2a\n \"时尚\", // xn--9et52u\n \"微博\", // xn--9krt00a\n \"淡马锡\", // xn--b4w605ferd\n \"ファッション\", // xn--bck1b9a5dre4c\n \"орг\", // xn--c1avg\n \"नेट\", // xn--c2br7g\n \"ストア\", // xn--cck2b3b\n \"삼성\", // xn--cg4bki\n \"சிங்கப்பூர்\", // xn--clchc0ea0b2g2a9gcd\n \"商标\", // xn--czr694b\n \"商店\", // xn--czrs0t\n \"商城\", // xn--czru2d\n \"дети\", // xn--d1acj3b\n \"мкд\", // xn--d1alf\n \"ею\", // xn--e1a4c\n \"ポイント\", // xn--eckvdtc9d\n \"新闻\", // xn--efvy88h\n \"工行\", // xn--estv75g\n \"家電\", // xn--fct429k\n \"كوم\", // xn--fhbei\n \"中文网\", // xn--fiq228c5hs\n \"中信\", // xn--fiq64b\n \"中国\", // xn--fiqs8s\n \"中國\", // xn--fiqz9s\n \"娱乐\", // xn--fjq720a\n \"谷歌\", // xn--flw351e\n \"భారత్\", // xn--fpcrj9c3d\n \"ලංකා\", // xn--fzc2c9e2c\n \"電訊盈科\", // xn--fzys8d69uvgm\n \"购物\", // xn--g2xx48c\n \"クラウド\", // xn--gckr3f0f\n \"ભારત\", // xn--gecrj9c\n \"通販\", // xn--gk3at1e\n \"भारतम्\", // xn--h2breg3eve\n \"भारत\", // xn--h2brj9c\n \"भारोत\", // xn--h2brj9c8c\n \"网店\", // xn--hxt814e\n \"संगठन\", // xn--i1b6b1a6a2e\n \"餐厅\", // xn--imr513n\n \"网络\", // xn--io0a7i\n \"ком\", // xn--j1aef\n \"укр\", // xn--j1amh\n \"香港\", // xn--j6w193g\n \"诺基亚\", // xn--jlq61u9w7b\n \"食品\", // xn--jvr189m\n \"飞利浦\", // xn--kcrx77d1x4a\n \"台湾\", // xn--kprw13d\n \"台灣\", // xn--kpry57d\n \"手表\", // xn--kpu716f\n \"手机\", // xn--kput3i\n \"мон\", // xn--l1acc\n \"الجزائر\", // xn--lgbbat1ad8j\n \"عمان\", // xn--mgb9awbf\n \"ارامكو\", // xn--mgba3a3ejt\n \"ایران\", // xn--mgba3a4f16a\n \"العليان\", // xn--mgba7c0bbn0a\n \"اتصالات\", // xn--mgbaakc7dvf\n \"امارات\", // xn--mgbaam7a8h\n \"بازار\", // xn--mgbab2bd\n \"پاکستان\", // xn--mgbai9azgqp6j\n \"الاردن\", // xn--mgbayh7gpa\n \"موبايلي\", // xn--mgbb9fbpob\n \"بارت\", // xn--mgbbh1a\n \"بھارت\", // xn--mgbbh1a71e\n \"المغرب\", // xn--mgbc0a9azcg\n \"ابوظبي\", // xn--mgbca7dzdo\n \"السعودية\", // xn--mgberp4a5d4ar\n \"ڀارت\", // xn--mgbgu82a\n \"كاثوليك\", // xn--mgbi4ecexp\n \"سودان\", // xn--mgbpl2fh\n \"همراه\", // xn--mgbt3dhd\n \"عراق\", // xn--mgbtx2b\n \"مليسيا\", // xn--mgbx4cd0ab\n \"澳門\", // xn--mix891f\n \"닷컴\", // xn--mk1bu44c\n \"政府\", // xn--mxtq1m\n \"شبكة\", // xn--ngbc5azd\n \"بيتك\", // xn--ngbe9e0a\n \"عرب\", // xn--ngbrx\n \"გე\", // xn--node\n \"机构\", // xn--nqv7f\n \"组织机构\", // xn--nqv7fs00ema\n \"健康\", // xn--nyqy26a\n \"ไทย\", // xn--o3cw4h\n \"سورية\", // xn--ogbpf8fl\n \"招聘\", // xn--otu796d\n \"рус\", // xn--p1acf\n \"рф\", // xn--p1ai\n \"珠宝\", // xn--pbt977c\n \"تونس\", // xn--pgbs0dh\n \"大拿\", // xn--pssy2u\n \"みんな\", // xn--q9jyb4c\n \"グーグル\", // xn--qcka1pmc\n \"ελ\", // xn--qxam\n \"世界\", // xn--rhqv96g\n \"書籍\", // xn--rovu88b\n \"ഭാരതം\", // xn--rvc1e0am3e\n \"ਭਾਰਤ\", // xn--s9brj9c\n \"网址\", // xn--ses554g\n \"닷넷\", // xn--t60b56a\n \"コム\", // xn--tckwe\n \"天主教\", // xn--tiq49xqyj\n \"游戏\", // xn--unup4y\n \"vermögensberater\", // xn--vermgensberater-ctb\n \"vermögensberatung\", // xn--vermgensberatung-pwb\n \"企业\", // xn--vhquv\n \"信息\", // xn--vuq861b\n \"嘉里大酒店\", // xn--w4r85el8fhu5dnra\n \"嘉里\", // xn--w4rs40l\n \"مصر\", // xn--wgbh1c\n \"قطر\", // xn--wgbl6a\n \"广东\", // xn--xhq521b\n \"இலங்கை\", // xn--xkc2al3hye2a\n \"இந்தியா\", // xn--xkc2dl3a5ee0h\n \"հայ\", // xn--y9a3aq\n \"新加坡\", // xn--yfro4i67o\n \"فلسطين\", // xn--ygbi2ammx\n \"政务\", // xn--zfr164b\n \"xperia\",\n \"xxx\",\n \"xyz\",\n \"yachts\",\n \"yahoo\",\n \"yamaxun\",\n \"yandex\",\n \"ye\",\n \"yodobashi\",\n \"yoga\",\n \"yokohama\",\n \"you\",\n \"youtube\",\n \"yt\",\n \"yun\",\n \"za\",\n \"zappos\",\n \"zara\",\n \"zero\",\n \"zip\",\n \"zippo\",\n \"zm\",\n \"zone\",\n \"zuerich\",\n \"zw\"\n];\n","module.exports = require(\"electron\");","var fs = require('./fs.js')\nvar constants = require('constants')\n\nvar origCwd = process.cwd\nvar cwd = null\n\nvar platform = process.env.GRACEFUL_FS_PLATFORM || process.platform\n\nprocess.cwd = function() {\n if (!cwd)\n cwd = origCwd.call(process)\n return cwd\n}\ntry {\n process.cwd()\n} catch (er) {}\n\nvar chdir = process.chdir\nprocess.chdir = function(d) {\n cwd = null\n chdir.call(process, d)\n}\n\nmodule.exports = patch\n\nfunction patch (fs) {\n // (re-)implement some things that are known busted or missing.\n\n // lchmod, broken prior to 0.6.2\n // back-port the fix here.\n if (constants.hasOwnProperty('O_SYMLINK') &&\n process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)) {\n patchLchmod(fs)\n }\n\n // lutimes implementation, or no-op\n if (!fs.lutimes) {\n patchLutimes(fs)\n }\n\n // https://github.com/isaacs/node-graceful-fs/issues/4\n // Chown should not fail on einval or eperm if non-root.\n // It should not fail on enosys ever, as this just indicates\n // that a fs doesn't support the intended operation.\n\n fs.chown = chownFix(fs.chown)\n fs.fchown = chownFix(fs.fchown)\n fs.lchown = chownFix(fs.lchown)\n\n fs.chmod = chmodFix(fs.chmod)\n fs.fchmod = chmodFix(fs.fchmod)\n fs.lchmod = chmodFix(fs.lchmod)\n\n fs.chownSync = chownFixSync(fs.chownSync)\n fs.fchownSync = chownFixSync(fs.fchownSync)\n fs.lchownSync = chownFixSync(fs.lchownSync)\n\n fs.chmodSync = chmodFixSync(fs.chmodSync)\n fs.fchmodSync = chmodFixSync(fs.fchmodSync)\n fs.lchmodSync = chmodFixSync(fs.lchmodSync)\n\n fs.stat = statFix(fs.stat)\n fs.fstat = statFix(fs.fstat)\n fs.lstat = statFix(fs.lstat)\n\n fs.statSync = statFixSync(fs.statSync)\n fs.fstatSync = statFixSync(fs.fstatSync)\n fs.lstatSync = statFixSync(fs.lstatSync)\n\n // if lchmod/lchown do not exist, then make them no-ops\n if (!fs.lchmod) {\n fs.lchmod = function (path, mode, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchmodSync = function () {}\n }\n if (!fs.lchown) {\n fs.lchown = function (path, uid, gid, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchownSync = function () {}\n }\n\n // on Windows, A/V software can lock the directory, causing this\n // to fail with an EACCES or EPERM if the directory contains newly\n // created files. Try again on failure, for up to 60 seconds.\n\n // Set the timeout this long because some Windows Anti-Virus, such as Parity\n // bit9, may lock files for up to a minute, causing npm package install\n // failures. Also, take care to yield the scheduler. Windows scheduling gives\n // CPU to a busy looping process, which can cause the program causing the lock\n // contention to be starved of CPU by node, so the contention doesn't resolve.\n if (platform === \"win32\") {\n fs.rename = (function (fs$rename) { return function (from, to, cb) {\n var start = Date.now()\n var backoff = 0;\n fs$rename(from, to, function CB (er) {\n if (er\n && (er.code === \"EACCES\" || er.code === \"EPERM\")\n && Date.now() - start < 60000) {\n setTimeout(function() {\n fs.stat(to, function (stater, st) {\n if (stater && stater.code === \"ENOENT\")\n fs$rename(from, to, CB);\n else\n cb(er)\n })\n }, backoff)\n if (backoff < 100)\n backoff += 10;\n return;\n }\n if (cb) cb(er)\n })\n }})(fs.rename)\n }\n\n // if read() returns EAGAIN, then just try it again.\n fs.read = (function (fs$read) { return function (fd, buffer, offset, length, position, callback_) {\n var callback\n if (callback_ && typeof callback_ === 'function') {\n var eagCounter = 0\n callback = function (er, _, __) {\n if (er && er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n callback_.apply(this, arguments)\n }\n }\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }})(fs.read)\n\n fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) {\n var eagCounter = 0\n while (true) {\n try {\n return fs$readSync.call(fs, fd, buffer, offset, length, position)\n } catch (er) {\n if (er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n continue\n }\n throw er\n }\n }\n }})(fs.readSync)\n}\n\nfunction patchLchmod (fs) {\n fs.lchmod = function (path, mode, callback) {\n fs.open( path\n , constants.O_WRONLY | constants.O_SYMLINK\n , mode\n , function (err, fd) {\n if (err) {\n if (callback) callback(err)\n return\n }\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n fs.fchmod(fd, mode, function (err) {\n fs.close(fd, function(err2) {\n if (callback) callback(err || err2)\n })\n })\n })\n }\n\n fs.lchmodSync = function (path, mode) {\n var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)\n\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n var threw = true\n var ret\n try {\n ret = fs.fchmodSync(fd, mode)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n}\n\nfunction patchLutimes (fs) {\n if (constants.hasOwnProperty(\"O_SYMLINK\")) {\n fs.lutimes = function (path, at, mt, cb) {\n fs.open(path, constants.O_SYMLINK, function (er, fd) {\n if (er) {\n if (cb) cb(er)\n return\n }\n fs.futimes(fd, at, mt, function (er) {\n fs.close(fd, function (er2) {\n if (cb) cb(er || er2)\n })\n })\n })\n }\n\n fs.lutimesSync = function (path, at, mt) {\n var fd = fs.openSync(path, constants.O_SYMLINK)\n var ret\n var threw = true\n try {\n ret = fs.futimesSync(fd, at, mt)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n\n } else {\n fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }\n fs.lutimesSync = function () {}\n }\n}\n\nfunction chmodFix (orig) {\n if (!orig) return orig\n return function (target, mode, cb) {\n return orig.call(fs, target, mode, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n}\n\nfunction chmodFixSync (orig) {\n if (!orig) return orig\n return function (target, mode) {\n try {\n return orig.call(fs, target, mode)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n}\n\n\nfunction chownFix (orig) {\n if (!orig) return orig\n return function (target, uid, gid, cb) {\n return orig.call(fs, target, uid, gid, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n}\n\nfunction chownFixSync (orig) {\n if (!orig) return orig\n return function (target, uid, gid) {\n try {\n return orig.call(fs, target, uid, gid)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n}\n\n\nfunction statFix (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, cb) {\n return orig.call(fs, target, function (er, stats) {\n if (!stats) return cb.apply(this, arguments)\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n if (cb) cb.apply(this, arguments)\n })\n }\n}\n\nfunction statFixSync (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target) {\n var stats = orig.call(fs, target)\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n return stats;\n }\n}\n\n// ENOSYS means that the fs doesn't support the op. Just ignore\n// that, because it doesn't matter.\n//\n// if there's no getuid, or if getuid() is something other\n// than 0, and the error is EINVAL or EPERM, then just ignore\n// it.\n//\n// This specific case is a silent failure in cp, install, tar,\n// and most other unix tools that manage permissions.\n//\n// When running as root, or if other types of errors are\n// encountered, then it's strict.\nfunction chownErOk (er) {\n if (!er)\n return true\n\n if (er.code === \"ENOSYS\")\n return true\n\n var nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (er.code === \"EINVAL\" || er.code === \"EPERM\")\n return true\n }\n\n return false\n}\n","module.exports = require(\"constants\");","var Stream = require('stream').Stream\n\nmodule.exports = legacy\n\nfunction legacy (fs) {\n return {\n ReadStream: ReadStream,\n WriteStream: WriteStream\n }\n\n function ReadStream (path, options) {\n if (!(this instanceof ReadStream)) return new ReadStream(path, options);\n\n Stream.call(this);\n\n var self = this;\n\n this.path = path;\n this.fd = null;\n this.readable = true;\n this.paused = false;\n\n this.flags = 'r';\n this.mode = 438; /*=0666*/\n this.bufferSize = 64 * 1024;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.encoding) this.setEncoding(this.encoding);\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.end === undefined) {\n this.end = Infinity;\n } else if ('number' !== typeof this.end) {\n throw TypeError('end must be a Number');\n }\n\n if (this.start > this.end) {\n throw new Error('start must be <= end');\n }\n\n this.pos = this.start;\n }\n\n if (this.fd !== null) {\n process.nextTick(function() {\n self._read();\n });\n return;\n }\n\n fs.open(this.path, this.flags, this.mode, function (err, fd) {\n if (err) {\n self.emit('error', err);\n self.readable = false;\n return;\n }\n\n self.fd = fd;\n self.emit('open', fd);\n self._read();\n })\n }\n\n function WriteStream (path, options) {\n if (!(this instanceof WriteStream)) return new WriteStream(path, options);\n\n Stream.call(this);\n\n this.path = path;\n this.fd = null;\n this.writable = true;\n\n this.flags = 'w';\n this.encoding = 'binary';\n this.mode = 438; /*=0666*/\n this.bytesWritten = 0;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.start < 0) {\n throw new Error('start must be >= zero');\n }\n\n this.pos = this.start;\n }\n\n this.busy = false;\n this._queue = [];\n\n if (this.fd === null) {\n this._open = fs.open;\n this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);\n this.flush();\n }\n }\n}\n","module.exports = require(\"stream\");","module.exports = require(\"util\");","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdirpSync = require('../mkdirs').mkdirsSync\nconst utimesSync = require('../util/utimes.js').utimesMillisSync\n\nconst notExist = Symbol('notExist')\n\nfunction copySync (src, dest, opts) {\n if (typeof opts === 'function') {\n opts = {filter: opts}\n }\n\n opts = opts || {}\n opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now\n opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber\n\n // Warn about using preserveTimestamps on 32-bit node\n if (opts.preserveTimestamps && process.arch === 'ia32') {\n console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\\n\n see https://github.com/jprichardson/node-fs-extra/issues/269`)\n }\n\n const destStat = checkPaths(src, dest)\n\n if (opts.filter && !opts.filter(src, dest)) return\n\n const destParent = path.dirname(dest)\n if (!fs.existsSync(destParent)) mkdirpSync(destParent)\n return startCopy(destStat, src, dest, opts)\n}\n\nfunction startCopy (destStat, src, dest, opts) {\n if (opts.filter && !opts.filter(src, dest)) return\n return getStats(destStat, src, dest, opts)\n}\n\nfunction getStats (destStat, src, dest, opts) {\n const statSync = opts.dereference ? fs.statSync : fs.lstatSync\n const srcStat = statSync(src)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)\n else if (srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts)\n else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)\n}\n\nfunction onFile (srcStat, destStat, src, dest, opts) {\n if (destStat === notExist) return copyFile(srcStat, src, dest, opts)\n return mayCopyFile(srcStat, src, dest, opts)\n}\n\nfunction mayCopyFile (srcStat, src, dest, opts) {\n if (opts.overwrite) {\n fs.unlinkSync(dest)\n return copyFile(srcStat, src, dest, opts)\n } else if (opts.errorOnExist) {\n throw new Error(`'${dest}' already exists`)\n }\n}\n\nfunction copyFile (srcStat, src, dest, opts) {\n if (typeof fs.copyFileSync === 'function') {\n fs.copyFileSync(src, dest)\n fs.chmodSync(dest, srcStat.mode)\n if (opts.preserveTimestamps) {\n return utimesSync(dest, srcStat.atime, srcStat.mtime)\n }\n return\n }\n return copyFileFallback(srcStat, src, dest, opts)\n}\n\nfunction copyFileFallback (srcStat, src, dest, opts) {\n const BUF_LENGTH = 64 * 1024\n const _buff = require('../util/buffer')(BUF_LENGTH)\n\n const fdr = fs.openSync(src, 'r')\n const fdw = fs.openSync(dest, 'w', srcStat.mode)\n let pos = 0\n\n while (pos < srcStat.size) {\n const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)\n fs.writeSync(fdw, _buff, 0, bytesRead)\n pos += bytesRead\n }\n\n if (opts.preserveTimestamps) fs.futimesSync(fdw, srcStat.atime, srcStat.mtime)\n\n fs.closeSync(fdr)\n fs.closeSync(fdw)\n}\n\nfunction onDir (srcStat, destStat, src, dest, opts) {\n if (destStat === notExist) return mkDirAndCopy(srcStat, src, dest, opts)\n if (destStat && !destStat.isDirectory()) {\n throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)\n }\n return copyDir(src, dest, opts)\n}\n\nfunction mkDirAndCopy (srcStat, src, dest, opts) {\n fs.mkdirSync(dest)\n copyDir(src, dest, opts)\n return fs.chmodSync(dest, srcStat.mode)\n}\n\nfunction copyDir (src, dest, opts) {\n fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts))\n}\n\nfunction copyDirItem (item, src, dest, opts) {\n const srcItem = path.join(src, item)\n const destItem = path.join(dest, item)\n const destStat = checkPaths(srcItem, destItem)\n return startCopy(destStat, srcItem, destItem, opts)\n}\n\nfunction onLink (destStat, src, dest, opts) {\n let resolvedSrc = fs.readlinkSync(src)\n\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n\n if (destStat === notExist) {\n return fs.symlinkSync(resolvedSrc, dest)\n } else {\n let resolvedDest\n try {\n resolvedDest = fs.readlinkSync(dest)\n } catch (err) {\n // dest exists and is a regular file or directory,\n // Windows may throw UNKNOWN error. If dest already exists,\n // fs throws error anyway, so no need to guard against it here.\n if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest)\n throw err\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n if (isSrcSubdir(resolvedSrc, resolvedDest)) {\n throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)\n }\n\n // prevent copy if src is a subdir of dest since unlinking\n // dest in this case would result in removing src contents\n // and therefore a broken symlink would be created.\n if (fs.statSync(dest).isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {\n throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)\n }\n return copyLink(resolvedSrc, dest)\n }\n}\n\nfunction copyLink (resolvedSrc, dest) {\n fs.unlinkSync(dest)\n return fs.symlinkSync(resolvedSrc, dest)\n}\n\n// return true if dest is a subdir of src, otherwise false.\nfunction isSrcSubdir (src, dest) {\n const srcArray = path.resolve(src).split(path.sep)\n const destArray = path.resolve(dest).split(path.sep)\n return srcArray.reduce((acc, current, i) => acc && destArray[i] === current, true)\n}\n\nfunction checkStats (src, dest) {\n const srcStat = fs.statSync(src)\n let destStat\n try {\n destStat = fs.statSync(dest)\n } catch (err) {\n if (err.code === 'ENOENT') return {srcStat, destStat: notExist}\n throw err\n }\n return {srcStat, destStat}\n}\n\nfunction checkPaths (src, dest) {\n const {srcStat, destStat} = checkStats(src, dest)\n if (destStat.ino && destStat.ino === srcStat.ino) {\n throw new Error('Source and destination must not be the same.')\n }\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n throw new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`)\n }\n return destStat\n}\n\nmodule.exports = copySync\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst invalidWin32Path = require('./win32').invalidWin32Path\n\nconst o777 = parseInt('0777', 8)\n\nfunction mkdirs (p, opts, callback, made) {\n if (typeof opts === 'function') {\n callback = opts\n opts = {}\n } else if (!opts || typeof opts !== 'object') {\n opts = { mode: opts }\n }\n\n if (process.platform === 'win32' && invalidWin32Path(p)) {\n const errInval = new Error(p + ' contains invalid WIN32 path characters.')\n errInval.code = 'EINVAL'\n return callback(errInval)\n }\n\n let mode = opts.mode\n const xfs = opts.fs || fs\n\n if (mode === undefined) {\n mode = o777 & (~process.umask())\n }\n if (!made) made = null\n\n callback = callback || function () {}\n p = path.resolve(p)\n\n xfs.mkdir(p, mode, er => {\n if (!er) {\n made = made || p\n return callback(null, made)\n }\n switch (er.code) {\n case 'ENOENT':\n if (path.dirname(p) === p) return callback(er)\n mkdirs(path.dirname(p), opts, (er, made) => {\n if (er) callback(er, made)\n else mkdirs(p, opts, callback, made)\n })\n break\n\n // In the case of any other error, just see if there's a dir\n // there already. If so, then hooray! If not, then something\n // is borked.\n default:\n xfs.stat(p, (er2, stat) => {\n // if the stat fails, then that's super weird.\n // let the original error be the failure reason.\n if (er2 || !stat.isDirectory()) callback(er, made)\n else callback(null, made)\n })\n break\n }\n })\n}\n\nmodule.exports = mkdirs\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst invalidWin32Path = require('./win32').invalidWin32Path\n\nconst o777 = parseInt('0777', 8)\n\nfunction mkdirsSync (p, opts, made) {\n if (!opts || typeof opts !== 'object') {\n opts = { mode: opts }\n }\n\n let mode = opts.mode\n const xfs = opts.fs || fs\n\n if (process.platform === 'win32' && invalidWin32Path(p)) {\n const errInval = new Error(p + ' contains invalid WIN32 path characters.')\n errInval.code = 'EINVAL'\n throw errInval\n }\n\n if (mode === undefined) {\n mode = o777 & (~process.umask())\n }\n if (!made) made = null\n\n p = path.resolve(p)\n\n try {\n xfs.mkdirSync(p, mode)\n made = made || p\n } catch (err0) {\n if (err0.code === 'ENOENT') {\n if (path.dirname(p) === p) throw err0\n made = mkdirsSync(path.dirname(p), opts, made)\n mkdirsSync(p, opts, made)\n } else {\n // In the case of any other error, just see if there's a dir there\n // already. If so, then hooray! If not, then something is borked.\n let stat\n try {\n stat = xfs.statSync(p)\n } catch (err1) {\n throw err0\n }\n if (!stat.isDirectory()) throw err0\n }\n }\n\n return made\n}\n\nmodule.exports = mkdirsSync\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdirp = require('../mkdirs').mkdirs\nconst pathExists = require('../path-exists').pathExists\nconst utimes = require('../util/utimes').utimesMillis\n\nconst notExist = Symbol('notExist')\n\nfunction copy (src, dest, opts, cb) {\n if (typeof opts === 'function' && !cb) {\n cb = opts\n opts = {}\n } else if (typeof opts === 'function') {\n opts = {filter: opts}\n }\n\n cb = cb || function () {}\n opts = opts || {}\n\n opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now\n opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber\n\n // Warn about using preserveTimestamps on 32-bit node\n if (opts.preserveTimestamps && process.arch === 'ia32') {\n console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\\n\n see https://github.com/jprichardson/node-fs-extra/issues/269`)\n }\n\n checkPaths(src, dest, (err, destStat) => {\n if (err) return cb(err)\n if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb)\n return checkParentDir(destStat, src, dest, opts, cb)\n })\n}\n\nfunction checkParentDir (destStat, src, dest, opts, cb) {\n const destParent = path.dirname(dest)\n pathExists(destParent, (err, dirExists) => {\n if (err) return cb(err)\n if (dirExists) return startCopy(destStat, src, dest, opts, cb)\n mkdirp(destParent, err => {\n if (err) return cb(err)\n return startCopy(destStat, src, dest, opts, cb)\n })\n })\n}\n\nfunction handleFilter (onInclude, destStat, src, dest, opts, cb) {\n Promise.resolve(opts.filter(src, dest)).then(include => {\n if (include) {\n if (destStat) return onInclude(destStat, src, dest, opts, cb)\n return onInclude(src, dest, opts, cb)\n }\n return cb()\n }, error => cb(error))\n}\n\nfunction startCopy (destStat, src, dest, opts, cb) {\n if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb)\n return getStats(destStat, src, dest, opts, cb)\n}\n\nfunction getStats (destStat, src, dest, opts, cb) {\n const stat = opts.dereference ? fs.stat : fs.lstat\n stat(src, (err, srcStat) => {\n if (err) return cb(err)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb)\n else if (srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb)\n else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb)\n })\n}\n\nfunction onFile (srcStat, destStat, src, dest, opts, cb) {\n if (destStat === notExist) return copyFile(srcStat, src, dest, opts, cb)\n return mayCopyFile(srcStat, src, dest, opts, cb)\n}\n\nfunction mayCopyFile (srcStat, src, dest, opts, cb) {\n if (opts.overwrite) {\n fs.unlink(dest, err => {\n if (err) return cb(err)\n return copyFile(srcStat, src, dest, opts, cb)\n })\n } else if (opts.errorOnExist) {\n return cb(new Error(`'${dest}' already exists`))\n } else return cb()\n}\n\nfunction copyFile (srcStat, src, dest, opts, cb) {\n if (typeof fs.copyFile === 'function') {\n return fs.copyFile(src, dest, err => {\n if (err) return cb(err)\n return setDestModeAndTimestamps(srcStat, dest, opts, cb)\n })\n }\n return copyFileFallback(srcStat, src, dest, opts, cb)\n}\n\nfunction copyFileFallback (srcStat, src, dest, opts, cb) {\n const rs = fs.createReadStream(src)\n rs.on('error', err => cb(err)).once('open', () => {\n const ws = fs.createWriteStream(dest, { mode: srcStat.mode })\n ws.on('error', err => cb(err))\n .on('open', () => rs.pipe(ws))\n .once('close', () => setDestModeAndTimestamps(srcStat, dest, opts, cb))\n })\n}\n\nfunction setDestModeAndTimestamps (srcStat, dest, opts, cb) {\n fs.chmod(dest, srcStat.mode, err => {\n if (err) return cb(err)\n if (opts.preserveTimestamps) {\n return utimes(dest, srcStat.atime, srcStat.mtime, cb)\n }\n return cb()\n })\n}\n\nfunction onDir (srcStat, destStat, src, dest, opts, cb) {\n if (destStat === notExist) return mkDirAndCopy(srcStat, src, dest, opts, cb)\n if (destStat && !destStat.isDirectory()) {\n return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))\n }\n return copyDir(src, dest, opts, cb)\n}\n\nfunction mkDirAndCopy (srcStat, src, dest, opts, cb) {\n fs.mkdir(dest, err => {\n if (err) return cb(err)\n copyDir(src, dest, opts, err => {\n if (err) return cb(err)\n return fs.chmod(dest, srcStat.mode, cb)\n })\n })\n}\n\nfunction copyDir (src, dest, opts, cb) {\n fs.readdir(src, (err, items) => {\n if (err) return cb(err)\n return copyDirItems(items, src, dest, opts, cb)\n })\n}\n\nfunction copyDirItems (items, src, dest, opts, cb) {\n const item = items.pop()\n if (!item) return cb()\n return copyDirItem(items, item, src, dest, opts, cb)\n}\n\nfunction copyDirItem (items, item, src, dest, opts, cb) {\n const srcItem = path.join(src, item)\n const destItem = path.join(dest, item)\n checkPaths(srcItem, destItem, (err, destStat) => {\n if (err) return cb(err)\n startCopy(destStat, srcItem, destItem, opts, err => {\n if (err) return cb(err)\n return copyDirItems(items, src, dest, opts, cb)\n })\n })\n}\n\nfunction onLink (destStat, src, dest, opts, cb) {\n fs.readlink(src, (err, resolvedSrc) => {\n if (err) return cb(err)\n\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n\n if (destStat === notExist) {\n return fs.symlink(resolvedSrc, dest, cb)\n } else {\n fs.readlink(dest, (err, resolvedDest) => {\n if (err) {\n // dest exists and is a regular file or directory,\n // Windows may throw UNKNOWN error. If dest already exists,\n // fs throws error anyway, so no need to guard against it here.\n if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest, cb)\n return cb(err)\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n if (isSrcSubdir(resolvedSrc, resolvedDest)) {\n return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`))\n }\n\n // do not copy if src is a subdir of dest since unlinking\n // dest in this case would result in removing src contents\n // and therefore a broken symlink would be created.\n if (destStat.isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {\n return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))\n }\n return copyLink(resolvedSrc, dest, cb)\n })\n }\n })\n}\n\nfunction copyLink (resolvedSrc, dest, cb) {\n fs.unlink(dest, err => {\n if (err) return cb(err)\n return fs.symlink(resolvedSrc, dest, cb)\n })\n}\n\n// return true if dest is a subdir of src, otherwise false.\nfunction isSrcSubdir (src, dest) {\n const srcArray = path.resolve(src).split(path.sep)\n const destArray = path.resolve(dest).split(path.sep)\n return srcArray.reduce((acc, current, i) => acc && destArray[i] === current, true)\n}\n\nfunction checkStats (src, dest, cb) {\n fs.stat(src, (err, srcStat) => {\n if (err) return cb(err)\n fs.stat(dest, (err, destStat) => {\n if (err) {\n if (err.code === 'ENOENT') return cb(null, {srcStat, destStat: notExist})\n return cb(err)\n }\n return cb(null, {srcStat, destStat})\n })\n })\n}\n\nfunction checkPaths (src, dest, cb) {\n checkStats(src, dest, (err, stats) => {\n if (err) return cb(err)\n const {srcStat, destStat} = stats\n if (destStat.ino && destStat.ino === srcStat.ino) {\n return cb(new Error('Source and destination must not be the same.'))\n }\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n return cb(new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`))\n }\n return cb(null, destStat)\n })\n}\n\nmodule.exports = copy\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst fs = require('fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst remove = require('../remove')\n\nconst emptyDir = u(function emptyDir (dir, callback) {\n callback = callback || function () {}\n fs.readdir(dir, (err, items) => {\n if (err) return mkdir.mkdirs(dir, callback)\n\n items = items.map(item => path.join(dir, item))\n\n deleteItem()\n\n function deleteItem () {\n const item = items.pop()\n if (!item) return callback()\n remove.remove(item, err => {\n if (err) return callback(err)\n deleteItem()\n })\n }\n })\n})\n\nfunction emptyDirSync (dir) {\n let items\n try {\n items = fs.readdirSync(dir)\n } catch (err) {\n return mkdir.mkdirsSync(dir)\n }\n\n items.forEach(item => {\n item = path.join(dir, item)\n remove.removeSync(item)\n })\n}\n\nmodule.exports = {\n emptyDirSync,\n emptydirSync: emptyDirSync,\n emptyDir,\n emptydir: emptyDir\n}\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst assert = require('assert')\n\nconst isWindows = (process.platform === 'win32')\n\nfunction defaults (options) {\n const methods = [\n 'unlink',\n 'chmod',\n 'stat',\n 'lstat',\n 'rmdir',\n 'readdir'\n ]\n methods.forEach(m => {\n options[m] = options[m] || fs[m]\n m = m + 'Sync'\n options[m] = options[m] || fs[m]\n })\n\n options.maxBusyTries = options.maxBusyTries || 3\n}\n\nfunction rimraf (p, options, cb) {\n let busyTries = 0\n\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n assert(p, 'rimraf: missing path')\n assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')\n assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required')\n assert(options, 'rimraf: invalid options argument provided')\n assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')\n\n defaults(options)\n\n rimraf_(p, options, function CB (er) {\n if (er) {\n if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') &&\n busyTries < options.maxBusyTries) {\n busyTries++\n const time = busyTries * 100\n // try again, with the same exact callback as this one.\n return setTimeout(() => rimraf_(p, options, CB), time)\n }\n\n // already gone\n if (er.code === 'ENOENT') er = null\n }\n\n cb(er)\n })\n}\n\n// Two possible strategies.\n// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR\n// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR\n//\n// Both result in an extra syscall when you guess wrong. However, there\n// are likely far more normal files in the world than directories. This\n// is based on the assumption that a the average number of files per\n// directory is >= 1.\n//\n// If anyone ever complains about this, then I guess the strategy could\n// be made configurable somehow. But until then, YAGNI.\nfunction rimraf_ (p, options, cb) {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n // sunos lets the root user unlink directories, which is... weird.\n // so we have to lstat here and make sure it's not a dir.\n options.lstat(p, (er, st) => {\n if (er && er.code === 'ENOENT') {\n return cb(null)\n }\n\n // Windows can EPERM on stat. Life is suffering.\n if (er && er.code === 'EPERM' && isWindows) {\n return fixWinEPERM(p, options, er, cb)\n }\n\n if (st && st.isDirectory()) {\n return rmdir(p, options, er, cb)\n }\n\n options.unlink(p, er => {\n if (er) {\n if (er.code === 'ENOENT') {\n return cb(null)\n }\n if (er.code === 'EPERM') {\n return (isWindows)\n ? fixWinEPERM(p, options, er, cb)\n : rmdir(p, options, er, cb)\n }\n if (er.code === 'EISDIR') {\n return rmdir(p, options, er, cb)\n }\n }\n return cb(er)\n })\n })\n}\n\nfunction fixWinEPERM (p, options, er, cb) {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n if (er) {\n assert(er instanceof Error)\n }\n\n options.chmod(p, 0o666, er2 => {\n if (er2) {\n cb(er2.code === 'ENOENT' ? null : er)\n } else {\n options.stat(p, (er3, stats) => {\n if (er3) {\n cb(er3.code === 'ENOENT' ? null : er)\n } else if (stats.isDirectory()) {\n rmdir(p, options, er, cb)\n } else {\n options.unlink(p, cb)\n }\n })\n }\n })\n}\n\nfunction fixWinEPERMSync (p, options, er) {\n let stats\n\n assert(p)\n assert(options)\n if (er) {\n assert(er instanceof Error)\n }\n\n try {\n options.chmodSync(p, 0o666)\n } catch (er2) {\n if (er2.code === 'ENOENT') {\n return\n } else {\n throw er\n }\n }\n\n try {\n stats = options.statSync(p)\n } catch (er3) {\n if (er3.code === 'ENOENT') {\n return\n } else {\n throw er\n }\n }\n\n if (stats.isDirectory()) {\n rmdirSync(p, options, er)\n } else {\n options.unlinkSync(p)\n }\n}\n\nfunction rmdir (p, options, originalEr, cb) {\n assert(p)\n assert(options)\n if (originalEr) {\n assert(originalEr instanceof Error)\n }\n assert(typeof cb === 'function')\n\n // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)\n // if we guessed wrong, and it's not a directory, then\n // raise the original error.\n options.rmdir(p, er => {\n if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) {\n rmkids(p, options, cb)\n } else if (er && er.code === 'ENOTDIR') {\n cb(originalEr)\n } else {\n cb(er)\n }\n })\n}\n\nfunction rmkids (p, options, cb) {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n options.readdir(p, (er, files) => {\n if (er) return cb(er)\n\n let n = files.length\n let errState\n\n if (n === 0) return options.rmdir(p, cb)\n\n files.forEach(f => {\n rimraf(path.join(p, f), options, er => {\n if (errState) {\n return\n }\n if (er) return cb(errState = er)\n if (--n === 0) {\n options.rmdir(p, cb)\n }\n })\n })\n })\n}\n\n// this looks simpler, and is strictly *faster*, but will\n// tie up the JavaScript thread and fail on excessively\n// deep directory trees.\nfunction rimrafSync (p, options) {\n let st\n\n options = options || {}\n defaults(options)\n\n assert(p, 'rimraf: missing path')\n assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')\n assert(options, 'rimraf: missing options')\n assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')\n\n try {\n st = options.lstatSync(p)\n } catch (er) {\n if (er.code === 'ENOENT') {\n return\n }\n\n // Windows can EPERM on stat. Life is suffering.\n if (er.code === 'EPERM' && isWindows) {\n fixWinEPERMSync(p, options, er)\n }\n }\n\n try {\n // sunos lets the root user unlink directories, which is... weird.\n if (st && st.isDirectory()) {\n rmdirSync(p, options, null)\n } else {\n options.unlinkSync(p)\n }\n } catch (er) {\n if (er.code === 'ENOENT') {\n return\n } else if (er.code === 'EPERM') {\n return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)\n } else if (er.code !== 'EISDIR') {\n throw er\n }\n rmdirSync(p, options, er)\n }\n}\n\nfunction rmdirSync (p, options, originalEr) {\n assert(p)\n assert(options)\n if (originalEr) {\n assert(originalEr instanceof Error)\n }\n\n try {\n options.rmdirSync(p)\n } catch (er) {\n if (er.code === 'ENOTDIR') {\n throw originalEr\n } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') {\n rmkidsSync(p, options)\n } else if (er.code !== 'ENOENT') {\n throw er\n }\n }\n}\n\nfunction rmkidsSync (p, options) {\n assert(p)\n assert(options)\n options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))\n\n // We only end up here once we got ENOTEMPTY at least once, and\n // at this point, we are guaranteed to have removed all the kids.\n // So, we know that it won't be ENOENT or ENOTDIR or anything else.\n // try really hard to delete stuff on windows, because it has a\n // PROFOUNDLY annoying habit of not closing handles promptly when\n // files are deleted, resulting in spurious ENOTEMPTY errors.\n const retries = isWindows ? 100 : 1\n let i = 0\n do {\n let threw = true\n try {\n const ret = options.rmdirSync(p, options)\n threw = false\n return ret\n } finally {\n if (++i < retries && threw) continue // eslint-disable-line\n }\n } while (true)\n}\n\nmodule.exports = rimraf\nrimraf.sync = rimrafSync\n","'use strict'\n\nconst file = require('./file')\nconst link = require('./link')\nconst symlink = require('./symlink')\n\nmodule.exports = {\n // file\n createFile: file.createFile,\n createFileSync: file.createFileSync,\n ensureFile: file.createFile,\n ensureFileSync: file.createFileSync,\n // link\n createLink: link.createLink,\n createLinkSync: link.createLinkSync,\n ensureLink: link.createLink,\n ensureLinkSync: link.createLinkSync,\n // symlink\n createSymlink: symlink.createSymlink,\n createSymlinkSync: symlink.createSymlinkSync,\n ensureSymlink: symlink.createSymlink,\n ensureSymlinkSync: symlink.createSymlinkSync\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nfunction createFile (file, callback) {\n function makeFile () {\n fs.writeFile(file, '', err => {\n if (err) return callback(err)\n callback()\n })\n }\n\n fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err\n if (!err && stats.isFile()) return callback()\n const dir = path.dirname(file)\n pathExists(dir, (err, dirExists) => {\n if (err) return callback(err)\n if (dirExists) return makeFile()\n mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n makeFile()\n })\n })\n })\n}\n\nfunction createFileSync (file) {\n let stats\n try {\n stats = fs.statSync(file)\n } catch (e) {}\n if (stats && stats.isFile()) return\n\n const dir = path.dirname(file)\n if (!fs.existsSync(dir)) {\n mkdir.mkdirsSync(dir)\n }\n\n fs.writeFileSync(file, '')\n}\n\nmodule.exports = {\n createFile: u(createFile),\n createFileSync\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nfunction createLink (srcpath, dstpath, callback) {\n function makeLink (srcpath, dstpath) {\n fs.link(srcpath, dstpath, err => {\n if (err) return callback(err)\n callback(null)\n })\n }\n\n pathExists(dstpath, (err, destinationExists) => {\n if (err) return callback(err)\n if (destinationExists) return callback(null)\n fs.lstat(srcpath, (err) => {\n if (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n return callback(err)\n }\n\n const dir = path.dirname(dstpath)\n pathExists(dir, (err, dirExists) => {\n if (err) return callback(err)\n if (dirExists) return makeLink(srcpath, dstpath)\n mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n makeLink(srcpath, dstpath)\n })\n })\n })\n })\n}\n\nfunction createLinkSync (srcpath, dstpath) {\n const destinationExists = fs.existsSync(dstpath)\n if (destinationExists) return undefined\n\n try {\n fs.lstatSync(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n throw err\n }\n\n const dir = path.dirname(dstpath)\n const dirExists = fs.existsSync(dir)\n if (dirExists) return fs.linkSync(srcpath, dstpath)\n mkdir.mkdirsSync(dir)\n\n return fs.linkSync(srcpath, dstpath)\n}\n\nmodule.exports = {\n createLink: u(createLink),\n createLinkSync\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst _mkdirs = require('../mkdirs')\nconst mkdirs = _mkdirs.mkdirs\nconst mkdirsSync = _mkdirs.mkdirsSync\n\nconst _symlinkPaths = require('./symlink-paths')\nconst symlinkPaths = _symlinkPaths.symlinkPaths\nconst symlinkPathsSync = _symlinkPaths.symlinkPathsSync\n\nconst _symlinkType = require('./symlink-type')\nconst symlinkType = _symlinkType.symlinkType\nconst symlinkTypeSync = _symlinkType.symlinkTypeSync\n\nconst pathExists = require('../path-exists').pathExists\n\nfunction createSymlink (srcpath, dstpath, type, callback) {\n callback = (typeof type === 'function') ? type : callback\n type = (typeof type === 'function') ? false : type\n\n pathExists(dstpath, (err, destinationExists) => {\n if (err) return callback(err)\n if (destinationExists) return callback(null)\n symlinkPaths(srcpath, dstpath, (err, relative) => {\n if (err) return callback(err)\n srcpath = relative.toDst\n symlinkType(relative.toCwd, type, (err, type) => {\n if (err) return callback(err)\n const dir = path.dirname(dstpath)\n pathExists(dir, (err, dirExists) => {\n if (err) return callback(err)\n if (dirExists) return fs.symlink(srcpath, dstpath, type, callback)\n mkdirs(dir, err => {\n if (err) return callback(err)\n fs.symlink(srcpath, dstpath, type, callback)\n })\n })\n })\n })\n })\n}\n\nfunction createSymlinkSync (srcpath, dstpath, type) {\n const destinationExists = fs.existsSync(dstpath)\n if (destinationExists) return undefined\n\n const relative = symlinkPathsSync(srcpath, dstpath)\n srcpath = relative.toDst\n type = symlinkTypeSync(relative.toCwd, type)\n const dir = path.dirname(dstpath)\n const exists = fs.existsSync(dir)\n if (exists) return fs.symlinkSync(srcpath, dstpath, type)\n mkdirsSync(dir)\n return fs.symlinkSync(srcpath, dstpath, type)\n}\n\nmodule.exports = {\n createSymlink: u(createSymlink),\n createSymlinkSync\n}\n","'use strict'\n\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst pathExists = require('../path-exists').pathExists\n\n/**\n * Function that returns two types of paths, one relative to symlink, and one\n * relative to the current working directory. Checks if path is absolute or\n * relative. If the path is relative, this function checks if the path is\n * relative to symlink or relative to current working directory. This is an\n * initiative to find a smarter `srcpath` to supply when building symlinks.\n * This allows you to determine which path to use out of one of three possible\n * types of source paths. The first is an absolute path. This is detected by\n * `path.isAbsolute()`. When an absolute path is provided, it is checked to\n * see if it exists. If it does it's used, if not an error is returned\n * (callback)/ thrown (sync). The other two options for `srcpath` are a\n * relative url. By default Node's `fs.symlink` works by creating a symlink\n * using `dstpath` and expects the `srcpath` to be relative to the newly\n * created symlink. If you provide a `srcpath` that does not exist on the file\n * system it results in a broken symlink. To minimize this, the function\n * checks to see if the 'relative to symlink' source file exists, and if it\n * does it will use it. If it does not, it checks if there's a file that\n * exists that is relative to the current working directory, if does its used.\n * This preserves the expectations of the original fs.symlink spec and adds\n * the ability to pass in `relative to current working direcotry` paths.\n */\n\nfunction symlinkPaths (srcpath, dstpath, callback) {\n if (path.isAbsolute(srcpath)) {\n return fs.lstat(srcpath, (err) => {\n if (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n return callback(err)\n }\n return callback(null, {\n 'toCwd': srcpath,\n 'toDst': srcpath\n })\n })\n } else {\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n return pathExists(relativeToDst, (err, exists) => {\n if (err) return callback(err)\n if (exists) {\n return callback(null, {\n 'toCwd': relativeToDst,\n 'toDst': srcpath\n })\n } else {\n return fs.lstat(srcpath, (err) => {\n if (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n return callback(err)\n }\n return callback(null, {\n 'toCwd': srcpath,\n 'toDst': path.relative(dstdir, srcpath)\n })\n })\n }\n })\n }\n}\n\nfunction symlinkPathsSync (srcpath, dstpath) {\n let exists\n if (path.isAbsolute(srcpath)) {\n exists = fs.existsSync(srcpath)\n if (!exists) throw new Error('absolute srcpath does not exist')\n return {\n 'toCwd': srcpath,\n 'toDst': srcpath\n }\n } else {\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n exists = fs.existsSync(relativeToDst)\n if (exists) {\n return {\n 'toCwd': relativeToDst,\n 'toDst': srcpath\n }\n } else {\n exists = fs.existsSync(srcpath)\n if (!exists) throw new Error('relative srcpath does not exist')\n return {\n 'toCwd': srcpath,\n 'toDst': path.relative(dstdir, srcpath)\n }\n }\n }\n}\n\nmodule.exports = {\n symlinkPaths,\n symlinkPathsSync\n}\n","'use strict'\n\nconst fs = require('graceful-fs')\n\nfunction symlinkType (srcpath, type, callback) {\n callback = (typeof type === 'function') ? type : callback\n type = (typeof type === 'function') ? false : type\n if (type) return callback(null, type)\n fs.lstat(srcpath, (err, stats) => {\n if (err) return callback(null, 'file')\n type = (stats && stats.isDirectory()) ? 'dir' : 'file'\n callback(null, type)\n })\n}\n\nfunction symlinkTypeSync (srcpath, type) {\n let stats\n\n if (type) return type\n try {\n stats = fs.lstatSync(srcpath)\n } catch (e) {\n return 'file'\n }\n return (stats && stats.isDirectory()) ? 'dir' : 'file'\n}\n\nmodule.exports = {\n symlinkType,\n symlinkTypeSync\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst jsonFile = require('./jsonfile')\n\njsonFile.outputJson = u(require('./output-json'))\njsonFile.outputJsonSync = require('./output-json-sync')\n// aliases\njsonFile.outputJSON = jsonFile.outputJson\njsonFile.outputJSONSync = jsonFile.outputJsonSync\njsonFile.writeJSON = jsonFile.writeJson\njsonFile.writeJSONSync = jsonFile.writeJsonSync\njsonFile.readJSON = jsonFile.readJson\njsonFile.readJSONSync = jsonFile.readJsonSync\n\nmodule.exports = jsonFile\n","var _fs\ntry {\n _fs = require('graceful-fs')\n} catch (_) {\n _fs = require('fs')\n}\n\nfunction readFile (file, options, callback) {\n if (callback == null) {\n callback = options\n options = {}\n }\n\n if (typeof options === 'string') {\n options = {encoding: options}\n }\n\n options = options || {}\n var fs = options.fs || _fs\n\n var shouldThrow = true\n if ('throws' in options) {\n shouldThrow = options.throws\n }\n\n fs.readFile(file, options, function (err, data) {\n if (err) return callback(err)\n\n data = stripBom(data)\n\n var obj\n try {\n obj = JSON.parse(data, options ? options.reviver : null)\n } catch (err2) {\n if (shouldThrow) {\n err2.message = file + ': ' + err2.message\n return callback(err2)\n } else {\n return callback(null, null)\n }\n }\n\n callback(null, obj)\n })\n}\n\nfunction readFileSync (file, options) {\n options = options || {}\n if (typeof options === 'string') {\n options = {encoding: options}\n }\n\n var fs = options.fs || _fs\n\n var shouldThrow = true\n if ('throws' in options) {\n shouldThrow = options.throws\n }\n\n try {\n var content = fs.readFileSync(file, options)\n content = stripBom(content)\n return JSON.parse(content, options.reviver)\n } catch (err) {\n if (shouldThrow) {\n err.message = file + ': ' + err.message\n throw err\n } else {\n return null\n }\n }\n}\n\nfunction stringify (obj, options) {\n var spaces\n var EOL = '\\n'\n if (typeof options === 'object' && options !== null) {\n if (options.spaces) {\n spaces = options.spaces\n }\n if (options.EOL) {\n EOL = options.EOL\n }\n }\n\n var str = JSON.stringify(obj, options ? options.replacer : null, spaces)\n\n return str.replace(/\\n/g, EOL) + EOL\n}\n\nfunction writeFile (file, obj, options, callback) {\n if (callback == null) {\n callback = options\n options = {}\n }\n options = options || {}\n var fs = options.fs || _fs\n\n var str = ''\n try {\n str = stringify(obj, options)\n } catch (err) {\n // Need to return whether a callback was passed or not\n if (callback) callback(err, null)\n return\n }\n\n fs.writeFile(file, str, options, callback)\n}\n\nfunction writeFileSync (file, obj, options) {\n options = options || {}\n var fs = options.fs || _fs\n\n var str = stringify(obj, options)\n // not sure if fs.writeFileSync returns anything, but just in case\n return fs.writeFileSync(file, str, options)\n}\n\nfunction stripBom (content) {\n // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified\n if (Buffer.isBuffer(content)) content = content.toString('utf8')\n content = content.replace(/^\\uFEFF/, '')\n return content\n}\n\nvar jsonfile = {\n readFile: readFile,\n readFileSync: readFileSync,\n writeFile: writeFile,\n writeFileSync: writeFileSync\n}\n\nmodule.exports = jsonfile\n","'use strict'\n\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\nconst jsonFile = require('./jsonfile')\n\nfunction outputJson (file, data, options, callback) {\n if (typeof options === 'function') {\n callback = options\n options = {}\n }\n\n const dir = path.dirname(file)\n\n pathExists(dir, (err, itDoes) => {\n if (err) return callback(err)\n if (itDoes) return jsonFile.writeJson(file, data, options, callback)\n\n mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n jsonFile.writeJson(file, data, options, callback)\n })\n })\n}\n\nmodule.exports = outputJson\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst jsonFile = require('./jsonfile')\n\nfunction outputJsonSync (file, data, options) {\n const dir = path.dirname(file)\n\n if (!fs.existsSync(dir)) {\n mkdir.mkdirsSync(dir)\n }\n\n jsonFile.writeJsonSync(file, data, options)\n}\n\nmodule.exports = outputJsonSync\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst copySync = require('../copy-sync').copySync\nconst removeSync = require('../remove').removeSync\nconst mkdirpSync = require('../mkdirs').mkdirsSync\nconst buffer = require('../util/buffer')\n\nfunction moveSync (src, dest, options) {\n options = options || {}\n const overwrite = options.overwrite || options.clobber || false\n\n src = path.resolve(src)\n dest = path.resolve(dest)\n\n if (src === dest) return fs.accessSync(src)\n\n if (isSrcSubdir(src, dest)) throw new Error(`Cannot move '${src}' into itself '${dest}'.`)\n\n mkdirpSync(path.dirname(dest))\n tryRenameSync()\n\n function tryRenameSync () {\n if (overwrite) {\n try {\n return fs.renameSync(src, dest)\n } catch (err) {\n if (err.code === 'ENOTEMPTY' || err.code === 'EEXIST' || err.code === 'EPERM') {\n removeSync(dest)\n options.overwrite = false // just overwriteed it, no need to do it again\n return moveSync(src, dest, options)\n }\n\n if (err.code !== 'EXDEV') throw err\n return moveSyncAcrossDevice(src, dest, overwrite)\n }\n } else {\n try {\n fs.linkSync(src, dest)\n return fs.unlinkSync(src)\n } catch (err) {\n if (err.code === 'EXDEV' || err.code === 'EISDIR' || err.code === 'EPERM' || err.code === 'ENOTSUP') {\n return moveSyncAcrossDevice(src, dest, overwrite)\n }\n throw err\n }\n }\n }\n}\n\nfunction moveSyncAcrossDevice (src, dest, overwrite) {\n const stat = fs.statSync(src)\n\n if (stat.isDirectory()) {\n return moveDirSyncAcrossDevice(src, dest, overwrite)\n } else {\n return moveFileSyncAcrossDevice(src, dest, overwrite)\n }\n}\n\nfunction moveFileSyncAcrossDevice (src, dest, overwrite) {\n const BUF_LENGTH = 64 * 1024\n const _buff = buffer(BUF_LENGTH)\n\n const flags = overwrite ? 'w' : 'wx'\n\n const fdr = fs.openSync(src, 'r')\n const stat = fs.fstatSync(fdr)\n const fdw = fs.openSync(dest, flags, stat.mode)\n let pos = 0\n\n while (pos < stat.size) {\n const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)\n fs.writeSync(fdw, _buff, 0, bytesRead)\n pos += bytesRead\n }\n\n fs.closeSync(fdr)\n fs.closeSync(fdw)\n return fs.unlinkSync(src)\n}\n\nfunction moveDirSyncAcrossDevice (src, dest, overwrite) {\n const options = {\n overwrite: false\n }\n\n if (overwrite) {\n removeSync(dest)\n tryCopySync()\n } else {\n tryCopySync()\n }\n\n function tryCopySync () {\n copySync(src, dest, options)\n return removeSync(src)\n }\n}\n\n// return true if dest is a subdir of src, otherwise false.\n// extract dest base dir and check if that is the same as src basename\nfunction isSrcSubdir (src, dest) {\n try {\n return fs.statSync(src).isDirectory() &&\n src !== dest &&\n dest.indexOf(src) > -1 &&\n dest.split(path.dirname(src) + path.sep)[1].split(path.sep)[0] === path.basename(src)\n } catch (e) {\n return false\n }\n}\n\nmodule.exports = {\n moveSync\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst copy = require('../copy').copy\nconst remove = require('../remove').remove\nconst mkdirp = require('../mkdirs').mkdirp\nconst pathExists = require('../path-exists').pathExists\n\nfunction move (src, dest, opts, cb) {\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n const overwrite = opts.overwrite || opts.clobber || false\n\n src = path.resolve(src)\n dest = path.resolve(dest)\n\n if (src === dest) return fs.access(src, cb)\n\n fs.stat(src, (err, st) => {\n if (err) return cb(err)\n\n if (st.isDirectory() && isSrcSubdir(src, dest)) {\n return cb(new Error(`Cannot move '${src}' to a subdirectory of itself, '${dest}'.`))\n }\n mkdirp(path.dirname(dest), err => {\n if (err) return cb(err)\n return doRename(src, dest, overwrite, cb)\n })\n })\n}\n\nfunction doRename (src, dest, overwrite, cb) {\n if (overwrite) {\n return remove(dest, err => {\n if (err) return cb(err)\n return rename(src, dest, overwrite, cb)\n })\n }\n pathExists(dest, (err, destExists) => {\n if (err) return cb(err)\n if (destExists) return cb(new Error('dest already exists.'))\n return rename(src, dest, overwrite, cb)\n })\n}\n\nfunction rename (src, dest, overwrite, cb) {\n fs.rename(src, dest, err => {\n if (!err) return cb()\n if (err.code !== 'EXDEV') return cb(err)\n return moveAcrossDevice(src, dest, overwrite, cb)\n })\n}\n\nfunction moveAcrossDevice (src, dest, overwrite, cb) {\n const opts = {\n overwrite,\n errorOnExist: true\n }\n\n copy(src, dest, opts, err => {\n if (err) return cb(err)\n return remove(src, cb)\n })\n}\n\nfunction isSrcSubdir (src, dest) {\n const srcArray = src.split(path.sep)\n const destArray = dest.split(path.sep)\n\n return srcArray.reduce((acc, current, i) => {\n return acc && destArray[i] === current\n }, true)\n}\n\nmodule.exports = {\n move: u(move)\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nfunction outputFile (file, data, encoding, callback) {\n if (typeof encoding === 'function') {\n callback = encoding\n encoding = 'utf8'\n }\n\n const dir = path.dirname(file)\n pathExists(dir, (err, itDoes) => {\n if (err) return callback(err)\n if (itDoes) return fs.writeFile(file, data, encoding, callback)\n\n mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n\n fs.writeFile(file, data, encoding, callback)\n })\n })\n}\n\nfunction outputFileSync (file, ...args) {\n const dir = path.dirname(file)\n if (fs.existsSync(dir)) {\n return fs.writeFileSync(file, ...args)\n }\n mkdir.mkdirsSync(dir)\n fs.writeFileSync(file, ...args)\n}\n\nmodule.exports = {\n outputFile: u(outputFile),\n outputFileSync\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","module.exports = require(\"crypto\");","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!new.target) {\n throw new TypeError(\n \"Failed to construct 'URL'. Please use the 'new' operator; this constructor \" + \"cannot be called as a function.\"\n );\n }\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to construct 'URL': 1 \" + \"argument required, but only \" + arguments.length + \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], { context: \"Failed to construct 'URL': parameter 1\" });\n\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1], { context: \"Failed to construct 'URL': parameter 2\" });\n }\n\n iface.setup(this, args);\n}\n\nObject.defineProperty(URL, \"prototype\", {\n value: URL.prototype,\n writable: false,\n enumerable: false,\n configurable: false\n});\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].toJSON();\n};\n\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"href\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'href' property on 'URL': The provided value\" });\n\n this[impl][\"href\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function toString() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this[impl][\"href\"];\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"origin\"];\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"protocol\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'protocol' property on 'URL': The provided value\" });\n\n this[impl][\"protocol\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"username\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'username' property on 'URL': The provided value\" });\n\n this[impl][\"username\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"password\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'password' property on 'URL': The provided value\" });\n\n this[impl][\"password\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"host\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'host' property on 'URL': The provided value\" });\n\n this[impl][\"host\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"hostname\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'hostname' property on 'URL': The provided value\" });\n\n this[impl][\"hostname\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"port\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'port' property on 'URL': The provided value\" });\n\n this[impl][\"port\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"pathname\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'pathname' property on 'URL': The provided value\" });\n\n this[impl][\"pathname\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"search\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'search' property on 'URL': The provided value\" });\n\n this[impl][\"search\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"searchParams\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return utils.getSameObject(this, \"searchParams\", () => {\n return utils.tryWrapperForImpl(this[impl][\"searchParams\"]);\n });\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"hash\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'hash' property on 'URL': The provided value\" });\n\n this[impl][\"hash\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, Symbol.toStringTag, {\n value: \"URL\",\n writable: false,\n enumerable: false,\n configurable: true\n});\n\nconst iface = {\n mixedInto: [],\n is(obj) {\n if (obj) {\n if (obj[impl] instanceof Impl.implementation) {\n return true;\n }\n for (let i = 0; i < module.exports.mixedInto.length; ++i) {\n if (obj instanceof module.exports.mixedInto[i]) {\n return true;\n }\n }\n }\n return false;\n },\n isImpl(obj) {\n if (obj) {\n if (obj instanceof Impl.implementation) {\n return true;\n }\n\n const wrapper = utils.wrapperForImpl(obj);\n for (let i = 0; i < module.exports.mixedInto.length; ++i) {\n if (wrapper instanceof module.exports.mixedInto[i]) {\n return true;\n }\n }\n }\n return false;\n },\n convert(obj, { context = \"The provided value\" } = {}) {\n if (module.exports.is(obj)) {\n return utils.implForWrapper(obj);\n }\n throw new TypeError(`${context} is not of type 'URL'.`);\n },\n\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n obj = this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n createImpl(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n obj = this.setup(obj, constructorArgs, privateData);\n return utils.implForWrapper(obj);\n },\n _internalSetup(obj) {},\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n\n privateData.wrapper = obj;\n\n this._internalSetup(obj);\n Object.defineProperty(obj, impl, {\n value: new Impl.implementation(constructorArgs, privateData),\n writable: false,\n enumerable: false,\n configurable: true\n });\n\n obj[impl][utils.wrapperSymbol] = obj;\n if (Impl.init) {\n Impl.init(obj[impl], privateData);\n }\n return obj;\n },\n interface: URL,\n expose: {\n Window: { URL },\n Worker: { URL }\n }\n}; // iface\nmodule.exports = iface;\n\nconst Impl = require(\".//URL-impl.js\");\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\nconst urlencoded = require(\"./urlencoded\");\nconst URLSearchParams = require(\"./URLSearchParams\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === null) {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === null) {\n throw new TypeError(\"Invalid URL\");\n }\n\n const query = parsedURL.query !== null ? parsedURL.query : \"\";\n\n this._url = parsedURL;\n\n // We cannot invoke the \"new URLSearchParams object\" algorithm without going through the constructor, which strips\n // question mark by default. Therefore the doNotStripQMark hack is used.\n this._query = URLSearchParams.createImpl([query], { doNotStripQMark: true });\n this._query._url = this;\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === null) {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n this._query._list.splice(0);\n const { query } = parsedURL;\n if (query !== null) {\n this._query._list = urlencoded.parseUrlencoded(query);\n }\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n this._query._list = [];\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n this._query._list = urlencoded.parseUrlencoded(input);\n }\n\n get searchParams() {\n return this._query;\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst punycode = require(\"punycode\");\nconst regexes = require(\"./lib/regexes.js\");\nconst mappingTable = require(\"./lib/mappingTable.json\");\n\nfunction containsNonASCII(str) {\n return /[^\\x00-\\x7F]/.test(str);\n}\n\nfunction findStatus(val, { useSTD3ASCIIRules }) {\n let start = 0;\n let end = mappingTable.length - 1;\n\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n\n const target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n if (target[1].startsWith(\"disallowed_STD3_\")) {\n const newStatus = useSTD3ASCIIRules ? \"disallowed\" : target[1].slice(16);\n return [newStatus, ...target.slice(2)];\n }\n return target.slice(1);\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nfunction mapChars(domainName, { useSTD3ASCIIRules, processingOption }) {\n let hasError = false;\n let processed = \"\";\n\n for (const ch of domainName) {\n const [status, mapping] = findStatus(ch.codePointAt(0), { useSTD3ASCIIRules });\n\n switch (status) {\n case \"disallowed\":\n hasError = true;\n processed += ch;\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += mapping;\n break;\n case \"deviation\":\n if (processingOption === \"transitional\") {\n processed += mapping;\n } else {\n processed += ch;\n }\n break;\n case \"valid\":\n processed += ch;\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nfunction validateLabel(label, { checkHyphens, checkBidi, checkJoiners, processingOption, useSTD3ASCIIRules }) {\n if (label.normalize(\"NFC\") !== label) {\n return false;\n }\n\n const codePoints = Array.from(label);\n\n if (checkHyphens) {\n if ((codePoints[2] === \"-\" && codePoints[3] === \"-\") ||\n (label.startsWith(\"-\") || label.endsWith(\"-\"))) {\n return false;\n }\n }\n\n if (label.includes(\".\") ||\n (codePoints.length > 0 && regexes.combiningMarks.test(codePoints[0]))) {\n return false;\n }\n\n for (const ch of codePoints) {\n const [status] = findStatus(ch.codePointAt(0), { useSTD3ASCIIRules });\n if ((processingOption === \"transitional\" && status !== \"valid\") ||\n (processingOption === \"nontransitional\" &&\n status !== \"valid\" && status !== \"deviation\")) {\n return false;\n }\n }\n\n // https://tools.ietf.org/html/rfc5892#appendix-A\n if (checkJoiners) {\n let last = 0;\n for (const [i, ch] of codePoints.entries()) {\n if (ch === \"\\u200C\" || ch === \"\\u200D\") {\n if (i > 0) {\n if (regexes.combiningClassVirama.test(codePoints[i - 1])) {\n continue;\n }\n if (ch === \"\\u200C\") {\n // TODO: make this more efficient\n const next = codePoints.indexOf(\"\\u200C\", i + 1);\n const test = next < 0 ? codePoints.slice(last) : codePoints.slice(last, next);\n if (regexes.validZWNJ.test(test.join(\"\"))) {\n last = i + 1;\n continue;\n }\n }\n }\n return false;\n }\n }\n }\n\n // https://tools.ietf.org/html/rfc5893#section-2\n if (checkBidi) {\n let rtl;\n\n // 1\n if (regexes.bidiS1LTR.test(codePoints[0])) {\n rtl = false;\n } else if (regexes.bidiS1RTL.test(codePoints[0])) {\n rtl = true;\n } else {\n return false;\n }\n\n if (rtl) {\n // 2-4\n if (!regexes.bidiS2.test(label) ||\n !regexes.bidiS3.test(label) ||\n (regexes.bidiS4EN.test(label) && regexes.bidiS4AN.test(label))) {\n return false;\n }\n } else if (!regexes.bidiS5.test(label) ||\n !regexes.bidiS6.test(label)) { // 5-6\n return false;\n }\n }\n\n return true;\n}\n\nfunction isBidiDomain(labels) {\n const domain = labels.map(label => {\n if (label.startsWith(\"xn--\")) {\n try {\n return punycode.decode(label.substring(4));\n } catch (err) {\n return \"\";\n }\n }\n return label;\n }).join(\".\");\n return regexes.bidiDomain.test(domain);\n}\n\nfunction processing(domainName, options) {\n const { processingOption } = options;\n\n // 1. Map.\n let { string, error } = mapChars(domainName, options);\n\n // 2. Normalize.\n string = string.normalize(\"NFC\");\n\n // 3. Break.\n const labels = string.split(\".\");\n const isBidi = isBidiDomain(labels);\n\n // 4. Convert/Validate.\n for (const [i, origLabel] of labels.entries()) {\n let label = origLabel;\n let curProcessing = processingOption;\n if (label.startsWith(\"xn--\")) {\n try {\n label = punycode.decode(label.substring(4));\n labels[i] = label;\n } catch (err) {\n error = true;\n continue;\n }\n curProcessing = \"nontransitional\";\n }\n\n // No need to validate if we already know there is an error.\n if (error) {\n continue;\n }\n const validation = validateLabel(label, Object.assign({}, options, {\n processingOption: curProcessing,\n checkBidi: options.checkBidi && isBidi\n }));\n if (!validation) {\n error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error\n };\n}\n\nfunction toASCII(domainName, {\n checkHyphens = false,\n checkBidi = false,\n checkJoiners = false,\n useSTD3ASCIIRules = false,\n processingOption = \"nontransitional\",\n verifyDNSLength = false\n} = {}) {\n if (processingOption !== \"transitional\" && processingOption !== \"nontransitional\") {\n throw new RangeError(\"processingOption must be either transitional or nontransitional\");\n }\n\n const result = processing(domainName, {\n processingOption,\n checkHyphens,\n checkBidi,\n checkJoiners,\n useSTD3ASCIIRules\n });\n let labels = result.string.split(\".\");\n labels = labels.map(l => {\n if (containsNonASCII(l)) {\n try {\n return \"xn--\" + punycode.encode(l);\n } catch (e) {\n result.error = true;\n }\n }\n return l;\n });\n\n if (verifyDNSLength) {\n const total = labels.join(\".\").length;\n if (total > 253 || total === 0) {\n result.error = true;\n }\n\n for (let i = 0; i < labels.length; ++i) {\n if (labels[i].length > 63 || labels[i].length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) {\n return null;\n }\n return labels.join(\".\");\n}\n\nfunction toUnicode(domainName, {\n checkHyphens = false,\n checkBidi = false,\n checkJoiners = false,\n useSTD3ASCIIRules = false\n} = {}) {\n const result = processing(domainName, {\n processingOption: \"nontransitional\",\n checkHyphens,\n checkBidi,\n checkJoiners,\n useSTD3ASCIIRules\n });\n\n return {\n domain: result.string,\n error: result.error\n };\n}\n\nmodule.exports = {\n toASCII,\n toUnicode\n};\n","\"use strict\";\n\nconst combiningMarks = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\u{101FD}\\u{102E0}\\u{10376}-\\u{1037A}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{11000}-\\u{11002}\\u{11038}-\\u{11046}\\u{1107F}-\\u{11082}\\u{110B0}-\\u{110BA}\\u{11100}-\\u{11102}\\u{11127}-\\u{11134}\\u{11173}\\u{11180}-\\u{11182}\\u{111B3}-\\u{111C0}\\u{111CA}-\\u{111CC}\\u{1122C}-\\u{11237}\\u{1123E}\\u{112DF}-\\u{112EA}\\u{11300}-\\u{11303}\\u{1133C}\\u{1133E}-\\u{11344}\\u{11347}\\u{11348}\\u{1134B}-\\u{1134D}\\u{11357}\\u{11362}\\u{11363}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11435}-\\u{11446}\\u{114B0}-\\u{114C3}\\u{115AF}-\\u{115B5}\\u{115B8}-\\u{115C0}\\u{115DC}\\u{115DD}\\u{11630}-\\u{11640}\\u{116AB}-\\u{116B7}\\u{1171D}-\\u{1172B}\\u{11A01}-\\u{11A0A}\\u{11A33}-\\u{11A39}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A5B}\\u{11A8A}-\\u{11A99}\\u{11C2F}-\\u{11C36}\\u{11C38}-\\u{11C3F}\\u{11C92}-\\u{11CA7}\\u{11CA9}-\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F51}-\\u{16F7E}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1D165}-\\u{1D169}\\u{1D16D}-\\u{1D172}\\u{1D17B}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{E0100}-\\u{E01EF}]/u;\nconst combiningClassVirama = /[\\u094D\\u09CD\\u0A4D\\u0ACD\\u0B4D\\u0BCD\\u0C4D\\u0CCD\\u0D3B\\u0D3C\\u0D4D\\u0DCA\\u0E3A\\u0F84\\u1039\\u103A\\u1714\\u1734\\u17D2\\u1A60\\u1B44\\u1BAA\\u1BAB\\u1BF2\\u1BF3\\u2D7F\\uA806\\uA8C4\\uA953\\uA9C0\\uAAF6\\uABED\\u{10A3F}\\u{11046}\\u{1107F}\\u{110B9}\\u{11133}\\u{11134}\\u{111C0}\\u{11235}\\u{112EA}\\u{1134D}\\u{11442}\\u{114C2}\\u{115BF}\\u{1163F}\\u{116B6}\\u{1172B}\\u{11A34}\\u{11A47}\\u{11A99}\\u{11C3F}\\u{11D44}\\u{11D45}]/u;\nconst validZWNJ = /[\\u0620\\u0626\\u0628\\u062A-\\u062E\\u0633-\\u063F\\u0641-\\u0647\\u0649\\u064A\\u066E\\u066F\\u0678-\\u0687\\u069A-\\u06BF\\u06C1\\u06C2\\u06CC\\u06CE\\u06D0\\u06D1\\u06FA-\\u06FC\\u06FF\\u0712-\\u0714\\u071A-\\u071D\\u071F-\\u0727\\u0729\\u072B\\u072D\\u072E\\u074E-\\u0758\\u075C-\\u076A\\u076D-\\u0770\\u0772\\u0775-\\u0777\\u077A-\\u077F\\u07CA-\\u07EA\\u0841-\\u0845\\u0848\\u084A-\\u0853\\u0855\\u0860\\u0862-\\u0865\\u0868\\u08A0-\\u08A9\\u08AF\\u08B0\\u08B3\\u08B4\\u08B6-\\u08B8\\u08BA-\\u08BD\\u1807\\u1820-\\u1877\\u1887-\\u18A8\\u18AA\\uA840-\\uA872\\u{10AC0}-\\u{10AC4}\\u{10ACD}\\u{10AD3}-\\u{10ADC}\\u{10ADE}-\\u{10AE0}\\u{10AEB}-\\u{10AEE}\\u{10B80}\\u{10B82}\\u{10B86}-\\u{10B88}\\u{10B8A}\\u{10B8B}\\u{10B8D}\\u{10B90}\\u{10BAD}\\u{10BAE}\\u{1E900}-\\u{1E943}][\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200B\\u200E\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u206A-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFFF9-\\uFFFB\\u{101FD}\\u{102E0}\\u{10376}-\\u{1037A}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{11001}\\u{11038}-\\u{11046}\\u{1107F}-\\u{11081}\\u{110B3}-\\u{110B6}\\u{110B9}\\u{110BA}\\u{110BD}\\u{11100}-\\u{11102}\\u{11127}-\\u{1112B}\\u{1112D}-\\u{11134}\\u{11173}\\u{11180}\\u{11181}\\u{111B6}-\\u{111BE}\\u{111CA}-\\u{111CC}\\u{1122F}-\\u{11231}\\u{11234}\\u{11236}\\u{11237}\\u{1123E}\\u{112DF}\\u{112E3}-\\u{112EA}\\u{11300}\\u{11301}\\u{1133C}\\u{11340}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11438}-\\u{1143F}\\u{11442}-\\u{11444}\\u{11446}\\u{114B3}-\\u{114B8}\\u{114BA}\\u{114BF}\\u{114C0}\\u{114C2}\\u{114C3}\\u{115B2}-\\u{115B5}\\u{115BC}\\u{115BD}\\u{115BF}\\u{115C0}\\u{115DC}\\u{115DD}\\u{11633}-\\u{1163A}\\u{1163D}\\u{1163F}\\u{11640}\\u{116AB}\\u{116AD}\\u{116B0}-\\u{116B5}\\u{116B7}\\u{1171D}-\\u{1171F}\\u{11722}-\\u{11725}\\u{11727}-\\u{1172B}\\u{11A01}-\\u{11A06}\\u{11A09}\\u{11A0A}\\u{11A33}-\\u{11A38}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A56}\\u{11A59}-\\u{11A5B}\\u{11A8A}-\\u{11A96}\\u{11A98}\\u{11A99}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C3F}\\u{11C92}-\\u{11CA7}\\u{11CAA}-\\u{11CB0}\\u{11CB2}\\u{11CB3}\\u{11CB5}\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1BCA0}-\\u{1BCA3}\\u{1D167}-\\u{1D169}\\u{1D173}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{E0001}\\u{E0020}-\\u{E007F}\\u{E0100}-\\u{E01EF}]*\\u200C[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200B\\u200E\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u206A-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFFF9-\\uFFFB\\u{101FD}\\u{102E0}\\u{10376}-\\u{1037A}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{11001}\\u{11038}-\\u{11046}\\u{1107F}-\\u{11081}\\u{110B3}-\\u{110B6}\\u{110B9}\\u{110BA}\\u{110BD}\\u{11100}-\\u{11102}\\u{11127}-\\u{1112B}\\u{1112D}-\\u{11134}\\u{11173}\\u{11180}\\u{11181}\\u{111B6}-\\u{111BE}\\u{111CA}-\\u{111CC}\\u{1122F}-\\u{11231}\\u{11234}\\u{11236}\\u{11237}\\u{1123E}\\u{112DF}\\u{112E3}-\\u{112EA}\\u{11300}\\u{11301}\\u{1133C}\\u{11340}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11438}-\\u{1143F}\\u{11442}-\\u{11444}\\u{11446}\\u{114B3}-\\u{114B8}\\u{114BA}\\u{114BF}\\u{114C0}\\u{114C2}\\u{114C3}\\u{115B2}-\\u{115B5}\\u{115BC}\\u{115BD}\\u{115BF}\\u{115C0}\\u{115DC}\\u{115DD}\\u{11633}-\\u{1163A}\\u{1163D}\\u{1163F}\\u{11640}\\u{116AB}\\u{116AD}\\u{116B0}-\\u{116B5}\\u{116B7}\\u{1171D}-\\u{1171F}\\u{11722}-\\u{11725}\\u{11727}-\\u{1172B}\\u{11A01}-\\u{11A06}\\u{11A09}\\u{11A0A}\\u{11A33}-\\u{11A38}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A56}\\u{11A59}-\\u{11A5B}\\u{11A8A}-\\u{11A96}\\u{11A98}\\u{11A99}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C3F}\\u{11C92}-\\u{11CA7}\\u{11CAA}-\\u{11CB0}\\u{11CB2}\\u{11CB3}\\u{11CB5}\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1BCA0}-\\u{1BCA3}\\u{1D167}-\\u{1D169}\\u{1D173}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{E0001}\\u{E0020}-\\u{E007F}\\u{E0100}-\\u{E01EF}]*[\\u0620\\u0622-\\u063F\\u0641-\\u064A\\u066E\\u066F\\u0671-\\u0673\\u0675-\\u06D3\\u06D5\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u077F\\u07CA-\\u07EA\\u0840-\\u0855\\u0860\\u0862-\\u0865\\u0867-\\u086A\\u08A0-\\u08AC\\u08AE-\\u08B4\\u08B6-\\u08BD\\u1807\\u1820-\\u1877\\u1887-\\u18A8\\u18AA\\uA840-\\uA871\\u{10AC0}-\\u{10AC5}\\u{10AC7}\\u{10AC9}\\u{10ACA}\\u{10ACE}-\\u{10AD6}\\u{10AD8}-\\u{10AE1}\\u{10AE4}\\u{10AEB}-\\u{10AEF}\\u{10B80}-\\u{10B91}\\u{10BA9}-\\u{10BAE}\\u{1E900}-\\u{1E943}]/u;\nconst bidiDomain = /[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05EA\\u05F0-\\u05F4\\u0600-\\u0605\\u0608\\u060B\\u060D\\u061B\\u061C\\u061E-\\u064A\\u0660-\\u0669\\u066B-\\u066F\\u0671-\\u06D5\\u06DD\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u070D\\u070F\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u083E\\u0840-\\u0858\\u085E\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08E2\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBC1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFE74\\uFE76-\\uFEFC\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10857}-\\u{1089E}\\u{108A7}-\\u{108AF}\\u{108E0}-\\u{108F2}\\u{108F4}\\u{108F5}\\u{108FB}-\\u{1091B}\\u{10920}-\\u{10939}\\u{1093F}\\u{10980}-\\u{109B7}\\u{109BC}-\\u{109CF}\\u{109D2}-\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A40}-\\u{10A47}\\u{10A50}-\\u{10A58}\\u{10A60}-\\u{10A9F}\\u{10AC0}-\\u{10AE4}\\u{10AEB}-\\u{10AF6}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B58}-\\u{10B72}\\u{10B78}-\\u{10B91}\\u{10B99}-\\u{10B9C}\\u{10BA9}-\\u{10BAF}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10CFA}-\\u{10CFF}\\u{10E60}-\\u{10E7E}\\u{1E800}-\\u{1E8C4}\\u{1E8C7}-\\u{1E8CF}\\u{1E900}-\\u{1E943}\\u{1E950}-\\u{1E959}\\u{1E95E}\\u{1E95F}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}]/u;\nconst bidiS1LTR = /[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02B8\\u02BB-\\u02C1\\u02D0\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0482\\u048A-\\u052F\\u0531-\\u0556\\u0559-\\u055F\\u0561-\\u0587\\u0589\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u0980\\u0982\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD-\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u09FC\\u09FD\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AF0\\u0AF9\\u0B02\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD0\\u0BD7\\u0BE6-\\u0BF2\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C7F\\u0C80\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D4E\\u0D4F\\u0D54-\\u0D61\\u0D66-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2-\\u0DF4\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0E5B\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE-\\u0FDA\\u1000-\\u102C\\u1031\\u1038\\u103B\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u10C5\\u10C7\\u10CD\\u10D0-\\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\\u1360-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1735\\u1736\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A19\\u1A1A\\u1A1E-\\u1A55\\u1A57\\u1A61\\u1A63\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA0-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B4B\\u1B50-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1BAE-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2\\u1BF3\\u1BFC-\\u1C2B\\u1C34\\u1C35\\u1C3B-\\u1C49\\u1C4D-\\u1C88\\u1CC0-\\u1CC7\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5-\\u1CF7\\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\\u200E\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D70\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u302E\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u3190-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u32FE\\u3300-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA680-\\uA69D\\uA6A0-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA8FD\\uA900-\\uA925\\uA92E-\\uA946\\uA952\\uA953\\uA95F-\\uA97C\\uA983-\\uA9B2\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BD-\\uA9CD\\uA9CF-\\uA9D9\\uA9DE-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D\\uAA50-\\uAA59\\uAA5C-\\uAA7B\\uAA7D-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAAEB\\uAAEE-\\uAAF5\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB65\\uAB70-\\uABE4\\uABE6\\uABE7\\uABE9-\\uABEC\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uD800-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10100}\\u{10102}\\u{10107}-\\u{10133}\\u{10137}-\\u{1013F}\\u{1018D}\\u{1018E}\\u{101D0}-\\u{101FC}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{10300}-\\u{10323}\\u{1032D}-\\u{1034A}\\u{10350}-\\u{10375}\\u{10380}-\\u{1039D}\\u{1039F}-\\u{103C3}\\u{103C8}-\\u{103D5}\\u{10400}-\\u{1049D}\\u{104A0}-\\u{104A9}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{1056F}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{11000}\\u{11002}-\\u{11037}\\u{11047}-\\u{1104D}\\u{11066}-\\u{1106F}\\u{11082}-\\u{110B2}\\u{110B7}\\u{110B8}\\u{110BB}-\\u{110C1}\\u{110D0}-\\u{110E8}\\u{110F0}-\\u{110F9}\\u{11103}-\\u{11126}\\u{1112C}\\u{11136}-\\u{11143}\\u{11150}-\\u{11172}\\u{11174}-\\u{11176}\\u{11182}-\\u{111B5}\\u{111BF}-\\u{111C9}\\u{111CD}\\u{111D0}-\\u{111DF}\\u{111E1}-\\u{111F4}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122E}\\u{11232}\\u{11233}\\u{11235}\\u{11238}-\\u{1123D}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A9}\\u{112B0}-\\u{112DE}\\u{112E0}-\\u{112E2}\\u{112F0}-\\u{112F9}\\u{11302}\\u{11303}\\u{11305}-\\u{1130C}\\u{1130F}\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}\\u{11333}\\u{11335}-\\u{11339}\\u{1133D}-\\u{1133F}\\u{11341}-\\u{11344}\\u{11347}\\u{11348}\\u{1134B}-\\u{1134D}\\u{11350}\\u{11357}\\u{1135D}-\\u{11363}\\u{11400}-\\u{11437}\\u{11440}\\u{11441}\\u{11445}\\u{11447}-\\u{11459}\\u{1145B}\\u{1145D}\\u{11480}-\\u{114B2}\\u{114B9}\\u{114BB}-\\u{114BE}\\u{114C1}\\u{114C4}-\\u{114C7}\\u{114D0}-\\u{114D9}\\u{11580}-\\u{115B1}\\u{115B8}-\\u{115BB}\\u{115BE}\\u{115C1}-\\u{115DB}\\u{11600}-\\u{11632}\\u{1163B}\\u{1163C}\\u{1163E}\\u{11641}-\\u{11644}\\u{11650}-\\u{11659}\\u{11680}-\\u{116AA}\\u{116AC}\\u{116AE}\\u{116AF}\\u{116B6}\\u{116C0}-\\u{116C9}\\u{11700}-\\u{11719}\\u{11720}\\u{11721}\\u{11726}\\u{11730}-\\u{1173F}\\u{118A0}-\\u{118F2}\\u{118FF}\\u{11A00}\\u{11A07}\\u{11A08}\\u{11A0B}-\\u{11A32}\\u{11A39}\\u{11A3A}\\u{11A3F}-\\u{11A46}\\u{11A50}\\u{11A57}\\u{11A58}\\u{11A5C}-\\u{11A83}\\u{11A86}-\\u{11A89}\\u{11A97}\\u{11A9A}-\\u{11A9C}\\u{11A9E}-\\u{11AA2}\\u{11AC0}-\\u{11AF8}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2F}\\u{11C3E}-\\u{11C45}\\u{11C50}-\\u{11C6C}\\u{11C70}-\\u{11C8F}\\u{11CA9}\\u{11CB1}\\u{11CB4}\\u{11D00}-\\u{11D06}\\u{11D08}\\u{11D09}\\u{11D0B}-\\u{11D30}\\u{11D46}\\u{11D50}-\\u{11D59}\\u{12000}-\\u{12399}\\u{12400}-\\u{1246E}\\u{12470}-\\u{12474}\\u{12480}-\\u{12543}\\u{13000}-\\u{1342E}\\u{14400}-\\u{14646}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A60}-\\u{16A69}\\u{16A6E}\\u{16A6F}\\u{16AD0}-\\u{16AED}\\u{16AF5}\\u{16B00}-\\u{16B2F}\\u{16B37}-\\u{16B45}\\u{16B50}-\\u{16B59}\\u{16B5B}-\\u{16B61}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16F00}-\\u{16F44}\\u{16F50}-\\u{16F7E}\\u{16F93}-\\u{16F9F}\\u{16FE0}\\u{16FE1}\\u{17000}-\\u{187EC}\\u{18800}-\\u{18AF2}\\u{1B000}-\\u{1B11E}\\u{1B170}-\\u{1B2FB}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1BC9C}\\u{1BC9F}\\u{1D000}-\\u{1D0F5}\\u{1D100}-\\u{1D126}\\u{1D129}-\\u{1D166}\\u{1D16A}-\\u{1D172}\\u{1D183}\\u{1D184}\\u{1D18C}-\\u{1D1A9}\\u{1D1AE}-\\u{1D1E8}\\u{1D360}-\\u{1D371}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}\\u{1D49F}\\u{1D4A2}\\u{1D4A5}\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6DA}\\u{1D6DC}-\\u{1D714}\\u{1D716}-\\u{1D74E}\\u{1D750}-\\u{1D788}\\u{1D78A}-\\u{1D7C2}\\u{1D7C4}-\\u{1D7CB}\\u{1D800}-\\u{1D9FF}\\u{1DA37}-\\u{1DA3A}\\u{1DA6D}-\\u{1DA74}\\u{1DA76}-\\u{1DA83}\\u{1DA85}-\\u{1DA8B}\\u{1F110}-\\u{1F12E}\\u{1F130}-\\u{1F169}\\u{1F170}-\\u{1F1AC}\\u{1F1E6}-\\u{1F202}\\u{1F210}-\\u{1F23B}\\u{1F240}-\\u{1F248}\\u{1F250}\\u{1F251}\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2CEB0}-\\u{2EBE0}\\u{2F800}-\\u{2FA1D}\\u{F0000}-\\u{FFFFD}\\u{100000}-\\u{10FFFD}]/u;\nconst bidiS1RTL = /[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05EA\\u05F0-\\u05F4\\u0608\\u060B\\u060D\\u061B\\u061C\\u061E-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u070D\\u070F\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u083E\\u0840-\\u0858\\u085E\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBC1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFE74\\uFE76-\\uFEFC\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10857}-\\u{1089E}\\u{108A7}-\\u{108AF}\\u{108E0}-\\u{108F2}\\u{108F4}\\u{108F5}\\u{108FB}-\\u{1091B}\\u{10920}-\\u{10939}\\u{1093F}\\u{10980}-\\u{109B7}\\u{109BC}-\\u{109CF}\\u{109D2}-\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A40}-\\u{10A47}\\u{10A50}-\\u{10A58}\\u{10A60}-\\u{10A9F}\\u{10AC0}-\\u{10AE4}\\u{10AEB}-\\u{10AF6}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B58}-\\u{10B72}\\u{10B78}-\\u{10B91}\\u{10B99}-\\u{10B9C}\\u{10BA9}-\\u{10BAF}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10CFA}-\\u{10CFF}\\u{1E800}-\\u{1E8C4}\\u{1E8C7}-\\u{1E8CF}\\u{1E900}-\\u{1E943}\\u{1E950}-\\u{1E959}\\u{1E95E}\\u{1E95F}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}]/u;\nconst bidiS2 = /^[\\0-\\x08\\x0E-\\x1B!-@\\[-`\\{-\\x84\\x86-\\xA9\\xAB-\\xB4\\xB6-\\xB9\\xBB-\\xBF\\xD7\\xF7\\u02B9\\u02BA\\u02C2-\\u02CF\\u02D2-\\u02DF\\u02E5-\\u02ED\\u02EF-\\u036F\\u0374\\u0375\\u037E\\u0384\\u0385\\u0387\\u03F6\\u0483-\\u0489\\u058A\\u058D-\\u058F\\u0591-\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F4\\u0600-\\u061C\\u061E-\\u070D\\u070F-\\u074A\\u074D-\\u07B1\\u07C0-\\u07FA\\u0800-\\u082D\\u0830-\\u083E\\u0840-\\u085B\\u085E\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u09F2\\u09F3\\u09FB\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AF1\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0BF3-\\u0BFA\\u0C00\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C78-\\u0C7E\\u0C81\\u0CBC\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E3F\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39-\\u0F3D\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1390-\\u1399\\u1400\\u169B\\u169C\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DB\\u17DD\\u17F0-\\u17F9\\u1800-\\u180E\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1940\\u1944\\u1945\\u19DE-\\u19FF\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u200B-\\u200D\\u200F-\\u2027\\u202F-\\u205E\\u2060-\\u2064\\u206A-\\u2070\\u2074-\\u207E\\u2080-\\u208E\\u20A0-\\u20BF\\u20D0-\\u20F0\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u2150-\\u215F\\u2189-\\u218B\\u2190-\\u2335\\u237B-\\u2394\\u2396-\\u2426\\u2440-\\u244A\\u2460-\\u249B\\u24EA-\\u26AB\\u26AD-\\u27FF\\u2900-\\u2B73\\u2B76-\\u2B95\\u2B98-\\u2BB9\\u2BBD-\\u2BC8\\u2BCA-\\u2BD2\\u2BEC-\\u2BEF\\u2CE5-\\u2CEA\\u2CEF-\\u2CF1\\u2CF9-\\u2CFF\\u2D7F\\u2DE0-\\u2E49\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u3004\\u3008-\\u3020\\u302A-\\u302D\\u3030\\u3036\\u3037\\u303D-\\u303F\\u3099-\\u309C\\u30A0\\u30FB\\u31C0-\\u31E3\\u321D\\u321E\\u3250-\\u325F\\u327C-\\u327E\\u32B1-\\u32BF\\u32CC-\\u32CF\\u3377-\\u337A\\u33DE\\u33DF\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA60D-\\uA60F\\uA66F-\\uA67F\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA700-\\uA721\\uA788\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA828-\\uA82B\\uA838\\uA839\\uA874-\\uA877\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1D-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBC1\\uFBD3-\\uFD3F\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFD\\uFE00-\\uFE19\\uFE20-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFEFF\\uFF01-\\uFF20\\uFF3B-\\uFF40\\uFF5B-\\uFF65\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFF9-\\uFFFD\\u{10101}\\u{10140}-\\u{1018C}\\u{10190}-\\u{1019B}\\u{101A0}\\u{101FD}\\u{102E0}-\\u{102FB}\\u{10376}-\\u{1037A}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10857}-\\u{1089E}\\u{108A7}-\\u{108AF}\\u{108E0}-\\u{108F2}\\u{108F4}\\u{108F5}\\u{108FB}-\\u{1091B}\\u{1091F}-\\u{10939}\\u{1093F}\\u{10980}-\\u{109B7}\\u{109BC}-\\u{109CF}\\u{109D2}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A38}-\\u{10A3A}\\u{10A3F}-\\u{10A47}\\u{10A50}-\\u{10A58}\\u{10A60}-\\u{10A9F}\\u{10AC0}-\\u{10AE6}\\u{10AEB}-\\u{10AF6}\\u{10B00}-\\u{10B35}\\u{10B39}-\\u{10B55}\\u{10B58}-\\u{10B72}\\u{10B78}-\\u{10B91}\\u{10B99}-\\u{10B9C}\\u{10BA9}-\\u{10BAF}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10CFA}-\\u{10CFF}\\u{10E60}-\\u{10E7E}\\u{11001}\\u{11038}-\\u{11046}\\u{11052}-\\u{11065}\\u{1107F}-\\u{11081}\\u{110B3}-\\u{110B6}\\u{110B9}\\u{110BA}\\u{11100}-\\u{11102}\\u{11127}-\\u{1112B}\\u{1112D}-\\u{11134}\\u{11173}\\u{11180}\\u{11181}\\u{111B6}-\\u{111BE}\\u{111CA}-\\u{111CC}\\u{1122F}-\\u{11231}\\u{11234}\\u{11236}\\u{11237}\\u{1123E}\\u{112DF}\\u{112E3}-\\u{112EA}\\u{11300}\\u{11301}\\u{1133C}\\u{11340}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11438}-\\u{1143F}\\u{11442}-\\u{11444}\\u{11446}\\u{114B3}-\\u{114B8}\\u{114BA}\\u{114BF}\\u{114C0}\\u{114C2}\\u{114C3}\\u{115B2}-\\u{115B5}\\u{115BC}\\u{115BD}\\u{115BF}\\u{115C0}\\u{115DC}\\u{115DD}\\u{11633}-\\u{1163A}\\u{1163D}\\u{1163F}\\u{11640}\\u{11660}-\\u{1166C}\\u{116AB}\\u{116AD}\\u{116B0}-\\u{116B5}\\u{116B7}\\u{1171D}-\\u{1171F}\\u{11722}-\\u{11725}\\u{11727}-\\u{1172B}\\u{11A01}-\\u{11A06}\\u{11A09}\\u{11A0A}\\u{11A33}-\\u{11A38}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A56}\\u{11A59}-\\u{11A5B}\\u{11A8A}-\\u{11A96}\\u{11A98}\\u{11A99}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C92}-\\u{11CA7}\\u{11CAA}-\\u{11CB0}\\u{11CB2}\\u{11CB3}\\u{11CB5}\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1BCA0}-\\u{1BCA3}\\u{1D167}-\\u{1D169}\\u{1D173}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D200}-\\u{1D245}\\u{1D300}-\\u{1D356}\\u{1D6DB}\\u{1D715}\\u{1D74F}\\u{1D789}\\u{1D7C3}\\u{1D7CE}-\\u{1D7FF}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E800}-\\u{1E8C4}\\u{1E8C7}-\\u{1E8D6}\\u{1E900}-\\u{1E94A}\\u{1E950}-\\u{1E959}\\u{1E95E}\\u{1E95F}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u{1EEF0}\\u{1EEF1}\\u{1F000}-\\u{1F02B}\\u{1F030}-\\u{1F093}\\u{1F0A0}-\\u{1F0AE}\\u{1F0B1}-\\u{1F0BF}\\u{1F0C1}-\\u{1F0CF}\\u{1F0D1}-\\u{1F0F5}\\u{1F100}-\\u{1F10C}\\u{1F16A}\\u{1F16B}\\u{1F260}-\\u{1F265}\\u{1F300}-\\u{1F6D4}\\u{1F6E0}-\\u{1F6EC}\\u{1F6F0}-\\u{1F6F8}\\u{1F700}-\\u{1F773}\\u{1F780}-\\u{1F7D4}\\u{1F800}-\\u{1F80B}\\u{1F810}-\\u{1F847}\\u{1F850}-\\u{1F859}\\u{1F860}-\\u{1F887}\\u{1F890}-\\u{1F8AD}\\u{1F900}-\\u{1F90B}\\u{1F910}-\\u{1F93E}\\u{1F940}-\\u{1F94C}\\u{1F950}-\\u{1F96B}\\u{1F980}-\\u{1F997}\\u{1F9C0}\\u{1F9D0}-\\u{1F9E6}\\u{E0001}\\u{E0020}-\\u{E007F}\\u{E0100}-\\u{E01EF}]*$/u;\nconst bidiS3 = /[0-9\\xB2\\xB3\\xB9\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05EA\\u05F0-\\u05F4\\u0600-\\u0605\\u0608\\u060B\\u060D\\u061B\\u061C\\u061E-\\u064A\\u0660-\\u0669\\u066B-\\u066F\\u0671-\\u06D5\\u06DD\\u06E5\\u06E6\\u06EE-\\u070D\\u070F\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u083E\\u0840-\\u0858\\u085E\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08E2\\u200F\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2488-\\u249B\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBC1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\u{102E1}-\\u{102FB}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10857}-\\u{1089E}\\u{108A7}-\\u{108AF}\\u{108E0}-\\u{108F2}\\u{108F4}\\u{108F5}\\u{108FB}-\\u{1091B}\\u{10920}-\\u{10939}\\u{1093F}\\u{10980}-\\u{109B7}\\u{109BC}-\\u{109CF}\\u{109D2}-\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A40}-\\u{10A47}\\u{10A50}-\\u{10A58}\\u{10A60}-\\u{10A9F}\\u{10AC0}-\\u{10AE4}\\u{10AEB}-\\u{10AF6}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B58}-\\u{10B72}\\u{10B78}-\\u{10B91}\\u{10B99}-\\u{10B9C}\\u{10BA9}-\\u{10BAF}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10CFA}-\\u{10CFF}\\u{10E60}-\\u{10E7E}\\u{1D7CE}-\\u{1D7FF}\\u{1E800}-\\u{1E8C4}\\u{1E8C7}-\\u{1E8CF}\\u{1E900}-\\u{1E943}\\u{1E950}-\\u{1E959}\\u{1E95E}\\u{1E95F}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u{1F100}-\\u{1F10A}][\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\u{101FD}\\u{102E0}\\u{10376}-\\u{1037A}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{11001}\\u{11038}-\\u{11046}\\u{1107F}-\\u{11081}\\u{110B3}-\\u{110B6}\\u{110B9}\\u{110BA}\\u{11100}-\\u{11102}\\u{11127}-\\u{1112B}\\u{1112D}-\\u{11134}\\u{11173}\\u{11180}\\u{11181}\\u{111B6}-\\u{111BE}\\u{111CA}-\\u{111CC}\\u{1122F}-\\u{11231}\\u{11234}\\u{11236}\\u{11237}\\u{1123E}\\u{112DF}\\u{112E3}-\\u{112EA}\\u{11300}\\u{11301}\\u{1133C}\\u{11340}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11438}-\\u{1143F}\\u{11442}-\\u{11444}\\u{11446}\\u{114B3}-\\u{114B8}\\u{114BA}\\u{114BF}\\u{114C0}\\u{114C2}\\u{114C3}\\u{115B2}-\\u{115B5}\\u{115BC}\\u{115BD}\\u{115BF}\\u{115C0}\\u{115DC}\\u{115DD}\\u{11633}-\\u{1163A}\\u{1163D}\\u{1163F}\\u{11640}\\u{116AB}\\u{116AD}\\u{116B0}-\\u{116B5}\\u{116B7}\\u{1171D}-\\u{1171F}\\u{11722}-\\u{11725}\\u{11727}-\\u{1172B}\\u{11A01}-\\u{11A06}\\u{11A09}\\u{11A0A}\\u{11A33}-\\u{11A38}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A56}\\u{11A59}-\\u{11A5B}\\u{11A8A}-\\u{11A96}\\u{11A98}\\u{11A99}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C92}-\\u{11CA7}\\u{11CAA}-\\u{11CB0}\\u{11CB2}\\u{11CB3}\\u{11CB5}\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1D167}-\\u{1D169}\\u{1D17B}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{E0100}-\\u{E01EF}]*$/u;\nconst bidiS4EN = /[0-9\\xB2\\xB3\\xB9\\u06F0-\\u06F9\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2488-\\u249B\\uFF10-\\uFF19\\u{102E1}-\\u{102FB}\\u{1D7CE}-\\u{1D7FF}\\u{1F100}-\\u{1F10A}]/u;\nconst bidiS4AN = /[\\u0600-\\u0605\\u0660-\\u0669\\u066B\\u066C\\u06DD\\u08E2\\u{10E60}-\\u{10E7E}]/u;\nconst bidiS5 = /^[\\0-\\x08\\x0E-\\x1B!-\\x84\\x86-\\u0377\\u037A-\\u037F\\u0384-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u052F\\u0531-\\u0556\\u0559-\\u055F\\u0561-\\u0587\\u0589\\u058A\\u058D-\\u058F\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0606\\u0607\\u0609\\u060A\\u060C\\u060E-\\u061A\\u064B-\\u065F\\u066A\\u0670\\u06D6-\\u06DC\\u06DE-\\u06E4\\u06E7-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07F6-\\u07F9\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09FD\\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-\\u0AF1\\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-\\u0B77\\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-\\u0BFA\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C78-\\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-\\u0D4F\\u0D54-\\u0D63\\u0D66-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2-\\u0DF4\\u0E01-\\u0E3A\\u0E3F-\\u0E5B\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F97\\u0F99-\\u0FBC\\u0FBE-\\u0FCC\\u0FCE-\\u0FDA\\u1000-\\u10C5\\u10C7\\u10CD\\u10D0-\\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-\\u137C\\u1380-\\u1399\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1400-\\u167F\\u1681-\\u169C\\u16A0-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1736\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17DD\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1800-\\u180E\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1940\\u1944-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u19DE-\\u1A1B\\u1A1E-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA0-\\u1AAD\\u1AB0-\\u1ABE\\u1B00-\\u1B4B\\u1B50-\\u1B7C\\u1B80-\\u1BF3\\u1BFC-\\u1C37\\u1C3B-\\u1C49\\u1C4D-\\u1C88\\u1CC0-\\u1CC7\\u1CD0-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FC4\\u1FC6-\\u1FD3\\u1FD6-\\u1FDB\\u1FDD-\\u1FEF\\u1FF2-\\u1FF4\\u1FF6-\\u1FFE\\u200B-\\u200E\\u2010-\\u2027\\u202F-\\u205E\\u2060-\\u2064\\u206A-\\u2071\\u2074-\\u208E\\u2090-\\u209C\\u20A0-\\u20BF\\u20D0-\\u20F0\\u2100-\\u218B\\u2190-\\u2426\\u2440-\\u244A\\u2460-\\u2B73\\u2B76-\\u2B95\\u2B98-\\u2BB9\\u2BBD-\\u2BC8\\u2BCA-\\u2BD2\\u2BEC-\\u2BEF\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CF3\\u2CF9-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D70\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2E49\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303F\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u32FE\\u3300-\\u4DB5\\u4DC0-\\u9FEA\\uA000-\\uA48C\\uA490-\\uA4C6\\uA4D0-\\uA62B\\uA640-\\uA6F7\\uA700-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA82B\\uA830-\\uA839\\uA840-\\uA877\\uA880-\\uA8C5\\uA8CE-\\uA8D9\\uA8E0-\\uA8FD\\uA900-\\uA953\\uA95F-\\uA97C\\uA980-\\uA9CD\\uA9CF-\\uA9D9\\uA9DE-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA5C-\\uAAC2\\uAADB-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB65\\uAB70-\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uD800-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1E\\uFB29\\uFD3E\\uFD3F\\uFDFD\\uFE00-\\uFE19\\uFE20-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFEFF\\uFF01-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFF9-\\uFFFD\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10100}-\\u{10102}\\u{10107}-\\u{10133}\\u{10137}-\\u{1018E}\\u{10190}-\\u{1019B}\\u{101A0}\\u{101D0}-\\u{101FD}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{102E0}-\\u{102FB}\\u{10300}-\\u{10323}\\u{1032D}-\\u{1034A}\\u{10350}-\\u{1037A}\\u{10380}-\\u{1039D}\\u{1039F}-\\u{103C3}\\u{103C8}-\\u{103D5}\\u{10400}-\\u{1049D}\\u{104A0}-\\u{104A9}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{1056F}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{1091F}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{10B39}-\\u{10B3F}\\u{11000}-\\u{1104D}\\u{11052}-\\u{1106F}\\u{1107F}-\\u{110C1}\\u{110D0}-\\u{110E8}\\u{110F0}-\\u{110F9}\\u{11100}-\\u{11134}\\u{11136}-\\u{11143}\\u{11150}-\\u{11176}\\u{11180}-\\u{111CD}\\u{111D0}-\\u{111DF}\\u{111E1}-\\u{111F4}\\u{11200}-\\u{11211}\\u{11213}-\\u{1123E}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A9}\\u{112B0}-\\u{112EA}\\u{112F0}-\\u{112F9}\\u{11300}-\\u{11303}\\u{11305}-\\u{1130C}\\u{1130F}\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}\\u{11333}\\u{11335}-\\u{11339}\\u{1133C}-\\u{11344}\\u{11347}\\u{11348}\\u{1134B}-\\u{1134D}\\u{11350}\\u{11357}\\u{1135D}-\\u{11363}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11400}-\\u{11459}\\u{1145B}\\u{1145D}\\u{11480}-\\u{114C7}\\u{114D0}-\\u{114D9}\\u{11580}-\\u{115B5}\\u{115B8}-\\u{115DD}\\u{11600}-\\u{11644}\\u{11650}-\\u{11659}\\u{11660}-\\u{1166C}\\u{11680}-\\u{116B7}\\u{116C0}-\\u{116C9}\\u{11700}-\\u{11719}\\u{1171D}-\\u{1172B}\\u{11730}-\\u{1173F}\\u{118A0}-\\u{118F2}\\u{118FF}\\u{11A00}-\\u{11A47}\\u{11A50}-\\u{11A83}\\u{11A86}-\\u{11A9C}\\u{11A9E}-\\u{11AA2}\\u{11AC0}-\\u{11AF8}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C36}\\u{11C38}-\\u{11C45}\\u{11C50}-\\u{11C6C}\\u{11C70}-\\u{11C8F}\\u{11C92}-\\u{11CA7}\\u{11CA9}-\\u{11CB6}\\u{11D00}-\\u{11D06}\\u{11D08}\\u{11D09}\\u{11D0B}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D47}\\u{11D50}-\\u{11D59}\\u{12000}-\\u{12399}\\u{12400}-\\u{1246E}\\u{12470}-\\u{12474}\\u{12480}-\\u{12543}\\u{13000}-\\u{1342E}\\u{14400}-\\u{14646}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A60}-\\u{16A69}\\u{16A6E}\\u{16A6F}\\u{16AD0}-\\u{16AED}\\u{16AF0}-\\u{16AF5}\\u{16B00}-\\u{16B45}\\u{16B50}-\\u{16B59}\\u{16B5B}-\\u{16B61}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16F00}-\\u{16F44}\\u{16F50}-\\u{16F7E}\\u{16F8F}-\\u{16F9F}\\u{16FE0}\\u{16FE1}\\u{17000}-\\u{187EC}\\u{18800}-\\u{18AF2}\\u{1B000}-\\u{1B11E}\\u{1B170}-\\u{1B2FB}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1BC9C}-\\u{1BCA3}\\u{1D000}-\\u{1D0F5}\\u{1D100}-\\u{1D126}\\u{1D129}-\\u{1D1E8}\\u{1D200}-\\u{1D245}\\u{1D300}-\\u{1D356}\\u{1D360}-\\u{1D371}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}\\u{1D49F}\\u{1D4A2}\\u{1D4A5}\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D7CB}\\u{1D7CE}-\\u{1DA8B}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{1EEF0}\\u{1EEF1}\\u{1F000}-\\u{1F02B}\\u{1F030}-\\u{1F093}\\u{1F0A0}-\\u{1F0AE}\\u{1F0B1}-\\u{1F0BF}\\u{1F0C1}-\\u{1F0CF}\\u{1F0D1}-\\u{1F0F5}\\u{1F100}-\\u{1F10C}\\u{1F110}-\\u{1F12E}\\u{1F130}-\\u{1F16B}\\u{1F170}-\\u{1F1AC}\\u{1F1E6}-\\u{1F202}\\u{1F210}-\\u{1F23B}\\u{1F240}-\\u{1F248}\\u{1F250}\\u{1F251}\\u{1F260}-\\u{1F265}\\u{1F300}-\\u{1F6D4}\\u{1F6E0}-\\u{1F6EC}\\u{1F6F0}-\\u{1F6F8}\\u{1F700}-\\u{1F773}\\u{1F780}-\\u{1F7D4}\\u{1F800}-\\u{1F80B}\\u{1F810}-\\u{1F847}\\u{1F850}-\\u{1F859}\\u{1F860}-\\u{1F887}\\u{1F890}-\\u{1F8AD}\\u{1F900}-\\u{1F90B}\\u{1F910}-\\u{1F93E}\\u{1F940}-\\u{1F94C}\\u{1F950}-\\u{1F96B}\\u{1F980}-\\u{1F997}\\u{1F9C0}\\u{1F9D0}-\\u{1F9E6}\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2CEB0}-\\u{2EBE0}\\u{2F800}-\\u{2FA1D}\\u{E0001}\\u{E0020}-\\u{E007F}\\u{E0100}-\\u{E01EF}\\u{F0000}-\\u{FFFFD}\\u{100000}-\\u{10FFFD}]*$/u;\nconst bidiS6 = /[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02B8\\u02BB-\\u02C1\\u02D0\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0482\\u048A-\\u052F\\u0531-\\u0556\\u0559-\\u055F\\u0561-\\u0587\\u0589\\u06F0-\\u06F9\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u0980\\u0982\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD-\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u09FC\\u09FD\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AF0\\u0AF9\\u0B02\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD0\\u0BD7\\u0BE6-\\u0BF2\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C7F\\u0C80\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D4E\\u0D4F\\u0D54-\\u0D61\\u0D66-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2-\\u0DF4\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0E5B\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE-\\u0FDA\\u1000-\\u102C\\u1031\\u1038\\u103B\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u10C5\\u10C7\\u10CD\\u10D0-\\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\\u1360-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1735\\u1736\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A19\\u1A1A\\u1A1E-\\u1A55\\u1A57\\u1A61\\u1A63\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA0-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B4B\\u1B50-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1BAE-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2\\u1BF3\\u1BFC-\\u1C2B\\u1C34\\u1C35\\u1C3B-\\u1C49\\u1C4D-\\u1C88\\u1CC0-\\u1CC7\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5-\\u1CF7\\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\\u200E\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u2488-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D70\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u302E\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u3190-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u32FE\\u3300-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA680-\\uA69D\\uA6A0-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA8FD\\uA900-\\uA925\\uA92E-\\uA946\\uA952\\uA953\\uA95F-\\uA97C\\uA983-\\uA9B2\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BD-\\uA9CD\\uA9CF-\\uA9D9\\uA9DE-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D\\uAA50-\\uAA59\\uAA5C-\\uAA7B\\uAA7D-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAAEB\\uAAEE-\\uAAF5\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB65\\uAB70-\\uABE4\\uABE6\\uABE7\\uABE9-\\uABEC\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uD800-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10100}\\u{10102}\\u{10107}-\\u{10133}\\u{10137}-\\u{1013F}\\u{1018D}\\u{1018E}\\u{101D0}-\\u{101FC}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{102E1}-\\u{102FB}\\u{10300}-\\u{10323}\\u{1032D}-\\u{1034A}\\u{10350}-\\u{10375}\\u{10380}-\\u{1039D}\\u{1039F}-\\u{103C3}\\u{103C8}-\\u{103D5}\\u{10400}-\\u{1049D}\\u{104A0}-\\u{104A9}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{1056F}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{11000}\\u{11002}-\\u{11037}\\u{11047}-\\u{1104D}\\u{11066}-\\u{1106F}\\u{11082}-\\u{110B2}\\u{110B7}\\u{110B8}\\u{110BB}-\\u{110C1}\\u{110D0}-\\u{110E8}\\u{110F0}-\\u{110F9}\\u{11103}-\\u{11126}\\u{1112C}\\u{11136}-\\u{11143}\\u{11150}-\\u{11172}\\u{11174}-\\u{11176}\\u{11182}-\\u{111B5}\\u{111BF}-\\u{111C9}\\u{111CD}\\u{111D0}-\\u{111DF}\\u{111E1}-\\u{111F4}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122E}\\u{11232}\\u{11233}\\u{11235}\\u{11238}-\\u{1123D}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A9}\\u{112B0}-\\u{112DE}\\u{112E0}-\\u{112E2}\\u{112F0}-\\u{112F9}\\u{11302}\\u{11303}\\u{11305}-\\u{1130C}\\u{1130F}\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}\\u{11333}\\u{11335}-\\u{11339}\\u{1133D}-\\u{1133F}\\u{11341}-\\u{11344}\\u{11347}\\u{11348}\\u{1134B}-\\u{1134D}\\u{11350}\\u{11357}\\u{1135D}-\\u{11363}\\u{11400}-\\u{11437}\\u{11440}\\u{11441}\\u{11445}\\u{11447}-\\u{11459}\\u{1145B}\\u{1145D}\\u{11480}-\\u{114B2}\\u{114B9}\\u{114BB}-\\u{114BE}\\u{114C1}\\u{114C4}-\\u{114C7}\\u{114D0}-\\u{114D9}\\u{11580}-\\u{115B1}\\u{115B8}-\\u{115BB}\\u{115BE}\\u{115C1}-\\u{115DB}\\u{11600}-\\u{11632}\\u{1163B}\\u{1163C}\\u{1163E}\\u{11641}-\\u{11644}\\u{11650}-\\u{11659}\\u{11680}-\\u{116AA}\\u{116AC}\\u{116AE}\\u{116AF}\\u{116B6}\\u{116C0}-\\u{116C9}\\u{11700}-\\u{11719}\\u{11720}\\u{11721}\\u{11726}\\u{11730}-\\u{1173F}\\u{118A0}-\\u{118F2}\\u{118FF}\\u{11A00}\\u{11A07}\\u{11A08}\\u{11A0B}-\\u{11A32}\\u{11A39}\\u{11A3A}\\u{11A3F}-\\u{11A46}\\u{11A50}\\u{11A57}\\u{11A58}\\u{11A5C}-\\u{11A83}\\u{11A86}-\\u{11A89}\\u{11A97}\\u{11A9A}-\\u{11A9C}\\u{11A9E}-\\u{11AA2}\\u{11AC0}-\\u{11AF8}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2F}\\u{11C3E}-\\u{11C45}\\u{11C50}-\\u{11C6C}\\u{11C70}-\\u{11C8F}\\u{11CA9}\\u{11CB1}\\u{11CB4}\\u{11D00}-\\u{11D06}\\u{11D08}\\u{11D09}\\u{11D0B}-\\u{11D30}\\u{11D46}\\u{11D50}-\\u{11D59}\\u{12000}-\\u{12399}\\u{12400}-\\u{1246E}\\u{12470}-\\u{12474}\\u{12480}-\\u{12543}\\u{13000}-\\u{1342E}\\u{14400}-\\u{14646}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A60}-\\u{16A69}\\u{16A6E}\\u{16A6F}\\u{16AD0}-\\u{16AED}\\u{16AF5}\\u{16B00}-\\u{16B2F}\\u{16B37}-\\u{16B45}\\u{16B50}-\\u{16B59}\\u{16B5B}-\\u{16B61}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16F00}-\\u{16F44}\\u{16F50}-\\u{16F7E}\\u{16F93}-\\u{16F9F}\\u{16FE0}\\u{16FE1}\\u{17000}-\\u{187EC}\\u{18800}-\\u{18AF2}\\u{1B000}-\\u{1B11E}\\u{1B170}-\\u{1B2FB}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1BC9C}\\u{1BC9F}\\u{1D000}-\\u{1D0F5}\\u{1D100}-\\u{1D126}\\u{1D129}-\\u{1D166}\\u{1D16A}-\\u{1D172}\\u{1D183}\\u{1D184}\\u{1D18C}-\\u{1D1A9}\\u{1D1AE}-\\u{1D1E8}\\u{1D360}-\\u{1D371}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}\\u{1D49F}\\u{1D4A2}\\u{1D4A5}\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6DA}\\u{1D6DC}-\\u{1D714}\\u{1D716}-\\u{1D74E}\\u{1D750}-\\u{1D788}\\u{1D78A}-\\u{1D7C2}\\u{1D7C4}-\\u{1D7CB}\\u{1D7CE}-\\u{1D9FF}\\u{1DA37}-\\u{1DA3A}\\u{1DA6D}-\\u{1DA74}\\u{1DA76}-\\u{1DA83}\\u{1DA85}-\\u{1DA8B}\\u{1F100}-\\u{1F10A}\\u{1F110}-\\u{1F12E}\\u{1F130}-\\u{1F169}\\u{1F170}-\\u{1F1AC}\\u{1F1E6}-\\u{1F202}\\u{1F210}-\\u{1F23B}\\u{1F240}-\\u{1F248}\\u{1F250}\\u{1F251}\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2CEB0}-\\u{2EBE0}\\u{2F800}-\\u{2FA1D}\\u{F0000}-\\u{FFFFD}\\u{100000}-\\u{10FFFD}][\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\u{101FD}\\u{102E0}\\u{10376}-\\u{1037A}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{11001}\\u{11038}-\\u{11046}\\u{1107F}-\\u{11081}\\u{110B3}-\\u{110B6}\\u{110B9}\\u{110BA}\\u{11100}-\\u{11102}\\u{11127}-\\u{1112B}\\u{1112D}-\\u{11134}\\u{11173}\\u{11180}\\u{11181}\\u{111B6}-\\u{111BE}\\u{111CA}-\\u{111CC}\\u{1122F}-\\u{11231}\\u{11234}\\u{11236}\\u{11237}\\u{1123E}\\u{112DF}\\u{112E3}-\\u{112EA}\\u{11300}\\u{11301}\\u{1133C}\\u{11340}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11438}-\\u{1143F}\\u{11442}-\\u{11444}\\u{11446}\\u{114B3}-\\u{114B8}\\u{114BA}\\u{114BF}\\u{114C0}\\u{114C2}\\u{114C3}\\u{115B2}-\\u{115B5}\\u{115BC}\\u{115BD}\\u{115BF}\\u{115C0}\\u{115DC}\\u{115DD}\\u{11633}-\\u{1163A}\\u{1163D}\\u{1163F}\\u{11640}\\u{116AB}\\u{116AD}\\u{116B0}-\\u{116B5}\\u{116B7}\\u{1171D}-\\u{1171F}\\u{11722}-\\u{11725}\\u{11727}-\\u{1172B}\\u{11A01}-\\u{11A06}\\u{11A09}\\u{11A0A}\\u{11A33}-\\u{11A38}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A56}\\u{11A59}-\\u{11A5B}\\u{11A8A}-\\u{11A96}\\u{11A98}\\u{11A99}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C92}-\\u{11CA7}\\u{11CAA}-\\u{11CB0}\\u{11CB2}\\u{11CB3}\\u{11CB5}\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1D167}-\\u{1D169}\\u{1D17B}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{E0100}-\\u{E01EF}]*$/u;\n\nmodule.exports = {\n combiningMarks,\n combiningClassVirama,\n validZWNJ,\n bidiDomain,\n bidiS1LTR,\n bidiS1RTL,\n bidiS2,\n bidiS3,\n bidiS4EN,\n bidiS4AN,\n bidiS5,\n bidiS6\n};\n","\"use strict\";\nconst stableSortBy = require(\"lodash.sortby\");\nconst urlencoded = require(\"./urlencoded\");\n\nexports.implementation = class URLSearchParamsImpl {\n constructor(constructorArgs, { doNotStripQMark = false }) {\n let init = constructorArgs[0];\n this._list = [];\n this._url = null;\n\n if (!doNotStripQMark && typeof init === \"string\" && init[0] === \"?\") {\n init = init.slice(1);\n }\n\n if (Array.isArray(init)) {\n for (const pair of init) {\n if (pair.length !== 2) {\n throw new TypeError(\"Failed to construct 'URLSearchParams': parameter 1 sequence's element does not \" +\n \"contain exactly two elements.\");\n }\n this._list.push([pair[0], pair[1]]);\n }\n } else if (typeof init === \"object\" && Object.getPrototypeOf(init) === null) {\n for (const name of Object.keys(init)) {\n const value = init[name];\n this._list.push([name, value]);\n }\n } else {\n this._list = urlencoded.parseUrlencoded(init);\n }\n }\n\n _updateSteps() {\n if (this._url !== null) {\n let query = urlencoded.serializeUrlencoded(this._list);\n if (query === \"\") {\n query = null;\n }\n this._url._url.query = query;\n }\n }\n\n append(name, value) {\n this._list.push([name, value]);\n this._updateSteps();\n }\n\n delete(name) {\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n this._list.splice(i, 1);\n } else {\n i++;\n }\n }\n this._updateSteps();\n }\n\n get(name) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return tuple[1];\n }\n }\n return null;\n }\n\n getAll(name) {\n const output = [];\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n output.push(tuple[1]);\n }\n }\n return output;\n }\n\n has(name) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return true;\n }\n }\n return false;\n }\n\n set(name, value) {\n let found = false;\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n if (found) {\n this._list.splice(i, 1);\n } else {\n found = true;\n this._list[i][1] = value;\n i++;\n }\n } else {\n i++;\n }\n }\n if (!found) {\n this._list.push([name, value]);\n }\n this._updateSteps();\n }\n\n sort() {\n this._list = stableSortBy(this._list, [0]);\n this._updateSteps();\n }\n\n [Symbol.iterator]() {\n return this._list[Symbol.iterator]();\n }\n\n toString() {\n return urlencoded.serializeUrlencoded(this._list);\n }\n};\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, function(o) { return o.user; });\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n *\n * _.sortBy(users, 'user', function(o) {\n * return Math.floor(o.age / 10);\n * });\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = sortBy;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports', './diff', './added', './deleted', './updated', './detailed'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('./diff'), require('./added'), require('./deleted'), require('./updated'), require('./detailed'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.diff, global.added, global.deleted, global.updated, global.detailed);\n global.index = mod.exports;\n }\n})(this, function (exports, _diff, _added, _deleted, _updated, _detailed) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.detailedDiff = exports.updatedDiff = exports.deletedDiff = exports.diff = exports.addedDiff = undefined;\n\n var _diff2 = _interopRequireDefault(_diff);\n\n var _added2 = _interopRequireDefault(_added);\n\n var _deleted2 = _interopRequireDefault(_deleted);\n\n var _updated2 = _interopRequireDefault(_updated);\n\n var _detailed2 = _interopRequireDefault(_detailed);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n exports.addedDiff = _added2.default;\n exports.diff = _diff2.default;\n exports.deletedDiff = _deleted2.default;\n exports.updatedDiff = _updated2.default;\n exports.detailedDiff = _detailed2.default;\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.utils);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _utils) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var diff = function diff(lhs, rhs) {\n if (lhs === rhs) return {}; // equal return no diff\n\n if (!(0, _utils.isObject)(lhs) || !(0, _utils.isObject)(rhs)) return rhs; // return updated rhs\n\n var l = (0, _utils.properObject)(lhs);\n var r = (0, _utils.properObject)(rhs);\n\n var deletedValues = Object.keys(l).reduce(function (acc, key) {\n return r.hasOwnProperty(key) ? acc : _extends({}, acc, _defineProperty({}, key, undefined));\n }, {});\n\n if ((0, _utils.isDate)(l) || (0, _utils.isDate)(r)) {\n if (l.valueOf() == r.valueOf()) return {};\n return r;\n }\n\n return Object.keys(r).reduce(function (acc, key) {\n if (!l.hasOwnProperty(key)) return _extends({}, acc, _defineProperty({}, key, r[key])); // return added r key\n\n var difference = diff(l[key], r[key]);\n\n if ((0, _utils.isObject)(difference) && (0, _utils.isEmpty)(difference) && !(0, _utils.isDate)(difference)) return acc; // return no diff\n\n return _extends({}, acc, _defineProperty({}, key, difference)); // return updated key\n }, deletedValues);\n };\n\n exports.default = diff;\n module.exports = exports['default'];\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../added', '../deleted', '../updated'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../added'), require('../deleted'), require('../updated'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.added, global.deleted, global.updated);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _added, _deleted, _updated) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _added2 = _interopRequireDefault(_added);\n\n var _deleted2 = _interopRequireDefault(_deleted);\n\n var _updated2 = _interopRequireDefault(_updated);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var detailedDiff = function detailedDiff(lhs, rhs) {\n return {\n added: (0, _added2.default)(lhs, rhs),\n deleted: (0, _deleted2.default)(lhs, rhs),\n updated: (0, _updated2.default)(lhs, rhs)\n };\n };\n\n exports.default = detailedDiff;\n module.exports = exports['default'];\n});","\"use strict\";\n\nvar forEach = require(\"./collection-utils\").forEach;\nvar elementUtilsMaker = require(\"./element-utils\");\nvar listenerHandlerMaker = require(\"./listener-handler\");\nvar idGeneratorMaker = require(\"./id-generator\");\nvar idHandlerMaker = require(\"./id-handler\");\nvar reporterMaker = require(\"./reporter\");\nvar browserDetector = require(\"./browser-detector\");\nvar batchProcessorMaker = require(\"batch-processor\");\nvar stateHandler = require(\"./state-handler\");\n\n//Detection strategies.\nvar objectStrategyMaker = require(\"./detection-strategy/object.js\");\nvar scrollStrategyMaker = require(\"./detection-strategy/scroll.js\");\n\nfunction isCollection(obj) {\n return Array.isArray(obj) || obj.length !== undefined;\n}\n\nfunction toArray(collection) {\n if (!Array.isArray(collection)) {\n var array = [];\n forEach(collection, function (obj) {\n array.push(obj);\n });\n return array;\n } else {\n return collection;\n }\n}\n\nfunction isElement(obj) {\n return obj && obj.nodeType === 1;\n}\n\n/**\n * @typedef idHandler\n * @type {object}\n * @property {function} get Gets the resize detector id of the element.\n * @property {function} set Generate and sets the resize detector id of the element.\n */\n\n/**\n * @typedef Options\n * @type {object}\n * @property {boolean} callOnAdd Determines if listeners should be called when they are getting added.\n Default is true. If true, the listener is guaranteed to be called when it has been added.\n If false, the listener will not be guarenteed to be called when it has been added (does not prevent it from being called).\n * @property {idHandler} idHandler A custom id handler that is responsible for generating, setting and retrieving id's for elements.\n If not provided, a default id handler will be used.\n * @property {reporter} reporter A custom reporter that handles reporting logs, warnings and errors.\n If not provided, a default id handler will be used.\n If set to false, then nothing will be reported.\n * @property {boolean} debug If set to true, the the system will report debug messages as default for the listenTo method.\n */\n\n/**\n * Creates an element resize detector instance.\n * @public\n * @param {Options?} options Optional global options object that will decide how this instance will work.\n */\nmodule.exports = function(options) {\n options = options || {};\n\n //idHandler is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var idHandler;\n\n if (options.idHandler) {\n // To maintain compatability with idHandler.get(element, readonly), make sure to wrap the given idHandler\n // so that readonly flag always is true when it's used here. This may be removed next major version bump.\n idHandler = {\n get: function (element) { return options.idHandler.get(element, true); },\n set: options.idHandler.set\n };\n } else {\n var idGenerator = idGeneratorMaker();\n var defaultIdHandler = idHandlerMaker({\n idGenerator: idGenerator,\n stateHandler: stateHandler\n });\n idHandler = defaultIdHandler;\n }\n\n //reporter is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var reporter = options.reporter;\n\n if(!reporter) {\n //If options.reporter is false, then the reporter should be quiet.\n var quiet = reporter === false;\n reporter = reporterMaker(quiet);\n }\n\n //batchProcessor is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var batchProcessor = getOption(options, \"batchProcessor\", batchProcessorMaker({ reporter: reporter }));\n\n //Options to be used as default for the listenTo function.\n var globalOptions = {};\n globalOptions.callOnAdd = !!getOption(options, \"callOnAdd\", true);\n globalOptions.debug = !!getOption(options, \"debug\", false);\n\n var eventListenerHandler = listenerHandlerMaker(idHandler);\n var elementUtils = elementUtilsMaker({\n stateHandler: stateHandler\n });\n\n //The detection strategy to be used.\n var detectionStrategy;\n var desiredStrategy = getOption(options, \"strategy\", \"object\");\n var strategyOptions = {\n reporter: reporter,\n batchProcessor: batchProcessor,\n stateHandler: stateHandler,\n idHandler: idHandler\n };\n\n if(desiredStrategy === \"scroll\") {\n if (browserDetector.isLegacyOpera()) {\n reporter.warn(\"Scroll strategy is not supported on legacy Opera. Changing to object strategy.\");\n desiredStrategy = \"object\";\n } else if (browserDetector.isIE(9)) {\n reporter.warn(\"Scroll strategy is not supported on IE9. Changing to object strategy.\");\n desiredStrategy = \"object\";\n }\n }\n\n if(desiredStrategy === \"scroll\") {\n detectionStrategy = scrollStrategyMaker(strategyOptions);\n } else if(desiredStrategy === \"object\") {\n detectionStrategy = objectStrategyMaker(strategyOptions);\n } else {\n throw new Error(\"Invalid strategy name: \" + desiredStrategy);\n }\n\n //Calls can be made to listenTo with elements that are still being installed.\n //Also, same elements can occur in the elements list in the listenTo function.\n //With this map, the ready callbacks can be synchronized between the calls\n //so that the ready callback can always be called when an element is ready - even if\n //it wasn't installed from the function itself.\n var onReadyCallbacks = {};\n\n /**\n * Makes the given elements resize-detectable and starts listening to resize events on the elements. Calls the event callback for each event for each element.\n * @public\n * @param {Options?} options Optional options object. These options will override the global options. Some options may not be overriden, such as idHandler.\n * @param {element[]|element} elements The given array of elements to detect resize events of. Single element is also valid.\n * @param {function} listener The callback to be executed for each resize event for each element.\n */\n function listenTo(options, elements, listener) {\n function onResizeCallback(element) {\n var listeners = eventListenerHandler.get(element);\n forEach(listeners, function callListenerProxy(listener) {\n listener(element);\n });\n }\n\n function addListener(callOnAdd, element, listener) {\n eventListenerHandler.add(element, listener);\n\n if(callOnAdd) {\n listener(element);\n }\n }\n\n //Options object may be omitted.\n if(!listener) {\n listener = elements;\n elements = options;\n options = {};\n }\n\n if(!elements) {\n throw new Error(\"At least one element required.\");\n }\n\n if(!listener) {\n throw new Error(\"Listener required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n var elementsReady = 0;\n\n var callOnAdd = getOption(options, \"callOnAdd\", globalOptions.callOnAdd);\n var onReadyCallback = getOption(options, \"onReady\", function noop() {});\n var debug = getOption(options, \"debug\", globalOptions.debug);\n\n forEach(elements, function attachListenerToElement(element) {\n if (!stateHandler.getState(element)) {\n stateHandler.initState(element);\n idHandler.set(element);\n }\n\n var id = idHandler.get(element);\n\n debug && reporter.log(\"Attaching listener to element\", id, element);\n\n if(!elementUtils.isDetectable(element)) {\n debug && reporter.log(id, \"Not detectable.\");\n if(elementUtils.isBusy(element)) {\n debug && reporter.log(id, \"System busy making it detectable\");\n\n //The element is being prepared to be detectable. Do not make it detectable.\n //Just add the listener, because the element will soon be detectable.\n addListener(callOnAdd, element, listener);\n onReadyCallbacks[id] = onReadyCallbacks[id] || [];\n onReadyCallbacks[id].push(function onReady() {\n elementsReady++;\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n return;\n }\n\n debug && reporter.log(id, \"Making detectable...\");\n //The element is not prepared to be detectable, so do prepare it and add a listener to it.\n elementUtils.markBusy(element, true);\n return detectionStrategy.makeDetectable({ debug: debug }, element, function onElementDetectable(element) {\n debug && reporter.log(id, \"onElementDetectable\");\n\n if (stateHandler.getState(element)) {\n elementUtils.markAsDetectable(element);\n elementUtils.markBusy(element, false);\n detectionStrategy.addListener(element, onResizeCallback);\n addListener(callOnAdd, element, listener);\n\n // Since the element size might have changed since the call to \"listenTo\", we need to check for this change,\n // so that a resize event may be emitted.\n // Having the startSize object is optional (since it does not make sense in some cases such as unrendered elements), so check for its existance before.\n // Also, check the state existance before since the element may have been uninstalled in the installation process.\n var state = stateHandler.getState(element);\n if (state && state.startSize) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n if (state.startSize.width !== width || state.startSize.height !== height) {\n onResizeCallback(element);\n }\n }\n\n if(onReadyCallbacks[id]) {\n forEach(onReadyCallbacks[id], function(callback) {\n callback();\n });\n }\n } else {\n // The element has been unisntalled before being detectable.\n debug && reporter.log(id, \"Element uninstalled before being detectable.\");\n }\n\n delete onReadyCallbacks[id];\n\n elementsReady++;\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n }\n\n debug && reporter.log(id, \"Already detecable, adding listener.\");\n\n //The element has been prepared to be detectable and is ready to be listened to.\n addListener(callOnAdd, element, listener);\n elementsReady++;\n });\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n }\n\n function uninstall(elements) {\n if(!elements) {\n return reporter.error(\"At least one element is required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n forEach(elements, function (element) {\n eventListenerHandler.removeAllListeners(element);\n detectionStrategy.uninstall(element);\n stateHandler.cleanState(element);\n });\n }\n\n return {\n listenTo: listenTo,\n removeListener: eventListenerHandler.removeListener,\n removeAllListeners: eventListenerHandler.removeAllListeners,\n uninstall: uninstall\n };\n};\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","\"use strict\";\n\nmodule.exports = function(options) {\n var getState = options.stateHandler.getState;\n\n /**\n * Tells if the element has been made detectable and ready to be listened for resize events.\n * @public\n * @param {element} The element to check.\n * @returns {boolean} True or false depending on if the element is detectable or not.\n */\n function isDetectable(element) {\n var state = getState(element);\n return state && !!state.isDetectable;\n }\n\n /**\n * Marks the element that it has been made detectable and ready to be listened for resize events.\n * @public\n * @param {element} The element to mark.\n */\n function markAsDetectable(element) {\n getState(element).isDetectable = true;\n }\n\n /**\n * Tells if the element is busy or not.\n * @public\n * @param {element} The element to check.\n * @returns {boolean} True or false depending on if the element is busy or not.\n */\n function isBusy(element) {\n return !!getState(element).busy;\n }\n\n /**\n * Marks the object is busy and should not be made detectable.\n * @public\n * @param {element} element The element to mark.\n * @param {boolean} busy If the element is busy or not.\n */\n function markBusy(element, busy) {\n getState(element).busy = !!busy;\n }\n\n return {\n isDetectable: isDetectable,\n markAsDetectable: markAsDetectable,\n isBusy: isBusy,\n markBusy: markBusy\n };\n};\n","\"use strict\";\n\nmodule.exports = function(idHandler) {\n var eventListeners = {};\n\n /**\n * Gets all listeners for the given element.\n * @public\n * @param {element} element The element to get all listeners for.\n * @returns All listeners for the given element.\n */\n function getListeners(element) {\n var id = idHandler.get(element);\n\n if (id === undefined) {\n return [];\n }\n\n return eventListeners[id] || [];\n }\n\n /**\n * Stores the given listener for the given element. Will not actually add the listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The callback that the element has added.\n */\n function addListener(element, listener) {\n var id = idHandler.get(element);\n\n if(!eventListeners[id]) {\n eventListeners[id] = [];\n }\n\n eventListeners[id].push(listener);\n }\n\n function removeListener(element, listener) {\n var listeners = getListeners(element);\n for (var i = 0, len = listeners.length; i < len; ++i) {\n if (listeners[i] === listener) {\n listeners.splice(i, 1);\n break;\n }\n }\n }\n\n function removeAllListeners(element) {\n var listeners = getListeners(element);\n if (!listeners) { return; }\n listeners.length = 0;\n }\n\n return {\n get: getListeners,\n add: addListener,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners\n };\n};\n","\"use strict\";\n\nmodule.exports = function() {\n var idCount = 1;\n\n /**\n * Generates a new unique id in the context.\n * @public\n * @returns {number} A unique id in the context.\n */\n function generate() {\n return idCount++;\n }\n\n return {\n generate: generate\n };\n};\n","\"use strict\";\n\nmodule.exports = function(options) {\n var idGenerator = options.idGenerator;\n var getState = options.stateHandler.getState;\n\n /**\n * Gets the resize detector id of the element.\n * @public\n * @param {element} element The target element to get the id of.\n * @returns {string|number|null} The id of the element. Null if it has no id.\n */\n function getId(element) {\n var state = getState(element);\n\n if (state && state.id !== undefined) {\n return state.id;\n }\n\n return null;\n }\n\n /**\n * Sets the resize detector id of the element. Requires the element to have a resize detector state initialized.\n * @public\n * @param {element} element The target element to set the id of.\n * @returns {string|number|null} The id of the element.\n */\n function setId(element) {\n var state = getState(element);\n\n if (!state) {\n throw new Error(\"setId required the element to have a resize detection state.\");\n }\n\n var id = idGenerator.generate();\n\n state.id = id;\n\n return id;\n }\n\n return {\n get: getId,\n set: setId\n };\n};\n","\"use strict\";\n\n/* global console: false */\n\n/**\n * Reporter that handles the reporting of logs, warnings and errors.\n * @public\n * @param {boolean} quiet Tells if the reporter should be quiet or not.\n */\nmodule.exports = function(quiet) {\n function noop() {\n //Does nothing.\n }\n\n var reporter = {\n log: noop,\n warn: noop,\n error: noop\n };\n\n if(!quiet && window.console) {\n var attachFunction = function(reporter, name) {\n //The proxy is needed to be able to call the method with the console context,\n //since we cannot use bind.\n reporter[name] = function reporterProxy() {\n var f = console[name];\n if (f.apply) { //IE9 does not support console.log.apply :)\n f.apply(console, arguments);\n } else {\n for (var i = 0; i < arguments.length; i++) {\n f(arguments[i]);\n }\n }\n };\n };\n\n attachFunction(reporter, \"log\");\n attachFunction(reporter, \"warn\");\n attachFunction(reporter, \"error\");\n }\n\n return reporter;\n};","\"use strict\";\n\nvar utils = require(\"./utils\");\n\nmodule.exports = function batchProcessorMaker(options) {\n options = options || {};\n var reporter = options.reporter;\n var asyncProcess = utils.getOption(options, \"async\", true);\n var autoProcess = utils.getOption(options, \"auto\", true);\n\n if(autoProcess && !asyncProcess) {\n reporter && reporter.warn(\"Invalid options combination. auto=true and async=false is invalid. Setting async=true.\");\n asyncProcess = true;\n }\n\n var batch = Batch();\n var asyncFrameHandler;\n var isProcessing = false;\n\n function addFunction(level, fn) {\n if(!isProcessing && autoProcess && asyncProcess && batch.size() === 0) {\n // Since this is async, it is guaranteed to be executed after that the fn is added to the batch.\n // This needs to be done before, since we're checking the size of the batch to be 0.\n processBatchAsync();\n }\n\n batch.add(level, fn);\n }\n\n function processBatch() {\n // Save the current batch, and create a new batch so that incoming functions are not added into the currently processing batch.\n // Continue processing until the top-level batch is empty (functions may be added to the new batch while processing, and so on).\n isProcessing = true;\n while (batch.size()) {\n var processingBatch = batch;\n batch = Batch();\n processingBatch.process();\n }\n isProcessing = false;\n }\n\n function forceProcessBatch(localAsyncProcess) {\n if (isProcessing) {\n return;\n }\n\n if(localAsyncProcess === undefined) {\n localAsyncProcess = asyncProcess;\n }\n\n if(asyncFrameHandler) {\n cancelFrame(asyncFrameHandler);\n asyncFrameHandler = null;\n }\n\n if(localAsyncProcess) {\n processBatchAsync();\n } else {\n processBatch();\n }\n }\n\n function processBatchAsync() {\n asyncFrameHandler = requestFrame(processBatch);\n }\n\n function clearBatch() {\n batch = {};\n batchSize = 0;\n topLevel = 0;\n bottomLevel = 0;\n }\n\n function cancelFrame(listener) {\n // var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;\n var cancel = clearTimeout;\n return cancel(listener);\n }\n\n function requestFrame(callback) {\n // var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(fn) { return window.setTimeout(fn, 20); };\n var raf = function(fn) { return setTimeout(fn, 0); };\n return raf(callback);\n }\n\n return {\n add: addFunction,\n force: forceProcessBatch\n };\n};\n\nfunction Batch() {\n var batch = {};\n var size = 0;\n var topLevel = 0;\n var bottomLevel = 0;\n\n function add(level, fn) {\n if(!fn) {\n fn = level;\n level = 0;\n }\n\n if(level > topLevel) {\n topLevel = level;\n } else if(level < bottomLevel) {\n bottomLevel = level;\n }\n\n if(!batch[level]) {\n batch[level] = [];\n }\n\n batch[level].push(fn);\n size++;\n }\n\n function process() {\n for(var level = bottomLevel; level <= topLevel; level++) {\n var fns = batch[level];\n\n for(var i = 0; i < fns.length; i++) {\n var fn = fns[i];\n fn();\n }\n }\n }\n\n function getSize() {\n return size;\n }\n\n return {\n add: add,\n process: process,\n size: getSize\n };\n}\n","\"use strict\";\n\nvar utils = module.exports = {};\n\nutils.getOption = getOption;\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","\"use strict\";\n\nvar prop = \"_erd\";\n\nfunction initState(element) {\n element[prop] = {};\n return getState(element);\n}\n\nfunction getState(element) {\n return element[prop];\n}\n\nfunction cleanState(element) {\n delete element[prop];\n}\n\nmodule.exports = {\n initState: initState,\n getState: getState,\n cleanState: cleanState\n};\n","/**\n * Resize detection strategy that injects objects to elements in order to detect resize events.\n * Heavily inspired by: http://www.backalleycoder.com/2013/03/18/cross-browser-event-based-element-resize-detection/\n */\n\n\"use strict\";\n\nvar browserDetector = require(\"../browser-detector\");\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n\n if(!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n if(!getObject(element)) {\n throw new Error(\"Element is not detectable by this strategy.\");\n }\n\n function listenerProxy() {\n listener(element);\n }\n\n if(browserDetector.isIE(8)) {\n //IE 8 does not support object, but supports the resize event directly on elements.\n getState(element).object = {\n proxy: listenerProxy\n };\n element.attachEvent(\"onresize\", listenerProxy);\n } else {\n var object = getObject(element);\n object.contentDocument.defaultView.addEventListener(\"resize\", listenerProxy);\n }\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n var debug = options.debug;\n\n function injectObject(element, callback) {\n var OBJECT_STYLE = \"display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; padding: 0; margin: 0; opacity: 0; z-index: -1000; pointer-events: none;\";\n\n //The target element needs to be positioned (everything except static) so the absolute positioned object will be positioned relative to the target element.\n\n // Position altering may be performed directly or on object load, depending on if style resolution is possible directly or not.\n var positionCheckPerformed = false;\n\n // The element may not yet be attached to the DOM, and therefore the style object may be empty in some browsers.\n // Since the style object is a reference, it will be updated as soon as the element is attached to the DOM.\n var style = window.getComputedStyle(element);\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n getState(element).startSize = {\n width: width,\n height: height\n };\n\n function mutateDom() {\n function alterPositionStyles() {\n if(style.position === \"static\") {\n element.style.position = \"relative\";\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function onObjectLoad() {\n // The object has been loaded, which means that the element now is guaranteed to be attached to the DOM.\n if (!positionCheckPerformed) {\n alterPositionStyles();\n }\n\n /*jshint validthis: true */\n\n function getDocument(element, callback) {\n //Opera 12 seem to call the object.onload before the actual document has been created.\n //So if it is not present, poll it with an timeout until it is present.\n //TODO: Could maybe be handled better with object.onreadystatechange or similar.\n if(!element.contentDocument) {\n setTimeout(function checkForObjectDocument() {\n getDocument(element, callback);\n }, 100);\n\n return;\n }\n\n callback(element.contentDocument);\n }\n\n //Mutating the object element here seems to fire another load event.\n //Mutating the inner document of the object element is fine though.\n var objectElement = this;\n\n //Create the style element to be added to the object.\n getDocument(objectElement, function onObjectDocumentReady(objectDocument) {\n //Notify that the element is ready to be listened to.\n callback(element);\n });\n }\n\n // The element may be detached from the DOM, and some browsers does not support style resolving of detached elements.\n // The alterPositionStyles needs to be delayed until we know the element has been attached to the DOM (which we are sure of when the onObjectLoad has been fired), if style resolution is not possible.\n if (style.position !== \"\") {\n alterPositionStyles(style);\n positionCheckPerformed = true;\n }\n\n //Add an object element as a child to the target element that will be listened to for resize events.\n var object = document.createElement(\"object\");\n object.style.cssText = OBJECT_STYLE;\n object.tabIndex = -1;\n object.type = \"text/html\";\n object.onload = onObjectLoad;\n\n //Safari: This must occur before adding the object to the DOM.\n //IE: Does not like that this happens before, even if it is also added after.\n if(!browserDetector.isIE()) {\n object.data = \"about:blank\";\n }\n\n element.appendChild(object);\n getState(element).object = object;\n\n //IE: This must occur after adding the object to the DOM.\n if(browserDetector.isIE()) {\n object.data = \"about:blank\";\n }\n }\n\n if(batchProcessor) {\n batchProcessor.add(mutateDom);\n } else {\n mutateDom();\n }\n }\n\n if(browserDetector.isIE(8)) {\n //IE 8 does not support objects properly. Luckily they do support the resize event.\n //So do not inject the object and notify that the element is already ready to be listened to.\n //The event handler for the resize event is attached in the utils.addListener instead.\n callback(element);\n } else {\n injectObject(element, callback);\n }\n }\n\n /**\n * Returns the child object of the target element.\n * @private\n * @param {element} element The target element.\n * @returns The object element of the target.\n */\n function getObject(element) {\n return getState(element).object;\n }\n\n function uninstall(element) {\n if(browserDetector.isIE(8)) {\n element.detachEvent(\"onresize\", getState(element).object.proxy);\n } else {\n element.removeChild(getObject(element));\n }\n delete getState(element).object;\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall\n };\n};\n","/**\n * Resize detection strategy that injects divs to elements in order to detect resize events on scroll events.\n * Heavily inspired by: https://github.com/marcj/css-element-queries/blob/master/src/ResizeSensor.js\n */\n\n\"use strict\";\n\nvar forEach = require(\"../collection-utils\").forEach;\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n var hasState = options.stateHandler.hasState;\n var idHandler = options.idHandler;\n\n if (!batchProcessor) {\n throw new Error(\"Missing required dependency: batchProcessor\");\n }\n\n if (!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n //TODO: Could this perhaps be done at installation time?\n var scrollbarSizes = getScrollbarSizes();\n\n // Inject the scrollbar styling that prevents them from appearing sometimes in Chrome.\n // The injected container needs to have a class, so that it may be styled with CSS (pseudo elements).\n var styleId = \"erd_scroll_detection_scrollbar_style\";\n var detectionContainerClass = \"erd_scroll_detection_container\";\n injectScrollStyle(styleId, detectionContainerClass);\n\n function getScrollbarSizes() {\n var width = 500;\n var height = 500;\n\n var child = document.createElement(\"div\");\n child.style.cssText = \"position: absolute; width: \" + width*2 + \"px; height: \" + height*2 + \"px; visibility: hidden; margin: 0; padding: 0;\";\n\n var container = document.createElement(\"div\");\n container.style.cssText = \"position: absolute; width: \" + width + \"px; height: \" + height + \"px; overflow: scroll; visibility: none; top: \" + -width*3 + \"px; left: \" + -height*3 + \"px; visibility: hidden; margin: 0; padding: 0;\";\n\n container.appendChild(child);\n\n document.body.insertBefore(container, document.body.firstChild);\n\n var widthSize = width - container.clientWidth;\n var heightSize = height - container.clientHeight;\n\n document.body.removeChild(container);\n\n return {\n width: widthSize,\n height: heightSize\n };\n }\n\n function injectScrollStyle(styleId, containerClass) {\n function injectStyle(style, method) {\n method = method || function (element) {\n document.head.appendChild(element);\n };\n\n var styleElement = document.createElement(\"style\");\n styleElement.innerHTML = style;\n styleElement.id = styleId;\n method(styleElement);\n return styleElement;\n }\n\n if (!document.getElementById(styleId)) {\n var containerAnimationClass = containerClass + \"_animation\";\n var containerAnimationActiveClass = containerClass + \"_animation_active\";\n var style = \"/* Created by the element-resize-detector library. */\\n\";\n style += \".\" + containerClass + \" > div::-webkit-scrollbar { display: none; }\\n\\n\";\n style += \".\" + containerAnimationActiveClass + \" { -webkit-animation-duration: 0.1s; animation-duration: 0.1s; -webkit-animation-name: \" + containerAnimationClass + \"; animation-name: \" + containerAnimationClass + \"; }\\n\";\n style += \"@-webkit-keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\\n\";\n style += \"@keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\";\n injectStyle(style);\n }\n }\n\n function addAnimationClass(element) {\n element.className += \" \" + detectionContainerClass + \"_animation_active\";\n }\n\n function addEvent(el, name, cb) {\n if (el.addEventListener) {\n el.addEventListener(name, cb);\n } else if(el.attachEvent) {\n el.attachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to add event listeners.\");\n }\n }\n\n function removeEvent(el, name, cb) {\n if (el.removeEventListener) {\n el.removeEventListener(name, cb);\n } else if(el.detachEvent) {\n el.detachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to remove event listeners.\");\n }\n }\n\n function getExpandElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[0];\n }\n\n function getShrinkElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[1];\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n var listeners = getState(element).listeners;\n\n if (!listeners.push) {\n throw new Error(\"Cannot add listener to an element that is not detectable.\");\n }\n\n getState(element).listeners.push(listener);\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n\n function debug() {\n if (options.debug) {\n var args = Array.prototype.slice.call(arguments);\n args.unshift(idHandler.get(element), \"Scroll: \");\n if (reporter.log.apply) {\n reporter.log.apply(null, args);\n } else {\n for (var i = 0; i < args.length; i++) {\n reporter.log(args[i]);\n }\n }\n }\n }\n\n function isDetached(element) {\n function isInDocument(element) {\n return element === element.ownerDocument.body || element.ownerDocument.body.contains(element);\n }\n\n if (!isInDocument(element)) {\n return true;\n }\n\n // FireFox returns null style in hidden iframes. See https://github.com/wnr/element-resize-detector/issues/68 and https://bugzilla.mozilla.org/show_bug.cgi?id=795520\n if (window.getComputedStyle(element) === null) {\n return true;\n }\n\n return false;\n }\n\n function isUnrendered(element) {\n // Check the absolute positioned container since the top level container is display: inline.\n var container = getState(element).container.childNodes[0];\n var style = window.getComputedStyle(container);\n return !style.width || style.width.indexOf(\"px\") === -1; //Can only compute pixel value when rendered.\n }\n\n function getStyle() {\n // Some browsers only force layouts when actually reading the style properties of the style object, so make sure that they are all read here,\n // so that the user of the function can be sure that it will perform the layout here, instead of later (important for batching).\n var elementStyle = window.getComputedStyle(element);\n var style = {};\n style.position = elementStyle.position;\n style.width = element.offsetWidth;\n style.height = element.offsetHeight;\n style.top = elementStyle.top;\n style.right = elementStyle.right;\n style.bottom = elementStyle.bottom;\n style.left = elementStyle.left;\n style.widthCSS = elementStyle.width;\n style.heightCSS = elementStyle.height;\n return style;\n }\n\n function storeStartSize() {\n var style = getStyle();\n getState(element).startSize = {\n width: style.width,\n height: style.height\n };\n debug(\"Element start size\", getState(element).startSize);\n }\n\n function initListeners() {\n getState(element).listeners = [];\n }\n\n function storeStyle() {\n debug(\"storeStyle invoked.\");\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getStyle();\n getState(element).style = style;\n }\n\n function storeCurrentSize(element, width, height) {\n getState(element).lastWidth = width;\n getState(element).lastHeight = height;\n }\n\n function getExpandChildElement(element) {\n return getExpandElement(element).childNodes[0];\n }\n\n function getWidthOffset() {\n return 2 * scrollbarSizes.width + 1;\n }\n\n function getHeightOffset() {\n return 2 * scrollbarSizes.height + 1;\n }\n\n function getExpandWidth(width) {\n return width + 10 + getWidthOffset();\n }\n\n function getExpandHeight(height) {\n return height + 10 + getHeightOffset();\n }\n\n function getShrinkWidth(width) {\n return width * 2 + getWidthOffset();\n }\n\n function getShrinkHeight(height) {\n return height * 2 + getHeightOffset();\n }\n\n function positionScrollbars(element, width, height) {\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n var shrinkWidth = getShrinkWidth(width);\n var shrinkHeight = getShrinkHeight(height);\n expand.scrollLeft = expandWidth;\n expand.scrollTop = expandHeight;\n shrink.scrollLeft = shrinkWidth;\n shrink.scrollTop = shrinkHeight;\n }\n\n function injectContainerElement() {\n var container = getState(element).container;\n\n if (!container) {\n container = document.createElement(\"div\");\n container.className = detectionContainerClass;\n container.style.cssText = \"visibility: hidden; display: inline; width: 0px; height: 0px; z-index: -1; overflow: hidden; margin: 0; padding: 0;\";\n getState(element).container = container;\n addAnimationClass(container);\n element.appendChild(container);\n\n var onAnimationStart = function () {\n getState(element).onRendered && getState(element).onRendered();\n };\n\n addEvent(container, \"animationstart\", onAnimationStart);\n\n // Store the event handler here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onAnimationStart = onAnimationStart;\n }\n\n return container;\n }\n\n function injectScrollElements() {\n function alterPositionStyles() {\n var style = getState(element).style;\n\n if(style.position === \"static\") {\n element.style.position = \"relative\";\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function getLeftTopBottomRightCssText(left, top, bottom, right) {\n left = (!left ? \"0\" : (left + \"px\"));\n top = (!top ? \"0\" : (top + \"px\"));\n bottom = (!bottom ? \"0\" : (bottom + \"px\"));\n right = (!right ? \"0\" : (right + \"px\"));\n\n return \"left: \" + left + \"; top: \" + top + \"; right: \" + right + \"; bottom: \" + bottom + \";\";\n }\n\n debug(\"Injecting elements\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n alterPositionStyles();\n\n var rootContainer = getState(element).container;\n\n if (!rootContainer) {\n rootContainer = injectContainerElement();\n }\n\n // Due to this WebKit bug https://bugs.webkit.org/show_bug.cgi?id=80808 (currently fixed in Blink, but still present in WebKit browsers such as Safari),\n // we need to inject two containers, one that is width/height 100% and another that is left/top -1px so that the final container always is 1x1 pixels bigger than\n // the targeted element.\n // When the bug is resolved, \"containerContainer\" may be removed.\n\n // The outer container can occasionally be less wide than the targeted when inside inline elements element in WebKit (see https://bugs.webkit.org/show_bug.cgi?id=152980).\n // This should be no problem since the inner container either way makes sure the injected scroll elements are at least 1x1 px.\n\n var scrollbarWidth = scrollbarSizes.width;\n var scrollbarHeight = scrollbarSizes.height;\n var containerContainerStyle = \"position: absolute; flex: none; overflow: hidden; z-index: -1; visibility: hidden; width: 100%; height: 100%; left: 0px; top: 0px;\";\n var containerStyle = \"position: absolute; flex: none; overflow: hidden; z-index: -1; visibility: hidden; \" + getLeftTopBottomRightCssText(-(1 + scrollbarWidth), -(1 + scrollbarHeight), -scrollbarHeight, -scrollbarWidth);\n var expandStyle = \"position: absolute; flex: none; overflow: scroll; z-index: -1; visibility: hidden; width: 100%; height: 100%;\";\n var shrinkStyle = \"position: absolute; flex: none; overflow: scroll; z-index: -1; visibility: hidden; width: 100%; height: 100%;\";\n var expandChildStyle = \"position: absolute; left: 0; top: 0;\";\n var shrinkChildStyle = \"position: absolute; width: 200%; height: 200%;\";\n\n var containerContainer = document.createElement(\"div\");\n var container = document.createElement(\"div\");\n var expand = document.createElement(\"div\");\n var expandChild = document.createElement(\"div\");\n var shrink = document.createElement(\"div\");\n var shrinkChild = document.createElement(\"div\");\n\n // Some browsers choke on the resize system being rtl, so force it to ltr. https://github.com/wnr/element-resize-detector/issues/56\n // However, dir should not be set on the top level container as it alters the dimensions of the target element in some browsers.\n containerContainer.dir = \"ltr\";\n\n containerContainer.style.cssText = containerContainerStyle;\n containerContainer.className = detectionContainerClass;\n container.className = detectionContainerClass;\n container.style.cssText = containerStyle;\n expand.style.cssText = expandStyle;\n expandChild.style.cssText = expandChildStyle;\n shrink.style.cssText = shrinkStyle;\n shrinkChild.style.cssText = shrinkChildStyle;\n\n expand.appendChild(expandChild);\n shrink.appendChild(shrinkChild);\n container.appendChild(expand);\n container.appendChild(shrink);\n containerContainer.appendChild(container);\n rootContainer.appendChild(containerContainer);\n\n function onExpandScroll() {\n getState(element).onExpand && getState(element).onExpand();\n }\n\n function onShrinkScroll() {\n getState(element).onShrink && getState(element).onShrink();\n }\n\n addEvent(expand, \"scroll\", onExpandScroll);\n addEvent(shrink, \"scroll\", onShrinkScroll);\n\n // Store the event handlers here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onExpandScroll = onExpandScroll;\n getState(element).onShrinkScroll = onShrinkScroll;\n }\n\n function registerListenersAndPositionElements() {\n function updateChildSizes(element, width, height) {\n var expandChild = getExpandChildElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n expandChild.style.width = expandWidth + \"px\";\n expandChild.style.height = expandHeight + \"px\";\n }\n\n function updateDetectorElements(done) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n debug(\"Storing current size\", width, height);\n\n // Store the size of the element sync here, so that multiple scroll events may be ignored in the event listeners.\n // Otherwise the if-check in handleScroll is useless.\n storeCurrentSize(element, width, height);\n\n // Since we delay the processing of the batch, there is a risk that uninstall has been called before the batch gets to execute.\n // Since there is no way to cancel the fn executions, we need to add an uninstall guard to all fns of the batch.\n\n batchProcessor.add(0, function performUpdateChildSizes() {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n if (options.debug) {\n var w = element.offsetWidth;\n var h = element.offsetHeight;\n\n if (w !== width || h !== height) {\n reporter.warn(idHandler.get(element), \"Scroll: Size changed before updating detector elements.\");\n }\n }\n\n updateChildSizes(element, width, height);\n });\n\n batchProcessor.add(1, function updateScrollbars() {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n positionScrollbars(element, width, height);\n });\n\n if (done) {\n batchProcessor.add(2, function () {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n done();\n });\n }\n }\n\n function areElementsInjected() {\n return !!getState(element).container;\n }\n\n function notifyListenersIfNeeded() {\n function isFirstNotify() {\n return getState(element).lastNotifiedWidth === undefined;\n }\n\n debug(\"notifyListenersIfNeeded invoked\");\n\n var state = getState(element);\n\n // Don't notify the if the current size is the start size, and this is the first notification.\n if (isFirstNotify() && state.lastWidth === state.startSize.width && state.lastHeight === state.startSize.height) {\n return debug(\"Not notifying: Size is the same as the start size, and there has been no notification yet.\");\n }\n\n // Don't notify if the size already has been notified.\n if (state.lastWidth === state.lastNotifiedWidth && state.lastHeight === state.lastNotifiedHeight) {\n return debug(\"Not notifying: Size already notified\");\n }\n\n\n debug(\"Current size not notified, notifying...\");\n state.lastNotifiedWidth = state.lastWidth;\n state.lastNotifiedHeight = state.lastHeight;\n forEach(getState(element).listeners, function (listener) {\n listener(element);\n });\n }\n\n function handleRender() {\n debug(\"startanimation triggered.\");\n\n if (isUnrendered(element)) {\n debug(\"Ignoring since element is still unrendered...\");\n return;\n }\n\n debug(\"Element rendered.\");\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n if (expand.scrollLeft === 0 || expand.scrollTop === 0 || shrink.scrollLeft === 0 || shrink.scrollTop === 0) {\n debug(\"Scrollbars out of sync. Updating detector elements...\");\n updateDetectorElements(notifyListenersIfNeeded);\n }\n }\n\n function handleScroll() {\n debug(\"Scroll detected.\");\n\n if (isUnrendered(element)) {\n // Element is still unrendered. Skip this scroll event.\n debug(\"Scroll event fired while unrendered. Ignoring...\");\n return;\n }\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (width !== getState(element).lastWidth || height !== getState(element).lastHeight) {\n debug(\"Element size changed.\");\n updateDetectorElements(notifyListenersIfNeeded);\n } else {\n debug(\"Element size has not changed (\" + width + \"x\" + height + \").\");\n }\n }\n\n debug(\"registerListenersAndPositionElements invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n getState(element).onRendered = handleRender;\n getState(element).onExpand = handleScroll;\n getState(element).onShrink = handleScroll;\n\n var style = getState(element).style;\n updateChildSizes(element, style.width, style.height);\n }\n\n function finalizeDomMutation() {\n debug(\"finalizeDomMutation invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getState(element).style;\n storeCurrentSize(element, style.width, style.height);\n positionScrollbars(element, style.width, style.height);\n }\n\n function ready() {\n callback(element);\n }\n\n function install() {\n debug(\"Installing...\");\n initListeners();\n storeStartSize();\n\n batchProcessor.add(0, storeStyle);\n batchProcessor.add(1, injectScrollElements);\n batchProcessor.add(2, registerListenersAndPositionElements);\n batchProcessor.add(3, finalizeDomMutation);\n batchProcessor.add(4, ready);\n }\n\n debug(\"Making detectable...\");\n\n if (isDetached(element)) {\n debug(\"Element is detached\");\n\n injectContainerElement();\n\n debug(\"Waiting until element is attached...\");\n\n getState(element).onRendered = function () {\n debug(\"Element is now attached\");\n install();\n };\n } else {\n install();\n }\n }\n\n function uninstall(element) {\n var state = getState(element);\n\n if (!state) {\n // Uninstall has been called on a non-erd element.\n return;\n }\n\n // Uninstall may have been called in the following scenarios:\n // (1) Right between the sync code and async batch (here state.busy = true, but nothing have been registered or injected).\n // (2) In the ready callback of the last level of the batch by another element (here, state.busy = true, but all the stuff has been injected).\n // (3) After the installation process (here, state.busy = false and all the stuff has been injected).\n // So to be on the safe side, let's check for each thing before removing.\n\n // We need to remove the event listeners, because otherwise the event might fire on an uninstall element which results in an error when trying to get the state of the element.\n state.onExpandScroll && removeEvent(getExpandElement(element), \"scroll\", state.onExpandScroll);\n state.onShrinkScroll && removeEvent(getShrinkElement(element), \"scroll\", state.onShrinkScroll);\n state.onAnimationStart && removeEvent(state.container, \"animationstart\", state.onAnimationStart);\n\n state.container && element.removeChild(state.container);\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall\n };\n};\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { clearDiv, createHorizontalLine } from './atom-xterm-utils'\r\n\r\nclass AtomXtermDeleteProfileElementImpl extends HTMLElement {\r\n initialize (model) {\r\n this.model = model\r\n this.model.setElement(this)\r\n this.messageDiv = document.createElement('div')\r\n this.messageDiv.classList.add('atom-xterm-modal-message')\r\n this.appendChild(this.messageDiv)\r\n this.appendChild(createHorizontalLine())\r\n this.promptButtonsDiv = document.createElement('div')\r\n this.promptButtonsDiv.classList.add('atom-xterm-modal-buttons-div')\r\n this.appendChild(this.promptButtonsDiv)\r\n }\r\n\r\n setNewPrompt (profileName, confirmHandler, cancelHandler) {\r\n clearDiv(this.messageDiv)\r\n clearDiv(this.promptButtonsDiv)\r\n let text = 'Delete existing profile \\'' + profileName + '\\'?'\r\n this.messageDiv.appendChild(document.createTextNode(text))\r\n let confirmButton = document.createElement('button')\r\n confirmButton.classList.add('atom-xterm-modal-button')\r\n confirmButton.appendChild(document.createTextNode('Confirm'))\r\n confirmButton.addEventListener('click', confirmHandler)\r\n this.promptButtonsDiv.appendChild(confirmButton)\r\n let cancelButton = document.createElement('button')\r\n cancelButton.classList.add('atom-xterm-modal-button')\r\n cancelButton.appendChild(document.createTextNode('Cancel'))\r\n cancelButton.addEventListener('click', cancelHandler)\r\n this.promptButtonsDiv.appendChild(cancelButton)\r\n }\r\n}\r\n\r\nconst AtomXtermDeleteProfileElement = document.registerElement('atom-xterm-delete-profile', {\r\n prototype: AtomXtermDeleteProfileElementImpl.prototype\r\n})\r\n\r\nexport {\r\n AtomXtermDeleteProfileElement\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { clearDiv, createHorizontalLine } from './atom-xterm-utils'\r\n\r\nclass AtomXtermOverwriteProfileElementImpl extends HTMLElement {\r\n initialize (model) {\r\n this.model = model\r\n this.model.setElement(this)\r\n this.messageDiv = document.createElement('div')\r\n this.messageDiv.classList.add('atom-xterm-modal-message')\r\n this.appendChild(this.messageDiv)\r\n this.appendChild(createHorizontalLine())\r\n this.promptButtonsDiv = document.createElement('div')\r\n this.promptButtonsDiv.classList.add('atom-xterm-modal-buttons-div')\r\n this.appendChild(this.promptButtonsDiv)\r\n }\r\n\r\n setNewPrompt (profileName, confirmHandler, cancelHandler) {\r\n clearDiv(this.messageDiv)\r\n clearDiv(this.promptButtonsDiv)\r\n let text = 'Overwrite existing profile \\'' + profileName + '\\'?'\r\n this.messageDiv.appendChild(document.createTextNode(text))\r\n let confirmButton = document.createElement('button')\r\n confirmButton.classList.add('atom-xterm-modal-button')\r\n confirmButton.appendChild(document.createTextNode('Confirm'))\r\n confirmButton.addEventListener('click', confirmHandler)\r\n this.promptButtonsDiv.appendChild(confirmButton)\r\n let cancelButton = document.createElement('button')\r\n cancelButton.classList.add('atom-xterm-modal-button')\r\n cancelButton.appendChild(document.createTextNode('Cancel'))\r\n cancelButton.addEventListener('click', cancelHandler)\r\n this.promptButtonsDiv.appendChild(cancelButton)\r\n }\r\n}\r\n\r\nconst AtomXtermOverwriteProfileElement = document.registerElement('atom-xterm-overwrite-profile', {\r\n prototype: AtomXtermOverwriteProfileElementImpl.prototype\r\n})\r\n\r\nexport {\r\n AtomXtermOverwriteProfileElement\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { clearDiv } from './atom-xterm-utils'\r\n\r\nclass AtomXtermSaveProfileElementImpl extends HTMLElement {\r\n initialize (model) {\r\n this.model = model\r\n this.model.setElement(this)\r\n this.textboxDiv = document.createElement('div')\r\n this.textboxDiv.classList.add('atom-xterm-save-profile-textbox')\r\n this.appendChild(this.textboxDiv)\r\n this.messageDiv = document.createElement('div')\r\n this.messageDiv.classList.add('atom-xterm-modal-message')\r\n this.messageDiv.appendChild(document.createTextNode('Enter new profile name'))\r\n this.appendChild(this.messageDiv)\r\n }\r\n\r\n setNewTextbox (textbox) {\r\n clearDiv(this.textboxDiv)\r\n this.textboxDiv.appendChild(textbox.getElement())\r\n }\r\n}\r\n\r\nconst AtomXtermSaveProfileElement = document.registerElement('atom-xterm-save-profile', {\r\n prototype: AtomXtermSaveProfileElementImpl.prototype\r\n})\r\n\r\nexport {\r\n AtomXtermSaveProfileElement\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://atom-xterm/webpack/universalModuleDefinition","webpack://atom-xterm/webpack/bootstrap","webpack://atom-xterm/external \"path\"","webpack://atom-xterm/./node_modules/graceful-fs/graceful-fs.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://atom-xterm/./node_modules/universalify/index.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/createClass.js","webpack://atom-xterm/./node_modules/fs-extra/lib/mkdirs/index.js","webpack://atom-xterm/./node_modules/whatwg-url/lib/url-state-machine.js","webpack://atom-xterm/../src/Buffer.ts","webpack://atom-xterm/../src/EventEmitter.ts","webpack://atom-xterm/./node_modules/fs-extra/lib/path-exists/index.js","webpack://atom-xterm/../../src/common/Lifecycle.ts","webpack://atom-xterm/./src/lib/atom-xterm-profiles.js","webpack://atom-xterm/external \"atom\"","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/inherits.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://atom-xterm/external \"fs\"","webpack://atom-xterm/../../src/ui/Lifecycle.ts","webpack://atom-xterm/../../../src/common/data/EscapeSequences.ts","webpack://atom-xterm/../../../src/renderer/atlas/Types.ts","webpack://atom-xterm/../../src/renderer/BaseRenderLayer.ts","webpack://atom-xterm/../../src/renderer/ColorManager.ts","webpack://atom-xterm/../../../src/shared/utils/Browser.ts","webpack://atom-xterm/./node_modules/fs-extra/lib/remove/index.js","webpack://atom-xterm/./node_modules/whatwg-url/lib/urlencoded.js","webpack://atom-xterm/./node_modules/deep-object-diff/dist/utils/index.js","webpack://atom-xterm/./src/lib/atom-xterm-utils.js","webpack://atom-xterm/./src/lib/atom-xterm-config.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://atom-xterm/../../../src/renderer/atlas/BaseCharAtlas.ts","webpack://atom-xterm/../../src/ui/RenderDebouncer.ts","webpack://atom-xterm/../src/Strings.ts","webpack://atom-xterm/./node_modules/fs-extra/lib/index.js","webpack://atom-xterm/./node_modules/fs-extra/lib/json/jsonfile.js","webpack://atom-xterm/./node_modules/whatwg-url/lib/public-api.js","webpack://atom-xterm/external \"os\"","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/typeof.js","webpack://atom-xterm/../../../src/renderer/atlas/CharAtlasCache.ts","webpack://atom-xterm/../../../src/shared/atlas/CharAtlasGenerator.ts","webpack://atom-xterm/../../../src/shared/atlas/Types.ts","webpack://atom-xterm/../../src/ui/ScreenDprMonitor.ts","webpack://atom-xterm/../../src/ui/MouseZoneManager.ts","webpack://atom-xterm/../../src/utils/MouseHelper.ts","webpack://atom-xterm/./src/lib/atom-xterm-profile-menu-element.js","webpack://atom-xterm/./node_modules/fs-extra/lib/fs/index.js","webpack://atom-xterm/./node_modules/graceful-fs/fs.js","webpack://atom-xterm/external \"assert\"","webpack://atom-xterm/./node_modules/fs-extra/lib/copy-sync/index.js","webpack://atom-xterm/./node_modules/fs-extra/lib/mkdirs/win32.js","webpack://atom-xterm/./node_modules/fs-extra/lib/util/utimes.js","webpack://atom-xterm/./node_modules/fs-extra/lib/util/buffer.js","webpack://atom-xterm/./node_modules/fs-extra/lib/copy/index.js","webpack://atom-xterm/./node_modules/webidl-conversions/lib/index.js","webpack://atom-xterm/./node_modules/whatwg-url/lib/utils.js","webpack://atom-xterm/external \"punycode\"","webpack://atom-xterm/./node_modules/whatwg-url/lib/infra.js","webpack://atom-xterm/./node_modules/whatwg-url/lib/URLSearchParams.js","webpack://atom-xterm/./node_modules/deep-object-diff/dist/added/index.js","webpack://atom-xterm/./node_modules/deep-object-diff/dist/deleted/index.js","webpack://atom-xterm/./node_modules/deep-object-diff/dist/updated/index.js","webpack://atom-xterm/./src/lib/atom-xterm-delete-profile-model.js","webpack://atom-xterm/./src/lib/atom-xterm-save-profile-model.js","webpack://atom-xterm/./src/lib/atom-xterm-overwrite-profile-model.js","webpack://atom-xterm/./src/lib/atom-xterm-model.js","webpack://atom-xterm/./src/lib/atom-xterm-profile-menu-model.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/collection-utils.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/browser-detector.js","webpack://atom-xterm/./src/lib/atom-xterm.js","webpack://atom-xterm/./node_modules/@babel/runtime/regenerator/index.js","webpack://atom-xterm/./node_modules/regenerator-runtime/runtime-module.js","webpack://atom-xterm/./node_modules/regenerator-runtime/runtime.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://atom-xterm/./src/lib/atom-xterm-element.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://atom-xterm/./node_modules/@babel/runtime/helpers/construct.js","webpack://atom-xterm/external \"node-pty-prebuilt\"","webpack://atom-xterm/../../src/public/Terminal.ts","webpack://atom-xterm/../src/Terminal.ts","webpack://atom-xterm/../src/BufferSet.ts","webpack://atom-xterm/../../src/common/CircularList.ts","webpack://atom-xterm/../src/CompositionHelper.ts","webpack://atom-xterm/../src/Viewport.ts","webpack://atom-xterm/../../src/handlers/Clipboard.ts","webpack://atom-xterm/../src/InputHandler.ts","webpack://atom-xterm/../../../src/core/data/Charsets.ts","webpack://atom-xterm/../src/CharWidth.ts","webpack://atom-xterm/../src/EscapeSequenceParser.ts","webpack://atom-xterm/../../src/renderer/Renderer.ts","webpack://atom-xterm/../../src/renderer/TextRenderLayer.ts","webpack://atom-xterm/../../src/renderer/GridCache.ts","webpack://atom-xterm/../../../src/renderer/atlas/CharAtlasUtils.ts","webpack://atom-xterm/../../../src/renderer/atlas/DynamicCharAtlas.ts","webpack://atom-xterm/../../../src/renderer/atlas/LRUMap.ts","webpack://atom-xterm/../../../src/renderer/atlas/NoneCharAtlas.ts","webpack://atom-xterm/../../../src/renderer/atlas/StaticCharAtlas.ts","webpack://atom-xterm/../../src/renderer/SelectionRenderLayer.ts","webpack://atom-xterm/../../src/renderer/CursorRenderLayer.ts","webpack://atom-xterm/../../src/renderer/LinkRenderLayer.ts","webpack://atom-xterm/../../src/renderer/CharacterJoinerRegistry.ts","webpack://atom-xterm/../src/Linkifier.ts","webpack://atom-xterm/../src/SelectionManager.ts","webpack://atom-xterm/../src/SelectionModel.ts","webpack://atom-xterm/../../src/handlers/AltClickHandler.ts","webpack://atom-xterm/../../src/ui/CharMeasure.ts","webpack://atom-xterm/../../src/utils/Clone.ts","webpack://atom-xterm/../src/SoundManager.ts","webpack://atom-xterm/../src/AccessibilityManager.ts","webpack://atom-xterm/../../../src/renderer/dom/DomRenderer.ts","webpack://atom-xterm/../../../src/renderer/dom/DomRendererRowFactory.ts","webpack://atom-xterm/../../../src/core/input/Keyboard.ts","webpack://atom-xterm/../../../src/addons/fit/fit.ts","webpack://atom-xterm/./node_modules/url-regex/index.js","webpack://atom-xterm/./node_modules/ip-regex/index.js","webpack://atom-xterm/./node_modules/tlds/index.js","webpack://atom-xterm/external \"electron\"","webpack://atom-xterm/./node_modules/graceful-fs/polyfills.js","webpack://atom-xterm/external \"constants\"","webpack://atom-xterm/./node_modules/graceful-fs/legacy-streams.js","webpack://atom-xterm/external \"stream\"","webpack://atom-xterm/external \"util\"","webpack://atom-xterm/./node_modules/fs-extra/lib/copy-sync/copy-sync.js","webpack://atom-xterm/./node_modules/fs-extra/lib/mkdirs/mkdirs.js","webpack://atom-xterm/./node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js","webpack://atom-xterm/./node_modules/fs-extra/lib/copy/copy.js","webpack://atom-xterm/./node_modules/fs-extra/lib/empty/index.js","webpack://atom-xterm/./node_modules/fs-extra/lib/remove/rimraf.js","webpack://atom-xterm/./node_modules/fs-extra/lib/ensure/index.js","webpack://atom-xterm/./node_modules/fs-extra/lib/ensure/file.js","webpack://atom-xterm/./node_modules/fs-extra/lib/ensure/link.js","webpack://atom-xterm/./node_modules/fs-extra/lib/ensure/symlink.js","webpack://atom-xterm/./node_modules/fs-extra/lib/ensure/symlink-paths.js","webpack://atom-xterm/./node_modules/fs-extra/lib/ensure/symlink-type.js","webpack://atom-xterm/./node_modules/fs-extra/lib/json/index.js","webpack://atom-xterm/./node_modules/jsonfile/index.js","webpack://atom-xterm/./node_modules/fs-extra/lib/json/output-json.js","webpack://atom-xterm/./node_modules/fs-extra/lib/json/output-json-sync.js","webpack://atom-xterm/./node_modules/fs-extra/lib/move-sync/index.js","webpack://atom-xterm/./node_modules/fs-extra/lib/move/index.js","webpack://atom-xterm/./node_modules/fs-extra/lib/output/index.js","webpack://atom-xterm/./node_modules/uuid/v4.js","webpack://atom-xterm/./node_modules/uuid/lib/rng.js","webpack://atom-xterm/external \"crypto\"","webpack://atom-xterm/./node_modules/uuid/lib/bytesToUuid.js","webpack://atom-xterm/./node_modules/whatwg-url/lib/URL.js","webpack://atom-xterm/./node_modules/whatwg-url/lib/URL-impl.js","webpack://atom-xterm/./node_modules/tr46/index.js","webpack://atom-xterm/./node_modules/tr46/lib/regexes.js","webpack://atom-xterm/./node_modules/whatwg-url/lib/URLSearchParams-impl.js","webpack://atom-xterm/./node_modules/lodash.sortby/index.js","webpack://atom-xterm/(webpack)/buildin/module.js","webpack://atom-xterm/./node_modules/deep-object-diff/dist/index.js","webpack://atom-xterm/./node_modules/deep-object-diff/dist/diff/index.js","webpack://atom-xterm/./node_modules/deep-object-diff/dist/detailed/index.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/element-utils.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/listener-handler.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/id-generator.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/id-handler.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/reporter.js","webpack://atom-xterm/./node_modules/batch-processor/src/batch-processor.js","webpack://atom-xterm/./node_modules/batch-processor/src/utils.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/state-handler.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/detection-strategy/object.js","webpack://atom-xterm/./node_modules/element-resize-detector/src/detection-strategy/scroll.js","webpack://atom-xterm/./src/lib/atom-xterm-delete-profile-element.js","webpack://atom-xterm/./src/lib/atom-xterm-overwrite-profile-element.js","webpack://atom-xterm/./src/lib/atom-xterm-save-profile-element.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__13__","__WEBPACK_EXTERNAL_MODULE__85__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","fs","polyfills","legacy","queue","util","debug","patch","gracefulify","FileReadStream","ReadStream","FileWriteStream","WriteStream","createReadStream","path","options","createWriteStream","fs$readFile","readFile","cb","go$readFile","err","code","apply","this","arguments","retry","enqueue","fs$writeFile","writeFile","data","go$writeFile","fs$appendFile","appendFile","go$appendFile","fs$readdir","readdir","go$readdir","args","push","files","sort","process","version","substr","legStreams","fs$ReadStream","open","that","flags","fd","autoClose","destroy","emit","read","fs$WriteStream","fs$open","go$open","elem","shift","debuglog","test","env","NODE_DEBUG","format","split","join","console","error","on","equal","length","TEST_GRACEFUL_FS_GLOBAL_PATCH","close","fs$close","closeSync","fs$closeSync","rval","obj","default","fromCallback","fn","Promise","resolve","reject","res","fromPromise","then","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","mkdirs","u","mkdirsSync","mkdirp","mkdirpSync","ensureDir","ensureDirSync","punycode","tr46","infra","percentEncode","percentDecode","specialSchemes","ftp","file","gopher","http","https","ws","wss","failure","countSymbols","str","ucs2","decode","at","input","idx","isNaN","undefined","String","fromCodePoint","isSingleDot","buffer","toLowerCase","isWindowsDriveLetterString","string","isASCIIAlpha","codePointAt","isSpecialScheme","scheme","isSpecial","url","isNotSpecial","defaultPort","isC0ControlPercentEncode","extraUserinfoPercentEncodeSet","Set","isUserinfoPercentEncode","isPathPercentEncode","has","extraFragmentPercentEncodeSet","isFragmentPercentEncode","extraPathPercentEncodeSet","percentEncodeChar","encodeSetPredicate","cStr","buf","Buffer","from","utf8PercentEncode","parseIPv4Number","R","charAt","substring","regex","parseInt","parseHost","isNotSpecialArg","address","pieceIndex","compress","pointer","isASCIIHex","numbersSeen","ipv4Piece","isASCIIDigit","number","swaps","temp","parseIPv6","search","containsForbiddenHostCodePointExcludingPercent","output","decoded","parseOpaqueHost","asciiDomain","domain","beStrict","result","toASCII","checkBidi","checkHyphens","checkJoiners","useSTD3ASCIIRules","verifyDNSLength","domainToASCII","toString","containsForbiddenHostCodePoint","ipv4Host","parts","pop","numbers","part","Math","pow","ipv4","counter","parseIPv4","serializeHost","host","floor","serializeIPv4","Array","arr","maxIdx","maxLen","currStart","currLen","len","findLongestZeroSequence","ignore0","serializeIPv6","shortenPath","isNormalizedWindowsDriveLetter","includesCredentials","username","password","URLStateMachine","base","encodingOverride","stateOverride","parseError","port","query","fragment","cannotBeABaseURL","replace","trimControlChars","trimTabAndNewline","state","atFlag","arrFlag","passwordTokenSeenFlag","ret","isASCIIAlphanumeric","slice","codePoint","encodedCodePoints","fileOtherwiseCodePoints","startsWithWindowsDriveLetter","cp1","cp2","isWindowsDriveLetterCodePoints","isNormalizedWindowsDriveLetterString","isDoubleDot","serializeURL","excludeFragment","serializeURLOrigin","parseURL","e","tuple","serializeOrigin","basicURLParse","usm","baseURL","setTheUsername","setThePassword","cannotHaveAUsernamePasswordPort","serializeInteger","integer","CircularList_1","EventEmitter_1","DEFAULT_ATTR","CHAR_DATA_ATTR_INDEX","CHAR_DATA_CHAR_INDEX","CHAR_DATA_WIDTH_INDEX","CHAR_DATA_CODE_INDEX","MAX_BUFFER_SIZE","NULL_CELL_CHAR","NULL_CELL_WIDTH","NULL_CELL_CODE","_terminal","_hasScrollback","markers","clear","lines","maxLength","rows","relativeY","ybase","y","ydisp","_getCorrectBufferLength","correctBufferLength","scrollback","fillViewportRows","blankLine","x","CircularList","scrollTop","scrollBottom","setupTabStops","resize","newCols","newRows","newMaxLength","cols","ch","addToY","amountToTrim","trimStart","max","min","savedY","savedX","translateBufferLineToString","lineIndex","trimRight","startCol","endCol","lineString","line","startIndex","endIndex","char","rightWhitespaceIndex","getWrappedRangeForLine","first","last","isWrapped","tabs","prevStop","tabStopWidth","nextStop","addMarker","_this","marker","Marker","register","addDisposableListener","amount","dispose","_removeMarker","splice","indexOf","_super","_id","_nextId","isDisposed","__extends","EventEmitter","_events","type","listener","handler","off","removeAllListeners","_i","listeners","Disposable","pathExists","access","catch","pathExistsSync","existsSync","_disposables","_isDisposed","forEach","unregister","index","_atom","_atomXtermConfig","_interopRequireDefault","_fsExtra","_path","_v","_whatwgUrl","_deepObjectDiff","CONFIG_KEY_TO_PROFILE_KEY_MAPPING","atom-xterm.spawnPtySettings.command","atom-xterm.spawnPtySettings.args","atom-xterm.spawnPtySettings.name","atom-xterm.spawnPtySettings.cwd","atom-xterm.spawnPtySettings.env","atom-xterm.spawnPtySettings.setEnv","atom-xterm.spawnPtySettings.deleteEnv","atom-xterm.spawnPtySettings.encoding","atom-xterm.terminalSettings.fontSize","atom-xterm.terminalSettings.leaveOpenAfterExit","atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup","atom-xterm.terminalSettings.relaunchTerminalOnStartup","atom-xterm.terminalSettings.title","atom-xterm.terminalSettings.xtermOptions","atom-xterm.terminalSettings.promptToStartup","AtomXtermProfilesSingletonSymbol","AtomXtermProfilesSingleton","symbolCheck","_classCallCheck2","Error","emitter","Emitter","profilesConfigPath","atomXtermConfig","getUserDataPath","profiles","previousBaseProfile","baseProfile","getDefaultProfile","resetBaseProfile","profilesLoadPromise","reloadProfiles","orderedProfiles","keys","readJson","updateProfiles","getSanitizedProfilesData","sortProfiles","callback","newProfilesConfigData","_this2","dirname","writeJson","JSON","parse","stringify","oldProfile","newProfile","diff","detailedDiff","assign","added","updated","command","getDefaultShellCommand","getDefaultArgs","getDefaultTermType","cwd","getDefaultCwd","setEnv","getDefaultSetEnv","deleteEnv","getDefaultDeleteEnv","encoding","fontSize","getDefaultFontSize","leaveOpenAfterExit","getDefaultLeaveOpenAfterExit","relaunchTerminalOnStartup","getDefaultRelaunchTerminalOnStartup","title","xtermOptions","getDefaultXtermOptions","promptToStartup","getDefaultPromptToStartup","deepClone","defaultJsonValue","profileKey","previousValue","atom","config","SyntaxError","validateJsonConfigSetting","constructor","getDefaultTitle","getBaseProfile","sanitizedData","retval","sanitizeData","_this3","profileName","_this4","_this5","_this6","profileData","_this7","URL","generateNewUri","searchParams","set","uri","param","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_typeof","assertThisInitialized","self","subClass","superClass","construct","_wrapNativeSuper","Class","_cache","Map","Wrapper","addDisposableDomListener","node","useCapture","addEventListener","removeEventListener","C0","NUL","SOH","STX","ETX","EOT","ENQ","ACK","BEL","BS","HT","LF","VT","FF","CR","SO","SI","DLE","DC1","DC2","DC3","DC4","NAK","SYN","ETB","CAN","EM","SUB","ESC","FS","GS","RS","US","SP","DEL","C1","PAD","HOP","BPH","NBH","IND","NEL","SSA","ESA","HTS","HTJ","VTS","PLD","PLU","RI","SS2","SS3","DCS","PU1","PU2","STS","CCH","MW","SPA","EPA","SOS","SGCI","SCI","CSI","ST","OSC","PM","APC","INVERTED_DEFAULT_COLOR","DIM_OPACITY","Types_1","CharAtlasCache_1","Buffer_1","BaseRenderLayer","_container","id","zIndex","_alpha","_colors","_scaledCharWidth","_scaledCharHeight","_scaledCellWidth","_scaledCellHeight","_scaledCharLeft","_scaledCharTop","_canvas","document","createElement","classList","add","style","_initCanvas","appendChild","removeChild","_ctx","getContext","alpha","clearAll","onOptionsChanged","terminal","onBlur","onFocus","onCursorMove","onGridChanged","startRow","endRow","onSelectionChanged","start","end","columnSelectMode","onThemeChanged","colorSet","_refreshCharAtlas","setTransparency","oldCanvas","cloneNode","replaceChild","_charAtlas","acquireCharAtlas","warmUp","dim","scaledCellWidth","scaledCellHeight","scaledCharWidth","scaledCharHeight","scaledCharLeft","scaledCharTop","width","scaledCanvasWidth","height","scaledCanvasHeight","canvasWidth","canvasHeight","fillCells","fillRect","fillBottomLineAtCells","devicePixelRatio","fillLeftLineAtCell","strokeRectAtCell","lineWidth","strokeRect","clearRect","fillStyle","background","css","clearCells","fillCharTrueColor","charData","font","_getFont","textBaseline","_clipRow","fillText","drawChars","chars","fg","bg","bold","italic","drawBoldTextInBrightColors","draw","enableBold","_drawUncachedChars","save","ansi","foreground","globalAlpha","restore","beginPath","rect","clip","isBold","isItalic","fontWeight","fontWeightBold","fontFamily","DEFAULT_FOREGROUND","fromHex","DEFAULT_BACKGROUND","DEFAULT_CURSOR","DEFAULT_CURSOR_ACCENT","DEFAULT_SELECTION","rgba","toPaddedHex","DEFAULT_ANSI_COLORS","colors","v","g","b","ColorManager","allowTransparency","canvas","globalCompositeOperation","_litmusColor","createLinearGradient","cursor","cursorAccent","selection","setTheme","theme","_parseColor","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","fallback","warn","getImageData","isNode","navigator","userAgent","platform","contains","el","isFirefox","isSafari","isMSIE","isMac","isIpad","isIphone","isMSWindows","isLinux","rimraf","remove","removeSync","sync","replaceByteInByteSequence","to","hex","toUpperCase","alloc","byteLength","ptr","serializeUrlencodedByte","byte","parseUrlencoded","sequences","cp","list","strictlySplitByteSequence","bytes","indexOfEqual","serializeUrlencoded","tuples","entries","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_extends","source","iterator","isObject","isDate","Date","isEmpty","properObject","div","firstChild","hLine","createTextNode","_os","COMSPEC","SHELL","TERM","USERPROFILE","HOME","getDefaultEnv","getDefaultEncoding","getMinimumFontSize","getMaximumFontSize","getDefaultAllowRelaunchingTerminalsOnStartup","appDataPath","APPDATA","os","homedir","XDG_CONFIG_HOME","_setPrototypeOf","BaseCharAtlas","_didWarmUp","_doWarmUp","beginFrame","RenderDebouncer","_callback","_animationFrame","cancelAnimationFrame","refresh","rowStart","rowEnd","_rowStart","_rowEnd","requestAnimationFrame","_innerRefresh","promptLabel","tooMuchOutput","getOwnPropertyDescriptor","promises","jsonFile","readJsonSync","readFileSync","writeJsonSync","writeFileSync","interface","URLSearchParams","_typeof2","CharAtlasUtils_1","DynamicCharAtlas_1","NoneCharAtlas_1","StaticCharAtlas_1","charAtlasImplementations","none","static","dynamic","charAtlasCache","newConfig","generateConfig","ownedByIndex","entry","ownedBy","configEquals","atlas","newEntry","experimentalCharAtlas","removeTerminalFromCache","Browser_1","clearColor","imageData","color","offset","getFont","generateStaticCharAtlasTexture","context","canvasFactory","cellWidth","CHAR_ATLAS_CELL_SPACING","cellHeight","ctx","fromCharCode","colorIndex","HTMLCanvasElement","transferToImageBitmap","charAtlasImageData","createImageBitmap","ScreenDprMonitor","setListener","_listener","clearListener","_outerListener","_currentDevicePixelRatio","_updateDpr","_resolutionMediaMatchList","removeListener","matchMedia","addListener","Lifecycle_1","Lifecycle_2","MouseZoneManager","_zones","_areZonesActive","_tooltipTimeout","_currentZone","_lastHoverCoords","element","_onMouseDown","_mouseMoveListener","_onMouseMove","_clickListener","_onClick","_deactivate","zone","_activate","y1","y2","leaveCallback","pageX","pageY","_onHover","_findZoneEventAt","clearTimeout","hoverCallback","setTimeout","_onTooltip","tooltipCallback","willLinkActivate","preventDefault","stopImmediatePropagation","clickCallback","coords","mouseHelper","getCoords","screenElement","charMeasure","lineHeight","x1","x2","MouseZone","MouseHelper","_renderer","getCoordsRelativeToElement","event","originalElement","offsetLeft","offsetTop","offsetParent","ownerDocument","body","scrollLeft","parentElement","colCount","rowCount","isSelection","ceil","dimensions","actualCellWidth","actualCellHeight","getRawByteCoords","_atomXtermProfiles","_atomXtermDeleteProfileModel","_atomXtermSaveProfileModel","_atomXtermUtils","AtomXtermProfileMenuElementImpl","model","setElement","profilesSingleton","topDiv","leftDiv","mainDiv","rightDiv","bottomDiv","disposables","CompositeDisposable","initializedPromise","createProfilesDropDown","profilesDiv","modelProfile","getModelProfile","createProfileMenuButtons","createHorizontalLine","createTextbox","createCheckbox","deleteProfileModel","AtomXtermDeleteProfileModel","saveProfileModel","AtomXtermSaveProfileModel","onDidReloadProfiles","createProfilesDropDownSelectItem","select","menuItemContainer","querySelector","atomXtermModel","profile","defaultValue","menuElements","commandElement","argsElement","nameElement","cwdElement","envElement","setEnvElement","deleteEnvElement","encodingElement","fontSizeElement","leaveOpenAfterExitElement","relaunchTerminalOnStartupElement","titleElement","xtermOptionsElement","promptToStartupElement","getMenuElements","getModel","getText","parseJson","Number","checked","profileChanges","hideProfileMenu","getAtomXtermModel","applyProfileChanges","getAtomXtermModelElement","restartPtyProcess","labelTitle","labelDescription","setAttribute","menuItemLabel","titleDiv","descriptionDiv","getProfiles","option","text","textContent","getProfile","setNewMenuSettings","createMenuItemContainer","buttonsContainer","button","createButton","loadProfile","saveProfile","deleteProfile","restartTerminal","initialValue","textbox","TextEditor","mini","placeholderText","setText","getElement","checkbox","getComputedStyle","visibility","showTerminal","focusOnTerminal","hideTerminal","isVisible","showProfileMenu","getProfileMenuSettings","diffProfiles","newProfileAndChanges","getNewProfileAndChanges","promptForNewProfileName","selectedIndex","promptDelete","notifications","addWarning","newTextList","convertNullToEmptyString","newText","selector","newCheckboxList","_i2","newCheckbox","HTMLElement","AtomXtermProfileMenuElement","registerElement","api","filter","method","exists","filename","position","bytesRead","write","bytesWritten","copy","getOwnPropertyNames","clone","copySync","getRootPath","normalize","sep","INVALID_PATH_CHARS","invalidWin32Path","rp","hasMillisRes","tmpfile","now","random","tmpdir","futimes","stat","stats","mtime","hasMillisResSync","openSync","futimesSync","statSync","timeRemoveMillis","timestamp","getTime","utimesMillis","atime","futimesErr","closeErr","utimesMillisSync","size","allocUnsafe","_","message","opts","integerPart","censorNegativeZero","trunc","sign","createIntegerConversion","bitLength","typeOpts","isSigned","unsigned","lowerBound","upperBound","twoToTheBitLength","twoToOneLessThanTheBitLength","V","enforceRange","isFinite","clamp","round","evenRound","signMightNotMatch","modulo","convertCallbackFunction","any","void","boolean","val","octet","short","long","double","float","is","fround","DOMString","treatNullAsEmptyString","ByteString","USVString","S","U","charCodeAt","a","ArrayBuffer","DataView","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray","Float32Array","Float64Array","func","article","ArrayBufferView","isView","BufferSource","DOMTimeStamp","Function","VoidFunction","getReferenceToBytes","bufferSource","byteOffset","wrapperSymbol","implSymbol","sameObjectCaches","wrapperForImpl","impl","implForWrapper","wrapper","iterInternalSymbol","IteratorPrototype","supportsPropertyIndex","supportedPropertyIndices","supportsPropertyName","supportedPropertyNames","indexedGet","indexedSetNew","indexedSetExisting","namedGet","namedSetNew","namedSetExisting","namedDelete","getCopyToBytes","mixin","getSameObject","prop","creator","tryWrapperForImpl","tryImplForWrapper","isArrayIndexPropName","P","conversions","utils","next","internal","kind","values","done","pair","map","[object Object]","tmp","nextItem","Reflect","ownKeys","desc","typedKey","typedValue","iface","setup","createDefaultIterator","thisArg","pairs","append","delete","getAll","mixedInto","Impl","implementation","isImpl","convert","constructorArgs","privateData","createImpl","_internalSetup","init","expose","Window","Worker","_utils","_defineProperty","addedDiff","lhs","rhs","reduce","acc","difference","deletedDiff","updatedDiff","valueOf","atomXtermProfileMenuElement","panel","workspace","addModalPanel","item","visible","hide","show","setNewPrompt","_atomXtermOverwriteProfileModel","_atomXtermModel","overwriteProfileModel","AtomXtermOverwriteProfileModel","setProfile","isProfileExists","promptOverwrite","updateProfile","focusMenuElement","focus","currentItemIsAtomXtermModel","commands","confirm","setNewTextbox","atomXtermSaveProfileModel","rePrompt","isAtomXtermModel","getActivePaneItem","DEFAULT_TITLE","AtomXtermModel","sessionId","createProfileDataFromUri","terminals_set","pane","modified","isInitialized","previousActiveItem","getPath","dir","project","relativizePath","isDirectory","deserializer","generateNewUrlFromProfileData","href","paneForItem","oldIsModified","getActiveItem","refitTerminal","destroyItem","getSelection","ptyProcess","openHoveredLink","getHoveredLink","toggleProfileMenu","queueNewProfileChanges","AtomXtermProfileMenuModel","collection","detector","isIE","agent","isAnyIeVersion","all","getElementsByTagName","innerHTML","undef","isLegacyOpera","opera","AtomXtermSingleton","activate","deactivate","serializedModel","atomEnvironment","deserializeAtomXtermModel","provideAtomXtermService","_atomXtermElement","_atomXtermProfileMenuElement","_atomXtermProfileMenuModel","_atomXtermDeleteProfileElement","_atomXtermOverwriteProfileElement","_atomXtermSaveProfileElement","AtomXtermSingletonSymbol","configKeys","onDidChange","_ref","newValue","oldValue","views","addViewProvider","atomXtermElement","AtomXtermElement","initialize","atomXtermProfileMenuModel","atomXtermDeleteProfileModel","atomXtermDeleteProfileElement","AtomXtermDeleteProfileElement","atomXtermOverwriteProfileModel","atomXtermOverwriteProfileElement","AtomXtermOverwriteProfileElement","atomXtermSaveProfileElement","AtomXtermSaveProfileElement","addOpener","startsWith","ATOM_XTERM_BASE_URI","observePanes","observeItems","setNewPane","observeActivePaneItem","atom-xterm:open","openInCenterOrDock","atom-xterm:open-split-up","atom-xterm:open-split-down","atom-xterm:open-split-left","atom-xterm:open-split-right","atom-xterm:open-split-bottom-dock","getBottomDock","atom-xterm:open-split-left-dock","getLeftDock","atom-xterm:open-split-right-dock","getRightDock","atom-xterm:toggle-profile-menu","atom-xterm:reorganize","reorganize","atom-xterm:reorganize-top","atom-xterm:reorganize-bottom","atom-xterm:reorganize-left","atom-xterm:reorganize-right","atom-xterm:reorganize-bottom-dock","atom-xterm:reorganize-left-dock","atom-xterm:reorganize-right-dock","atom-xterm:close-all","exitAllTerminals","atom-xterm:need-this-to-activate-package-for-tests-do-not-remove","atom-xterm:close","atom-xterm:restart","restart","atom-xterm:copy","atom-xterm:paste","paste","atom-xterm:open-link","openLink","atom-xterm:copy-link","copyLink","pack","packages","enablePackage","preload","activateNow","centerOrDock","getActivePane","currentActivePane","currentActiveItem","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","paneActiveItem","setActiveItem","return","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","exit","openTerminal","_openTerminal2","_asyncToGenerator2","_regenerator","mark","_callee3","_args3","wrap","_context3","prev","abrupt","stop","operation","clipboard","copyFromTerminal","pasteToTerminal","link","performOperationOnItem","orientation","newPane","activePane","activeItem","findTopmostSibling","splitUp","findBottommostSibling","splitDown","findLeftmostSibling","splitLeft","findRightmostSibling","splitRight","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","moveItemToPane","getPanes","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","spawnPtySettings","description","properties","terminalSettings","minimum","maximum","allowRelaunchingTerminalsOnStartup","hadRuntime","regeneratorRuntime","oldRuntime","global","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","awrap","arg","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","iter","reverse","Context","reset","skipTempReset","sent","_sent","delegate","tryEntries","resetTryEntry","rootRecord","completion","dispatchException","exception","handle","loc","caught","record","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","finallyEntry","complete","afterLoc","finish","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","info","pushTryEntry","locs","iteratorMethod","asyncGeneratorStep","gen","_next","_throw","_nodePtyPrebuilt","_xterm","fit","_interopRequireWildcard","_urlRegex","_electron","_elementResizeDetector","Terminal","applyAddon","STRICT_URL_REGEX","RegExp","concat","exact","strict","PTY_PROCESS_OPTIONS","ATOM_XTERM_OPTIONS","AtomXtermElementImpl","menuDiv","terminalDiv","hoveredLink","pendingTerminalProfileOptions","terminalDivIntersectionRatio","getSessionId","createTerminal","erd","strategy","listenTo","terminalDivIntersectionObserver","IntersectionObserver","observer","intersectionRatio","applyPendingTerminalProfileOptions","threshold","observe","wheelEvent","ctrlKey","deltaY","stopPropagation","capture","kill","isArray","checkPathIsDirectory","ptyProcessRunning","cursorBlink","getXtermOptions","backgroundColor","setMainBackgroundColor","ptyProcessCols","ptyProcessRows","isPtyProcessRunning","registerLinkMatcher","mouseEvent","shell","openExternal","matchIndex","clearHoveredLink","priority","setHoveredLink","onDidResetBaseProfile","isPromptToStartup","infoType","restartButtonText","messageDiv","restartButton","addSuccess","addError","addInfo","getShellCommand","_toConsumableArray2","getArgs","showNotification","getCwd","ptyProcessCommand","ptyProcessArgs","getTermType","getEnv","getEncoding","ptyProcessOptions","spawn","oldTitle","handleNewDataArrival","signal","_arr","setOption","intersection","geometry","proposeGeometry","newTerminalCols","newObj","arrayWithoutHoles","iterableToArray","nonIterableSpread","arr2","ReferenceError","_construct","Parent","sham","Proxy","isNativeReflectConstruct","Terminal_1","Strings","_core","textarea","blur","columns","writeln","parent","attachCustomKeyEventHandler","customKeyEventHandler","deregisterLinkMatcher","matcherId","registerCharacterJoiner","deregisterCharacterJoiner","joinerId","cursorYOffset","hasSelection","clearSelection","selectAll","selectLines","scrollLines","scrollPages","pageCount","scrollToTop","scrollToBottom","scrollToLine","getOption","addon","BufferSet_1","CompositionHelper_1","Viewport_1","Clipboard_1","EscapeSequences_1","InputHandler_1","Renderer_1","Linkifier_1","SelectionManager_1","CharMeasure_1","Browser","MouseHelper_1","Clone_1","SoundManager_1","ColorManager_1","MouseZoneManager_1","AccessibilityManager_1","ScreenDprMonitor_1","DomRenderer_1","Keyboard_1","CONSTRUCTOR_ONLY_OPTIONS","DEFAULT_OPTIONS","convertEol","termName","cursorStyle","bellSound","DEFAULT_BELL_SOUND","bellStyle","letterSpacing","screenKeys","screenReaderMode","macOptionIsMeta","macOptionClickForcesSelection","cancelEvents","disableStdin","useFlowControl","rightClickSelectsWord","rendererType","browser","_setup","_customKeyEventHandler","parentNode","_parent","cursorState","cursorHidden","applicationKeypad","applicationCursor","originMode","insertMode","wraparoundMode","bracketedPasteMode","charset","gcharset","glevel","charsets","curAttr","params","currentParam","writeBuffer","_writeInProgress","_xoffSentToCatchUp","_userScrolling","_inputHandler","InputHandler","renderer","selectionManager","linkifier","Linkifier","_mouseZoneManager","soundManager","SoundManager","buffers","BufferSet","initBuffersListeners","active","eraseAttr","activeElement","_setTheme","newBufferLength","needsRefresh","measure","onResize","_setupRenderer","onCharSizeChanged","_theme","viewport","syncScrollArea","_accessibilityManager","AccessibilityManager","_onTextAreaFocus","sendFocus","showCursor","_onTextAreaBlur","_initGlobal","_bindKeys","copyHandler","pasteHandlerWrapper","pasteHandler","rightClickHandler","moveTextAreaUnderMouseCursor","ev","_keyDown","_keyPress","keyCode","wasModifierKeyOnlyEvent","_keyUp","_compositionHelper","compositionstart","compositionupdate","compositionend","updateCompositionElements","_queueLinkification","_context","defaultView","_document","_screenDprMonitor","createDocumentFragment","_viewportElement","_viewportScrollArea","_helperContainer","attachToDom","tabIndex","_compositionView","CompositionHelper","CharMeasure","Viewport","colorManager","onWindowResize","SelectionManager","onMouseDown","bindMouse","Renderer","DomRenderer","pressed","sendButton","pos","meta","ctrl","mod","overrideType","which","detail","wheelDeltaY","shiftKey","metaKey","vt200Mouse","normalMouse","getButton","sendEvent","encode","utfMouse","_vt300Mouse","data_1","_decLocator","page","urxvtMouse","sgrMouse","mouseEvents","shouldForceSelection","cancel","moveHandler","sendMove","x10Mouse","hasScrollback","getLinesScrolled","sequence","abs","onWheel","onTouchStart","onTouchMove","refreshRows","linkifyRows","updateCursorStyle","shouldColumnSelect","scroll","newLine","topRow","bottomRow","willBufferBeTrimmed","scrollRegionHeight","shiftElements","updateRange","disp","suppressScrollEvent","oldYdisp","scrollAmount","_innerWrite","writeBatch","_refreshStart","_refreshEnd","normal","selectionText","keydown","evaluateKeyboardEvent","scrollCount","_isThirdLevelShift","thirdLevelKey","altKey","setgLevel","setgCharset","charCode","bell","_soundBell","playBellSound","_visualBell","_visualBellTimer","log","maxRange","eraseRight","eraseLeft","eraseLine","cur","term","handleTitle","reverseIndex","inputHandler","tabSet","force","matchColor","r1","g1","b1","hash","matchColorCache","ldiff","Infinity","li","matchColorDistance","r2","g2","b2","_normal","_alt","_activeBuffer","activateNormalBuffer","activeBuffer","inactiveBuffer","activateAltBuffer","_maxLength","_array","_startIndex","_length","newArray","_getCyclicIndex","newLength","deleteCount","items","countToTrim","count","expandListBy","_textarea","_isComposing","_isSendingComposition","_compositionPosition","_finalizeComposition","_handleAnyTextareaChanges","waitForPropogation","_clearTextareaPosition","currentCompositionPosition_1","dontRecurse","isCursorInViewport","cursorTop","cursorLeft","left","top","compositionViewBounds","getBoundingClientRect","FALLBACK_SCROLL_BAR_WIDTH","_scrollArea","_charMeasure","scrollBarWidth","_currentRowHeight","_lastRecordedBufferLength","_lastRecordedViewportHeight","_lastRecordedBufferHeight","_wheelPartialScroll","offsetWidth","_onScroll","_refresh","offsetHeight","newBufferHeight","_getPixelsScrolled","deltaMode","WheelEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","_lastTouchY","touches","prepareTextForTerminal","bracketTextForPaste","clientX","clientY","clipboardData","setData","dispatchPaste","getData","shouldSelectWord","isClickInSelection","selectWordAtCursor","Charsets_1","CharWidth_1","EscapeSequenceParser_1","GLEVEL","(",")","*","+","-",".","RequestTerminfo","hook","collect","flag","_data","put","unhook","DECRQSS","pt","block","underline","bar","_parser","EscapeSequenceParser","_surrogateHigh","setCsiHandlerFallback","setEscHandlerFallback","setExecuteHandlerFallback","setOscHandlerFallback","identifier","setPrintHandler","print","setCsiHandler","insertChars","cursorUp","cursorDown","cursorForward","cursorBackward","cursorNextLine","cursorPrecedingLine","cursorCharAbsolute","cursorPosition","cursorForwardTab","eraseInDisplay","eraseInLine","insertLines","deleteLines","deleteChars","scrollUp","scrollDown","eraseChars","cursorBackwardTab","charPosAbsolute","hPositionRelative","repeatPrecedingCharacter","sendDeviceAttributes","linePosAbsolute","vPositionRelative","hVPosition","tabClear","setMode","resetMode","charAttributes","deviceStatus","softReset","setCursorStyle","setScrollRegion","saveCursor","restoreCursor","setExecuteHandler","lineFeed","carriageReturn","backspace","tab","shiftOut","shiftIn","nextLine","setOscHandler","setTitle","setEscHandler","keypadApplicationMode","keypadNumericMode","selectDefaultCharset","this_1","selectCharset","CHARSETS","setErrorHandler","setDcsHandler","cursorStartX","cursorStartY","low","chWidth","bufferRow","stringPosition","wcwidth","moves","originalX","row","j","col","scrollBackSize","scrollBottomRowsOffset","scrollBottomAbsolute","DEFAULT_CHARSET","savedCols","disable","enable","isBlinking","savedCurAttr","collectAndFlag","level","`","f","h","k","q","w","z","{","|","}","~","#","@","[","\\","]","^","COMBINING_BMP","COMBINING_HIGH","bisearch","ucs","mid","wcwidthBMP","nul","control","isWideBMP","table","num","CODEPOINTS","ITEMSIZE","initTable","wcwidthHigh","high","TransitionTable","action","addMany","codes","PRINTABLES","EXECUTABLES","VT500_TRANSITION_TABLE","states","DcsDummy","TRANSITIONS","initialState","currentState","_osc","_params","_collect","_printHandlerFb","_executeHandlerFb","_csiHandlerFb","_escHandlerFb","_oscHandlerFb","_dcsHandlerFb","_errorHandlerFb","_printHandler","_executeHandlers","_csiHandlers","_escHandlers","_oscHandlers","_dcsHandlers","_activeDcsHandler","_errorHandler","clearPrintHandler","clearExecuteHandler","clearCsiHandler","clearEscHandler","ident","clearOscHandler","clearDcsHandler","setDcsHandlerFallback","clearErrorHandler","transition","dcs","osc","dcsHandler","abort","content","TextRenderLayer_1","SelectionRenderLayer_1","CursorRenderLayer_1","LinkRenderLayer_1","RenderDebouncer_1","CharacterJoinerRegistry_1","_isPaused","_needsFullRefresh","_characterJoinerRegistry","CharacterJoinerRegistry","_renderLayers","TextRenderLayer","SelectionRenderLayer","LinkRenderLayer","CursorRenderLayer","_devicePixelRatio","_updateDimensions","_renderDebouncer","_renderRows","observer_1","onIntersectionChange","disconnect","_runOperation","GridCache_1","container","characterJoinerRegistry","_characterOverlapCache","_state","GridCache","terminalFont","_characterWidth","_characterFont","_forEachCell","firstRow","lastRow","joinerRegistry","joinedRanges","getJoinedCharacters","attr","isJoined","lastCharX","range","_isOverlapping","_drawBackground","startX","startY","prevFillStyle","nextFillStyle","_drawForeground","cache","overlaps","measureText","clonedColors","BaseCharAtlas_1","CharAtlasGenerator_1","LRUMap_1","TEXTURE_WIDTH","TEXTURE_HEIGHT","TRANSPARENT_COLOR","DynamicCharAtlas","_config","_drawToCacheCount","_cacheCanvas","_cacheCtx","tmpCanvas","_tmpCtx","_width","_height","capacity","_cacheMap","prealloc","glyph","glyphKey","styleFlags","getGlyphCacheKey","cacheValue","_drawFromCache","_canCache","peek","cacheValue_1","_drawToCache","_toCoordinates","_a","cacheX","cacheY","drawImage","_getColorFromAnsiIndex","_getBackgroundColor","_getForegroundColor","fontStyle","putImageData","LRUMap","_map","_head","_tail","_nodePool","_unlinkNode","_appendNode","tail","nodePool","head","NoneCharAtlas","Types_2","StaticCharAtlas","_canvasFactory","_texture","texture","_isCached","isAscii","isBasicColor","isDefaultColor","isDefaultBackground","charAtlasCellWidth","charAtlasCellHeight","_clearState","_didStateChange","viewportStartRow","viewportEndRow","viewportCappedStartRow","viewportCappedEndRow","startRowEndCol","middleRowsCount","_areCoordinatesEqual","coord1","coord2","isFocused","_cursorRenderers","_renderBarCursor","_renderBlockCursor","_renderUnderlineCursor","_clearCursor","_cursorBlinkStateManager","pause","resume","CursorBlinkStateManager","_render","restartBlinkAnimation","isPaused","triggeredByAnimationFrame","cursorY","viewportRelativeCursorY","_renderBlurCursor","isCursorVisible","strokeStyle","_renderCallback","_restartInterval","_blinkStartTimeout","_blinkInterval","clearInterval","_animationTimeRestarted","timeToStart","time","setInterval","_onLinkHover","_onLinkLeave","_clearCurrentLink","middleRowCount","_characterJoiners","_nextCharacterJoinerId","joiner","ranges","lineStr","rangeStartColumn","currentStringIndex","rangeStartStringIndex","rangeAttr","_getJoinedRanges","lineData","joinerRanges","_mergeRanges","_stringRangesToCellRanges","currentRangeIndex","currentRangeStarted","currentRange","length_1","newRange","inRange","_linkMatchers","_nextLinkMatcherId","_rowsToLinkify","mouseZoneManager","_rowsTimeoutId","_linkifyRows","TIME_BEFORE_LINKIFY","_linkifyRow","matcher","validationCallback","hoverTooltipCallback","hoverLeaveCallback","_addLinkMatcherToList","rowIndex","absoluteRowIndex","currentIndex","_doLinkifyRow","match","isValid","_addLink","remainingStartIndex","remainingText","_createLinkHoverEvent","SelectionModel_1","AltClickHandler_1","NON_BREAKING_SPACE_CHAR","ALL_NON_BREAKING_SPACE_REGEX","_enabled","_initListeners","_model","SelectionModel","_activeSelectionMode","_removeMouseDownListeners","_mouseUpListener","_onMouseUp","_trimListener","_onTrim","_onBufferActivate","finalSelectionStart","finalSelectionEnd","lineText","_buffer","bufferLine","isNewSelection","_refreshAnimationFrame","_getMouseBufferCoords","_selectWordAt","selectionEnd","isSelectAllActive","selectionStart","onTrim","_getMouseEventScrollAmount","terminalHeight","_mouseDownTimeStamp","timeStamp","_dragScrollAmount","_onIncrementalClick","_onSingleClick","_onDoubleClick","_onTripleClick","_addMouseDownListeners","_dragScrollIntervalTimer","_dragScroll","selectionStartLength","_selectLineAt","previousSelectionEnd","_selectToWordAt","timeElapsed","AltClickHandler","move","_convertViewportColToCharacterIndex","charIndex","setSelection","_getWordAt","allowWhitespaceOnlySelection","followWrappedLinesAbove","followWrappedLinesBelow","charOffset","leftWideCharCount","rightWideCharCount","leftLongCharOffset","rightLongCharOffset","_isCharWordSeparator","trim","previousBufferLine","previousLineWordPosition","nextBufferLine","nextLineWordPosition","wordPosition","areSelectionValuesReversed","wrappedRange","startPlusLength","_mouseEvent","_lines","_startCol","_startRow","coordinates","coordinate","_endCol","_endRow","_arrowSequences","_moveHorizontallyOnly","_resetStartingRow","_moveToRequestedRow","_moveToRequestedCol","repeat","_bufferLine","_wrappedRowsForRow","_sequence","_wrappedRowsCount","_verticalDirection","direction","_horizontalDirection","wrappedRows","currentRow","lineWraps","forward","currentCol","bufferStr","rpt","_parentElement","_measureElement","depth","clonedObject","audioContextCtor","AudioContext","webkitAudioContext","_audioContext","bellAudioSource_1","createBufferSource","context_1","decodeAudioData","_base64ToArrayBuffer","_removeMimeType","connect","destination","base64","binaryString","atob","dataURI","_liveRegionLineCount","_charsToConsume","_accessibilityTreeRoot","_rowContainer","_rowElements","_createAccessibilityTreeNode","_topBoundaryFocusListener","_onBoundaryFocus","_bottomBoundaryFocusListener","_refreshRowsDimensions","_renderRowsDebouncer","_refreshRows","_liveRegion","insertAdjacentElement","_onResize","_onChar","spaceCount","_onTab","keyChar","_onKey","_clearLiveRegion","boundaryElement","beforeBoundaryElement","getAttribute","relatedTarget","topBoundaryElement","bottomBoundaryElement","newElement","unshift","children","_refreshRowDimensions","MAX_ROWS_TO_READ","_announceCharacter","setSize","posInSet","DomRendererRowFactory_1","TERMINAL_CLASS_PREFIX","ROW_CONTAINER_CLASS","SELECTION_CLASS","nextTerminalId","_terminalClass","_refreshRowElements","_selectionContainer","_rowFactory","DomRendererRowFactory","_themeStyleElement","_dimensionsStyleElement","styles","_terminalSelector","BOLD_CLASS","ITALIC_CLASS","CURSOR_CLASS","documentFragment","_createSelectionElement","endCol_1","colStart","colEnd","cursorAbsoluteY","cursorX","rowElement","createRow","isCursorRow","charElement","KEYCODE_KEY_MAPPINGS","48","49","50","51","52","53","54","55","56","57","186","187","188","189","190","191","192","219","220","221","222","applicationCursorMode","modifiers","keyMapping","parentElementStyle","parentElementHeight","getPropertyValue","parentElementWidth","elementStyle","availableHeight","availableWidth","terminalConstructor","ipRegex","tlds","v4","v6","ip","constants","origCwd","GRACEFUL_FS_PLATFORM","er","chdir","chmodFix","orig","chownErOk","chmodFixSync","chownFix","uid","gid","chownFixSync","statFix","statFixSync","getuid","lchmod","O_WRONLY","O_SYMLINK","fchmod","err2","lchmodSync","threw","fchmodSync","patchLchmod","lutimes","mt","er2","lutimesSync","_b","_c","nextTick","patchLutimes","chown","fchown","lchown","chmod","chownSync","fchownSync","lchownSync","chmodSync","fstat","lstat","fstatSync","lstatSync","rename","fs$rename","backoff","CB","stater","st","fs$read","callback_","eagCounter","__","readSync","fs$readSync","Stream","readable","paused","bufferSize","setEncoding","_read","busy","_queue","_open","flush","utimesSync","notExist","startCopy","destStat","src","dest","srcStat","dereference","mkdirSync","copyDir","mkDirAndCopy","onDir","isFile","isCharacterDevice","isBlockDevice","copyFile","overwrite","unlinkSync","errorOnExist","mayCopyFile","onFile","isSymbolicLink","resolvedSrc","readlinkSync","symlinkSync","resolvedDest","isSrcSubdir","onLink","getStats","copyFileSync","preserveTimestamps","_buff","fdr","fdw","writeSync","copyFileFallback","readdirSync","srcItem","destItem","checkPaths","copyDirItem","srcArray","destArray","current","checkStats","ino","clobber","arch","destParent","o777","made","errInval","xfs","umask","mkdir","err0","err1","utimes","checkParentDir","dirExists","handleFilter","onInclude","include","unlink","readlink","symlink","setDestModeAndTimestamps","rs","once","pipe","copyDirItems","emptyDir","deleteItem","emptyDirSync","emptydirSync","emptydir","assert","isWindows","defaults","maxBusyTries","busyTries","strictEqual","rimraf_","fixWinEPERM","rmdir","er3","fixWinEPERMSync","rmdirSync","originalEr","errState","rmkids","rimrafSync","retries","rmkidsSync","createFile","createFileSync","ensureFile","ensureFileSync","createLink","createLinkSync","ensureLink","ensureLinkSync","createSymlink","createSymlinkSync","ensureSymlink","ensureSymlinkSync","makeFile","srcpath","dstpath","makeLink","destinationExists","linkSync","_mkdirs","_symlinkPaths","symlinkPaths","symlinkPathsSync","_symlinkType","symlinkType","symlinkTypeSync","relative","toDst","toCwd","isAbsolute","dstdir","relativeToDst","outputJson","outputJsonSync","outputJSON","outputJSONSync","writeJSON","writeJSONSync","readJSON","readJSONSync","_fs","spaces","EOL","replacer","stripBom","isBuffer","jsonfile","shouldThrow","throws","reviver","itDoes","moveSyncAcrossDevice","tryCopySync","moveDirSyncAcrossDevice","moveFileSyncAcrossDevice","moveSync","accessSync","basename","renameSync","tryRenameSync","moveAcrossDevice","destExists","doRename","outputFile","outputFileSync","rng","bytesToUuid","rnds","ii","crypto","randomBytes","byteToHex","bth","toJSON","urlencoded","parsedBase","parsedURL","_url","_query","doNotStripQMark","_list","origin","protocol","hostname","pathname","regexes","mappingTable","findStatus","validateLabel","label","processingOption","codePoints","endsWith","includes","combiningMarks","status","combiningClassVirama","validZWNJ","rtl","bidiS1LTR","bidiS1RTL","bidiS2","bidiS3","bidiS4EN","bidiS4AN","bidiS5","bidiS6","processing","domainName","hasError","processed","mapping","mapChars","labels","isBidi","bidiDomain","isBidiDomain","origLabel","curProcessing","RangeError","containsNonASCII","total","toUnicode","stableSortBy","_updateSteps","found","LARGE_ARRAY_SIZE","FUNC_ERROR_TEXT","HASH_UNDEFINED","UNORDERED_COMPARE_FLAG","PARTIAL_COMPARE_FLAG","INFINITY","MAX_SAFE_INTEGER","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","nodeType","freeModule","freeProcess","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arrayMap","array","iteratee","arrayPush","arraySome","predicate","baseUnary","isHostObject","mapToArray","setToArray","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","propertyIsEnumerable","spreadableSymbol","isConcatSpreadable","nativeKeys","transform","overArg","nativeMax","getNative","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","Hash","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArguments","baseTimes","skipIndexes","isIndex","assocIndexOf","eq","getMapData","baseEach","eachFunc","fromRight","isArrayLike","createBaseEach","baseFor","keysFunc","createBaseFor","baseGet","isKey","castPath","toKey","baseHasIn","baseIsEqual","other","customizer","bitmask","stack","isObjectLike","equalFunc","objIsArr","othIsArr","objTag","othTag","getTag","objIsObj","othIsObj","isSameTag","equalArrays","tag","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isMasked","isFunction","baseIteratee","identity","srcValue","isStrictComparable","matchesStrictComparable","hasFunc","isLength","hasPath","hasIn","baseMatchesProperty","matchData","getMatchData","noCustomizer","baseIsMatch","baseMatches","baseProperty","basePropertyDeep","baseKeys","Ctor","proto","isPrototype","baseOrderBy","iteratees","orders","comparer","baseSortBy","baseMap","criteria","objCriteria","othCriteria","ordersLength","compareAscending","order","compareMultiple","stringToPath","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","isSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","arrLength","seen","arrValue","othIndex","isKeyable","getValue","isFlattenable","isIterateeCall","ctorString","memoize","baseToString","quote","sortBy","otherArgs","baseRest","baseFlatten","isStrict","resolver","memoized","Cache","isArrayLikeObject","webpackPolyfill","deprecate","paths","_diff","_added","_deleted","_updated","_detailed","_diff2","_added2","_deleted2","_updated2","_detailed2","deletedValues","deleted","elementUtilsMaker","listenerHandlerMaker","idGeneratorMaker","idHandlerMaker","reporterMaker","browserDetector","batchProcessorMaker","stateHandler","objectStrategyMaker","scrollStrategyMaker","isCollection","toArray","isElement","idHandler","idGenerator","defaultIdHandler","reporter","batchProcessor","globalOptions","callOnAdd","detectionStrategy","eventListenerHandler","elementUtils","desiredStrategy","strategyOptions","onReadyCallbacks","elements","onResizeCallback","elementsReady","onReadyCallback","getState","initState","isDetectable","isBusy","markBusy","makeDetectable","markAsDetectable","startSize","uninstall","cleanState","eventListeners","getListeners","idCount","generate","quiet","noop","attachFunction","Batch","batch","topLevel","bottomLevel","fns","asyncProcess","autoProcess","asyncFrameHandler","isProcessing","processBatch","processingBatch","processBatchAsync","raf","requestFrame","localAsyncProcess","cancelFrame","getObject","OBJECT_STYLE","positionCheckPerformed","mutateDom","alterPositionStyles","removeRelativeStyles","getNumericalValue","cssText","onload","getDocument","contentDocument","objectDocument","injectObject","listenerProxy","proxy","attachEvent","detachEvent","hasState","scrollbarSizes","child","insertBefore","widthSize","clientWidth","heightSize","clientHeight","getScrollbarSizes","detectionContainerClass","addEvent","removeEvent","getExpandElement","childNodes","getShrinkElement","styleId","containerClass","getElementById","containerAnimationClass","containerAnimationActiveClass","styleElement","injectStyle","injectScrollStyle","isUnrendered","getStyle","right","bottom","widthCSS","heightCSS","storeStyle","storeCurrentSize","lastWidth","lastHeight","getWidthOffset","getHeightOffset","getExpandWidth","getExpandHeight","positionScrollbars","expand","shrink","expandWidth","expandHeight","shrinkWidth","getShrinkWidth","shrinkHeight","getShrinkHeight","injectContainerElement","className","addAnimationClass","onAnimationStart","onRendered","injectScrollElements","rootContainer","scrollbarWidth","scrollbarHeight","containerStyle","getLeftTopBottomRightCssText","containerContainer","expandChild","shrinkChild","onExpandScroll","onShrinkScroll","onExpand","onShrink","registerListenersAndPositionElements","updateChildSizes","getExpandChildElement","updateDetectorElements","areElementsInjected","notifyListenersIfNeeded","lastNotifiedWidth","lastNotifiedHeight","handleScroll","finalizeDomMutation","ready","install","storeStartSize","isInDocument","isDetached","AtomXtermDeleteProfileElementImpl","promptButtonsDiv","confirmHandler","cancelHandler","clearDiv","confirmButton","cancelButton","AtomXtermOverwriteProfileElementImpl","AtomXtermSaveProfileElementImpl","textboxDiv"],"mappings":"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Kyc,MAAQ,IAAIF,OAAO,OAAS6/B,EAAK,UAAYC,EAAK,MAC1C,IAAI9/B,OAAO,MAAQ6/B,EAAK,QAAUC,EAAK,IAAK,MAGjEC,EAAGF,GAAK,SAAUp8C,GAEjB,OADAA,EAAOA,OACKyc,MAAQ,IAAIF,OAAO,IAAM6/B,EAAK,KAAO,IAAI7/B,OAAO6/B,EAAI,MAGjEE,EAAGD,GAAK,SAAUr8C,GAEjB,OADAA,EAAOA,OACKyc,MAAQ,IAAIF,OAAO,IAAM8/B,EAAK,KAAO,IAAI9/B,OAAO8/B,EAAI,qBClBjE/iF,EAAOD,SACL,MACA,OACA,SACA,MACA,SACA,SACA,MACA,OACA,UACA,WACA,KACA,UACA,YACA,aACA,cACA,MACA,SACA,QACA,KACA,OACA,MACA,QACA,KACA,MACA,OACA,QACA,KACA,iBACA,MACA,SACA,KACA,UACA,SACA,KACA,MACA,OACA,SACA,WACA,SACA,OACA,KACA,YACA,UACA,SACA,YACA,WACA,OACA,SACA,SACA,KACA,kBACA,iBACA,OACA,QACA,QACA,YACA,YACA,UACA,SACA,MACA,KACA,MACA,aACA,MACA,QACA,KACA,YACA,KACA,OACA,SACA,QACA,OACA,OACA,MACA,OACA,KACA,OACA,OACA,aACA,KACA,UACA,WACA,KACA,UACA,OACA,UACA,QACA,UACA,SACA,OACA,QACA,UACA,KACA,MACA,KACA,MACA,KACA,QACA,KACA,OACA,QACA,UACA,iBACA,OACA,OACA,MACA,YACA,cACA,WACA,WACA,WACA,WACA,aACA,UACA,SACA,KACA,MACA,MACA,OACA,MACA,MACA,KACA,KACA,QACA,SACA,OACA,UACA,SACA,OACA,UACA,MACA,KACA,KACA,KACA,SACA,KACA,QACA,MACA,OACA,OACA,QACA,MACA,MACA,KACA,QACA,cACA,SACA,cACA,OACA,YACA,OACA,KACA,MACA,MACA,KACA,MACA,aACA,KACA,QACA,aACA,OACA,MACA,OACA,MACA,OACA,UACA,QACA,SACA,SACA,MACA,WACA,MACA,KACA,WACA,cACA,WACA,SACA,UACA,WACA,KACA,KACA,WACA,UACA,QACA,WACA,WACA,MACA,OACA,KACA,KACA,KACA,KACA,MACA,KACA,MACA,OACA,MACA,OACA,cACA,MACA,SACA,OACA,iBACA,QACA,WACA,UACA,aACA,MACA,UACA,QACA,OACA,SACA,UACA,OACA,UACA,OACA,OACA,SACA,OACA,SACA,MACA,WACA,WACA,MACA,MACA,OACA,MACA,KACA,KACA,MACA,SACA,MACA,OACA,KACA,MACA,MACA,KACA,KACA,SACA,UACA,QACA,OACA,QACA,UACA,YACA,SACA,WACA,SACA,KACA,WACA,SACA,QACA,UACA,OACA,QACA,OACA,WACA,KACA,KACA,SACA,WACA,QACA,SACA,WACA,WACA,QACA,OACA,UACA,KACA,KACA,KACA,QACA,QACA,SACA,UACA,UACA,MACA,UACA,WACA,YACA,UACA,UACA,WACA,SACA,SACA,eACA,aACA,UACA,cACA,UACA,iBACA,OACA,OACA,UACA,UACA,SACA,UACA,UACA,KACA,SACA,aACA,cACA,UACA,QACA,MACA,SACA,UACA,MACA,KACA,aACA,KACA,KACA,KACA,KACA,QACA,OACA,KACA,QACA,MACA,QACA,OACA,OACA,SACA,SACA,MACA,OACA,MACA,KACA,OACA,SACA,QACA,SACA,WACA,OACA,WACA,QACA,WACA,SACA,UACA,OACA,SACA,MACA,MACA,WACA,OACA,UACA,SACA,YACA,WACA,WACA,OACA,MACA,KACA,KACA,KACA,MACA,KACA,OACA,SACA,QACA,MACA,OACA,UACA,MACA,WACA,QACA,MACA,QACA,OACA,SACA,OACA,SACA,SACA,OACA,MACA,KACA,QACA,MACA,KACA,MACA,QACA,MACA,YACA,KACA,KACA,QACA,SACA,SACA,WACA,cACA,cACA,QACA,QACA,YACA,KACA,WACA,OACA,KACA,MACA,SACA,WACA,KACA,WACA,KACA,aACA,MACA,SACA,WACA,WACA,SACA,UACA,UACA,aACA,OACA,OACA,YACA,QACA,SACA,MACA,OACA,OACA,UACA,UACA,OACA,QACA,WACA,UACA,UACA,KACA,OACA,WACA,OACA,OACA,QACA,UACA,YACA,OACA,YACA,WACA,OACA,UACA,MACA,UACA,KACA,KACA,SACA,UACA,OACA,UACA,UACA,MACA,KACA,KACA,MACA,OACA,cACA,WACA,OACA,QACA,UACA,QACA,aACA,MACA,KACA,OACA,YACA,MACA,UACA,YACA,WACA,MACA,UACA,YACA,MACA,OACA,YACA,SACA,MACA,KACA,MACA,UACA,QACA,SACA,OACA,QACA,MACA,SACA,KACA,OACA,KACA,MACA,KACA,MACA,OACA,UACA,SACA,KACA,KACA,OACA,KACA,KACA,OACA,QACA,QACA,SACA,KACA,QACA,QACA,MACA,SACA,QACA,KACA,QACA,OACA,MACA,MACA,KACA,UACA,OACA,YACA,OACA,MACA,YACA,WACA,OACA,SACA,MACA,MACA,MACA,KACA,KACA,KACA,WACA,WACA,SACA,QACA,QACA,UACA,QACA,KACA,KACA,KACA,WACA,QACA,OACA,QACA,UACA,OACA,KACA,KACA,OACA,UACA,UACA,OACA,MACA,OACA,WACA,SACA,aACA,OACA,WACA,OACA,SACA,OACA,SACA,YACA,UACA,MACA,KACA,MACA,KACA,KACA,SACA,WACA,UACA,YACA,YACA,QACA,YACA,QACA,YACA,QACA,WACA,OACA,UACA,MACA,UACA,SACA,UACA,QACA,MACA,KACA,OACA,KACA,KACA,SACA,QACA,UACA,MACA,OACA,MACA,MACA,KACA,KACA,OACA,MACA,QACA,KACA,KACA,SACA,OACA,OACA,aACA,KACA,aACA,WACA,OACA,MACA,MACA,YACA,YACA,SACA,MACA,QACA,gBACA,SACA,cACA,KACA,WACA,KACA,KACA,QACA,KACA,UACA,UACA,MACA,WACA,KACA,OACA,MACA,QACA,MACA,SACA,OACA,MACA,MACA,KACA,OACA,QACA,UACA,MACA,MACA,MACA,KACA,MACA,MACA,KACA,OACA,SACA,MACA,MACA,KACA,WACA,OACA,SACA,UACA,SACA,OACA,KACA,cACA,iBACA,kBACA,MACA,KACA,KACA,KACA,MACA,MACA,SACA,SACA,UACA,OACA,KACA,KACA,QACA,UACA,SACA,KACA,OACA,MACA,KACA,MACA,OACA,YACA,KACA,KACA,QACA,KACA,KACA,UACA,YACA,cACA,QACA,YACA,SACA,UACA,OACA,YACA,UACA,UACA,MACA,SACA,UACA,MACA,SACA,KACA,KACA,MACA,QACA,UACA,SACA,QACA,OACA,QACA,OACA,KACA,UACA,OACA,OACA,gBACA,YACA,WACA,OACA,QACA,UACA,OACA,UACA,QACA,OACA,QACA,OACA,SACA,QACA,KACA,MACA,OACA,QACA,SACA,QACA,OACA,MACA,SACA,QACA,QACA,OACA,MACA,eACA,KACA,KACA,KACA,MACA,OACA,KACA,WACA,QACA,OACA,SACA,KACA,KACA,KACA,QACA,SACA,OACA,SACA,SACA,MACA,aACA,QACA,MACA,SACA,YACA,UACA,WACA,YACA,WACA,SACA,MACA,KACA,WACA,KACA,KACA,MACA,QACA,OACA,YACA,OACA,WACA,MACA,OACA,MACA,WACA,UACA,KACA,KACA,QACA,YACA,MACA,OACA,OACA,MACA,aACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,OACA,SACA,SACA,OACA,MACA,MACA,MACA,SACA,QACA,UACA,QACA,SACA,WACA,SACA,OACA,cACA,MACA,QACA,WACA,KACA,KACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,SACA,SACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,QACA,SACA,OACA,aACA,SACA,OACA,MACA,KACA,KACA,MACA,MACA,UACA,UACA,UACA,UACA,MACA,aACA,OACA,OACA,aACA,QACA,KACA,MACA,KACA,MACA,MACA,KACA,OACA,OACA,QACA,QACA,SACA,SACA,KACA,KACA,QACA,qBACA,SACA,MACA,SACA,QACA,KACA,KACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,WACA,MACA,SACA,UACA,SACA,cACA,UACA,OACA,KACA,QACA,MACA,MACA,MACA,SACA,aACA,MACA,OACA,SACA,SACA,MACA,UACA,UACA,QACA,SACA,MACA,MACA,KACA,OACA,YACA,UACA,QACA,OACA,WACA,QACA,QACA,YACA,MACA,OACA,KACA,MACA,KACA,SACA,KACA,KACA,WACA,MACA,UACA,QACA,QACA,cACA,SACA,SACA,SACA,OACA,SACA,WACA,MACA,MACA,OACA,OACA,UACA,QACA,KACA,KACA,QACA,OACA,cACA,WACA,OACA,KACA,KACA,MACA,OACA,QACA,UACA,OACA,OACA,KACA,YACA,QACA,QACA,QACA,MACA,OACA,cACA,OACA,cACA,QACA,aACA,WACA,aACA,MACA,aACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,OACA,SACA,QACA,MACA,SACA,QACA,OACA,KACA,OACA,aACA,UACA,SACA,UACA,MACA,WACA,cACA,QACA,QACA,SACA,OACA,WACA,MACA,OACA,UACA,SACA,SACA,aACA,OACA,aACA,SACA,UACA,UACA,OACA,YACA,QACA,cACA,MACA,MACA,MACA,OACA,KACA,SACA,QACA,QACA,SACA,OACA,KACA,OACA,KACA,QACA,OACA,MACA,KACA,MACA,SACA,KACA,WACA,OACA,SACA,SACA,OACA,QACA,WACA,UACA,UACA,kBACA,SACA,MACA,OACA,OACA,MACA,OACA,OACA,KACA,MACA,MACA,KACA,MACA,MACA,aACA,UACA,eACA,SACA,SACA,UACA,UACA,YACA,OACA,OACA,KACA,KACA,SACA,OACA,SACA,WACA,OACA,SACA,QACA,WACA,MACA,QACA,MACA,MACA,OACA,MACA,KACA,KACA,YACA,QACA,OACA,QACA,OACA,UACA,QACA,OACA,WACA,SACA,OACA,WACA,UACA,KACA,OACA,OACA,UACA,OACA,KACA,KACA,MACA,OACA,MACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,OACA,KACA,SACA,SACA,WACA,WACA,OACA,QACA,YACA,OACA,OACA,MACA,QACA,UACA,QACA,OACA,gBACA,KACA,MACA,MACA,KACA,QACA,UACA,OACA,UACA,YACA,YACA,UACA,MACA,WACA,YACA,UACA,QACA,SACA,SACA,QACA,QACA,KACA,QACA,WACA,SACA,UACA,OACA,UACA,SACA,KACA,SACA,aACA,QACA,KACA,KACA,SACA,WACA,UACA,KACA,MACA,SACA,OACA,SACA,SACA,aACA,QACA,SACA,MACA,OACA,KACA,MACA,KACA,MACA,OACA,OACA,aACA,MACA,WACA,aACA,UACA,SACA,OACA,KACA,KACA,KACA,MACA,UACA,UACA,OACA,UACA,SACA,UACA,OACA,QACA,QACA,KACA,SACA,MACA,KACA,SACA,KACA,KACA,QACA,KACA,KACA,QACA,QACA,QACA,MACA,QACA,UACA,QACA,QACA,OACA,SACA,OACA,KACA,QACA,UACA,WACA,SACA,gBACA,YACA,qBACA,QACA,MACA,KACA,OACA,MACA,QACA,QACA,KACA,MACA,KACA,KACA,KACA,QACA,MACA,WACA,KACA,KACA,SACA,aACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,YACA,OACA,WACA,KACA,KACA,QACA,WACA,WACA,eACA,MACA,KACA,KACA,SACA,QACA,MACA,SACA,SACA,MACA,MACA,SACA,OACA,SACA,QACA,aACA,OACA,OACA,aACA,KACA,QACA,aACA,QACA,OACA,SACA,OACA,SACA,KACA,SACA,QACA,UACA,SACA,OACA,UACA,SACA,QACA,UACA,UACA,iBACA,SACA,QACA,UACA,MACA,UACA,QACA,OACA,KACA,UACA,OACA,OACA,cACA,MACA,UACA,OACA,UACA,MACA,gBACA,WACA,OACA,QACA,QACA,MACA,KACA,MACA,MACA,OACA,QACA,UACA,SACA,MACA,MACA,MACA,KACA,OACA,KACA,KACA,KACA,KACA,OACA,OACA,KACA,MACA,OACA,OACA,KACA,OACA,QACA,KACA,KACA,OACA,KACA,KACA,MACA,SACA,MACA,UACA,SACA,OACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,SACA,MACA,MACA,MACA,KACA,cACA,KACA,KACA,KACA,OACA,MACA,KACA,OACA,KACA,KACA,KACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,QACA,OACA,OACA,KACA,OACA,OACA,KACA,SACA,OACA,QACA,KACA,QACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,MACA,KACA,KACA,KACA,KACA,MACA,UACA,OACA,SACA,QACA,UACA,UACA,SACA,QACA,UACA,SACA,UACA,OACA,QACA,SACA,SACA,WACA,OACA,UACA,QACA,QACA,OACA,SACA,KACA,KACA,KACA,OACA,OACA,MACA,KACA,KACA,OACA,KACA,MACA,QACA,KACA,MACA,KACA,KACA,OACA,KACA,MACA,OACA,KACA,KACA,KACA,QACA,OACA,KACA,KACA,KACA,MACA,KACA,mBACA,oBACA,KACA,KACA,QACA,KACA,MACA,MACA,KACA,SACA,UACA,MACA,MACA,SACA,KACA,SACA,MACA,MACA,SACA,QACA,UACA,SACA,KACA,YACA,OACA,WACA,MACA,UACA,KACA,MACA,KACA,SACA,OACA,OACA,MACA,QACA,KACA,OACA,UACA,qBCvgDFC,EAAAD,QAAAE,QAAA,6BCAA,IAAIyC,EAAKlC,EAAQ,IACbyiF,EAAYziF,EAAQ,KAEpB0iF,EAAU/9E,QAAQ0Y,IAClBA,EAAM,KAENgS,EAAW1qB,QAAQoB,IAAI48E,sBAAwBh+E,QAAQ0qB,SAE3D1qB,QAAQ0Y,IAAM,WAGZ,OAFKA,IACHA,EAAMqlE,EAAQriF,KAAKsE,UACd0Y,GAET,IACE1Y,QAAQ0Y,MACR,MAAOulE,IAET,IAAIC,EAAQl+E,QAAQk+E,MAwNpB,SAASC,EAAUC,GACjB,OAAKA,EACE,SAAUl7E,EAAQxG,EAAM+B,GAC7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","file":"atom-xterm.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"atom\"), require(\"node-pty-prebuilt\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"atom\", \"node-pty-prebuilt\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"atom-xterm\"] = factory(require(\"atom\"), require(\"node-pty-prebuilt\"));\n\telse\n\t\troot[\"atom-xterm\"] = factory(root[\"atom\"], root[\"node-pty-prebuilt\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__13__, __WEBPACK_EXTERNAL_MODULE__85__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 69);\n","module.exports = require(\"path\");","var fs = require('fs')\nvar polyfills = require('./polyfills.js')\nvar legacy = require('./legacy-streams.js')\nvar queue = []\n\nvar util = require('util')\n\nfunction noop () {}\n\nvar debug = noop\nif (util.debuglog)\n debug = util.debuglog('gfs4')\nelse if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || ''))\n debug = function() {\n var m = util.format.apply(util, arguments)\n m = 'GFS4: ' + m.split(/\\n/).join('\\nGFS4: ')\n console.error(m)\n }\n\nif (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || '')) {\n process.on('exit', function() {\n debug(queue)\n require('assert').equal(queue.length, 0)\n })\n}\n\nmodule.exports = patch(require('./fs.js'))\nif (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH) {\n module.exports = patch(fs)\n}\n\n// Always patch fs.close/closeSync, because we want to\n// retry() whenever a close happens *anywhere* in the program.\n// This is essential when multiple graceful-fs instances are\n// in play at the same time.\nmodule.exports.close =\nfs.close = (function (fs$close) { return function (fd, cb) {\n return fs$close.call(fs, fd, function (err) {\n if (!err)\n retry()\n\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n })\n}})(fs.close)\n\nmodule.exports.closeSync =\nfs.closeSync = (function (fs$closeSync) { return function (fd) {\n // Note that graceful-fs also retries when fs.closeSync() fails.\n // Looks like a bug to me, although it's probably a harmless one.\n var rval = fs$closeSync.apply(fs, arguments)\n retry()\n return rval\n}})(fs.closeSync)\n\nfunction patch (fs) {\n // Everything that references the open() function needs to be in here\n polyfills(fs)\n fs.gracefulify = patch\n fs.FileReadStream = ReadStream; // Legacy name.\n fs.FileWriteStream = WriteStream; // Legacy name.\n fs.createReadStream = createReadStream\n fs.createWriteStream = createWriteStream\n var fs$readFile = fs.readFile\n fs.readFile = readFile\n function readFile (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$readFile(path, options, cb)\n\n function go$readFile (path, options, cb) {\n return fs$readFile(path, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readFile, [path, options, cb]])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n retry()\n }\n })\n }\n }\n\n var fs$writeFile = fs.writeFile\n fs.writeFile = writeFile\n function writeFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$writeFile(path, data, options, cb)\n\n function go$writeFile (path, data, options, cb) {\n return fs$writeFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$writeFile, [path, data, options, cb]])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n retry()\n }\n })\n }\n }\n\n var fs$appendFile = fs.appendFile\n if (fs$appendFile)\n fs.appendFile = appendFile\n function appendFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$appendFile(path, data, options, cb)\n\n function go$appendFile (path, data, options, cb) {\n return fs$appendFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$appendFile, [path, data, options, cb]])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n retry()\n }\n })\n }\n }\n\n var fs$readdir = fs.readdir\n fs.readdir = readdir\n function readdir (path, options, cb) {\n var args = [path]\n if (typeof options !== 'function') {\n args.push(options)\n } else {\n cb = options\n }\n args.push(go$readdir$cb)\n\n return go$readdir(args)\n\n function go$readdir$cb (err, files) {\n if (files && files.sort)\n files.sort()\n\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readdir, [args]])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n retry()\n }\n }\n }\n\n function go$readdir (args) {\n return fs$readdir.apply(fs, args)\n }\n\n if (process.version.substr(0, 4) === 'v0.8') {\n var legStreams = legacy(fs)\n ReadStream = legStreams.ReadStream\n WriteStream = legStreams.WriteStream\n }\n\n var fs$ReadStream = fs.ReadStream\n ReadStream.prototype = Object.create(fs$ReadStream.prototype)\n ReadStream.prototype.open = ReadStream$open\n\n var fs$WriteStream = fs.WriteStream\n WriteStream.prototype = Object.create(fs$WriteStream.prototype)\n WriteStream.prototype.open = WriteStream$open\n\n fs.ReadStream = ReadStream\n fs.WriteStream = WriteStream\n\n function ReadStream (path, options) {\n if (this instanceof ReadStream)\n return fs$ReadStream.apply(this, arguments), this\n else\n return ReadStream.apply(Object.create(ReadStream.prototype), arguments)\n }\n\n function ReadStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n if (that.autoClose)\n that.destroy()\n\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n that.read()\n }\n })\n }\n\n function WriteStream (path, options) {\n if (this instanceof WriteStream)\n return fs$WriteStream.apply(this, arguments), this\n else\n return WriteStream.apply(Object.create(WriteStream.prototype), arguments)\n }\n\n function WriteStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n that.destroy()\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n }\n })\n }\n\n function createReadStream (path, options) {\n return new ReadStream(path, options)\n }\n\n function createWriteStream (path, options) {\n return new WriteStream(path, options)\n }\n\n var fs$open = fs.open\n fs.open = open\n function open (path, flags, mode, cb) {\n if (typeof mode === 'function')\n cb = mode, mode = null\n\n return go$open(path, flags, mode, cb)\n\n function go$open (path, flags, mode, cb) {\n return fs$open(path, flags, mode, function (err, fd) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$open, [path, flags, mode, cb]])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n retry()\n }\n })\n }\n }\n\n return fs\n}\n\nfunction enqueue (elem) {\n debug('ENQUEUE', elem[0].name, elem[1])\n queue.push(elem)\n}\n\nfunction retry () {\n var elem = queue.shift()\n if (elem) {\n debug('RETRY', elem[0].name, elem[1])\n elem[0].apply(null, elem[1])\n }\n}\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","'use strict'\n\nexports.fromCallback = function (fn) {\n return Object.defineProperty(function () {\n if (typeof arguments[arguments.length - 1] === 'function') fn.apply(this, arguments)\n else {\n return new Promise((resolve, reject) => {\n arguments[arguments.length] = (err, res) => {\n if (err) return reject(err)\n resolve(res)\n }\n arguments.length++\n fn.apply(this, arguments)\n })\n }\n }, 'name', { value: fn.name })\n}\n\nexports.fromPromise = function (fn) {\n return Object.defineProperty(function () {\n const cb = arguments[arguments.length - 1]\n if (typeof cb !== 'function') return fn.apply(this, arguments)\n else fn.apply(this, arguments).then(r => cb(null, r), cb)\n }, 'name', { value: fn.name })\n}\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","'use strict'\nconst u = require('universalify').fromCallback\nconst mkdirs = u(require('./mkdirs'))\nconst mkdirsSync = require('./mkdirs-sync')\n\nmodule.exports = {\n mkdirs,\n mkdirsSync,\n // alias\n mkdirp: mkdirs,\n mkdirpSync: mkdirsSync,\n ensureDir: mkdirs,\n ensureDirSync: mkdirsSync\n}\n","\"use strict\";\nconst punycode = require(\"punycode\");\nconst tr46 = require(\"tr46\");\n\nconst infra = require(\"./infra\");\nconst { percentEncode, percentDecode } = require(\"./urlencoded\");\n\nconst specialSchemes = {\n ftp: 21,\n file: null,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nconst failure = Symbol(\"failure\");\n\nfunction countSymbols(str) {\n return punycode.ucs2.decode(str).length;\n}\n\nfunction at(input, idx) {\n const c = input[idx];\n return isNaN(c) ? undefined : String.fromCodePoint(c);\n}\n\nfunction isSingleDot(buffer) {\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\n}\n\nfunction isDoubleDot(buffer) {\n buffer = buffer.toLowerCase();\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\n}\n\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\n return infra.isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\n}\n\nfunction isWindowsDriveLetterString(string) {\n return string.length === 2 && infra.isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\n}\n\nfunction isNormalizedWindowsDriveLetterString(string) {\n return string.length === 2 && infra.isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\n}\n\nfunction containsForbiddenHostCodePoint(string) {\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\n}\n\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\n}\n\nfunction isSpecialScheme(scheme) {\n return specialSchemes[scheme] !== undefined;\n}\n\nfunction isSpecial(url) {\n return isSpecialScheme(url.scheme);\n}\n\nfunction isNotSpecial(url) {\n return !isSpecialScheme(url.scheme);\n}\n\nfunction defaultPort(scheme) {\n return specialSchemes[scheme];\n}\n\nfunction utf8PercentEncode(c) {\n const buf = Buffer.from(c);\n\n let str = \"\";\n\n for (let i = 0; i < buf.length; ++i) {\n str += percentEncode(buf[i]);\n }\n\n return str;\n}\n\nfunction isC0ControlPercentEncode(c) {\n return c <= 0x1F || c > 0x7E;\n}\n\nconst extraUserinfoPercentEncodeSet =\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\nfunction isUserinfoPercentEncode(c) {\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\n}\n\nconst extraFragmentPercentEncodeSet = new Set([32, 34, 60, 62, 96]);\nfunction isFragmentPercentEncode(c) {\n return isC0ControlPercentEncode(c) || extraFragmentPercentEncodeSet.has(c);\n}\n\nconst extraPathPercentEncodeSet = new Set([35, 63, 123, 125]);\nfunction isPathPercentEncode(c) {\n return isFragmentPercentEncode(c) || extraPathPercentEncodeSet.has(c);\n}\n\nfunction percentEncodeChar(c, encodeSetPredicate) {\n const cStr = String.fromCodePoint(c);\n\n if (encodeSetPredicate(c)) {\n return utf8PercentEncode(cStr);\n }\n\n return cStr;\n}\n\nfunction parseIPv4Number(input) {\n let R = 10;\n\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\n input = input.substring(2);\n R = 16;\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\n input = input.substring(1);\n R = 8;\n }\n\n if (input === \"\") {\n return 0;\n }\n\n let regex = /[^0-7]/;\n if (R === 10) {\n regex = /[^0-9]/;\n }\n if (R === 16) {\n regex = /[^0-9A-Fa-f]/;\n }\n\n if (regex.test(input)) {\n return failure;\n }\n\n return parseInt(input, R);\n}\n\nfunction parseIPv4(input) {\n const parts = input.split(\".\");\n if (parts[parts.length - 1] === \"\") {\n if (parts.length > 1) {\n parts.pop();\n }\n }\n\n if (parts.length > 4) {\n return input;\n }\n\n const numbers = [];\n for (const part of parts) {\n if (part === \"\") {\n return input;\n }\n const n = parseIPv4Number(part);\n if (n === failure) {\n return input;\n }\n\n numbers.push(n);\n }\n\n for (let i = 0; i < numbers.length - 1; ++i) {\n if (numbers[i] > 255) {\n return failure;\n }\n }\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\n return failure;\n }\n\n let ipv4 = numbers.pop();\n let counter = 0;\n\n for (const n of numbers) {\n ipv4 += n * Math.pow(256, 3 - counter);\n ++counter;\n }\n\n return ipv4;\n}\n\nfunction serializeIPv4(address) {\n let output = \"\";\n let n = address;\n\n for (let i = 1; i <= 4; ++i) {\n output = String(n % 256) + output;\n if (i !== 4) {\n output = \".\" + output;\n }\n n = Math.floor(n / 256);\n }\n\n return output;\n}\n\nfunction parseIPv6(input) {\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\n let pieceIndex = 0;\n let compress = null;\n let pointer = 0;\n\n input = punycode.ucs2.decode(input);\n\n if (input[pointer] === 58) {\n if (input[pointer + 1] !== 58) {\n return failure;\n }\n\n pointer += 2;\n ++pieceIndex;\n compress = pieceIndex;\n }\n\n while (pointer < input.length) {\n if (pieceIndex === 8) {\n return failure;\n }\n\n if (input[pointer] === 58) {\n if (compress !== null) {\n return failure;\n }\n ++pointer;\n ++pieceIndex;\n compress = pieceIndex;\n continue;\n }\n\n let value = 0;\n let length = 0;\n\n while (length < 4 && infra.isASCIIHex(input[pointer])) {\n value = value * 0x10 + parseInt(at(input, pointer), 16);\n ++pointer;\n ++length;\n }\n\n if (input[pointer] === 46) {\n if (length === 0) {\n return failure;\n }\n\n pointer -= length;\n\n if (pieceIndex > 6) {\n return failure;\n }\n\n let numbersSeen = 0;\n\n while (input[pointer] !== undefined) {\n let ipv4Piece = null;\n\n if (numbersSeen > 0) {\n if (input[pointer] === 46 && numbersSeen < 4) {\n ++pointer;\n } else {\n return failure;\n }\n }\n\n if (!infra.isASCIIDigit(input[pointer])) {\n return failure;\n }\n\n while (infra.isASCIIDigit(input[pointer])) {\n const number = parseInt(at(input, pointer));\n if (ipv4Piece === null) {\n ipv4Piece = number;\n } else if (ipv4Piece === 0) {\n return failure;\n } else {\n ipv4Piece = ipv4Piece * 10 + number;\n }\n if (ipv4Piece > 255) {\n return failure;\n }\n ++pointer;\n }\n\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\n\n ++numbersSeen;\n\n if (numbersSeen === 2 || numbersSeen === 4) {\n ++pieceIndex;\n }\n }\n\n if (numbersSeen !== 4) {\n return failure;\n }\n\n break;\n } else if (input[pointer] === 58) {\n ++pointer;\n if (input[pointer] === undefined) {\n return failure;\n }\n } else if (input[pointer] !== undefined) {\n return failure;\n }\n\n address[pieceIndex] = value;\n ++pieceIndex;\n }\n\n if (compress !== null) {\n let swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n const temp = address[compress + swaps - 1];\n address[compress + swaps - 1] = address[pieceIndex];\n address[pieceIndex] = temp;\n --pieceIndex;\n --swaps;\n }\n } else if (compress === null && pieceIndex !== 8) {\n return failure;\n }\n\n return address;\n}\n\nfunction serializeIPv6(address) {\n let output = \"\";\n const seqResult = findLongestZeroSequence(address);\n const compress = seqResult.idx;\n let ignore0 = false;\n\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\n if (ignore0 && address[pieceIndex] === 0) {\n continue;\n } else if (ignore0) {\n ignore0 = false;\n }\n\n if (compress === pieceIndex) {\n const separator = pieceIndex === 0 ? \"::\" : \":\";\n output += separator;\n ignore0 = true;\n continue;\n }\n\n output += address[pieceIndex].toString(16);\n\n if (pieceIndex !== 7) {\n output += \":\";\n }\n }\n\n return output;\n}\n\nfunction parseHost(input, isNotSpecialArg = false) {\n if (input[0] === \"[\") {\n if (input[input.length - 1] !== \"]\") {\n return failure;\n }\n\n return parseIPv6(input.substring(1, input.length - 1));\n }\n\n if (isNotSpecialArg) {\n return parseOpaqueHost(input);\n }\n\n const domain = percentDecode(Buffer.from(input)).toString();\n const asciiDomain = domainToASCII(domain);\n if (asciiDomain === failure) {\n return failure;\n }\n\n if (containsForbiddenHostCodePoint(asciiDomain)) {\n return failure;\n }\n\n const ipv4Host = parseIPv4(asciiDomain);\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\n return ipv4Host;\n }\n\n return asciiDomain;\n}\n\nfunction parseOpaqueHost(input) {\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\n return failure;\n }\n\n let output = \"\";\n const decoded = punycode.ucs2.decode(input);\n for (let i = 0; i < decoded.length; ++i) {\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\n }\n return output;\n}\n\nfunction findLongestZeroSequence(arr) {\n let maxIdx = null;\n let maxLen = 1; // only find elements > 1\n let currStart = null;\n let currLen = 0;\n\n for (let i = 0; i < arr.length; ++i) {\n if (arr[i] !== 0) {\n if (currLen > maxLen) {\n maxIdx = currStart;\n maxLen = currLen;\n }\n\n currStart = null;\n currLen = 0;\n } else {\n if (currStart === null) {\n currStart = i;\n }\n ++currLen;\n }\n }\n\n // if trailing zeros\n if (currLen > maxLen) {\n maxIdx = currStart;\n maxLen = currLen;\n }\n\n return {\n idx: maxIdx,\n len: maxLen\n };\n}\n\nfunction serializeHost(host) {\n if (typeof host === \"number\") {\n return serializeIPv4(host);\n }\n\n // IPv6 serializer\n if (host instanceof Array) {\n return \"[\" + serializeIPv6(host) + \"]\";\n }\n\n return host;\n}\n\nfunction domainToASCII(domain, beStrict = false) {\n const result = tr46.toASCII(domain, {\n checkBidi: true,\n checkHyphens: false,\n checkJoiners: true,\n useSTD3ASCIIRules: beStrict,\n verifyDNSLength: beStrict\n });\n if (result === null) {\n return failure;\n }\n return result;\n}\n\nfunction trimControlChars(url) {\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\n}\n\nfunction trimTabAndNewline(url) {\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\n}\n\nfunction shortenPath(url) {\n const { path } = url;\n if (path.length === 0) {\n return;\n }\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\n return;\n }\n\n path.pop();\n}\n\nfunction includesCredentials(url) {\n return url.username !== \"\" || url.password !== \"\";\n}\n\nfunction cannotHaveAUsernamePasswordPort(url) {\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\n}\n\nfunction isNormalizedWindowsDriveLetter(string) {\n return /^[A-Za-z]:$/.test(string);\n}\n\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\n this.pointer = 0;\n this.input = input;\n this.base = base || null;\n this.encodingOverride = encodingOverride || \"utf-8\";\n this.stateOverride = stateOverride;\n this.url = url;\n this.failure = false;\n this.parseError = false;\n\n if (!this.url) {\n this.url = {\n scheme: \"\",\n username: \"\",\n password: \"\",\n host: null,\n port: null,\n path: [],\n query: null,\n fragment: null,\n\n cannotBeABaseURL: false\n };\n\n const res = trimControlChars(this.input);\n if (res !== this.input) {\n this.parseError = true;\n }\n this.input = res;\n }\n\n const res = trimTabAndNewline(this.input);\n if (res !== this.input) {\n this.parseError = true;\n }\n this.input = res;\n\n this.state = stateOverride || \"scheme start\";\n\n this.buffer = \"\";\n this.atFlag = false;\n this.arrFlag = false;\n this.passwordTokenSeenFlag = false;\n\n this.input = punycode.ucs2.decode(this.input);\n\n for (; this.pointer <= this.input.length; ++this.pointer) {\n const c = this.input[this.pointer];\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\n\n // exec state machine\n const ret = this[\"parse \" + this.state](c, cStr);\n if (!ret) {\n break; // terminate algorithm\n } else if (ret === failure) {\n this.failure = true;\n break;\n }\n }\n}\n\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\n if (infra.isASCIIAlpha(c)) {\n this.buffer += cStr.toLowerCase();\n this.state = \"scheme\";\n } else if (!this.stateOverride) {\n this.state = \"no scheme\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\n if (infra.isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\n this.buffer += cStr.toLowerCase();\n } else if (c === 58) {\n if (this.stateOverride) {\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\n return false;\n }\n\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\n return false;\n }\n\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\n return false;\n }\n }\n this.url.scheme = this.buffer;\n if (this.stateOverride) {\n if (this.url.port === defaultPort(this.url.scheme)) {\n this.url.port = null;\n }\n return false;\n }\n this.buffer = \"\";\n if (this.url.scheme === \"file\") {\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\n this.parseError = true;\n }\n this.state = \"file\";\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\n this.state = \"special relative or authority\";\n } else if (isSpecial(this.url)) {\n this.state = \"special authority slashes\";\n } else if (this.input[this.pointer + 1] === 47) {\n this.state = \"path or authority\";\n ++this.pointer;\n } else {\n this.url.cannotBeABaseURL = true;\n this.url.path.push(\"\");\n this.state = \"cannot-be-a-base-URL path\";\n }\n } else if (!this.stateOverride) {\n this.buffer = \"\";\n this.state = \"no scheme\";\n this.pointer = -1;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\n return failure;\n } else if (this.base.cannotBeABaseURL && c === 35) {\n this.url.scheme = this.base.scheme;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.url.cannotBeABaseURL = true;\n this.state = \"fragment\";\n } else if (this.base.scheme === \"file\") {\n this.state = \"file\";\n --this.pointer;\n } else {\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\n if (c === 47 && this.input[this.pointer + 1] === 47) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"relative\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\n if (c === 47) {\n this.state = \"authority\";\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\n this.url.scheme = this.base.scheme;\n if (isNaN(c)) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n } else if (c === 47) {\n this.state = \"relative slash\";\n } else if (c === 63) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (isSpecial(this.url) && c === 92) {\n this.parseError = true;\n this.state = \"relative slash\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\n\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"special authority ignore slashes\";\n } else if (c === 47) {\n this.state = \"authority\";\n } else {\n this.url.username = this.base.username;\n this.url.password = this.base.password;\n this.url.host = this.base.host;\n this.url.port = this.base.port;\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\n if (c === 47 && this.input[this.pointer + 1] === 47) {\n this.state = \"special authority ignore slashes\";\n ++this.pointer;\n } else {\n this.parseError = true;\n this.state = \"special authority ignore slashes\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\n if (c !== 47 && c !== 92) {\n this.state = \"authority\";\n --this.pointer;\n } else {\n this.parseError = true;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\n if (c === 64) {\n this.parseError = true;\n if (this.atFlag) {\n this.buffer = \"%40\" + this.buffer;\n }\n this.atFlag = true;\n\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\n const len = countSymbols(this.buffer);\n for (let pointer = 0; pointer < len; ++pointer) {\n const codePoint = this.buffer.codePointAt(pointer);\n\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\n this.passwordTokenSeenFlag = true;\n continue;\n }\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\n if (this.passwordTokenSeenFlag) {\n this.url.password += encodedCodePoints;\n } else {\n this.url.username += encodedCodePoints;\n }\n }\n this.buffer = \"\";\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92)) {\n if (this.atFlag && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n this.pointer -= countSymbols(this.buffer) + 1;\n this.buffer = \"\";\n this.state = \"host\";\n } else {\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse hostname\"] =\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\n if (this.stateOverride && this.url.scheme === \"file\") {\n --this.pointer;\n this.state = \"file host\";\n } else if (c === 58 && !this.arrFlag) {\n if (this.buffer === \"\") {\n this.parseError = true;\n return failure;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"port\";\n if (this.stateOverride === \"hostname\") {\n return false;\n }\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92)) {\n --this.pointer;\n if (isSpecial(this.url) && this.buffer === \"\") {\n this.parseError = true;\n return failure;\n } else if (this.stateOverride && this.buffer === \"\" &&\n (includesCredentials(this.url) || this.url.port !== null)) {\n this.parseError = true;\n return false;\n }\n\n const host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n\n this.url.host = host;\n this.buffer = \"\";\n this.state = \"path start\";\n if (this.stateOverride) {\n return false;\n }\n } else {\n if (c === 91) {\n this.arrFlag = true;\n } else if (c === 93) {\n this.arrFlag = false;\n }\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\n if (infra.isASCIIDigit(c)) {\n this.buffer += cStr;\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\n (isSpecial(this.url) && c === 92) ||\n this.stateOverride) {\n if (this.buffer !== \"\") {\n const port = parseInt(this.buffer);\n if (port > Math.pow(2, 16) - 1) {\n this.parseError = true;\n return failure;\n }\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\n this.buffer = \"\";\n }\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n --this.pointer;\n } else {\n this.parseError = true;\n return failure;\n }\n\n return true;\n};\n\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\n\nfunction startsWithWindowsDriveLetter(input, pointer) {\n const length = input.length - pointer;\n return length >= 2 &&\n isWindowsDriveLetterCodePoints(input[pointer], input[pointer + 1]) &&\n (length === 2 || fileOtherwiseCodePoints.has(input[pointer + 2]));\n}\n\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\n this.url.scheme = \"file\";\n\n if (c === 47 || c === 92) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"file slash\";\n } else if (this.base !== null && this.base.scheme === \"file\") {\n if (isNaN(c)) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n } else if (c === 63) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n this.url.query = this.base.query;\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else {\n if (!startsWithWindowsDriveLetter(this.input, this.pointer)) {\n this.url.host = this.base.host;\n this.url.path = this.base.path.slice();\n shortenPath(this.url);\n } else {\n this.parseError = true;\n }\n\n this.state = \"path\";\n --this.pointer;\n }\n } else {\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\n if (c === 47 || c === 92) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"file host\";\n } else {\n if (this.base !== null && this.base.scheme === \"file\" &&\n !startsWithWindowsDriveLetter(this.input, this.pointer)) {\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\n this.url.path.push(this.base.path[0]);\n } else {\n this.url.host = this.base.host;\n }\n }\n this.state = \"path\";\n --this.pointer;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\n --this.pointer;\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\n this.parseError = true;\n this.state = \"path\";\n } else if (this.buffer === \"\") {\n this.url.host = \"\";\n if (this.stateOverride) {\n return false;\n }\n this.state = \"path start\";\n } else {\n let host = parseHost(this.buffer, isNotSpecial(this.url));\n if (host === failure) {\n return failure;\n }\n if (host === \"localhost\") {\n host = \"\";\n }\n this.url.host = host;\n\n if (this.stateOverride) {\n return false;\n }\n\n this.buffer = \"\";\n this.state = \"path start\";\n }\n } else {\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\n if (isSpecial(this.url)) {\n if (c === 92) {\n this.parseError = true;\n }\n this.state = \"path\";\n\n if (c !== 47 && c !== 92) {\n --this.pointer;\n }\n } else if (!this.stateOverride && c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (!this.stateOverride && c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else if (c !== undefined) {\n this.state = \"path\";\n if (c !== 47) {\n --this.pointer;\n }\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\n (!this.stateOverride && (c === 63 || c === 35))) {\n if (isSpecial(this.url) && c === 92) {\n this.parseError = true;\n }\n\n if (isDoubleDot(this.buffer)) {\n shortenPath(this.url);\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\n this.url.path.push(\"\");\n }\n } else if (isSingleDot(this.buffer) && c !== 47 &&\n !(isSpecial(this.url) && c === 92)) {\n this.url.path.push(\"\");\n } else if (!isSingleDot(this.buffer)) {\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\n if (this.url.host !== \"\" && this.url.host !== null) {\n this.parseError = true;\n this.url.host = \"\";\n }\n this.buffer = this.buffer[0] + \":\";\n }\n this.url.path.push(this.buffer);\n }\n this.buffer = \"\";\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\n this.parseError = true;\n this.url.path.shift();\n }\n }\n if (c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n }\n if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\n if (c === 63) {\n this.url.query = \"\";\n this.state = \"query\";\n } else if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n } else {\n // TODO: Add: not a URL code point\n if (!isNaN(c) && c !== 37) {\n this.parseError = true;\n }\n\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n if (!isNaN(c)) {\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\n }\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\n this.encodingOverride = \"utf-8\";\n }\n\n const buffer = Buffer.from(this.buffer); // TODO: Use encoding override instead\n for (let i = 0; i < buffer.length; ++i) {\n if (buffer[i] < 0x21 ||\n buffer[i] > 0x7E ||\n buffer[i] === 0x22 || buffer[i] === 0x23 || buffer[i] === 0x3C || buffer[i] === 0x3E ||\n (buffer[i] === 0x27 && isSpecial(this.url))) {\n this.url.query += percentEncode(buffer[i]);\n } else {\n this.url.query += String.fromCodePoint(buffer[i]);\n }\n }\n\n this.buffer = \"\";\n if (c === 35) {\n this.url.fragment = \"\";\n this.state = \"fragment\";\n }\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.buffer += cStr;\n }\n\n return true;\n};\n\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\n if (isNaN(c)) { // do nothing\n } else if (c === 0x0) {\n this.parseError = true;\n } else {\n // TODO: If c is not a URL code point and not \"%\", parse error.\n if (c === 37 &&\n (!infra.isASCIIHex(this.input[this.pointer + 1]) ||\n !infra.isASCIIHex(this.input[this.pointer + 2]))) {\n this.parseError = true;\n }\n\n this.url.fragment += percentEncodeChar(c, isFragmentPercentEncode);\n }\n\n return true;\n};\n\nfunction serializeURL(url, excludeFragment) {\n let output = url.scheme + \":\";\n if (url.host !== null) {\n output += \"//\";\n\n if (url.username !== \"\" || url.password !== \"\") {\n output += url.username;\n if (url.password !== \"\") {\n output += \":\" + url.password;\n }\n output += \"@\";\n }\n\n output += serializeHost(url.host);\n\n if (url.port !== null) {\n output += \":\" + url.port;\n }\n } else if (url.host === null && url.scheme === \"file\") {\n output += \"//\";\n }\n\n if (url.cannotBeABaseURL) {\n output += url.path[0];\n } else {\n for (const string of url.path) {\n output += \"/\" + string;\n }\n }\n\n if (url.query !== null) {\n output += \"?\" + url.query;\n }\n\n if (!excludeFragment && url.fragment !== null) {\n output += \"#\" + url.fragment;\n }\n\n return output;\n}\n\nfunction serializeOrigin(tuple) {\n let result = tuple.scheme + \"://\";\n result += serializeHost(tuple.host);\n\n if (tuple.port !== null) {\n result += \":\" + tuple.port;\n }\n\n return result;\n}\n\nmodule.exports.serializeURL = serializeURL;\n\nmodule.exports.serializeURLOrigin = function (url) {\n // https://url.spec.whatwg.org/#concept-url-origin\n switch (url.scheme) {\n case \"blob\":\n try {\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\n } catch (e) {\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n case \"ftp\":\n case \"gopher\":\n case \"http\":\n case \"https\":\n case \"ws\":\n case \"wss\":\n return serializeOrigin({\n scheme: url.scheme,\n host: url.host,\n port: url.port\n });\n case \"file\":\n // spec says \"exercise to the reader\", chrome says \"file://\"\n return \"file://\";\n default:\n // serializing an opaque origin returns \"null\"\n return \"null\";\n }\n};\n\nmodule.exports.basicURLParse = function (input, options) {\n if (options === undefined) {\n options = {};\n }\n\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\n if (usm.failure) {\n return null;\n }\n\n return usm.url;\n};\n\nmodule.exports.setTheUsername = function (url, username) {\n url.username = \"\";\n const decoded = punycode.ucs2.decode(username);\n for (let i = 0; i < decoded.length; ++i) {\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\n }\n};\n\nmodule.exports.setThePassword = function (url, password) {\n url.password = \"\";\n const decoded = punycode.ucs2.decode(password);\n for (let i = 0; i < decoded.length; ++i) {\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\n }\n};\n\nmodule.exports.serializeHost = serializeHost;\n\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\n\nmodule.exports.serializeInteger = function (integer) {\n return String(integer);\n};\n\nmodule.exports.parseURL = function (input, options) {\n if (options === undefined) {\n options = {};\n }\n\n // We don't handle blobs, so this just delegates:\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CircularList_1 = require(\"./common/CircularList\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nexports.DEFAULT_ATTR = (0 << 18) | (257 << 9) | (256 << 0);\nexports.CHAR_DATA_ATTR_INDEX = 0;\nexports.CHAR_DATA_CHAR_INDEX = 1;\nexports.CHAR_DATA_WIDTH_INDEX = 2;\nexports.CHAR_DATA_CODE_INDEX = 3;\nexports.MAX_BUFFER_SIZE = 4294967295;\nexports.NULL_CELL_CHAR = ' ';\nexports.NULL_CELL_WIDTH = 1;\nexports.NULL_CELL_CODE = 32;\nvar Buffer = (function () {\n function Buffer(_terminal, _hasScrollback) {\n this._terminal = _terminal;\n this._hasScrollback = _hasScrollback;\n this.markers = [];\n this.clear();\n }\n Object.defineProperty(Buffer.prototype, \"hasScrollback\", {\n get: function () {\n return this._hasScrollback && this.lines.maxLength > this._terminal.rows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Buffer.prototype, \"isCursorInViewport\", {\n get: function () {\n var absoluteY = this.ybase + this.y;\n var relativeY = absoluteY - this.ydisp;\n return (relativeY >= 0 && relativeY < this._terminal.rows);\n },\n enumerable: true,\n configurable: true\n });\n Buffer.prototype._getCorrectBufferLength = function (rows) {\n if (!this._hasScrollback) {\n return rows;\n }\n var correctBufferLength = rows + this._terminal.options.scrollback;\n return correctBufferLength > exports.MAX_BUFFER_SIZE ? exports.MAX_BUFFER_SIZE : correctBufferLength;\n };\n Buffer.prototype.fillViewportRows = function () {\n if (this.lines.length === 0) {\n var i = this._terminal.rows;\n while (i--) {\n this.lines.push(this._terminal.blankLine());\n }\n }\n };\n Buffer.prototype.clear = function () {\n this.ydisp = 0;\n this.ybase = 0;\n this.y = 0;\n this.x = 0;\n this.lines = new CircularList_1.CircularList(this._getCorrectBufferLength(this._terminal.rows));\n this.scrollTop = 0;\n this.scrollBottom = this._terminal.rows - 1;\n this.setupTabStops();\n };\n Buffer.prototype.resize = function (newCols, newRows) {\n var newMaxLength = this._getCorrectBufferLength(newRows);\n if (newMaxLength > this.lines.maxLength) {\n this.lines.maxLength = newMaxLength;\n }\n if (this.lines.length > 0) {\n if (this._terminal.cols < newCols) {\n var ch = [exports.DEFAULT_ATTR, exports.NULL_CELL_CHAR, exports.NULL_CELL_WIDTH, exports.NULL_CELL_CODE];\n for (var i = 0; i < this.lines.length; i++) {\n while (this.lines.get(i).length < newCols) {\n this.lines.get(i).push(ch);\n }\n }\n }\n var addToY = 0;\n if (this._terminal.rows < newRows) {\n for (var y = this._terminal.rows; y < newRows; y++) {\n if (this.lines.length < newRows + this.ybase) {\n if (this.ybase > 0 && this.lines.length <= this.ybase + this.y + addToY + 1) {\n this.ybase--;\n addToY++;\n if (this.ydisp > 0) {\n this.ydisp--;\n }\n }\n else {\n this.lines.push(this._terminal.blankLine(undefined, undefined, newCols));\n }\n }\n }\n }\n else {\n for (var y = this._terminal.rows; y > newRows; y--) {\n if (this.lines.length > newRows + this.ybase) {\n if (this.lines.length > this.ybase + this.y + 1) {\n this.lines.pop();\n }\n else {\n this.ybase++;\n this.ydisp++;\n }\n }\n }\n }\n if (newMaxLength < this.lines.maxLength) {\n var amountToTrim = this.lines.length - newMaxLength;\n if (amountToTrim > 0) {\n this.lines.trimStart(amountToTrim);\n this.ybase = Math.max(this.ybase - amountToTrim, 0);\n this.ydisp = Math.max(this.ydisp - amountToTrim, 0);\n }\n this.lines.maxLength = newMaxLength;\n }\n this.x = Math.min(this.x, newCols - 1);\n this.y = Math.min(this.y, newRows - 1);\n if (addToY) {\n this.y += addToY;\n }\n this.savedY = Math.min(this.savedY, newRows - 1);\n this.savedX = Math.min(this.savedX, newCols - 1);\n this.scrollTop = 0;\n }\n this.scrollBottom = newRows - 1;\n };\n Buffer.prototype.translateBufferLineToString = function (lineIndex, trimRight, startCol, endCol) {\n if (startCol === void 0) { startCol = 0; }\n if (endCol === void 0) { endCol = null; }\n var lineString = '';\n var line = this.lines.get(lineIndex);\n if (!line) {\n return '';\n }\n var startIndex = startCol;\n if (endCol === null) {\n endCol = line.length;\n }\n var endIndex = endCol;\n for (var i = 0; i < line.length; i++) {\n var char = line[i];\n lineString += char[exports.CHAR_DATA_CHAR_INDEX];\n if (char[exports.CHAR_DATA_WIDTH_INDEX] === 0) {\n if (startCol >= i) {\n startIndex--;\n }\n if (endCol > i) {\n endIndex--;\n }\n }\n else {\n if (char[exports.CHAR_DATA_CHAR_INDEX].length > 1) {\n if (startCol > i) {\n startIndex += char[exports.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n if (endCol > i) {\n endIndex += char[exports.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n }\n }\n }\n if (trimRight) {\n var rightWhitespaceIndex = lineString.search(/\\s+$/);\n if (rightWhitespaceIndex !== -1) {\n endIndex = Math.min(endIndex, rightWhitespaceIndex);\n }\n if (endIndex <= startIndex) {\n return '';\n }\n }\n return lineString.substring(startIndex, endIndex);\n };\n Buffer.prototype.getWrappedRangeForLine = function (y) {\n var first = y;\n var last = y;\n while (first > 0 && this.lines.get(first).isWrapped) {\n first--;\n }\n while (last + 1 < this.lines.length && this.lines.get(last + 1).isWrapped) {\n last++;\n }\n return { first: first, last: last };\n };\n Buffer.prototype.setupTabStops = function (i) {\n if (i != null) {\n if (!this.tabs[i]) {\n i = this.prevStop(i);\n }\n }\n else {\n this.tabs = {};\n i = 0;\n }\n for (; i < this._terminal.cols; i += this._terminal.options.tabStopWidth) {\n this.tabs[i] = true;\n }\n };\n Buffer.prototype.prevStop = function (x) {\n if (x == null) {\n x = this.x;\n }\n while (!this.tabs[--x] && x > 0)\n ;\n return x >= this._terminal.cols ? this._terminal.cols - 1 : x < 0 ? 0 : x;\n };\n Buffer.prototype.nextStop = function (x) {\n if (x == null) {\n x = this.x;\n }\n while (!this.tabs[++x] && x < this._terminal.cols)\n ;\n return x >= this._terminal.cols ? this._terminal.cols - 1 : x < 0 ? 0 : x;\n };\n Buffer.prototype.addMarker = function (y) {\n var _this = this;\n var marker = new Marker(y);\n this.markers.push(marker);\n marker.register(this.lines.addDisposableListener('trim', function (amount) {\n marker.line -= amount;\n if (marker.line < 0) {\n marker.dispose();\n }\n }));\n marker.register(marker.addDisposableListener('dispose', function () { return _this._removeMarker(marker); }));\n return marker;\n };\n Buffer.prototype._removeMarker = function (marker) {\n this.markers.splice(this.markers.indexOf(marker), 1);\n };\n return Buffer;\n}());\nexports.Buffer = Buffer;\nvar Marker = (function (_super) {\n __extends(Marker, _super);\n function Marker(line) {\n var _this = _super.call(this) || this;\n _this.line = line;\n _this._id = Marker._nextId++;\n _this.isDisposed = false;\n return _this;\n }\n Object.defineProperty(Marker.prototype, \"id\", {\n get: function () { return this._id; },\n enumerable: true,\n configurable: true\n });\n Marker.prototype.dispose = function () {\n if (this.isDisposed) {\n return;\n }\n this.isDisposed = true;\n this.emit('dispose');\n _super.prototype.dispose.call(this);\n };\n Marker._nextId = 1;\n return Marker;\n}(EventEmitter_1.EventEmitter));\nexports.Marker = Marker;\n//# sourceMappingURL=Buffer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar EventEmitter = (function (_super) {\n __extends(EventEmitter, _super);\n function EventEmitter() {\n var _this = _super.call(this) || this;\n _this._events = _this._events || {};\n return _this;\n }\n EventEmitter.prototype.on = function (type, listener) {\n this._events[type] = this._events[type] || [];\n this._events[type].push(listener);\n };\n EventEmitter.prototype.addDisposableListener = function (type, handler) {\n var _this = this;\n this.on(type, handler);\n return {\n dispose: function () {\n if (!handler) {\n return;\n }\n _this.off(type, handler);\n handler = null;\n }\n };\n };\n EventEmitter.prototype.off = function (type, listener) {\n if (!this._events[type]) {\n return;\n }\n var obj = this._events[type];\n var i = obj.length;\n while (i--) {\n if (obj[i] === listener) {\n obj.splice(i, 1);\n return;\n }\n }\n };\n EventEmitter.prototype.removeAllListeners = function (type) {\n if (this._events[type]) {\n delete this._events[type];\n }\n };\n EventEmitter.prototype.emit = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!this._events[type]) {\n return;\n }\n var obj = this._events[type];\n for (var i = 0; i < obj.length; i++) {\n obj[i].apply(this, args);\n }\n };\n EventEmitter.prototype.listeners = function (type) {\n return this._events[type] || [];\n };\n EventEmitter.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._events = {};\n };\n return EventEmitter;\n}(Lifecycle_1.Disposable));\nexports.EventEmitter = EventEmitter;\n//# sourceMappingURL=EventEmitter.js.map","'use strict'\nconst u = require('universalify').fromPromise\nconst fs = require('../fs')\n\nfunction pathExists (path) {\n return fs.access(path).then(() => true).catch(() => false)\n}\n\nmodule.exports = {\n pathExists: u(pathExists),\n pathExistsSync: fs.existsSync\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Disposable = (function () {\n function Disposable() {\n this._disposables = [];\n this._isDisposed = false;\n }\n Disposable.prototype.dispose = function () {\n this._isDisposed = true;\n this._disposables.forEach(function (d) { return d.dispose(); });\n this._disposables.length = 0;\n };\n Disposable.prototype.register = function (d) {\n this._disposables.push(d);\n };\n Disposable.prototype.unregister = function (d) {\n var index = this._disposables.indexOf(d);\n if (index !== -1) {\n this._disposables.splice(index, 1);\n }\n };\n return Disposable;\n}());\nexports.Disposable = Disposable;\n//# sourceMappingURL=Lifecycle.js.map","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { Emitter } from 'atom'\r\n\r\nimport atomXtermConfig from './atom-xterm-config'\r\n\r\nimport fs from 'fs-extra'\r\nimport path from 'path'\r\n\r\nimport uuidv4 from 'uuid/v4'\r\nimport { URL } from 'whatwg-url'\r\nimport { detailedDiff } from 'deep-object-diff'\r\n\r\nconst ATOM_XTERM_BASE_URI = 'atom-xterm://'\r\n\r\nconst CONFIG_KEY_TO_PROFILE_KEY_MAPPING = {\r\n 'atom-xterm.spawnPtySettings.command': 'command',\r\n 'atom-xterm.spawnPtySettings.args': 'args',\r\n 'atom-xterm.spawnPtySettings.name': 'name',\r\n 'atom-xterm.spawnPtySettings.cwd': 'cwd',\r\n 'atom-xterm.spawnPtySettings.env': 'env',\r\n 'atom-xterm.spawnPtySettings.setEnv': 'setEnv',\r\n 'atom-xterm.spawnPtySettings.deleteEnv': 'deleteEnv',\r\n 'atom-xterm.spawnPtySettings.encoding': 'encoding',\r\n 'atom-xterm.terminalSettings.fontSize': 'fontSize',\r\n 'atom-xterm.terminalSettings.leaveOpenAfterExit': 'leaveOpenAfterExit',\r\n 'atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup': 'allowRelaunchingTerminalsOnStartup',\r\n 'atom-xterm.terminalSettings.relaunchTerminalOnStartup': 'relaunchTerminalOnStartup',\r\n 'atom-xterm.terminalSettings.title': 'title',\r\n 'atom-xterm.terminalSettings.xtermOptions': 'xtermOptions',\r\n 'atom-xterm.terminalSettings.promptToStartup': 'promptToStartup'\r\n}\r\n\r\nconst AtomXtermProfilesSingletonSymbol = Symbol('AtomXtermProfilesSingleton sentinel')\r\n\r\nclass AtomXtermProfilesSingleton {\r\n constructor (symbolCheck) {\r\n if (AtomXtermProfilesSingletonSymbol !== symbolCheck) {\r\n throw new Error('AtomXtermProfilesSingleton cannot be instantiated directly.')\r\n }\r\n this.emitter = new Emitter()\r\n this.profilesConfigPath = path.join(atomXtermConfig.getUserDataPath(), 'profiles.json')\r\n this.profiles = {}\r\n this.previousBaseProfile = null\r\n this.baseProfile = this.getDefaultProfile()\r\n this.resetBaseProfile()\r\n this.profilesLoadPromise = null\r\n this.reloadProfiles()\r\n }\r\n\r\n static get instance () {\r\n if (!this[AtomXtermProfilesSingletonSymbol]) {\r\n this[AtomXtermProfilesSingletonSymbol] = new AtomXtermProfilesSingleton(AtomXtermProfilesSingletonSymbol)\r\n }\r\n return this[AtomXtermProfilesSingletonSymbol]\r\n }\r\n\r\n sortProfiles (profiles) {\r\n let orderedProfiles = {}\r\n Object.keys(profiles).sort().forEach((key) => {\r\n orderedProfiles[key] = profiles[key]\r\n })\r\n return orderedProfiles\r\n }\r\n\r\n reloadProfiles () {\r\n this.profilesLoadPromise = new Promise((resolve, reject) => {\r\n fs.readJson(this.profilesConfigPath, (err, data) => {\r\n if (err) {\r\n // Create the profiles file.\r\n this.updateProfiles({}).then(() => {\r\n this.emitter.emit('did-reload-profiles', this.getSanitizedProfilesData())\r\n resolve()\r\n })\r\n } else {\r\n this.profiles = this.sortProfiles(data)\r\n this.emitter.emit('did-reload-profiles', this.getSanitizedProfilesData())\r\n resolve()\r\n }\r\n })\r\n })\r\n }\r\n\r\n onDidReloadProfiles (callback) {\r\n return this.emitter.on('did-reload-profiles', callback)\r\n }\r\n\r\n onDidResetBaseProfile (callback) {\r\n return this.emitter.on('did-reset-base-profile', callback)\r\n }\r\n\r\n updateProfiles (newProfilesConfigData) {\r\n return new Promise((resolve, reject) => {\r\n fs.ensureDir(path.dirname(this.profilesConfigPath), (err) => {\r\n if (err) reject(err)\r\n newProfilesConfigData = this.sortProfiles(newProfilesConfigData)\r\n fs.writeJson(this.profilesConfigPath, newProfilesConfigData, (err) => {\r\n if (err) reject(err)\r\n this.profiles = newProfilesConfigData\r\n resolve()\r\n })\r\n })\r\n })\r\n }\r\n\r\n deepClone (data) {\r\n return JSON.parse(JSON.stringify(data))\r\n }\r\n\r\n diffProfiles (oldProfile, newProfile) {\r\n // This method will return added or modified entries.\r\n let diff = detailedDiff(oldProfile, newProfile)\r\n return Object.assign(diff.added, diff.updated)\r\n }\r\n\r\n getDefaultProfile () {\r\n return {\r\n command: atomXtermConfig.getDefaultShellCommand(),\r\n args: JSON.parse(atomXtermConfig.getDefaultArgs()),\r\n name: atomXtermConfig.getDefaultTermType(),\r\n cwd: atomXtermConfig.getDefaultCwd(),\r\n env: null,\r\n setEnv: JSON.parse(atomXtermConfig.getDefaultSetEnv()),\r\n deleteEnv: JSON.parse(atomXtermConfig.getDefaultDeleteEnv()),\r\n encoding: null,\r\n fontSize: atomXtermConfig.getDefaultFontSize(),\r\n leaveOpenAfterExit: atomXtermConfig.getDefaultLeaveOpenAfterExit(),\r\n relaunchTerminalOnStartup: atomXtermConfig.getDefaultRelaunchTerminalOnStartup(),\r\n title: null,\r\n xtermOptions: JSON.parse(atomXtermConfig.getDefaultXtermOptions()),\r\n promptToStartup: atomXtermConfig.getDefaultPromptToStartup()\r\n }\r\n }\r\n\r\n getBaseProfile () {\r\n return this.deepClone(this.baseProfile)\r\n }\r\n\r\n validateJsonConfigSetting (name, defaultJsonValue) {\r\n let profileKey = CONFIG_KEY_TO_PROFILE_KEY_MAPPING[name]\r\n let previousValue = this.previousBaseProfile[profileKey]\r\n let value = atom.config.get(name)\r\n try {\r\n value = JSON.parse(value || defaultJsonValue) || previousValue\r\n } catch (e) {\r\n // This normally happens when the user is in the middle of updating some\r\n // setting that is a JSON string. Ignore syntax errors and use the last\r\n // known good config setting.\r\n if (!(e instanceof SyntaxError)) {\r\n throw e\r\n }\r\n value = previousValue\r\n }\r\n return value\r\n }\r\n\r\n resetBaseProfile () {\r\n this.previousBaseProfile = this.deepClone(this.baseProfile)\r\n let env = this.validateJsonConfigSetting('atom-xterm.spawnPtySettings.env', 'null')\r\n if (!env || env.constructor !== Object) {\r\n env = null\r\n }\r\n let encoding = atom.config.get('atom-xterm.spawnPtySettings.encoding') || null\r\n let leaveOpenAfterExit = atom.config.get('atom-xterm.terminalSettings.leaveOpenAfterExit')\r\n if (leaveOpenAfterExit !== true && leaveOpenAfterExit !== false) leaveOpenAfterExit = atomXtermConfig.getDefaultLeaveOpenAfterExit()\r\n let relaunchTerminalOnStartup = atom.config.get('atom-xterm.terminalSettings.relaunchTerminalOnStartup')\r\n if (relaunchTerminalOnStartup !== true && relaunchTerminalOnStartup !== false) relaunchTerminalOnStartup = atomXtermConfig.getDefaultRelaunchTerminalOnStartup()\r\n let title = atom.config.get('atom-xterm.terminalSettings.title') || atomXtermConfig.getDefaultTitle()\r\n let promptToStartup = atom.config.get('atom-xterm.terminalSettings.promptToStartup')\r\n if (promptToStartup !== true && promptToStartup !== false) promptToStartup = atomXtermConfig.getDefaultPromptToStartup()\r\n this.baseProfile = {\r\n command: atom.config.get('atom-xterm.spawnPtySettings.command') || atomXtermConfig.getDefaultShellCommand(),\r\n args: this.validateJsonConfigSetting('atom-xterm.spawnPtySettings.args', atomXtermConfig.getDefaultArgs()),\r\n name: atom.config.get('atom-xterm.spawnPtySettings.name') || atomXtermConfig.getDefaultTermType(),\r\n cwd: atom.config.get('atom-xterm.spawnPtySettings.cwd') || atomXtermConfig.getDefaultCwd(),\r\n env: env,\r\n setEnv: this.validateJsonConfigSetting('atom-xterm.spawnPtySettings.setEnv', atomXtermConfig.getDefaultSetEnv()),\r\n deleteEnv: this.validateJsonConfigSetting('atom-xterm.spawnPtySettings.deleteEnv', atomXtermConfig.getDefaultDeleteEnv()),\r\n encoding: encoding,\r\n fontSize: atom.config.get('atom-xterm.terminalSettings.fontSize') || atomXtermConfig.getDefaultFontSize(),\r\n leaveOpenAfterExit: leaveOpenAfterExit,\r\n relaunchTerminalOnStartup: relaunchTerminalOnStartup,\r\n title: title || null,\r\n xtermOptions: this.validateJsonConfigSetting('atom-xterm.terminalSettings.xtermOptions', atomXtermConfig.getDefaultXtermOptions()),\r\n promptToStartup: promptToStartup\r\n }\r\n this.emitter.emit('did-reset-base-profile', this.getBaseProfile())\r\n }\r\n\r\n sanitizeData (data) {\r\n let sanitizedData = {}\r\n if ('command' in data) sanitizedData.command = data.command\r\n if ('args' in data) sanitizedData.args = data.args\r\n if ('name' in data) sanitizedData.name = data.name\r\n if ('cwd' in data) sanitizedData.cwd = data.cwd\r\n if ('env' in data) sanitizedData.env = data.env\r\n if ('setEnv' in data) sanitizedData.setEnv = data.setEnv\r\n if ('deleteEnv' in data) sanitizedData.deleteEnv = data.deleteEnv\r\n if ('encoding' in data) sanitizedData.encoding = data.encoding\r\n if ('fontSize' in data) sanitizedData.fontSize = data.fontSize\r\n if ('leaveOpenAfterExit' in data) sanitizedData.leaveOpenAfterExit = data.leaveOpenAfterExit\r\n if ('relaunchTerminalOnStartup' in data) sanitizedData.relaunchTerminalOnStartup = data.relaunchTerminalOnStartup\r\n if ('title' in data) sanitizedData.title = data.title\r\n if ('xtermOptions' in data) sanitizedData.xtermOptions = data.xtermOptions\r\n if ('promptToStartup' in data) sanitizedData.promptToStartup = data.promptToStartup\r\n return this.deepClone(sanitizedData)\r\n }\r\n\r\n getSanitizedProfilesData () {\r\n let retval = {}\r\n for (let key in this.profiles) {\r\n retval[key] = this.sanitizeData(this.profiles[key])\r\n }\r\n return retval\r\n }\r\n\r\n getProfiles () {\r\n return new Promise((resolve, reject) => {\r\n this.profilesLoadPromise.then(() => {\r\n resolve(this.getSanitizedProfilesData())\r\n })\r\n })\r\n }\r\n\r\n getProfile (profileName) {\r\n return new Promise((resolve, reject) => {\r\n this.profilesLoadPromise.then(() => {\r\n resolve(Object.assign(\r\n {},\r\n this.deepClone(this.baseProfile),\r\n this.sanitizeData(this.profiles[profileName] || {})\r\n ))\r\n })\r\n })\r\n }\r\n\r\n isProfileExists (profileName) {\r\n return new Promise((resolve, reject) => {\r\n this.profilesLoadPromise.then(() => {\r\n resolve(profileName in this.profiles)\r\n })\r\n })\r\n }\r\n\r\n setProfile (profileName, data) {\r\n return new Promise((resolve, reject) => {\r\n this.profilesLoadPromise.then(() => {\r\n let profileData = Object.assign(\r\n {},\r\n this.deepClone(this.baseProfile),\r\n this.sanitizeData(data)\r\n )\r\n let newProfilesConfigData = Object.assign(\r\n {},\r\n this.deepClone(this.profiles)\r\n )\r\n newProfilesConfigData[profileName] = profileData\r\n this.updateProfiles(newProfilesConfigData).then(() => {\r\n resolve()\r\n })\r\n })\r\n })\r\n }\r\n\r\n deleteProfile (profileName) {\r\n return new Promise((resolve, reject) => {\r\n this.profilesLoadPromise.then(() => {\r\n let newProfilesConfigData = Object.assign(\r\n {},\r\n this.deepClone(this.profiles)\r\n )\r\n delete newProfilesConfigData[profileName]\r\n this.updateProfiles(newProfilesConfigData).then(() => {\r\n resolve()\r\n })\r\n })\r\n })\r\n }\r\n\r\n generateNewUri () {\r\n return ATOM_XTERM_BASE_URI + uuidv4() + '/'\r\n }\r\n\r\n generateNewUrlFromProfileData (data) {\r\n data = this.sanitizeData(data)\r\n let url = new URL(this.generateNewUri())\r\n // Command to run, can be basename of command or full path to command.\r\n if ('command' in data) url.searchParams.set('command', data.command)\r\n // Arguments to pass to command. This should be in a JSON array.\r\n if ('args' in data) url.searchParams.set('args', JSON.stringify(data.args))\r\n // This defines the term type to use ('xterm', 'xterm-color', etc.). This\r\n // option does nothing on Windows.\r\n if ('name' in data) url.searchParams.set('name', data.name)\r\n // Current working directory to start command in.\r\n if ('cwd' in data) url.searchParams.set('cwd', data.cwd)\r\n // Environment to use for command. This can be null or left out in which\r\n // case the current environment is used.\r\n if ('env' in data) url.searchParams.set('env', JSON.stringify(data.env))\r\n // Environment variables to set or override from the defined environment\r\n // above or the current environment when starting command.\r\n if ('setEnv' in data) url.searchParams.set('setEnv', JSON.stringify(data.setEnv))\r\n // Environment variables to delete when starting command.\r\n if ('deleteEnv' in data) url.searchParams.set('deleteEnv', JSON.stringify(data.deleteEnv))\r\n // Encoding to use when running command.\r\n if ('encoding' in data) url.searchParams.set('encoding', data.encoding)\r\n // Font size to use.\r\n if ('fontSize' in data) url.searchParams.set('fontSize', JSON.stringify(data.fontSize))\r\n // This determines whether to leave the terminal tab open when the command\r\n // has finished running.\r\n if ('leaveOpenAfterExit' in data) url.searchParams.set('leaveOpenAfterExit', JSON.stringify(data.leaveOpenAfterExit))\r\n // This determines whether the terminal tab should be restarted when Atom\r\n // is restarted.\r\n if ('relaunchTerminalOnStartup' in data) url.searchParams.set('relaunchTerminalOnStartup', JSON.stringify(data.relaunchTerminalOnStartup))\r\n // This is used to set a custom title for the new terminal tab.\r\n if ('title' in data) url.searchParams.set('title', data.title)\r\n // The options supported by the Terminal object in xterm.js. See also\r\n // https://github.com/xtermjs/xterm.js/blob/3.0.2/typings/xterm.d.ts#L14 .\r\n // NOTE: The 'fontSize' setting defined in the options here is ignored.\r\n if ('xtermOptions' in data) url.searchParams.set('xtermOptions', JSON.stringify(data.xtermOptions))\r\n // This determines whether to prompt the user to startup the terminal\r\n // process.\r\n if ('promptToStartup' in data) url.searchParams.set('promptToStartup', JSON.stringify(data.promptToStartup))\r\n return url\r\n }\r\n\r\n createProfileDataFromUri (uri) {\r\n let param\r\n let url = new URL(uri)\r\n let baseProfile = this.getBaseProfile()\r\n let newProfile = {}\r\n param = url.searchParams.get('command')\r\n if (param) newProfile.command = param\r\n if (!('command' in newProfile)) newProfile.command = baseProfile.command\r\n param = url.searchParams.get('args')\r\n if (param) newProfile.args = JSON.parse(param)\r\n if (!('args' in newProfile && newProfile.args)) newProfile.args = baseProfile.args\r\n param = url.searchParams.get('name')\r\n if (param) newProfile.name = param\r\n if (!('name' in newProfile)) newProfile.name = baseProfile.name\r\n param = url.searchParams.get('cwd')\r\n if (param) newProfile.cwd = param\r\n if (!('cwd' in newProfile)) newProfile.cwd = baseProfile.cwd\r\n param = url.searchParams.get('env')\r\n if (param) newProfile.env = JSON.parse(param)\r\n if (!('env' in newProfile && newProfile.env)) newProfile.env = baseProfile.env\r\n param = url.searchParams.get('setEnv')\r\n if (param) newProfile.setEnv = JSON.parse(param)\r\n if (!('setEnv' in newProfile && newProfile.setEnv)) newProfile.setEnv = baseProfile.setEnv\r\n param = url.searchParams.get('deleteEnv')\r\n if (param) newProfile.deleteEnv = JSON.parse(param)\r\n if (!('deleteEnv' in newProfile && newProfile.deleteEnv)) newProfile.deleteEnv = baseProfile.deleteEnv\r\n param = url.searchParams.get('encoding')\r\n if (param && param !== 'null') newProfile.encoding = param\r\n if (!('encoding' in newProfile)) newProfile.encoding = baseProfile.encoding\r\n param = url.searchParams.get('fontSize')\r\n if (param) newProfile.fontSize = JSON.parse(param)\r\n if (!('fontSize' in newProfile && newProfile.fontSize)) newProfile.fontSize = baseProfile.fontSize\r\n param = url.searchParams.get('leaveOpenAfterExit')\r\n if (param) newProfile.leaveOpenAfterExit = JSON.parse(param)\r\n if (!('leaveOpenAfterExit' in newProfile && newProfile.leaveOpenAfterExit !== null && newProfile.leaveOpenAfterExit !== '')) newProfile.leaveOpenAfterExit = baseProfile.leaveOpenAfterExit\r\n param = url.searchParams.get('relaunchTerminalOnStartup')\r\n if (param) newProfile.relaunchTerminalOnStartup = JSON.parse(param)\r\n if (!('relaunchTerminalOnStartup' in newProfile && newProfile.relaunchTerminalOnStartup !== null && newProfile.relaunchTerminalOnStartup !== '')) newProfile.relaunchTerminalOnStartup = baseProfile.relaunchTerminalOnStartup\r\n param = url.searchParams.get('title')\r\n if (param && param !== 'null') newProfile.title = param\r\n if (!('title' in newProfile)) newProfile.title = baseProfile.title\r\n param = url.searchParams.get('xtermOptions')\r\n if (param) newProfile.xtermOptions = JSON.parse(param)\r\n if (!('xtermOptions' in newProfile && newProfile.xtermOptions)) newProfile.xtermOptions = baseProfile.xtermOptions\r\n param = url.searchParams.get('promptToStartup')\r\n if (param) newProfile.promptToStartup = JSON.parse(param)\r\n if (!('promptToStartup' in newProfile && newProfile.promptToStartup !== null && newProfile.promptToStartup !== '')) newProfile.promptToStartup = baseProfile.promptToStartup\r\n return newProfile\r\n }\r\n}\r\n\r\nexport {\r\n ATOM_XTERM_BASE_URI,\r\n AtomXtermProfilesSingleton\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__13__;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null) return null;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","module.exports = require(\"fs\");","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction addDisposableDomListener(node, type, handler, useCapture) {\n node.addEventListener(type, handler, useCapture);\n return {\n dispose: function () {\n if (!handler) {\n return;\n }\n node.removeEventListener(type, handler, useCapture);\n node = null;\n handler = null;\n }\n };\n}\nexports.addDisposableDomListener = addDisposableDomListener;\n//# sourceMappingURL=Lifecycle.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar C0;\n(function (C0) {\n C0.NUL = '\\x00';\n C0.SOH = '\\x01';\n C0.STX = '\\x02';\n C0.ETX = '\\x03';\n C0.EOT = '\\x04';\n C0.ENQ = '\\x05';\n C0.ACK = '\\x06';\n C0.BEL = '\\x07';\n C0.BS = '\\x08';\n C0.HT = '\\x09';\n C0.LF = '\\x0a';\n C0.VT = '\\x0b';\n C0.FF = '\\x0c';\n C0.CR = '\\x0d';\n C0.SO = '\\x0e';\n C0.SI = '\\x0f';\n C0.DLE = '\\x10';\n C0.DC1 = '\\x11';\n C0.DC2 = '\\x12';\n C0.DC3 = '\\x13';\n C0.DC4 = '\\x14';\n C0.NAK = '\\x15';\n C0.SYN = '\\x16';\n C0.ETB = '\\x17';\n C0.CAN = '\\x18';\n C0.EM = '\\x19';\n C0.SUB = '\\x1a';\n C0.ESC = '\\x1b';\n C0.FS = '\\x1c';\n C0.GS = '\\x1d';\n C0.RS = '\\x1e';\n C0.US = '\\x1f';\n C0.SP = '\\x20';\n C0.DEL = '\\x7f';\n})(C0 = exports.C0 || (exports.C0 = {}));\nvar C1;\n(function (C1) {\n C1.PAD = '\\x80';\n C1.HOP = '\\x81';\n C1.BPH = '\\x82';\n C1.NBH = '\\x83';\n C1.IND = '\\x84';\n C1.NEL = '\\x85';\n C1.SSA = '\\x86';\n C1.ESA = '\\x87';\n C1.HTS = '\\x88';\n C1.HTJ = '\\x89';\n C1.VTS = '\\x8a';\n C1.PLD = '\\x8b';\n C1.PLU = '\\x8c';\n C1.RI = '\\x8d';\n C1.SS2 = '\\x8e';\n C1.SS3 = '\\x8f';\n C1.DCS = '\\x90';\n C1.PU1 = '\\x91';\n C1.PU2 = '\\x92';\n C1.STS = '\\x93';\n C1.CCH = '\\x94';\n C1.MW = '\\x95';\n C1.SPA = '\\x96';\n C1.EPA = '\\x97';\n C1.SOS = '\\x98';\n C1.SGCI = '\\x99';\n C1.SCI = '\\x9a';\n C1.CSI = '\\x9b';\n C1.ST = '\\x9c';\n C1.OSC = '\\x9d';\n C1.PM = '\\x9e';\n C1.APC = '\\x9f';\n})(C1 = exports.C1 || (exports.C1 = {}));\n//# sourceMappingURL=EscapeSequences.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.INVERTED_DEFAULT_COLOR = -1;\nexports.DIM_OPACITY = 0.5;\n//# sourceMappingURL=Types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./atlas/Types\");\nvar CharAtlasCache_1 = require(\"./atlas/CharAtlasCache\");\nvar Buffer_1 = require(\"../Buffer\");\nvar BaseRenderLayer = (function () {\n function BaseRenderLayer(_container, id, zIndex, _alpha, _colors) {\n this._container = _container;\n this._alpha = _alpha;\n this._colors = _colors;\n this._scaledCharWidth = 0;\n this._scaledCharHeight = 0;\n this._scaledCellWidth = 0;\n this._scaledCellHeight = 0;\n this._scaledCharLeft = 0;\n this._scaledCharTop = 0;\n this._canvas = document.createElement('canvas');\n this._canvas.classList.add(\"xterm-\" + id + \"-layer\");\n this._canvas.style.zIndex = zIndex.toString();\n this._initCanvas();\n this._container.appendChild(this._canvas);\n }\n BaseRenderLayer.prototype.dispose = function () {\n this._container.removeChild(this._canvas);\n };\n BaseRenderLayer.prototype._initCanvas = function () {\n this._ctx = this._canvas.getContext('2d', { alpha: this._alpha });\n if (!this._alpha) {\n this.clearAll();\n }\n };\n BaseRenderLayer.prototype.onOptionsChanged = function (terminal) { };\n BaseRenderLayer.prototype.onBlur = function (terminal) { };\n BaseRenderLayer.prototype.onFocus = function (terminal) { };\n BaseRenderLayer.prototype.onCursorMove = function (terminal) { };\n BaseRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) { };\n BaseRenderLayer.prototype.onSelectionChanged = function (terminal, start, end, columnSelectMode) {\n if (columnSelectMode === void 0) { columnSelectMode = false; }\n };\n BaseRenderLayer.prototype.onThemeChanged = function (terminal, colorSet) {\n this._refreshCharAtlas(terminal, colorSet);\n };\n BaseRenderLayer.prototype.setTransparency = function (terminal, alpha) {\n if (alpha === this._alpha) {\n return;\n }\n var oldCanvas = this._canvas;\n this._alpha = alpha;\n this._canvas = this._canvas.cloneNode();\n this._initCanvas();\n this._container.replaceChild(this._canvas, oldCanvas);\n this._refreshCharAtlas(terminal, this._colors);\n this.onGridChanged(terminal, 0, terminal.rows - 1);\n };\n BaseRenderLayer.prototype._refreshCharAtlas = function (terminal, colorSet) {\n if (this._scaledCharWidth <= 0 && this._scaledCharHeight <= 0) {\n return;\n }\n this._charAtlas = CharAtlasCache_1.acquireCharAtlas(terminal, colorSet, this._scaledCharWidth, this._scaledCharHeight);\n this._charAtlas.warmUp();\n };\n BaseRenderLayer.prototype.resize = function (terminal, dim) {\n this._scaledCellWidth = dim.scaledCellWidth;\n this._scaledCellHeight = dim.scaledCellHeight;\n this._scaledCharWidth = dim.scaledCharWidth;\n this._scaledCharHeight = dim.scaledCharHeight;\n this._scaledCharLeft = dim.scaledCharLeft;\n this._scaledCharTop = dim.scaledCharTop;\n this._canvas.width = dim.scaledCanvasWidth;\n this._canvas.height = dim.scaledCanvasHeight;\n this._canvas.style.width = dim.canvasWidth + \"px\";\n this._canvas.style.height = dim.canvasHeight + \"px\";\n if (!this._alpha) {\n this.clearAll();\n }\n this._refreshCharAtlas(terminal, this._colors);\n };\n BaseRenderLayer.prototype.fillCells = function (x, y, width, height) {\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n };\n BaseRenderLayer.prototype.fillBottomLineAtCells = function (x, y, width) {\n if (width === void 0) { width = 1; }\n this._ctx.fillRect(x * this._scaledCellWidth, (y + 1) * this._scaledCellHeight - window.devicePixelRatio - 1, width * this._scaledCellWidth, window.devicePixelRatio);\n };\n BaseRenderLayer.prototype.fillLeftLineAtCell = function (x, y) {\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, window.devicePixelRatio, this._scaledCellHeight);\n };\n BaseRenderLayer.prototype.strokeRectAtCell = function (x, y, width, height) {\n this._ctx.lineWidth = window.devicePixelRatio;\n this._ctx.strokeRect(x * this._scaledCellWidth + window.devicePixelRatio / 2, y * this._scaledCellHeight + (window.devicePixelRatio / 2), width * this._scaledCellWidth - window.devicePixelRatio, (height * this._scaledCellHeight) - window.devicePixelRatio);\n };\n BaseRenderLayer.prototype.clearAll = function () {\n if (this._alpha) {\n this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);\n }\n else {\n this._ctx.fillStyle = this._colors.background.css;\n this._ctx.fillRect(0, 0, this._canvas.width, this._canvas.height);\n }\n };\n BaseRenderLayer.prototype.clearCells = function (x, y, width, height) {\n if (this._alpha) {\n this._ctx.clearRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n }\n else {\n this._ctx.fillStyle = this._colors.background.css;\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n }\n };\n BaseRenderLayer.prototype.fillCharTrueColor = function (terminal, charData, x, y) {\n this._ctx.font = this._getFont(terminal, false, false);\n this._ctx.textBaseline = 'top';\n this._clipRow(terminal, y);\n this._ctx.fillText(charData[Buffer_1.CHAR_DATA_CHAR_INDEX], x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\n };\n BaseRenderLayer.prototype.drawChars = function (terminal, chars, code, width, x, y, fg, bg, bold, dim, italic) {\n var drawInBrightColor = terminal.options.drawBoldTextInBrightColors && bold && fg < 8 && fg !== Types_1.INVERTED_DEFAULT_COLOR;\n fg += drawInBrightColor ? 8 : 0;\n var atlasDidDraw = this._charAtlas && this._charAtlas.draw(this._ctx, { chars: chars, code: code, bg: bg, fg: fg, bold: bold && terminal.options.enableBold, dim: dim, italic: italic }, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\n if (!atlasDidDraw) {\n this._drawUncachedChars(terminal, chars, width, fg, x, y, bold && terminal.options.enableBold, dim, italic);\n }\n };\n BaseRenderLayer.prototype._drawUncachedChars = function (terminal, chars, width, fg, x, y, bold, dim, italic) {\n this._ctx.save();\n this._ctx.font = this._getFont(terminal, bold, italic);\n this._ctx.textBaseline = 'top';\n if (fg === Types_1.INVERTED_DEFAULT_COLOR) {\n this._ctx.fillStyle = this._colors.background.css;\n }\n else if (fg < 256) {\n this._ctx.fillStyle = this._colors.ansi[fg].css;\n }\n else {\n this._ctx.fillStyle = this._colors.foreground.css;\n }\n this._clipRow(terminal, y);\n if (dim) {\n this._ctx.globalAlpha = Types_1.DIM_OPACITY;\n }\n this._ctx.fillText(chars, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\n this._ctx.restore();\n };\n BaseRenderLayer.prototype._clipRow = function (terminal, y) {\n this._ctx.beginPath();\n this._ctx.rect(0, y * this._scaledCellHeight, terminal.cols * this._scaledCellWidth, this._scaledCellHeight);\n this._ctx.clip();\n };\n BaseRenderLayer.prototype._getFont = function (terminal, isBold, isItalic) {\n var fontWeight = isBold ? terminal.options.fontWeightBold : terminal.options.fontWeight;\n var fontStyle = isItalic ? 'italic' : '';\n return fontStyle + \" \" + fontWeight + \" \" + terminal.options.fontSize * window.devicePixelRatio + \"px \" + terminal.options.fontFamily;\n };\n return BaseRenderLayer;\n}());\nexports.BaseRenderLayer = BaseRenderLayer;\n//# sourceMappingURL=BaseRenderLayer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DEFAULT_FOREGROUND = fromHex('#ffffff');\nvar DEFAULT_BACKGROUND = fromHex('#000000');\nvar DEFAULT_CURSOR = fromHex('#ffffff');\nvar DEFAULT_CURSOR_ACCENT = fromHex('#000000');\nvar DEFAULT_SELECTION = {\n css: 'rgba(255, 255, 255, 0.3)',\n rgba: 0xFFFFFF77\n};\nexports.DEFAULT_ANSI_COLORS = (function () {\n var colors = [\n fromHex('#2e3436'),\n fromHex('#cc0000'),\n fromHex('#4e9a06'),\n fromHex('#c4a000'),\n fromHex('#3465a4'),\n fromHex('#75507b'),\n fromHex('#06989a'),\n fromHex('#d3d7cf'),\n fromHex('#555753'),\n fromHex('#ef2929'),\n fromHex('#8ae234'),\n fromHex('#fce94f'),\n fromHex('#729fcf'),\n fromHex('#ad7fa8'),\n fromHex('#34e2e2'),\n fromHex('#eeeeec')\n ];\n var v = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff];\n for (var i = 0; i < 216; i++) {\n var r = v[(i / 36) % 6 | 0];\n var g = v[(i / 6) % 6 | 0];\n var b = v[i % 6];\n colors.push({\n css: \"#\" + toPaddedHex(r) + toPaddedHex(g) + toPaddedHex(b),\n rgba: ((r << 24) | (g << 16) | (b << 8) | 0xFF) >>> 0\n });\n }\n for (var i = 0; i < 24; i++) {\n var c = 8 + i * 10;\n var ch = toPaddedHex(c);\n colors.push({\n css: \"#\" + ch + ch + ch,\n rgba: ((c << 24) | (c << 16) | (c << 8) | 0xFF) >>> 0\n });\n }\n return colors;\n})();\nfunction fromHex(css) {\n return {\n css: css,\n rgba: parseInt(css.slice(1), 16) << 8 | 0xFF\n };\n}\nfunction toPaddedHex(c) {\n var s = c.toString(16);\n return s.length < 2 ? '0' + s : s;\n}\nvar ColorManager = (function () {\n function ColorManager(document, allowTransparency) {\n this.allowTransparency = allowTransparency;\n var canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n this._ctx = canvas.getContext('2d');\n this._ctx.globalCompositeOperation = 'copy';\n this._litmusColor = this._ctx.createLinearGradient(0, 0, 1, 1);\n this.colors = {\n foreground: DEFAULT_FOREGROUND,\n background: DEFAULT_BACKGROUND,\n cursor: DEFAULT_CURSOR,\n cursorAccent: DEFAULT_CURSOR_ACCENT,\n selection: DEFAULT_SELECTION,\n ansi: exports.DEFAULT_ANSI_COLORS.slice()\n };\n }\n ColorManager.prototype.setTheme = function (theme) {\n this.colors.foreground = this._parseColor(theme.foreground, DEFAULT_FOREGROUND);\n this.colors.background = this._parseColor(theme.background, DEFAULT_BACKGROUND);\n this.colors.cursor = this._parseColor(theme.cursor, DEFAULT_CURSOR, true);\n this.colors.cursorAccent = this._parseColor(theme.cursorAccent, DEFAULT_CURSOR_ACCENT, true);\n this.colors.selection = this._parseColor(theme.selection, DEFAULT_SELECTION, true);\n this.colors.ansi[0] = this._parseColor(theme.black, exports.DEFAULT_ANSI_COLORS[0]);\n this.colors.ansi[1] = this._parseColor(theme.red, exports.DEFAULT_ANSI_COLORS[1]);\n this.colors.ansi[2] = this._parseColor(theme.green, exports.DEFAULT_ANSI_COLORS[2]);\n this.colors.ansi[3] = this._parseColor(theme.yellow, exports.DEFAULT_ANSI_COLORS[3]);\n this.colors.ansi[4] = this._parseColor(theme.blue, exports.DEFAULT_ANSI_COLORS[4]);\n this.colors.ansi[5] = this._parseColor(theme.magenta, exports.DEFAULT_ANSI_COLORS[5]);\n this.colors.ansi[6] = this._parseColor(theme.cyan, exports.DEFAULT_ANSI_COLORS[6]);\n this.colors.ansi[7] = this._parseColor(theme.white, exports.DEFAULT_ANSI_COLORS[7]);\n this.colors.ansi[8] = this._parseColor(theme.brightBlack, exports.DEFAULT_ANSI_COLORS[8]);\n this.colors.ansi[9] = this._parseColor(theme.brightRed, exports.DEFAULT_ANSI_COLORS[9]);\n this.colors.ansi[10] = this._parseColor(theme.brightGreen, exports.DEFAULT_ANSI_COLORS[10]);\n this.colors.ansi[11] = this._parseColor(theme.brightYellow, exports.DEFAULT_ANSI_COLORS[11]);\n this.colors.ansi[12] = this._parseColor(theme.brightBlue, exports.DEFAULT_ANSI_COLORS[12]);\n this.colors.ansi[13] = this._parseColor(theme.brightMagenta, exports.DEFAULT_ANSI_COLORS[13]);\n this.colors.ansi[14] = this._parseColor(theme.brightCyan, exports.DEFAULT_ANSI_COLORS[14]);\n this.colors.ansi[15] = this._parseColor(theme.brightWhite, exports.DEFAULT_ANSI_COLORS[15]);\n };\n ColorManager.prototype._parseColor = function (css, fallback, allowTransparency) {\n if (allowTransparency === void 0) { allowTransparency = this.allowTransparency; }\n if (!css) {\n return fallback;\n }\n this._ctx.fillStyle = this._litmusColor;\n this._ctx.fillStyle = css;\n if (typeof this._ctx.fillStyle !== 'string') {\n console.warn(\"Color: \" + css + \" is invalid using fallback \" + fallback.css);\n return fallback;\n }\n this._ctx.fillRect(0, 0, 1, 1);\n var data = this._ctx.getImageData(0, 0, 1, 1).data;\n if (!allowTransparency && data[3] !== 0xFF) {\n console.warn(\"Color: \" + css + \" is using transparency, but allowTransparency is false. \" +\n (\"Using fallback \" + fallback.css + \".\"));\n return fallback;\n }\n return {\n css: css,\n rgba: (data[0] << 24 | data[1] << 16 | data[2] << 8 | data[3]) >>> 0\n };\n };\n return ColorManager;\n}());\nexports.ColorManager = ColorManager;\n//# sourceMappingURL=ColorManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isNode = (typeof navigator === 'undefined') ? true : false;\nvar userAgent = (isNode) ? 'node' : navigator.userAgent;\nvar platform = (isNode) ? 'node' : navigator.platform;\nexports.isFirefox = !!~userAgent.indexOf('Firefox');\nexports.isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nexports.isMSIE = !!~userAgent.indexOf('MSIE') || !!~userAgent.indexOf('Trident');\nexports.isMac = contains(['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'], platform);\nexports.isIpad = platform === 'iPad';\nexports.isIphone = platform === 'iPhone';\nexports.isMSWindows = contains(['Windows', 'Win16', 'Win32', 'WinCE'], platform);\nexports.isLinux = platform.indexOf('Linux') >= 0;\nfunction contains(arr, el) {\n return arr.indexOf(el) >= 0;\n}\n//# sourceMappingURL=Browser.js.map","'use strict'\n\nconst u = require('universalify').fromCallback\nconst rimraf = require('./rimraf')\n\nmodule.exports = {\n remove: u(rimraf),\n removeSync: rimraf.sync\n}\n","\"use strict\";\nconst { isASCIIHex } = require(\"./infra\");\n\nfunction strictlySplitByteSequence(buf, cp) {\n const list = [];\n let last = 0;\n let i = buf.indexOf(cp);\n while (i >= 0) {\n list.push(buf.slice(last, i));\n last = i + 1;\n i = buf.indexOf(cp, last);\n }\n if (last !== buf.length) {\n list.push(buf.slice(last));\n }\n return list;\n}\n\nfunction replaceByteInByteSequence(buf, from, to) {\n let i = buf.indexOf(from);\n while (i >= 0) {\n buf[i] = to;\n i = buf.indexOf(from, i + 1);\n }\n return buf;\n}\n\nfunction percentEncode(c) {\n let hex = c.toString(16).toUpperCase();\n if (hex.length === 1) {\n hex = \"0\" + hex;\n }\n\n return \"%\" + hex;\n}\n\nfunction percentDecode(input) {\n const output = Buffer.alloc(input.byteLength);\n let ptr = 0;\n for (let i = 0; i < input.length; ++i) {\n if (input[i] !== 37 || !isASCIIHex(input[i + 1]) || !isASCIIHex(input[i + 2])) {\n output[ptr++] = input[i];\n } else {\n output[ptr++] = parseInt(input.slice(i + 1, i + 3).toString(), 16);\n i += 2;\n }\n }\n return output.slice(0, ptr);\n}\n\nfunction parseUrlencoded(input) {\n const sequences = strictlySplitByteSequence(input, 38);\n const output = [];\n for (const bytes of sequences) {\n if (bytes.length === 0) {\n continue;\n }\n\n let name;\n let value;\n const indexOfEqual = bytes.indexOf(61);\n\n if (indexOfEqual >= 0) {\n name = bytes.slice(0, indexOfEqual);\n value = bytes.slice(indexOfEqual + 1);\n } else {\n name = bytes;\n value = Buffer.alloc(0);\n }\n\n name = replaceByteInByteSequence(Buffer.from(name), 43, 32);\n value = replaceByteInByteSequence(Buffer.from(value), 43, 32);\n\n output.push([percentDecode(name).toString(), percentDecode(value).toString()]);\n }\n return output;\n}\n\nfunction serializeUrlencodedByte(input) {\n let output = \"\";\n for (const byte of input) {\n if (byte === 32) {\n output += \"+\";\n } else if (byte === 42 ||\n byte === 45 ||\n byte === 46 ||\n (byte >= 48 && byte <= 57) ||\n (byte >= 65 && byte <= 90) ||\n byte === 95 ||\n (byte >= 97 && byte <= 122)) {\n output += String.fromCodePoint(byte);\n } else {\n output += percentEncode(byte);\n }\n }\n return output;\n}\n\nfunction serializeUrlencoded(tuples, encodingOverride = undefined) {\n let encoding = \"utf-8\";\n if (encodingOverride !== undefined) {\n encoding = encodingOverride;\n }\n\n let output = \"\";\n for (const [i, tuple] of tuples.entries()) {\n // TODO: handle encoding override\n const name = serializeUrlencodedByte(Buffer.from(tuple[0]));\n let value = tuple[1];\n if (tuple.length > 2 && tuple[2] !== undefined) {\n if (tuple[2] === \"hidden\" && name === \"_charset_\") {\n value = encoding;\n } else if (tuple[2] === \"file\") {\n // value is a File object\n value = value.name;\n }\n }\n value = serializeUrlencodedByte(Buffer.from(value));\n if (i !== 0) {\n output += \"&\";\n }\n output += `${name}=${value}`;\n }\n return output;\n}\n\nmodule.exports = {\n percentEncode,\n percentDecode,\n\n // application/x-www-form-urlencoded string parser\n parseUrlencoded(input) {\n return parseUrlencoded(Buffer.from(input));\n },\n\n // application/x-www-form-urlencoded serializer\n serializeUrlencoded\n};\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.index = mod.exports;\n }\n})(this, function (exports) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n var isDate = exports.isDate = function isDate(d) {\n return d instanceof Date;\n };\n var isEmpty = exports.isEmpty = function isEmpty(o) {\n return Object.keys(o).length === 0;\n };\n var isObject = exports.isObject = function isObject(o) {\n return o != null && (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object';\n };\n var properObject = exports.properObject = function properObject(o) {\n return isObject(o) && !o.hasOwnProperty ? _extends({}, o) : o;\n };\n});","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nexport function clearDiv (div) {\r\n while (div.firstChild) {\r\n div.removeChild(div.firstChild)\r\n }\r\n}\r\n\r\nexport function createHorizontalLine () {\r\n let hLine = document.createElement('div')\r\n hLine.classList.add('atom-xterm-profile-menu-element-hline')\r\n hLine.appendChild(document.createTextNode('.'))\r\n return hLine\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport os from 'os'\r\nimport path from 'path'\r\n\r\nexport default {\r\n\r\n getDefaultShellCommand () {\r\n if (process.platform === 'win32') {\r\n return process.env.COMSPEC || 'cmd.exe'\r\n }\r\n return process.env.SHELL || '/bin/sh'\r\n },\r\n\r\n getDefaultArgs () {\r\n return '[]'\r\n },\r\n\r\n getDefaultTermType () {\r\n return process.env.TERM || 'xterm-256color'\r\n },\r\n\r\n getDefaultCwd () {\r\n if (process.platform === 'win32') {\r\n return process.env.USERPROFILE\r\n }\r\n return process.env.HOME\r\n },\r\n\r\n getDefaultEnv () {\r\n return ''\r\n },\r\n\r\n getDefaultSetEnv () {\r\n return '{}'\r\n },\r\n\r\n getDefaultDeleteEnv () {\r\n return '[]'\r\n },\r\n\r\n getDefaultEncoding () {\r\n return ''\r\n },\r\n\r\n getDefaultFontSize () {\r\n return 14\r\n },\r\n\r\n getMinimumFontSize () {\r\n // NOTE: Atom will crash if the font is set below 8.\r\n return 8\r\n },\r\n\r\n getMaximumFontSize () {\r\n return 100\r\n },\r\n\r\n getDefaultLeaveOpenAfterExit () {\r\n return true\r\n },\r\n\r\n getDefaultAllowRelaunchingTerminalsOnStartup () {\r\n return true\r\n },\r\n\r\n getDefaultRelaunchTerminalOnStartup () {\r\n return true\r\n },\r\n\r\n getUserDataPath () {\r\n let appDataPath\r\n if (process.platform === 'win32') {\r\n appDataPath = process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming')\r\n } else if (process.platform === 'darwin') {\r\n appDataPath = path.join(os.homedir(), 'Library', 'Application Support')\r\n } else {\r\n appDataPath = process.env.XDG_CONFIG_HOME || path.join(os.homedir(), '.config')\r\n }\r\n return path.join(appDataPath, 'atom-xterm')\r\n },\r\n\r\n getDefaultTitle () {\r\n return ''\r\n },\r\n\r\n getDefaultXtermOptions () {\r\n return '{}'\r\n },\r\n\r\n getDefaultPromptToStartup () {\r\n return false\r\n }\r\n}\r\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseCharAtlas = (function () {\n function BaseCharAtlas() {\n this._didWarmUp = false;\n }\n BaseCharAtlas.prototype.warmUp = function () {\n if (!this._didWarmUp) {\n this._doWarmUp();\n this._didWarmUp = true;\n }\n };\n BaseCharAtlas.prototype._doWarmUp = function () { };\n BaseCharAtlas.prototype.beginFrame = function () { };\n return BaseCharAtlas;\n}());\nexports.default = BaseCharAtlas;\n//# sourceMappingURL=BaseCharAtlas.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RenderDebouncer = (function () {\n function RenderDebouncer(_terminal, _callback) {\n this._terminal = _terminal;\n this._callback = _callback;\n this._animationFrame = null;\n }\n RenderDebouncer.prototype.dispose = function () {\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n RenderDebouncer.prototype.refresh = function (rowStart, rowEnd) {\n var _this = this;\n rowStart = rowStart || 0;\n rowEnd = rowEnd || this._terminal.rows - 1;\n this._rowStart = this._rowStart !== undefined ? Math.min(this._rowStart, rowStart) : rowStart;\n this._rowEnd = this._rowEnd !== undefined ? Math.max(this._rowEnd, rowEnd) : rowEnd;\n if (this._animationFrame) {\n return;\n }\n this._animationFrame = window.requestAnimationFrame(function () { return _this._innerRefresh(); });\n };\n RenderDebouncer.prototype._innerRefresh = function () {\n this._rowStart = Math.max(this._rowStart, 0);\n this._rowEnd = Math.min(this._rowEnd, this._terminal.rows - 1);\n this._callback(this._rowStart, this._rowEnd);\n this._rowStart = null;\n this._rowEnd = null;\n this._animationFrame = null;\n };\n return RenderDebouncer;\n}());\nexports.RenderDebouncer = RenderDebouncer;\n//# sourceMappingURL=RenderDebouncer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.blankLine = 'Blank line';\nexports.promptLabel = 'Terminal input';\nexports.tooMuchOutput = 'Too much output to announce, navigate to rows manually to read';\n//# sourceMappingURL=Strings.js.map","'use strict'\n\nmodule.exports = Object.assign(\n {},\n // Export promiseified graceful-fs:\n require('./fs'),\n // Export extra methods:\n require('./copy-sync'),\n require('./copy'),\n require('./empty'),\n require('./ensure'),\n require('./json'),\n require('./mkdirs'),\n require('./move-sync'),\n require('./move'),\n require('./output'),\n require('./path-exists'),\n require('./remove')\n)\n\n// Export fs.promises as a getter property so that we don't trigger\n// ExperimentalWarning before fs.promises is actually accessed.\nconst fs = require('fs')\nif (Object.getOwnPropertyDescriptor(fs, 'promises')) {\n Object.defineProperty(module.exports, 'promises', {\n get () { return fs.promises }\n })\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst jsonFile = require('jsonfile')\n\nmodule.exports = {\n // jsonfile exports\n readJson: u(jsonFile.readFile),\n readJsonSync: jsonFile.readFileSync,\n writeJson: u(jsonFile.writeFile),\n writeJsonSync: jsonFile.writeFileSync\n}\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.URLSearchParams = require(\"./URLSearchParams\").interface;\n\nexports.parseURL = require(\"./url-state-machine\").parseURL;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.cannotHaveAUsernamePasswordPort = require(\"./url-state-machine\").cannotHaveAUsernamePasswordPort;\n\nexports.percentDecode = require(\"./urlencoded\").percentDecode;\n","module.exports = require(\"os\");","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CharAtlasUtils_1 = require(\"./CharAtlasUtils\");\nvar DynamicCharAtlas_1 = require(\"./DynamicCharAtlas\");\nvar NoneCharAtlas_1 = require(\"./NoneCharAtlas\");\nvar StaticCharAtlas_1 = require(\"./StaticCharAtlas\");\nvar charAtlasImplementations = {\n 'none': NoneCharAtlas_1.default,\n 'static': StaticCharAtlas_1.default,\n 'dynamic': DynamicCharAtlas_1.default\n};\nvar charAtlasCache = [];\nfunction acquireCharAtlas(terminal, colors, scaledCharWidth, scaledCharHeight) {\n var newConfig = CharAtlasUtils_1.generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors);\n for (var i = 0; i < charAtlasCache.length; i++) {\n var entry = charAtlasCache[i];\n var ownedByIndex = entry.ownedBy.indexOf(terminal);\n if (ownedByIndex >= 0) {\n if (CharAtlasUtils_1.configEquals(entry.config, newConfig)) {\n return entry.atlas;\n }\n if (entry.ownedBy.length === 1) {\n charAtlasCache.splice(i, 1);\n }\n else {\n entry.ownedBy.splice(ownedByIndex, 1);\n }\n break;\n }\n }\n for (var i = 0; i < charAtlasCache.length; i++) {\n var entry = charAtlasCache[i];\n if (CharAtlasUtils_1.configEquals(entry.config, newConfig)) {\n entry.ownedBy.push(terminal);\n return entry.atlas;\n }\n }\n var newEntry = {\n atlas: new charAtlasImplementations[terminal.options.experimentalCharAtlas](document, newConfig),\n config: newConfig,\n ownedBy: [terminal]\n };\n charAtlasCache.push(newEntry);\n return newEntry.atlas;\n}\nexports.acquireCharAtlas = acquireCharAtlas;\nfunction removeTerminalFromCache(terminal) {\n for (var i = 0; i < charAtlasCache.length; i++) {\n var index = charAtlasCache[i].ownedBy.indexOf(terminal);\n if (index !== -1) {\n if (charAtlasCache[i].ownedBy.length === 1) {\n charAtlasCache.splice(i, 1);\n }\n else {\n charAtlasCache[i].ownedBy.splice(index, 1);\n }\n break;\n }\n }\n}\nexports.removeTerminalFromCache = removeTerminalFromCache;\n//# sourceMappingURL=CharAtlasCache.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./Types\");\nvar Browser_1 = require(\"../utils/Browser\");\nfunction generateStaticCharAtlasTexture(context, canvasFactory, config) {\n var cellWidth = config.scaledCharWidth + Types_1.CHAR_ATLAS_CELL_SPACING;\n var cellHeight = config.scaledCharHeight + Types_1.CHAR_ATLAS_CELL_SPACING;\n var canvas = canvasFactory(255 * cellWidth, (2 + 16 + 16) * cellHeight);\n var ctx = canvas.getContext('2d', { alpha: config.allowTransparency });\n ctx.fillStyle = config.colors.background.css;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.save();\n ctx.fillStyle = config.colors.foreground.css;\n ctx.font = getFont(config.fontWeight, config);\n ctx.textBaseline = 'top';\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, 0, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillText(String.fromCharCode(i), i * cellWidth, 0);\n ctx.restore();\n }\n ctx.save();\n ctx.font = getFont(config.fontWeightBold, config);\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, cellHeight, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillText(String.fromCharCode(i), i * cellWidth, cellHeight);\n ctx.restore();\n }\n ctx.restore();\n ctx.font = getFont(config.fontWeight, config);\n for (var colorIndex = 0; colorIndex < 16; colorIndex++) {\n var y = (colorIndex + 2) * cellHeight;\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, y, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillStyle = config.colors.ansi[colorIndex].css;\n ctx.fillText(String.fromCharCode(i), i * cellWidth, y);\n ctx.restore();\n }\n }\n ctx.font = getFont(config.fontWeightBold, config);\n for (var colorIndex = 0; colorIndex < 16; colorIndex++) {\n var y = (colorIndex + 2 + 16) * cellHeight;\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, y, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillStyle = config.colors.ansi[colorIndex].css;\n ctx.fillText(String.fromCharCode(i), i * cellWidth, y);\n ctx.restore();\n }\n }\n ctx.restore();\n if (!('createImageBitmap' in context) || Browser_1.isFirefox || Browser_1.isSafari) {\n if (canvas instanceof HTMLCanvasElement) {\n return canvas;\n }\n return new Promise(function (r) { return r(canvas.transferToImageBitmap()); });\n }\n var charAtlasImageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n clearColor(charAtlasImageData, config.colors.background);\n return context.createImageBitmap(charAtlasImageData);\n}\nexports.generateStaticCharAtlasTexture = generateStaticCharAtlasTexture;\nfunction clearColor(imageData, color) {\n var isEmpty = true;\n var r = color.rgba >>> 24;\n var g = color.rgba >>> 16 & 0xFF;\n var b = color.rgba >>> 8 & 0xFF;\n for (var offset = 0; offset < imageData.data.length; offset += 4) {\n if (imageData.data[offset] === r &&\n imageData.data[offset + 1] === g &&\n imageData.data[offset + 2] === b) {\n imageData.data[offset + 3] = 0;\n }\n else {\n isEmpty = false;\n }\n }\n return isEmpty;\n}\nexports.clearColor = clearColor;\nfunction getFont(fontWeight, config) {\n return fontWeight + \" \" + config.fontSize * config.devicePixelRatio + \"px \" + config.fontFamily;\n}\n//# sourceMappingURL=CharAtlasGenerator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHAR_ATLAS_CELL_SPACING = 1;\n//# sourceMappingURL=Types.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"../common/Lifecycle\");\nvar ScreenDprMonitor = (function (_super) {\n __extends(ScreenDprMonitor, _super);\n function ScreenDprMonitor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScreenDprMonitor.prototype.setListener = function (listener) {\n var _this = this;\n if (this._listener) {\n this.clearListener();\n }\n this._listener = listener;\n this._outerListener = function () {\n _this._listener(window.devicePixelRatio, _this._currentDevicePixelRatio);\n _this._updateDpr();\n };\n this._updateDpr();\n };\n ScreenDprMonitor.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this.clearListener();\n };\n ScreenDprMonitor.prototype._updateDpr = function () {\n if (this._resolutionMediaMatchList) {\n this._resolutionMediaMatchList.removeListener(this._outerListener);\n }\n this._currentDevicePixelRatio = window.devicePixelRatio;\n this._resolutionMediaMatchList = window.matchMedia(\"screen and (resolution: \" + window.devicePixelRatio + \"dppx)\");\n this._resolutionMediaMatchList.addListener(this._outerListener);\n };\n ScreenDprMonitor.prototype.clearListener = function () {\n if (!this._listener) {\n return;\n }\n this._resolutionMediaMatchList.removeListener(this._outerListener);\n this._listener = null;\n this._outerListener = null;\n };\n return ScreenDprMonitor;\n}(Lifecycle_1.Disposable));\nexports.ScreenDprMonitor = ScreenDprMonitor;\n//# sourceMappingURL=ScreenDprMonitor.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"../common/Lifecycle\");\nvar Lifecycle_2 = require(\"./Lifecycle\");\nvar HOVER_DURATION = 500;\nvar MouseZoneManager = (function (_super) {\n __extends(MouseZoneManager, _super);\n function MouseZoneManager(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._zones = [];\n _this._areZonesActive = false;\n _this._tooltipTimeout = null;\n _this._currentZone = null;\n _this._lastHoverCoords = [null, null];\n _this.register(Lifecycle_2.addDisposableDomListener(_this._terminal.element, 'mousedown', function (e) { return _this._onMouseDown(e); }));\n _this._mouseMoveListener = function (e) { return _this._onMouseMove(e); };\n _this._clickListener = function (e) { return _this._onClick(e); };\n return _this;\n }\n MouseZoneManager.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._deactivate();\n };\n MouseZoneManager.prototype.add = function (zone) {\n this._zones.push(zone);\n if (this._zones.length === 1) {\n this._activate();\n }\n };\n MouseZoneManager.prototype.clearAll = function (start, end) {\n if (this._zones.length === 0) {\n return;\n }\n if (!end) {\n start = 0;\n end = this._terminal.rows - 1;\n }\n for (var i = 0; i < this._zones.length; i++) {\n var zone = this._zones[i];\n if ((zone.y1 > start && zone.y1 <= end + 1) ||\n (zone.y2 > start && zone.y2 <= end + 1) ||\n (zone.y1 < start && zone.y2 > end + 1)) {\n if (this._currentZone && this._currentZone === zone) {\n this._currentZone.leaveCallback();\n this._currentZone = null;\n }\n this._zones.splice(i--, 1);\n }\n }\n if (this._zones.length === 0) {\n this._deactivate();\n }\n };\n MouseZoneManager.prototype._activate = function () {\n if (!this._areZonesActive) {\n this._areZonesActive = true;\n this._terminal.element.addEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.addEventListener('click', this._clickListener);\n }\n };\n MouseZoneManager.prototype._deactivate = function () {\n if (this._areZonesActive) {\n this._areZonesActive = false;\n this._terminal.element.removeEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.removeEventListener('click', this._clickListener);\n }\n };\n MouseZoneManager.prototype._onMouseMove = function (e) {\n if (this._lastHoverCoords[0] !== e.pageX || this._lastHoverCoords[1] !== e.pageY) {\n this._onHover(e);\n this._lastHoverCoords = [e.pageX, e.pageY];\n }\n };\n MouseZoneManager.prototype._onHover = function (e) {\n var _this = this;\n var zone = this._findZoneEventAt(e);\n if (zone === this._currentZone) {\n return;\n }\n if (this._currentZone) {\n this._currentZone.leaveCallback();\n this._currentZone = null;\n if (this._tooltipTimeout) {\n clearTimeout(this._tooltipTimeout);\n }\n }\n if (!zone) {\n return;\n }\n this._currentZone = zone;\n if (zone.hoverCallback) {\n zone.hoverCallback(e);\n }\n this._tooltipTimeout = setTimeout(function () { return _this._onTooltip(e); }, HOVER_DURATION);\n };\n MouseZoneManager.prototype._onTooltip = function (e) {\n this._tooltipTimeout = null;\n var zone = this._findZoneEventAt(e);\n if (zone && zone.tooltipCallback) {\n zone.tooltipCallback(e);\n }\n };\n MouseZoneManager.prototype._onMouseDown = function (e) {\n if (!this._areZonesActive) {\n return;\n }\n var zone = this._findZoneEventAt(e);\n if (zone) {\n if (zone.willLinkActivate(e)) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n }\n };\n MouseZoneManager.prototype._onClick = function (e) {\n var zone = this._findZoneEventAt(e);\n if (zone) {\n zone.clickCallback(e);\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n };\n MouseZoneManager.prototype._findZoneEventAt = function (e) {\n var coords = this._terminal.mouseHelper.getCoords(e, this._terminal.screenElement, this._terminal.charMeasure, this._terminal.options.lineHeight, this._terminal.cols, this._terminal.rows);\n if (!coords) {\n return null;\n }\n var x = coords[0];\n var y = coords[1];\n for (var i = 0; i < this._zones.length; i++) {\n var zone = this._zones[i];\n if (zone.y1 === zone.y2) {\n if (y === zone.y1 && x >= zone.x1 && x < zone.x2) {\n return zone;\n }\n }\n else {\n if ((y === zone.y1 && x >= zone.x1) ||\n (y === zone.y2 && x < zone.x2) ||\n (y > zone.y1 && y < zone.y2)) {\n return zone;\n }\n }\n }\n return null;\n };\n return MouseZoneManager;\n}(Lifecycle_1.Disposable));\nexports.MouseZoneManager = MouseZoneManager;\nvar MouseZone = (function () {\n function MouseZone(x1, y1, x2, y2, clickCallback, hoverCallback, tooltipCallback, leaveCallback, willLinkActivate) {\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.clickCallback = clickCallback;\n this.hoverCallback = hoverCallback;\n this.tooltipCallback = tooltipCallback;\n this.leaveCallback = leaveCallback;\n this.willLinkActivate = willLinkActivate;\n }\n return MouseZone;\n}());\nexports.MouseZone = MouseZone;\n//# sourceMappingURL=MouseZoneManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseHelper = (function () {\n function MouseHelper(_renderer) {\n this._renderer = _renderer;\n }\n MouseHelper.getCoordsRelativeToElement = function (event, element) {\n if (event.pageX == null) {\n return null;\n }\n var originalElement = element;\n var x = event.pageX;\n var y = event.pageY;\n while (element) {\n x -= element.offsetLeft;\n y -= element.offsetTop;\n element = element.offsetParent;\n }\n element = originalElement;\n while (element && element !== element.ownerDocument.body) {\n x += element.scrollLeft;\n y += element.scrollTop;\n element = element.parentElement;\n }\n return [x, y];\n };\n MouseHelper.prototype.getCoords = function (event, element, charMeasure, lineHeight, colCount, rowCount, isSelection) {\n if (!charMeasure.width || !charMeasure.height) {\n return null;\n }\n var coords = MouseHelper.getCoordsRelativeToElement(event, element);\n if (!coords) {\n return null;\n }\n coords[0] = Math.ceil((coords[0] + (isSelection ? this._renderer.dimensions.actualCellWidth / 2 : 0)) / this._renderer.dimensions.actualCellWidth);\n coords[1] = Math.ceil(coords[1] / this._renderer.dimensions.actualCellHeight);\n coords[0] = Math.min(Math.max(coords[0], 1), colCount + (isSelection ? 1 : 0));\n coords[1] = Math.min(Math.max(coords[1], 1), rowCount);\n return coords;\n };\n MouseHelper.prototype.getRawByteCoords = function (event, element, charMeasure, lineHeight, colCount, rowCount) {\n var coords = this.getCoords(event, element, charMeasure, lineHeight, colCount, rowCount);\n var x = coords[0];\n var y = coords[1];\n x += 32;\n y += 32;\n return { x: x, y: y };\n };\n return MouseHelper;\n}());\nexports.MouseHelper = MouseHelper;\n//# sourceMappingURL=MouseHelper.js.map","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { CompositeDisposable, TextEditor } from 'atom'\r\n\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\nimport { AtomXtermDeleteProfileModel } from './atom-xterm-delete-profile-model'\r\nimport { AtomXtermSaveProfileModel } from './atom-xterm-save-profile-model'\r\nimport { createHorizontalLine } from './atom-xterm-utils'\r\n\r\nclass AtomXtermProfileMenuElementImpl extends HTMLElement {\r\n initialize (model) {\r\n this.model = model\r\n this.model.setElement(this)\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n let topDiv = document.createElement('div')\r\n topDiv.classList.add('atom-xterm-profile-menu-element-top-div')\r\n this.appendChild(topDiv)\r\n let leftDiv = document.createElement('div')\r\n leftDiv.classList.add('atom-xterm-profile-menu-element-left-div')\r\n this.appendChild(leftDiv)\r\n this.mainDiv = document.createElement('div')\r\n this.mainDiv.classList.add('atom-xterm-profile-menu-element-main-div')\r\n this.appendChild(this.mainDiv)\r\n let rightDiv = document.createElement('div')\r\n rightDiv.classList.add('atom-xterm-profile-menu-element-right-div')\r\n this.appendChild(rightDiv)\r\n let bottomDiv = document.createElement('div')\r\n bottomDiv.classList.add('atom-xterm-profile-menu-element-bottom-div')\r\n this.appendChild(bottomDiv)\r\n this.disposables = new CompositeDisposable()\r\n this.initializedPromise = new Promise((resolve, reject) => {\r\n this.createProfilesDropDown().then((profilesDiv) => {\r\n let modelProfile = this.getModelProfile()\r\n let baseProfile = this.profilesSingleton.getBaseProfile()\r\n // Profiles\r\n this.mainDiv.appendChild(profilesDiv)\r\n\r\n // Buttons div\r\n this.mainDiv.appendChild(this.createProfileMenuButtons())\r\n\r\n // Horizontal line.\r\n this.mainDiv.appendChild(createHorizontalLine())\r\n\r\n // Command\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'command-textbox',\r\n 'Command',\r\n 'Command to run in the terminal.',\r\n baseProfile.command,\r\n modelProfile.command\r\n ))\r\n // Arguments\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'args-textbox',\r\n 'Arguments',\r\n 'Arguments to pass to command. This must be defined as a JSON list.',\r\n baseProfile.args,\r\n modelProfile.args\r\n ))\r\n // Terminal type\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'name-textbox',\r\n 'Terminal Type',\r\n 'The terminal type to use for the terminal. Note that this does nothing on Windows.',\r\n baseProfile.name,\r\n modelProfile.name\r\n ))\r\n // Current working directory.\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'cwd-textbox',\r\n 'Current Working Directory',\r\n 'The current working directory to set for the terminal process.',\r\n baseProfile.cwd,\r\n modelProfile.cwd\r\n ))\r\n // Environment\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'env-textbox',\r\n 'Environment',\r\n 'The environment to use for the terminal process. If not set, the current environment is used. This must be defined as a JSON object.',\r\n baseProfile.env,\r\n modelProfile.env\r\n ))\r\n // Environment overrides\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'setenv-textbox',\r\n 'Environment Overrides',\r\n 'A key/value mapping of environment variables to set/override from the environment. This must be defined as a JSON object.',\r\n baseProfile.setEnv,\r\n modelProfile.setEnv\r\n ))\r\n // Environment deletions\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'deleteenv-textbox',\r\n 'Environment Deletions',\r\n 'A list of environment variables to delete from the environment. This must be defined as a JSON list.',\r\n baseProfile.deleteEnv,\r\n modelProfile.deleteEnv\r\n ))\r\n // Encoding\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'encoding-textbox',\r\n 'Encoding',\r\n 'The encoding to use for the terminal.',\r\n baseProfile.encoding,\r\n modelProfile.encoding\r\n ))\r\n // Font size\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'fontsize-textbox',\r\n 'Font Size',\r\n 'The font size to use for the terminal.',\r\n baseProfile.fontSize,\r\n modelProfile.fontSize\r\n ))\r\n // Leave open after terminal exit\r\n this.mainDiv.appendChild(this.createCheckbox(\r\n 'leaveopenafterexit-checkbox',\r\n 'Leave Open After Exit',\r\n 'Whether to leave the terminal open after the terminal process has exited.',\r\n baseProfile.leaveOpenAfterExit,\r\n modelProfile.leaveOpenAfterExit\r\n ))\r\n // Relaunch terminal on startup.\r\n this.mainDiv.appendChild(this.createCheckbox(\r\n 'relaunchterminalonstartup-checkbox',\r\n 'Relaunch terminal on startup',\r\n 'Whether to relaunch the terminal after exiting the Atom editor.',\r\n baseProfile.relaunchTerminalOnStartup,\r\n modelProfile.relaunchTerminalOnStartup\r\n ))\r\n // Title\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'title-textbox',\r\n 'Title',\r\n 'The title to give to the terminal tab.',\r\n baseProfile.title,\r\n modelProfile.title\r\n ))\r\n // xterm.js Terminal options\r\n this.mainDiv.appendChild(this.createTextbox(\r\n 'xtermoptions-textbox',\r\n 'xterm.js Terminal Options',\r\n 'The xterm.js options to use for Terminal object (i.e to apply theme for example). This must be defined as a JSON object.',\r\n baseProfile.xtermOptions,\r\n modelProfile.xtermOptions\r\n ))\r\n // Prompt to startup terminal command\r\n this.mainDiv.appendChild(this.createCheckbox(\r\n 'prompttostartup-checkbox',\r\n 'Prompt to start command',\r\n 'Whether to prompt to start command in terminal on startup.',\r\n baseProfile.promptToStartup,\r\n modelProfile.promptToStartup\r\n ))\r\n\r\n this.deleteProfileModel = new AtomXtermDeleteProfileModel(this)\r\n this.saveProfileModel = new AtomXtermSaveProfileModel(this)\r\n\r\n this.disposables.add(this.profilesSingleton.onDidReloadProfiles((profiles) => {\r\n this.createProfilesDropDownSelectItem().then((select) => {\r\n let menuItemContainer = this.mainDiv.querySelector('#profiles-selection')\r\n while (menuItemContainer.firstChild) {\r\n menuItemContainer.removeChild(menuItemContainer.firstChild)\r\n }\r\n menuItemContainer.appendChild(select)\r\n })\r\n }))\r\n resolve()\r\n })\r\n })\r\n return this.initializedPromise\r\n }\r\n\r\n destroy () {\r\n if (this.disposables) {\r\n this.disposables.dispose()\r\n }\r\n }\r\n\r\n getModelProfile () {\r\n return this.model.atomXtermModel.profile\r\n }\r\n\r\n parseJson (value, defaultValue, type) {\r\n let retval = value\r\n try {\r\n retval = JSON.parse(retval)\r\n } catch (e) {\r\n if (!(e instanceof SyntaxError)) {\r\n throw e\r\n }\r\n retval = null\r\n }\r\n if (!retval || retval.constructor !== type) {\r\n retval = defaultValue\r\n }\r\n return retval\r\n }\r\n\r\n getMenuElements () {\r\n let menuElements = {}\r\n menuElements.commandElement = this.mainDiv.querySelector('#command-textbox atom-text-editor')\r\n menuElements.argsElement = this.mainDiv.querySelector('#args-textbox atom-text-editor')\r\n menuElements.nameElement = this.mainDiv.querySelector('#name-textbox atom-text-editor')\r\n menuElements.cwdElement = this.mainDiv.querySelector('#cwd-textbox atom-text-editor')\r\n menuElements.envElement = this.mainDiv.querySelector('#env-textbox atom-text-editor')\r\n menuElements.setEnvElement = this.mainDiv.querySelector('#setenv-textbox atom-text-editor')\r\n menuElements.deleteEnvElement = this.mainDiv.querySelector('#deleteenv-textbox atom-text-editor')\r\n menuElements.encodingElement = this.mainDiv.querySelector('#encoding-textbox atom-text-editor')\r\n menuElements.fontSizeElement = this.mainDiv.querySelector('#fontsize-textbox atom-text-editor')\r\n menuElements.leaveOpenAfterExitElement = this.mainDiv.querySelector('#leaveopenafterexit-checkbox .atom-xterm-profile-menu-item-checkbox')\r\n menuElements.relaunchTerminalOnStartupElement = this.mainDiv.querySelector('#relaunchterminalonstartup-checkbox .atom-xterm-profile-menu-item-checkbox')\r\n menuElements.titleElement = this.mainDiv.querySelector('#title-textbox atom-text-editor')\r\n menuElements.xtermOptionsElement = this.mainDiv.querySelector('#xtermoptions-textbox atom-text-editor')\r\n menuElements.promptToStartupElement = this.mainDiv.querySelector('#prompttostartup-checkbox .atom-xterm-profile-menu-item-checkbox')\r\n return menuElements\r\n }\r\n\r\n getProfileMenuSettings () {\r\n let newProfile = {}\r\n let baseProfile = this.profilesSingleton.getBaseProfile()\r\n let menuElements = this.getMenuElements()\r\n newProfile.command = menuElements.commandElement.getModel().getText() || baseProfile.command\r\n newProfile.args = this.parseJson(\r\n menuElements.argsElement.getModel().getText(),\r\n baseProfile.args,\r\n Array\r\n )\r\n newProfile.name = menuElements.nameElement.getModel().getText() || baseProfile.name\r\n newProfile.cwd = menuElements.cwdElement.getModel().getText() || baseProfile.cwd\r\n newProfile.env = this.parseJson(\r\n menuElements.envElement.getModel().getText(),\r\n baseProfile.env,\r\n Object\r\n )\r\n newProfile.setEnv = this.parseJson(\r\n menuElements.setEnvElement.getModel().getText(),\r\n baseProfile.setEnv,\r\n Object\r\n )\r\n newProfile.deleteEnv = this.parseJson(\r\n menuElements.deleteEnvElement.getModel().getText(),\r\n baseProfile.deleteEnv,\r\n Array\r\n )\r\n newProfile.encoding = menuElements.encodingElement.getModel().getText() || baseProfile.encoding\r\n newProfile.fontSize = this.parseJson(\r\n menuElements.fontSizeElement.getModel().getText(),\r\n baseProfile.fontSize,\r\n Number\r\n )\r\n newProfile.leaveOpenAfterExit = menuElements.leaveOpenAfterExitElement.checked\r\n newProfile.relaunchTerminalOnStartup = menuElements.relaunchTerminalOnStartupElement.checked\r\n newProfile.title = menuElements.titleElement.getModel().getText() || baseProfile.title\r\n newProfile.xtermOptions = this.parseJson(\r\n menuElements.xtermOptionsElement.getModel().getText(),\r\n baseProfile.xtermOptions,\r\n Object\r\n )\r\n newProfile.promptToStartup = menuElements.promptToStartupElement.checked\r\n return newProfile\r\n }\r\n\r\n applyProfileChanges (profileChanges) {\r\n this.hideProfileMenu()\r\n this.model.getAtomXtermModel().applyProfileChanges(profileChanges)\r\n }\r\n\r\n restartTerminal () {\r\n this.hideProfileMenu()\r\n this.model.getAtomXtermModelElement().restartPtyProcess()\r\n }\r\n\r\n createMenuItemContainer (id, labelTitle, labelDescription) {\r\n let menuItemContainer = document.createElement('div')\r\n menuItemContainer.classList.add('atom-xterm-profile-menu-item')\r\n menuItemContainer.setAttribute('id', id)\r\n let menuItemLabel = document.createElement('label')\r\n menuItemLabel.classList.add('atom-xterm-profile-menu-item-label')\r\n let titleDiv = document.createElement('div')\r\n titleDiv.classList.add('atom-xterm-profile-menu-item-title')\r\n titleDiv.appendChild(document.createTextNode(labelTitle))\r\n menuItemLabel.appendChild(titleDiv)\r\n let descriptionDiv = document.createElement('div')\r\n descriptionDiv.classList.add('atom-xterm-profile-menu-item-description')\r\n descriptionDiv.appendChild(document.createTextNode(labelDescription))\r\n menuItemLabel.appendChild(descriptionDiv)\r\n menuItemContainer.appendChild(menuItemLabel)\r\n return menuItemContainer\r\n }\r\n\r\n createProfilesDropDownSelectItem () {\r\n return new Promise((resolve, reject) => {\r\n this.profilesSingleton.getProfiles().then((profiles) => {\r\n let select = document.createElement('select')\r\n select.setAttribute('id', 'profiles-dropdown')\r\n select.classList.add('atom-xterm-profile-menu-item-select')\r\n let option = document.createElement('option')\r\n let text = document.createTextNode('')\r\n option.setAttribute('value', text)\r\n option.appendChild(text)\r\n select.appendChild(option)\r\n for (let profile in profiles) {\r\n option = document.createElement('option')\r\n text = document.createTextNode(profile)\r\n option.setAttribute('value', text.textContent)\r\n option.appendChild(text)\r\n select.appendChild(option)\r\n }\r\n select.addEventListener('change', (event) => {\r\n let profile = this.profilesSingleton.getBaseProfile()\r\n if (!event.target.value) {\r\n this.setNewMenuSettings(profile, true)\r\n } else {\r\n this.profilesSingleton.getProfile(event.target.value).then((profile) => {\r\n this.setNewMenuSettings(profile)\r\n })\r\n }\r\n })\r\n resolve(select)\r\n })\r\n })\r\n }\r\n\r\n createProfilesDropDown () {\r\n let menuItemContainer = this.createMenuItemContainer(\r\n 'profiles-selection',\r\n 'Profiles',\r\n 'Available profiles'\r\n )\r\n return new Promise((resolve, reject) => {\r\n this.createProfilesDropDownSelectItem().then((select) => {\r\n menuItemContainer.appendChild(select)\r\n resolve(menuItemContainer)\r\n })\r\n })\r\n }\r\n\r\n createProfileMenuButtons () {\r\n let buttonsContainer = document.createElement('div')\r\n buttonsContainer.classList.add('atom-xterm-profile-menu-buttons-div')\r\n let button = this.createButton()\r\n button.appendChild(document.createTextNode('Load Settings'))\r\n button.addEventListener('click', (event) => {\r\n this.loadProfile()\r\n })\r\n buttonsContainer.appendChild(button)\r\n button = this.createButton()\r\n button.appendChild(document.createTextNode('Save Settings'))\r\n button.addEventListener('click', (event) => {\r\n this.saveProfile()\r\n })\r\n buttonsContainer.appendChild(button)\r\n button = this.createButton()\r\n button.appendChild(document.createTextNode('Delete Settings'))\r\n button.addEventListener('click', (event) => {\r\n this.deleteProfile()\r\n })\r\n buttonsContainer.appendChild(button)\r\n button = this.createButton()\r\n button.appendChild(document.createTextNode('Restart'))\r\n button.addEventListener('click', (event) => {\r\n this.restartTerminal()\r\n })\r\n buttonsContainer.appendChild(button)\r\n button = this.createButton()\r\n button.appendChild(document.createTextNode('Hide Menu'))\r\n button.addEventListener('click', (event) => {\r\n this.hideProfileMenu()\r\n })\r\n buttonsContainer.appendChild(button)\r\n return buttonsContainer\r\n }\r\n\r\n createButton () {\r\n let button = document.createElement('button')\r\n button.classList.add('atom-xterm-profile-menu-button')\r\n return button\r\n }\r\n\r\n createTextbox (id, labelTitle, labelDescription, defaultValue, initialValue) {\r\n let menuItemContainer = this.createMenuItemContainer(\r\n id,\r\n labelTitle,\r\n labelDescription\r\n )\r\n let textbox = new TextEditor({\r\n mini: true,\r\n placeholderText: defaultValue\r\n })\r\n if (initialValue) {\r\n if (initialValue.constructor === Array || initialValue.constructor === Object) {\r\n textbox.setText(JSON.stringify(initialValue))\r\n } else {\r\n textbox.setText(initialValue)\r\n }\r\n }\r\n menuItemContainer.appendChild(textbox.getElement())\r\n return menuItemContainer\r\n }\r\n\r\n createCheckbox (id, labelTitle, labelDescription, defaultValue, initialValue) {\r\n let menuItemContainer = document.createElement('div')\r\n menuItemContainer.classList.add('atom-xterm-profile-menu-item')\r\n menuItemContainer.setAttribute('id', id)\r\n let menuItemLabel = document.createElement('label')\r\n menuItemLabel.classList.add('atom-xterm-profile-menu-item-label')\r\n menuItemLabel.classList.add('atom-xterm-profile-menu-item-label-checkbox')\r\n let checkbox = document.createElement('input')\r\n checkbox.setAttribute('type', 'checkbox')\r\n checkbox.classList.add('atom-xterm-profile-menu-item-checkbox')\r\n checkbox.checked = defaultValue\r\n if (initialValue !== undefined) {\r\n checkbox.checked = initialValue\r\n }\r\n menuItemLabel.appendChild(checkbox)\r\n let titleDiv = document.createElement('div')\r\n titleDiv.classList.add('atom-xterm-profile-menu-item-title')\r\n titleDiv.appendChild(document.createTextNode(labelTitle))\r\n menuItemLabel.appendChild(titleDiv)\r\n menuItemContainer.appendChild(menuItemLabel)\r\n let descriptionDiv = document.createElement('div')\r\n descriptionDiv.classList.add('atom-xterm-profile-menu-item-description')\r\n descriptionDiv.classList.add('atom-xterm-profile-menu-item-description-checkbox')\r\n descriptionDiv.appendChild(document.createTextNode(labelDescription))\r\n menuItemContainer.appendChild(descriptionDiv)\r\n return menuItemContainer\r\n }\r\n\r\n isVisible () {\r\n let style = window.getComputedStyle(this, null)\r\n return (style.visibility === 'visible')\r\n }\r\n\r\n hideProfileMenu () {\r\n this.style.visibility = 'hidden'\r\n let e = this.model.getAtomXtermModelElement()\r\n e.showTerminal()\r\n e.focusOnTerminal()\r\n }\r\n\r\n showProfileMenu () {\r\n this.model.getAtomXtermModelElement().hideTerminal()\r\n this.style.visibility = 'visible'\r\n }\r\n\r\n toggleProfileMenu () {\r\n if (!this.isVisible()) {\r\n this.showProfileMenu()\r\n } else {\r\n this.hideProfileMenu()\r\n }\r\n }\r\n\r\n getNewProfileAndChanges () {\r\n let newProfile = this.getProfileMenuSettings()\r\n let profileChanges = this.profilesSingleton.diffProfiles(\r\n this.model.getAtomXtermModel().getProfile(),\r\n newProfile\r\n )\r\n return {\r\n newProfile: newProfile,\r\n profileChanges: profileChanges\r\n }\r\n }\r\n\r\n loadProfile () {\r\n let newProfileAndChanges = this.getNewProfileAndChanges()\r\n this.applyProfileChanges(newProfileAndChanges.profileChanges)\r\n }\r\n\r\n saveProfile () {\r\n // Get the current profile settings before entering the promise.\r\n let newProfileAndChanges = this.getNewProfileAndChanges()\r\n this.promptForNewProfileName(\r\n newProfileAndChanges.newProfile,\r\n newProfileAndChanges.profileChanges\r\n )\r\n }\r\n\r\n deleteProfile () {\r\n let e = this.mainDiv.querySelector('#profiles-dropdown')\r\n let profileName = e.options[e.selectedIndex].text\r\n if (!profileName) {\r\n atom.notifications.addWarning('Profile must be selected in order to delete it.')\r\n return\r\n }\r\n this.promptDelete(profileName)\r\n }\r\n\r\n promptDelete (newProfile) {\r\n return new Promise((resolve, reject) => {\r\n this.deleteProfileModel.promptDelete(newProfile)\r\n })\r\n }\r\n\r\n promptForNewProfileName (newProfile, profileChanges) {\r\n return new Promise((resolve, reject) => {\r\n this.saveProfileModel.promptForNewProfileName(newProfile, profileChanges)\r\n })\r\n }\r\n\r\n convertNullToEmptyString (value) {\r\n if (value === null) {\r\n return ''\r\n }\r\n return JSON.stringify(value)\r\n }\r\n\r\n setNewMenuSettings (profile, clear = false) {\r\n let newTextList = []\r\n let value\r\n newTextList.push(\r\n // Command\r\n {\r\n 'id': 'command-textbox',\r\n 'value': profile.command\r\n }\r\n )\r\n value = JSON.stringify(profile.args)\r\n newTextList.push(\r\n // Arguments\r\n {\r\n 'id': 'args-textbox',\r\n 'value': value\r\n }\r\n )\r\n newTextList.push(\r\n // Terminal type\r\n {\r\n 'id': 'name-textbox',\r\n 'value': profile.name\r\n }\r\n )\r\n newTextList.push(\r\n // Current working directory\r\n {\r\n 'id': 'cwd-textbox',\r\n 'value': profile.cwd\r\n }\r\n )\r\n value = this.convertNullToEmptyString(profile.env)\r\n newTextList.push(\r\n // Environment\r\n {\r\n 'id': 'env-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = JSON.stringify(profile.setEnv)\r\n newTextList.push(\r\n // Environment overrides\r\n {\r\n 'id': 'setenv-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = JSON.stringify(profile.deleteEnv)\r\n newTextList.push(\r\n // Environment deletions\r\n {\r\n 'id': 'deleteenv-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = this.convertNullToEmptyString(profile.encoding)\r\n newTextList.push(\r\n // Encoding\r\n {\r\n 'id': 'encoding-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = profile.fontSize\r\n newTextList.push(\r\n // Font size\r\n {\r\n 'id': 'fontsize-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = profile.title || ''\r\n newTextList.push(\r\n // Title\r\n {\r\n 'id': 'title-textbox',\r\n 'value': value\r\n }\r\n )\r\n value = JSON.stringify(profile.xtermOptions)\r\n newTextList.push(\r\n // xterm.js Terminal options\r\n {\r\n 'id': 'xtermoptions-textbox',\r\n 'value': value\r\n }\r\n )\r\n for (let newText of newTextList) {\r\n let selector = '#' + newText.id + ' > atom-text-editor'\r\n let model = this.querySelector(selector).getModel()\r\n if (!clear) {\r\n model.setText(newText.value)\r\n } else {\r\n model.setText('')\r\n }\r\n }\r\n\r\n let newCheckboxList = [\r\n // Leave open after terminal exit\r\n {\r\n 'id': 'leaveopenafterexit-checkbox',\r\n 'value': profile.leaveOpenAfterExit\r\n },\r\n // Relaunch terminal on startup\r\n {\r\n 'id': 'relaunchterminalonstartup-checkbox',\r\n 'value': profile.relaunchTerminalOnStartup\r\n },\r\n // Prompt to startup terminal command\r\n {\r\n 'id': 'prompttostartup-checkbox',\r\n 'value': profile.promptToStartup\r\n }\r\n ]\r\n for (let newCheckbox of newCheckboxList) {\r\n let selector = '#' + newCheckbox.id + ' input'\r\n let checkbox = this.querySelector(selector)\r\n checkbox.checked = newCheckbox.value\r\n }\r\n }\r\n}\r\n\r\nconst AtomXtermProfileMenuElement = document.registerElement('atom-xterm-profile', {\r\n prototype: AtomXtermProfileMenuElementImpl.prototype\r\n})\r\n\r\nexport {\r\n AtomXtermProfileMenuElement\r\n}\r\n","'use strict'\n// This is adapted from https://github.com/normalize/mz\n// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors\nconst u = require('universalify').fromCallback\nconst fs = require('graceful-fs')\n\nconst api = [\n 'access',\n 'appendFile',\n 'chmod',\n 'chown',\n 'close',\n 'copyFile',\n 'fchmod',\n 'fchown',\n 'fdatasync',\n 'fstat',\n 'fsync',\n 'ftruncate',\n 'futimes',\n 'lchown',\n 'lchmod',\n 'link',\n 'lstat',\n 'mkdir',\n 'mkdtemp',\n 'open',\n 'readFile',\n 'readdir',\n 'readlink',\n 'realpath',\n 'rename',\n 'rmdir',\n 'stat',\n 'symlink',\n 'truncate',\n 'unlink',\n 'utimes',\n 'writeFile'\n].filter(key => {\n // Some commands are not available on some systems. Ex:\n // fs.copyFile was added in Node.js v8.5.0\n // fs.mkdtemp was added in Node.js v5.10.0\n // fs.lchown is not available on at least some Linux\n return typeof fs[key] === 'function'\n})\n\n// Export all keys:\nObject.keys(fs).forEach(key => {\n if (key === 'promises') {\n // fs.promises is a getter property that triggers ExperimentalWarning\n // Don't re-export it here, the getter is defined in \"lib/index.js\"\n return\n }\n exports[key] = fs[key]\n})\n\n// Universalify async methods:\napi.forEach(method => {\n exports[method] = u(fs[method])\n})\n\n// We differ from mz/fs in that we still ship the old, broken, fs.exists()\n// since we are a drop-in replacement for the native module\nexports.exists = function (filename, callback) {\n if (typeof callback === 'function') {\n return fs.exists(filename, callback)\n }\n return new Promise(resolve => {\n return fs.exists(filename, resolve)\n })\n}\n\n// fs.read() & fs.write need special treatment due to multiple callback args\n\nexports.read = function (fd, buffer, offset, length, position, callback) {\n if (typeof callback === 'function') {\n return fs.read(fd, buffer, offset, length, position, callback)\n }\n return new Promise((resolve, reject) => {\n fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => {\n if (err) return reject(err)\n resolve({ bytesRead, buffer })\n })\n })\n}\n\n// Function signature can be\n// fs.write(fd, buffer[, offset[, length[, position]]], callback)\n// OR\n// fs.write(fd, string[, position[, encoding]], callback)\n// We need to handle both cases, so we use ...args\nexports.write = function (fd, buffer, ...args) {\n if (typeof args[args.length - 1] === 'function') {\n return fs.write(fd, buffer, ...args)\n }\n\n return new Promise((resolve, reject) => {\n fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => {\n if (err) return reject(err)\n resolve({ bytesWritten, buffer })\n })\n })\n}\n","'use strict'\n\nvar fs = require('fs')\n\nmodule.exports = clone(fs)\n\nfunction clone (obj) {\n if (obj === null || typeof obj !== 'object')\n return obj\n\n if (obj instanceof Object)\n var copy = { __proto__: obj.__proto__ }\n else\n var copy = Object.create(null)\n\n Object.getOwnPropertyNames(obj).forEach(function (key) {\n Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))\n })\n\n return copy\n}\n","module.exports = require(\"assert\");","'use strict'\n\nmodule.exports = {\n copySync: require('./copy-sync')\n}\n","'use strict'\n\nconst path = require('path')\n\n// get drive on windows\nfunction getRootPath (p) {\n p = path.normalize(path.resolve(p)).split(path.sep)\n if (p.length > 0) return p[0]\n return null\n}\n\n// http://stackoverflow.com/a/62888/10333 contains more accurate\n// TODO: expand to include the rest\nconst INVALID_PATH_CHARS = /[<>:\"|?*]/\n\nfunction invalidWin32Path (p) {\n const rp = getRootPath(p)\n p = p.replace(rp, '')\n return INVALID_PATH_CHARS.test(p)\n}\n\nmodule.exports = {\n getRootPath,\n invalidWin32Path\n}\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst os = require('os')\nconst path = require('path')\n\n// HFS, ext{2,3}, FAT do not, Node.js v0.10 does not\nfunction hasMillisResSync () {\n let tmpfile = path.join('millis-test-sync' + Date.now().toString() + Math.random().toString().slice(2))\n tmpfile = path.join(os.tmpdir(), tmpfile)\n\n // 550 millis past UNIX epoch\n const d = new Date(1435410243862)\n fs.writeFileSync(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141')\n const fd = fs.openSync(tmpfile, 'r+')\n fs.futimesSync(fd, d, d)\n fs.closeSync(fd)\n return fs.statSync(tmpfile).mtime > 1435410243000\n}\n\nfunction hasMillisRes (callback) {\n let tmpfile = path.join('millis-test' + Date.now().toString() + Math.random().toString().slice(2))\n tmpfile = path.join(os.tmpdir(), tmpfile)\n\n // 550 millis past UNIX epoch\n const d = new Date(1435410243862)\n fs.writeFile(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141', err => {\n if (err) return callback(err)\n fs.open(tmpfile, 'r+', (err, fd) => {\n if (err) return callback(err)\n fs.futimes(fd, d, d, err => {\n if (err) return callback(err)\n fs.close(fd, err => {\n if (err) return callback(err)\n fs.stat(tmpfile, (err, stats) => {\n if (err) return callback(err)\n callback(null, stats.mtime > 1435410243000)\n })\n })\n })\n })\n })\n}\n\nfunction timeRemoveMillis (timestamp) {\n if (typeof timestamp === 'number') {\n return Math.floor(timestamp / 1000) * 1000\n } else if (timestamp instanceof Date) {\n return new Date(Math.floor(timestamp.getTime() / 1000) * 1000)\n } else {\n throw new Error('fs-extra: timeRemoveMillis() unknown parameter type')\n }\n}\n\nfunction utimesMillis (path, atime, mtime, callback) {\n // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)\n fs.open(path, 'r+', (err, fd) => {\n if (err) return callback(err)\n fs.futimes(fd, atime, mtime, futimesErr => {\n fs.close(fd, closeErr => {\n if (callback) callback(futimesErr || closeErr)\n })\n })\n })\n}\n\nfunction utimesMillisSync (path, atime, mtime) {\n const fd = fs.openSync(path, 'r+')\n fs.futimesSync(fd, atime, mtime)\n return fs.closeSync(fd)\n}\n\nmodule.exports = {\n hasMillisRes,\n hasMillisResSync,\n timeRemoveMillis,\n utimesMillis,\n utimesMillisSync\n}\n","'use strict'\n/* eslint-disable node/no-deprecated-api */\nmodule.exports = function (size) {\n if (typeof Buffer.allocUnsafe === 'function') {\n try {\n return Buffer.allocUnsafe(size)\n } catch (e) {\n return new Buffer(size)\n }\n }\n return new Buffer(size)\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nmodule.exports = {\n copy: u(require('./copy'))\n}\n","\"use strict\";\n\nfunction _(message, opts) {\n return `${opts && opts.context ? opts.context : \"Value\"} ${message}.`;\n}\n\nfunction type(V) {\n if (V === null) {\n return \"Null\";\n }\n switch (typeof V) {\n case \"undefined\":\n return \"Undefined\";\n case \"boolean\":\n return \"Boolean\";\n case \"number\":\n return \"Number\";\n case \"string\":\n return \"String\";\n case \"symbol\":\n return \"Symbol\";\n case \"object\":\n // Falls through\n case \"function\":\n // Falls through\n default:\n // Per ES spec, typeof returns an implemention-defined value that is not any of the existing ones for\n // uncallable non-standard exotic objects. Yet Type() which the Web IDL spec depends on returns Object for\n // such cases. So treat the default case as an object.\n return \"Object\";\n }\n}\n\n// Round x to the nearest integer, choosing the even integer if it lies halfway between two.\nfunction evenRound(x) {\n // There are four cases for numbers with fractional part being .5:\n //\n // case | x | floor(x) | round(x) | expected | x <> 0 | x % 1 | x & 1 | example\n // 1 | 2n + 0.5 | 2n | 2n + 1 | 2n | > | 0.5 | 0 | 0.5 -> 0\n // 2 | 2n + 1.5 | 2n + 1 | 2n + 2 | 2n + 2 | > | 0.5 | 1 | 1.5 -> 2\n // 3 | -2n - 0.5 | -2n - 1 | -2n | -2n | < | -0.5 | 0 | -0.5 -> 0\n // 4 | -2n - 1.5 | -2n - 2 | -2n - 1 | -2n - 2 | < | -0.5 | 1 | -1.5 -> -2\n // (where n is a non-negative integer)\n //\n // Branch here for cases 1 and 4\n if ((x > 0 && (x % 1) === +0.5 && (x & 1) === 0) ||\n (x < 0 && (x % 1) === -0.5 && (x & 1) === 1)) {\n return censorNegativeZero(Math.floor(x));\n }\n\n return censorNegativeZero(Math.round(x));\n}\n\nfunction integerPart(n) {\n return censorNegativeZero(Math.trunc(n));\n}\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction modulo(x, y) {\n // https://tc39.github.io/ecma262/#eqn-modulo\n // Note that http://stackoverflow.com/a/4467559/3191 does NOT work for large modulos\n const signMightNotMatch = x % y;\n if (sign(y) !== sign(signMightNotMatch)) {\n return signMightNotMatch + y;\n }\n return signMightNotMatch;\n}\n\nfunction censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n}\n\nfunction createIntegerConversion(bitLength, typeOpts) {\n const isSigned = !typeOpts.unsigned;\n\n let lowerBound;\n let upperBound;\n if (bitLength === 64) {\n upperBound = Math.pow(2, 53) - 1;\n lowerBound = !isSigned ? 0 : -Math.pow(2, 53) + 1;\n } else if (!isSigned) {\n lowerBound = 0;\n upperBound = Math.pow(2, bitLength) - 1;\n } else {\n lowerBound = -Math.pow(2, bitLength - 1);\n upperBound = Math.pow(2, bitLength - 1) - 1;\n }\n\n const twoToTheBitLength = Math.pow(2, bitLength);\n const twoToOneLessThanTheBitLength = Math.pow(2, bitLength - 1);\n\n return (V, opts) => {\n if (opts === undefined) {\n opts = {};\n }\n\n let x = +V;\n x = censorNegativeZero(x); // Spec discussion ongoing: https://github.com/heycam/webidl/issues/306\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite number\", opts));\n }\n\n x = integerPart(x);\n\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(_(\n `is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`, opts));\n }\n\n return x;\n }\n\n if (!Number.isNaN(x) && opts.clamp) {\n x = Math.min(Math.max(x, lowerBound), upperBound);\n x = evenRound(x);\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n x = integerPart(x);\n\n // Math.pow(2, 64) is not accurately representable in JavaScript, so try to avoid these per-spec operations if\n // possible. Hopefully it's an optimization for the non-64-bitLength cases too.\n if (x >= lowerBound && x <= upperBound) {\n return x;\n }\n\n // These will not work great for bitLength of 64, but oh well. See the README for more details.\n x = modulo(x, twoToTheBitLength);\n if (isSigned && x >= twoToOneLessThanTheBitLength) {\n return x - twoToTheBitLength;\n }\n return x;\n };\n}\n\nexports.any = V => {\n return V;\n};\n\nexports.void = function () {\n return undefined;\n};\n\nexports.boolean = function (val) {\n return !!val;\n};\n\nexports.byte = createIntegerConversion(8, { unsigned: false });\nexports.octet = createIntegerConversion(8, { unsigned: true });\n\nexports.short = createIntegerConversion(16, { unsigned: false });\nexports[\"unsigned short\"] = createIntegerConversion(16, { unsigned: true });\n\nexports.long = createIntegerConversion(32, { unsigned: false });\nexports[\"unsigned long\"] = createIntegerConversion(32, { unsigned: true });\n\nexports[\"long long\"] = createIntegerConversion(64, { unsigned: false });\nexports[\"unsigned long long\"] = createIntegerConversion(64, { unsigned: true });\n\nexports.double = (V, opts) => {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite floating-point value\", opts));\n }\n\n return x;\n};\n\nexports[\"unrestricted double\"] = V => {\n const x = +V;\n\n return x;\n};\n\nexports.float = (V, opts) => {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(_(\"is not a finite floating-point value\", opts));\n }\n\n if (Object.is(x, -0)) {\n return x;\n }\n\n const y = Math.fround(x);\n\n if (!Number.isFinite(y)) {\n throw new TypeError(_(\"is outside the range of a single-precision floating-point value\", opts));\n }\n\n return y;\n};\n\nexports[\"unrestricted float\"] = V => {\n const x = +V;\n\n if (isNaN(x)) {\n return x;\n }\n\n if (Object.is(x, -0)) {\n return x;\n }\n\n return Math.fround(x);\n};\n\nexports.DOMString = function (V, opts) {\n if (opts === undefined) {\n opts = {};\n }\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n if (typeof V === \"symbol\") {\n throw new TypeError(_(\"is a symbol, which cannot be converted to a string\", opts));\n }\n\n return String(V);\n};\n\nexports.ByteString = (V, opts) => {\n const x = exports.DOMString(V, opts);\n let c;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(_(\"is not a valid ByteString\", opts));\n }\n }\n\n return x;\n};\n\nexports.USVString = (V, opts) => {\n const S = exports.DOMString(V, opts);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + ((2 << 9) * a) + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n\n return U.join(\"\");\n};\n\nexports.object = (V, opts) => {\n if (type(V) !== \"Object\") {\n throw new TypeError(_(\"is not an object\", opts));\n }\n\n return V;\n};\n\n// Not exported, but used in Function and VoidFunction.\n\n// Neither Function nor VoidFunction is defined with [TreatNonObjectAsNull], so\n// handling for that is omitted.\nfunction convertCallbackFunction(V, opts) {\n if (typeof V !== \"function\") {\n throw new TypeError(_(\"is not a function\", opts));\n }\n return V;\n}\n\n[\n Error,\n ArrayBuffer, // The IsDetachedBuffer abstract operation is not exposed in JS\n DataView, Int8Array, Int16Array, Int32Array, Uint8Array,\n Uint16Array, Uint32Array, Uint8ClampedArray, Float32Array, Float64Array\n].forEach(func => {\n const name = func.name;\n const article = /^[AEIOU]/.test(name) ? \"an\" : \"a\";\n exports[name] = (V, opts) => {\n if (!(V instanceof func)) {\n throw new TypeError(_(`is not ${article} ${name} object`, opts));\n }\n\n return V;\n };\n});\n\n// Common definitions\n\nexports.ArrayBufferView = (V, opts) => {\n if (!ArrayBuffer.isView(V)) {\n throw new TypeError(_(\"is not a view on an ArrayBuffer object\", opts));\n }\n\n return V;\n};\n\nexports.BufferSource = (V, opts) => {\n if (!(ArrayBuffer.isView(V) || V instanceof ArrayBuffer)) {\n throw new TypeError(_(\"is not an ArrayBuffer object or a view on one\", opts));\n }\n\n return V;\n};\n\nexports.DOMTimeStamp = exports[\"unsigned long long\"];\n\nexports.Function = convertCallbackFunction;\n\nexports.VoidFunction = convertCallbackFunction;\n","\"use strict\";\n\n// Returns \"Type(value) is Object\" in ES terminology.\nfunction isObject(value) {\n return typeof value === \"object\" && value !== null || typeof value === \"function\";\n}\n\nfunction getReferenceToBytes(bufferSource) {\n // Node.js' Buffer does not allow subclassing for now, so we can get away with a prototype object check for perf.\n if (Object.getPrototypeOf(bufferSource) === Buffer.prototype) {\n return bufferSource;\n }\n if (bufferSource instanceof ArrayBuffer) {\n return Buffer.from(bufferSource);\n }\n return Buffer.from(bufferSource.buffer, bufferSource.byteOffset, bufferSource.byteLength);\n}\n\nfunction getCopyToBytes(bufferSource) {\n return Buffer.from(getReferenceToBytes(bufferSource));\n}\n\nfunction mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n if (keys[i] in target) {\n continue;\n }\n\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n}\n\nconst wrapperSymbol = Symbol(\"wrapper\");\nconst implSymbol = Symbol(\"impl\");\nconst sameObjectCaches = Symbol(\"SameObject caches\");\n\nfunction getSameObject(wrapper, prop, creator) {\n if (!wrapper[sameObjectCaches]) {\n wrapper[sameObjectCaches] = Object.create(null);\n }\n\n if (prop in wrapper[sameObjectCaches]) {\n return wrapper[sameObjectCaches][prop];\n }\n\n wrapper[sameObjectCaches][prop] = creator();\n return wrapper[sameObjectCaches][prop];\n}\n\nfunction wrapperForImpl(impl) {\n return impl ? impl[wrapperSymbol] : null;\n}\n\nfunction implForWrapper(wrapper) {\n return wrapper ? wrapper[implSymbol] : null;\n}\n\nfunction tryWrapperForImpl(impl) {\n const wrapper = wrapperForImpl(impl);\n return wrapper ? wrapper : impl;\n}\n\nfunction tryImplForWrapper(wrapper) {\n const impl = implForWrapper(wrapper);\n return impl ? impl : wrapper;\n}\n\nconst iterInternalSymbol = Symbol(\"internal\");\nconst IteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));\n\nfunction isArrayIndexPropName(P) {\n if (typeof P !== \"string\") {\n return false;\n }\n const i = P >>> 0;\n if (i === Math.pow(2, 32) - 1) {\n return false;\n }\n const s = `${i}`;\n if (P !== s) {\n return false;\n }\n return true;\n}\n\nconst supportsPropertyIndex = Symbol(\"supports property index\");\nconst supportedPropertyIndices = Symbol(\"supported property indices\");\nconst supportsPropertyName = Symbol(\"supports property name\");\nconst supportedPropertyNames = Symbol(\"supported property names\");\nconst indexedGet = Symbol(\"indexed property get\");\nconst indexedSetNew = Symbol(\"indexed property set new\");\nconst indexedSetExisting = Symbol(\"indexed property set existing\");\nconst namedGet = Symbol(\"named property get\");\nconst namedSetNew = Symbol(\"named property set new\");\nconst namedSetExisting = Symbol(\"named property set existing\");\nconst namedDelete = Symbol(\"named property delete\");\n\nmodule.exports = exports = {\n isObject,\n getReferenceToBytes,\n getCopyToBytes,\n mixin,\n wrapperSymbol,\n implSymbol,\n getSameObject,\n wrapperForImpl,\n implForWrapper,\n tryWrapperForImpl,\n tryImplForWrapper,\n iterInternalSymbol,\n IteratorPrototype,\n isArrayIndexPropName,\n supportsPropertyIndex,\n supportedPropertyIndices,\n supportsPropertyName,\n supportedPropertyNames,\n indexedGet,\n indexedSetNew,\n indexedSetExisting,\n namedGet,\n namedSetNew,\n namedSetExisting,\n namedDelete\n};\n","module.exports = require(\"punycode\");","\"use strict\";\n\nfunction isASCIIDigit(c) {\n return c >= 0x30 && c <= 0x39;\n}\n\nfunction isASCIIAlpha(c) {\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\n}\n\nfunction isASCIIAlphanumeric(c) {\n return isASCIIAlpha(c) || isASCIIDigit(c);\n}\n\nfunction isASCIIHex(c) {\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\n}\n\nmodule.exports = {\n isASCIIDigit,\n isASCIIAlpha,\n isASCIIAlphanumeric,\n isASCIIHex\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\n\nconst impl = utils.implSymbol;\n\nconst IteratorPrototype = Object.create(utils.IteratorPrototype, {\n next: {\n value: function next() {\n const internal = this[utils.iterInternalSymbol];\n const { target, kind, index } = internal;\n const values = Array.from(target[impl]);\n const len = values.length;\n if (index >= len) {\n return { value: undefined, done: true };\n }\n\n const pair = values[index];\n internal.index = index + 1;\n const [key, value] = pair.map(utils.tryWrapperForImpl);\n\n let result;\n switch (kind) {\n case \"key\":\n result = key;\n break;\n case \"value\":\n result = value;\n break;\n case \"key+value\":\n result = [key, value];\n break;\n }\n return { value: result, done: false };\n },\n writable: true,\n enumerable: true,\n configurable: true\n },\n [Symbol.toStringTag]: {\n value: \"URLSearchParamsIterator\",\n writable: false,\n enumerable: false,\n configurable: true\n }\n});\n\nfunction URLSearchParams() {\n const args = [];\n for (let i = 0; i < arguments.length && i < 1; ++i) {\n args[i] = arguments[i];\n }\n\n if (args[0] !== undefined) {\n if (utils.isObject(args[0])) {\n if (args[0][Symbol.iterator] !== undefined) {\n if (!utils.isObject(args[0])) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1\" + \" sequence\" + \" is not an iterable object.\"\n );\n } else {\n const V = [];\n const tmp = args[0];\n for (let nextItem of tmp) {\n if (!utils.isObject(nextItem)) {\n throw new TypeError(\n \"Failed to construct 'URLSearchParams': parameter 1\" +\n \" sequence\" +\n \"'s element\" +\n \" is not an iterable object.\"\n );\n } else {\n const V = [];\n const tmp = nextItem;\n for (let nextItem of tmp) {\n nextItem = conversions[\"USVString\"](nextItem, {\n context:\n \"Failed to construct 'URLSearchParams': parameter 1\" + \" sequence\" + \"'s element\" + \"'s element\"\n });\n\n V.push(nextItem);\n }\n nextItem = V;\n }\n\n V.push(nextItem);\n }\n args[0] = V;\n }\n } else {\n if (!utils.isObject(args[0])) {\n throw new TypeError(\"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \" is not an object.\");\n } else {\n const result = Object.create(null);\n for (const key of Reflect.ownKeys(args[0])) {\n const desc = Object.getOwnPropertyDescriptor(args[0], key);\n if (desc && desc.enumerable) {\n let typedKey = key;\n let typedValue = args[0][key];\n\n typedKey = conversions[\"USVString\"](typedKey, {\n context: \"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \"'s key\"\n });\n\n typedValue = conversions[\"USVString\"](typedValue, {\n context: \"Failed to construct 'URLSearchParams': parameter 1\" + \" record\" + \"'s value\"\n });\n\n result[typedKey] = typedValue;\n }\n }\n args[0] = result;\n }\n }\n } else {\n args[0] = conversions[\"USVString\"](args[0], { context: \"Failed to construct 'URLSearchParams': parameter 1\" });\n }\n } else {\n args[0] = \"\";\n }\n\n iface.setup(this, args);\n}\n\nObject.defineProperty(URLSearchParams, \"prototype\", {\n value: URLSearchParams.prototype,\n writable: false,\n enumerable: false,\n configurable: false\n});\n\nObject.defineProperty(URLSearchParams.prototype, Symbol.iterator, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: function entries() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"key+value\");\n }\n});\nURLSearchParams.prototype.forEach = function forEach(callback) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'URLSearchParams': 1 argument required, \" + \"but only 0 present.\"\n );\n }\n if (typeof callback !== \"function\") {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'URLSearchParams': The callback provided \" + \"as parameter 1 is not a function.\"\n );\n }\n const thisArg = arguments[1];\n let pairs = Array.from(this[impl]);\n let i = 0;\n while (i < pairs.length) {\n const [key, value] = pairs[i].map(utils.tryWrapperForImpl);\n callback.call(thisArg, value, key, this);\n pairs = Array.from(this[impl]);\n i++;\n }\n};\nURLSearchParams.prototype.append = function append(name, value) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n \"Failed to execute 'append' on 'URLSearchParams': 2 \" +\n \"arguments required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], {\n context: \"Failed to execute 'append' on 'URLSearchParams': parameter 1\"\n });\n\n args[1] = conversions[\"USVString\"](args[1], {\n context: \"Failed to execute 'append' on 'URLSearchParams': parameter 2\"\n });\n\n return this[impl].append(...args);\n};\n\nURLSearchParams.prototype.delete = function _(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'delete' on 'URLSearchParams': 1 \" +\n \"argument required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 1; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], {\n context: \"Failed to execute 'delete' on 'URLSearchParams': parameter 1\"\n });\n\n return this[impl].delete(...args);\n};\n\nURLSearchParams.prototype.get = function get(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'get' on 'URLSearchParams': 1 \" +\n \"argument required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 1; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], { context: \"Failed to execute 'get' on 'URLSearchParams': parameter 1\" });\n\n return this[impl].get(...args);\n};\n\nURLSearchParams.prototype.getAll = function getAll(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'getAll' on 'URLSearchParams': 1 \" +\n \"argument required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 1; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], {\n context: \"Failed to execute 'getAll' on 'URLSearchParams': parameter 1\"\n });\n\n return utils.tryWrapperForImpl(this[impl].getAll(...args));\n};\n\nURLSearchParams.prototype.has = function has(name) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to execute 'has' on 'URLSearchParams': 1 \" +\n \"argument required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 1; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], { context: \"Failed to execute 'has' on 'URLSearchParams': parameter 1\" });\n\n return this[impl].has(...args);\n};\n\nURLSearchParams.prototype.set = function set(name, value) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n \"Failed to execute 'set' on 'URLSearchParams': 2 \" +\n \"arguments required, but only \" +\n arguments.length +\n \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], { context: \"Failed to execute 'set' on 'URLSearchParams': parameter 1\" });\n\n args[1] = conversions[\"USVString\"](args[1], { context: \"Failed to execute 'set' on 'URLSearchParams': parameter 2\" });\n\n return this[impl].set(...args);\n};\n\nURLSearchParams.prototype.sort = function sort() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].sort();\n};\n\nURLSearchParams.prototype.toString = function toString() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].toString();\n};\n\nURLSearchParams.prototype.entries = URLSearchParams.prototype[Symbol.iterator];\n\nURLSearchParams.prototype.keys = function keys() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"key\");\n};\n\nURLSearchParams.prototype.values = function values() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return module.exports.createDefaultIterator(this, \"value\");\n};\n\nObject.defineProperty(URLSearchParams.prototype, Symbol.toStringTag, {\n value: \"URLSearchParams\",\n writable: false,\n enumerable: false,\n configurable: true\n});\n\nconst iface = {\n mixedInto: [],\n is(obj) {\n if (obj) {\n if (obj[impl] instanceof Impl.implementation) {\n return true;\n }\n for (let i = 0; i < module.exports.mixedInto.length; ++i) {\n if (obj instanceof module.exports.mixedInto[i]) {\n return true;\n }\n }\n }\n return false;\n },\n isImpl(obj) {\n if (obj) {\n if (obj instanceof Impl.implementation) {\n return true;\n }\n\n const wrapper = utils.wrapperForImpl(obj);\n for (let i = 0; i < module.exports.mixedInto.length; ++i) {\n if (wrapper instanceof module.exports.mixedInto[i]) {\n return true;\n }\n }\n }\n return false;\n },\n convert(obj, { context = \"The provided value\" } = {}) {\n if (module.exports.is(obj)) {\n return utils.implForWrapper(obj);\n }\n throw new TypeError(`${context} is not of type 'URLSearchParams'.`);\n },\n\n createDefaultIterator(target, kind) {\n const iterator = Object.create(IteratorPrototype);\n Object.defineProperty(iterator, utils.iterInternalSymbol, {\n value: { target, kind, index: 0 },\n writable: false,\n enumerable: false,\n configurable: true\n });\n return iterator;\n },\n\n create(constructorArgs, privateData) {\n let obj = Object.create(URLSearchParams.prototype);\n obj = this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n createImpl(constructorArgs, privateData) {\n let obj = Object.create(URLSearchParams.prototype);\n obj = this.setup(obj, constructorArgs, privateData);\n return utils.implForWrapper(obj);\n },\n _internalSetup(obj) {},\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n\n privateData.wrapper = obj;\n\n this._internalSetup(obj);\n Object.defineProperty(obj, impl, {\n value: new Impl.implementation(constructorArgs, privateData),\n writable: false,\n enumerable: false,\n configurable: true\n });\n\n obj[impl][utils.wrapperSymbol] = obj;\n if (Impl.init) {\n Impl.init(obj[impl], privateData);\n }\n return obj;\n },\n interface: URLSearchParams,\n expose: {\n Window: { URLSearchParams },\n Worker: { URLSearchParams }\n }\n}; // iface\nmodule.exports = iface;\n\nconst Impl = require(\".//URLSearchParams-impl.js\");\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.utils);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _utils) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var addedDiff = function addedDiff(lhs, rhs) {\n\n if (lhs === rhs || !(0, _utils.isObject)(lhs) || !(0, _utils.isObject)(rhs)) return {};\n\n var l = (0, _utils.properObject)(lhs);\n var r = (0, _utils.properObject)(rhs);\n\n return Object.keys(r).reduce(function (acc, key) {\n if (l.hasOwnProperty(key)) {\n var difference = addedDiff(l[key], r[key]);\n\n if ((0, _utils.isObject)(difference) && (0, _utils.isEmpty)(difference)) return acc;\n\n return _extends({}, acc, _defineProperty({}, key, difference));\n }\n\n return _extends({}, acc, _defineProperty({}, key, r[key]));\n }, {});\n };\n\n exports.default = addedDiff;\n module.exports = exports['default'];\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.utils);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _utils) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var deletedDiff = function deletedDiff(lhs, rhs) {\n if (lhs === rhs || !(0, _utils.isObject)(lhs) || !(0, _utils.isObject)(rhs)) return {};\n\n var l = (0, _utils.properObject)(lhs);\n var r = (0, _utils.properObject)(rhs);\n\n return Object.keys(l).reduce(function (acc, key) {\n if (r.hasOwnProperty(key)) {\n var difference = deletedDiff(l[key], r[key]);\n\n if ((0, _utils.isObject)(difference) && (0, _utils.isEmpty)(difference)) return acc;\n\n return _extends({}, acc, _defineProperty({}, key, difference));\n }\n\n return _extends({}, acc, _defineProperty({}, key, undefined));\n }, {});\n };\n\n exports.default = deletedDiff;\n module.exports = exports['default'];\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.utils);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _utils) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var updatedDiff = function updatedDiff(lhs, rhs) {\n\n if (lhs === rhs) return {};\n\n if (!(0, _utils.isObject)(lhs) || !(0, _utils.isObject)(rhs)) return rhs;\n\n var l = (0, _utils.properObject)(lhs);\n var r = (0, _utils.properObject)(rhs);\n\n if ((0, _utils.isDate)(l) || (0, _utils.isDate)(r)) {\n if (l.valueOf() == r.valueOf()) return {};\n return r;\n }\n\n return Object.keys(r).reduce(function (acc, key) {\n\n if (l.hasOwnProperty(key)) {\n var difference = updatedDiff(l[key], r[key]);\n\n if ((0, _utils.isObject)(difference) && (0, _utils.isEmpty)(difference) && !(0, _utils.isDate)(difference)) return acc;\n\n return _extends({}, acc, _defineProperty({}, key, difference));\n }\n\n return acc;\n }, {});\n };\n\n exports.default = updatedDiff;\n module.exports = exports['default'];\n});","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\n\r\nclass AtomXtermDeleteProfileModel {\r\n constructor (atomXtermProfileMenuElement) {\r\n this.atomXtermProfileMenuElement = atomXtermProfileMenuElement\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n this.element = null\r\n this.panel = atom.workspace.addModalPanel({\r\n item: this,\r\n visible: false\r\n })\r\n }\r\n\r\n getTitle () {\r\n return 'atom-xterm Delete Profile Model'\r\n }\r\n\r\n getElement () {\r\n return this.element\r\n }\r\n\r\n setElement (element) {\r\n this.element = element\r\n }\r\n\r\n close () {\r\n if (!this.panel.isVisible()) {\r\n return\r\n }\r\n this.panel.hide()\r\n }\r\n\r\n promptDelete (profileName) {\r\n this.panel.show()\r\n let confirmHandler = (event) => {\r\n this.profilesSingleton.deleteProfile(profileName).then(() => {\r\n this.profilesSingleton.reloadProfiles()\r\n this.profilesSingleton.profilesLoadPromise.then(() => {\r\n this.close()\r\n })\r\n })\r\n }\r\n let cancelHandler = (event) => {\r\n this.close()\r\n }\r\n this.getElement().setNewPrompt(\r\n profileName,\r\n confirmHandler,\r\n cancelHandler\r\n )\r\n }\r\n}\r\n\r\nexport {\r\n AtomXtermDeleteProfileModel\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { TextEditor } from 'atom'\r\n\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\nimport { AtomXtermOverwriteProfileModel } from './atom-xterm-overwrite-profile-model'\r\nimport { currentItemIsAtomXtermModel } from './atom-xterm-model'\r\n\r\nclass AtomXtermSaveProfileModel {\r\n constructor (atomXtermProfileMenuElement) {\r\n this.atomXtermProfileMenuElement = atomXtermProfileMenuElement\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n this.element = null\r\n this.panel = atom.workspace.addModalPanel({\r\n item: this,\r\n visible: false\r\n })\r\n this.overwriteProfileModel = new AtomXtermOverwriteProfileModel(this)\r\n }\r\n\r\n getTitle () {\r\n return 'atom-xterm Save Profile Model'\r\n }\r\n\r\n getElement () {\r\n return this.element\r\n }\r\n\r\n setElement (element) {\r\n this.element = element\r\n }\r\n\r\n getTextbox () {\r\n return this.textbox\r\n }\r\n\r\n updateProfile (profileName, newProfile, profileChanges) {\r\n this.profilesSingleton.setProfile(profileName, newProfile).then(() => {\r\n this.profilesSingleton.reloadProfiles()\r\n this.profilesSingleton.profilesLoadPromise.then(() => {\r\n this.close()\r\n this.atomXtermProfileMenuElement.applyProfileChanges(profileChanges)\r\n })\r\n })\r\n }\r\n\r\n confirm (newProfile, profileChanges) {\r\n let profileName = this.textbox.getText()\r\n if (!profileName) {\r\n // Simply do nothing.\r\n return\r\n }\r\n this.profilesSingleton.isProfileExists(profileName).then((exists) => {\r\n if (exists) {\r\n this.close(false)\r\n this.overwriteProfileModel.promptOverwrite(profileName, newProfile, profileChanges)\r\n } else {\r\n this.updateProfile(profileName, newProfile, profileChanges)\r\n }\r\n })\r\n }\r\n\r\n close (focusMenuElement = true) {\r\n if (!this.panel.isVisible()) {\r\n return\r\n }\r\n this.textbox.setText('')\r\n this.panel.hide()\r\n if (this.atomXtermProfileMenuElement.isVisible() && focusMenuElement) {\r\n this.atomXtermProfileMenuElement.focus()\r\n }\r\n }\r\n\r\n promptForNewProfileName (newProfile, profileChanges) {\r\n // TODO: Is it possible for the active item to change while the\r\n // modal is displayed.\r\n if (this.panel.isVisible() || !currentItemIsAtomXtermModel()) {\r\n return\r\n }\r\n this.textbox = new TextEditor({mini: true})\r\n this.textbox.getElement().addEventListener('blur', (event) => {\r\n this.close()\r\n })\r\n atom.commands.add(this.textbox.getElement(), 'core:confirm', () => {\r\n this.confirm(newProfile, profileChanges)\r\n })\r\n atom.commands.add(this.textbox.getElement(), 'core:cancel', () => {\r\n this.close()\r\n })\r\n this.element.setNewTextbox(this.textbox)\r\n this.panel.show()\r\n this.textbox.getElement().focus()\r\n }\r\n}\r\n\r\nexport {\r\n AtomXtermSaveProfileModel\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\n\r\nclass AtomXtermOverwriteProfileModel {\r\n constructor (atomXtermSaveProfileModel) {\r\n this.atomXtermSaveProfileModel = atomXtermSaveProfileModel\r\n this.atomXtermProfileMenuElement = this.atomXtermSaveProfileModel.atomXtermProfileMenuElement\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n this.element = null\r\n this.panel = atom.workspace.addModalPanel({\r\n item: this,\r\n visible: false\r\n })\r\n }\r\n\r\n getTitle () {\r\n return 'atom-xterm Overwrite Profile Model'\r\n }\r\n\r\n getElement () {\r\n return this.element\r\n }\r\n\r\n setElement (element) {\r\n this.element = element\r\n }\r\n\r\n close (newProfile, profileChanges, rePrompt = false) {\r\n if (!this.panel.isVisible()) {\r\n return\r\n }\r\n this.panel.hide()\r\n if (rePrompt) {\r\n this.atomXtermSaveProfileModel.promptForNewProfileName(newProfile, profileChanges)\r\n }\r\n }\r\n\r\n promptOverwrite (profileName, newProfile, profileChanges) {\r\n this.panel.show()\r\n let confirmHandler = (event) => {\r\n this.profilesSingleton.setProfile(profileName, newProfile).then(() => {\r\n this.profilesSingleton.reloadProfiles()\r\n this.profilesSingleton.profilesLoadPromise.then(() => {\r\n this.close(newProfile, profileChanges)\r\n this.atomXtermProfileMenuElement.applyProfileChanges(profileChanges)\r\n })\r\n })\r\n }\r\n let cancelHandler = (event) => {\r\n this.close(newProfile, profileChanges, true)\r\n }\r\n this.getElement().setNewPrompt(\r\n profileName,\r\n confirmHandler,\r\n cancelHandler\r\n )\r\n }\r\n}\r\n\r\nexport {\r\n AtomXtermOverwriteProfileModel\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { Emitter } from 'atom'\r\n\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\n\r\nimport fs from 'fs-extra'\r\nimport path from 'path'\r\n\r\nimport { URL } from 'whatwg-url'\r\n\r\nconst DEFAULT_TITLE = 'Atom Xterm'\r\n\r\n/**\r\n * The main terminal model, or rather item, displayed in the Atom workspace.\r\n *\r\n * @class\r\n */\r\nclass AtomXtermModel {\r\n // NOTE: Though the class is publically accessible, all methods except for the\r\n // ones defined at the very bottom of the class should be considered private\r\n // and subject to change at any time.\r\n constructor (options) {\r\n this.options = options\r\n this.uri = this.options.uri\r\n let url = new URL(this.uri)\r\n this.sessionId = url.host\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n this.profile = this.profilesSingleton.createProfileDataFromUri(this.uri)\r\n this.terminals_set = this.options.terminals_set\r\n this.element = null\r\n this.pane = null\r\n this.title = DEFAULT_TITLE\r\n if (this.profile.title !== null) {\r\n this.title = this.profile.title\r\n }\r\n this.modified = false\r\n this.emitter = new Emitter()\r\n this.terminals_set.add(this)\r\n\r\n // Determine appropriate initial working directory based on previous\r\n // active item. Since this involves async operations on the file\r\n // system, a Promise will be used to indicate when initialization is\r\n // done.\r\n this.isInitialized = false\r\n this.initializedPromise = new Promise((resolve, reject) => {\r\n let baseProfile = this.profilesSingleton.getBaseProfile()\r\n let previousActiveItem = atom.workspace.getActivePaneItem()\r\n let cwd = this.profile.cwd\r\n if (typeof previousActiveItem !== 'undefined' && typeof previousActiveItem.getPath === 'function') {\r\n cwd = previousActiveItem.getPath()\r\n }\r\n let dir = atom.project.relativizePath(cwd)[0]\r\n if (dir) {\r\n // Use project paths whenever they are available by default.\r\n this.profile.cwd = dir\r\n resolve()\r\n } else if (cwd) {\r\n fs.exists(cwd, (exists) => {\r\n if (exists) {\r\n // Otherwise, if the path exists on the local file system, use the\r\n // path or parent directory as appropriate.\r\n fs.stat(cwd, (err, stats) => {\r\n if (err) {\r\n reject(err)\r\n }\r\n if (!stats.isDirectory()) {\r\n cwd = path.dirname(cwd)\r\n fs.stat(cwd, (err, stats) => {\r\n if (err) {\r\n reject(err)\r\n }\r\n if (!stats.isDirectory) {\r\n this.profile.cwd = baseProfile.cwd\r\n resolve()\r\n } else {\r\n this.profile.cwd = cwd\r\n resolve()\r\n }\r\n })\r\n } else {\r\n this.profile.cwd = cwd\r\n resolve()\r\n }\r\n })\r\n } else {\r\n this.profile.cwd = baseProfile.cwd\r\n resolve()\r\n }\r\n })\r\n } else {\r\n this.profile.cwd = baseProfile.cwd\r\n resolve()\r\n }\r\n }).then(() => {\r\n this.isInitialized = true\r\n })\r\n }\r\n\r\n serialize () {\r\n return {\r\n deserializer: 'AtomXtermModel',\r\n version: '2017-09-17',\r\n uri: this.profilesSingleton.generateNewUrlFromProfileData(this.profile).href\r\n }\r\n }\r\n\r\n destroy () {\r\n if (this.element) {\r\n this.element.destroy()\r\n }\r\n this.terminals_set.delete(this)\r\n }\r\n\r\n getTitle () {\r\n return this.title\r\n }\r\n\r\n getElement () {\r\n return this.element\r\n }\r\n\r\n getURI () {\r\n return this.uri\r\n }\r\n\r\n getLongTitle () {\r\n if (this.title === DEFAULT_TITLE) {\r\n return DEFAULT_TITLE\r\n }\r\n return DEFAULT_TITLE + ' (' + this.title + ')'\r\n }\r\n\r\n onDidChangeTitle (callback) {\r\n return this.emitter.on('did-change-title', callback)\r\n }\r\n\r\n getIconName () {\r\n return 'terminal'\r\n }\r\n\r\n getPath () {\r\n return this.profile.cwd\r\n }\r\n\r\n isModified () {\r\n return this.modified\r\n }\r\n\r\n onDidChangeModified (callback) {\r\n return this.emitter.on('did-change-modified', callback)\r\n }\r\n\r\n handleNewDataArrival () {\r\n if (!this.pane) {\r\n this.pane = atom.workspace.paneForItem(this)\r\n }\r\n let oldIsModified = this.modified\r\n let item\r\n if (this.pane) {\r\n item = this.pane.getActiveItem()\r\n }\r\n if (item === this) {\r\n this.modified = false\r\n } else {\r\n this.modified = true\r\n }\r\n if (oldIsModified !== this.modified) {\r\n this.emitter.emit('did-change-modified', this.modified)\r\n }\r\n }\r\n\r\n getSessionId () {\r\n return this.sessionId\r\n }\r\n\r\n getSessionParameters () {\r\n let url = this.profilesSingleton.generateNewUrlFromProfileData(this.profile)\r\n url.searchParams.sort()\r\n return url.searchParams.toString()\r\n }\r\n\r\n refitTerminal () {\r\n // Only refit if there's a DOM element attached to the model.\r\n if (this.element) {\r\n this.element.refitTerminal()\r\n }\r\n }\r\n\r\n focusOnTerminal () {\r\n this.element.focusOnTerminal()\r\n let oldIsModified = this.modified\r\n this.modified = false\r\n if (oldIsModified !== this.modified) {\r\n this.emitter.emit('did-change-modified', this.modified)\r\n }\r\n }\r\n\r\n exit () {\r\n this.pane.destroyItem(this, true)\r\n }\r\n\r\n restartPtyProcess () {\r\n if (this.element) {\r\n this.element.restartPtyProcess()\r\n }\r\n }\r\n\r\n copyFromTerminal () {\r\n return this.element.terminal.getSelection()\r\n }\r\n\r\n pasteToTerminal (text) {\r\n this.element.ptyProcess.write(text)\r\n }\r\n\r\n setNewPane (pane) {\r\n this.pane = pane\r\n }\r\n\r\n openHoveredLink () {\r\n this.element.openHoveredLink()\r\n }\r\n\r\n getHoveredLink () {\r\n return this.element.getHoveredLink()\r\n }\r\n\r\n toggleProfileMenu () {\r\n this.element.toggleProfileMenu()\r\n }\r\n\r\n /* Public methods are defined below this line. */\r\n\r\n /**\r\n * Retrieve profile for this {@link AtomXtermModel} instance.\r\n *\r\n * @function\r\n * @return {Object} Profile for {@link AtomXtermModel} instance.\r\n */\r\n getProfile () {\r\n return this.profile\r\n }\r\n\r\n /**\r\n * Apply profile changes to {@link AtomXtermModel} instance.\r\n *\r\n * @function\r\n * @param {Object} profileChanges Profile changes to apply.\r\n */\r\n applyProfileChanges (profileChanges) {\r\n profileChanges = this.profilesSingleton.sanitizeData(profileChanges)\r\n this.profile = this.profilesSingleton.deepClone(Object.assign(this.profile, profileChanges))\r\n this.element.queueNewProfileChanges(profileChanges)\r\n }\r\n}\r\n\r\nfunction isAtomXtermModel (item) {\r\n return (item instanceof AtomXtermModel)\r\n}\r\n\r\nfunction currentItemIsAtomXtermModel () {\r\n return isAtomXtermModel(atom.workspace.getActivePaneItem())\r\n}\r\n\r\nexport {\r\n AtomXtermModel,\r\n isAtomXtermModel,\r\n currentItemIsAtomXtermModel\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nclass AtomXtermProfileMenuModel {\r\n constructor (atomXtermModel) {\r\n this.atomXtermModel = atomXtermModel\r\n this.element = null\r\n }\r\n\r\n destroy () {\r\n if (this.element) {\r\n this.element.destroy()\r\n }\r\n }\r\n\r\n getTitle () {\r\n return 'Atom Xterm Profile Menu'\r\n }\r\n\r\n getElement () {\r\n return this.element\r\n }\r\n\r\n setElement (element) {\r\n this.element = element\r\n }\r\n\r\n getAtomXtermModelElement () {\r\n return this.atomXtermModel.getElement()\r\n }\r\n\r\n getAtomXtermModel () {\r\n return this.atomXtermModel\r\n }\r\n}\r\n\r\nexport {\r\n AtomXtermProfileMenuModel\r\n}\r\n","\"use strict\";\n\nvar utils = module.exports = {};\n\n/**\n * Loops through the collection and calls the callback for each element. if the callback returns truthy, the loop is broken and returns the same value.\n * @public\n * @param {*} collection The collection to loop through. Needs to have a length property set and have indices set from 0 to length - 1.\n * @param {function} callback The callback to be called for each element. The element will be given as a parameter to the callback. If this callback returns truthy, the loop is broken and the same value is returned.\n * @returns {*} The value that a callback has returned (if truthy). Otherwise nothing.\n */\nutils.forEach = function(collection, callback) {\n for(var i = 0; i < collection.length; i++) {\n var result = callback(collection[i]);\n if(result) {\n return result;\n }\n }\n};\n","\"use strict\";\n\nvar detector = module.exports = {};\n\ndetector.isIE = function(version) {\n function isAnyIeVersion() {\n var agent = navigator.userAgent.toLowerCase();\n return agent.indexOf(\"msie\") !== -1 || agent.indexOf(\"trident\") !== -1 || agent.indexOf(\" edge/\") !== -1;\n }\n\n if(!isAnyIeVersion()) {\n return false;\n }\n\n if(!version) {\n return true;\n }\n\n //Shamelessly stolen from https://gist.github.com/padolsey/527683\n var ieVersion = (function(){\n var undef,\n v = 3,\n div = document.createElement(\"div\"),\n all = div.getElementsByTagName(\"i\");\n\n do {\n div.innerHTML = \"\";\n }\n while (all[0]);\n\n return v > 4 ? v : undef;\n }());\n\n return version === ieVersion;\n};\n\ndetector.isLegacyOpera = function() {\n return !!window.opera;\n};\n","/** @babel */\r\n/** @module atom-xterm */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport '../styles/atom-xterm.sass'\r\n\r\nimport { CompositeDisposable } from 'atom'\r\n\r\nimport atomXtermConfig from './atom-xterm-config'\r\nimport { AtomXtermElement } from './atom-xterm-element'\r\nimport { AtomXtermModel, isAtomXtermModel } from './atom-xterm-model'\r\nimport { ATOM_XTERM_BASE_URI, AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\nimport { AtomXtermProfileMenuElement } from './atom-xterm-profile-menu-element'\r\nimport { AtomXtermProfileMenuModel } from './atom-xterm-profile-menu-model'\r\nimport { AtomXtermDeleteProfileElement } from './atom-xterm-delete-profile-element'\r\nimport { AtomXtermDeleteProfileModel } from './atom-xterm-delete-profile-model'\r\nimport { AtomXtermOverwriteProfileElement } from './atom-xterm-overwrite-profile-element'\r\nimport { AtomXtermOverwriteProfileModel } from './atom-xterm-overwrite-profile-model'\r\nimport { AtomXtermSaveProfileElement } from './atom-xterm-save-profile-element'\r\nimport { AtomXtermSaveProfileModel } from './atom-xterm-save-profile-model'\r\n\r\nimport { URL } from 'whatwg-url'\r\n\r\nconst AtomXtermSingletonSymbol = Symbol('AtomXtermSingleton sentinel')\r\n\r\nclass AtomXtermSingleton {\r\n constructor (symbolCheck) {\r\n if (AtomXtermSingletonSymbol !== symbolCheck) {\r\n throw new Error('AtomXtermSingleton cannot be instantiated directly.')\r\n }\r\n }\r\n\r\n static get instance () {\r\n if (!this[AtomXtermSingletonSymbol]) {\r\n this[AtomXtermSingletonSymbol] = new AtomXtermSingleton(AtomXtermSingletonSymbol)\r\n }\r\n return this[AtomXtermSingletonSymbol]\r\n }\r\n\r\n activate (state) {\r\n // Load profiles configuration.\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n\r\n // Reset base profile in case this package was deactivated then\r\n // reactivated.\r\n this.profilesSingleton.resetBaseProfile()\r\n\r\n // Disposables for this plugin.\r\n this.disposables = new CompositeDisposable()\r\n\r\n // Set holding all terminals available at any moment.\r\n this.terminals_set = new Set()\r\n\r\n // Monitor for changes to all config values.\r\n let configKeys = [\r\n 'atom-xterm.spawnPtySettings.command',\r\n 'atom-xterm.spawnPtySettings.args',\r\n 'atom-xterm.spawnPtySettings.name',\r\n 'atom-xterm.spawnPtySettings.cwd',\r\n 'atom-xterm.spawnPtySettings.env',\r\n 'atom-xterm.spawnPtySettings.setEnv',\r\n 'atom-xterm.spawnPtySettings.deleteEnv',\r\n 'atom-xterm.spawnPtySettings.encoding',\r\n 'atom-xterm.terminalSettings.fontSize',\r\n 'atom-xterm.terminalSettings.leaveOpenAfterExit',\r\n 'atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup',\r\n 'atom-xterm.terminalSettings.relaunchTerminalOnStartup',\r\n 'atom-xterm.terminalSettings.title',\r\n 'atom-xterm.terminalSettings.xtermOptions',\r\n 'atom-xterm.terminalSettings.promptToStartup'\r\n ]\r\n for (let key of configKeys) {\r\n this.disposables.add(atom.config.onDidChange(key, ({newValue, oldValue}) => {\r\n this.profilesSingleton.resetBaseProfile()\r\n }))\r\n }\r\n\r\n // Register view provider for terminal emulator item.\r\n this.disposables.add(atom.views.addViewProvider(AtomXtermModel, (atomXtermModel) => {\r\n let atomXtermElement = new AtomXtermElement()\r\n atomXtermElement.initialize(atomXtermModel)\r\n return atomXtermElement\r\n }))\r\n\r\n // Register view provider for terminal emulator profile menu item.\r\n this.disposables.add(atom.views.addViewProvider(AtomXtermProfileMenuModel, (atomXtermProfileMenuModel) => {\r\n let atomXtermProfileMenuElement = new AtomXtermProfileMenuElement()\r\n atomXtermProfileMenuElement.initialize(atomXtermProfileMenuModel)\r\n return atomXtermProfileMenuElement\r\n }))\r\n\r\n // Register view profile for modal items.\r\n this.disposables.add(atom.views.addViewProvider(AtomXtermDeleteProfileModel, (atomXtermDeleteProfileModel) => {\r\n let atomXtermDeleteProfileElement = new AtomXtermDeleteProfileElement()\r\n atomXtermDeleteProfileElement.initialize(atomXtermDeleteProfileModel)\r\n return atomXtermDeleteProfileElement\r\n }))\r\n this.disposables.add(atom.views.addViewProvider(AtomXtermOverwriteProfileModel, (atomXtermOverwriteProfileModel) => {\r\n let atomXtermOverwriteProfileElement = new AtomXtermOverwriteProfileElement()\r\n atomXtermOverwriteProfileElement.initialize(atomXtermOverwriteProfileModel)\r\n return atomXtermOverwriteProfileElement\r\n }))\r\n this.disposables.add(atom.views.addViewProvider(AtomXtermSaveProfileModel, (atomXtermSaveProfileModel) => {\r\n let atomXtermSaveProfileElement = new AtomXtermSaveProfileElement()\r\n atomXtermSaveProfileElement.initialize(atomXtermSaveProfileModel)\r\n return atomXtermSaveProfileElement\r\n }))\r\n\r\n // Add opener for terminal emulator item.\r\n this.disposables.add(atom.workspace.addOpener((uri) => {\r\n if (uri.startsWith(ATOM_XTERM_BASE_URI)) {\r\n let item = new AtomXtermModel({\r\n uri: uri,\r\n terminals_set: this.terminals_set\r\n })\r\n return item\r\n }\r\n }))\r\n\r\n // Set callback to run on current and future panes.\r\n this.disposables.add(atom.workspace.observePanes((pane) => {\r\n // In callback, set another callback to run on current and future items.\r\n this.disposables.add(pane.observeItems((item) => {\r\n // In callback, set current pane for terminal items.\r\n if (isAtomXtermModel(item)) {\r\n item.setNewPane(pane)\r\n }\r\n }))\r\n }))\r\n\r\n // Add callbacks to run for current and future active items on active panes.\r\n this.disposables.add(atom.workspace.observeActivePaneItem((item) => {\r\n // In callback, focus specifically on terminal when item is terminal item.\r\n if (isAtomXtermModel(item)) {\r\n item.focusOnTerminal()\r\n }\r\n }))\r\n\r\n // Add commands.\r\n this.disposables.add(atom.commands.add('atom-workspace', {\r\n 'atom-xterm:open': () => {\r\n this.openInCenterOrDock(atom.workspace)\r\n },\r\n 'atom-xterm:open-split-up': () => this.open(\r\n this.profilesSingleton.generateNewUri(),\r\n {'split': 'up'}\r\n ),\r\n 'atom-xterm:open-split-down': () => this.open(\r\n this.profilesSingleton.generateNewUri(),\r\n {'split': 'down'}\r\n ),\r\n 'atom-xterm:open-split-left': () => this.open(\r\n this.profilesSingleton.generateNewUri(),\r\n {'split': 'left'}\r\n ),\r\n 'atom-xterm:open-split-right': () => this.open(\r\n this.profilesSingleton.generateNewUri(),\r\n {'split': 'right'}\r\n ),\r\n 'atom-xterm:open-split-bottom-dock': () => {\r\n this.openInCenterOrDock(atom.workspace.getBottomDock())\r\n },\r\n 'atom-xterm:open-split-left-dock': () => {\r\n this.openInCenterOrDock(atom.workspace.getLeftDock())\r\n },\r\n 'atom-xterm:open-split-right-dock': () => {\r\n this.openInCenterOrDock(atom.workspace.getRightDock())\r\n },\r\n 'atom-xterm:toggle-profile-menu': () => this.toggleProfileMenu(),\r\n 'atom-xterm:reorganize': () => this.reorganize('current'),\r\n 'atom-xterm:reorganize-top': () => this.reorganize('top'),\r\n 'atom-xterm:reorganize-bottom': () => this.reorganize('bottom'),\r\n 'atom-xterm:reorganize-left': () => this.reorganize('left'),\r\n 'atom-xterm:reorganize-right': () => this.reorganize('right'),\r\n 'atom-xterm:reorganize-bottom-dock': () => this.reorganize('bottom-dock'),\r\n 'atom-xterm:reorganize-left-dock': () => this.reorganize('left-dock'),\r\n 'atom-xterm:reorganize-right-dock': () => this.reorganize('right-dock'),\r\n 'atom-xterm:close-all': () => this.exitAllTerminals(),\r\n 'atom-xterm:need-this-to-activate-package-for-tests-do-not-remove': () => {\r\n /*\r\n * This is just here for activating the package in tests.\r\n * From the main program, the 'core:loaded-shell-environment'\r\n * activation hook is used to activate the package.\r\n */\r\n }\r\n }))\r\n this.disposables.add(atom.commands.add('atom-xterm', {\r\n 'atom-xterm:close': () => this.close(),\r\n 'atom-xterm:restart': () => this.restart(),\r\n 'atom-xterm:copy': () => this.copy(),\r\n 'atom-xterm:paste': () => this.paste(),\r\n 'atom-xterm:open-link': () => this.openLink(),\r\n 'atom-xterm:copy-link': () => this.copyLink()\r\n }))\r\n }\r\n\r\n deactivate () {\r\n this.exitAllTerminals()\r\n this.disposables.dispose()\r\n }\r\n\r\n deserializeAtomXtermModel (serializedModel, atomEnvironment) {\r\n let pack = atom.packages.enablePackage('atom-xterm')\r\n pack.preload()\r\n pack.activateNow()\r\n let allowRelaunchingTerminalsOnStartup = atom.config.get('atom-xterm.terminalSettings.allowRelaunchingTerminalsOnStartup')\r\n if (!allowRelaunchingTerminalsOnStartup) {\r\n return\r\n }\r\n let url = new URL(serializedModel.uri)\r\n let relaunchTerminalOnStartup = url.searchParams.get('relaunchTerminalOnStartup')\r\n if (relaunchTerminalOnStartup === 'false') {\r\n return\r\n }\r\n return new AtomXtermModel({\r\n uri: url.href,\r\n terminals_set: this.terminals_set\r\n })\r\n }\r\n\r\n openInCenterOrDock (centerOrDock) {\r\n let options = {}\r\n let pane = centerOrDock.getActivePane()\r\n if (pane) {\r\n options.pane = pane\r\n }\r\n this.open(\r\n this.profilesSingleton.generateNewUri(),\r\n options\r\n )\r\n }\r\n\r\n refitAllTerminals () {\r\n let currentActivePane = atom.workspace.getActivePane()\r\n let currentActiveItem = currentActivePane.getActiveItem()\r\n for (let terminal of this.terminals_set) {\r\n // To refit, simply bring the terminal in focus in order for the\r\n // resize event to refit the terminal.\r\n let paneActiveItem = terminal.pane.getActiveItem()\r\n terminal.pane.getElement().focus()\r\n terminal.pane.setActiveItem(terminal)\r\n terminal.pane.setActiveItem(paneActiveItem)\r\n }\r\n currentActivePane.getElement().focus()\r\n currentActivePane.setActiveItem(currentActiveItem)\r\n }\r\n\r\n exitAllTerminals () {\r\n for (let terminal of this.terminals_set) {\r\n terminal.exit()\r\n }\r\n }\r\n\r\n async open (uri, options = {}) {\r\n let url = new URL(uri)\r\n let relaunchTerminalOnStartup = url.searchParams.get('relaunchTerminalOnStartup')\r\n if (relaunchTerminalOnStartup === null) {\r\n relaunchTerminalOnStartup = this.profilesSingleton.getBaseProfile().relaunchTerminalOnStartup\r\n if (!relaunchTerminalOnStartup) {\r\n url.searchParams.set('relaunchTerminalOnStartup', false)\r\n }\r\n }\r\n return atom.workspace.open(url.href, options)\r\n }\r\n\r\n /**\r\n * Service function which is a wrapper around 'atom.workspace.open()'. The\r\n * only difference with this function from 'atom.workspace.open()' is that it\r\n * accepts a profile Object as the first argument.\r\n *\r\n * @async\r\n * @function\r\n * @param {Object} profile Profile data to use when opening terminal.\r\n * @param {Object} options Options to pass to call to 'atom.workspace.open()'.\r\n * @return {AtomXtermModel} Instance of AtomXtermModel.\r\n */\r\n async openTerminal (profile, options = {}) {\r\n return this.open(\r\n AtomXtermProfilesSingleton.instance.generateNewUrlFromProfileData(profile),\r\n options\r\n )\r\n }\r\n\r\n /**\r\n * Function providing service functions offered by 'atom-xterm' package.\r\n *\r\n * @function\r\n * @returns {Object} Object holding service functions.\r\n */\r\n provideAtomXtermService () {\r\n return {\r\n openTerminal: async (...args) => {\r\n return this.openTerminal(...args)\r\n }\r\n }\r\n }\r\n\r\n performOperationOnItem (operation) {\r\n let item = atom.workspace.getActivePaneItem()\r\n if (isAtomXtermModel(item)) {\r\n switch (operation) {\r\n case 'close':\r\n item.exit()\r\n break\r\n case 'restart':\r\n item.restartPtyProcess()\r\n break\r\n case 'copy':\r\n atom.clipboard.write(item.copyFromTerminal())\r\n break\r\n case 'paste':\r\n item.pasteToTerminal(atom.clipboard.read())\r\n break\r\n case 'open-link':\r\n item.openHoveredLink()\r\n break\r\n case 'copy-link':\r\n let link = item.getHoveredLink()\r\n if (link) {\r\n atom.clipboard.write(link)\r\n }\r\n break\r\n default:\r\n throw new Error('Unknown operation: ' + operation)\r\n }\r\n }\r\n }\r\n\r\n close () {\r\n this.performOperationOnItem('close')\r\n }\r\n\r\n restart () {\r\n this.performOperationOnItem('restart')\r\n }\r\n\r\n copy () {\r\n this.performOperationOnItem('copy')\r\n }\r\n\r\n paste () {\r\n this.performOperationOnItem('paste')\r\n }\r\n\r\n openLink () {\r\n this.performOperationOnItem('open-link')\r\n }\r\n\r\n copyLink () {\r\n this.performOperationOnItem('copy-link')\r\n }\r\n\r\n toggleProfileMenu () {\r\n let item = atom.workspace.getActivePaneItem()\r\n if (isAtomXtermModel(item)) {\r\n item.toggleProfileMenu()\r\n }\r\n }\r\n\r\n reorganize (orientation) {\r\n if (this.terminals_set.size === 0) {\r\n return\r\n }\r\n let activePane = atom.workspace.getActivePane()\r\n let activeItem = activePane.getActiveItem()\r\n let newPane\r\n switch (orientation) {\r\n case 'current':\r\n newPane = activePane\r\n break\r\n case 'top':\r\n newPane = activePane.findTopmostSibling().splitUp()\r\n break\r\n case 'bottom':\r\n newPane = activePane.findBottommostSibling().splitDown()\r\n break\r\n case 'left':\r\n newPane = activePane.findLeftmostSibling().splitLeft()\r\n break\r\n case 'right':\r\n newPane = activePane.findRightmostSibling().splitRight()\r\n break\r\n case 'bottom-dock':\r\n newPane = atom.workspace.getBottomDock().getActivePane()\r\n break\r\n case 'left-dock':\r\n newPane = atom.workspace.getLeftDock().getActivePane()\r\n break\r\n case 'right-dock':\r\n newPane = atom.workspace.getRightDock().getActivePane()\r\n break\r\n default:\r\n throw new Error('Unknown orientation: ' + orientation)\r\n }\r\n for (let item of this.terminals_set) {\r\n item.pane.moveItemToPane(item, newPane, -1)\r\n }\r\n if (isAtomXtermModel(activeItem)) {\r\n if (atom.workspace.getPanes().length > 1) {\r\n // When reorganizing still leaves more than one pane in the\r\n // workspace, another pane that doesn't include the newly\r\n // reorganized terminal tabs needs to be focused in order for\r\n // the terminal views to get properly resized in the new pane.\r\n // All this is yet another quirk.\r\n for (let pane of atom.workspace.getPanes()) {\r\n if (pane !== activeItem.pane) {\r\n pane.getElement().focus()\r\n break\r\n }\r\n }\r\n }\r\n activeItem.pane.getElement().focus()\r\n activeItem.pane.setActiveItem(activeItem)\r\n } else if (activeItem instanceof HTMLElement) {\r\n activeItem.focus()\r\n } else if (typeof activeItem.getElement === 'function') {\r\n activeItem = activeItem.getElement()\r\n activeItem.focus()\r\n }\r\n }\r\n}\r\n\r\nexport const config = {\r\n 'spawnPtySettings': {\r\n 'title': 'Shell Process Settings',\r\n 'description': 'Settings related to the process running the shell.',\r\n 'type': 'object',\r\n 'properties': {\r\n 'command': {\r\n 'title': 'Command',\r\n 'description': 'Command to run',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultShellCommand()\r\n },\r\n 'args': {\r\n 'title': 'Arguments',\r\n 'description': 'Arguments to pass to command, must be in a JSON array.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultArgs()\r\n },\r\n 'name': {\r\n 'title': 'Terminal Type',\r\n 'description': 'The terminal type to use.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultTermType()\r\n },\r\n 'cwd': {\r\n 'title': 'Working Directory',\r\n 'description': 'The working directory to use when launching command.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultCwd()\r\n },\r\n 'env': {\r\n 'title': 'Environment',\r\n 'description': 'The environment to use when launching command, must be in a JSON object. If not set, defaults to the current environment.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultEnv()\r\n },\r\n 'setEnv': {\r\n 'title': 'Environment Overrides',\r\n 'description': 'Environment variables to use in place of the atom process environment, must be in a JSON object.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultSetEnv()\r\n },\r\n 'deleteEnv': {\r\n 'title': 'Environment Deletions',\r\n 'description': 'Environment variables to delete from original environment, must be in a JSON array.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultDeleteEnv()\r\n },\r\n 'encoding': {\r\n 'title': 'Character Encoding',\r\n 'description': 'Character encoding to use in spawned terminal.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultEncoding()\r\n }\r\n }\r\n },\r\n 'terminalSettings': {\r\n 'title': 'Terminal Emulator Settings',\r\n 'description': 'Settings for the terminal emulator.',\r\n 'type': 'object',\r\n 'properties': {\r\n 'fontSize': {\r\n 'title': 'Font Size',\r\n 'description': 'Font size used in terminal emulator.',\r\n 'type': 'integer',\r\n 'default': atomXtermConfig.getDefaultFontSize(),\r\n 'minimum': atomXtermConfig.getMinimumFontSize(),\r\n 'maximum': atomXtermConfig.getMaximumFontSize()\r\n },\r\n 'leaveOpenAfterExit': {\r\n 'title': 'Leave Open After Exit',\r\n 'description': 'Whether to leave terminal emulators open after their shell processes have exited.',\r\n 'type': 'boolean',\r\n 'default': atomXtermConfig.getDefaultLeaveOpenAfterExit()\r\n },\r\n 'allowRelaunchingTerminalsOnStartup': {\r\n 'title': 'Allow relaunching terminals on startup',\r\n 'description': 'Whether to allow relaunching terminals on startup.',\r\n 'type': 'boolean',\r\n 'default': atomXtermConfig.getDefaultAllowRelaunchingTerminalsOnStartup()\r\n },\r\n 'relaunchTerminalOnStartup': {\r\n 'title': 'Relaunch terminal on startup',\r\n 'description': 'Whether to relaunch terminal on startup.',\r\n 'type': 'boolean',\r\n 'default': atomXtermConfig.getDefaultRelaunchTerminalOnStartup()\r\n },\r\n 'title': {\r\n 'title': 'Terminal tab title',\r\n 'description': 'Title to use for terminal tabs.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultTitle()\r\n },\r\n 'xtermOptions': {\r\n 'title': 'xterm.js Terminal Options',\r\n 'description': 'Options to apply to xterm.js Terminal objects.',\r\n 'type': 'string',\r\n 'default': atomXtermConfig.getDefaultXtermOptions()\r\n },\r\n 'promptToStartup': {\r\n 'title': 'Prompt to start command',\r\n 'description': 'Whether to prompt to start command in terminal on startup.',\r\n 'type': 'boolean',\r\n 'default': atomXtermConfig.getDefaultPromptToStartup()\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function activate (state) {\r\n return AtomXtermSingleton.instance.activate(state)\r\n}\r\n\r\nexport function deactivate () {\r\n return AtomXtermSingleton.instance.deactivate()\r\n}\r\n\r\nexport function deserializeAtomXtermModel (serializedModel, atomEnvironment) {\r\n return AtomXtermSingleton.instance.deserializeAtomXtermModel(\r\n serializedModel,\r\n atomEnvironment\r\n )\r\n}\r\n\r\nexport function provideAtomXtermService () {\r\n return AtomXtermSingleton.instance.provideAtomXtermService()\r\n}\r\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { CompositeDisposable } from 'atom'\r\nimport { spawn as spawnPty } from 'node-pty-prebuilt'\r\nimport { Terminal } from 'xterm'\r\nimport * as fit from 'xterm/lib/addons/fit/fit'\r\nimport urlRegex from 'url-regex'\r\nimport { shell } from 'electron'\r\n\r\nimport atomXtermConfig from './atom-xterm-config'\r\nimport { AtomXtermProfileMenuElement } from './atom-xterm-profile-menu-element'\r\nimport { AtomXtermProfileMenuModel } from './atom-xterm-profile-menu-model'\r\nimport { AtomXtermProfilesSingleton } from './atom-xterm-profiles'\r\n\r\nimport fs from 'fs-extra'\r\n\r\nimport elementResizeDetectorMaker from 'element-resize-detector'\r\n\r\nTerminal.applyAddon(fit)\r\n\r\nconst STRICT_URL_REGEX = new RegExp(`(${urlRegex({exact: false, strict: true}).source})`)\r\nconst PTY_PROCESS_OPTIONS = new Set([\r\n 'command',\r\n 'args',\r\n 'name',\r\n 'cwd',\r\n 'env',\r\n 'setEnv',\r\n 'deleteEnv',\r\n 'encoding'\r\n])\r\nconst ATOM_XTERM_OPTIONS = [\r\n 'leaveOpenAfterExit',\r\n 'relaunchTerminalOnStartup',\r\n 'title',\r\n 'promptToStartup'\r\n]\r\n\r\nclass AtomXtermElementImpl extends HTMLElement {\r\n initialize (model) {\r\n this.profilesSingleton = AtomXtermProfilesSingleton.instance\r\n this.model = model\r\n this.model.element = this\r\n this.disposables = new CompositeDisposable()\r\n this.topDiv = document.createElement('div')\r\n this.topDiv.classList.add('atom-xterm-top-div')\r\n this.appendChild(this.topDiv)\r\n this.mainDiv = document.createElement('div')\r\n this.mainDiv.classList.add('atom-xterm-main-div')\r\n this.appendChild(this.mainDiv)\r\n this.menuDiv = document.createElement('div')\r\n this.menuDiv.classList.add('atom-xterm-menu-div')\r\n this.mainDiv.appendChild(this.menuDiv)\r\n this.terminalDiv = document.createElement('div')\r\n this.terminalDiv.classList.add('atom-xterm-term-container')\r\n this.mainDiv.appendChild(this.terminalDiv)\r\n this.atomXtermProfileMenuElement = new AtomXtermProfileMenuElement()\r\n this.hoveredLink = null\r\n this.pendingTerminalProfileOptions = {}\r\n this.terminalDivIntersectionRatio = 0.0\r\n this.isInitialized = false\r\n this.initializedPromise = new Promise((resolve, reject) => {\r\n // Always wait for the model to finish initializing before proceeding.\r\n this.model.initializedPromise.then((atomXtermModel) => {\r\n this.setAttribute('session-id', this.model.getSessionId())\r\n this.atomXtermProfileMenuElement.initialize(new AtomXtermProfileMenuModel(this.model)).then(() => {\r\n this.menuDiv.append(this.atomXtermProfileMenuElement)\r\n this.createTerminal().then(() => {\r\n // An element resize detector is used to check when this element is\r\n // resized due to the pane resizing or due to the entire window\r\n // resizing.\r\n this.erd = elementResizeDetectorMaker({\r\n strategy: 'scroll'\r\n })\r\n this.erd.listenTo(this.mainDiv, (element) => {\r\n this.refitTerminal()\r\n })\r\n // Add an IntersectionObserver in order to apply new options and\r\n // refit as soon as the terminal is visible.\r\n this.terminalDivIntersectionObserver = new IntersectionObserver((entries, observer) => {\r\n // NOTE: Only the terminal div should be observed therefore there\r\n // should only be one entry.\r\n let entry = entries[0]\r\n this.terminalDivIntersectionRatio = entry.intersectionRatio\r\n this.applyPendingTerminalProfileOptions()\r\n }, {\r\n root: this,\r\n threshold: 1.0\r\n })\r\n this.terminalDivIntersectionObserver.observe(this.terminalDiv)\r\n // Add event handler for increasing/decreasing the font when\r\n // holding 'ctrl' and moving the mouse wheel up or down.\r\n this.terminalDiv.addEventListener(\r\n 'wheel',\r\n (wheelEvent) => {\r\n if (wheelEvent.ctrlKey && atom.config.get('editor.zoomFontWhenCtrlScrolling')) {\r\n if (wheelEvent.deltaY < 0) {\r\n let fontSize = this.model.profile.fontSize + 1\r\n if (fontSize > atomXtermConfig.getMaximumFontSize()) {\r\n fontSize = atomXtermConfig.getMaximumFontSize()\r\n }\r\n this.model.applyProfileChanges({fontSize: fontSize})\r\n wheelEvent.stopPropagation()\r\n } else if (wheelEvent.deltaY > 0) {\r\n let fontSize = this.model.profile.fontSize - 1\r\n if (fontSize < atomXtermConfig.getMinimumFontSize()) {\r\n fontSize = atomXtermConfig.getMinimumFontSize()\r\n }\r\n this.model.applyProfileChanges({fontSize: fontSize})\r\n wheelEvent.stopPropagation()\r\n }\r\n }\r\n },\r\n {capture: true}\r\n )\r\n resolve()\r\n })\r\n })\r\n }).then(() => {\r\n this.isInitialized = true\r\n })\r\n })\r\n return this.initializedPromise\r\n }\r\n\r\n destroy () {\r\n this.atomXtermProfileMenuElement.destroy()\r\n if (this.ptyProcess) {\r\n this.ptyProcess.kill()\r\n }\r\n if (this.terminal) {\r\n this.terminal.destroy()\r\n }\r\n this.disposables.dispose()\r\n }\r\n\r\n getShellCommand () {\r\n return this.model.profile.command\r\n }\r\n\r\n getArgs () {\r\n let args = this.model.profile.args\r\n if (!Array.isArray(args)) {\r\n throw new Error('Arguments set are not an array.')\r\n }\r\n return args\r\n }\r\n\r\n getTermType () {\r\n return this.model.profile.name\r\n }\r\n\r\n checkPathIsDirectory (path) {\r\n return new Promise((resolve, reject) => {\r\n if (path) {\r\n fs.stat(path, (err, stats) => {\r\n if (err) {\r\n resolve(false)\r\n }\r\n if (stats && stats.isDirectory()) {\r\n resolve(true)\r\n }\r\n resolve(false)\r\n })\r\n } else {\r\n resolve(false)\r\n }\r\n })\r\n }\r\n\r\n getCwd () {\r\n return new Promise((resolve, reject) => {\r\n let cwd = this.model.profile.cwd\r\n this.checkPathIsDirectory(cwd).then((isDirectory) => {\r\n if (isDirectory) {\r\n resolve(cwd)\r\n } else {\r\n cwd = this.model.getPath()\r\n this.checkPathIsDirectory(cwd).then((isDirectory) => {\r\n if (isDirectory) {\r\n resolve(cwd)\r\n } else {\r\n // If the cwd from the model was invalid, reset it to null.\r\n this.model.cwd = null\r\n cwd = this.profilesSingleton.getBaseProfile.cwd\r\n this.checkPathIsDirectory(cwd).then((isDirectory) => {\r\n if (isDirectory) {\r\n this.model.cwd = cwd\r\n resolve(cwd)\r\n }\r\n resolve(null)\r\n })\r\n }\r\n })\r\n }\r\n })\r\n })\r\n }\r\n\r\n getEnv () {\r\n let env = this.model.profile.env\r\n if (!env) {\r\n env = Object.assign({}, process.env)\r\n }\r\n if (typeof env !== 'object' || Array.isArray(env)) {\r\n throw new Error('Environment set is not an object.')\r\n }\r\n let setEnv = this.model.profile.setEnv\r\n let deleteEnv = this.model.profile.deleteEnv\r\n for (let key in setEnv) {\r\n env[key] = setEnv[key]\r\n }\r\n for (let key of deleteEnv) {\r\n delete env[key]\r\n }\r\n return env\r\n }\r\n\r\n getEncoding () {\r\n return this.model.profile.encoding\r\n }\r\n\r\n leaveOpenAfterExit () {\r\n return this.model.profile.leaveOpenAfterExit\r\n }\r\n\r\n isPromptToStartup () {\r\n return this.model.profile.promptToStartup\r\n }\r\n\r\n isPtyProcessRunning () {\r\n return (this.ptyProcess && this.ptyProcessRunning)\r\n }\r\n\r\n getXtermOptions () {\r\n let xtermOptions = {\r\n cursorBlink: true,\r\n experimentalCharAtlas: 'dynamic'\r\n }\r\n xtermOptions = Object.assign(xtermOptions, this.model.profile.xtermOptions)\r\n xtermOptions.fontSize = this.model.profile.fontSize\r\n // NOTE: The cloning is needed because the Terminal class modifies the\r\n // options passed to it.\r\n return this.profilesSingleton.deepClone(xtermOptions)\r\n }\r\n\r\n setMainBackgroundColor () {\r\n let xtermOptions = this.getXtermOptions()\r\n if (xtermOptions.theme && xtermOptions.theme.background) {\r\n this.style.backgroundColor = xtermOptions.theme.background\r\n } else {\r\n this.style.backgroundColor = '#000'\r\n }\r\n }\r\n\r\n createTerminal () {\r\n // Attach terminal emulator to this element and refit.\r\n this.setMainBackgroundColor()\r\n this.terminal = new Terminal(this.getXtermOptions())\r\n this.terminal.open(this.terminalDiv)\r\n this.ptyProcessCols = 80\r\n this.ptyProcessRows = 25\r\n this.refitTerminal()\r\n this.ptyProcess = null\r\n this.ptyProcessRunning = false\r\n this.terminal.on('data', (data) => {\r\n if (this.isPtyProcessRunning()) {\r\n this.ptyProcess.write(data)\r\n }\r\n })\r\n this.terminal.registerLinkMatcher(\r\n STRICT_URL_REGEX,\r\n (mouseEvent, uri) => {\r\n shell.openExternal(uri)\r\n },\r\n {\r\n matchIndex: 1,\r\n leaveCallback: () => {\r\n this.clearHoveredLink()\r\n },\r\n priority: 100,\r\n willLinkActivate: (mouseEvent, uri) => {\r\n this.setHoveredLink(uri)\r\n }\r\n }\r\n )\r\n this.disposables.add(this.profilesSingleton.onDidResetBaseProfile((baseProfile) => {\r\n let profileChanges = this.profilesSingleton.diffProfiles(\r\n this.model.getProfile(),\r\n {\r\n // Only allow changes to settings related to the terminal front end\r\n // to be applied to existing terminals.\r\n fontSize: baseProfile.fontSize,\r\n xtermOptions: baseProfile.xtermOptions\r\n }\r\n )\r\n this.model.applyProfileChanges(profileChanges)\r\n }))\r\n if (this.isPromptToStartup()) {\r\n return this.promptToStartup()\r\n }\r\n return this.restartPtyProcess()\r\n }\r\n\r\n showNotification (message, infoType, restartButtonText = 'Restart') {\r\n let messageDiv = document.createElement('div')\r\n let restartButton = document.createElement('button')\r\n restartButton.classList.add('btn')\r\n restartButton.appendChild(document.createTextNode(restartButtonText))\r\n restartButton.addEventListener('click', (event) => {\r\n this.restartPtyProcess()\r\n })\r\n restartButton.classList.add('btn-' + infoType)\r\n restartButton.classList.add('atom-xterm-restart-btn')\r\n messageDiv.classList.add('atom-xterm-notice-' + infoType)\r\n messageDiv.appendChild(document.createTextNode(message))\r\n messageDiv.appendChild(restartButton)\r\n this.topDiv.innerHTML = ''\r\n this.topDiv.appendChild(messageDiv)\r\n if (infoType === 'success') {\r\n atom.notifications.addSuccess(message)\r\n } else if (infoType === 'error') {\r\n atom.notifications.addError(message)\r\n } else if (infoType === 'warning') {\r\n atom.notifications.addWarning(message)\r\n } else if (infoType === 'info') {\r\n atom.notifications.addInfo(message)\r\n } else {\r\n throw new Error('Unknown info type: ' + infoType)\r\n }\r\n }\r\n\r\n promptToStartup () {\r\n return new Promise((resolve, reject) => {\r\n let message\r\n if (this.model.profile.title === null) {\r\n let command = [this.getShellCommand()]\r\n command.push(...this.getArgs())\r\n message = `New command ${JSON.stringify(command)} ready to start.`\r\n } else {\r\n message = `New command for profile ${this.model.profile.title} ready to start.`\r\n }\r\n this.showNotification(\r\n message,\r\n 'info',\r\n 'Start'\r\n )\r\n resolve()\r\n })\r\n }\r\n\r\n restartPtyProcess () {\r\n return new Promise((resolve, reject) => {\r\n this.getCwd().then((cwd) => {\r\n if (this.ptyProcessRunning) {\r\n this.ptyProcess.removeAllListeners('exit')\r\n this.ptyProcess.kill()\r\n }\r\n // Reset the terminal.\r\n this.atomXtermProfileMenuElement.hideProfileMenu()\r\n this.terminal.reset()\r\n\r\n // Setup pty process.\r\n this.ptyProcessCommand = this.getShellCommand()\r\n this.ptyProcessArgs = this.getArgs()\r\n let name = this.getTermType()\r\n let env = this.getEnv()\r\n let encoding = this.getEncoding()\r\n\r\n // Attach pty process to terminal.\r\n // NOTE: This must be done after the terminal is attached to the\r\n // parent element and refitted.\r\n this.ptyProcessOptions = {\r\n 'name': name,\r\n 'cwd': cwd,\r\n 'env': env\r\n }\r\n if (encoding) {\r\n // There's some issue if 'encoding=null' is passed in the options,\r\n // therefore, only set it if there's an actual encoding to set.\r\n this.ptyProcessOptions['encoding'] = encoding\r\n }\r\n\r\n this.ptyProcessOptions.cols = this.ptyProcessCols\r\n this.ptyProcessOptions.rows = this.ptyProcessRows\r\n this.ptyProcess = null\r\n this.ptyProcessRunning = false\r\n try {\r\n this.ptyProcess = spawnPty(this.ptyProcessCommand, this.ptyProcessArgs, this.ptyProcessOptions)\r\n } catch (err) {\r\n let message = 'Launching \\'' + this.ptyProcessCommand + '\\' raised the following error: ' + err.message\r\n if (err.message.startsWith('File not found:')) {\r\n message = 'Could not find command \\'' + this.ptyProcessCommand + '\\'.'\r\n }\r\n this.showNotification(\r\n message,\r\n 'error'\r\n )\r\n resolve()\r\n }\r\n if (this.ptyProcess) {\r\n this.ptyProcessRunning = true\r\n this.ptyProcess.on('data', (data) => {\r\n let oldTitle = this.model.title\r\n if (this.model.profile.title !== null) {\r\n this.model.title = this.model.profile.title\r\n } else if (process.platform !== 'win32') {\r\n this.model.title = this.ptyProcess.process\r\n }\r\n if (oldTitle !== this.model.title) {\r\n this.model.emitter.emit('did-change-title', this.model.title)\r\n }\r\n this.terminal.write(data)\r\n this.model.handleNewDataArrival()\r\n })\r\n this.ptyProcess.on('exit', (code, signal) => {\r\n this.ptyProcessRunning = false\r\n if (!this.leaveOpenAfterExit()) {\r\n this.model.exit()\r\n } else {\r\n if (code === 0) {\r\n this.showNotification(\r\n 'The terminal process has finished successfully.',\r\n 'success'\r\n )\r\n } else {\r\n this.showNotification(\r\n 'The terminal process has exited with failure code \\'' + code + '\\'.',\r\n 'error'\r\n )\r\n }\r\n }\r\n })\r\n this.topDiv.innerHTML = ''\r\n resolve()\r\n }\r\n })\r\n })\r\n }\r\n\r\n applyPendingTerminalProfileOptions () {\r\n // For any changes involving the xterm.js Terminal object, only apply them\r\n // when the terminal is visible.\r\n if (this.terminalDivIntersectionRatio === 1.0) {\r\n let xtermOptions = this.pendingTerminalProfileOptions.xtermOptions || {}\r\n // NOTE: For legacy reasons, the font size is defined from the 'fontSize'\r\n // key outside of any defined xterm.js Terminal options.\r\n delete xtermOptions.fontSize\r\n if (this.pendingTerminalProfileOptions.hasOwnProperty('fontSize')) {\r\n xtermOptions.fontSize = this.pendingTerminalProfileOptions.fontSize\r\n delete this.pendingTerminalProfileOptions.fontSize\r\n }\r\n this.setMainBackgroundColor()\r\n for (const key of Object.keys(xtermOptions)) {\r\n this.terminal.setOption(key, xtermOptions[key])\r\n }\r\n delete this.pendingTerminalProfileOptions.xtermOptions\r\n\r\n // Restart the pty process if changes to the pty process settings are\r\n // being made.\r\n // NOTE: When applying new pty settings, the terminal still needs to be\r\n // visible.\r\n let a = new Set(Object.keys(this.pendingTerminalProfileOptions))\r\n let intersection = new Set([...a].filter(x => PTY_PROCESS_OPTIONS.has(x)))\r\n if (intersection.size !== 0) {\r\n this.restartPtyProcess()\r\n for (const key of intersection) {\r\n delete this.pendingTerminalProfileOptions[key]\r\n }\r\n }\r\n\r\n this.refitTerminal()\r\n }\r\n\r\n // atom-xterm specific options can be removed since at this point they\r\n // should already be applied in the terminal's profile.\r\n for (const key of ATOM_XTERM_OPTIONS) {\r\n delete this.pendingTerminalProfileOptions[key]\r\n }\r\n }\r\n\r\n refitTerminal () {\r\n // Only refit the terminal when it is completely visible.\r\n if (this.terminalDivIntersectionRatio === 1.0) {\r\n const geometry = this.terminal.proposeGeometry()\r\n if (geometry) {\r\n // Resize terminal\r\n let newTerminalCols = geometry.cols\r\n if (process.platform === 'win32' && newTerminalCols < this.terminal.cols) {\r\n // In Windows, resizing to smaller amount of columns poses a problem.\r\n // Workaround this by only allowing increasing the number of columns.\r\n // See also\r\n // https://github.com/amejia1/atom-xterm/issues/10 .\r\n newTerminalCols = this.terminal.cols\r\n }\r\n if (geometry.rows !== this.terminal.rows || newTerminalCols !== this.terminal.cols) {\r\n this.terminal.resize(newTerminalCols, geometry.rows)\r\n }\r\n\r\n // Resize pty process\r\n if (this.isPtyProcessRunning()) {\r\n if (this.ptyProcessCols !== geometry.cols || this.ptyProcessRows !== geometry.rows) {\r\n this.ptyProcess.resize(geometry.cols, geometry.rows)\r\n }\r\n }\r\n this.ptyProcessCols = geometry.cols\r\n this.ptyProcessRows = geometry.rows\r\n }\r\n }\r\n }\r\n\r\n focusOnTerminal () {\r\n if (this.terminal) {\r\n this.terminal.focus()\r\n }\r\n }\r\n\r\n toggleProfileMenu () {\r\n // The profile menu needs to be initialized before it can be toggled.\r\n this.atomXtermProfileMenuElement.initializedPromise.then(() => {\r\n this.atomXtermProfileMenuElement.toggleProfileMenu()\r\n })\r\n }\r\n\r\n hideTerminal () {\r\n this.terminalDiv.style.visibility = 'hidden'\r\n }\r\n\r\n showTerminal () {\r\n this.terminalDiv.style.visibility = 'visible'\r\n }\r\n\r\n setHoveredLink (link) {\r\n this.hoveredLink = link\r\n this.terminalDiv.classList.add('atom-xterm-term-container-has-link')\r\n }\r\n\r\n clearHoveredLink () {\r\n this.terminalDiv.classList.remove('atom-xterm-term-container-has-link')\r\n this.hoveredLink = null\r\n }\r\n\r\n openHoveredLink () {\r\n if (this.hoveredLink) {\r\n shell.openExternal(this.hoveredLink)\r\n }\r\n }\r\n\r\n getHoveredLink () {\r\n if (this.hoveredLink) {\r\n return this.hoveredLink\r\n }\r\n }\r\n\r\n queueNewProfileChanges (profileChanges) {\r\n this.pendingTerminalProfileOptions = Object.assign(this.pendingTerminalProfileOptions, profileChanges)\r\n this.applyPendingTerminalProfileOptions()\r\n }\r\n}\r\n\r\nconst AtomXtermElement = document.registerElement('atom-xterm', {\r\n prototype: AtomXtermElementImpl.prototype\r\n})\r\n\r\nexport {\r\n AtomXtermElement\r\n}\r\n","function _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nmodule.exports = _interopRequireWildcard;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","module.exports = __WEBPACK_EXTERNAL_MODULE__85__;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Terminal_1 = require(\"../Terminal\");\nvar Strings = require(\"../Strings\");\nvar Terminal = (function () {\n function Terminal(options) {\n this._core = new Terminal_1.Terminal(options);\n }\n Object.defineProperty(Terminal.prototype, \"element\", {\n get: function () { return this._core.element; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"textarea\", {\n get: function () { return this._core.textarea; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"rows\", {\n get: function () { return this._core.rows; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"cols\", {\n get: function () { return this._core.cols; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"markers\", {\n get: function () { return this._core.markers; },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.blur = function () {\n this._core.blur();\n };\n Terminal.prototype.focus = function () {\n this._core.focus();\n };\n Terminal.prototype.on = function (type, listener) {\n this._core.on(type, listener);\n };\n Terminal.prototype.off = function (type, listener) {\n this._core.off(type, listener);\n };\n Terminal.prototype.emit = function (type, data) {\n this._core.emit(type, data);\n };\n Terminal.prototype.addDisposableListener = function (type, handler) {\n return this._core.addDisposableListener(type, handler);\n };\n Terminal.prototype.resize = function (columns, rows) {\n this._core.resize(columns, rows);\n };\n Terminal.prototype.writeln = function (data) {\n this._core.writeln(data);\n };\n Terminal.prototype.open = function (parent) {\n this._core.open(parent);\n };\n Terminal.prototype.attachCustomKeyEventHandler = function (customKeyEventHandler) {\n this._core.attachCustomKeyEventHandler(customKeyEventHandler);\n };\n Terminal.prototype.registerLinkMatcher = function (regex, handler, options) {\n return this._core.registerLinkMatcher(regex, handler, options);\n };\n Terminal.prototype.deregisterLinkMatcher = function (matcherId) {\n this._core.deregisterLinkMatcher(matcherId);\n };\n Terminal.prototype.registerCharacterJoiner = function (handler) {\n return this._core.registerCharacterJoiner(handler);\n };\n Terminal.prototype.deregisterCharacterJoiner = function (joinerId) {\n this._core.deregisterCharacterJoiner(joinerId);\n };\n Terminal.prototype.addMarker = function (cursorYOffset) {\n return this._core.addMarker(cursorYOffset);\n };\n Terminal.prototype.hasSelection = function () {\n return this._core.hasSelection();\n };\n Terminal.prototype.getSelection = function () {\n return this._core.getSelection();\n };\n Terminal.prototype.clearSelection = function () {\n this._core.clearSelection();\n };\n Terminal.prototype.selectAll = function () {\n this._core.selectAll();\n };\n Terminal.prototype.selectLines = function (start, end) {\n this._core.selectLines(start, end);\n };\n Terminal.prototype.dispose = function () {\n this._core.dispose();\n };\n Terminal.prototype.destroy = function () {\n this._core.destroy();\n };\n Terminal.prototype.scrollLines = function (amount) {\n this._core.scrollLines(amount);\n };\n Terminal.prototype.scrollPages = function (pageCount) {\n this._core.scrollPages(pageCount);\n };\n Terminal.prototype.scrollToTop = function () {\n this._core.scrollToTop();\n };\n Terminal.prototype.scrollToBottom = function () {\n this._core.scrollToBottom();\n };\n Terminal.prototype.scrollToLine = function (line) {\n this._core.scrollToLine(line);\n };\n Terminal.prototype.clear = function () {\n this._core.clear();\n };\n Terminal.prototype.write = function (data) {\n this._core.write(data);\n };\n Terminal.prototype.getOption = function (key) {\n return this._core.getOption(key);\n };\n Terminal.prototype.setOption = function (key, value) {\n this._core.setOption(key, value);\n };\n Terminal.prototype.refresh = function (start, end) {\n this._core.refresh(start, end);\n };\n Terminal.prototype.reset = function () {\n this._core.reset();\n };\n Terminal.applyAddon = function (addon) {\n addon.apply(Terminal);\n };\n Object.defineProperty(Terminal, \"strings\", {\n get: function () {\n return Strings;\n },\n enumerable: true,\n configurable: true\n });\n return Terminal;\n}());\nexports.Terminal = Terminal;\n//# sourceMappingURL=Terminal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BufferSet_1 = require(\"./BufferSet\");\nvar Buffer_1 = require(\"./Buffer\");\nvar CompositionHelper_1 = require(\"./CompositionHelper\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar Viewport_1 = require(\"./Viewport\");\nvar Clipboard_1 = require(\"./handlers/Clipboard\");\nvar EscapeSequences_1 = require(\"./common/data/EscapeSequences\");\nvar InputHandler_1 = require(\"./InputHandler\");\nvar Renderer_1 = require(\"./renderer/Renderer\");\nvar Linkifier_1 = require(\"./Linkifier\");\nvar SelectionManager_1 = require(\"./SelectionManager\");\nvar CharMeasure_1 = require(\"./ui/CharMeasure\");\nvar Browser = require(\"./shared/utils/Browser\");\nvar Lifecycle_1 = require(\"./ui/Lifecycle\");\nvar Strings = require(\"./Strings\");\nvar MouseHelper_1 = require(\"./utils/MouseHelper\");\nvar Clone_1 = require(\"./utils/Clone\");\nvar SoundManager_1 = require(\"./SoundManager\");\nvar ColorManager_1 = require(\"./renderer/ColorManager\");\nvar MouseZoneManager_1 = require(\"./ui/MouseZoneManager\");\nvar AccessibilityManager_1 = require(\"./AccessibilityManager\");\nvar ScreenDprMonitor_1 = require(\"./ui/ScreenDprMonitor\");\nvar CharAtlasCache_1 = require(\"./renderer/atlas/CharAtlasCache\");\nvar DomRenderer_1 = require(\"./renderer/dom/DomRenderer\");\nvar Keyboard_1 = require(\"./core/input/Keyboard\");\nvar document = (typeof window !== 'undefined') ? window.document : null;\nvar WRITE_BUFFER_PAUSE_THRESHOLD = 5;\nvar WRITE_BATCH_SIZE = 300;\nvar CONSTRUCTOR_ONLY_OPTIONS = ['cols', 'rows'];\nvar DEFAULT_OPTIONS = {\n cols: 80,\n rows: 24,\n convertEol: false,\n termName: 'xterm',\n cursorBlink: false,\n cursorStyle: 'block',\n bellSound: SoundManager_1.DEFAULT_BELL_SOUND,\n bellStyle: 'none',\n drawBoldTextInBrightColors: true,\n enableBold: true,\n experimentalCharAtlas: 'static',\n fontFamily: 'courier-new, courier, monospace',\n fontSize: 15,\n fontWeight: 'normal',\n fontWeightBold: 'bold',\n lineHeight: 1.0,\n letterSpacing: 0,\n scrollback: 1000,\n screenKeys: false,\n screenReaderMode: false,\n debug: false,\n macOptionIsMeta: false,\n macOptionClickForcesSelection: false,\n cancelEvents: false,\n disableStdin: false,\n useFlowControl: false,\n allowTransparency: false,\n tabStopWidth: 8,\n theme: null,\n rightClickSelectsWord: Browser.isMac,\n rendererType: 'canvas'\n};\nvar Terminal = (function (_super) {\n __extends(Terminal, _super);\n function Terminal(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this) || this;\n _this.browser = Browser;\n _this.options = Clone_1.clone(options);\n _this._setup();\n return _this;\n }\n Terminal.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._customKeyEventHandler = null;\n CharAtlasCache_1.removeTerminalFromCache(this);\n this.handler = function () { };\n this.write = function () { };\n if (this.element && this.element.parentNode) {\n this.element.parentNode.removeChild(this.element);\n }\n };\n Terminal.prototype.destroy = function () {\n this.dispose();\n };\n Terminal.prototype._setup = function () {\n var _this = this;\n Object.keys(DEFAULT_OPTIONS).forEach(function (key) {\n if (_this.options[key] == null) {\n _this.options[key] = DEFAULT_OPTIONS[key];\n }\n });\n this._parent = document ? document.body : null;\n this.cols = this.options.cols;\n this.rows = this.options.rows;\n if (this.options.handler) {\n this.on('data', this.options.handler);\n }\n this.cursorState = 0;\n this.cursorHidden = false;\n this._customKeyEventHandler = null;\n this.applicationKeypad = false;\n this.applicationCursor = false;\n this.originMode = false;\n this.insertMode = false;\n this.wraparoundMode = true;\n this.bracketedPasteMode = false;\n this.charset = null;\n this.gcharset = null;\n this.glevel = 0;\n this.charsets = [null];\n this.curAttr = Buffer_1.DEFAULT_ATTR;\n this.params = [];\n this.currentParam = 0;\n this.writeBuffer = [];\n this._writeInProgress = false;\n this._xoffSentToCatchUp = false;\n this._userScrolling = false;\n this._inputHandler = new InputHandler_1.InputHandler(this);\n this.register(this._inputHandler);\n this.renderer = this.renderer || null;\n this.selectionManager = this.selectionManager || null;\n this.linkifier = this.linkifier || new Linkifier_1.Linkifier(this);\n this._mouseZoneManager = this._mouseZoneManager || null;\n this.soundManager = this.soundManager || new SoundManager_1.SoundManager(this);\n this.buffers = new BufferSet_1.BufferSet(this);\n if (this.selectionManager) {\n this.selectionManager.clearSelection();\n this.selectionManager.initBuffersListeners();\n }\n };\n Object.defineProperty(Terminal.prototype, \"buffer\", {\n get: function () {\n return this.buffers.active;\n },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.eraseAttr = function () {\n return (Buffer_1.DEFAULT_ATTR & ~0x1ff) | (this.curAttr & 0x1ff);\n };\n Terminal.prototype.focus = function () {\n if (this.textarea) {\n this.textarea.focus();\n }\n };\n Object.defineProperty(Terminal.prototype, \"isFocused\", {\n get: function () {\n return document.activeElement === this.textarea;\n },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.getOption = function (key) {\n if (!(key in DEFAULT_OPTIONS)) {\n throw new Error('No option with key \"' + key + '\"');\n }\n return this.options[key];\n };\n Terminal.prototype.setOption = function (key, value) {\n if (!(key in DEFAULT_OPTIONS)) {\n throw new Error('No option with key \"' + key + '\"');\n }\n if (CONSTRUCTOR_ONLY_OPTIONS.indexOf(key) !== -1) {\n console.error(\"Option \\\"\" + key + \"\\\" can only be set in the constructor\");\n }\n if (this.options[key] === value) {\n return;\n }\n switch (key) {\n case 'bellStyle':\n if (!value) {\n value = 'none';\n }\n break;\n case 'cursorStyle':\n if (!value) {\n value = 'block';\n }\n break;\n case 'fontWeight':\n if (!value) {\n value = 'normal';\n }\n break;\n case 'fontWeightBold':\n if (!value) {\n value = 'bold';\n }\n break;\n case 'lineHeight':\n if (value < 1) {\n console.warn(key + \" cannot be less than 1, value: \" + value);\n return;\n }\n case 'rendererType':\n if (!value) {\n value = 'canvas';\n }\n break;\n case 'tabStopWidth':\n if (value < 1) {\n console.warn(key + \" cannot be less than 1, value: \" + value);\n return;\n }\n break;\n case 'theme':\n if (this.renderer) {\n this._setTheme(value);\n return;\n }\n break;\n case 'scrollback':\n value = Math.min(value, Buffer_1.MAX_BUFFER_SIZE);\n if (value < 0) {\n console.warn(key + \" cannot be less than 0, value: \" + value);\n return;\n }\n if (this.options[key] !== value) {\n var newBufferLength = this.rows + value;\n if (this.buffer.lines.length > newBufferLength) {\n var amountToTrim = this.buffer.lines.length - newBufferLength;\n var needsRefresh = (this.buffer.ydisp - amountToTrim < 0);\n this.buffer.lines.trimStart(amountToTrim);\n this.buffer.ybase = Math.max(this.buffer.ybase - amountToTrim, 0);\n this.buffer.ydisp = Math.max(this.buffer.ydisp - amountToTrim, 0);\n if (needsRefresh) {\n this.refresh(0, this.rows - 1);\n }\n }\n }\n break;\n }\n this.options[key] = value;\n switch (key) {\n case 'fontFamily':\n case 'fontSize':\n if (this.renderer) {\n this.renderer.clear();\n this.charMeasure.measure(this.options);\n }\n break;\n case 'drawBoldTextInBrightColors':\n case 'experimentalCharAtlas':\n case 'enableBold':\n case 'letterSpacing':\n case 'lineHeight':\n case 'fontWeight':\n case 'fontWeightBold':\n if (this.renderer) {\n this.renderer.clear();\n this.renderer.onResize(this.cols, this.rows);\n this.refresh(0, this.rows - 1);\n }\n case 'rendererType':\n if (this.renderer) {\n this.unregister(this.renderer);\n this.renderer.dispose();\n this.renderer = null;\n }\n this._setupRenderer();\n this.renderer.onCharSizeChanged();\n if (this._theme) {\n this.renderer.setTheme(this._theme);\n }\n break;\n case 'scrollback':\n this.buffers.resize(this.cols, this.rows);\n if (this.viewport) {\n this.viewport.syncScrollArea();\n }\n break;\n case 'screenReaderMode':\n if (value) {\n if (!this._accessibilityManager) {\n this._accessibilityManager = new AccessibilityManager_1.AccessibilityManager(this);\n }\n }\n else {\n if (this._accessibilityManager) {\n this._accessibilityManager.dispose();\n this._accessibilityManager = null;\n }\n }\n break;\n case 'tabStopWidth':\n this.buffers.setupTabStops();\n break;\n }\n if (this.renderer) {\n this.renderer.onOptionsChanged();\n }\n };\n Terminal.prototype._onTextAreaFocus = function () {\n if (this.sendFocus) {\n this.handler(EscapeSequences_1.C0.ESC + '[I');\n }\n this.element.classList.add('focus');\n this.showCursor();\n this.emit('focus');\n };\n Terminal.prototype.blur = function () {\n return this.textarea.blur();\n };\n Terminal.prototype._onTextAreaBlur = function () {\n this.textarea.value = '';\n this.refresh(this.buffer.y, this.buffer.y);\n if (this.sendFocus) {\n this.handler(EscapeSequences_1.C0.ESC + '[O');\n }\n this.element.classList.remove('focus');\n this.emit('blur');\n };\n Terminal.prototype._initGlobal = function () {\n var _this = this;\n this._bindKeys();\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'copy', function (event) {\n if (!_this.hasSelection()) {\n return;\n }\n Clipboard_1.copyHandler(event, _this, _this.selectionManager);\n }));\n var pasteHandlerWrapper = function (event) { return Clipboard_1.pasteHandler(event, _this); };\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'paste', pasteHandlerWrapper));\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'paste', pasteHandlerWrapper));\n if (Browser.isFirefox) {\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'mousedown', function (event) {\n if (event.button === 2) {\n Clipboard_1.rightClickHandler(event, _this.textarea, _this.selectionManager, _this.options.rightClickSelectsWord);\n }\n }));\n }\n else {\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'contextmenu', function (event) {\n Clipboard_1.rightClickHandler(event, _this.textarea, _this.selectionManager, _this.options.rightClickSelectsWord);\n }));\n }\n if (Browser.isLinux) {\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'auxclick', function (event) {\n if (event.button === 1) {\n Clipboard_1.moveTextAreaUnderMouseCursor(event, _this.textarea);\n }\n }));\n }\n };\n Terminal.prototype._bindKeys = function () {\n var _this = this;\n var self = this;\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keydown', function (ev) {\n if (document.activeElement !== this) {\n return;\n }\n self._keyDown(ev);\n }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keypress', function (ev) {\n if (document.activeElement !== this) {\n return;\n }\n self._keyPress(ev);\n }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keyup', function (ev) {\n if (!wasModifierKeyOnlyEvent(ev)) {\n _this.focus();\n }\n self._keyUp(ev);\n }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'keydown', function (ev) { return _this._keyDown(ev); }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'keypress', function (ev) { return _this._keyPress(ev); }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionstart', function () { return _this._compositionHelper.compositionstart(); }));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionupdate', function (e) { return _this._compositionHelper.compositionupdate(e); }));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionend', function () { return _this._compositionHelper.compositionend(); }));\n this.register(this.addDisposableListener('refresh', function () { return _this._compositionHelper.updateCompositionElements(); }));\n this.register(this.addDisposableListener('refresh', function (data) { return _this._queueLinkification(data.start, data.end); }));\n };\n Terminal.prototype.open = function (parent) {\n var _this = this;\n this._parent = parent || this._parent;\n if (!this._parent) {\n throw new Error('Terminal requires a parent element.');\n }\n this._context = this._parent.ownerDocument.defaultView;\n this._document = this._parent.ownerDocument;\n this._screenDprMonitor = new ScreenDprMonitor_1.ScreenDprMonitor();\n this._screenDprMonitor.setListener(function () { return _this.emit('dprchange', window.devicePixelRatio); });\n this.register(this._screenDprMonitor);\n this.element = this._document.createElement('div');\n this.element.dir = 'ltr';\n this.element.classList.add('terminal');\n this.element.classList.add('xterm');\n this.element.setAttribute('tabindex', '0');\n this._parent.appendChild(this.element);\n var fragment = document.createDocumentFragment();\n this._viewportElement = document.createElement('div');\n this._viewportElement.classList.add('xterm-viewport');\n fragment.appendChild(this._viewportElement);\n this._viewportScrollArea = document.createElement('div');\n this._viewportScrollArea.classList.add('xterm-scroll-area');\n this._viewportElement.appendChild(this._viewportScrollArea);\n this.screenElement = document.createElement('div');\n this.screenElement.classList.add('xterm-screen');\n this._helperContainer = document.createElement('div');\n this._helperContainer.classList.add('xterm-helpers');\n this.screenElement.appendChild(this._helperContainer);\n fragment.appendChild(this.screenElement);\n this._mouseZoneManager = new MouseZoneManager_1.MouseZoneManager(this);\n this.register(this._mouseZoneManager);\n this.register(this.addDisposableListener('scroll', function () { return _this._mouseZoneManager.clearAll(); }));\n this.linkifier.attachToDom(this._mouseZoneManager);\n this.textarea = document.createElement('textarea');\n this.textarea.classList.add('xterm-helper-textarea');\n this.textarea.setAttribute('aria-label', Strings.promptLabel);\n this.textarea.setAttribute('aria-multiline', 'false');\n this.textarea.setAttribute('autocorrect', 'off');\n this.textarea.setAttribute('autocapitalize', 'off');\n this.textarea.setAttribute('spellcheck', 'false');\n this.textarea.tabIndex = 0;\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'focus', function () { return _this._onTextAreaFocus(); }));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'blur', function () { return _this._onTextAreaBlur(); }));\n this._helperContainer.appendChild(this.textarea);\n this._compositionView = document.createElement('div');\n this._compositionView.classList.add('composition-view');\n this._compositionHelper = new CompositionHelper_1.CompositionHelper(this.textarea, this._compositionView, this);\n this._helperContainer.appendChild(this._compositionView);\n this.charMeasure = new CharMeasure_1.CharMeasure(document, this._helperContainer);\n this.element.appendChild(fragment);\n this._setupRenderer();\n this._theme = this.options.theme;\n this.options.theme = null;\n this.viewport = new Viewport_1.Viewport(this, this._viewportElement, this._viewportScrollArea, this.charMeasure);\n this.viewport.onThemeChanged(this.renderer.colorManager.colors);\n this.register(this.viewport);\n this.register(this.addDisposableListener('cursormove', function () { return _this.renderer.onCursorMove(); }));\n this.register(this.addDisposableListener('resize', function () { return _this.renderer.onResize(_this.cols, _this.rows); }));\n this.register(this.addDisposableListener('blur', function () { return _this.renderer.onBlur(); }));\n this.register(this.addDisposableListener('focus', function () { return _this.renderer.onFocus(); }));\n this.register(this.addDisposableListener('dprchange', function () { return _this.renderer.onWindowResize(window.devicePixelRatio); }));\n this.register(Lifecycle_1.addDisposableDomListener(window, 'resize', function () { return _this.renderer.onWindowResize(window.devicePixelRatio); }));\n this.register(this.charMeasure.addDisposableListener('charsizechanged', function () { return _this.renderer.onCharSizeChanged(); }));\n this.register(this.renderer.addDisposableListener('resize', function (dimensions) { return _this.viewport.syncScrollArea(); }));\n this.selectionManager = new SelectionManager_1.SelectionManager(this, this.charMeasure);\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'mousedown', function (e) { return _this.selectionManager.onMouseDown(e); }));\n this.register(this.selectionManager.addDisposableListener('refresh', function (data) { return _this.renderer.onSelectionChanged(data.start, data.end, data.columnSelectMode); }));\n this.register(this.selectionManager.addDisposableListener('newselection', function (text) {\n _this.textarea.value = text;\n _this.textarea.focus();\n _this.textarea.select();\n }));\n this.register(this.addDisposableListener('scroll', function () {\n _this.viewport.syncScrollArea();\n _this.selectionManager.refresh();\n }));\n this.register(Lifecycle_1.addDisposableDomListener(this._viewportElement, 'scroll', function () { return _this.selectionManager.refresh(); }));\n this.mouseHelper = new MouseHelper_1.MouseHelper(this.renderer);\n if (this.options.screenReaderMode) {\n this._accessibilityManager = new AccessibilityManager_1.AccessibilityManager(this);\n }\n this.charMeasure.measure(this.options);\n this.refresh(0, this.rows - 1);\n this._initGlobal();\n this.bindMouse();\n };\n Terminal.prototype._setupRenderer = function () {\n switch (this.options.rendererType) {\n case 'canvas':\n this.renderer = new Renderer_1.Renderer(this, this.options.theme);\n break;\n case 'dom':\n this.renderer = new DomRenderer_1.DomRenderer(this, this.options.theme);\n break;\n default: throw new Error(\"Unrecognized rendererType \\\"\" + this.options.rendererType + \"\\\"\");\n }\n this.register(this.renderer);\n };\n Terminal.prototype._setTheme = function (theme) {\n this._theme = theme;\n var colors = this.renderer.setTheme(theme);\n if (this.viewport) {\n this.viewport.onThemeChanged(colors);\n }\n };\n Terminal.prototype.bindMouse = function () {\n var _this = this;\n var el = this.element;\n var self = this;\n var pressed = 32;\n function sendButton(ev) {\n var button;\n var pos;\n button = getButton(ev);\n pos = self.mouseHelper.getRawByteCoords(ev, self.screenElement, self.charMeasure, self.options.lineHeight, self.cols, self.rows);\n if (!pos)\n return;\n sendEvent(button, pos);\n switch (ev.overrideType || ev.type) {\n case 'mousedown':\n pressed = button;\n break;\n case 'mouseup':\n pressed = 32;\n break;\n case 'wheel':\n break;\n }\n }\n function sendMove(ev) {\n var button = pressed;\n var pos = self.mouseHelper.getRawByteCoords(ev, self.screenElement, self.charMeasure, self.options.lineHeight, self.cols, self.rows);\n if (!pos)\n return;\n button += 32;\n sendEvent(button, pos);\n }\n function encode(data, ch) {\n if (!self.utfMouse) {\n if (ch === 255) {\n data.push(0);\n return;\n }\n if (ch > 127)\n ch = 127;\n data.push(ch);\n }\n else {\n if (ch === 2047) {\n data.push(0);\n return;\n }\n if (ch < 127) {\n data.push(ch);\n }\n else {\n if (ch > 2047)\n ch = 2047;\n data.push(0xC0 | (ch >> 6));\n data.push(0x80 | (ch & 0x3F));\n }\n }\n }\n function sendEvent(button, pos) {\n if (self._vt300Mouse) {\n button &= 3;\n pos.x -= 32;\n pos.y -= 32;\n var data_1 = EscapeSequences_1.C0.ESC + '[24';\n if (button === 0)\n data_1 += '1';\n else if (button === 1)\n data_1 += '3';\n else if (button === 2)\n data_1 += '5';\n else if (button === 3)\n return;\n else\n data_1 += '0';\n data_1 += '~[' + pos.x + ',' + pos.y + ']\\r';\n self.handler(data_1);\n return;\n }\n if (self._decLocator) {\n button &= 3;\n pos.x -= 32;\n pos.y -= 32;\n if (button === 0)\n button = 2;\n else if (button === 1)\n button = 4;\n else if (button === 2)\n button = 6;\n else if (button === 3)\n button = 3;\n self.handler(EscapeSequences_1.C0.ESC + '['\n + button\n + ';'\n + (button === 3 ? 4 : 0)\n + ';'\n + pos.y\n + ';'\n + pos.x\n + ';'\n + pos.page || 0\n + '&w');\n return;\n }\n if (self.urxvtMouse) {\n pos.x -= 32;\n pos.y -= 32;\n pos.x++;\n pos.y++;\n self.handler(EscapeSequences_1.C0.ESC + '[' + button + ';' + pos.x + ';' + pos.y + 'M');\n return;\n }\n if (self.sgrMouse) {\n pos.x -= 32;\n pos.y -= 32;\n self.handler(EscapeSequences_1.C0.ESC + '[<'\n + (((button & 3) === 3 ? button & ~3 : button) - 32)\n + ';'\n + pos.x\n + ';'\n + pos.y\n + ((button & 3) === 3 ? 'm' : 'M'));\n return;\n }\n var data = [];\n encode(data, button);\n encode(data, pos.x);\n encode(data, pos.y);\n self.handler(EscapeSequences_1.C0.ESC + '[M' + String.fromCharCode.apply(String, data));\n }\n function getButton(ev) {\n var button;\n var shift;\n var meta;\n var ctrl;\n var mod;\n switch (ev.overrideType || ev.type) {\n case 'mousedown':\n button = ev.button != null\n ? +ev.button\n : ev.which != null\n ? ev.which - 1\n : null;\n if (Browser.isMSIE) {\n button = button === 1 ? 0 : button === 4 ? 1 : button;\n }\n break;\n case 'mouseup':\n button = 3;\n break;\n case 'DOMMouseScroll':\n button = ev.detail < 0\n ? 64\n : 65;\n break;\n case 'wheel':\n button = ev.wheelDeltaY > 0\n ? 64\n : 65;\n break;\n }\n shift = ev.shiftKey ? 4 : 0;\n meta = ev.metaKey ? 8 : 0;\n ctrl = ev.ctrlKey ? 16 : 0;\n mod = shift | meta | ctrl;\n if (self.vt200Mouse) {\n mod &= ctrl;\n }\n else if (!self.normalMouse) {\n mod = 0;\n }\n button = (32 + (mod << 2)) + button;\n return button;\n }\n this.register(Lifecycle_1.addDisposableDomListener(el, 'mousedown', function (ev) {\n ev.preventDefault();\n _this.focus();\n if (!_this.mouseEvents || _this.selectionManager.shouldForceSelection(ev)) {\n return;\n }\n sendButton(ev);\n if (_this.vt200Mouse) {\n ev.overrideType = 'mouseup';\n sendButton(ev);\n return _this.cancel(ev);\n }\n var moveHandler;\n if (_this.normalMouse) {\n moveHandler = function (event) {\n if (!_this.normalMouse) {\n return;\n }\n sendMove(event);\n };\n _this._document.addEventListener('mousemove', moveHandler);\n }\n var handler = function (ev) {\n if (_this.normalMouse && !_this.x10Mouse) {\n sendButton(ev);\n }\n if (moveHandler) {\n _this._document.removeEventListener('mousemove', moveHandler);\n moveHandler = null;\n }\n _this._document.removeEventListener('mouseup', handler);\n return _this.cancel(ev);\n };\n _this._document.addEventListener('mouseup', handler);\n return _this.cancel(ev);\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'wheel', function (ev) {\n if (!_this.mouseEvents) {\n if (!_this.buffer.hasScrollback) {\n var amount = _this.viewport.getLinesScrolled(ev);\n if (amount === 0) {\n return;\n }\n var sequence = EscapeSequences_1.C0.ESC + (_this.applicationCursor ? 'O' : '[') + (ev.deltaY < 0 ? 'A' : 'B');\n var data = '';\n for (var i = 0; i < Math.abs(amount); i++) {\n data += sequence;\n }\n _this.handler(data);\n }\n return;\n }\n if (_this.x10Mouse || _this._vt300Mouse || _this._decLocator)\n return;\n sendButton(ev);\n ev.preventDefault();\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'wheel', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onWheel(ev);\n return _this.cancel(ev);\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'touchstart', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onTouchStart(ev);\n return _this.cancel(ev);\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'touchmove', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onTouchMove(ev);\n return _this.cancel(ev);\n }));\n };\n Terminal.prototype.refresh = function (start, end) {\n if (this.renderer) {\n this.renderer.refreshRows(start, end);\n }\n };\n Terminal.prototype._queueLinkification = function (start, end) {\n if (this.linkifier) {\n this.linkifier.linkifyRows(start, end);\n }\n };\n Terminal.prototype.updateCursorStyle = function (ev) {\n if (this.selectionManager && this.selectionManager.shouldColumnSelect(ev)) {\n this.element.classList.add('xterm-cursor-crosshair');\n }\n else {\n this.element.classList.remove('xterm-cursor-crosshair');\n }\n };\n Terminal.prototype.showCursor = function () {\n if (!this.cursorState) {\n this.cursorState = 1;\n this.refresh(this.buffer.y, this.buffer.y);\n }\n };\n Terminal.prototype.scroll = function (isWrapped) {\n var newLine = this.blankLine(undefined, isWrapped);\n var topRow = this.buffer.ybase + this.buffer.scrollTop;\n var bottomRow = this.buffer.ybase + this.buffer.scrollBottom;\n if (this.buffer.scrollTop === 0) {\n var willBufferBeTrimmed = this.buffer.lines.length === this.buffer.lines.maxLength;\n if (bottomRow === this.buffer.lines.length - 1) {\n this.buffer.lines.push(newLine);\n }\n else {\n this.buffer.lines.splice(bottomRow + 1, 0, newLine);\n }\n if (!willBufferBeTrimmed) {\n this.buffer.ybase++;\n if (!this._userScrolling) {\n this.buffer.ydisp++;\n }\n }\n else {\n if (this._userScrolling) {\n this.buffer.ydisp = Math.max(this.buffer.ydisp - 1, 0);\n }\n }\n }\n else {\n var scrollRegionHeight = bottomRow - topRow + 1;\n this.buffer.lines.shiftElements(topRow + 1, scrollRegionHeight - 1, -1);\n this.buffer.lines.set(bottomRow, newLine);\n }\n if (!this._userScrolling) {\n this.buffer.ydisp = this.buffer.ybase;\n }\n this.updateRange(this.buffer.scrollTop);\n this.updateRange(this.buffer.scrollBottom);\n this.emit('scroll', this.buffer.ydisp);\n };\n Terminal.prototype.scrollLines = function (disp, suppressScrollEvent) {\n if (disp < 0) {\n if (this.buffer.ydisp === 0) {\n return;\n }\n this._userScrolling = true;\n }\n else if (disp + this.buffer.ydisp >= this.buffer.ybase) {\n this._userScrolling = false;\n }\n var oldYdisp = this.buffer.ydisp;\n this.buffer.ydisp = Math.max(Math.min(this.buffer.ydisp + disp, this.buffer.ybase), 0);\n if (oldYdisp === this.buffer.ydisp) {\n return;\n }\n if (!suppressScrollEvent) {\n this.emit('scroll', this.buffer.ydisp);\n }\n this.refresh(0, this.rows - 1);\n };\n Terminal.prototype.scrollPages = function (pageCount) {\n this.scrollLines(pageCount * (this.rows - 1));\n };\n Terminal.prototype.scrollToTop = function () {\n this.scrollLines(-this.buffer.ydisp);\n };\n Terminal.prototype.scrollToBottom = function () {\n this.scrollLines(this.buffer.ybase - this.buffer.ydisp);\n };\n Terminal.prototype.scrollToLine = function (line) {\n var scrollAmount = line - this.buffer.ydisp;\n if (scrollAmount !== 0) {\n this.scrollLines(scrollAmount);\n }\n };\n Terminal.prototype.write = function (data) {\n var _this = this;\n if (this._isDisposed) {\n return;\n }\n if (!data) {\n return;\n }\n this.writeBuffer.push(data);\n if (this.options.useFlowControl && !this._xoffSentToCatchUp && this.writeBuffer.length >= WRITE_BUFFER_PAUSE_THRESHOLD) {\n this.handler(EscapeSequences_1.C0.DC3);\n this._xoffSentToCatchUp = true;\n }\n if (!this._writeInProgress && this.writeBuffer.length > 0) {\n this._writeInProgress = true;\n setTimeout(function () {\n _this._innerWrite();\n });\n }\n };\n Terminal.prototype._innerWrite = function () {\n var _this = this;\n if (this._isDisposed) {\n this.writeBuffer = [];\n }\n var writeBatch = this.writeBuffer.splice(0, WRITE_BATCH_SIZE);\n while (writeBatch.length > 0) {\n var data = writeBatch.shift();\n if (this._xoffSentToCatchUp && writeBatch.length === 0 && this.writeBuffer.length === 0) {\n this.handler(EscapeSequences_1.C0.DC1);\n this._xoffSentToCatchUp = false;\n }\n this._refreshStart = this.buffer.y;\n this._refreshEnd = this.buffer.y;\n this._inputHandler.parse(data);\n this.updateRange(this.buffer.y);\n this.refresh(this._refreshStart, this._refreshEnd);\n }\n if (this.writeBuffer.length > 0) {\n setTimeout(function () { return _this._innerWrite(); }, 0);\n }\n else {\n this._writeInProgress = false;\n }\n };\n Terminal.prototype.writeln = function (data) {\n this.write(data + '\\r\\n');\n };\n Terminal.prototype.attachCustomKeyEventHandler = function (customKeyEventHandler) {\n this._customKeyEventHandler = customKeyEventHandler;\n };\n Terminal.prototype.registerLinkMatcher = function (regex, handler, options) {\n var matcherId = this.linkifier.registerLinkMatcher(regex, handler, options);\n this.refresh(0, this.rows - 1);\n return matcherId;\n };\n Terminal.prototype.deregisterLinkMatcher = function (matcherId) {\n if (this.linkifier.deregisterLinkMatcher(matcherId)) {\n this.refresh(0, this.rows - 1);\n }\n };\n Terminal.prototype.registerCharacterJoiner = function (handler) {\n var joinerId = this.renderer.registerCharacterJoiner(handler);\n this.refresh(0, this.rows - 1);\n return joinerId;\n };\n Terminal.prototype.deregisterCharacterJoiner = function (joinerId) {\n if (this.renderer.deregisterCharacterJoiner(joinerId)) {\n this.refresh(0, this.rows - 1);\n }\n };\n Object.defineProperty(Terminal.prototype, \"markers\", {\n get: function () {\n return this.buffer.markers;\n },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.addMarker = function (cursorYOffset) {\n if (this.buffer !== this.buffers.normal) {\n return;\n }\n return this.buffer.addMarker(this.buffer.ybase + this.buffer.y + cursorYOffset);\n };\n Terminal.prototype.hasSelection = function () {\n return this.selectionManager ? this.selectionManager.hasSelection : false;\n };\n Terminal.prototype.getSelection = function () {\n return this.selectionManager ? this.selectionManager.selectionText : '';\n };\n Terminal.prototype.clearSelection = function () {\n if (this.selectionManager) {\n this.selectionManager.clearSelection();\n }\n };\n Terminal.prototype.selectAll = function () {\n if (this.selectionManager) {\n this.selectionManager.selectAll();\n }\n };\n Terminal.prototype.selectLines = function (start, end) {\n if (this.selectionManager) {\n this.selectionManager.selectLines(start, end);\n }\n };\n Terminal.prototype._keyDown = function (event) {\n if (this._customKeyEventHandler && this._customKeyEventHandler(event) === false) {\n return false;\n }\n if (!this._compositionHelper.keydown(event)) {\n if (this.buffer.ybase !== this.buffer.ydisp) {\n this.scrollToBottom();\n }\n return false;\n }\n var result = Keyboard_1.evaluateKeyboardEvent(event, this.applicationCursor, this.browser.isMac, this.options.macOptionIsMeta);\n this.updateCursorStyle(event);\n if (result.type === 3 || result.type === 2) {\n var scrollCount = this.rows - 1;\n this.scrollLines(result.type === 2 ? -scrollCount : scrollCount);\n return this.cancel(event, true);\n }\n if (result.type === 1) {\n this.selectAll();\n }\n if (this._isThirdLevelShift(this.browser, event)) {\n return true;\n }\n if (result.cancel) {\n this.cancel(event, true);\n }\n if (!result.key) {\n return true;\n }\n this.emit('keydown', event);\n this.emit('key', result.key, event);\n this.showCursor();\n this.handler(result.key);\n return this.cancel(event, true);\n };\n Terminal.prototype._isThirdLevelShift = function (browser, ev) {\n var thirdLevelKey = (browser.isMac && !this.options.macOptionIsMeta && ev.altKey && !ev.ctrlKey && !ev.metaKey) ||\n (browser.isMSWindows && ev.altKey && ev.ctrlKey && !ev.metaKey);\n if (ev.type === 'keypress') {\n return thirdLevelKey;\n }\n return thirdLevelKey && (!ev.keyCode || ev.keyCode > 47);\n };\n Terminal.prototype.setgLevel = function (g) {\n this.glevel = g;\n this.charset = this.charsets[g];\n };\n Terminal.prototype.setgCharset = function (g, charset) {\n this.charsets[g] = charset;\n if (this.glevel === g) {\n this.charset = charset;\n }\n };\n Terminal.prototype._keyUp = function (ev) {\n this.updateCursorStyle(ev);\n };\n Terminal.prototype._keyPress = function (ev) {\n var key;\n if (this._customKeyEventHandler && this._customKeyEventHandler(ev) === false) {\n return false;\n }\n this.cancel(ev);\n if (ev.charCode) {\n key = ev.charCode;\n }\n else if (ev.which == null) {\n key = ev.keyCode;\n }\n else if (ev.which !== 0 && ev.charCode !== 0) {\n key = ev.which;\n }\n else {\n return false;\n }\n if (!key || ((ev.altKey || ev.ctrlKey || ev.metaKey) && !this._isThirdLevelShift(this.browser, ev))) {\n return false;\n }\n key = String.fromCharCode(key);\n this.emit('keypress', key, ev);\n this.emit('key', key, ev);\n this.showCursor();\n this.handler(key);\n return true;\n };\n Terminal.prototype.bell = function () {\n var _this = this;\n this.emit('bell');\n if (this._soundBell()) {\n this.soundManager.playBellSound();\n }\n if (this._visualBell()) {\n this.element.classList.add('visual-bell-active');\n clearTimeout(this._visualBellTimer);\n this._visualBellTimer = window.setTimeout(function () {\n _this.element.classList.remove('visual-bell-active');\n }, 200);\n }\n };\n Terminal.prototype.log = function (text, data) {\n if (!this.options.debug)\n return;\n if (!this._context.console || !this._context.console.log)\n return;\n this._context.console.log(text, data);\n };\n Terminal.prototype.error = function (text, data) {\n if (!this.options.debug)\n return;\n if (!this._context.console || !this._context.console.error)\n return;\n this._context.console.error(text, data);\n };\n Terminal.prototype.resize = function (x, y) {\n if (isNaN(x) || isNaN(y)) {\n return;\n }\n if (x === this.cols && y === this.rows) {\n if (this.charMeasure && (!this.charMeasure.width || !this.charMeasure.height)) {\n this.charMeasure.measure(this.options);\n }\n return;\n }\n if (x < 1)\n x = 1;\n if (y < 1)\n y = 1;\n this.buffers.resize(x, y);\n this.cols = x;\n this.rows = y;\n this.buffers.setupTabStops(this.cols);\n if (this.charMeasure) {\n this.charMeasure.measure(this.options);\n }\n this.refresh(0, this.rows - 1);\n this.emit('resize', { cols: x, rows: y });\n };\n Terminal.prototype.updateRange = function (y) {\n if (y < this._refreshStart)\n this._refreshStart = y;\n if (y > this._refreshEnd)\n this._refreshEnd = y;\n };\n Terminal.prototype.maxRange = function () {\n this._refreshStart = 0;\n this._refreshEnd = this.rows - 1;\n };\n Terminal.prototype.eraseRight = function (x, y) {\n var line = this.buffer.lines.get(this.buffer.ybase + y);\n if (!line) {\n return;\n }\n var ch = [this.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n for (; x < this.cols; x++) {\n line[x] = ch;\n }\n this.updateRange(y);\n };\n Terminal.prototype.eraseLeft = function (x, y) {\n var line = this.buffer.lines.get(this.buffer.ybase + y);\n if (!line) {\n return;\n }\n var ch = [this.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n x++;\n while (x--) {\n line[x] = ch;\n }\n this.updateRange(y);\n };\n Terminal.prototype.clear = function () {\n if (this.buffer.ybase === 0 && this.buffer.y === 0) {\n return;\n }\n this.buffer.lines.set(0, this.buffer.lines.get(this.buffer.ybase + this.buffer.y));\n this.buffer.lines.length = 1;\n this.buffer.ydisp = 0;\n this.buffer.ybase = 0;\n this.buffer.y = 0;\n for (var i = 1; i < this.rows; i++) {\n this.buffer.lines.push(this.blankLine());\n }\n this.refresh(0, this.rows - 1);\n this.emit('scroll', this.buffer.ydisp);\n };\n Terminal.prototype.eraseLine = function (y) {\n this.eraseRight(0, y);\n };\n Terminal.prototype.blankLine = function (cur, isWrapped, cols) {\n var attr = cur ? this.eraseAttr() : Buffer_1.DEFAULT_ATTR;\n var ch = [attr, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n var line = [];\n if (isWrapped) {\n line.isWrapped = isWrapped;\n }\n cols = cols || this.cols;\n for (var i = 0; i < cols; i++) {\n line[i] = ch;\n }\n return line;\n };\n Terminal.prototype.ch = function (cur) {\n if (cur) {\n return [this.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n }\n return [Buffer_1.DEFAULT_ATTR, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n };\n Terminal.prototype.is = function (term) {\n return (this.options.termName + '').indexOf(term) === 0;\n };\n Terminal.prototype.handler = function (data) {\n if (this.options.disableStdin) {\n return;\n }\n if (this.selectionManager && this.selectionManager.hasSelection) {\n this.selectionManager.clearSelection();\n }\n if (this.buffer.ybase !== this.buffer.ydisp) {\n this.scrollToBottom();\n }\n this.emit('data', data);\n };\n Terminal.prototype.handleTitle = function (title) {\n this.emit('title', title);\n };\n Terminal.prototype.index = function () {\n this.buffer.y++;\n if (this.buffer.y > this.buffer.scrollBottom) {\n this.buffer.y--;\n this.scroll();\n }\n if (this.buffer.x >= this.cols) {\n this.buffer.x--;\n }\n };\n Terminal.prototype.reverseIndex = function () {\n if (this.buffer.y === this.buffer.scrollTop) {\n var scrollRegionHeight = this.buffer.scrollBottom - this.buffer.scrollTop;\n this.buffer.lines.shiftElements(this.buffer.y + this.buffer.ybase, scrollRegionHeight, 1);\n this.buffer.lines.set(this.buffer.y + this.buffer.ybase, this.blankLine(true));\n this.updateRange(this.buffer.scrollTop);\n this.updateRange(this.buffer.scrollBottom);\n }\n else {\n this.buffer.y--;\n }\n };\n Terminal.prototype.reset = function () {\n this.options.rows = this.rows;\n this.options.cols = this.cols;\n var customKeyEventHandler = this._customKeyEventHandler;\n var inputHandler = this._inputHandler;\n var cursorState = this.cursorState;\n this._setup();\n this._customKeyEventHandler = customKeyEventHandler;\n this._inputHandler = inputHandler;\n this.cursorState = cursorState;\n this.refresh(0, this.rows - 1);\n if (this.viewport) {\n this.viewport.syncScrollArea();\n }\n };\n Terminal.prototype.tabSet = function () {\n this.buffer.tabs[this.buffer.x] = true;\n };\n Terminal.prototype.cancel = function (ev, force) {\n if (!this.options.cancelEvents && !force) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n };\n Terminal.prototype.matchColor = function (r1, g1, b1) {\n var hash = (r1 << 16) | (g1 << 8) | b1;\n if (matchColorCache[hash] != null) {\n return matchColorCache[hash];\n }\n var ldiff = Infinity;\n var li = -1;\n var i = 0;\n var c;\n var r2;\n var g2;\n var b2;\n var diff;\n for (; i < ColorManager_1.DEFAULT_ANSI_COLORS.length; i++) {\n c = ColorManager_1.DEFAULT_ANSI_COLORS[i].rgba;\n r2 = c >>> 24;\n g2 = c >>> 16 & 0xFF;\n b2 = c >>> 8 & 0xFF;\n diff = matchColorDistance(r1, g1, b1, r2, g2, b2);\n if (diff === 0) {\n li = i;\n break;\n }\n if (diff < ldiff) {\n ldiff = diff;\n li = i;\n }\n }\n return matchColorCache[hash] = li;\n };\n Terminal.prototype._visualBell = function () {\n return false;\n };\n Terminal.prototype._soundBell = function () {\n return this.options.bellStyle === 'sound';\n };\n return Terminal;\n}(EventEmitter_1.EventEmitter));\nexports.Terminal = Terminal;\nfunction wasModifierKeyOnlyEvent(ev) {\n return ev.keyCode === 16 ||\n ev.keyCode === 17 ||\n ev.keyCode === 18;\n}\nvar matchColorCache = {};\nfunction matchColorDistance(r1, g1, b1, r2, g2, b2) {\n return Math.pow(30 * (r1 - r2), 2)\n + Math.pow(59 * (g1 - g2), 2)\n + Math.pow(11 * (b1 - b2), 2);\n}\n//# sourceMappingURL=Terminal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"./Buffer\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar BufferSet = (function (_super) {\n __extends(BufferSet, _super);\n function BufferSet(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._normal = new Buffer_1.Buffer(_this._terminal, true);\n _this._normal.fillViewportRows();\n _this._alt = new Buffer_1.Buffer(_this._terminal, false);\n _this._activeBuffer = _this._normal;\n _this.setupTabStops();\n return _this;\n }\n Object.defineProperty(BufferSet.prototype, \"alt\", {\n get: function () {\n return this._alt;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferSet.prototype, \"active\", {\n get: function () {\n return this._activeBuffer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferSet.prototype, \"normal\", {\n get: function () {\n return this._normal;\n },\n enumerable: true,\n configurable: true\n });\n BufferSet.prototype.activateNormalBuffer = function () {\n if (this._activeBuffer === this._normal) {\n return;\n }\n this._alt.clear();\n this._activeBuffer = this._normal;\n this.emit('activate', {\n activeBuffer: this._normal,\n inactiveBuffer: this._alt\n });\n };\n BufferSet.prototype.activateAltBuffer = function () {\n if (this._activeBuffer === this._alt) {\n return;\n }\n this._alt.fillViewportRows();\n this._activeBuffer = this._alt;\n this.emit('activate', {\n activeBuffer: this._alt,\n inactiveBuffer: this._normal\n });\n };\n BufferSet.prototype.resize = function (newCols, newRows) {\n this._normal.resize(newCols, newRows);\n this._alt.resize(newCols, newRows);\n };\n BufferSet.prototype.setupTabStops = function (i) {\n this._normal.setupTabStops(i);\n this._alt.setupTabStops(i);\n };\n return BufferSet;\n}(EventEmitter_1.EventEmitter));\nexports.BufferSet = BufferSet;\n//# sourceMappingURL=BufferSet.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter_1 = require(\"../EventEmitter\");\nvar CircularList = (function (_super) {\n __extends(CircularList, _super);\n function CircularList(_maxLength) {\n var _this = _super.call(this) || this;\n _this._maxLength = _maxLength;\n _this._array = new Array(_this._maxLength);\n _this._startIndex = 0;\n _this._length = 0;\n return _this;\n }\n Object.defineProperty(CircularList.prototype, \"maxLength\", {\n get: function () {\n return this._maxLength;\n },\n set: function (newMaxLength) {\n if (this._maxLength === newMaxLength) {\n return;\n }\n var newArray = new Array(newMaxLength);\n for (var i = 0; i < Math.min(newMaxLength, this.length); i++) {\n newArray[i] = this._array[this._getCyclicIndex(i)];\n }\n this._array = newArray;\n this._maxLength = newMaxLength;\n this._startIndex = 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CircularList.prototype, \"length\", {\n get: function () {\n return this._length;\n },\n set: function (newLength) {\n if (newLength > this._length) {\n for (var i = this._length; i < newLength; i++) {\n this._array[i] = undefined;\n }\n }\n this._length = newLength;\n },\n enumerable: true,\n configurable: true\n });\n CircularList.prototype.get = function (index) {\n return this._array[this._getCyclicIndex(index)];\n };\n CircularList.prototype.set = function (index, value) {\n this._array[this._getCyclicIndex(index)] = value;\n };\n CircularList.prototype.push = function (value) {\n this._array[this._getCyclicIndex(this._length)] = value;\n if (this._length === this._maxLength) {\n this._startIndex++;\n if (this._startIndex === this._maxLength) {\n this._startIndex = 0;\n }\n this.emit('trim', 1);\n }\n else {\n this._length++;\n }\n };\n CircularList.prototype.pop = function () {\n return this._array[this._getCyclicIndex(this._length-- - 1)];\n };\n CircularList.prototype.splice = function (start, deleteCount) {\n var items = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n items[_i - 2] = arguments[_i];\n }\n if (deleteCount) {\n for (var i = start; i < this._length - deleteCount; i++) {\n this._array[this._getCyclicIndex(i)] = this._array[this._getCyclicIndex(i + deleteCount)];\n }\n this._length -= deleteCount;\n }\n if (items && items.length) {\n for (var i = this._length - 1; i >= start; i--) {\n this._array[this._getCyclicIndex(i + items.length)] = this._array[this._getCyclicIndex(i)];\n }\n for (var i = 0; i < items.length; i++) {\n this._array[this._getCyclicIndex(start + i)] = items[i];\n }\n if (this._length + items.length > this.maxLength) {\n var countToTrim = (this._length + items.length) - this.maxLength;\n this._startIndex += countToTrim;\n this._length = this.maxLength;\n this.emit('trim', countToTrim);\n }\n else {\n this._length += items.length;\n }\n }\n };\n CircularList.prototype.trimStart = function (count) {\n if (count > this._length) {\n count = this._length;\n }\n this._startIndex += count;\n this._length -= count;\n this.emit('trim', count);\n };\n CircularList.prototype.shiftElements = function (start, count, offset) {\n if (count <= 0) {\n return;\n }\n if (start < 0 || start >= this._length) {\n throw new Error('start argument out of range');\n }\n if (start + offset < 0) {\n throw new Error('Cannot shift elements in list beyond index 0');\n }\n if (offset > 0) {\n for (var i = count - 1; i >= 0; i--) {\n this.set(start + i + offset, this.get(start + i));\n }\n var expandListBy = (start + count + offset) - this._length;\n if (expandListBy > 0) {\n this._length += expandListBy;\n while (this._length > this.maxLength) {\n this._length--;\n this._startIndex++;\n this.emit('trim', 1);\n }\n }\n }\n else {\n for (var i = 0; i < count; i++) {\n this.set(start + i + offset, this.get(start + i));\n }\n }\n };\n CircularList.prototype._getCyclicIndex = function (index) {\n return (this._startIndex + index) % this.maxLength;\n };\n return CircularList;\n}(EventEmitter_1.EventEmitter));\nexports.CircularList = CircularList;\n//# sourceMappingURL=CircularList.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CompositionHelper = (function () {\n function CompositionHelper(_textarea, _compositionView, _terminal) {\n this._textarea = _textarea;\n this._compositionView = _compositionView;\n this._terminal = _terminal;\n this._isComposing = false;\n this._isSendingComposition = false;\n this._compositionPosition = { start: null, end: null };\n }\n CompositionHelper.prototype.compositionstart = function () {\n this._isComposing = true;\n this._compositionPosition.start = this._textarea.value.length;\n this._compositionView.textContent = '';\n this._compositionView.classList.add('active');\n };\n CompositionHelper.prototype.compositionupdate = function (ev) {\n var _this = this;\n this._compositionView.textContent = ev.data;\n this.updateCompositionElements();\n setTimeout(function () {\n _this._compositionPosition.end = _this._textarea.value.length;\n }, 0);\n };\n CompositionHelper.prototype.compositionend = function () {\n this._finalizeComposition(true);\n };\n CompositionHelper.prototype.keydown = function (ev) {\n if (this._isComposing || this._isSendingComposition) {\n if (ev.keyCode === 229) {\n return false;\n }\n else if (ev.keyCode === 16 || ev.keyCode === 17 || ev.keyCode === 18) {\n return false;\n }\n this._finalizeComposition(false);\n }\n if (ev.keyCode === 229) {\n this._handleAnyTextareaChanges();\n return false;\n }\n return true;\n };\n CompositionHelper.prototype._finalizeComposition = function (waitForPropogation) {\n var _this = this;\n this._compositionView.classList.remove('active');\n this._isComposing = false;\n this._clearTextareaPosition();\n if (!waitForPropogation) {\n this._isSendingComposition = false;\n var input = this._textarea.value.substring(this._compositionPosition.start, this._compositionPosition.end);\n this._terminal.handler(input);\n }\n else {\n var currentCompositionPosition_1 = {\n start: this._compositionPosition.start,\n end: this._compositionPosition.end\n };\n this._isSendingComposition = true;\n setTimeout(function () {\n if (_this._isSendingComposition) {\n _this._isSendingComposition = false;\n var input = void 0;\n if (_this._isComposing) {\n input = _this._textarea.value.substring(currentCompositionPosition_1.start, currentCompositionPosition_1.end);\n }\n else {\n input = _this._textarea.value.substring(currentCompositionPosition_1.start);\n }\n _this._terminal.handler(input);\n }\n }, 0);\n }\n };\n CompositionHelper.prototype._handleAnyTextareaChanges = function () {\n var _this = this;\n var oldValue = this._textarea.value;\n setTimeout(function () {\n if (!_this._isComposing) {\n var newValue = _this._textarea.value;\n var diff = newValue.replace(oldValue, '');\n if (diff.length > 0) {\n _this._terminal.handler(diff);\n }\n }\n }, 0);\n };\n CompositionHelper.prototype.updateCompositionElements = function (dontRecurse) {\n var _this = this;\n if (!this._isComposing) {\n return;\n }\n if (this._terminal.buffer.isCursorInViewport) {\n var cellHeight = Math.ceil(this._terminal.charMeasure.height * this._terminal.options.lineHeight);\n var cursorTop = this._terminal.buffer.y * cellHeight;\n var cursorLeft = this._terminal.buffer.x * this._terminal.charMeasure.width;\n this._compositionView.style.left = cursorLeft + 'px';\n this._compositionView.style.top = cursorTop + 'px';\n this._compositionView.style.height = cellHeight + 'px';\n this._compositionView.style.lineHeight = cellHeight + 'px';\n var compositionViewBounds = this._compositionView.getBoundingClientRect();\n this._textarea.style.left = cursorLeft + 'px';\n this._textarea.style.top = cursorTop + 'px';\n this._textarea.style.width = compositionViewBounds.width + 'px';\n this._textarea.style.height = compositionViewBounds.height + 'px';\n this._textarea.style.lineHeight = compositionViewBounds.height + 'px';\n }\n if (!dontRecurse) {\n setTimeout(function () { return _this.updateCompositionElements(true); }, 0);\n }\n };\n CompositionHelper.prototype._clearTextareaPosition = function () {\n this._textarea.style.left = '';\n this._textarea.style.top = '';\n };\n return CompositionHelper;\n}());\nexports.CompositionHelper = CompositionHelper;\n//# sourceMappingURL=CompositionHelper.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar Lifecycle_2 = require(\"./ui/Lifecycle\");\nvar FALLBACK_SCROLL_BAR_WIDTH = 15;\nvar Viewport = (function (_super) {\n __extends(Viewport, _super);\n function Viewport(_terminal, _viewportElement, _scrollArea, _charMeasure) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._viewportElement = _viewportElement;\n _this._scrollArea = _scrollArea;\n _this._charMeasure = _charMeasure;\n _this.scrollBarWidth = 0;\n _this._currentRowHeight = 0;\n _this._lastRecordedBufferLength = 0;\n _this._lastRecordedViewportHeight = 0;\n _this._lastRecordedBufferHeight = 0;\n _this._wheelPartialScroll = 0;\n _this.scrollBarWidth = (_this._viewportElement.offsetWidth - _this._scrollArea.offsetWidth) || FALLBACK_SCROLL_BAR_WIDTH;\n _this.register(Lifecycle_2.addDisposableDomListener(_this._viewportElement, 'scroll', _this._onScroll.bind(_this)));\n setTimeout(function () { return _this.syncScrollArea(); }, 0);\n return _this;\n }\n Viewport.prototype.onThemeChanged = function (colors) {\n this._viewportElement.style.backgroundColor = colors.background.css;\n };\n Viewport.prototype._refresh = function () {\n if (this._charMeasure.height > 0) {\n this._currentRowHeight = this._terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio;\n this._lastRecordedViewportHeight = this._viewportElement.offsetHeight;\n var newBufferHeight = Math.round(this._currentRowHeight * this._lastRecordedBufferLength) + (this._lastRecordedViewportHeight - this._terminal.renderer.dimensions.canvasHeight);\n if (this._lastRecordedBufferHeight !== newBufferHeight) {\n this._lastRecordedBufferHeight = newBufferHeight;\n this._scrollArea.style.height = this._lastRecordedBufferHeight + 'px';\n }\n }\n };\n Viewport.prototype.syncScrollArea = function () {\n if (this._lastRecordedBufferLength !== this._terminal.buffer.lines.length) {\n this._lastRecordedBufferLength = this._terminal.buffer.lines.length;\n this._refresh();\n }\n else if (this._lastRecordedViewportHeight !== this._terminal.renderer.dimensions.canvasHeight) {\n this._refresh();\n }\n else {\n if (this._terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio !== this._currentRowHeight) {\n this._refresh();\n }\n }\n var scrollTop = this._terminal.buffer.ydisp * this._currentRowHeight;\n if (this._viewportElement.scrollTop !== scrollTop) {\n this._viewportElement.scrollTop = scrollTop;\n }\n };\n Viewport.prototype._onScroll = function (ev) {\n if (!this._viewportElement.offsetParent) {\n return;\n }\n var newRow = Math.round(this._viewportElement.scrollTop / this._currentRowHeight);\n var diff = newRow - this._terminal.buffer.ydisp;\n this._terminal.scrollLines(diff, true);\n };\n Viewport.prototype.onWheel = function (ev) {\n var amount = this._getPixelsScrolled(ev);\n if (amount === 0) {\n return;\n }\n this._viewportElement.scrollTop += amount;\n ev.preventDefault();\n };\n Viewport.prototype._getPixelsScrolled = function (ev) {\n if (ev.deltaY === 0) {\n return 0;\n }\n var amount = ev.deltaY;\n if (ev.deltaMode === WheelEvent.DOM_DELTA_LINE) {\n amount *= this._currentRowHeight;\n }\n else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {\n amount *= this._currentRowHeight * this._terminal.rows;\n }\n return amount;\n };\n Viewport.prototype.getLinesScrolled = function (ev) {\n if (ev.deltaY === 0) {\n return 0;\n }\n var amount = ev.deltaY;\n if (ev.deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n amount /= this._currentRowHeight + 0.0;\n this._wheelPartialScroll += amount;\n amount = Math.floor(Math.abs(this._wheelPartialScroll)) * (this._wheelPartialScroll > 0 ? 1 : -1);\n this._wheelPartialScroll %= 1;\n }\n else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {\n amount *= this._terminal.rows;\n }\n return amount;\n };\n Viewport.prototype.onTouchStart = function (ev) {\n this._lastTouchY = ev.touches[0].pageY;\n };\n Viewport.prototype.onTouchMove = function (ev) {\n var deltaY = this._lastTouchY - ev.touches[0].pageY;\n this._lastTouchY = ev.touches[0].pageY;\n if (deltaY === 0) {\n return;\n }\n this._viewportElement.scrollTop += deltaY;\n ev.preventDefault();\n };\n return Viewport;\n}(Lifecycle_1.Disposable));\nexports.Viewport = Viewport;\n//# sourceMappingURL=Viewport.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction prepareTextForTerminal(text) {\n return text.replace(/\\r?\\n/g, '\\r');\n}\nexports.prepareTextForTerminal = prepareTextForTerminal;\nfunction bracketTextForPaste(text, bracketedPasteMode) {\n if (bracketedPasteMode) {\n return '\\x1b[200~' + text + '\\x1b[201~';\n }\n return text;\n}\nexports.bracketTextForPaste = bracketTextForPaste;\nfunction copyHandler(ev, term, selectionManager) {\n if (term.browser.isMSIE) {\n window.clipboardData.setData('Text', selectionManager.selectionText);\n }\n else {\n ev.clipboardData.setData('text/plain', selectionManager.selectionText);\n }\n ev.preventDefault();\n}\nexports.copyHandler = copyHandler;\nfunction pasteHandler(ev, term) {\n ev.stopPropagation();\n var text;\n var dispatchPaste = function (text) {\n text = prepareTextForTerminal(text);\n text = bracketTextForPaste(text, term.bracketedPasteMode);\n term.handler(text);\n term.textarea.value = '';\n term.emit('paste', text);\n term.cancel(ev);\n };\n if (term.browser.isMSIE) {\n if (window.clipboardData) {\n text = window.clipboardData.getData('Text');\n dispatchPaste(text);\n }\n }\n else {\n if (ev.clipboardData) {\n text = ev.clipboardData.getData('text/plain');\n dispatchPaste(text);\n }\n }\n}\nexports.pasteHandler = pasteHandler;\nfunction moveTextAreaUnderMouseCursor(ev, textarea) {\n textarea.style.position = 'fixed';\n textarea.style.width = '20px';\n textarea.style.height = '20px';\n textarea.style.left = (ev.clientX - 10) + 'px';\n textarea.style.top = (ev.clientY - 10) + 'px';\n textarea.style.zIndex = '1000';\n textarea.focus();\n setTimeout(function () {\n textarea.style.position = null;\n textarea.style.width = null;\n textarea.style.height = null;\n textarea.style.left = null;\n textarea.style.top = null;\n textarea.style.zIndex = null;\n }, 200);\n}\nexports.moveTextAreaUnderMouseCursor = moveTextAreaUnderMouseCursor;\nfunction rightClickHandler(ev, textarea, selectionManager, shouldSelectWord) {\n moveTextAreaUnderMouseCursor(ev, textarea);\n if (shouldSelectWord && !selectionManager.isClickInSelection(ev)) {\n selectionManager.selectWordAtCursor(ev);\n }\n textarea.value = selectionManager.selectionText;\n textarea.select();\n}\nexports.rightClickHandler = rightClickHandler;\n//# sourceMappingURL=Clipboard.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"./common/data/EscapeSequences\");\nvar Charsets_1 = require(\"./core/data/Charsets\");\nvar Buffer_1 = require(\"./Buffer\");\nvar CharWidth_1 = require(\"./CharWidth\");\nvar EscapeSequenceParser_1 = require(\"./EscapeSequenceParser\");\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar GLEVEL = { '(': 0, ')': 1, '*': 2, '+': 3, '-': 1, '.': 2 };\nvar RequestTerminfo = (function () {\n function RequestTerminfo(_terminal) {\n this._terminal = _terminal;\n }\n RequestTerminfo.prototype.hook = function (collect, params, flag) {\n this._data = '';\n };\n RequestTerminfo.prototype.put = function (data, start, end) {\n this._data += data.substring(start, end);\n };\n RequestTerminfo.prototype.unhook = function () {\n this._terminal.handler(EscapeSequences_1.C0.ESC + \"P0+r\" + this._data + EscapeSequences_1.C0.ESC + \"\\\\\");\n };\n return RequestTerminfo;\n}());\nvar DECRQSS = (function () {\n function DECRQSS(_terminal) {\n this._terminal = _terminal;\n }\n DECRQSS.prototype.hook = function (collect, params, flag) {\n this._data = '';\n };\n DECRQSS.prototype.put = function (data, start, end) {\n this._data += data.substring(start, end);\n };\n DECRQSS.prototype.unhook = function () {\n switch (this._data) {\n case '\"q':\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r0\\\"q\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n case '\"p':\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r61\\\"p\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n case 'r':\n var pt = '' + (this._terminal.buffer.scrollTop + 1) +\n ';' + (this._terminal.buffer.scrollBottom + 1) + 'r';\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r\" + pt + EscapeSequences_1.C0.ESC + \"\\\\\");\n case 'm':\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r0m\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n case ' q':\n var STYLES = { 'block': 2, 'underline': 4, 'bar': 6 };\n var style = STYLES[this._terminal.getOption('cursorStyle')];\n style -= this._terminal.getOption('cursorBlink');\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r\" + style + \" q\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n default:\n this._terminal.error('Unknown DCS $q %s', this._data);\n this._terminal.handler(EscapeSequences_1.C0.ESC + \"P0$r\" + this._data + EscapeSequences_1.C0.ESC + \"\\\\\");\n }\n };\n return DECRQSS;\n}());\nvar InputHandler = (function (_super) {\n __extends(InputHandler, _super);\n function InputHandler(_terminal, _parser) {\n if (_parser === void 0) { _parser = new EscapeSequenceParser_1.EscapeSequenceParser(); }\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._parser = _parser;\n _this.register(_this._parser);\n _this._surrogateHigh = '';\n _this._parser.setCsiHandlerFallback(function (collect, params, flag) {\n _this._terminal.error('Unknown CSI code: ', { collect: collect, params: params, flag: String.fromCharCode(flag) });\n });\n _this._parser.setEscHandlerFallback(function (collect, flag) {\n _this._terminal.error('Unknown ESC code: ', { collect: collect, flag: String.fromCharCode(flag) });\n });\n _this._parser.setExecuteHandlerFallback(function (code) {\n _this._terminal.error('Unknown EXECUTE code: ', { code: code });\n });\n _this._parser.setOscHandlerFallback(function (identifier, data) {\n _this._terminal.error('Unknown OSC code: ', { identifier: identifier, data: data });\n });\n _this._parser.setPrintHandler(function (data, start, end) { return _this.print(data, start, end); });\n _this._parser.setCsiHandler('@', function (params, collect) { return _this.insertChars(params); });\n _this._parser.setCsiHandler('A', function (params, collect) { return _this.cursorUp(params); });\n _this._parser.setCsiHandler('B', function (params, collect) { return _this.cursorDown(params); });\n _this._parser.setCsiHandler('C', function (params, collect) { return _this.cursorForward(params); });\n _this._parser.setCsiHandler('D', function (params, collect) { return _this.cursorBackward(params); });\n _this._parser.setCsiHandler('E', function (params, collect) { return _this.cursorNextLine(params); });\n _this._parser.setCsiHandler('F', function (params, collect) { return _this.cursorPrecedingLine(params); });\n _this._parser.setCsiHandler('G', function (params, collect) { return _this.cursorCharAbsolute(params); });\n _this._parser.setCsiHandler('H', function (params, collect) { return _this.cursorPosition(params); });\n _this._parser.setCsiHandler('I', function (params, collect) { return _this.cursorForwardTab(params); });\n _this._parser.setCsiHandler('J', function (params, collect) { return _this.eraseInDisplay(params); });\n _this._parser.setCsiHandler('K', function (params, collect) { return _this.eraseInLine(params); });\n _this._parser.setCsiHandler('L', function (params, collect) { return _this.insertLines(params); });\n _this._parser.setCsiHandler('M', function (params, collect) { return _this.deleteLines(params); });\n _this._parser.setCsiHandler('P', function (params, collect) { return _this.deleteChars(params); });\n _this._parser.setCsiHandler('S', function (params, collect) { return _this.scrollUp(params); });\n _this._parser.setCsiHandler('T', function (params, collect) { return _this.scrollDown(params, collect); });\n _this._parser.setCsiHandler('X', function (params, collect) { return _this.eraseChars(params); });\n _this._parser.setCsiHandler('Z', function (params, collect) { return _this.cursorBackwardTab(params); });\n _this._parser.setCsiHandler('`', function (params, collect) { return _this.charPosAbsolute(params); });\n _this._parser.setCsiHandler('a', function (params, collect) { return _this.hPositionRelative(params); });\n _this._parser.setCsiHandler('b', function (params, collect) { return _this.repeatPrecedingCharacter(params); });\n _this._parser.setCsiHandler('c', function (params, collect) { return _this.sendDeviceAttributes(params, collect); });\n _this._parser.setCsiHandler('d', function (params, collect) { return _this.linePosAbsolute(params); });\n _this._parser.setCsiHandler('e', function (params, collect) { return _this.vPositionRelative(params); });\n _this._parser.setCsiHandler('f', function (params, collect) { return _this.hVPosition(params); });\n _this._parser.setCsiHandler('g', function (params, collect) { return _this.tabClear(params); });\n _this._parser.setCsiHandler('h', function (params, collect) { return _this.setMode(params, collect); });\n _this._parser.setCsiHandler('l', function (params, collect) { return _this.resetMode(params, collect); });\n _this._parser.setCsiHandler('m', function (params, collect) { return _this.charAttributes(params); });\n _this._parser.setCsiHandler('n', function (params, collect) { return _this.deviceStatus(params, collect); });\n _this._parser.setCsiHandler('p', function (params, collect) { return _this.softReset(params, collect); });\n _this._parser.setCsiHandler('q', function (params, collect) { return _this.setCursorStyle(params, collect); });\n _this._parser.setCsiHandler('r', function (params, collect) { return _this.setScrollRegion(params, collect); });\n _this._parser.setCsiHandler('s', function (params, collect) { return _this.saveCursor(params); });\n _this._parser.setCsiHandler('u', function (params, collect) { return _this.restoreCursor(params); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.BEL, function () { return _this.bell(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.LF, function () { return _this.lineFeed(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.VT, function () { return _this.lineFeed(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.FF, function () { return _this.lineFeed(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.CR, function () { return _this.carriageReturn(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.BS, function () { return _this.backspace(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.HT, function () { return _this.tab(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.SO, function () { return _this.shiftOut(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.SI, function () { return _this.shiftIn(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C1.IND, function () { return _this.index(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C1.NEL, function () { return _this.nextLine(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C1.HTS, function () { return _this.tabSet(); });\n _this._parser.setOscHandler(0, function (data) { return _this.setTitle(data); });\n _this._parser.setOscHandler(2, function (data) { return _this.setTitle(data); });\n _this._parser.setEscHandler('7', function () { return _this.saveCursor([]); });\n _this._parser.setEscHandler('8', function () { return _this.restoreCursor([]); });\n _this._parser.setEscHandler('D', function () { return _this.index(); });\n _this._parser.setEscHandler('E', function () { return _this.nextLine(); });\n _this._parser.setEscHandler('H', function () { return _this.tabSet(); });\n _this._parser.setEscHandler('M', function () { return _this.reverseIndex(); });\n _this._parser.setEscHandler('=', function () { return _this.keypadApplicationMode(); });\n _this._parser.setEscHandler('>', function () { return _this.keypadNumericMode(); });\n _this._parser.setEscHandler('c', function () { return _this.reset(); });\n _this._parser.setEscHandler('n', function () { return _this.setgLevel(2); });\n _this._parser.setEscHandler('o', function () { return _this.setgLevel(3); });\n _this._parser.setEscHandler('|', function () { return _this.setgLevel(3); });\n _this._parser.setEscHandler('}', function () { return _this.setgLevel(2); });\n _this._parser.setEscHandler('~', function () { return _this.setgLevel(1); });\n _this._parser.setEscHandler('%@', function () { return _this.selectDefaultCharset(); });\n _this._parser.setEscHandler('%G', function () { return _this.selectDefaultCharset(); });\n var _loop_1 = function (flag) {\n this_1._parser.setEscHandler('(' + flag, function () { return _this.selectCharset('(' + flag); });\n this_1._parser.setEscHandler(')' + flag, function () { return _this.selectCharset(')' + flag); });\n this_1._parser.setEscHandler('*' + flag, function () { return _this.selectCharset('*' + flag); });\n this_1._parser.setEscHandler('+' + flag, function () { return _this.selectCharset('+' + flag); });\n this_1._parser.setEscHandler('-' + flag, function () { return _this.selectCharset('-' + flag); });\n this_1._parser.setEscHandler('.' + flag, function () { return _this.selectCharset('.' + flag); });\n this_1._parser.setEscHandler('/' + flag, function () { return _this.selectCharset('/' + flag); });\n };\n var this_1 = this;\n for (var flag in Charsets_1.CHARSETS) {\n _loop_1(flag);\n }\n _this._parser.setErrorHandler(function (state) {\n _this._terminal.error('Parsing error: ', state);\n return state;\n });\n _this._parser.setDcsHandler('$q', new DECRQSS(_this._terminal));\n _this._parser.setDcsHandler('+q', new RequestTerminfo(_this._terminal));\n return _this;\n }\n InputHandler.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._terminal = null;\n };\n InputHandler.prototype.parse = function (data) {\n if (!this._terminal) {\n return;\n }\n var buffer = this._terminal.buffer;\n var cursorStartX = buffer.x;\n var cursorStartY = buffer.y;\n if (this._terminal.debug) {\n this._terminal.log('data: ' + data);\n }\n if (this._surrogateHigh) {\n data = this._surrogateHigh + data;\n this._surrogateHigh = '';\n }\n this._parser.parse(data);\n buffer = this._terminal.buffer;\n if (buffer.x !== cursorStartX || buffer.y !== cursorStartY) {\n this._terminal.emit('cursormove');\n }\n };\n InputHandler.prototype.print = function (data, start, end) {\n var char;\n var code;\n var low;\n var chWidth;\n var buffer = this._terminal.buffer;\n var charset = this._terminal.charset;\n var screenReaderMode = this._terminal.options.screenReaderMode;\n var cols = this._terminal.cols;\n var wraparoundMode = this._terminal.wraparoundMode;\n var insertMode = this._terminal.insertMode;\n var curAttr = this._terminal.curAttr;\n var bufferRow = buffer.lines.get(buffer.y + buffer.ybase);\n this._terminal.updateRange(buffer.y);\n for (var stringPosition = start; stringPosition < end; ++stringPosition) {\n char = data.charAt(stringPosition);\n code = data.charCodeAt(stringPosition);\n if (0xD800 <= code && code <= 0xDBFF) {\n low = data.charCodeAt(stringPosition + 1);\n if (isNaN(low)) {\n this._surrogateHigh = char;\n continue;\n }\n code = ((code - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n char += data.charAt(stringPosition + 1);\n }\n if (0xDC00 <= code && code <= 0xDFFF) {\n continue;\n }\n chWidth = CharWidth_1.wcwidth(code);\n if (charset) {\n char = charset[char] || char;\n code = char.charCodeAt(0);\n }\n if (screenReaderMode) {\n this._terminal.emit('a11y.char', char);\n }\n if (!chWidth && buffer.x) {\n if (bufferRow[buffer.x - 1]) {\n if (!bufferRow[buffer.x - 1][Buffer_1.CHAR_DATA_WIDTH_INDEX]) {\n if (bufferRow[buffer.x - 2]) {\n bufferRow[buffer.x - 2][Buffer_1.CHAR_DATA_CHAR_INDEX] += char;\n bufferRow[buffer.x - 2][Buffer_1.CHAR_DATA_CODE_INDEX] = code;\n }\n }\n else {\n bufferRow[buffer.x - 1][Buffer_1.CHAR_DATA_CHAR_INDEX] += char;\n bufferRow[buffer.x - 1][Buffer_1.CHAR_DATA_CODE_INDEX] = code;\n }\n }\n continue;\n }\n if (buffer.x + chWidth - 1 >= cols) {\n if (wraparoundMode) {\n buffer.x = 0;\n buffer.y++;\n if (buffer.y > buffer.scrollBottom) {\n buffer.y--;\n this._terminal.scroll(true);\n }\n else {\n buffer.lines.get(buffer.y).isWrapped = true;\n }\n bufferRow = buffer.lines.get(buffer.y + buffer.ybase);\n }\n else {\n if (chWidth === 2) {\n continue;\n }\n }\n }\n if (insertMode) {\n for (var moves = 0; moves < chWidth; ++moves) {\n var removed = bufferRow.pop();\n if (removed[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0\n && bufferRow[this._terminal.cols - 2]\n && bufferRow[this._terminal.cols - 2][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n bufferRow[this._terminal.cols - 2] = [curAttr, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n }\n bufferRow.splice(buffer.x, 0, [curAttr, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE]);\n }\n }\n bufferRow[buffer.x++] = [curAttr, char, chWidth, code];\n if (chWidth === 2) {\n bufferRow[buffer.x++] = [curAttr, '', 0, undefined];\n }\n }\n this._terminal.updateRange(buffer.y);\n };\n InputHandler.prototype.bell = function () {\n this._terminal.bell();\n };\n InputHandler.prototype.lineFeed = function () {\n var buffer = this._terminal.buffer;\n if (this._terminal.convertEol) {\n buffer.x = 0;\n }\n buffer.y++;\n if (buffer.y > buffer.scrollBottom) {\n buffer.y--;\n this._terminal.scroll();\n }\n if (buffer.x >= this._terminal.cols) {\n buffer.x--;\n }\n this._terminal.emit('linefeed');\n };\n InputHandler.prototype.carriageReturn = function () {\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.backspace = function () {\n if (this._terminal.buffer.x > 0) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.tab = function () {\n var originalX = this._terminal.buffer.x;\n this._terminal.buffer.x = this._terminal.buffer.nextStop();\n if (this._terminal.options.screenReaderMode) {\n this._terminal.emit('a11y.tab', this._terminal.buffer.x - originalX);\n }\n };\n InputHandler.prototype.shiftOut = function () {\n this._terminal.setgLevel(1);\n };\n InputHandler.prototype.shiftIn = function () {\n this._terminal.setgLevel(0);\n };\n InputHandler.prototype.insertChars = function (params) {\n var param = params[0];\n if (param < 1)\n param = 1;\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var j = buffer.x;\n var ch = [this._terminal.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n while (param-- && j < this._terminal.cols) {\n buffer.lines.get(row).splice(j++, 0, ch);\n buffer.lines.get(row).pop();\n }\n };\n InputHandler.prototype.cursorUp = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y -= param;\n if (this._terminal.buffer.y < 0) {\n this._terminal.buffer.y = 0;\n }\n };\n InputHandler.prototype.cursorDown = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.cursorForward = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x += param;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.cursorBackward = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n this._terminal.buffer.x -= param;\n if (this._terminal.buffer.x < 0) {\n this._terminal.buffer.x = 0;\n }\n };\n InputHandler.prototype.cursorNextLine = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.cursorPrecedingLine = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y -= param;\n if (this._terminal.buffer.y < 0) {\n this._terminal.buffer.y = 0;\n }\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.cursorCharAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x = param - 1;\n };\n InputHandler.prototype.cursorPosition = function (params) {\n var col;\n var row = params[0] - 1;\n if (params.length >= 2) {\n col = params[1] - 1;\n }\n else {\n col = 0;\n }\n if (row < 0) {\n row = 0;\n }\n else if (row >= this._terminal.rows) {\n row = this._terminal.rows - 1;\n }\n if (col < 0) {\n col = 0;\n }\n else if (col >= this._terminal.cols) {\n col = this._terminal.cols - 1;\n }\n this._terminal.buffer.x = col;\n this._terminal.buffer.y = row;\n };\n InputHandler.prototype.cursorForwardTab = function (params) {\n var param = params[0] || 1;\n while (param--) {\n this._terminal.buffer.x = this._terminal.buffer.nextStop();\n }\n };\n InputHandler.prototype.eraseInDisplay = function (params) {\n var j;\n switch (params[0]) {\n case 0:\n this._terminal.eraseRight(this._terminal.buffer.x, this._terminal.buffer.y);\n j = this._terminal.buffer.y + 1;\n for (; j < this._terminal.rows; j++) {\n this._terminal.eraseLine(j);\n }\n break;\n case 1:\n this._terminal.eraseLeft(this._terminal.buffer.x, this._terminal.buffer.y);\n j = this._terminal.buffer.y;\n while (j--) {\n this._terminal.eraseLine(j);\n }\n break;\n case 2:\n j = this._terminal.rows;\n while (j--)\n this._terminal.eraseLine(j);\n break;\n case 3:\n var scrollBackSize = this._terminal.buffer.lines.length - this._terminal.rows;\n if (scrollBackSize > 0) {\n this._terminal.buffer.lines.trimStart(scrollBackSize);\n this._terminal.buffer.ybase = Math.max(this._terminal.buffer.ybase - scrollBackSize, 0);\n this._terminal.buffer.ydisp = Math.max(this._terminal.buffer.ydisp - scrollBackSize, 0);\n this._terminal.emit('scroll', 0);\n }\n break;\n }\n };\n InputHandler.prototype.eraseInLine = function (params) {\n switch (params[0]) {\n case 0:\n this._terminal.eraseRight(this._terminal.buffer.x, this._terminal.buffer.y);\n break;\n case 1:\n this._terminal.eraseLeft(this._terminal.buffer.x, this._terminal.buffer.y);\n break;\n case 2:\n this._terminal.eraseLine(this._terminal.buffer.y);\n break;\n }\n };\n InputHandler.prototype.insertLines = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var scrollBottomRowsOffset = this._terminal.rows - 1 - buffer.scrollBottom;\n var scrollBottomAbsolute = this._terminal.rows - 1 + buffer.ybase - scrollBottomRowsOffset + 1;\n while (param--) {\n buffer.lines.splice(scrollBottomAbsolute - 1, 1);\n buffer.lines.splice(row, 0, this._terminal.blankLine(true));\n }\n this._terminal.updateRange(buffer.y);\n this._terminal.updateRange(buffer.scrollBottom);\n };\n InputHandler.prototype.deleteLines = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var j;\n j = this._terminal.rows - 1 - buffer.scrollBottom;\n j = this._terminal.rows - 1 + buffer.ybase - j;\n while (param--) {\n buffer.lines.splice(row, 1);\n buffer.lines.splice(j, 0, this._terminal.blankLine(true));\n }\n this._terminal.updateRange(buffer.y);\n this._terminal.updateRange(buffer.scrollBottom);\n };\n InputHandler.prototype.deleteChars = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var ch = [this._terminal.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n while (param--) {\n buffer.lines.get(row).splice(buffer.x, 1);\n buffer.lines.get(row).push(ch);\n }\n this._terminal.updateRange(buffer.y);\n };\n InputHandler.prototype.scrollUp = function (params) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n while (param--) {\n buffer.lines.splice(buffer.ybase + buffer.scrollTop, 1);\n buffer.lines.splice(buffer.ybase + buffer.scrollBottom, 0, this._terminal.blankLine());\n }\n this._terminal.updateRange(buffer.scrollTop);\n this._terminal.updateRange(buffer.scrollBottom);\n };\n InputHandler.prototype.scrollDown = function (params, collect) {\n if (params.length < 2 && !collect) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n while (param--) {\n buffer.lines.splice(buffer.ybase + buffer.scrollBottom, 1);\n buffer.lines.splice(buffer.ybase + buffer.scrollTop, 0, this._terminal.blankLine());\n }\n this._terminal.updateRange(buffer.scrollTop);\n this._terminal.updateRange(buffer.scrollBottom);\n }\n };\n InputHandler.prototype.eraseChars = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var j = buffer.x;\n var ch = [this._terminal.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n while (param-- && j < this._terminal.cols) {\n buffer.lines.get(row)[j++] = ch;\n }\n };\n InputHandler.prototype.cursorBackwardTab = function (params) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n while (param--) {\n buffer.x = buffer.prevStop();\n }\n };\n InputHandler.prototype.charPosAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x = param - 1;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.hPositionRelative = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x += param;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.repeatPrecedingCharacter = function (params) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n var line = buffer.lines.get(buffer.ybase + buffer.y);\n var ch = line[buffer.x - 1] || [Buffer_1.DEFAULT_ATTR, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n while (param--) {\n line[buffer.x++] = ch;\n }\n };\n InputHandler.prototype.sendDeviceAttributes = function (params, collect) {\n if (params[0] > 0) {\n return;\n }\n if (!collect) {\n if (this._terminal.is('xterm') || this._terminal.is('rxvt-unicode') || this._terminal.is('screen')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[?1;2c');\n }\n else if (this._terminal.is('linux')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[?6c');\n }\n }\n else if (collect === '>') {\n if (this._terminal.is('xterm')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[>0;276;0c');\n }\n else if (this._terminal.is('rxvt-unicode')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[>85;95;0c');\n }\n else if (this._terminal.is('linux')) {\n this._terminal.handler(params[0] + 'c');\n }\n else if (this._terminal.is('screen')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[>83;40003;0c');\n }\n }\n };\n InputHandler.prototype.linePosAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y = param - 1;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n };\n InputHandler.prototype.vPositionRelative = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.hVPosition = function (params) {\n if (params[0] < 1)\n params[0] = 1;\n if (params[1] < 1)\n params[1] = 1;\n this._terminal.buffer.y = params[0] - 1;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n this._terminal.buffer.x = params[1] - 1;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.tabClear = function (params) {\n var param = params[0];\n if (param <= 0) {\n delete this._terminal.buffer.tabs[this._terminal.buffer.x];\n }\n else if (param === 3) {\n this._terminal.buffer.tabs = {};\n }\n };\n InputHandler.prototype.setMode = function (params, collect) {\n if (params.length > 1) {\n for (var i = 0; i < params.length; i++) {\n this.setMode([params[i]]);\n }\n return;\n }\n if (!collect) {\n switch (params[0]) {\n case 4:\n this._terminal.insertMode = true;\n break;\n case 20:\n break;\n }\n }\n else if (collect === '?') {\n switch (params[0]) {\n case 1:\n this._terminal.applicationCursor = true;\n break;\n case 2:\n this._terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(1, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(2, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(3, Charsets_1.DEFAULT_CHARSET);\n break;\n case 3:\n this._terminal.savedCols = this._terminal.cols;\n this._terminal.resize(132, this._terminal.rows);\n break;\n case 6:\n this._terminal.originMode = true;\n break;\n case 7:\n this._terminal.wraparoundMode = true;\n break;\n case 12:\n break;\n case 66:\n this._terminal.log('Serial port requested application keypad.');\n this._terminal.applicationKeypad = true;\n this._terminal.viewport.syncScrollArea();\n break;\n case 9:\n case 1000:\n case 1002:\n case 1003:\n this._terminal.x10Mouse = params[0] === 9;\n this._terminal.vt200Mouse = params[0] === 1000;\n this._terminal.normalMouse = params[0] > 1000;\n this._terminal.mouseEvents = true;\n this._terminal.element.classList.add('enable-mouse-events');\n this._terminal.selectionManager.disable();\n this._terminal.log('Binding to mouse events.');\n break;\n case 1004:\n this._terminal.sendFocus = true;\n break;\n case 1005:\n this._terminal.utfMouse = true;\n break;\n case 1006:\n this._terminal.sgrMouse = true;\n break;\n case 1015:\n this._terminal.urxvtMouse = true;\n break;\n case 25:\n this._terminal.cursorHidden = false;\n break;\n case 1049:\n case 47:\n case 1047:\n this._terminal.buffers.activateAltBuffer();\n this._terminal.viewport.syncScrollArea();\n this._terminal.showCursor();\n break;\n case 2004:\n this._terminal.bracketedPasteMode = true;\n break;\n }\n }\n };\n InputHandler.prototype.resetMode = function (params, collect) {\n if (params.length > 1) {\n for (var i = 0; i < params.length; i++) {\n this.resetMode([params[i]]);\n }\n return;\n }\n if (!collect) {\n switch (params[0]) {\n case 4:\n this._terminal.insertMode = false;\n break;\n case 20:\n break;\n }\n }\n else if (collect === '?') {\n switch (params[0]) {\n case 1:\n this._terminal.applicationCursor = false;\n break;\n case 3:\n if (this._terminal.cols === 132 && this._terminal.savedCols) {\n this._terminal.resize(this._terminal.savedCols, this._terminal.rows);\n }\n delete this._terminal.savedCols;\n break;\n case 6:\n this._terminal.originMode = false;\n break;\n case 7:\n this._terminal.wraparoundMode = false;\n break;\n case 12:\n break;\n case 66:\n this._terminal.log('Switching back to normal keypad.');\n this._terminal.applicationKeypad = false;\n this._terminal.viewport.syncScrollArea();\n break;\n case 9:\n case 1000:\n case 1002:\n case 1003:\n this._terminal.x10Mouse = false;\n this._terminal.vt200Mouse = false;\n this._terminal.normalMouse = false;\n this._terminal.mouseEvents = false;\n this._terminal.element.classList.remove('enable-mouse-events');\n this._terminal.selectionManager.enable();\n break;\n case 1004:\n this._terminal.sendFocus = false;\n break;\n case 1005:\n this._terminal.utfMouse = false;\n break;\n case 1006:\n this._terminal.sgrMouse = false;\n break;\n case 1015:\n this._terminal.urxvtMouse = false;\n break;\n case 25:\n this._terminal.cursorHidden = true;\n break;\n case 1049:\n case 47:\n case 1047:\n this._terminal.buffers.activateNormalBuffer();\n this._terminal.refresh(0, this._terminal.rows - 1);\n this._terminal.viewport.syncScrollArea();\n this._terminal.showCursor();\n break;\n case 2004:\n this._terminal.bracketedPasteMode = false;\n break;\n }\n }\n };\n InputHandler.prototype.charAttributes = function (params) {\n if (params.length === 1 && params[0] === 0) {\n this._terminal.curAttr = Buffer_1.DEFAULT_ATTR;\n return;\n }\n var l = params.length;\n var flags = this._terminal.curAttr >> 18;\n var fg = (this._terminal.curAttr >> 9) & 0x1ff;\n var bg = this._terminal.curAttr & 0x1ff;\n var p;\n for (var i = 0; i < l; i++) {\n p = params[i];\n if (p >= 30 && p <= 37) {\n fg = p - 30;\n }\n else if (p >= 40 && p <= 47) {\n bg = p - 40;\n }\n else if (p >= 90 && p <= 97) {\n p += 8;\n fg = p - 90;\n }\n else if (p >= 100 && p <= 107) {\n p += 8;\n bg = p - 100;\n }\n else if (p === 0) {\n flags = Buffer_1.DEFAULT_ATTR >> 18;\n fg = (Buffer_1.DEFAULT_ATTR >> 9) & 0x1ff;\n bg = Buffer_1.DEFAULT_ATTR & 0x1ff;\n }\n else if (p === 1) {\n flags |= 1;\n }\n else if (p === 3) {\n flags |= 64;\n }\n else if (p === 4) {\n flags |= 2;\n }\n else if (p === 5) {\n flags |= 4;\n }\n else if (p === 7) {\n flags |= 8;\n }\n else if (p === 8) {\n flags |= 16;\n }\n else if (p === 2) {\n flags |= 32;\n }\n else if (p === 22) {\n flags &= ~1;\n flags &= ~32;\n }\n else if (p === 24) {\n flags &= ~2;\n }\n else if (p === 25) {\n flags &= ~4;\n }\n else if (p === 27) {\n flags &= ~8;\n }\n else if (p === 28) {\n flags &= ~16;\n }\n else if (p === 39) {\n fg = (Buffer_1.DEFAULT_ATTR >> 9) & 0x1ff;\n }\n else if (p === 49) {\n bg = Buffer_1.DEFAULT_ATTR & 0x1ff;\n }\n else if (p === 38) {\n if (params[i + 1] === 2) {\n i += 2;\n fg = this._terminal.matchColor(params[i] & 0xff, params[i + 1] & 0xff, params[i + 2] & 0xff);\n if (fg === -1)\n fg = 0x1ff;\n i += 2;\n }\n else if (params[i + 1] === 5) {\n i += 2;\n p = params[i] & 0xff;\n fg = p;\n }\n }\n else if (p === 48) {\n if (params[i + 1] === 2) {\n i += 2;\n bg = this._terminal.matchColor(params[i] & 0xff, params[i + 1] & 0xff, params[i + 2] & 0xff);\n if (bg === -1)\n bg = 0x1ff;\n i += 2;\n }\n else if (params[i + 1] === 5) {\n i += 2;\n p = params[i] & 0xff;\n bg = p;\n }\n }\n else if (p === 100) {\n fg = (Buffer_1.DEFAULT_ATTR >> 9) & 0x1ff;\n bg = Buffer_1.DEFAULT_ATTR & 0x1ff;\n }\n else {\n this._terminal.error('Unknown SGR attribute: %d.', p);\n }\n }\n this._terminal.curAttr = (flags << 18) | (fg << 9) | bg;\n };\n InputHandler.prototype.deviceStatus = function (params, collect) {\n if (!collect) {\n switch (params[0]) {\n case 5:\n this._terminal.emit('data', EscapeSequences_1.C0.ESC + \"[0n\");\n break;\n case 6:\n var y = this._terminal.buffer.y + 1;\n var x = this._terminal.buffer.x + 1;\n this._terminal.emit('data', EscapeSequences_1.C0.ESC + \"[\" + y + \";\" + x + \"R\");\n break;\n }\n }\n else if (collect === '?') {\n switch (params[0]) {\n case 6:\n var y = this._terminal.buffer.y + 1;\n var x = this._terminal.buffer.x + 1;\n this._terminal.emit('data', EscapeSequences_1.C0.ESC + \"[?\" + y + \";\" + x + \"R\");\n break;\n case 15:\n break;\n case 25:\n break;\n case 26:\n break;\n case 53:\n break;\n }\n }\n };\n InputHandler.prototype.softReset = function (params, collect) {\n if (collect === '!') {\n this._terminal.cursorHidden = false;\n this._terminal.insertMode = false;\n this._terminal.originMode = false;\n this._terminal.wraparoundMode = true;\n this._terminal.applicationKeypad = false;\n this._terminal.viewport.syncScrollArea();\n this._terminal.applicationCursor = false;\n this._terminal.buffer.scrollTop = 0;\n this._terminal.buffer.scrollBottom = this._terminal.rows - 1;\n this._terminal.curAttr = Buffer_1.DEFAULT_ATTR;\n this._terminal.buffer.x = this._terminal.buffer.y = 0;\n this._terminal.charset = null;\n this._terminal.glevel = 0;\n this._terminal.charsets = [null];\n }\n };\n InputHandler.prototype.setCursorStyle = function (params, collect) {\n if (collect === ' ') {\n var param = params[0] < 1 ? 1 : params[0];\n switch (param) {\n case 1:\n case 2:\n this._terminal.setOption('cursorStyle', 'block');\n break;\n case 3:\n case 4:\n this._terminal.setOption('cursorStyle', 'underline');\n break;\n case 5:\n case 6:\n this._terminal.setOption('cursorStyle', 'bar');\n break;\n }\n var isBlinking = param % 2 === 1;\n this._terminal.setOption('cursorBlink', isBlinking);\n }\n };\n InputHandler.prototype.setScrollRegion = function (params, collect) {\n if (collect)\n return;\n this._terminal.buffer.scrollTop = (params[0] || 1) - 1;\n this._terminal.buffer.scrollBottom = (params[1] && params[1] <= this._terminal.rows ? params[1] : this._terminal.rows) - 1;\n this._terminal.buffer.x = 0;\n this._terminal.buffer.y = 0;\n };\n InputHandler.prototype.saveCursor = function (params) {\n this._terminal.buffer.savedX = this._terminal.buffer.x;\n this._terminal.buffer.savedY = this._terminal.buffer.y;\n this._terminal.savedCurAttr = this._terminal.curAttr;\n };\n InputHandler.prototype.restoreCursor = function (params) {\n this._terminal.buffer.x = this._terminal.buffer.savedX || 0;\n this._terminal.buffer.y = this._terminal.buffer.savedY || 0;\n this._terminal.curAttr = this._terminal.savedCurAttr || Buffer_1.DEFAULT_ATTR;\n };\n InputHandler.prototype.setTitle = function (data) {\n this._terminal.handleTitle(data);\n };\n InputHandler.prototype.nextLine = function () {\n this._terminal.buffer.x = 0;\n this.index();\n };\n InputHandler.prototype.keypadApplicationMode = function () {\n this._terminal.log('Serial port requested application keypad.');\n this._terminal.applicationKeypad = true;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n };\n InputHandler.prototype.keypadNumericMode = function () {\n this._terminal.log('Switching back to normal keypad.');\n this._terminal.applicationKeypad = false;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n };\n InputHandler.prototype.selectDefaultCharset = function () {\n this._terminal.setgLevel(0);\n this._terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET);\n };\n InputHandler.prototype.selectCharset = function (collectAndFlag) {\n if (collectAndFlag.length !== 2)\n return this.selectDefaultCharset();\n if (collectAndFlag[0] === '/')\n return;\n this._terminal.setgCharset(GLEVEL[collectAndFlag[0]], Charsets_1.CHARSETS[collectAndFlag[1]] || Charsets_1.DEFAULT_CHARSET);\n };\n InputHandler.prototype.index = function () {\n this._terminal.index();\n };\n InputHandler.prototype.tabSet = function () {\n this._terminal.tabSet();\n };\n InputHandler.prototype.reverseIndex = function () {\n this._terminal.reverseIndex();\n };\n InputHandler.prototype.reset = function () {\n this._parser.reset();\n this._terminal.reset();\n };\n InputHandler.prototype.setgLevel = function (level) {\n this._terminal.setgLevel(level);\n };\n return InputHandler;\n}(Lifecycle_1.Disposable));\nexports.InputHandler = InputHandler;\n//# sourceMappingURL=InputHandler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHARSETS = {};\nexports.DEFAULT_CHARSET = exports.CHARSETS['B'];\nexports.CHARSETS['0'] = {\n '`': '\\u25c6',\n 'a': '\\u2592',\n 'b': '\\u0009',\n 'c': '\\u000c',\n 'd': '\\u000d',\n 'e': '\\u000a',\n 'f': '\\u00b0',\n 'g': '\\u00b1',\n 'h': '\\u2424',\n 'i': '\\u000b',\n 'j': '\\u2518',\n 'k': '\\u2510',\n 'l': '\\u250c',\n 'm': '\\u2514',\n 'n': '\\u253c',\n 'o': '\\u23ba',\n 'p': '\\u23bb',\n 'q': '\\u2500',\n 'r': '\\u23bc',\n 's': '\\u23bd',\n 't': '\\u251c',\n 'u': '\\u2524',\n 'v': '\\u2534',\n 'w': '\\u252c',\n 'x': '\\u2502',\n 'y': '\\u2264',\n 'z': '\\u2265',\n '{': '\\u03c0',\n '|': '\\u2260',\n '}': '\\u00a3',\n '~': '\\u00b7'\n};\nexports.CHARSETS['A'] = {\n '#': '£'\n};\nexports.CHARSETS['B'] = null;\nexports.CHARSETS['4'] = {\n '#': '£',\n '@': '¾',\n '[': 'ij',\n '\\\\': '½',\n ']': '|',\n '{': '¨',\n '|': 'f',\n '}': '¼',\n '~': '´'\n};\nexports.CHARSETS['C'] =\n exports.CHARSETS['5'] = {\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Å',\n '^': 'Ü',\n '`': 'é',\n '{': 'ä',\n '|': 'ö',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['R'] = {\n '#': '£',\n '@': 'à',\n '[': '°',\n '\\\\': 'ç',\n ']': '§',\n '{': 'é',\n '|': 'ù',\n '}': 'è',\n '~': '¨'\n};\nexports.CHARSETS['Q'] = {\n '@': 'à',\n '[': 'â',\n '\\\\': 'ç',\n ']': 'ê',\n '^': 'î',\n '`': 'ô',\n '{': 'é',\n '|': 'ù',\n '}': 'è',\n '~': 'û'\n};\nexports.CHARSETS['K'] = {\n '@': '§',\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Ü',\n '{': 'ä',\n '|': 'ö',\n '}': 'ü',\n '~': 'ß'\n};\nexports.CHARSETS['Y'] = {\n '#': '£',\n '@': '§',\n '[': '°',\n '\\\\': 'ç',\n ']': 'é',\n '`': 'ù',\n '{': 'à',\n '|': 'ò',\n '}': 'è',\n '~': 'ì'\n};\nexports.CHARSETS['E'] =\n exports.CHARSETS['6'] = {\n '@': 'Ä',\n '[': 'Æ',\n '\\\\': 'Ø',\n ']': 'Å',\n '^': 'Ü',\n '`': 'ä',\n '{': 'æ',\n '|': 'ø',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['Z'] = {\n '#': '£',\n '@': '§',\n '[': '¡',\n '\\\\': 'Ñ',\n ']': '¿',\n '{': '°',\n '|': 'ñ',\n '}': 'ç'\n};\nexports.CHARSETS['H'] =\n exports.CHARSETS['7'] = {\n '@': 'É',\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Å',\n '^': 'Ü',\n '`': 'é',\n '{': 'ä',\n '|': 'ö',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['='] = {\n '#': 'ù',\n '@': 'à',\n '[': 'é',\n '\\\\': 'ç',\n ']': 'ê',\n '^': 'î',\n '_': 'è',\n '`': 'ô',\n '{': 'ä',\n '|': 'ö',\n '}': 'ü',\n '~': 'û'\n};\n//# sourceMappingURL=Charsets.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wcwidth = (function (opts) {\n var COMBINING_BMP = [\n [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489],\n [0x0591, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2],\n [0x05C4, 0x05C5], [0x05C7, 0x05C7], [0x0600, 0x0603],\n [0x0610, 0x0615], [0x064B, 0x065E], [0x0670, 0x0670],\n [0x06D6, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED],\n [0x070F, 0x070F], [0x0711, 0x0711], [0x0730, 0x074A],\n [0x07A6, 0x07B0], [0x07EB, 0x07F3], [0x0901, 0x0902],\n [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D],\n [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981],\n [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD],\n [0x09E2, 0x09E3], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C],\n [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D],\n [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC],\n [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD],\n [0x0AE2, 0x0AE3], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C],\n [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D],\n [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0],\n [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48],\n [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBC, 0x0CBC],\n [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD],\n [0x0CE2, 0x0CE3], [0x0D41, 0x0D43], [0x0D4D, 0x0D4D],\n [0x0DCA, 0x0DCA], [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6],\n [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E],\n [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC],\n [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35],\n [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E],\n [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F97],\n [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6], [0x102D, 0x1030],\n [0x1032, 0x1032], [0x1036, 0x1037], [0x1039, 0x1039],\n [0x1058, 0x1059], [0x1160, 0x11FF], [0x135F, 0x135F],\n [0x1712, 0x1714], [0x1732, 0x1734], [0x1752, 0x1753],\n [0x1772, 0x1773], [0x17B4, 0x17B5], [0x17B7, 0x17BD],\n [0x17C6, 0x17C6], [0x17C9, 0x17D3], [0x17DD, 0x17DD],\n [0x180B, 0x180D], [0x18A9, 0x18A9], [0x1920, 0x1922],\n [0x1927, 0x1928], [0x1932, 0x1932], [0x1939, 0x193B],\n [0x1A17, 0x1A18], [0x1B00, 0x1B03], [0x1B34, 0x1B34],\n [0x1B36, 0x1B3A], [0x1B3C, 0x1B3C], [0x1B42, 0x1B42],\n [0x1B6B, 0x1B73], [0x1DC0, 0x1DCA], [0x1DFE, 0x1DFF],\n [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2063],\n [0x206A, 0x206F], [0x20D0, 0x20EF], [0x302A, 0x302F],\n [0x3099, 0x309A], [0xA806, 0xA806], [0xA80B, 0xA80B],\n [0xA825, 0xA826], [0xFB1E, 0xFB1E], [0xFE00, 0xFE0F],\n [0xFE20, 0xFE23], [0xFEFF, 0xFEFF], [0xFFF9, 0xFFFB]\n ];\n var COMBINING_HIGH = [\n [0x10A01, 0x10A03], [0x10A05, 0x10A06], [0x10A0C, 0x10A0F],\n [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F], [0x1D167, 0x1D169],\n [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD],\n [0x1D242, 0x1D244], [0xE0001, 0xE0001], [0xE0020, 0xE007F],\n [0xE0100, 0xE01EF]\n ];\n function bisearch(ucs, data) {\n var min = 0;\n var max = data.length - 1;\n var mid;\n if (ucs < data[0][0] || ucs > data[max][1]) {\n return false;\n }\n while (max >= min) {\n mid = (min + max) >> 1;\n if (ucs > data[mid][1]) {\n min = mid + 1;\n }\n else if (ucs < data[mid][0]) {\n max = mid - 1;\n }\n else {\n return true;\n }\n }\n return false;\n }\n function wcwidthBMP(ucs) {\n if (ucs === 0) {\n return opts.nul;\n }\n if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) {\n return opts.control;\n }\n if (bisearch(ucs, COMBINING_BMP)) {\n return 0;\n }\n if (isWideBMP(ucs)) {\n return 2;\n }\n return 1;\n }\n function isWideBMP(ucs) {\n return (ucs >= 0x1100 && (ucs <= 0x115f ||\n ucs === 0x2329 ||\n ucs === 0x232a ||\n (ucs >= 0x2e80 && ucs <= 0xa4cf && ucs !== 0x303f) ||\n (ucs >= 0xac00 && ucs <= 0xd7a3) ||\n (ucs >= 0xf900 && ucs <= 0xfaff) ||\n (ucs >= 0xfe10 && ucs <= 0xfe19) ||\n (ucs >= 0xfe30 && ucs <= 0xfe6f) ||\n (ucs >= 0xff00 && ucs <= 0xff60) ||\n (ucs >= 0xffe0 && ucs <= 0xffe6)));\n }\n function wcwidthHigh(ucs) {\n if (bisearch(ucs, COMBINING_HIGH)) {\n return 0;\n }\n if ((ucs >= 0x20000 && ucs <= 0x2fffd) || (ucs >= 0x30000 && ucs <= 0x3fffd)) {\n return 2;\n }\n return 1;\n }\n var control = opts.control | 0;\n var table = null;\n function initTable() {\n var CODEPOINTS = 65536;\n var BITWIDTH = 2;\n var ITEMSIZE = 32;\n var CONTAINERSIZE = CODEPOINTS * BITWIDTH / ITEMSIZE;\n var CODEPOINTS_PER_ITEM = ITEMSIZE / BITWIDTH;\n table = (typeof Uint32Array === 'undefined')\n ? new Array(CONTAINERSIZE)\n : new Uint32Array(CONTAINERSIZE);\n for (var i = 0; i < CONTAINERSIZE; ++i) {\n var num = 0;\n var pos = CODEPOINTS_PER_ITEM;\n while (pos--) {\n num = (num << 2) | wcwidthBMP(CODEPOINTS_PER_ITEM * i + pos);\n }\n table[i] = num;\n }\n return table;\n }\n return function (num) {\n num = num | 0;\n if (num < 32) {\n return control | 0;\n }\n if (num < 127) {\n return 1;\n }\n var t = table || initTable();\n if (num < 65536) {\n return t[num >> 4] >> ((num & 15) << 1) & 3;\n }\n return wcwidthHigh(num);\n };\n})({ nul: 0, control: 0 });\n//# sourceMappingURL=CharWidth.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nfunction r(low, high) {\n var c = high - low;\n var arr = new Array(c);\n while (c--) {\n arr[c] = --high;\n }\n return arr;\n}\nvar TransitionTable = (function () {\n function TransitionTable(length) {\n this.table = (typeof Uint8Array === 'undefined')\n ? new Array(length)\n : new Uint8Array(length);\n }\n TransitionTable.prototype.add = function (code, state, action, next) {\n this.table[state << 8 | code] = ((action | 0) << 4) | ((next === undefined) ? state : next);\n };\n TransitionTable.prototype.addMany = function (codes, state, action, next) {\n for (var i = 0; i < codes.length; i++) {\n this.add(codes[i], state, action, next);\n }\n };\n return TransitionTable;\n}());\nexports.TransitionTable = TransitionTable;\nvar PRINTABLES = r(0x20, 0x7f);\nvar EXECUTABLES = r(0x00, 0x18);\nEXECUTABLES.push(0x19);\nEXECUTABLES.concat(r(0x1c, 0x20));\nvar DEFAULT_TRANSITION = 1 << 4 | 0;\nexports.VT500_TRANSITION_TABLE = (function () {\n var table = new TransitionTable(4095);\n var states = r(0, 13 + 1);\n var state;\n for (state in states) {\n for (var code = 0; code < 160; ++code) {\n table.add(code, state, 1, 0);\n }\n }\n table.addMany(PRINTABLES, 0, 2, 0);\n for (state in states) {\n table.addMany([0x18, 0x1a, 0x99, 0x9a], state, 3, 0);\n table.addMany(r(0x80, 0x90), state, 3, 0);\n table.addMany(r(0x90, 0x98), state, 3, 0);\n table.add(0x9c, state, 0, 0);\n table.add(0x1b, state, 11, 1);\n table.add(0x9d, state, 4, 8);\n table.addMany([0x98, 0x9e, 0x9f], state, 0, 7);\n table.add(0x9b, state, 11, 3);\n table.add(0x90, state, 11, 9);\n }\n table.addMany(EXECUTABLES, 0, 3, 0);\n table.addMany(EXECUTABLES, 1, 3, 1);\n table.add(0x7f, 1, 0, 1);\n table.addMany(EXECUTABLES, 8, 0, 8);\n table.addMany(EXECUTABLES, 3, 3, 3);\n table.add(0x7f, 3, 0, 3);\n table.addMany(EXECUTABLES, 4, 3, 4);\n table.add(0x7f, 4, 0, 4);\n table.addMany(EXECUTABLES, 6, 3, 6);\n table.addMany(EXECUTABLES, 5, 3, 5);\n table.add(0x7f, 5, 0, 5);\n table.addMany(EXECUTABLES, 2, 3, 2);\n table.add(0x7f, 2, 0, 2);\n table.add(0x5d, 1, 4, 8);\n table.addMany(PRINTABLES, 8, 5, 8);\n table.add(0x7f, 8, 5, 8);\n table.addMany([0x9c, 0x1b, 0x18, 0x1a, 0x07], 8, 6, 0);\n table.addMany(r(0x1c, 0x20), 8, 0, 8);\n table.addMany([0x58, 0x5e, 0x5f], 1, 0, 7);\n table.addMany(PRINTABLES, 7, 0, 7);\n table.addMany(EXECUTABLES, 7, 0, 7);\n table.add(0x9c, 7, 0, 0);\n table.add(0x5b, 1, 11, 3);\n table.addMany(r(0x40, 0x7f), 3, 7, 0);\n table.addMany(r(0x30, 0x3a), 3, 8, 4);\n table.add(0x3b, 3, 8, 4);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], 3, 9, 4);\n table.addMany(r(0x30, 0x3a), 4, 8, 4);\n table.add(0x3b, 4, 8, 4);\n table.addMany(r(0x40, 0x7f), 4, 7, 0);\n table.addMany([0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 4, 0, 6);\n table.addMany(r(0x20, 0x40), 6, 0, 6);\n table.add(0x7f, 6, 0, 6);\n table.addMany(r(0x40, 0x7f), 6, 0, 0);\n table.add(0x3a, 3, 0, 6);\n table.addMany(r(0x20, 0x30), 3, 9, 5);\n table.addMany(r(0x20, 0x30), 5, 9, 5);\n table.addMany(r(0x30, 0x40), 5, 0, 6);\n table.addMany(r(0x40, 0x7f), 5, 7, 0);\n table.addMany(r(0x20, 0x30), 4, 9, 5);\n table.addMany(r(0x20, 0x30), 1, 9, 2);\n table.addMany(r(0x20, 0x30), 2, 9, 2);\n table.addMany(r(0x30, 0x7f), 2, 10, 0);\n table.addMany(r(0x30, 0x50), 1, 10, 0);\n table.addMany(r(0x51, 0x58), 1, 10, 0);\n table.addMany([0x59, 0x5a, 0x5c], 1, 10, 0);\n table.addMany(r(0x60, 0x7f), 1, 10, 0);\n table.add(0x50, 1, 11, 9);\n table.addMany(EXECUTABLES, 9, 0, 9);\n table.add(0x7f, 9, 0, 9);\n table.addMany(r(0x1c, 0x20), 9, 0, 9);\n table.addMany(r(0x20, 0x30), 9, 9, 12);\n table.add(0x3a, 9, 0, 11);\n table.addMany(r(0x30, 0x3a), 9, 8, 10);\n table.add(0x3b, 9, 8, 10);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], 9, 9, 10);\n table.addMany(EXECUTABLES, 11, 0, 11);\n table.addMany(r(0x20, 0x80), 11, 0, 11);\n table.addMany(r(0x1c, 0x20), 11, 0, 11);\n table.addMany(EXECUTABLES, 10, 0, 10);\n table.add(0x7f, 10, 0, 10);\n table.addMany(r(0x1c, 0x20), 10, 0, 10);\n table.addMany(r(0x30, 0x3a), 10, 8, 10);\n table.add(0x3b, 10, 8, 10);\n table.addMany([0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 10, 0, 11);\n table.addMany(r(0x20, 0x30), 10, 9, 12);\n table.addMany(EXECUTABLES, 12, 0, 12);\n table.add(0x7f, 12, 0, 12);\n table.addMany(r(0x1c, 0x20), 12, 0, 12);\n table.addMany(r(0x20, 0x30), 12, 9, 12);\n table.addMany(r(0x30, 0x40), 12, 0, 11);\n table.addMany(r(0x40, 0x7f), 12, 12, 13);\n table.addMany(r(0x40, 0x7f), 10, 12, 13);\n table.addMany(r(0x40, 0x7f), 9, 12, 13);\n table.addMany(EXECUTABLES, 13, 13, 13);\n table.addMany(PRINTABLES, 13, 13, 13);\n table.add(0x7f, 13, 0, 13);\n table.addMany([0x1b, 0x9c], 13, 14, 0);\n return table;\n})();\nvar DcsDummy = (function () {\n function DcsDummy() {\n }\n DcsDummy.prototype.hook = function (collect, params, flag) { };\n DcsDummy.prototype.put = function (data, start, end) { };\n DcsDummy.prototype.unhook = function () { };\n return DcsDummy;\n}());\nvar EscapeSequenceParser = (function (_super) {\n __extends(EscapeSequenceParser, _super);\n function EscapeSequenceParser(TRANSITIONS) {\n if (TRANSITIONS === void 0) { TRANSITIONS = exports.VT500_TRANSITION_TABLE; }\n var _this = _super.call(this) || this;\n _this.TRANSITIONS = TRANSITIONS;\n _this.initialState = 0;\n _this.currentState = _this.initialState;\n _this._osc = '';\n _this._params = [0];\n _this._collect = '';\n _this._printHandlerFb = function (data, start, end) { };\n _this._executeHandlerFb = function (code) { };\n _this._csiHandlerFb = function (collect, params, flag) { };\n _this._escHandlerFb = function (collect, flag) { };\n _this._oscHandlerFb = function (identifier, data) { };\n _this._dcsHandlerFb = new DcsDummy();\n _this._errorHandlerFb = function (state) { return state; };\n _this._printHandler = _this._printHandlerFb;\n _this._executeHandlers = Object.create(null);\n _this._csiHandlers = Object.create(null);\n _this._escHandlers = Object.create(null);\n _this._oscHandlers = Object.create(null);\n _this._dcsHandlers = Object.create(null);\n _this._activeDcsHandler = null;\n _this._errorHandler = _this._errorHandlerFb;\n return _this;\n }\n EscapeSequenceParser.prototype.dispose = function () {\n this._printHandlerFb = null;\n this._executeHandlerFb = null;\n this._csiHandlerFb = null;\n this._escHandlerFb = null;\n this._oscHandlerFb = null;\n this._dcsHandlerFb = null;\n this._errorHandlerFb = null;\n this._printHandler = null;\n this._executeHandlers = null;\n this._csiHandlers = null;\n this._escHandlers = null;\n this._oscHandlers = null;\n this._dcsHandlers = null;\n this._activeDcsHandler = null;\n this._errorHandler = null;\n };\n EscapeSequenceParser.prototype.setPrintHandler = function (callback) {\n this._printHandler = callback;\n };\n EscapeSequenceParser.prototype.clearPrintHandler = function () {\n this._printHandler = this._printHandlerFb;\n };\n EscapeSequenceParser.prototype.setExecuteHandler = function (flag, callback) {\n this._executeHandlers[flag.charCodeAt(0)] = callback;\n };\n EscapeSequenceParser.prototype.clearExecuteHandler = function (flag) {\n if (this._executeHandlers[flag.charCodeAt(0)])\n delete this._executeHandlers[flag.charCodeAt(0)];\n };\n EscapeSequenceParser.prototype.setExecuteHandlerFallback = function (callback) {\n this._executeHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.setCsiHandler = function (flag, callback) {\n this._csiHandlers[flag.charCodeAt(0)] = callback;\n };\n EscapeSequenceParser.prototype.clearCsiHandler = function (flag) {\n if (this._csiHandlers[flag.charCodeAt(0)])\n delete this._csiHandlers[flag.charCodeAt(0)];\n };\n EscapeSequenceParser.prototype.setCsiHandlerFallback = function (callback) {\n this._csiHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.setEscHandler = function (collectAndFlag, callback) {\n this._escHandlers[collectAndFlag] = callback;\n };\n EscapeSequenceParser.prototype.clearEscHandler = function (collectAndFlag) {\n if (this._escHandlers[collectAndFlag])\n delete this._escHandlers[collectAndFlag];\n };\n EscapeSequenceParser.prototype.setEscHandlerFallback = function (callback) {\n this._escHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.setOscHandler = function (ident, callback) {\n this._oscHandlers[ident] = callback;\n };\n EscapeSequenceParser.prototype.clearOscHandler = function (ident) {\n if (this._oscHandlers[ident])\n delete this._oscHandlers[ident];\n };\n EscapeSequenceParser.prototype.setOscHandlerFallback = function (callback) {\n this._oscHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.setDcsHandler = function (collectAndFlag, handler) {\n this._dcsHandlers[collectAndFlag] = handler;\n };\n EscapeSequenceParser.prototype.clearDcsHandler = function (collectAndFlag) {\n if (this._dcsHandlers[collectAndFlag])\n delete this._dcsHandlers[collectAndFlag];\n };\n EscapeSequenceParser.prototype.setDcsHandlerFallback = function (handler) {\n this._dcsHandlerFb = handler;\n };\n EscapeSequenceParser.prototype.setErrorHandler = function (callback) {\n this._errorHandler = callback;\n };\n EscapeSequenceParser.prototype.clearErrorHandler = function () {\n this._errorHandler = this._errorHandlerFb;\n };\n EscapeSequenceParser.prototype.reset = function () {\n this.currentState = this.initialState;\n this._osc = '';\n this._params = [0];\n this._collect = '';\n this._activeDcsHandler = null;\n };\n EscapeSequenceParser.prototype.parse = function (data) {\n var code = 0;\n var transition = 0;\n var error = false;\n var currentState = this.currentState;\n var print = -1;\n var dcs = -1;\n var osc = this._osc;\n var collect = this._collect;\n var params = this._params;\n var table = this.TRANSITIONS.table;\n var dcsHandler = this._activeDcsHandler;\n var callback = null;\n var l = data.length;\n for (var i = 0; i < l; ++i) {\n code = data.charCodeAt(i);\n if (currentState === 0 && code > 0x1f && code < 0x80) {\n print = (~print) ? print : i;\n do\n i++;\n while (i < l && data.charCodeAt(i) > 0x1f && data.charCodeAt(i) < 0x80);\n i--;\n continue;\n }\n if (currentState === 4 && (code > 0x2f && code < 0x39)) {\n params[params.length - 1] = params[params.length - 1] * 10 + code - 48;\n continue;\n }\n transition = (code < 0xa0) ? (table[currentState << 8 | code]) : DEFAULT_TRANSITION;\n switch (transition >> 4) {\n case 2:\n print = (~print) ? print : i;\n break;\n case 3:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n callback = this._executeHandlers[code];\n if (callback)\n callback();\n else\n this._executeHandlerFb(code);\n break;\n case 0:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n else if (~dcs) {\n dcsHandler.put(data, dcs, i);\n dcs = -1;\n }\n break;\n case 1:\n if (code > 0x9f) {\n switch (currentState) {\n case 0:\n print = (~print) ? print : i;\n break;\n case 8:\n osc += String.fromCharCode(code);\n transition |= 8;\n break;\n case 6:\n transition |= 6;\n break;\n case 11:\n transition |= 11;\n break;\n case 13:\n dcs = (~dcs) ? dcs : i;\n transition |= 13;\n break;\n default:\n error = true;\n }\n }\n else {\n error = true;\n }\n if (error) {\n var inject = this._errorHandler({\n position: i,\n code: code,\n currentState: currentState,\n print: print,\n dcs: dcs,\n osc: osc,\n collect: collect,\n params: params,\n abort: false\n });\n if (inject.abort)\n return;\n error = false;\n }\n break;\n case 7:\n callback = this._csiHandlers[code];\n if (callback)\n callback(params, collect);\n else\n this._csiHandlerFb(collect, params, code);\n break;\n case 8:\n if (code === 0x3b)\n params.push(0);\n else\n params[params.length - 1] = params[params.length - 1] * 10 + code - 48;\n break;\n case 9:\n collect += String.fromCharCode(code);\n break;\n case 10:\n callback = this._escHandlers[collect + String.fromCharCode(code)];\n if (callback)\n callback(collect, code);\n else\n this._escHandlerFb(collect, code);\n break;\n case 11:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n osc = '';\n params = [0];\n collect = '';\n dcs = -1;\n break;\n case 12:\n dcsHandler = this._dcsHandlers[collect + String.fromCharCode(code)];\n if (!dcsHandler)\n dcsHandler = this._dcsHandlerFb;\n dcsHandler.hook(collect, params, code);\n break;\n case 13:\n dcs = (~dcs) ? dcs : i;\n break;\n case 14:\n if (dcsHandler) {\n if (~dcs)\n dcsHandler.put(data, dcs, i);\n dcsHandler.unhook();\n dcsHandler = null;\n }\n if (code === 0x1b)\n transition |= 1;\n osc = '';\n params = [0];\n collect = '';\n dcs = -1;\n break;\n case 4:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n osc = '';\n break;\n case 5:\n osc += data.charAt(i);\n break;\n case 6:\n if (osc && code !== 0x18 && code !== 0x1a) {\n var idx = osc.indexOf(';');\n if (idx === -1) {\n this._oscHandlerFb(-1, osc);\n }\n else {\n var identifier = parseInt(osc.substring(0, idx));\n var content = osc.substring(idx + 1);\n callback = this._oscHandlers[identifier];\n if (callback)\n callback(content);\n else\n this._oscHandlerFb(identifier, content);\n }\n }\n if (code === 0x1b)\n transition |= 1;\n osc = '';\n params = [0];\n collect = '';\n dcs = -1;\n break;\n }\n currentState = transition & 15;\n }\n if (currentState === 0 && ~print) {\n this._printHandler(data, print, data.length);\n }\n else if (currentState === 13 && ~dcs && dcsHandler) {\n dcsHandler.put(data, dcs, data.length);\n }\n this._osc = osc;\n this._collect = collect;\n this._params = params;\n this._activeDcsHandler = dcsHandler;\n this.currentState = currentState;\n };\n return EscapeSequenceParser;\n}(Lifecycle_1.Disposable));\nexports.EscapeSequenceParser = EscapeSequenceParser;\n//# sourceMappingURL=EscapeSequenceParser.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TextRenderLayer_1 = require(\"./TextRenderLayer\");\nvar SelectionRenderLayer_1 = require(\"./SelectionRenderLayer\");\nvar CursorRenderLayer_1 = require(\"./CursorRenderLayer\");\nvar ColorManager_1 = require(\"./ColorManager\");\nvar LinkRenderLayer_1 = require(\"./LinkRenderLayer\");\nvar EventEmitter_1 = require(\"../EventEmitter\");\nvar RenderDebouncer_1 = require(\"../ui/RenderDebouncer\");\nvar ScreenDprMonitor_1 = require(\"../ui/ScreenDprMonitor\");\nvar CharacterJoinerRegistry_1 = require(\"../renderer/CharacterJoinerRegistry\");\nvar Renderer = (function (_super) {\n __extends(Renderer, _super);\n function Renderer(_terminal, theme) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._isPaused = false;\n _this._needsFullRefresh = false;\n var allowTransparency = _this._terminal.options.allowTransparency;\n _this.colorManager = new ColorManager_1.ColorManager(document, allowTransparency);\n _this._characterJoinerRegistry = new CharacterJoinerRegistry_1.CharacterJoinerRegistry(_terminal);\n if (theme) {\n _this.colorManager.setTheme(theme);\n }\n _this._renderLayers = [\n new TextRenderLayer_1.TextRenderLayer(_this._terminal.screenElement, 0, _this.colorManager.colors, _this._characterJoinerRegistry, allowTransparency),\n new SelectionRenderLayer_1.SelectionRenderLayer(_this._terminal.screenElement, 1, _this.colorManager.colors),\n new LinkRenderLayer_1.LinkRenderLayer(_this._terminal.screenElement, 2, _this.colorManager.colors, _this._terminal),\n new CursorRenderLayer_1.CursorRenderLayer(_this._terminal.screenElement, 3, _this.colorManager.colors)\n ];\n _this.dimensions = {\n scaledCharWidth: null,\n scaledCharHeight: null,\n scaledCellWidth: null,\n scaledCellHeight: null,\n scaledCharLeft: null,\n scaledCharTop: null,\n scaledCanvasWidth: null,\n scaledCanvasHeight: null,\n canvasWidth: null,\n canvasHeight: null,\n actualCellWidth: null,\n actualCellHeight: null\n };\n _this._devicePixelRatio = window.devicePixelRatio;\n _this._updateDimensions();\n _this.onOptionsChanged();\n _this._renderDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._terminal, _this._renderRows.bind(_this));\n _this._screenDprMonitor = new ScreenDprMonitor_1.ScreenDprMonitor();\n _this._screenDprMonitor.setListener(function () { return _this.onWindowResize(window.devicePixelRatio); });\n _this.register(_this._screenDprMonitor);\n if ('IntersectionObserver' in window) {\n var observer_1 = new IntersectionObserver(function (e) { return _this.onIntersectionChange(e[0]); }, { threshold: 0 });\n observer_1.observe(_this._terminal.element);\n _this.register({ dispose: function () { return observer_1.disconnect(); } });\n }\n return _this;\n }\n Renderer.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._renderLayers.forEach(function (l) { return l.dispose(); });\n };\n Renderer.prototype.onIntersectionChange = function (entry) {\n this._isPaused = entry.intersectionRatio === 0;\n if (!this._isPaused && this._needsFullRefresh) {\n this._terminal.refresh(0, this._terminal.rows - 1);\n }\n };\n Renderer.prototype.onWindowResize = function (devicePixelRatio) {\n if (this._devicePixelRatio !== devicePixelRatio) {\n this._devicePixelRatio = devicePixelRatio;\n this.onResize(this._terminal.cols, this._terminal.rows);\n }\n };\n Renderer.prototype.setTheme = function (theme) {\n var _this = this;\n this.colorManager.setTheme(theme);\n this._renderLayers.forEach(function (l) {\n l.onThemeChanged(_this._terminal, _this.colorManager.colors);\n l.reset(_this._terminal);\n });\n if (this._isPaused) {\n this._needsFullRefresh = true;\n }\n else {\n this._terminal.refresh(0, this._terminal.rows - 1);\n }\n return this.colorManager.colors;\n };\n Renderer.prototype.onResize = function (cols, rows) {\n var _this = this;\n this._updateDimensions();\n this._renderLayers.forEach(function (l) { return l.resize(_this._terminal, _this.dimensions); });\n if (this._isPaused) {\n this._needsFullRefresh = true;\n }\n else {\n this._terminal.refresh(0, this._terminal.rows - 1);\n }\n this._terminal.screenElement.style.width = this.dimensions.canvasWidth + \"px\";\n this._terminal.screenElement.style.height = this.dimensions.canvasHeight + \"px\";\n this.emit('resize', {\n width: this.dimensions.canvasWidth,\n height: this.dimensions.canvasHeight\n });\n };\n Renderer.prototype.onCharSizeChanged = function () {\n this.onResize(this._terminal.cols, this._terminal.rows);\n };\n Renderer.prototype.onBlur = function () {\n var _this = this;\n this._runOperation(function (l) { return l.onBlur(_this._terminal); });\n };\n Renderer.prototype.onFocus = function () {\n var _this = this;\n this._runOperation(function (l) { return l.onFocus(_this._terminal); });\n };\n Renderer.prototype.onSelectionChanged = function (start, end, columnSelectMode) {\n var _this = this;\n if (columnSelectMode === void 0) { columnSelectMode = false; }\n this._runOperation(function (l) { return l.onSelectionChanged(_this._terminal, start, end, columnSelectMode); });\n };\n Renderer.prototype.onCursorMove = function () {\n var _this = this;\n this._runOperation(function (l) { return l.onCursorMove(_this._terminal); });\n };\n Renderer.prototype.onOptionsChanged = function () {\n var _this = this;\n this.colorManager.allowTransparency = this._terminal.options.allowTransparency;\n this._runOperation(function (l) { return l.onOptionsChanged(_this._terminal); });\n };\n Renderer.prototype.clear = function () {\n var _this = this;\n this._runOperation(function (l) { return l.reset(_this._terminal); });\n };\n Renderer.prototype._runOperation = function (operation) {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n }\n else {\n this._renderLayers.forEach(function (l) { return operation(l); });\n }\n };\n Renderer.prototype.refreshRows = function (start, end) {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n return;\n }\n this._renderDebouncer.refresh(start, end);\n };\n Renderer.prototype._renderRows = function (start, end) {\n var _this = this;\n this._renderLayers.forEach(function (l) { return l.onGridChanged(_this._terminal, start, end); });\n this._terminal.emit('refresh', { start: start, end: end });\n };\n Renderer.prototype._updateDimensions = function () {\n if (!this._terminal.charMeasure.width || !this._terminal.charMeasure.height) {\n return;\n }\n this.dimensions.scaledCharWidth = Math.floor(this._terminal.charMeasure.width * window.devicePixelRatio);\n this.dimensions.scaledCharHeight = Math.ceil(this._terminal.charMeasure.height * window.devicePixelRatio);\n this.dimensions.scaledCellHeight = Math.floor(this.dimensions.scaledCharHeight * this._terminal.options.lineHeight);\n this.dimensions.scaledCharTop = this._terminal.options.lineHeight === 1 ? 0 : Math.round((this.dimensions.scaledCellHeight - this.dimensions.scaledCharHeight) / 2);\n this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth + Math.round(this._terminal.options.letterSpacing);\n this.dimensions.scaledCharLeft = Math.floor(this._terminal.options.letterSpacing / 2);\n this.dimensions.scaledCanvasHeight = this._terminal.rows * this.dimensions.scaledCellHeight;\n this.dimensions.scaledCanvasWidth = this._terminal.cols * this.dimensions.scaledCellWidth;\n this.dimensions.canvasHeight = Math.round(this.dimensions.scaledCanvasHeight / window.devicePixelRatio);\n this.dimensions.canvasWidth = Math.round(this.dimensions.scaledCanvasWidth / window.devicePixelRatio);\n this.dimensions.actualCellHeight = this.dimensions.canvasHeight / this._terminal.rows;\n this.dimensions.actualCellWidth = this.dimensions.canvasWidth / this._terminal.cols;\n };\n Renderer.prototype.registerCharacterJoiner = function (handler) {\n return this._characterJoinerRegistry.registerCharacterJoiner(handler);\n };\n Renderer.prototype.deregisterCharacterJoiner = function (joinerId) {\n return this._characterJoinerRegistry.deregisterCharacterJoiner(joinerId);\n };\n return Renderer;\n}(EventEmitter_1.EventEmitter));\nexports.Renderer = Renderer;\n//# sourceMappingURL=Renderer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../Buffer\");\nvar Types_1 = require(\"./atlas/Types\");\nvar GridCache_1 = require(\"./GridCache\");\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar TextRenderLayer = (function (_super) {\n __extends(TextRenderLayer, _super);\n function TextRenderLayer(container, zIndex, colors, characterJoinerRegistry, alpha) {\n var _this = _super.call(this, container, 'text', zIndex, alpha, colors) || this;\n _this._characterOverlapCache = {};\n _this._state = new GridCache_1.GridCache();\n _this._characterJoinerRegistry = characterJoinerRegistry;\n return _this;\n }\n TextRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n var terminalFont = this._getFont(terminal, false, false);\n if (this._characterWidth !== dim.scaledCharWidth || this._characterFont !== terminalFont) {\n this._characterWidth = dim.scaledCharWidth;\n this._characterFont = terminalFont;\n this._characterOverlapCache = {};\n }\n this._state.clear();\n this._state.resize(terminal.cols, terminal.rows);\n };\n TextRenderLayer.prototype.reset = function (terminal) {\n this._state.clear();\n this.clearAll();\n };\n TextRenderLayer.prototype._forEachCell = function (terminal, firstRow, lastRow, joinerRegistry, callback) {\n for (var y = firstRow; y <= lastRow; y++) {\n var row = y + terminal.buffer.ydisp;\n var line = terminal.buffer.lines.get(row);\n var joinedRanges = joinerRegistry ? joinerRegistry.getJoinedCharacters(row) : [];\n for (var x = 0; x < terminal.cols; x++) {\n var charData = line[x];\n var code = charData[Buffer_1.CHAR_DATA_CODE_INDEX];\n var chars = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n var isJoined = false;\n var lastCharX = x;\n if (width === 0) {\n continue;\n }\n if (joinedRanges.length > 0 && x === joinedRanges[0][0]) {\n isJoined = true;\n var range = joinedRanges.shift();\n chars = terminal.buffer.translateBufferLineToString(row, true, range[0], range[1]);\n width = range[1] - range[0];\n code = Infinity;\n lastCharX = range[1] - 1;\n }\n if (!isJoined && this._isOverlapping(charData)) {\n if (lastCharX < line.length - 1 && line[lastCharX + 1][Buffer_1.CHAR_DATA_CODE_INDEX] === Buffer_1.NULL_CELL_CODE) {\n width = 2;\n }\n }\n var flags = attr >> 18;\n var bg = attr & 0x1ff;\n var fg = (attr >> 9) & 0x1ff;\n if (flags & 8) {\n var temp = bg;\n bg = fg;\n fg = temp;\n if (fg === 256) {\n fg = Types_1.INVERTED_DEFAULT_COLOR;\n }\n if (bg === 257) {\n bg = Types_1.INVERTED_DEFAULT_COLOR;\n }\n }\n callback(code, chars, width, x, y, fg, bg, flags);\n x = lastCharX;\n }\n }\n };\n TextRenderLayer.prototype._drawBackground = function (terminal, firstRow, lastRow) {\n var _this = this;\n var ctx = this._ctx;\n var cols = terminal.cols;\n var startX = 0;\n var startY = 0;\n var prevFillStyle = null;\n ctx.save();\n this._forEachCell(terminal, firstRow, lastRow, null, function (code, chars, width, x, y, fg, bg, flags) {\n var nextFillStyle = null;\n if (bg === Types_1.INVERTED_DEFAULT_COLOR) {\n nextFillStyle = _this._colors.foreground.css;\n }\n else if (bg < 256) {\n nextFillStyle = _this._colors.ansi[bg].css;\n }\n if (prevFillStyle === null) {\n startX = x;\n startY = y;\n }\n if (y !== startY) {\n ctx.fillStyle = prevFillStyle;\n _this.fillCells(startX, startY, cols - startX, 1);\n startX = x;\n startY = y;\n }\n else if (prevFillStyle !== nextFillStyle) {\n ctx.fillStyle = prevFillStyle;\n _this.fillCells(startX, startY, x - startX, 1);\n startX = x;\n startY = y;\n }\n prevFillStyle = nextFillStyle;\n });\n if (prevFillStyle !== null) {\n ctx.fillStyle = prevFillStyle;\n this.fillCells(startX, startY, cols - startX, 1);\n }\n ctx.restore();\n };\n TextRenderLayer.prototype._drawForeground = function (terminal, firstRow, lastRow) {\n var _this = this;\n this._forEachCell(terminal, firstRow, lastRow, this._characterJoinerRegistry, function (code, chars, width, x, y, fg, bg, flags) {\n if (flags & 16) {\n return;\n }\n if (flags & 2) {\n _this._ctx.save();\n if (fg === Types_1.INVERTED_DEFAULT_COLOR) {\n _this._ctx.fillStyle = _this._colors.background.css;\n }\n else if (fg < 256) {\n _this._ctx.fillStyle = _this._colors.ansi[fg].css;\n }\n else {\n _this._ctx.fillStyle = _this._colors.foreground.css;\n }\n _this.fillBottomLineAtCells(x, y, width);\n _this._ctx.restore();\n }\n _this.drawChars(terminal, chars, code, width, x, y, fg, bg, !!(flags & 1), !!(flags & 32), !!(flags & 64));\n });\n };\n TextRenderLayer.prototype.onGridChanged = function (terminal, firstRow, lastRow) {\n if (this._state.cache.length === 0) {\n return;\n }\n if (this._charAtlas) {\n this._charAtlas.beginFrame();\n }\n this.clearCells(0, firstRow, terminal.cols, lastRow - firstRow + 1);\n this._drawBackground(terminal, firstRow, lastRow);\n this._drawForeground(terminal, firstRow, lastRow);\n };\n TextRenderLayer.prototype.onOptionsChanged = function (terminal) {\n this.setTransparency(terminal, terminal.options.allowTransparency);\n };\n TextRenderLayer.prototype._isOverlapping = function (charData) {\n if (charData[Buffer_1.CHAR_DATA_WIDTH_INDEX] !== 1) {\n return false;\n }\n var code = charData[Buffer_1.CHAR_DATA_CODE_INDEX];\n if (code < 256) {\n return false;\n }\n var char = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n if (this._characterOverlapCache.hasOwnProperty(char)) {\n return this._characterOverlapCache[char];\n }\n this._ctx.save();\n this._ctx.font = this._characterFont;\n var overlaps = Math.floor(this._ctx.measureText(char).width) > this._characterWidth;\n this._ctx.restore();\n this._characterOverlapCache[char] = overlaps;\n return overlaps;\n };\n return TextRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.TextRenderLayer = TextRenderLayer;\n//# sourceMappingURL=TextRenderLayer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GridCache = (function () {\n function GridCache() {\n this.cache = [];\n }\n GridCache.prototype.resize = function (width, height) {\n for (var x = 0; x < width; x++) {\n if (this.cache.length <= x) {\n this.cache.push([]);\n }\n for (var y = this.cache[x].length; y < height; y++) {\n this.cache[x].push(null);\n }\n this.cache[x].length = height;\n }\n this.cache.length = width;\n };\n GridCache.prototype.clear = function () {\n for (var x = 0; x < this.cache.length; x++) {\n for (var y = 0; y < this.cache[x].length; y++) {\n this.cache[x][y] = null;\n }\n }\n };\n return GridCache;\n}());\nexports.GridCache = GridCache;\n//# sourceMappingURL=GridCache.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors) {\n var clonedColors = {\n foreground: colors.foreground,\n background: colors.background,\n cursor: null,\n cursorAccent: null,\n selection: null,\n ansi: colors.ansi.slice(0, 16)\n };\n return {\n type: terminal.options.experimentalCharAtlas,\n devicePixelRatio: window.devicePixelRatio,\n scaledCharWidth: scaledCharWidth,\n scaledCharHeight: scaledCharHeight,\n fontFamily: terminal.options.fontFamily,\n fontSize: terminal.options.fontSize,\n fontWeight: terminal.options.fontWeight,\n fontWeightBold: terminal.options.fontWeightBold,\n allowTransparency: terminal.options.allowTransparency,\n colors: clonedColors\n };\n}\nexports.generateConfig = generateConfig;\nfunction configEquals(a, b) {\n for (var i = 0; i < a.colors.ansi.length; i++) {\n if (a.colors.ansi[i].rgba !== b.colors.ansi[i].rgba) {\n return false;\n }\n }\n return a.type === b.type &&\n a.devicePixelRatio === b.devicePixelRatio &&\n a.fontFamily === b.fontFamily &&\n a.fontSize === b.fontSize &&\n a.fontWeight === b.fontWeight &&\n a.fontWeightBold === b.fontWeightBold &&\n a.allowTransparency === b.allowTransparency &&\n a.scaledCharWidth === b.scaledCharWidth &&\n a.scaledCharHeight === b.scaledCharHeight &&\n a.colors.foreground === b.colors.foreground &&\n a.colors.background === b.colors.background;\n}\nexports.configEquals = configEquals;\n//# sourceMappingURL=CharAtlasUtils.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./Types\");\nvar BaseCharAtlas_1 = require(\"./BaseCharAtlas\");\nvar ColorManager_1 = require(\"../ColorManager\");\nvar CharAtlasGenerator_1 = require(\"../../shared/atlas/CharAtlasGenerator\");\nvar LRUMap_1 = require(\"./LRUMap\");\nvar TEXTURE_WIDTH = 1024;\nvar TEXTURE_HEIGHT = 1024;\nvar TRANSPARENT_COLOR = {\n css: 'rgba(0, 0, 0, 0)',\n rgba: 0\n};\nvar FRAME_CACHE_DRAW_LIMIT = 100;\nfunction getGlyphCacheKey(glyph) {\n var styleFlags = (glyph.bold ? 0 : 4) + (glyph.dim ? 0 : 2) + (glyph.italic ? 0 : 1);\n return glyph.bg + \"_\" + glyph.fg + \"_\" + styleFlags + glyph.chars;\n}\nvar DynamicCharAtlas = (function (_super) {\n __extends(DynamicCharAtlas, _super);\n function DynamicCharAtlas(document, _config) {\n var _this = _super.call(this) || this;\n _this._config = _config;\n _this._drawToCacheCount = 0;\n _this._cacheCanvas = document.createElement('canvas');\n _this._cacheCanvas.width = TEXTURE_WIDTH;\n _this._cacheCanvas.height = TEXTURE_HEIGHT;\n _this._cacheCtx = _this._cacheCanvas.getContext('2d', { alpha: true });\n var tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = _this._config.scaledCharWidth;\n tmpCanvas.height = _this._config.scaledCharHeight;\n _this._tmpCtx = tmpCanvas.getContext('2d', { alpha: _this._config.allowTransparency });\n _this._width = Math.floor(TEXTURE_WIDTH / _this._config.scaledCharWidth);\n _this._height = Math.floor(TEXTURE_HEIGHT / _this._config.scaledCharHeight);\n var capacity = _this._width * _this._height;\n _this._cacheMap = new LRUMap_1.default(capacity);\n _this._cacheMap.prealloc(capacity);\n return _this;\n }\n DynamicCharAtlas.prototype.beginFrame = function () {\n this._drawToCacheCount = 0;\n };\n DynamicCharAtlas.prototype.draw = function (ctx, glyph, x, y) {\n var glyphKey = getGlyphCacheKey(glyph);\n var cacheValue = this._cacheMap.get(glyphKey);\n if (cacheValue != null) {\n this._drawFromCache(ctx, cacheValue, x, y);\n return true;\n }\n else if (this._canCache(glyph) && this._drawToCacheCount < FRAME_CACHE_DRAW_LIMIT) {\n var index = void 0;\n if (this._cacheMap.size < this._cacheMap.capacity) {\n index = this._cacheMap.size;\n }\n else {\n index = this._cacheMap.peek().index;\n }\n var cacheValue_1 = this._drawToCache(glyph, index);\n this._cacheMap.set(glyphKey, cacheValue_1);\n this._drawFromCache(ctx, cacheValue_1, x, y);\n return true;\n }\n return false;\n };\n DynamicCharAtlas.prototype._canCache = function (glyph) {\n return glyph.code < 256;\n };\n DynamicCharAtlas.prototype._toCoordinates = function (index) {\n return [\n (index % this._width) * this._config.scaledCharWidth,\n Math.floor(index / this._width) * this._config.scaledCharHeight\n ];\n };\n DynamicCharAtlas.prototype._drawFromCache = function (ctx, cacheValue, x, y) {\n if (cacheValue.isEmpty) {\n return;\n }\n var _a = this._toCoordinates(cacheValue.index), cacheX = _a[0], cacheY = _a[1];\n ctx.drawImage(this._cacheCanvas, cacheX, cacheY, this._config.scaledCharWidth, this._config.scaledCharHeight, x, y, this._config.scaledCharWidth, this._config.scaledCharHeight);\n };\n DynamicCharAtlas.prototype._getColorFromAnsiIndex = function (idx) {\n if (idx < this._config.colors.ansi.length) {\n return this._config.colors.ansi[idx];\n }\n return ColorManager_1.DEFAULT_ANSI_COLORS[idx];\n };\n DynamicCharAtlas.prototype._getBackgroundColor = function (glyph) {\n if (this._config.allowTransparency) {\n return TRANSPARENT_COLOR;\n }\n else if (glyph.bg === Types_1.INVERTED_DEFAULT_COLOR) {\n return this._config.colors.foreground;\n }\n else if (glyph.bg < 256) {\n return this._getColorFromAnsiIndex(glyph.bg);\n }\n return this._config.colors.background;\n };\n DynamicCharAtlas.prototype._getForegroundColor = function (glyph) {\n if (glyph.fg === Types_1.INVERTED_DEFAULT_COLOR) {\n return this._config.colors.background;\n }\n else if (glyph.fg < 256) {\n return this._getColorFromAnsiIndex(glyph.fg);\n }\n return this._config.colors.foreground;\n };\n DynamicCharAtlas.prototype._drawToCache = function (glyph, index) {\n this._drawToCacheCount++;\n this._tmpCtx.save();\n var backgroundColor = this._getBackgroundColor(glyph);\n this._tmpCtx.globalCompositeOperation = 'copy';\n this._tmpCtx.fillStyle = backgroundColor.css;\n this._tmpCtx.fillRect(0, 0, this._config.scaledCharWidth, this._config.scaledCharHeight);\n this._tmpCtx.globalCompositeOperation = 'source-over';\n var fontWeight = glyph.bold ? this._config.fontWeightBold : this._config.fontWeight;\n var fontStyle = glyph.italic ? 'italic' : '';\n this._tmpCtx.font =\n fontStyle + \" \" + fontWeight + \" \" + this._config.fontSize * this._config.devicePixelRatio + \"px \" + this._config.fontFamily;\n this._tmpCtx.textBaseline = 'top';\n this._tmpCtx.fillStyle = this._getForegroundColor(glyph).css;\n if (glyph.dim) {\n this._tmpCtx.globalAlpha = Types_1.DIM_OPACITY;\n }\n this._tmpCtx.fillText(glyph.chars, 0, 0);\n this._tmpCtx.restore();\n var imageData = this._tmpCtx.getImageData(0, 0, this._config.scaledCharWidth, this._config.scaledCharHeight);\n var isEmpty = false;\n if (!this._config.allowTransparency) {\n isEmpty = CharAtlasGenerator_1.clearColor(imageData, backgroundColor);\n }\n var _a = this._toCoordinates(index), x = _a[0], y = _a[1];\n this._cacheCtx.putImageData(imageData, x, y);\n return {\n index: index,\n isEmpty: isEmpty\n };\n };\n return DynamicCharAtlas;\n}(BaseCharAtlas_1.default));\nexports.default = DynamicCharAtlas;\n//# sourceMappingURL=DynamicCharAtlas.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRUMap = (function () {\n function LRUMap(capacity) {\n this.capacity = capacity;\n this._map = {};\n this._head = null;\n this._tail = null;\n this._nodePool = [];\n this.size = 0;\n }\n LRUMap.prototype._unlinkNode = function (node) {\n var prev = node.prev;\n var next = node.next;\n if (node === this._head) {\n this._head = next;\n }\n if (node === this._tail) {\n this._tail = prev;\n }\n if (prev !== null) {\n prev.next = next;\n }\n if (next !== null) {\n next.prev = prev;\n }\n };\n LRUMap.prototype._appendNode = function (node) {\n var tail = this._tail;\n if (tail !== null) {\n tail.next = node;\n }\n node.prev = tail;\n node.next = null;\n this._tail = node;\n if (this._head === null) {\n this._head = node;\n }\n };\n LRUMap.prototype.prealloc = function (count) {\n var nodePool = this._nodePool;\n for (var i = 0; i < count; i++) {\n nodePool.push({\n prev: null,\n next: null,\n key: null,\n value: null\n });\n }\n };\n LRUMap.prototype.get = function (key) {\n var node = this._map[key];\n if (node !== undefined) {\n this._unlinkNode(node);\n this._appendNode(node);\n return node.value;\n }\n return null;\n };\n LRUMap.prototype.peek = function () {\n var head = this._head;\n return head === null ? null : head.value;\n };\n LRUMap.prototype.set = function (key, value) {\n var node = this._map[key];\n if (node !== undefined) {\n node = this._map[key];\n this._unlinkNode(node);\n node.value = value;\n }\n else if (this.size >= this.capacity) {\n node = this._head;\n this._unlinkNode(node);\n delete this._map[node.key];\n node.key = key;\n node.value = value;\n this._map[key] = node;\n }\n else {\n var nodePool = this._nodePool;\n if (nodePool.length > 0) {\n node = nodePool.pop();\n node.key = key;\n node.value = value;\n }\n else {\n node = {\n prev: null,\n next: null,\n key: key,\n value: value\n };\n }\n this._map[key] = node;\n this.size++;\n }\n this._appendNode(node);\n };\n return LRUMap;\n}());\nexports.default = LRUMap;\n//# sourceMappingURL=LRUMap.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseCharAtlas_1 = require(\"./BaseCharAtlas\");\nvar NoneCharAtlas = (function (_super) {\n __extends(NoneCharAtlas, _super);\n function NoneCharAtlas(document, config) {\n return _super.call(this) || this;\n }\n NoneCharAtlas.prototype.draw = function (ctx, glyph, x, y) {\n return false;\n };\n return NoneCharAtlas;\n}(BaseCharAtlas_1.default));\nexports.default = NoneCharAtlas;\n//# sourceMappingURL=NoneCharAtlas.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./Types\");\nvar Types_2 = require(\"../../shared/atlas/Types\");\nvar CharAtlasGenerator_1 = require(\"../../shared/atlas/CharAtlasGenerator\");\nvar BaseCharAtlas_1 = require(\"./BaseCharAtlas\");\nvar StaticCharAtlas = (function (_super) {\n __extends(StaticCharAtlas, _super);\n function StaticCharAtlas(_document, _config) {\n var _this = _super.call(this) || this;\n _this._document = _document;\n _this._config = _config;\n _this._canvasFactory = function (width, height) {\n var canvas = _this._document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n };\n return _this;\n }\n StaticCharAtlas.prototype._doWarmUp = function () {\n var _this = this;\n var result = CharAtlasGenerator_1.generateStaticCharAtlasTexture(window, this._canvasFactory, this._config);\n if (result instanceof HTMLCanvasElement) {\n this._texture = result;\n }\n else {\n result.then(function (texture) {\n _this._texture = texture;\n });\n }\n };\n StaticCharAtlas.prototype._isCached = function (glyph, colorIndex) {\n var isAscii = glyph.code < 256;\n var isBasicColor = glyph.fg < 16;\n var isDefaultColor = glyph.fg >= 256;\n var isDefaultBackground = glyph.bg >= 256;\n return isAscii && (isBasicColor || isDefaultColor) && isDefaultBackground && !glyph.italic;\n };\n StaticCharAtlas.prototype.draw = function (ctx, glyph, x, y) {\n if (this._texture == null) {\n return false;\n }\n var colorIndex = 0;\n if (glyph.fg < 256) {\n colorIndex = 2 + glyph.fg + (glyph.bold ? 16 : 0);\n }\n else {\n if (glyph.bold) {\n colorIndex = 1;\n }\n }\n if (!this._isCached(glyph, colorIndex)) {\n return false;\n }\n ctx.save();\n var charAtlasCellWidth = this._config.scaledCharWidth + Types_2.CHAR_ATLAS_CELL_SPACING;\n var charAtlasCellHeight = this._config.scaledCharHeight + Types_2.CHAR_ATLAS_CELL_SPACING;\n if (glyph.dim) {\n ctx.globalAlpha = Types_1.DIM_OPACITY;\n }\n ctx.drawImage(this._texture, glyph.code * charAtlasCellWidth, colorIndex * charAtlasCellHeight, charAtlasCellWidth, this._config.scaledCharHeight, x, y, charAtlasCellWidth, this._config.scaledCharHeight);\n ctx.restore();\n return true;\n };\n return StaticCharAtlas;\n}(BaseCharAtlas_1.default));\nexports.default = StaticCharAtlas;\n//# sourceMappingURL=StaticCharAtlas.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar SelectionRenderLayer = (function (_super) {\n __extends(SelectionRenderLayer, _super);\n function SelectionRenderLayer(container, zIndex, colors) {\n var _this = _super.call(this, container, 'selection', zIndex, true, colors) || this;\n _this._clearState();\n return _this;\n }\n SelectionRenderLayer.prototype._clearState = function () {\n this._state = {\n start: null,\n end: null,\n columnSelectMode: null,\n ydisp: null\n };\n };\n SelectionRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n this._clearState();\n };\n SelectionRenderLayer.prototype.reset = function (terminal) {\n if (this._state.start && this._state.end) {\n this._clearState();\n this.clearAll();\n }\n };\n SelectionRenderLayer.prototype.onSelectionChanged = function (terminal, start, end, columnSelectMode) {\n if (!this._didStateChange(start, end, columnSelectMode, terminal.buffer.ydisp)) {\n return;\n }\n this.clearAll();\n if (!start || !end) {\n return;\n }\n var viewportStartRow = start[1] - terminal.buffer.ydisp;\n var viewportEndRow = end[1] - terminal.buffer.ydisp;\n var viewportCappedStartRow = Math.max(viewportStartRow, 0);\n var viewportCappedEndRow = Math.min(viewportEndRow, terminal.rows - 1);\n if (viewportCappedStartRow >= terminal.rows || viewportCappedEndRow < 0) {\n return;\n }\n this._ctx.fillStyle = this._colors.selection.css;\n if (columnSelectMode) {\n var startCol = start[0];\n var width = end[0] - startCol;\n var height = viewportCappedEndRow - viewportCappedStartRow + 1;\n this.fillCells(startCol, viewportCappedStartRow, width, height);\n }\n else {\n var startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;\n var startRowEndCol = viewportCappedStartRow === viewportCappedEndRow ? end[0] : terminal.cols;\n this.fillCells(startCol, viewportCappedStartRow, startRowEndCol - startCol, 1);\n var middleRowsCount = Math.max(viewportCappedEndRow - viewportCappedStartRow - 1, 0);\n this.fillCells(0, viewportCappedStartRow + 1, terminal.cols, middleRowsCount);\n if (viewportCappedStartRow !== viewportCappedEndRow) {\n var endCol = viewportEndRow === viewportCappedEndRow ? end[0] : terminal.cols;\n this.fillCells(0, viewportCappedEndRow, endCol, 1);\n }\n }\n this._state.start = [start[0], start[1]];\n this._state.end = [end[0], end[1]];\n this._state.columnSelectMode = columnSelectMode;\n this._state.ydisp = terminal.buffer.ydisp;\n };\n SelectionRenderLayer.prototype._didStateChange = function (start, end, columnSelectMode, ydisp) {\n return !this._areCoordinatesEqual(start, this._state.start) ||\n !this._areCoordinatesEqual(end, this._state.end) ||\n columnSelectMode !== this._state.columnSelectMode ||\n ydisp !== this._state.ydisp;\n };\n SelectionRenderLayer.prototype._areCoordinatesEqual = function (coord1, coord2) {\n if (!coord1 || !coord2) {\n return false;\n }\n return coord1[0] === coord2[0] && coord1[1] === coord2[1];\n };\n return SelectionRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.SelectionRenderLayer = SelectionRenderLayer;\n//# sourceMappingURL=SelectionRenderLayer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../Buffer\");\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar BLINK_INTERVAL = 600;\nvar CursorRenderLayer = (function (_super) {\n __extends(CursorRenderLayer, _super);\n function CursorRenderLayer(container, zIndex, colors) {\n var _this = _super.call(this, container, 'cursor', zIndex, true, colors) || this;\n _this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null\n };\n _this._cursorRenderers = {\n 'bar': _this._renderBarCursor.bind(_this),\n 'block': _this._renderBlockCursor.bind(_this),\n 'underline': _this._renderUnderlineCursor.bind(_this)\n };\n return _this;\n }\n CursorRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null\n };\n };\n CursorRenderLayer.prototype.reset = function (terminal) {\n this._clearCursor();\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.dispose();\n this._cursorBlinkStateManager = null;\n this.onOptionsChanged(terminal);\n }\n };\n CursorRenderLayer.prototype.onBlur = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.pause();\n }\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n };\n CursorRenderLayer.prototype.onFocus = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.resume(terminal);\n }\n else {\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n }\n };\n CursorRenderLayer.prototype.onOptionsChanged = function (terminal) {\n var _this = this;\n if (terminal.options.cursorBlink) {\n if (!this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager = new CursorBlinkStateManager(terminal, function () {\n _this._render(terminal, true);\n });\n }\n }\n else {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.dispose();\n this._cursorBlinkStateManager = null;\n }\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n }\n };\n CursorRenderLayer.prototype.onCursorMove = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.restartBlinkAnimation(terminal);\n }\n };\n CursorRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) {\n if (!this._cursorBlinkStateManager || this._cursorBlinkStateManager.isPaused) {\n this._render(terminal, false);\n }\n else {\n this._cursorBlinkStateManager.restartBlinkAnimation(terminal);\n }\n };\n CursorRenderLayer.prototype._render = function (terminal, triggeredByAnimationFrame) {\n if (!terminal.cursorState || terminal.cursorHidden) {\n this._clearCursor();\n return;\n }\n var cursorY = terminal.buffer.ybase + terminal.buffer.y;\n var viewportRelativeCursorY = cursorY - terminal.buffer.ydisp;\n if (viewportRelativeCursorY < 0 || viewportRelativeCursorY >= terminal.rows) {\n this._clearCursor();\n return;\n }\n var charData = terminal.buffer.lines.get(cursorY)[terminal.buffer.x];\n if (!charData) {\n return;\n }\n if (!terminal.isFocused) {\n this._clearCursor();\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this._renderBlurCursor(terminal, terminal.buffer.x, viewportRelativeCursorY, charData);\n this._ctx.restore();\n this._state.x = terminal.buffer.x;\n this._state.y = viewportRelativeCursorY;\n this._state.isFocused = false;\n this._state.style = terminal.options.cursorStyle;\n this._state.width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n return;\n }\n if (this._cursorBlinkStateManager && !this._cursorBlinkStateManager.isCursorVisible) {\n this._clearCursor();\n return;\n }\n if (this._state) {\n if (this._state.x === terminal.buffer.x &&\n this._state.y === viewportRelativeCursorY &&\n this._state.isFocused === terminal.isFocused &&\n this._state.style === terminal.options.cursorStyle &&\n this._state.width === charData[Buffer_1.CHAR_DATA_WIDTH_INDEX]) {\n return;\n }\n this._clearCursor();\n }\n this._ctx.save();\n this._cursorRenderers[terminal.options.cursorStyle || 'block'](terminal, terminal.buffer.x, viewportRelativeCursorY, charData);\n this._ctx.restore();\n this._state.x = terminal.buffer.x;\n this._state.y = viewportRelativeCursorY;\n this._state.isFocused = false;\n this._state.style = terminal.options.cursorStyle;\n this._state.width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n };\n CursorRenderLayer.prototype._clearCursor = function () {\n if (this._state) {\n this.clearCells(this._state.x, this._state.y, this._state.width, 1);\n this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null\n };\n }\n };\n CursorRenderLayer.prototype._renderBarCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this.fillLeftLineAtCell(x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderBlockCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this.fillCells(x, y, charData[Buffer_1.CHAR_DATA_WIDTH_INDEX], 1);\n this._ctx.fillStyle = this._colors.cursorAccent.css;\n this.fillCharTrueColor(terminal, charData, x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderUnderlineCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this.fillBottomLineAtCells(x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderBlurCursor = function (terminal, x, y, charData) {\n this._ctx.save();\n this._ctx.strokeStyle = this._colors.cursor.css;\n this.strokeRectAtCell(x, y, charData[Buffer_1.CHAR_DATA_WIDTH_INDEX], 1);\n this._ctx.restore();\n };\n return CursorRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.CursorRenderLayer = CursorRenderLayer;\nvar CursorBlinkStateManager = (function () {\n function CursorBlinkStateManager(terminal, _renderCallback) {\n this._renderCallback = _renderCallback;\n this.isCursorVisible = true;\n if (terminal.isFocused) {\n this._restartInterval();\n }\n }\n Object.defineProperty(CursorBlinkStateManager.prototype, \"isPaused\", {\n get: function () { return !(this._blinkStartTimeout || this._blinkInterval); },\n enumerable: true,\n configurable: true\n });\n CursorBlinkStateManager.prototype.dispose = function () {\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n this._blinkInterval = null;\n }\n if (this._blinkStartTimeout) {\n window.clearTimeout(this._blinkStartTimeout);\n this._blinkStartTimeout = null;\n }\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n CursorBlinkStateManager.prototype.restartBlinkAnimation = function (terminal) {\n var _this = this;\n if (this.isPaused) {\n return;\n }\n this._animationTimeRestarted = Date.now();\n this.isCursorVisible = true;\n if (!this._animationFrame) {\n this._animationFrame = window.requestAnimationFrame(function () {\n _this._renderCallback();\n _this._animationFrame = null;\n });\n }\n };\n CursorBlinkStateManager.prototype._restartInterval = function (timeToStart) {\n var _this = this;\n if (timeToStart === void 0) { timeToStart = BLINK_INTERVAL; }\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n }\n this._blinkStartTimeout = setTimeout(function () {\n if (_this._animationTimeRestarted) {\n var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted);\n _this._animationTimeRestarted = null;\n if (time > 0) {\n _this._restartInterval(time);\n return;\n }\n }\n _this.isCursorVisible = false;\n _this._animationFrame = window.requestAnimationFrame(function () {\n _this._renderCallback();\n _this._animationFrame = null;\n });\n _this._blinkInterval = setInterval(function () {\n if (_this._animationTimeRestarted) {\n var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted);\n _this._animationTimeRestarted = null;\n _this._restartInterval(time);\n return;\n }\n _this.isCursorVisible = !_this.isCursorVisible;\n _this._animationFrame = window.requestAnimationFrame(function () {\n _this._renderCallback();\n _this._animationFrame = null;\n });\n }, BLINK_INTERVAL);\n }, timeToStart);\n };\n CursorBlinkStateManager.prototype.pause = function () {\n this.isCursorVisible = true;\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n this._blinkInterval = null;\n }\n if (this._blinkStartTimeout) {\n window.clearTimeout(this._blinkStartTimeout);\n this._blinkStartTimeout = null;\n }\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n CursorBlinkStateManager.prototype.resume = function (terminal) {\n this._animationTimeRestarted = null;\n this._restartInterval();\n this.restartBlinkAnimation(terminal);\n };\n return CursorBlinkStateManager;\n}());\n//# sourceMappingURL=CursorRenderLayer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar LinkRenderLayer = (function (_super) {\n __extends(LinkRenderLayer, _super);\n function LinkRenderLayer(container, zIndex, colors, terminal) {\n var _this = _super.call(this, container, 'link', zIndex, true, colors) || this;\n _this._state = null;\n terminal.linkifier.on(\"linkhover\", function (e) { return _this._onLinkHover(e); });\n terminal.linkifier.on(\"linkleave\", function (e) { return _this._onLinkLeave(e); });\n return _this;\n }\n LinkRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n this._state = null;\n };\n LinkRenderLayer.prototype.reset = function (terminal) {\n this._clearCurrentLink();\n };\n LinkRenderLayer.prototype._clearCurrentLink = function () {\n if (this._state) {\n this.clearCells(this._state.x1, this._state.y1, this._state.cols - this._state.x1, 1);\n var middleRowCount = this._state.y2 - this._state.y1 - 1;\n if (middleRowCount > 0) {\n this.clearCells(0, this._state.y1 + 1, this._state.cols, middleRowCount);\n }\n this.clearCells(0, this._state.y2, this._state.x2, 1);\n this._state = null;\n }\n };\n LinkRenderLayer.prototype._onLinkHover = function (e) {\n this._ctx.fillStyle = this._colors.foreground.css;\n if (e.y1 === e.y2) {\n this.fillBottomLineAtCells(e.x1, e.y1, e.x2 - e.x1);\n }\n else {\n this.fillBottomLineAtCells(e.x1, e.y1, e.cols - e.x1);\n for (var y = e.y1 + 1; y < e.y2; y++) {\n this.fillBottomLineAtCells(0, y, e.cols);\n }\n this.fillBottomLineAtCells(0, e.y2, e.x2);\n }\n this._state = e;\n };\n LinkRenderLayer.prototype._onLinkLeave = function (e) {\n this._clearCurrentLink();\n };\n return LinkRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.LinkRenderLayer = LinkRenderLayer;\n//# sourceMappingURL=LinkRenderLayer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../Buffer\");\nvar CharacterJoinerRegistry = (function () {\n function CharacterJoinerRegistry(_terminal) {\n this._terminal = _terminal;\n this._characterJoiners = [];\n this._nextCharacterJoinerId = 0;\n }\n CharacterJoinerRegistry.prototype.registerCharacterJoiner = function (handler) {\n var joiner = {\n id: this._nextCharacterJoinerId++,\n handler: handler\n };\n this._characterJoiners.push(joiner);\n return joiner.id;\n };\n CharacterJoinerRegistry.prototype.deregisterCharacterJoiner = function (joinerId) {\n for (var i = 0; i < this._characterJoiners.length; i++) {\n if (this._characterJoiners[i].id === joinerId) {\n this._characterJoiners.splice(i, 1);\n return true;\n }\n }\n return false;\n };\n CharacterJoinerRegistry.prototype.getJoinedCharacters = function (row) {\n if (this._characterJoiners.length === 0) {\n return [];\n }\n var line = this._terminal.buffer.lines.get(row);\n if (line.length === 0) {\n return [];\n }\n var ranges = [];\n var lineStr = this._terminal.buffer.translateBufferLineToString(row, true);\n var rangeStartColumn = 0;\n var currentStringIndex = 0;\n var rangeStartStringIndex = 0;\n var rangeAttr = line[0][Buffer_1.CHAR_DATA_ATTR_INDEX] >> 9;\n for (var x = 0; x < this._terminal.cols; x++) {\n var charData = line[x];\n var chars = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX] >> 9;\n if (width === 0) {\n continue;\n }\n if (attr !== rangeAttr) {\n if (x - rangeStartColumn > 1) {\n var joinedRanges = this._getJoinedRanges(lineStr, rangeStartStringIndex, currentStringIndex, line, rangeStartColumn);\n for (var i = 0; i < joinedRanges.length; i++) {\n ranges.push(joinedRanges[i]);\n }\n }\n rangeStartColumn = x;\n rangeStartStringIndex = currentStringIndex;\n rangeAttr = attr;\n }\n currentStringIndex += chars.length;\n }\n if (this._terminal.cols - rangeStartColumn > 1) {\n var joinedRanges = this._getJoinedRanges(lineStr, rangeStartStringIndex, currentStringIndex, line, rangeStartColumn);\n for (var i = 0; i < joinedRanges.length; i++) {\n ranges.push(joinedRanges[i]);\n }\n }\n return ranges;\n };\n CharacterJoinerRegistry.prototype._getJoinedRanges = function (line, startIndex, endIndex, lineData, startCol) {\n var text = line.substring(startIndex, endIndex);\n var joinedRanges = this._characterJoiners[0].handler(text);\n for (var i = 1; i < this._characterJoiners.length; i++) {\n var joinerRanges = this._characterJoiners[i].handler(text);\n for (var j = 0; j < joinerRanges.length; j++) {\n CharacterJoinerRegistry._mergeRanges(joinedRanges, joinerRanges[j]);\n }\n }\n this._stringRangesToCellRanges(joinedRanges, lineData, startCol);\n return joinedRanges;\n };\n CharacterJoinerRegistry.prototype._stringRangesToCellRanges = function (ranges, line, startCol) {\n var currentRangeIndex = 0;\n var currentRangeStarted = false;\n var currentStringIndex = 0;\n var currentRange = ranges[currentRangeIndex];\n if (!currentRange) {\n return;\n }\n for (var x = startCol; x < this._terminal.cols; x++) {\n var charData = line[x];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n var length_1 = charData[Buffer_1.CHAR_DATA_CHAR_INDEX].length;\n if (width === 0) {\n continue;\n }\n if (!currentRangeStarted && currentRange[0] <= currentStringIndex) {\n currentRange[0] = x;\n currentRangeStarted = true;\n }\n if (currentRange[1] <= currentStringIndex) {\n currentRange[1] = x;\n currentRange = ranges[++currentRangeIndex];\n if (!currentRange) {\n break;\n }\n if (currentRange[0] <= currentStringIndex) {\n currentRange[0] = x;\n currentRangeStarted = true;\n }\n else {\n currentRangeStarted = false;\n }\n }\n currentStringIndex += length_1;\n }\n if (currentRange) {\n currentRange[1] = this._terminal.cols;\n }\n };\n CharacterJoinerRegistry._mergeRanges = function (ranges, newRange) {\n var inRange = false;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!inRange) {\n if (newRange[1] <= range[0]) {\n ranges.splice(i, 0, newRange);\n return ranges;\n }\n if (newRange[1] <= range[1]) {\n range[0] = Math.min(newRange[0], range[0]);\n return ranges;\n }\n if (newRange[0] < range[1]) {\n range[0] = Math.min(newRange[0], range[0]);\n inRange = true;\n }\n continue;\n }\n else {\n if (newRange[1] <= range[0]) {\n ranges[i - 1][1] = newRange[1];\n return ranges;\n }\n if (newRange[1] <= range[1]) {\n ranges[i - 1][1] = Math.max(newRange[1], range[1]);\n ranges.splice(i, 1);\n inRange = false;\n return ranges;\n }\n ranges.splice(i, 1);\n i--;\n }\n }\n if (inRange) {\n ranges[ranges.length - 1][1] = newRange[1];\n }\n else {\n ranges.push(newRange);\n }\n return ranges;\n };\n return CharacterJoinerRegistry;\n}());\nexports.CharacterJoinerRegistry = CharacterJoinerRegistry;\n//# sourceMappingURL=CharacterJoinerRegistry.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseZoneManager_1 = require(\"./ui/MouseZoneManager\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar Linkifier = (function (_super) {\n __extends(Linkifier, _super);\n function Linkifier(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._linkMatchers = [];\n _this._nextLinkMatcherId = 0;\n _this._rowsToLinkify = {\n start: null,\n end: null\n };\n return _this;\n }\n Linkifier.prototype.attachToDom = function (mouseZoneManager) {\n this._mouseZoneManager = mouseZoneManager;\n };\n Linkifier.prototype.linkifyRows = function (start, end) {\n var _this = this;\n if (!this._mouseZoneManager) {\n return;\n }\n if (this._rowsToLinkify.start === null) {\n this._rowsToLinkify.start = start;\n this._rowsToLinkify.end = end;\n }\n else {\n this._rowsToLinkify.start = Math.min(this._rowsToLinkify.start, start);\n this._rowsToLinkify.end = Math.max(this._rowsToLinkify.end, end);\n }\n this._mouseZoneManager.clearAll(start, end);\n if (this._rowsTimeoutId) {\n clearTimeout(this._rowsTimeoutId);\n }\n this._rowsTimeoutId = setTimeout(function () { return _this._linkifyRows(); }, Linkifier.TIME_BEFORE_LINKIFY);\n };\n Linkifier.prototype._linkifyRows = function () {\n this._rowsTimeoutId = null;\n for (var i = this._rowsToLinkify.start; i <= this._rowsToLinkify.end; i++) {\n this._linkifyRow(i);\n }\n this._rowsToLinkify.start = null;\n this._rowsToLinkify.end = null;\n };\n Linkifier.prototype.registerLinkMatcher = function (regex, handler, options) {\n if (options === void 0) { options = {}; }\n if (!handler) {\n throw new Error('handler must be defined');\n }\n var matcher = {\n id: this._nextLinkMatcherId++,\n regex: regex,\n handler: handler,\n matchIndex: options.matchIndex,\n validationCallback: options.validationCallback,\n hoverTooltipCallback: options.tooltipCallback,\n hoverLeaveCallback: options.leaveCallback,\n willLinkActivate: options.willLinkActivate,\n priority: options.priority || 0\n };\n this._addLinkMatcherToList(matcher);\n return matcher.id;\n };\n Linkifier.prototype._addLinkMatcherToList = function (matcher) {\n if (this._linkMatchers.length === 0) {\n this._linkMatchers.push(matcher);\n return;\n }\n for (var i = this._linkMatchers.length - 1; i >= 0; i--) {\n if (matcher.priority <= this._linkMatchers[i].priority) {\n this._linkMatchers.splice(i + 1, 0, matcher);\n return;\n }\n }\n this._linkMatchers.splice(0, 0, matcher);\n };\n Linkifier.prototype.deregisterLinkMatcher = function (matcherId) {\n for (var i = 0; i < this._linkMatchers.length; i++) {\n if (this._linkMatchers[i].id === matcherId) {\n this._linkMatchers.splice(i, 1);\n return true;\n }\n }\n return false;\n };\n Linkifier.prototype._linkifyRow = function (rowIndex) {\n var absoluteRowIndex = this._terminal.buffer.ydisp + rowIndex;\n if (absoluteRowIndex >= this._terminal.buffer.lines.length) {\n return;\n }\n if (this._terminal.buffer.lines.get(absoluteRowIndex).isWrapped) {\n if (rowIndex !== 0) {\n return;\n }\n var line = void 0;\n do {\n rowIndex--;\n absoluteRowIndex--;\n line = this._terminal.buffer.lines.get(absoluteRowIndex);\n if (!line) {\n break;\n }\n } while (line.isWrapped);\n }\n var text = this._terminal.buffer.translateBufferLineToString(absoluteRowIndex, false);\n var currentIndex = absoluteRowIndex + 1;\n while (currentIndex < this._terminal.buffer.lines.length &&\n this._terminal.buffer.lines.get(currentIndex).isWrapped) {\n text += this._terminal.buffer.translateBufferLineToString(currentIndex++, false);\n }\n for (var i = 0; i < this._linkMatchers.length; i++) {\n this._doLinkifyRow(rowIndex, text, this._linkMatchers[i]);\n }\n };\n Linkifier.prototype._doLinkifyRow = function (rowIndex, text, matcher, offset) {\n var _this = this;\n if (offset === void 0) { offset = 0; }\n var match = text.match(matcher.regex);\n if (!match || match.length === 0) {\n return;\n }\n var uri = match[typeof matcher.matchIndex !== 'number' ? 0 : matcher.matchIndex];\n var index = text.indexOf(uri);\n if (matcher.validationCallback) {\n matcher.validationCallback(uri, function (isValid) {\n if (_this._rowsTimeoutId) {\n return;\n }\n if (isValid) {\n _this._addLink(offset + index, rowIndex, uri, matcher);\n }\n });\n }\n else {\n this._addLink(offset + index, rowIndex, uri, matcher);\n }\n var remainingStartIndex = index + uri.length;\n var remainingText = text.substr(remainingStartIndex);\n if (remainingText.length > 0) {\n this._doLinkifyRow(rowIndex, remainingText, matcher, offset + remainingStartIndex);\n }\n };\n Linkifier.prototype._addLink = function (x, y, uri, matcher) {\n var _this = this;\n var x1 = x % this._terminal.cols;\n var y1 = y + Math.floor(x / this._terminal.cols);\n var x2 = (x1 + uri.length) % this._terminal.cols;\n var y2 = y1 + Math.floor((x1 + uri.length) / this._terminal.cols);\n if (x2 === 0) {\n x2 = this._terminal.cols;\n y2--;\n }\n this._mouseZoneManager.add(new MouseZoneManager_1.MouseZone(x1 + 1, y1 + 1, x2 + 1, y2 + 1, function (e) {\n if (matcher.handler) {\n return matcher.handler(e, uri);\n }\n window.open(uri, '_blank');\n }, function (e) {\n _this.emit(\"linkhover\", _this._createLinkHoverEvent(x1, y1, x2, y2));\n _this._terminal.element.classList.add('xterm-cursor-pointer');\n }, function (e) {\n _this.emit(\"linktooltip\", _this._createLinkHoverEvent(x1, y1, x2, y2));\n if (matcher.hoverTooltipCallback) {\n matcher.hoverTooltipCallback(e, uri);\n }\n }, function () {\n _this.emit(\"linkleave\", _this._createLinkHoverEvent(x1, y1, x2, y2));\n _this._terminal.element.classList.remove('xterm-cursor-pointer');\n if (matcher.hoverLeaveCallback) {\n matcher.hoverLeaveCallback();\n }\n }, function (e) {\n if (matcher.willLinkActivate) {\n return matcher.willLinkActivate(e, uri);\n }\n return true;\n }));\n };\n Linkifier.prototype._createLinkHoverEvent = function (x1, y1, x2, y2) {\n return { x1: x1, y1: y1, x2: x2, y2: y2, cols: this._terminal.cols };\n };\n Linkifier.TIME_BEFORE_LINKIFY = 200;\n return Linkifier;\n}(EventEmitter_1.EventEmitter));\nexports.Linkifier = Linkifier;\n//# sourceMappingURL=Linkifier.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseHelper_1 = require(\"./utils/MouseHelper\");\nvar Browser = require(\"./shared/utils/Browser\");\nvar EventEmitter_1 = require(\"./EventEmitter\");\nvar SelectionModel_1 = require(\"./SelectionModel\");\nvar Buffer_1 = require(\"./Buffer\");\nvar AltClickHandler_1 = require(\"./handlers/AltClickHandler\");\nvar DRAG_SCROLL_MAX_THRESHOLD = 50;\nvar DRAG_SCROLL_MAX_SPEED = 15;\nvar DRAG_SCROLL_INTERVAL = 50;\nvar ALT_CLICK_MOVE_CURSOR_TIME = 500;\nvar WORD_SEPARATORS = ' ()[]{}\\'\"';\nvar NON_BREAKING_SPACE_CHAR = String.fromCharCode(160);\nvar ALL_NON_BREAKING_SPACE_REGEX = new RegExp(NON_BREAKING_SPACE_CHAR, 'g');\nvar SelectionManager = (function (_super) {\n __extends(SelectionManager, _super);\n function SelectionManager(_terminal, _charMeasure) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._charMeasure = _charMeasure;\n _this._enabled = true;\n _this._initListeners();\n _this.enable();\n _this._model = new SelectionModel_1.SelectionModel(_terminal);\n _this._activeSelectionMode = 0;\n return _this;\n }\n SelectionManager.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._removeMouseDownListeners();\n };\n Object.defineProperty(SelectionManager.prototype, \"_buffer\", {\n get: function () {\n return this._terminal.buffers.active;\n },\n enumerable: true,\n configurable: true\n });\n SelectionManager.prototype._initListeners = function () {\n var _this = this;\n this._mouseMoveListener = function (event) { return _this._onMouseMove(event); };\n this._mouseUpListener = function (event) { return _this._onMouseUp(event); };\n this._trimListener = function (amount) { return _this._onTrim(amount); };\n this.initBuffersListeners();\n };\n SelectionManager.prototype.initBuffersListeners = function () {\n var _this = this;\n this._terminal.buffer.lines.on('trim', this._trimListener);\n this._terminal.buffers.on('activate', function (e) { return _this._onBufferActivate(e); });\n };\n SelectionManager.prototype.disable = function () {\n this.clearSelection();\n this._enabled = false;\n };\n SelectionManager.prototype.enable = function () {\n this._enabled = true;\n };\n Object.defineProperty(SelectionManager.prototype, \"selectionStart\", {\n get: function () { return this._model.finalSelectionStart; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"selectionEnd\", {\n get: function () { return this._model.finalSelectionEnd; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"hasSelection\", {\n get: function () {\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[0] !== end[0] || start[1] !== end[1];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"selectionText\", {\n get: function () {\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return '';\n }\n var result = [];\n if (this._activeSelectionMode === 3) {\n if (start[0] === end[0]) {\n return '';\n }\n for (var i = start[1]; i <= end[1]; i++) {\n var lineText = this._buffer.translateBufferLineToString(i, true, start[0], end[0]);\n result.push(lineText);\n }\n }\n else {\n var startRowEndCol = start[1] === end[1] ? end[0] : null;\n result.push(this._buffer.translateBufferLineToString(start[1], true, start[0], startRowEndCol));\n for (var i = start[1] + 1; i <= end[1] - 1; i++) {\n var bufferLine = this._buffer.lines.get(i);\n var lineText = this._buffer.translateBufferLineToString(i, true);\n if (bufferLine.isWrapped) {\n result[result.length - 1] += lineText;\n }\n else {\n result.push(lineText);\n }\n }\n if (start[1] !== end[1]) {\n var bufferLine = this._buffer.lines.get(end[1]);\n var lineText = this._buffer.translateBufferLineToString(end[1], true, 0, end[0]);\n if (bufferLine.isWrapped) {\n result[result.length - 1] += lineText;\n }\n else {\n result.push(lineText);\n }\n }\n }\n var formattedResult = result.map(function (line) {\n return line.replace(ALL_NON_BREAKING_SPACE_REGEX, ' ');\n }).join(Browser.isMSWindows ? '\\r\\n' : '\\n');\n return formattedResult;\n },\n enumerable: true,\n configurable: true\n });\n SelectionManager.prototype.clearSelection = function () {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this.refresh();\n };\n SelectionManager.prototype.refresh = function (isNewSelection) {\n var _this = this;\n if (!this._refreshAnimationFrame) {\n this._refreshAnimationFrame = window.requestAnimationFrame(function () { return _this._refresh(); });\n }\n if (Browser.isLinux && isNewSelection) {\n var selectionText = this.selectionText;\n if (selectionText.length) {\n this.emit('newselection', this.selectionText);\n }\n }\n };\n SelectionManager.prototype._refresh = function () {\n this._refreshAnimationFrame = null;\n this.emit('refresh', {\n start: this._model.finalSelectionStart,\n end: this._model.finalSelectionEnd,\n columnSelectMode: this._activeSelectionMode === 3\n });\n };\n SelectionManager.prototype.isClickInSelection = function (event) {\n var coords = this._getMouseBufferCoords(event);\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return (coords[1] > start[1] && coords[1] < end[1]) ||\n (start[1] === end[1] && coords[1] === start[1] && coords[0] > start[0] && coords[0] < end[0]) ||\n (start[1] < end[1] && coords[1] === end[1] && coords[0] < end[0]);\n };\n SelectionManager.prototype.selectWordAtCursor = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._selectWordAt(coords, false);\n this._model.selectionEnd = null;\n this.refresh(true);\n }\n };\n SelectionManager.prototype.selectAll = function () {\n this._model.isSelectAllActive = true;\n this.refresh();\n this._terminal.emit('selection');\n };\n SelectionManager.prototype.selectLines = function (start, end) {\n this._model.clearSelection();\n start = Math.max(start, 0);\n end = Math.min(end, this._terminal.buffer.lines.length - 1);\n this._model.selectionStart = [0, start];\n this._model.selectionEnd = [this._terminal.cols, end];\n this.refresh();\n this._terminal.emit('selection');\n };\n SelectionManager.prototype._onTrim = function (amount) {\n var needsRefresh = this._model.onTrim(amount);\n if (needsRefresh) {\n this.refresh();\n }\n };\n SelectionManager.prototype._getMouseBufferCoords = function (event) {\n var coords = this._terminal.mouseHelper.getCoords(event, this._terminal.screenElement, this._charMeasure, this._terminal.options.lineHeight, this._terminal.cols, this._terminal.rows, true);\n if (!coords) {\n return null;\n }\n coords[0]--;\n coords[1]--;\n coords[1] += this._terminal.buffer.ydisp;\n return coords;\n };\n SelectionManager.prototype._getMouseEventScrollAmount = function (event) {\n var offset = MouseHelper_1.MouseHelper.getCoordsRelativeToElement(event, this._terminal.screenElement)[1];\n var terminalHeight = this._terminal.rows * Math.ceil(this._charMeasure.height * this._terminal.options.lineHeight);\n if (offset >= 0 && offset <= terminalHeight) {\n return 0;\n }\n if (offset > terminalHeight) {\n offset -= terminalHeight;\n }\n offset = Math.min(Math.max(offset, -DRAG_SCROLL_MAX_THRESHOLD), DRAG_SCROLL_MAX_THRESHOLD);\n offset /= DRAG_SCROLL_MAX_THRESHOLD;\n return (offset / Math.abs(offset)) + Math.round(offset * (DRAG_SCROLL_MAX_SPEED - 1));\n };\n SelectionManager.prototype.shouldForceSelection = function (event) {\n if (Browser.isMac) {\n return event.altKey && this._terminal.options.macOptionClickForcesSelection;\n }\n return event.shiftKey;\n };\n SelectionManager.prototype.onMouseDown = function (event) {\n this._mouseDownTimeStamp = event.timeStamp;\n if (event.button === 2 && this.hasSelection) {\n return;\n }\n if (event.button !== 0) {\n return;\n }\n if (!this._enabled) {\n if (!this.shouldForceSelection(event)) {\n return;\n }\n event.stopPropagation();\n }\n event.preventDefault();\n this._dragScrollAmount = 0;\n if (this._enabled && event.shiftKey) {\n this._onIncrementalClick(event);\n }\n else {\n if (event.detail === 1) {\n this._onSingleClick(event);\n }\n else if (event.detail === 2) {\n this._onDoubleClick(event);\n }\n else if (event.detail === 3) {\n this._onTripleClick(event);\n }\n }\n this._addMouseDownListeners();\n this.refresh(true);\n };\n SelectionManager.prototype._addMouseDownListeners = function () {\n var _this = this;\n this._terminal.element.ownerDocument.addEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.ownerDocument.addEventListener('mouseup', this._mouseUpListener);\n this._dragScrollIntervalTimer = setInterval(function () { return _this._dragScroll(); }, DRAG_SCROLL_INTERVAL);\n };\n SelectionManager.prototype._removeMouseDownListeners = function () {\n if (this._terminal.element.ownerDocument) {\n this._terminal.element.ownerDocument.removeEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.ownerDocument.removeEventListener('mouseup', this._mouseUpListener);\n }\n clearInterval(this._dragScrollIntervalTimer);\n this._dragScrollIntervalTimer = null;\n };\n SelectionManager.prototype._onIncrementalClick = function (event) {\n if (this._model.selectionStart) {\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n }\n };\n SelectionManager.prototype._onSingleClick = function (event) {\n this._model.selectionStartLength = 0;\n this._model.isSelectAllActive = false;\n this._activeSelectionMode = this.shouldColumnSelect(event) ? 3 : 0;\n this._model.selectionStart = this._getMouseBufferCoords(event);\n if (!this._model.selectionStart) {\n return;\n }\n this._model.selectionEnd = null;\n var line = this._buffer.lines.get(this._model.selectionStart[1]);\n if (!line) {\n return;\n }\n if (line.length >= this._model.selectionStart[0]) {\n return;\n }\n var char = line[this._model.selectionStart[0]];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n this._model.selectionStart[0]++;\n }\n };\n SelectionManager.prototype._onDoubleClick = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._activeSelectionMode = 1;\n this._selectWordAt(coords, true);\n }\n };\n SelectionManager.prototype._onTripleClick = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._activeSelectionMode = 2;\n this._selectLineAt(coords[1]);\n }\n };\n SelectionManager.prototype.shouldColumnSelect = function (event) {\n return event.altKey && !(Browser.isMac && this._terminal.options.macOptionClickForcesSelection);\n };\n SelectionManager.prototype._onMouseMove = function (event) {\n event.stopImmediatePropagation();\n var previousSelectionEnd = this._model.selectionEnd ? [this._model.selectionEnd[0], this._model.selectionEnd[1]] : null;\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n if (!this._model.selectionEnd) {\n this.refresh(true);\n return;\n }\n if (this._activeSelectionMode === 2) {\n if (this._model.selectionEnd[1] < this._model.selectionStart[1]) {\n this._model.selectionEnd[0] = 0;\n }\n else {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n }\n else if (this._activeSelectionMode === 1) {\n this._selectToWordAt(this._model.selectionEnd);\n }\n this._dragScrollAmount = this._getMouseEventScrollAmount(event);\n if (this._activeSelectionMode !== 3) {\n if (this._dragScrollAmount > 0) {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n else if (this._dragScrollAmount < 0) {\n this._model.selectionEnd[0] = 0;\n }\n }\n if (this._model.selectionEnd[1] < this._buffer.lines.length) {\n var char = this._buffer.lines.get(this._model.selectionEnd[1])[this._model.selectionEnd[0]];\n if (char && char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n this._model.selectionEnd[0]++;\n }\n }\n if (!previousSelectionEnd ||\n previousSelectionEnd[0] !== this._model.selectionEnd[0] ||\n previousSelectionEnd[1] !== this._model.selectionEnd[1]) {\n this.refresh(true);\n }\n };\n SelectionManager.prototype._dragScroll = function () {\n if (this._dragScrollAmount) {\n this._terminal.scrollLines(this._dragScrollAmount, false);\n if (this._dragScrollAmount > 0) {\n if (this._activeSelectionMode !== 3) {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n this._model.selectionEnd[1] = Math.min(this._terminal.buffer.ydisp + this._terminal.rows, this._terminal.buffer.lines.length - 1);\n }\n else {\n if (this._activeSelectionMode !== 3) {\n this._model.selectionEnd[0] = 0;\n }\n this._model.selectionEnd[1] = this._terminal.buffer.ydisp;\n }\n this.refresh();\n }\n };\n SelectionManager.prototype._onMouseUp = function (event) {\n var timeElapsed = event.timeStamp - this._mouseDownTimeStamp;\n this._removeMouseDownListeners();\n if (this.selectionText.length <= 1 && timeElapsed < ALT_CLICK_MOVE_CURSOR_TIME) {\n (new AltClickHandler_1.AltClickHandler(event, this._terminal)).move();\n }\n else if (this.hasSelection) {\n this._terminal.emit('selection');\n }\n };\n SelectionManager.prototype._onBufferActivate = function (e) {\n this.clearSelection();\n e.inactiveBuffer.lines.off('trim', this._trimListener);\n e.activeBuffer.lines.on('trim', this._trimListener);\n };\n SelectionManager.prototype._convertViewportColToCharacterIndex = function (bufferLine, coords) {\n var charIndex = coords[0];\n for (var i = 0; coords[0] >= i; i++) {\n var char = bufferLine[i];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n charIndex--;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1 && coords[0] !== i) {\n charIndex += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n }\n return charIndex;\n };\n SelectionManager.prototype.setSelection = function (col, row, length) {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this._model.selectionStart = [col, row];\n this._model.selectionStartLength = length;\n this.refresh();\n };\n SelectionManager.prototype._getWordAt = function (coords, allowWhitespaceOnlySelection, followWrappedLinesAbove, followWrappedLinesBelow) {\n if (followWrappedLinesAbove === void 0) { followWrappedLinesAbove = true; }\n if (followWrappedLinesBelow === void 0) { followWrappedLinesBelow = true; }\n if (coords[0] >= this._terminal.cols) {\n return null;\n }\n var bufferLine = this._buffer.lines.get(coords[1]);\n if (!bufferLine) {\n return null;\n }\n var line = this._buffer.translateBufferLineToString(coords[1], false);\n var startIndex = this._convertViewportColToCharacterIndex(bufferLine, coords);\n var endIndex = startIndex;\n var charOffset = coords[0] - startIndex;\n var leftWideCharCount = 0;\n var rightWideCharCount = 0;\n var leftLongCharOffset = 0;\n var rightLongCharOffset = 0;\n if (line.charAt(startIndex) === ' ') {\n while (startIndex > 0 && line.charAt(startIndex - 1) === ' ') {\n startIndex--;\n }\n while (endIndex < line.length && line.charAt(endIndex + 1) === ' ') {\n endIndex++;\n }\n }\n else {\n var startCol = coords[0];\n var endCol = coords[0];\n if (bufferLine[startCol][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n leftWideCharCount++;\n startCol--;\n }\n if (bufferLine[endCol][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n rightWideCharCount++;\n endCol++;\n }\n if (bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n rightLongCharOffset += bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n endIndex += bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n while (startCol > 0 && startIndex > 0 && !this._isCharWordSeparator(bufferLine[startCol - 1])) {\n var char = bufferLine[startCol - 1];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n leftWideCharCount++;\n startCol--;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n leftLongCharOffset += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n startIndex -= char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n startIndex--;\n startCol--;\n }\n while (endCol < bufferLine.length && endIndex + 1 < line.length && !this._isCharWordSeparator(bufferLine[endCol + 1])) {\n var char = bufferLine[endCol + 1];\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n rightWideCharCount++;\n endCol++;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n rightLongCharOffset += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n endIndex += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n endIndex++;\n endCol++;\n }\n }\n endIndex++;\n var start = startIndex\n + charOffset\n - leftWideCharCount\n + leftLongCharOffset;\n var length = Math.min(this._terminal.cols, endIndex\n - startIndex\n + leftWideCharCount\n + rightWideCharCount\n - leftLongCharOffset\n - rightLongCharOffset);\n if (!allowWhitespaceOnlySelection && line.slice(startIndex, endIndex).trim() === '') {\n return null;\n }\n if (followWrappedLinesAbove) {\n if (start === 0 && bufferLine[0][Buffer_1.CHAR_DATA_CODE_INDEX] !== 32) {\n var previousBufferLine = this._buffer.lines.get(coords[1] - 1);\n if (previousBufferLine && bufferLine.isWrapped && previousBufferLine[this._terminal.cols - 1][Buffer_1.CHAR_DATA_CODE_INDEX] !== 32) {\n var previousLineWordPosition = this._getWordAt([this._terminal.cols - 1, coords[1] - 1], false, true, false);\n if (previousLineWordPosition) {\n var offset = this._terminal.cols - previousLineWordPosition.start;\n start -= offset;\n length += offset;\n }\n }\n }\n }\n if (followWrappedLinesBelow) {\n if (start + length === this._terminal.cols && bufferLine[this._terminal.cols - 1][Buffer_1.CHAR_DATA_CODE_INDEX] !== 32) {\n var nextBufferLine = this._buffer.lines.get(coords[1] + 1);\n if (nextBufferLine && nextBufferLine.isWrapped && nextBufferLine[0][Buffer_1.CHAR_DATA_CODE_INDEX] !== 32) {\n var nextLineWordPosition = this._getWordAt([0, coords[1] + 1], false, false, true);\n if (nextLineWordPosition) {\n length += nextLineWordPosition.length;\n }\n }\n }\n }\n return { start: start, length: length };\n };\n SelectionManager.prototype._selectWordAt = function (coords, allowWhitespaceOnlySelection) {\n var wordPosition = this._getWordAt(coords, allowWhitespaceOnlySelection);\n if (wordPosition) {\n while (wordPosition.start < 0) {\n wordPosition.start += this._terminal.cols;\n coords[1]--;\n }\n this._model.selectionStart = [wordPosition.start, coords[1]];\n this._model.selectionStartLength = wordPosition.length;\n }\n };\n SelectionManager.prototype._selectToWordAt = function (coords) {\n var wordPosition = this._getWordAt(coords, true);\n if (wordPosition) {\n var endRow = coords[1];\n while (wordPosition.start < 0) {\n wordPosition.start += this._terminal.cols;\n endRow--;\n }\n if (!this._model.areSelectionValuesReversed()) {\n while (wordPosition.start + wordPosition.length > this._terminal.cols) {\n wordPosition.length -= this._terminal.cols;\n endRow++;\n }\n }\n this._model.selectionEnd = [this._model.areSelectionValuesReversed() ? wordPosition.start : wordPosition.start + wordPosition.length, endRow];\n }\n };\n SelectionManager.prototype._isCharWordSeparator = function (charData) {\n if (charData[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n return false;\n }\n return WORD_SEPARATORS.indexOf(charData[Buffer_1.CHAR_DATA_CHAR_INDEX]) >= 0;\n };\n SelectionManager.prototype._selectLineAt = function (line) {\n var wrappedRange = this._buffer.getWrappedRangeForLine(line);\n this._model.selectionStart = [0, wrappedRange.first];\n this._model.selectionEnd = [this._terminal.cols, wrappedRange.last];\n this._model.selectionStartLength = 0;\n };\n return SelectionManager;\n}(EventEmitter_1.EventEmitter));\nexports.SelectionManager = SelectionManager;\n//# sourceMappingURL=SelectionManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar SelectionModel = (function () {\n function SelectionModel(_terminal) {\n this._terminal = _terminal;\n this.clearSelection();\n }\n SelectionModel.prototype.clearSelection = function () {\n this.selectionStart = null;\n this.selectionEnd = null;\n this.isSelectAllActive = false;\n this.selectionStartLength = 0;\n };\n Object.defineProperty(SelectionModel.prototype, \"finalSelectionStart\", {\n get: function () {\n if (this.isSelectAllActive) {\n return [0, 0];\n }\n if (!this.selectionEnd || !this.selectionStart) {\n return this.selectionStart;\n }\n return this.areSelectionValuesReversed() ? this.selectionEnd : this.selectionStart;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionModel.prototype, \"finalSelectionEnd\", {\n get: function () {\n if (this.isSelectAllActive) {\n return [this._terminal.cols, this._terminal.buffer.ybase + this._terminal.rows - 1];\n }\n if (!this.selectionStart) {\n return null;\n }\n if (!this.selectionEnd || this.areSelectionValuesReversed()) {\n var startPlusLength = this.selectionStart[0] + this.selectionStartLength;\n if (startPlusLength > this._terminal.cols) {\n return [startPlusLength % this._terminal.cols, this.selectionStart[1] + Math.floor(startPlusLength / this._terminal.cols)];\n }\n return [startPlusLength, this.selectionStart[1]];\n }\n if (this.selectionStartLength) {\n if (this.selectionEnd[1] === this.selectionStart[1]) {\n return [Math.max(this.selectionStart[0] + this.selectionStartLength, this.selectionEnd[0]), this.selectionEnd[1]];\n }\n }\n return this.selectionEnd;\n },\n enumerable: true,\n configurable: true\n });\n SelectionModel.prototype.areSelectionValuesReversed = function () {\n var start = this.selectionStart;\n var end = this.selectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[1] > end[1] || (start[1] === end[1] && start[0] > end[0]);\n };\n SelectionModel.prototype.onTrim = function (amount) {\n if (this.selectionStart) {\n this.selectionStart[1] -= amount;\n }\n if (this.selectionEnd) {\n this.selectionEnd[1] -= amount;\n }\n if (this.selectionEnd && this.selectionEnd[1] < 0) {\n this.clearSelection();\n return true;\n }\n if (this.selectionStart && this.selectionStart[1] < 0) {\n this.selectionStart[1] = 0;\n }\n return false;\n };\n return SelectionModel;\n}());\nexports.SelectionModel = SelectionModel;\n//# sourceMappingURL=SelectionModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"../common/data/EscapeSequences\");\nvar AltClickHandler = (function () {\n function AltClickHandler(_mouseEvent, _terminal) {\n this._mouseEvent = _mouseEvent;\n this._terminal = _terminal;\n this._lines = this._terminal.buffer.lines;\n this._startCol = this._terminal.buffer.x;\n this._startRow = this._terminal.buffer.y;\n var coordinates = this._terminal.mouseHelper.getCoords(this._mouseEvent, this._terminal.element, this._terminal.charMeasure, this._terminal.options.lineHeight, this._terminal.cols, this._terminal.rows, false);\n if (coordinates) {\n _a = coordinates.map(function (coordinate) {\n return coordinate - 1;\n }), this._endCol = _a[0], this._endRow = _a[1];\n }\n var _a;\n }\n AltClickHandler.prototype.move = function () {\n if (this._mouseEvent.altKey && this._endCol !== undefined && this._endRow !== undefined) {\n this._terminal.handler(this._arrowSequences());\n }\n };\n AltClickHandler.prototype._arrowSequences = function () {\n if (!this._terminal.buffer.hasScrollback) {\n return this._resetStartingRow() + this._moveToRequestedRow() + this._moveToRequestedCol();\n }\n return this._moveHorizontallyOnly();\n };\n AltClickHandler.prototype._resetStartingRow = function () {\n if (this._moveToRequestedRow().length === 0) {\n return '';\n }\n return repeat(this._bufferLine(this._startCol, this._startRow, this._startCol, this._startRow - this._wrappedRowsForRow(this._startRow), false).length, this._sequence(\"D\"));\n };\n AltClickHandler.prototype._moveToRequestedRow = function () {\n var startRow = this._startRow - this._wrappedRowsForRow(this._startRow);\n var endRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n var rowsToMove = Math.abs(startRow - endRow) - this._wrappedRowsCount();\n return repeat(rowsToMove, this._sequence(this._verticalDirection()));\n };\n AltClickHandler.prototype._moveToRequestedCol = function () {\n var startRow;\n if (this._moveToRequestedRow().length > 0) {\n startRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n }\n else {\n startRow = this._startRow;\n }\n var endRow = this._endRow;\n var direction = this._horizontalDirection();\n return repeat(this._bufferLine(this._startCol, startRow, this._endCol, endRow, direction === \"C\").length, this._sequence(direction));\n };\n AltClickHandler.prototype._moveHorizontallyOnly = function () {\n var direction = this._horizontalDirection();\n return repeat(Math.abs(this._startCol - this._endCol), this._sequence(direction));\n };\n AltClickHandler.prototype._wrappedRowsCount = function () {\n var wrappedRows = 0;\n var startRow = this._startRow - this._wrappedRowsForRow(this._startRow);\n var endRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n for (var i = 0; i < Math.abs(startRow - endRow); i++) {\n var direction = this._verticalDirection() === \"A\" ? -1 : 1;\n if (this._lines.get(startRow + (direction * i)).isWrapped) {\n wrappedRows++;\n }\n }\n return wrappedRows;\n };\n AltClickHandler.prototype._wrappedRowsForRow = function (currentRow) {\n var rowCount = 0;\n var lineWraps = this._lines.get(currentRow).isWrapped;\n while (lineWraps && currentRow >= 0 && currentRow < this._terminal.rows) {\n rowCount++;\n currentRow--;\n lineWraps = this._lines.get(currentRow).isWrapped;\n }\n return rowCount;\n };\n AltClickHandler.prototype._horizontalDirection = function () {\n var startRow;\n if (this._moveToRequestedRow().length > 0) {\n startRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n }\n else {\n startRow = this._startRow;\n }\n if ((this._startCol < this._endCol &&\n startRow <= this._endRow) ||\n (this._startCol >= this._endCol &&\n startRow < this._endRow)) {\n return \"C\";\n }\n return \"D\";\n };\n AltClickHandler.prototype._verticalDirection = function () {\n if (this._startRow > this._endRow) {\n return \"A\";\n }\n return \"B\";\n };\n AltClickHandler.prototype._bufferLine = function (startCol, startRow, endCol, endRow, forward) {\n var currentCol = startCol;\n var currentRow = startRow;\n var bufferStr = '';\n while (currentCol !== endCol || currentRow !== endRow) {\n currentCol += forward ? 1 : -1;\n if (forward && currentCol > this._terminal.cols - 1) {\n bufferStr += this._terminal.buffer.translateBufferLineToString(currentRow, false, startCol, currentCol);\n currentCol = 0;\n startCol = 0;\n currentRow++;\n }\n else if (!forward && currentCol < 0) {\n bufferStr += this._terminal.buffer.translateBufferLineToString(currentRow, false, 0, startCol + 1);\n currentCol = this._terminal.cols - 1;\n startCol = currentCol;\n currentRow--;\n }\n }\n return bufferStr + this._terminal.buffer.translateBufferLineToString(currentRow, false, startCol, currentCol);\n };\n AltClickHandler.prototype._sequence = function (direction) {\n var mod = this._terminal.applicationCursor ? 'O' : '[';\n return EscapeSequences_1.C0.ESC + mod + direction;\n };\n return AltClickHandler;\n}());\nexports.AltClickHandler = AltClickHandler;\nfunction repeat(count, str) {\n count = Math.floor(count);\n var rpt = '';\n for (var i = 0; i < count; i++) {\n rpt += str;\n }\n return rpt;\n}\n//# sourceMappingURL=AltClickHandler.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter_1 = require(\"../EventEmitter\");\nvar CharMeasure = (function (_super) {\n __extends(CharMeasure, _super);\n function CharMeasure(document, parentElement) {\n var _this = _super.call(this) || this;\n _this._document = document;\n _this._parentElement = parentElement;\n _this._measureElement = _this._document.createElement('span');\n _this._measureElement.classList.add('xterm-char-measure-element');\n _this._measureElement.textContent = 'W';\n _this._measureElement.setAttribute('aria-hidden', 'true');\n _this._parentElement.appendChild(_this._measureElement);\n return _this;\n }\n Object.defineProperty(CharMeasure.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CharMeasure.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: true,\n configurable: true\n });\n CharMeasure.prototype.measure = function (options) {\n this._measureElement.style.fontFamily = options.fontFamily;\n this._measureElement.style.fontSize = options.fontSize + \"px\";\n var geometry = this._measureElement.getBoundingClientRect();\n if (geometry.width === 0 || geometry.height === 0) {\n return;\n }\n if (this._width !== geometry.width || this._height !== geometry.height) {\n this._width = geometry.width;\n this._height = Math.ceil(geometry.height);\n this.emit('charsizechanged');\n }\n };\n return CharMeasure;\n}(EventEmitter_1.EventEmitter));\nexports.CharMeasure = CharMeasure;\n//# sourceMappingURL=CharMeasure.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clone = function (val, depth) {\n if (depth === void 0) { depth = 5; }\n if (typeof val !== 'object') {\n return val;\n }\n if (val === null) {\n return null;\n }\n var clonedObject = Array.isArray(val) ? [] : {};\n for (var key in val) {\n clonedObject[key] = depth <= 1 ? val[key] : exports.clone(val[key], depth - 1);\n }\n return clonedObject;\n};\n//# sourceMappingURL=Clone.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_BELL_SOUND = 'data:audio/wav;base64,UklGRigBAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQQBAADpAFgCwAMlBZoG/wdmCcoKRAypDQ8PbRDBEQQTOxRtFYcWlBePGIUZXhoiG88bcBz7HHIdzh0WHlMeZx51HmkeUx4WHs8dah0AHXwc3hs9G4saxRnyGBIYGBcQFv8U4RPAEoYRQBACD70NWwwHC6gJOwjWBloF7gOBAhABkf8b/qv8R/ve+Xf4Ife79W/0JfPZ8Z/wde9N7ijtE+wU6xvqM+lb6H7nw+YX5mrlxuQz5Mzje+Ma49fioeKD4nXiYeJy4pHitOL04j/jn+MN5IPkFOWs5U3mDefM55/ogOl36m7rdOyE7abuyu8D8Unyj/Pg9D/2qfcb+Yn6/vuK/Qj/lAAlAg==';\nvar SoundManager = (function () {\n function SoundManager(_terminal) {\n this._terminal = _terminal;\n }\n SoundManager.prototype.playBellSound = function () {\n var audioContextCtor = window.AudioContext || window.webkitAudioContext;\n if (!this._audioContext && audioContextCtor) {\n this._audioContext = new audioContextCtor();\n }\n if (this._audioContext) {\n var bellAudioSource_1 = this._audioContext.createBufferSource();\n var context_1 = this._audioContext;\n this._audioContext.decodeAudioData(this._base64ToArrayBuffer(this._removeMimeType(this._terminal.options.bellSound)), function (buffer) {\n bellAudioSource_1.buffer = buffer;\n bellAudioSource_1.connect(context_1.destination);\n bellAudioSource_1.start(0);\n });\n }\n else {\n console.warn('Sorry, but the Web Audio API is not supported by your browser. Please, consider upgrading to the latest version');\n }\n };\n SoundManager.prototype._base64ToArrayBuffer = function (base64) {\n var binaryString = window.atob(base64);\n var len = binaryString.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n };\n SoundManager.prototype._removeMimeType = function (dataURI) {\n var splitUri = dataURI.split(',');\n return splitUri[1];\n };\n return SoundManager;\n}());\nexports.SoundManager = SoundManager;\n//# sourceMappingURL=SoundManager.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Strings = require(\"./Strings\");\nvar Browser_1 = require(\"./shared/utils/Browser\");\nvar RenderDebouncer_1 = require(\"./ui/RenderDebouncer\");\nvar Lifecycle_1 = require(\"./ui/Lifecycle\");\nvar Lifecycle_2 = require(\"./common/Lifecycle\");\nvar MAX_ROWS_TO_READ = 20;\nvar AccessibilityManager = (function (_super) {\n __extends(AccessibilityManager, _super);\n function AccessibilityManager(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._liveRegionLineCount = 0;\n _this._charsToConsume = [];\n _this._accessibilityTreeRoot = document.createElement('div');\n _this._accessibilityTreeRoot.classList.add('xterm-accessibility');\n _this._rowContainer = document.createElement('div');\n _this._rowContainer.classList.add('xterm-accessibility-tree');\n _this._rowElements = [];\n for (var i = 0; i < _this._terminal.rows; i++) {\n _this._rowElements[i] = _this._createAccessibilityTreeNode();\n _this._rowContainer.appendChild(_this._rowElements[i]);\n }\n _this._topBoundaryFocusListener = function (e) { return _this._onBoundaryFocus(e, 0); };\n _this._bottomBoundaryFocusListener = function (e) { return _this._onBoundaryFocus(e, 1); };\n _this._rowElements[0].addEventListener('focus', _this._topBoundaryFocusListener);\n _this._rowElements[_this._rowElements.length - 1].addEventListener('focus', _this._bottomBoundaryFocusListener);\n _this._refreshRowsDimensions();\n _this._accessibilityTreeRoot.appendChild(_this._rowContainer);\n _this._renderRowsDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._terminal, _this._renderRows.bind(_this));\n _this._refreshRows();\n _this._liveRegion = document.createElement('div');\n _this._liveRegion.classList.add('live-region');\n _this._liveRegion.setAttribute('aria-live', 'assertive');\n _this._accessibilityTreeRoot.appendChild(_this._liveRegion);\n _this._terminal.element.insertAdjacentElement('afterbegin', _this._accessibilityTreeRoot);\n _this.register(_this._renderRowsDebouncer);\n _this.register(_this._terminal.addDisposableListener('resize', function (data) { return _this._onResize(data.rows); }));\n _this.register(_this._terminal.addDisposableListener('refresh', function (data) { return _this._refreshRows(data.start, data.end); }));\n _this.register(_this._terminal.addDisposableListener('scroll', function (data) { return _this._refreshRows(); }));\n _this.register(_this._terminal.addDisposableListener('a11y.char', function (char) { return _this._onChar(char); }));\n _this.register(_this._terminal.addDisposableListener('linefeed', function () { return _this._onChar('\\n'); }));\n _this.register(_this._terminal.addDisposableListener('a11y.tab', function (spaceCount) { return _this._onTab(spaceCount); }));\n _this.register(_this._terminal.addDisposableListener('key', function (keyChar) { return _this._onKey(keyChar); }));\n _this.register(_this._terminal.addDisposableListener('blur', function () { return _this._clearLiveRegion(); }));\n _this.register(_this._terminal.addDisposableListener('dprchange', function () { return _this._refreshRowsDimensions(); }));\n _this.register(_this._terminal.renderer.addDisposableListener('resize', function () { return _this._refreshRowsDimensions(); }));\n _this.register(Lifecycle_1.addDisposableDomListener(window, 'resize', function () { return _this._refreshRowsDimensions(); }));\n return _this;\n }\n AccessibilityManager.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._terminal.element.removeChild(this._accessibilityTreeRoot);\n this._rowElements.length = 0;\n };\n AccessibilityManager.prototype._onBoundaryFocus = function (e, position) {\n var boundaryElement = e.target;\n var beforeBoundaryElement = this._rowElements[position === 0 ? 1 : this._rowElements.length - 2];\n var posInSet = boundaryElement.getAttribute('aria-posinset');\n var lastRowPos = position === 0 ? '1' : \"\" + this._terminal.buffer.lines.length;\n if (posInSet === lastRowPos) {\n return;\n }\n if (e.relatedTarget !== beforeBoundaryElement) {\n return;\n }\n var topBoundaryElement;\n var bottomBoundaryElement;\n if (position === 0) {\n topBoundaryElement = boundaryElement;\n bottomBoundaryElement = this._rowElements.pop();\n this._rowContainer.removeChild(bottomBoundaryElement);\n }\n else {\n topBoundaryElement = this._rowElements.shift();\n bottomBoundaryElement = boundaryElement;\n this._rowContainer.removeChild(topBoundaryElement);\n }\n topBoundaryElement.removeEventListener('focus', this._topBoundaryFocusListener);\n bottomBoundaryElement.removeEventListener('focus', this._bottomBoundaryFocusListener);\n if (position === 0) {\n var newElement = this._createAccessibilityTreeNode();\n this._rowElements.unshift(newElement);\n this._rowContainer.insertAdjacentElement('afterbegin', newElement);\n }\n else {\n var newElement = this._createAccessibilityTreeNode();\n this._rowElements.push(newElement);\n this._rowContainer.appendChild(newElement);\n }\n this._rowElements[0].addEventListener('focus', this._topBoundaryFocusListener);\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n this._terminal.scrollLines(position === 0 ? -1 : 1);\n this._rowElements[position === 0 ? 1 : this._rowElements.length - 2].focus();\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n AccessibilityManager.prototype._onResize = function (rows) {\n this._rowElements[this._rowElements.length - 1].removeEventListener('focus', this._bottomBoundaryFocusListener);\n for (var i = this._rowContainer.children.length; i < this._terminal.rows; i++) {\n this._rowElements[i] = this._createAccessibilityTreeNode();\n this._rowContainer.appendChild(this._rowElements[i]);\n }\n while (this._rowElements.length > rows) {\n this._rowContainer.removeChild(this._rowElements.pop());\n }\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n this._refreshRowsDimensions();\n };\n AccessibilityManager.prototype._createAccessibilityTreeNode = function () {\n var element = document.createElement('div');\n element.setAttribute('role', 'listitem');\n element.tabIndex = -1;\n this._refreshRowDimensions(element);\n return element;\n };\n AccessibilityManager.prototype._onTab = function (spaceCount) {\n for (var i = 0; i < spaceCount; i++) {\n this._onChar(' ');\n }\n };\n AccessibilityManager.prototype._onChar = function (char) {\n var _this = this;\n if (this._liveRegionLineCount < MAX_ROWS_TO_READ + 1) {\n if (this._charsToConsume.length > 0) {\n var shiftedChar = this._charsToConsume.shift();\n if (shiftedChar !== char) {\n this._announceCharacter(char);\n }\n }\n else {\n this._announceCharacter(char);\n }\n if (char === '\\n') {\n this._liveRegionLineCount++;\n if (this._liveRegionLineCount === MAX_ROWS_TO_READ + 1) {\n this._liveRegion.textContent += Strings.tooMuchOutput;\n }\n }\n if (Browser_1.isMac) {\n if (this._liveRegion.textContent && this._liveRegion.textContent.length > 0 && !this._liveRegion.parentNode) {\n setTimeout(function () {\n _this._accessibilityTreeRoot.appendChild(_this._liveRegion);\n }, 0);\n }\n }\n }\n };\n AccessibilityManager.prototype._clearLiveRegion = function () {\n this._liveRegion.textContent = '';\n this._liveRegionLineCount = 0;\n if (Browser_1.isMac) {\n if (this._liveRegion.parentNode) {\n this._accessibilityTreeRoot.removeChild(this._liveRegion);\n }\n }\n };\n AccessibilityManager.prototype._onKey = function (keyChar) {\n this._clearLiveRegion();\n this._charsToConsume.push(keyChar);\n };\n AccessibilityManager.prototype._refreshRows = function (start, end) {\n this._renderRowsDebouncer.refresh(start, end);\n };\n AccessibilityManager.prototype._renderRows = function (start, end) {\n var buffer = this._terminal.buffer;\n var setSize = buffer.lines.length.toString();\n for (var i = start; i <= end; i++) {\n var lineData = buffer.translateBufferLineToString(buffer.ydisp + i, true);\n var posInSet = (buffer.ydisp + i + 1).toString();\n var element = this._rowElements[i];\n element.textContent = lineData.length === 0 ? Strings.blankLine : lineData;\n element.setAttribute('aria-posinset', posInSet);\n element.setAttribute('aria-setsize', setSize);\n }\n };\n AccessibilityManager.prototype._refreshRowsDimensions = function () {\n if (!this._terminal.renderer.dimensions.actualCellHeight) {\n return;\n }\n if (this._rowElements.length !== this._terminal.rows) {\n this._onResize(this._terminal.rows);\n }\n for (var i = 0; i < this._terminal.rows; i++) {\n this._refreshRowDimensions(this._rowElements[i]);\n }\n };\n AccessibilityManager.prototype._refreshRowDimensions = function (element) {\n element.style.height = this._terminal.renderer.dimensions.actualCellHeight + \"px\";\n };\n AccessibilityManager.prototype._announceCharacter = function (char) {\n if (char === ' ') {\n this._liveRegion.innerHTML += ' ';\n }\n else {\n this._liveRegion.textContent += char;\n }\n };\n return AccessibilityManager;\n}(Lifecycle_2.Disposable));\nexports.AccessibilityManager = AccessibilityManager;\n//# sourceMappingURL=AccessibilityManager.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter_1 = require(\"../../EventEmitter\");\nvar ColorManager_1 = require(\"../ColorManager\");\nvar RenderDebouncer_1 = require(\"../../ui/RenderDebouncer\");\nvar DomRendererRowFactory_1 = require(\"./DomRendererRowFactory\");\nvar TERMINAL_CLASS_PREFIX = 'xterm-dom-renderer-owner-';\nvar ROW_CONTAINER_CLASS = 'xterm-rows';\nvar FG_CLASS_PREFIX = 'xterm-fg-';\nvar BG_CLASS_PREFIX = 'xterm-bg-';\nvar FOCUS_CLASS = 'xterm-focus';\nvar SELECTION_CLASS = 'xterm-selection';\nvar nextTerminalId = 1;\nvar DomRenderer = (function (_super) {\n __extends(DomRenderer, _super);\n function DomRenderer(_terminal, theme) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._terminalClass = nextTerminalId++;\n _this._rowElements = [];\n var allowTransparency = _this._terminal.options.allowTransparency;\n _this.colorManager = new ColorManager_1.ColorManager(document, allowTransparency);\n _this.setTheme(theme);\n _this._rowContainer = document.createElement('div');\n _this._rowContainer.classList.add(ROW_CONTAINER_CLASS);\n _this._rowContainer.style.lineHeight = 'normal';\n _this._rowContainer.setAttribute('aria-hidden', 'true');\n _this._refreshRowElements(_this._terminal.cols, _this._terminal.rows);\n _this._selectionContainer = document.createElement('div');\n _this._selectionContainer.classList.add(SELECTION_CLASS);\n _this._selectionContainer.setAttribute('aria-hidden', 'true');\n _this.dimensions = {\n scaledCharWidth: null,\n scaledCharHeight: null,\n scaledCellWidth: null,\n scaledCellHeight: null,\n scaledCharLeft: null,\n scaledCharTop: null,\n scaledCanvasWidth: null,\n scaledCanvasHeight: null,\n canvasWidth: null,\n canvasHeight: null,\n actualCellWidth: null,\n actualCellHeight: null\n };\n _this._updateDimensions();\n _this._renderDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._terminal, _this._renderRows.bind(_this));\n _this._rowFactory = new DomRendererRowFactory_1.DomRendererRowFactory(document);\n _this._terminal.element.classList.add(TERMINAL_CLASS_PREFIX + _this._terminalClass);\n _this._terminal.screenElement.appendChild(_this._rowContainer);\n _this._terminal.screenElement.appendChild(_this._selectionContainer);\n return _this;\n }\n DomRenderer.prototype.dispose = function () {\n this._terminal.element.classList.remove(TERMINAL_CLASS_PREFIX + this._terminalClass);\n this._terminal.screenElement.removeChild(this._rowContainer);\n this._terminal.screenElement.removeChild(this._selectionContainer);\n this._terminal.screenElement.removeChild(this._themeStyleElement);\n this._terminal.screenElement.removeChild(this._dimensionsStyleElement);\n _super.prototype.dispose.call(this);\n };\n DomRenderer.prototype._updateDimensions = function () {\n var _this = this;\n this.dimensions.scaledCharWidth = this._terminal.charMeasure.width * window.devicePixelRatio;\n this.dimensions.scaledCharHeight = this._terminal.charMeasure.height * window.devicePixelRatio;\n this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth;\n this.dimensions.scaledCellHeight = this.dimensions.scaledCharHeight;\n this.dimensions.scaledCharLeft = 0;\n this.dimensions.scaledCharTop = 0;\n this.dimensions.scaledCanvasWidth = this.dimensions.scaledCellWidth * this._terminal.cols;\n this.dimensions.scaledCanvasHeight = this.dimensions.scaledCellHeight * this._terminal.rows;\n this.dimensions.canvasWidth = this._terminal.charMeasure.width * this._terminal.cols;\n this.dimensions.canvasHeight = this._terminal.charMeasure.height * this._terminal.rows;\n this.dimensions.actualCellWidth = this._terminal.charMeasure.width;\n this.dimensions.actualCellHeight = this._terminal.charMeasure.height;\n this._rowElements.forEach(function (element) {\n element.style.width = _this.dimensions.canvasWidth + \"px\";\n element.style.height = _this._terminal.charMeasure.height + \"px\";\n });\n if (!this._dimensionsStyleElement) {\n this._dimensionsStyleElement = document.createElement('style');\n this._terminal.screenElement.appendChild(this._dimensionsStyleElement);\n }\n var styles = this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \" span {\" +\n \" display: inline-block;\" +\n \" height: 100%;\" +\n \" vertical-align: top;\" +\n (\" width: \" + this._terminal.charMeasure.width + \"px\") +\n \"}\";\n this._dimensionsStyleElement.innerHTML = styles;\n this._selectionContainer.style.height = this._terminal._viewportElement.style.height;\n this._rowContainer.style.width = this.dimensions.canvasWidth + \"px\";\n this._rowContainer.style.height = this.dimensions.canvasHeight + \"px\";\n };\n DomRenderer.prototype.setTheme = function (theme) {\n var _this = this;\n if (theme) {\n this.colorManager.setTheme(theme);\n }\n if (!this._themeStyleElement) {\n this._themeStyleElement = document.createElement('style');\n this._terminal.screenElement.appendChild(this._themeStyleElement);\n }\n var styles = this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \" {\" +\n (\" color: \" + this.colorManager.colors.foreground.css + \";\") +\n (\" background-color: \" + this.colorManager.colors.background.css + \";\") +\n (\" font-family: \" + this._terminal.getOption('fontFamily') + \";\") +\n (\" font-size: \" + this._terminal.getOption('fontSize') + \"px;\") +\n \"}\";\n styles +=\n this._terminalSelector + \" span:not(.\" + DomRendererRowFactory_1.BOLD_CLASS + \") {\" +\n (\" font-weight: \" + this._terminal.options.fontWeight + \";\") +\n \"}\" +\n (this._terminalSelector + \" span.\" + DomRendererRowFactory_1.BOLD_CLASS + \" {\") +\n (\" font-weight: \" + this._terminal.options.fontWeightBold + \";\") +\n \"}\" +\n (this._terminalSelector + \" span.\" + DomRendererRowFactory_1.ITALIC_CLASS + \" {\") +\n \" font-style: italic;\" +\n \"}\";\n styles +=\n this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \".\" + FOCUS_CLASS + \" .\" + DomRendererRowFactory_1.CURSOR_CLASS + \" {\" +\n (\" background-color: \" + this.colorManager.colors.cursor.css + \";\") +\n (\" color: \" + this.colorManager.colors.cursorAccent.css + \";\") +\n \"}\" +\n (this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \":not(.\" + FOCUS_CLASS + \") .\" + DomRendererRowFactory_1.CURSOR_CLASS + \" {\") +\n \" outline: 1px solid #fff;\" +\n \" outline-offset: -1px;\" +\n \"}\";\n styles +=\n this._terminalSelector + \" .\" + SELECTION_CLASS + \" {\" +\n \" position: absolute;\" +\n \" top: 0;\" +\n \" left: 0;\" +\n \" z-index: 1;\" +\n \" pointer-events: none;\" +\n \"}\" +\n (this._terminalSelector + \" .\" + SELECTION_CLASS + \" div {\") +\n \" position: absolute;\" +\n (\" background-color: \" + this.colorManager.colors.selection.css + \";\") +\n \"}\";\n this.colorManager.colors.ansi.forEach(function (c, i) {\n styles +=\n _this._terminalSelector + \" .\" + FG_CLASS_PREFIX + i + \" { color: \" + c.css + \"; }\" +\n (_this._terminalSelector + \" .\" + BG_CLASS_PREFIX + i + \" { background-color: \" + c.css + \"; }\");\n });\n this._themeStyleElement.innerHTML = styles;\n return this.colorManager.colors;\n };\n DomRenderer.prototype.onWindowResize = function (devicePixelRatio) {\n this._updateDimensions();\n };\n DomRenderer.prototype._refreshRowElements = function (cols, rows) {\n for (var i = this._rowElements.length; i <= rows; i++) {\n var row = document.createElement('div');\n this._rowContainer.appendChild(row);\n this._rowElements.push(row);\n }\n while (this._rowElements.length > rows) {\n this._rowContainer.removeChild(this._rowElements.pop());\n }\n };\n DomRenderer.prototype.onResize = function (cols, rows) {\n this._refreshRowElements(cols, rows);\n this._updateDimensions();\n };\n DomRenderer.prototype.onCharSizeChanged = function () {\n this._updateDimensions();\n };\n DomRenderer.prototype.onBlur = function () {\n this._rowContainer.classList.remove(FOCUS_CLASS);\n };\n DomRenderer.prototype.onFocus = function () {\n this._rowContainer.classList.add(FOCUS_CLASS);\n };\n DomRenderer.prototype.onSelectionChanged = function (start, end, columnSelectMode) {\n while (this._selectionContainer.children.length) {\n this._selectionContainer.removeChild(this._selectionContainer.children[0]);\n }\n if (!start || !end) {\n return;\n }\n var viewportStartRow = start[1] - this._terminal.buffer.ydisp;\n var viewportEndRow = end[1] - this._terminal.buffer.ydisp;\n var viewportCappedStartRow = Math.max(viewportStartRow, 0);\n var viewportCappedEndRow = Math.min(viewportEndRow, this._terminal.rows - 1);\n if (viewportCappedStartRow >= this._terminal.rows || viewportCappedEndRow < 0) {\n return;\n }\n var documentFragment = document.createDocumentFragment();\n if (columnSelectMode) {\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow, start[0], end[0], viewportCappedEndRow - viewportCappedStartRow + 1));\n }\n else {\n var startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;\n var endCol = viewportCappedStartRow === viewportCappedEndRow ? end[0] : this._terminal.cols;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow, startCol, endCol));\n var middleRowsCount = viewportCappedEndRow - viewportCappedStartRow - 1;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow + 1, 0, this._terminal.cols, middleRowsCount));\n if (viewportCappedStartRow !== viewportCappedEndRow) {\n var endCol_1 = viewportEndRow === viewportCappedEndRow ? end[0] : this._terminal.cols;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedEndRow, 0, endCol_1));\n }\n }\n this._selectionContainer.appendChild(documentFragment);\n };\n DomRenderer.prototype._createSelectionElement = function (row, colStart, colEnd, rowCount) {\n if (rowCount === void 0) { rowCount = 1; }\n var element = document.createElement('div');\n element.style.height = rowCount * this._terminal.charMeasure.height + \"px\";\n element.style.top = row * this._terminal.charMeasure.height + \"px\";\n element.style.left = colStart * this._terminal.charMeasure.width + \"px\";\n element.style.width = this._terminal.charMeasure.width * (colEnd - colStart) + \"px\";\n return element;\n };\n DomRenderer.prototype.onCursorMove = function () {\n };\n DomRenderer.prototype.onOptionsChanged = function () {\n this._updateDimensions();\n this.setTheme(undefined);\n this._terminal.refresh(0, this._terminal.rows - 1);\n };\n DomRenderer.prototype.clear = function () {\n this._rowElements.forEach(function (e) { return e.innerHTML = ''; });\n };\n DomRenderer.prototype.refreshRows = function (start, end) {\n this._renderDebouncer.refresh(start, end);\n };\n DomRenderer.prototype._renderRows = function (start, end) {\n var terminal = this._terminal;\n var cursorAbsoluteY = terminal.buffer.ybase + terminal.buffer.y;\n var cursorX = this._terminal.buffer.x;\n for (var y = start; y <= end; y++) {\n var rowElement = this._rowElements[y];\n rowElement.innerHTML = '';\n var row = y + terminal.buffer.ydisp;\n var lineData = terminal.buffer.lines.get(row);\n rowElement.appendChild(this._rowFactory.createRow(lineData, row === cursorAbsoluteY, cursorX, terminal.charMeasure.width, terminal.cols));\n }\n this._terminal.emit('refresh', { start: start, end: end });\n };\n Object.defineProperty(DomRenderer.prototype, \"_terminalSelector\", {\n get: function () {\n return \".\" + TERMINAL_CLASS_PREFIX + this._terminalClass;\n },\n enumerable: true,\n configurable: true\n });\n DomRenderer.prototype.registerCharacterJoiner = function (handler) { return -1; };\n DomRenderer.prototype.deregisterCharacterJoiner = function (joinerId) { return false; };\n return DomRenderer;\n}(EventEmitter_1.EventEmitter));\nexports.DomRenderer = DomRenderer;\n//# sourceMappingURL=DomRenderer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../../Buffer\");\nexports.BOLD_CLASS = 'xterm-bold';\nexports.ITALIC_CLASS = 'xterm-italic';\nexports.CURSOR_CLASS = 'xterm-cursor';\nvar DomRendererRowFactory = (function () {\n function DomRendererRowFactory(_document) {\n this._document = _document;\n }\n DomRendererRowFactory.prototype.createRow = function (lineData, isCursorRow, cursorX, cellWidth, cols) {\n var fragment = this._document.createDocumentFragment();\n var colCount = 0;\n for (var x = 0; x < lineData.length; x++) {\n if (colCount >= cols) {\n continue;\n }\n var charData = lineData[x];\n var char = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n if (width === 0) {\n continue;\n }\n var charElement = this._document.createElement('span');\n if (width > 1) {\n charElement.style.width = cellWidth * width + \"px\";\n }\n var flags = attr >> 18;\n var bg = attr & 0x1ff;\n var fg = (attr >> 9) & 0x1ff;\n if (isCursorRow && x === cursorX) {\n charElement.classList.add(exports.CURSOR_CLASS);\n }\n if (flags & 8) {\n var temp = bg;\n bg = fg;\n fg = temp;\n if (fg === 256) {\n fg = 0;\n }\n if (bg === 257) {\n bg = 15;\n }\n }\n if (flags & 1) {\n if (fg < 8) {\n fg += 8;\n }\n charElement.classList.add(exports.BOLD_CLASS);\n }\n if (flags & 64) {\n charElement.classList.add(exports.ITALIC_CLASS);\n }\n charElement.textContent = char;\n if (fg !== 257) {\n charElement.classList.add(\"xterm-fg-\" + fg);\n }\n if (bg !== 256) {\n charElement.classList.add(\"xterm-bg-\" + bg);\n }\n fragment.appendChild(charElement);\n colCount += width;\n }\n return fragment;\n };\n return DomRendererRowFactory;\n}());\nexports.DomRendererRowFactory = DomRendererRowFactory;\n//# sourceMappingURL=DomRendererRowFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"../../common/data/EscapeSequences\");\nvar KEYCODE_KEY_MAPPINGS = {\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: ['\\'', '\"']\n};\nfunction evaluateKeyboardEvent(ev, applicationCursorMode, isMac, macOptionIsMeta) {\n var result = {\n type: 0,\n cancel: false,\n key: undefined\n };\n var modifiers = (ev.shiftKey ? 1 : 0) | (ev.altKey ? 2 : 0) | (ev.ctrlKey ? 4 : 0) | (ev.metaKey ? 8 : 0);\n switch (ev.keyCode) {\n case 0:\n if (ev.key === 'UIKeyInputUpArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OA';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[A';\n }\n }\n else if (ev.key === 'UIKeyInputLeftArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OD';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[D';\n }\n }\n else if (ev.key === 'UIKeyInputRightArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OC';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[C';\n }\n }\n else if (ev.key === 'UIKeyInputDownArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OB';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[B';\n }\n }\n break;\n case 8:\n if (ev.shiftKey) {\n result.key = EscapeSequences_1.C0.BS;\n break;\n }\n else if (ev.altKey) {\n result.key = EscapeSequences_1.C0.ESC + EscapeSequences_1.C0.DEL;\n break;\n }\n result.key = EscapeSequences_1.C0.DEL;\n break;\n case 9:\n if (ev.shiftKey) {\n result.key = EscapeSequences_1.C0.ESC + '[Z';\n break;\n }\n result.key = EscapeSequences_1.C0.HT;\n result.cancel = true;\n break;\n case 13:\n result.key = EscapeSequences_1.C0.CR;\n result.cancel = true;\n break;\n case 27:\n result.key = EscapeSequences_1.C0.ESC;\n result.cancel = true;\n break;\n case 37:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'D';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3D') {\n result.key = isMac ? EscapeSequences_1.C0.ESC + 'b' : EscapeSequences_1.C0.ESC + '[1;5D';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OD';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[D';\n }\n break;\n case 39:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'C';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3C') {\n result.key = isMac ? EscapeSequences_1.C0.ESC + 'f' : EscapeSequences_1.C0.ESC + '[1;5C';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OC';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[C';\n }\n break;\n case 38:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'A';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3A') {\n result.key = EscapeSequences_1.C0.ESC + '[1;5A';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OA';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[A';\n }\n break;\n case 40:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'B';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3B') {\n result.key = EscapeSequences_1.C0.ESC + '[1;5B';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OB';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[B';\n }\n break;\n case 45:\n if (!ev.shiftKey && !ev.ctrlKey) {\n result.key = EscapeSequences_1.C0.ESC + '[2~';\n }\n break;\n case 46:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[3;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[3~';\n }\n break;\n case 36:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'H';\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OH';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[H';\n }\n break;\n case 35:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'F';\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OF';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[F';\n }\n break;\n case 33:\n if (ev.shiftKey) {\n result.type = 2;\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[5~';\n }\n break;\n case 34:\n if (ev.shiftKey) {\n result.type = 3;\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[6~';\n }\n break;\n case 112:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'P';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OP';\n }\n break;\n case 113:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'Q';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OQ';\n }\n break;\n case 114:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'R';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OR';\n }\n break;\n case 115:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'S';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OS';\n }\n break;\n case 116:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[15;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[15~';\n }\n break;\n case 117:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[17;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[17~';\n }\n break;\n case 118:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[18;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[18~';\n }\n break;\n case 119:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[19;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[19~';\n }\n break;\n case 120:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[20;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[20~';\n }\n break;\n case 121:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[21;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[21~';\n }\n break;\n case 122:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[23;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[23~';\n }\n break;\n case 123:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[24;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[24~';\n }\n break;\n default:\n if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) {\n if (ev.keyCode >= 65 && ev.keyCode <= 90) {\n result.key = String.fromCharCode(ev.keyCode - 64);\n }\n else if (ev.keyCode === 32) {\n result.key = String.fromCharCode(0);\n }\n else if (ev.keyCode >= 51 && ev.keyCode <= 55) {\n result.key = String.fromCharCode(ev.keyCode - 51 + 27);\n }\n else if (ev.keyCode === 56) {\n result.key = String.fromCharCode(127);\n }\n else if (ev.keyCode === 219) {\n result.key = String.fromCharCode(27);\n }\n else if (ev.keyCode === 220) {\n result.key = String.fromCharCode(28);\n }\n else if (ev.keyCode === 221) {\n result.key = String.fromCharCode(29);\n }\n }\n else if ((!isMac || macOptionIsMeta) && ev.altKey && !ev.metaKey) {\n var keyMapping = KEYCODE_KEY_MAPPINGS[ev.keyCode];\n var key = keyMapping && keyMapping[!ev.shiftKey ? 0 : 1];\n if (key) {\n result.key = EscapeSequences_1.C0.ESC + key;\n }\n else if (ev.keyCode >= 65 && ev.keyCode <= 90) {\n var keyCode = ev.ctrlKey ? ev.keyCode - 64 : ev.keyCode + 32;\n result.key = EscapeSequences_1.C0.ESC + String.fromCharCode(keyCode);\n }\n }\n else if (isMac && !ev.altKey && !ev.ctrlKey && ev.metaKey) {\n if (ev.keyCode === 65) {\n result.type = 1;\n }\n }\n break;\n }\n return result;\n}\nexports.evaluateKeyboardEvent = evaluateKeyboardEvent;\n//# sourceMappingURL=Keyboard.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction proposeGeometry(term) {\n if (!term.element.parentElement) {\n return null;\n }\n var parentElementStyle = window.getComputedStyle(term.element.parentElement);\n var parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height'));\n var parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width')));\n var elementStyle = window.getComputedStyle(term.element);\n var elementPadding = {\n top: parseInt(elementStyle.getPropertyValue('padding-top')),\n bottom: parseInt(elementStyle.getPropertyValue('padding-bottom')),\n right: parseInt(elementStyle.getPropertyValue('padding-right')),\n left: parseInt(elementStyle.getPropertyValue('padding-left'))\n };\n var elementPaddingVer = elementPadding.top + elementPadding.bottom;\n var elementPaddingHor = elementPadding.right + elementPadding.left;\n var availableHeight = parentElementHeight - elementPaddingVer;\n var availableWidth = parentElementWidth - elementPaddingHor - term._core.viewport.scrollBarWidth;\n var geometry = {\n cols: Math.floor(availableWidth / term._core.renderer.dimensions.actualCellWidth),\n rows: Math.floor(availableHeight / term._core.renderer.dimensions.actualCellHeight)\n };\n return geometry;\n}\nexports.proposeGeometry = proposeGeometry;\nfunction fit(term) {\n var geometry = proposeGeometry(term);\n if (geometry) {\n if (term.rows !== geometry.rows || term.cols !== geometry.cols) {\n term._core.renderer.clear();\n term.resize(geometry.cols, geometry.rows);\n }\n }\n}\nexports.fit = fit;\nfunction apply(terminalConstructor) {\n terminalConstructor.prototype.proposeGeometry = function () {\n return proposeGeometry(this);\n };\n terminalConstructor.prototype.fit = function () {\n fit(this);\n };\n}\nexports.apply = apply;\n//# sourceMappingURL=fit.js.map","'use strict';\nconst ipRegex = require('ip-regex');\nconst tlds = require('tlds');\n\nmodule.exports = opts => {\n\topts = Object.assign({strict: true}, opts);\n\n\tconst protocol = `(?:(?:[a-z]+:)?//)${opts.strict ? '' : '?'}`;\n\tconst auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n\tconst ip = ipRegex.v4().source;\n\tconst host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n\tconst domain = '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n\tconst tld = `(?:\\\\.${opts.strict ? '(?:[a-z\\\\u00a1-\\\\uffff]{2,})' : `(?:${tlds.sort((a, b) => b.length - a.length).join('|')})`})\\\\.?`;\n\tconst port = '(?::\\\\d{2,5})?';\n\tconst path = '(?:[/?#][^\\\\s\"]*)?';\n\tconst regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ip}|${host}${domain}${tld})${port}${path}`;\n\n\treturn opts.exact ? new RegExp(`(?:^${regex}$)`, 'i') : new RegExp(regex, 'ig');\n};\n","'use strict';\n\nvar v4 = '(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}';\nvar v6 = '(?:(?:[0-9a-fA-F:]){1,4}(?:(?::(?:[0-9a-fA-F]){1,4}|:)){2,7})+';\n\nvar ip = module.exports = function (opts) {\n\topts = opts || {};\n\treturn opts.exact ? new RegExp('(?:^' + v4 + '$)|(?:^' + v6 + '$)') :\n\t new RegExp('(?:' + v4 + ')|(?:' + v6 + ')', 'g');\n};\n\nip.v4 = function (opts) {\n\topts = opts || {};\n\treturn opts.exact ? new RegExp('^' + v4 + '$') : new RegExp(v4, 'g');\n};\n\nip.v6 = function (opts) {\n\topts = opts || {};\n\treturn opts.exact ? new RegExp('^' + v6 + '$') : new RegExp(v6, 'g');\n};\n","module.exports = [\n \"aaa\",\n \"aarp\",\n \"abarth\",\n \"abb\",\n \"abbott\",\n \"abbvie\",\n \"abc\",\n \"able\",\n \"abogado\",\n \"abudhabi\",\n \"ac\",\n \"academy\",\n \"accenture\",\n \"accountant\",\n \"accountants\",\n \"aco\",\n \"active\",\n \"actor\",\n \"ad\",\n \"adac\",\n \"ads\",\n \"adult\",\n \"ae\",\n \"aeg\",\n \"aero\",\n \"aetna\",\n \"af\",\n \"afamilycompany\",\n \"afl\",\n \"africa\",\n \"ag\",\n \"agakhan\",\n \"agency\",\n \"ai\",\n \"aig\",\n \"aigo\",\n \"airbus\",\n \"airforce\",\n \"airtel\",\n \"akdn\",\n \"al\",\n \"alfaromeo\",\n \"alibaba\",\n \"alipay\",\n \"allfinanz\",\n \"allstate\",\n \"ally\",\n \"alsace\",\n \"alstom\",\n \"am\",\n \"americanexpress\",\n \"americanfamily\",\n \"amex\",\n \"amfam\",\n \"amica\",\n \"amsterdam\",\n \"analytics\",\n \"android\",\n \"anquan\",\n \"anz\",\n \"ao\",\n \"aol\",\n \"apartments\",\n \"app\",\n \"apple\",\n \"aq\",\n \"aquarelle\",\n \"ar\",\n \"arab\",\n \"aramco\",\n \"archi\",\n \"army\",\n \"arpa\",\n \"art\",\n \"arte\",\n \"as\",\n \"asda\",\n \"asia\",\n \"associates\",\n \"at\",\n \"athleta\",\n \"attorney\",\n \"au\",\n \"auction\",\n \"audi\",\n \"audible\",\n \"audio\",\n \"auspost\",\n \"author\",\n \"auto\",\n \"autos\",\n \"avianca\",\n \"aw\",\n \"aws\",\n \"ax\",\n \"axa\",\n \"az\",\n \"azure\",\n \"ba\",\n \"baby\",\n \"baidu\",\n \"banamex\",\n \"bananarepublic\",\n \"band\",\n \"bank\",\n \"bar\",\n \"barcelona\",\n \"barclaycard\",\n \"barclays\",\n \"barefoot\",\n \"bargains\",\n \"baseball\",\n \"basketball\",\n \"bauhaus\",\n \"bayern\",\n \"bb\",\n \"bbc\",\n \"bbt\",\n \"bbva\",\n \"bcg\",\n \"bcn\",\n \"bd\",\n \"be\",\n \"beats\",\n \"beauty\",\n \"beer\",\n \"bentley\",\n \"berlin\",\n \"best\",\n \"bestbuy\",\n \"bet\",\n \"bf\",\n \"bg\",\n \"bh\",\n \"bharti\",\n \"bi\",\n \"bible\",\n \"bid\",\n \"bike\",\n \"bing\",\n \"bingo\",\n \"bio\",\n \"biz\",\n \"bj\",\n \"black\",\n \"blackfriday\",\n \"blanco\",\n \"blockbuster\",\n \"blog\",\n \"bloomberg\",\n \"blue\",\n \"bm\",\n \"bms\",\n \"bmw\",\n \"bn\",\n \"bnl\",\n \"bnpparibas\",\n \"bo\",\n \"boats\",\n \"boehringer\",\n \"bofa\",\n \"bom\",\n \"bond\",\n \"boo\",\n \"book\",\n \"booking\",\n \"bosch\",\n \"bostik\",\n \"boston\",\n \"bot\",\n \"boutique\",\n \"box\",\n \"br\",\n \"bradesco\",\n \"bridgestone\",\n \"broadway\",\n \"broker\",\n \"brother\",\n \"brussels\",\n \"bs\",\n \"bt\",\n \"budapest\",\n \"bugatti\",\n \"build\",\n \"builders\",\n \"business\",\n \"buy\",\n \"buzz\",\n \"bv\",\n \"bw\",\n \"by\",\n \"bz\",\n \"bzh\",\n \"ca\",\n \"cab\",\n \"cafe\",\n \"cal\",\n \"call\",\n \"calvinklein\",\n \"cam\",\n \"camera\",\n \"camp\",\n \"cancerresearch\",\n \"canon\",\n \"capetown\",\n \"capital\",\n \"capitalone\",\n \"car\",\n \"caravan\",\n \"cards\",\n \"care\",\n \"career\",\n \"careers\",\n \"cars\",\n \"cartier\",\n \"casa\",\n \"case\",\n \"caseih\",\n \"cash\",\n \"casino\",\n \"cat\",\n \"catering\",\n \"catholic\",\n \"cba\",\n \"cbn\",\n \"cbre\",\n \"cbs\",\n \"cc\",\n \"cd\",\n \"ceb\",\n \"center\",\n \"ceo\",\n \"cern\",\n \"cf\",\n \"cfa\",\n \"cfd\",\n \"cg\",\n \"ch\",\n \"chanel\",\n \"channel\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"chintai\",\n \"christmas\",\n \"chrome\",\n \"chrysler\",\n \"church\",\n \"ci\",\n \"cipriani\",\n \"circle\",\n \"cisco\",\n \"citadel\",\n \"citi\",\n \"citic\",\n \"city\",\n \"cityeats\",\n \"ck\",\n \"cl\",\n \"claims\",\n \"cleaning\",\n \"click\",\n \"clinic\",\n \"clinique\",\n \"clothing\",\n \"cloud\",\n \"club\",\n \"clubmed\",\n \"cm\",\n \"cn\",\n \"co\",\n \"coach\",\n \"codes\",\n \"coffee\",\n \"college\",\n \"cologne\",\n \"com\",\n \"comcast\",\n \"commbank\",\n \"community\",\n \"company\",\n \"compare\",\n \"computer\",\n \"comsec\",\n \"condos\",\n \"construction\",\n \"consulting\",\n \"contact\",\n \"contractors\",\n \"cooking\",\n \"cookingchannel\",\n \"cool\",\n \"coop\",\n \"corsica\",\n \"country\",\n \"coupon\",\n \"coupons\",\n \"courses\",\n \"cr\",\n \"credit\",\n \"creditcard\",\n \"creditunion\",\n \"cricket\",\n \"crown\",\n \"crs\",\n \"cruise\",\n \"cruises\",\n \"csc\",\n \"cu\",\n \"cuisinella\",\n \"cv\",\n \"cw\",\n \"cx\",\n \"cy\",\n \"cymru\",\n \"cyou\",\n \"cz\",\n \"dabur\",\n \"dad\",\n \"dance\",\n \"data\",\n \"date\",\n \"dating\",\n \"datsun\",\n \"day\",\n \"dclk\",\n \"dds\",\n \"de\",\n \"deal\",\n \"dealer\",\n \"deals\",\n \"degree\",\n \"delivery\",\n \"dell\",\n \"deloitte\",\n \"delta\",\n \"democrat\",\n \"dental\",\n \"dentist\",\n \"desi\",\n \"design\",\n \"dev\",\n \"dhl\",\n \"diamonds\",\n \"diet\",\n \"digital\",\n \"direct\",\n \"directory\",\n \"discount\",\n \"discover\",\n \"dish\",\n \"diy\",\n \"dj\",\n \"dk\",\n \"dm\",\n \"dnp\",\n \"do\",\n \"docs\",\n \"doctor\",\n \"dodge\",\n \"dog\",\n \"doha\",\n \"domains\",\n \"dot\",\n \"download\",\n \"drive\",\n \"dtv\",\n \"dubai\",\n \"duck\",\n \"dunlop\",\n \"duns\",\n \"dupont\",\n \"durban\",\n \"dvag\",\n \"dvr\",\n \"dz\",\n \"earth\",\n \"eat\",\n \"ec\",\n \"eco\",\n \"edeka\",\n \"edu\",\n \"education\",\n \"ee\",\n \"eg\",\n \"email\",\n \"emerck\",\n \"energy\",\n \"engineer\",\n \"engineering\",\n \"enterprises\",\n \"epost\",\n \"epson\",\n \"equipment\",\n \"er\",\n \"ericsson\",\n \"erni\",\n \"es\",\n \"esq\",\n \"estate\",\n \"esurance\",\n \"et\",\n \"etisalat\",\n \"eu\",\n \"eurovision\",\n \"eus\",\n \"events\",\n \"everbank\",\n \"exchange\",\n \"expert\",\n \"exposed\",\n \"express\",\n \"extraspace\",\n \"fage\",\n \"fail\",\n \"fairwinds\",\n \"faith\",\n \"family\",\n \"fan\",\n \"fans\",\n \"farm\",\n \"farmers\",\n \"fashion\",\n \"fast\",\n \"fedex\",\n \"feedback\",\n \"ferrari\",\n \"ferrero\",\n \"fi\",\n \"fiat\",\n \"fidelity\",\n \"fido\",\n \"film\",\n \"final\",\n \"finance\",\n \"financial\",\n \"fire\",\n \"firestone\",\n \"firmdale\",\n \"fish\",\n \"fishing\",\n \"fit\",\n \"fitness\",\n \"fj\",\n \"fk\",\n \"flickr\",\n \"flights\",\n \"flir\",\n \"florist\",\n \"flowers\",\n \"fly\",\n \"fm\",\n \"fo\",\n \"foo\",\n \"food\",\n \"foodnetwork\",\n \"football\",\n \"ford\",\n \"forex\",\n \"forsale\",\n \"forum\",\n \"foundation\",\n \"fox\",\n \"fr\",\n \"free\",\n \"fresenius\",\n \"frl\",\n \"frogans\",\n \"frontdoor\",\n \"frontier\",\n \"ftr\",\n \"fujitsu\",\n \"fujixerox\",\n \"fun\",\n \"fund\",\n \"furniture\",\n \"futbol\",\n \"fyi\",\n \"ga\",\n \"gal\",\n \"gallery\",\n \"gallo\",\n \"gallup\",\n \"game\",\n \"games\",\n \"gap\",\n \"garden\",\n \"gb\",\n \"gbiz\",\n \"gd\",\n \"gdn\",\n \"ge\",\n \"gea\",\n \"gent\",\n \"genting\",\n \"george\",\n \"gf\",\n \"gg\",\n \"ggee\",\n \"gh\",\n \"gi\",\n \"gift\",\n \"gifts\",\n \"gives\",\n \"giving\",\n \"gl\",\n \"glade\",\n \"glass\",\n \"gle\",\n \"global\",\n \"globo\",\n \"gm\",\n \"gmail\",\n \"gmbh\",\n \"gmo\",\n \"gmx\",\n \"gn\",\n \"godaddy\",\n \"gold\",\n \"goldpoint\",\n \"golf\",\n \"goo\",\n \"goodhands\",\n \"goodyear\",\n \"goog\",\n \"google\",\n \"gop\",\n \"got\",\n \"gov\",\n \"gp\",\n \"gq\",\n \"gr\",\n \"grainger\",\n \"graphics\",\n \"gratis\",\n \"green\",\n \"gripe\",\n \"grocery\",\n \"group\",\n \"gs\",\n \"gt\",\n \"gu\",\n \"guardian\",\n \"gucci\",\n \"guge\",\n \"guide\",\n \"guitars\",\n \"guru\",\n \"gw\",\n \"gy\",\n \"hair\",\n \"hamburg\",\n \"hangout\",\n \"haus\",\n \"hbo\",\n \"hdfc\",\n \"hdfcbank\",\n \"health\",\n \"healthcare\",\n \"help\",\n \"helsinki\",\n \"here\",\n \"hermes\",\n \"hgtv\",\n \"hiphop\",\n \"hisamitsu\",\n \"hitachi\",\n \"hiv\",\n \"hk\",\n \"hkt\",\n \"hm\",\n \"hn\",\n \"hockey\",\n \"holdings\",\n \"holiday\",\n \"homedepot\",\n \"homegoods\",\n \"homes\",\n \"homesense\",\n \"honda\",\n \"honeywell\",\n \"horse\",\n \"hospital\",\n \"host\",\n \"hosting\",\n \"hot\",\n \"hoteles\",\n \"hotels\",\n \"hotmail\",\n \"house\",\n \"how\",\n \"hr\",\n \"hsbc\",\n \"ht\",\n \"hu\",\n \"hughes\",\n \"hyatt\",\n \"hyundai\",\n \"ibm\",\n \"icbc\",\n \"ice\",\n \"icu\",\n \"id\",\n \"ie\",\n \"ieee\",\n \"ifm\",\n \"ikano\",\n \"il\",\n \"im\",\n \"imamat\",\n \"imdb\",\n \"immo\",\n \"immobilien\",\n \"in\",\n \"industries\",\n \"infiniti\",\n \"info\",\n \"ing\",\n \"ink\",\n \"institute\",\n \"insurance\",\n \"insure\",\n \"int\",\n \"intel\",\n \"international\",\n \"intuit\",\n \"investments\",\n \"io\",\n \"ipiranga\",\n \"iq\",\n \"ir\",\n \"irish\",\n \"is\",\n \"iselect\",\n \"ismaili\",\n \"ist\",\n \"istanbul\",\n \"it\",\n \"itau\",\n \"itv\",\n \"iveco\",\n \"iwc\",\n \"jaguar\",\n \"java\",\n \"jcb\",\n \"jcp\",\n \"je\",\n \"jeep\",\n \"jetzt\",\n \"jewelry\",\n \"jio\",\n \"jlc\",\n \"jll\",\n \"jm\",\n \"jmp\",\n \"jnj\",\n \"jo\",\n \"jobs\",\n \"joburg\",\n \"jot\",\n \"joy\",\n \"jp\",\n \"jpmorgan\",\n \"jprs\",\n \"juegos\",\n \"juniper\",\n \"kaufen\",\n \"kddi\",\n \"ke\",\n \"kerryhotels\",\n \"kerrylogistics\",\n \"kerryproperties\",\n \"kfh\",\n \"kg\",\n \"kh\",\n \"ki\",\n \"kia\",\n \"kim\",\n \"kinder\",\n \"kindle\",\n \"kitchen\",\n \"kiwi\",\n \"km\",\n \"kn\",\n \"koeln\",\n \"komatsu\",\n \"kosher\",\n \"kp\",\n \"kpmg\",\n \"kpn\",\n \"kr\",\n \"krd\",\n \"kred\",\n \"kuokgroup\",\n \"kw\",\n \"ky\",\n \"kyoto\",\n \"kz\",\n \"la\",\n \"lacaixa\",\n \"ladbrokes\",\n \"lamborghini\",\n \"lamer\",\n \"lancaster\",\n \"lancia\",\n \"lancome\",\n \"land\",\n \"landrover\",\n \"lanxess\",\n \"lasalle\",\n \"lat\",\n \"latino\",\n \"latrobe\",\n \"law\",\n \"lawyer\",\n \"lb\",\n \"lc\",\n \"lds\",\n \"lease\",\n \"leclerc\",\n \"lefrak\",\n \"legal\",\n \"lego\",\n \"lexus\",\n \"lgbt\",\n \"li\",\n \"liaison\",\n \"lidl\",\n \"life\",\n \"lifeinsurance\",\n \"lifestyle\",\n \"lighting\",\n \"like\",\n \"lilly\",\n \"limited\",\n \"limo\",\n \"lincoln\",\n \"linde\",\n \"link\",\n \"lipsy\",\n \"live\",\n \"living\",\n \"lixil\",\n \"lk\",\n \"llc\",\n \"loan\",\n \"loans\",\n \"locker\",\n \"locus\",\n \"loft\",\n \"lol\",\n \"london\",\n \"lotte\",\n \"lotto\",\n \"love\",\n \"lpl\",\n \"lplfinancial\",\n \"lr\",\n \"ls\",\n \"lt\",\n \"ltd\",\n \"ltda\",\n \"lu\",\n \"lundbeck\",\n \"lupin\",\n \"luxe\",\n \"luxury\",\n \"lv\",\n \"ly\",\n \"ma\",\n \"macys\",\n \"madrid\",\n \"maif\",\n \"maison\",\n \"makeup\",\n \"man\",\n \"management\",\n \"mango\",\n \"map\",\n \"market\",\n \"marketing\",\n \"markets\",\n \"marriott\",\n \"marshalls\",\n \"maserati\",\n \"mattel\",\n \"mba\",\n \"mc\",\n \"mckinsey\",\n \"md\",\n \"me\",\n \"med\",\n \"media\",\n \"meet\",\n \"melbourne\",\n \"meme\",\n \"memorial\",\n \"men\",\n \"menu\",\n \"meo\",\n \"merckmsd\",\n \"metlife\",\n \"mg\",\n \"mh\",\n \"miami\",\n \"microsoft\",\n \"mil\",\n \"mini\",\n \"mint\",\n \"mit\",\n \"mitsubishi\",\n \"mk\",\n \"ml\",\n \"mlb\",\n \"mls\",\n \"mm\",\n \"mma\",\n \"mn\",\n \"mo\",\n \"mobi\",\n \"mobile\",\n \"mobily\",\n \"moda\",\n \"moe\",\n \"moi\",\n \"mom\",\n \"monash\",\n \"money\",\n \"monster\",\n \"mopar\",\n \"mormon\",\n \"mortgage\",\n \"moscow\",\n \"moto\",\n \"motorcycles\",\n \"mov\",\n \"movie\",\n \"movistar\",\n \"mp\",\n \"mq\",\n \"mr\",\n \"ms\",\n \"msd\",\n \"mt\",\n \"mtn\",\n \"mtr\",\n \"mu\",\n \"museum\",\n \"mutual\",\n \"mv\",\n \"mw\",\n \"mx\",\n \"my\",\n \"mz\",\n \"na\",\n \"nab\",\n \"nadex\",\n \"nagoya\",\n \"name\",\n \"nationwide\",\n \"natura\",\n \"navy\",\n \"nba\",\n \"nc\",\n \"ne\",\n \"nec\",\n \"net\",\n \"netbank\",\n \"netflix\",\n \"network\",\n \"neustar\",\n \"new\",\n \"newholland\",\n \"news\",\n \"next\",\n \"nextdirect\",\n \"nexus\",\n \"nf\",\n \"nfl\",\n \"ng\",\n \"ngo\",\n \"nhk\",\n \"ni\",\n \"nico\",\n \"nike\",\n \"nikon\",\n \"ninja\",\n \"nissan\",\n \"nissay\",\n \"nl\",\n \"no\",\n \"nokia\",\n \"northwesternmutual\",\n \"norton\",\n \"now\",\n \"nowruz\",\n \"nowtv\",\n \"np\",\n \"nr\",\n \"nra\",\n \"nrw\",\n \"ntt\",\n \"nu\",\n \"nyc\",\n \"nz\",\n \"obi\",\n \"observer\",\n \"off\",\n \"office\",\n \"okinawa\",\n \"olayan\",\n \"olayangroup\",\n \"oldnavy\",\n \"ollo\",\n \"om\",\n \"omega\",\n \"one\",\n \"ong\",\n \"onl\",\n \"online\",\n \"onyourside\",\n \"ooo\",\n \"open\",\n \"oracle\",\n \"orange\",\n \"org\",\n \"organic\",\n \"origins\",\n \"osaka\",\n \"otsuka\",\n \"ott\",\n \"ovh\",\n \"pa\",\n \"page\",\n \"panasonic\",\n \"panerai\",\n \"paris\",\n \"pars\",\n \"partners\",\n \"parts\",\n \"party\",\n \"passagens\",\n \"pay\",\n \"pccw\",\n \"pe\",\n \"pet\",\n \"pf\",\n \"pfizer\",\n \"pg\",\n \"ph\",\n \"pharmacy\",\n \"phd\",\n \"philips\",\n \"phone\",\n \"photo\",\n \"photography\",\n \"photos\",\n \"physio\",\n \"piaget\",\n \"pics\",\n \"pictet\",\n \"pictures\",\n \"pid\",\n \"pin\",\n \"ping\",\n \"pink\",\n \"pioneer\",\n \"pizza\",\n \"pk\",\n \"pl\",\n \"place\",\n \"play\",\n \"playstation\",\n \"plumbing\",\n \"plus\",\n \"pm\",\n \"pn\",\n \"pnc\",\n \"pohl\",\n \"poker\",\n \"politie\",\n \"porn\",\n \"post\",\n \"pr\",\n \"pramerica\",\n \"praxi\",\n \"press\",\n \"prime\",\n \"pro\",\n \"prod\",\n \"productions\",\n \"prof\",\n \"progressive\",\n \"promo\",\n \"properties\",\n \"property\",\n \"protection\",\n \"pru\",\n \"prudential\",\n \"ps\",\n \"pt\",\n \"pub\",\n \"pw\",\n \"pwc\",\n \"py\",\n \"qa\",\n \"qpon\",\n \"quebec\",\n \"quest\",\n \"qvc\",\n \"racing\",\n \"radio\",\n \"raid\",\n \"re\",\n \"read\",\n \"realestate\",\n \"realtor\",\n \"realty\",\n \"recipes\",\n \"red\",\n \"redstone\",\n \"redumbrella\",\n \"rehab\",\n \"reise\",\n \"reisen\",\n \"reit\",\n \"reliance\",\n \"ren\",\n \"rent\",\n \"rentals\",\n \"repair\",\n \"report\",\n \"republican\",\n \"rest\",\n \"restaurant\",\n \"review\",\n \"reviews\",\n \"rexroth\",\n \"rich\",\n \"richardli\",\n \"ricoh\",\n \"rightathome\",\n \"ril\",\n \"rio\",\n \"rip\",\n \"rmit\",\n \"ro\",\n \"rocher\",\n \"rocks\",\n \"rodeo\",\n \"rogers\",\n \"room\",\n \"rs\",\n \"rsvp\",\n \"ru\",\n \"rugby\",\n \"ruhr\",\n \"run\",\n \"rw\",\n \"rwe\",\n \"ryukyu\",\n \"sa\",\n \"saarland\",\n \"safe\",\n \"safety\",\n \"sakura\",\n \"sale\",\n \"salon\",\n \"samsclub\",\n \"samsung\",\n \"sandvik\",\n \"sandvikcoromant\",\n \"sanofi\",\n \"sap\",\n \"sapo\",\n \"sarl\",\n \"sas\",\n \"save\",\n \"saxo\",\n \"sb\",\n \"sbi\",\n \"sbs\",\n \"sc\",\n \"sca\",\n \"scb\",\n \"schaeffler\",\n \"schmidt\",\n \"scholarships\",\n \"school\",\n \"schule\",\n \"schwarz\",\n \"science\",\n \"scjohnson\",\n \"scor\",\n \"scot\",\n \"sd\",\n \"se\",\n \"search\",\n \"seat\",\n \"secure\",\n \"security\",\n \"seek\",\n \"select\",\n \"sener\",\n \"services\",\n \"ses\",\n \"seven\",\n \"sew\",\n \"sex\",\n \"sexy\",\n \"sfr\",\n \"sg\",\n \"sh\",\n \"shangrila\",\n \"sharp\",\n \"shaw\",\n \"shell\",\n \"shia\",\n \"shiksha\",\n \"shoes\",\n \"shop\",\n \"shopping\",\n \"shouji\",\n \"show\",\n \"showtime\",\n \"shriram\",\n \"si\",\n \"silk\",\n \"sina\",\n \"singles\",\n \"site\",\n \"sj\",\n \"sk\",\n \"ski\",\n \"skin\",\n \"sky\",\n \"skype\",\n \"sl\",\n \"sling\",\n \"sm\",\n \"smart\",\n \"smile\",\n \"sn\",\n \"sncf\",\n \"so\",\n \"soccer\",\n \"social\",\n \"softbank\",\n \"software\",\n \"sohu\",\n \"solar\",\n \"solutions\",\n \"song\",\n \"sony\",\n \"soy\",\n \"space\",\n \"spiegel\",\n \"sport\",\n \"spot\",\n \"spreadbetting\",\n \"sr\",\n \"srl\",\n \"srt\",\n \"st\",\n \"stada\",\n \"staples\",\n \"star\",\n \"starhub\",\n \"statebank\",\n \"statefarm\",\n \"statoil\",\n \"stc\",\n \"stcgroup\",\n \"stockholm\",\n \"storage\",\n \"store\",\n \"stream\",\n \"studio\",\n \"study\",\n \"style\",\n \"su\",\n \"sucks\",\n \"supplies\",\n \"supply\",\n \"support\",\n \"surf\",\n \"surgery\",\n \"suzuki\",\n \"sv\",\n \"swatch\",\n \"swiftcover\",\n \"swiss\",\n \"sx\",\n \"sy\",\n \"sydney\",\n \"symantec\",\n \"systems\",\n \"sz\",\n \"tab\",\n \"taipei\",\n \"talk\",\n \"taobao\",\n \"target\",\n \"tatamotors\",\n \"tatar\",\n \"tattoo\",\n \"tax\",\n \"taxi\",\n \"tc\",\n \"tci\",\n \"td\",\n \"tdk\",\n \"team\",\n \"tech\",\n \"technology\",\n \"tel\",\n \"telecity\",\n \"telefonica\",\n \"temasek\",\n \"tennis\",\n \"teva\",\n \"tf\",\n \"tg\",\n \"th\",\n \"thd\",\n \"theater\",\n \"theatre\",\n \"tiaa\",\n \"tickets\",\n \"tienda\",\n \"tiffany\",\n \"tips\",\n \"tires\",\n \"tirol\",\n \"tj\",\n \"tjmaxx\",\n \"tjx\",\n \"tk\",\n \"tkmaxx\",\n \"tl\",\n \"tm\",\n \"tmall\",\n \"tn\",\n \"to\",\n \"today\",\n \"tokyo\",\n \"tools\",\n \"top\",\n \"toray\",\n \"toshiba\",\n \"total\",\n \"tours\",\n \"town\",\n \"toyota\",\n \"toys\",\n \"tr\",\n \"trade\",\n \"trading\",\n \"training\",\n \"travel\",\n \"travelchannel\",\n \"travelers\",\n \"travelersinsurance\",\n \"trust\",\n \"trv\",\n \"tt\",\n \"tube\",\n \"tui\",\n \"tunes\",\n \"tushu\",\n \"tv\",\n \"tvs\",\n \"tw\",\n \"tz\",\n \"ua\",\n \"ubank\",\n \"ubs\",\n \"uconnect\",\n \"ug\",\n \"uk\",\n \"unicom\",\n \"university\",\n \"uno\",\n \"uol\",\n \"ups\",\n \"us\",\n \"uy\",\n \"uz\",\n \"va\",\n \"vacations\",\n \"vana\",\n \"vanguard\",\n \"vc\",\n \"ve\",\n \"vegas\",\n \"ventures\",\n \"verisign\",\n \"versicherung\",\n \"vet\",\n \"vg\",\n \"vi\",\n \"viajes\",\n \"video\",\n \"vig\",\n \"viking\",\n \"villas\",\n \"vin\",\n \"vip\",\n \"virgin\",\n \"visa\",\n \"vision\",\n \"vista\",\n \"vistaprint\",\n \"viva\",\n \"vivo\",\n \"vlaanderen\",\n \"vn\",\n \"vodka\",\n \"volkswagen\",\n \"volvo\",\n \"vote\",\n \"voting\",\n \"voto\",\n \"voyage\",\n \"vu\",\n \"vuelos\",\n \"wales\",\n \"walmart\",\n \"walter\",\n \"wang\",\n \"wanggou\",\n \"warman\",\n \"watch\",\n \"watches\",\n \"weather\",\n \"weatherchannel\",\n \"webcam\",\n \"weber\",\n \"website\",\n \"wed\",\n \"wedding\",\n \"weibo\",\n \"weir\",\n \"wf\",\n \"whoswho\",\n \"wien\",\n \"wiki\",\n \"williamhill\",\n \"win\",\n \"windows\",\n \"wine\",\n \"winners\",\n \"wme\",\n \"wolterskluwer\",\n \"woodside\",\n \"work\",\n \"works\",\n \"world\",\n \"wow\",\n \"ws\",\n \"wtc\",\n \"wtf\",\n \"xbox\",\n \"xerox\",\n \"xfinity\",\n \"xihuan\",\n \"xin\",\n \"कॉम\", // xn--11b4c3d\n \"セール\", // xn--1ck2e1b\n \"佛山\", // xn--1qqw23a\n \"ಭಾರತ\", // xn--2scrj9c\n \"慈善\", // xn--30rr7y\n \"集团\", // xn--3bst00m\n \"在线\", // xn--3ds443g\n \"한국\", // xn--3e0b707e\n \"ଭାରତ\", // xn--3hcrj9c\n \"大众汽车\", // xn--3oq18vl8pn36a\n \"点看\", // xn--3pxu8k\n \"คอม\", // xn--42c2d9a\n \"ভাৰত\", // xn--45br5cyl\n \"ভারত\", // xn--45brj9c\n \"八卦\", // xn--45q11c\n \"موقع\", // xn--4gbrim\n \"বাংলা\", // xn--54b7fta0cc\n \"公益\", // xn--55qw42g\n \"公司\", // xn--55qx5d\n \"香格里拉\", // xn--5su34j936bgsg\n \"网站\", // xn--5tzm5g\n \"移动\", // xn--6frz82g\n \"我爱你\", // xn--6qq986b3xl\n \"москва\", // xn--80adxhks\n \"қаз\", // xn--80ao21a\n \"католик\", // xn--80aqecdr1a\n \"онлайн\", // xn--80asehdb\n \"сайт\", // xn--80aswg\n \"联通\", // xn--8y0a063a\n \"срб\", // xn--90a3ac\n \"бг\", // xn--90ae\n \"бел\", // xn--90ais\n \"קום\", // xn--9dbq2a\n \"时尚\", // xn--9et52u\n \"微博\", // xn--9krt00a\n \"淡马锡\", // xn--b4w605ferd\n \"ファッション\", // xn--bck1b9a5dre4c\n \"орг\", // xn--c1avg\n \"नेट\", // xn--c2br7g\n \"ストア\", // xn--cck2b3b\n \"삼성\", // xn--cg4bki\n \"சிங்கப்பூர்\", // xn--clchc0ea0b2g2a9gcd\n \"商标\", // xn--czr694b\n \"商店\", // xn--czrs0t\n \"商城\", // xn--czru2d\n \"дети\", // xn--d1acj3b\n \"мкд\", // xn--d1alf\n \"ею\", // xn--e1a4c\n \"ポイント\", // xn--eckvdtc9d\n \"新闻\", // xn--efvy88h\n \"工行\", // xn--estv75g\n \"家電\", // xn--fct429k\n \"كوم\", // xn--fhbei\n \"中文网\", // xn--fiq228c5hs\n \"中信\", // xn--fiq64b\n \"中国\", // xn--fiqs8s\n \"中國\", // xn--fiqz9s\n \"娱乐\", // xn--fjq720a\n \"谷歌\", // xn--flw351e\n \"భారత్\", // xn--fpcrj9c3d\n \"ලංකා\", // xn--fzc2c9e2c\n \"電訊盈科\", // xn--fzys8d69uvgm\n \"购物\", // xn--g2xx48c\n \"クラウド\", // xn--gckr3f0f\n \"ભારત\", // xn--gecrj9c\n \"通販\", // xn--gk3at1e\n \"भारतम्\", // xn--h2breg3eve\n \"भारत\", // xn--h2brj9c\n \"भारोत\", // xn--h2brj9c8c\n \"网店\", // xn--hxt814e\n \"संगठन\", // xn--i1b6b1a6a2e\n \"餐厅\", // xn--imr513n\n \"网络\", // xn--io0a7i\n \"ком\", // xn--j1aef\n \"укр\", // xn--j1amh\n \"香港\", // xn--j6w193g\n \"诺基亚\", // xn--jlq61u9w7b\n \"食品\", // xn--jvr189m\n \"飞利浦\", // xn--kcrx77d1x4a\n \"台湾\", // xn--kprw13d\n \"台灣\", // xn--kpry57d\n \"手表\", // xn--kpu716f\n \"手机\", // xn--kput3i\n \"мон\", // xn--l1acc\n \"الجزائر\", // xn--lgbbat1ad8j\n \"عمان\", // xn--mgb9awbf\n \"ارامكو\", // xn--mgba3a3ejt\n \"ایران\", // xn--mgba3a4f16a\n \"العليان\", // xn--mgba7c0bbn0a\n \"اتصالات\", // xn--mgbaakc7dvf\n \"امارات\", // xn--mgbaam7a8h\n \"بازار\", // xn--mgbab2bd\n \"پاکستان\", // xn--mgbai9azgqp6j\n \"الاردن\", // xn--mgbayh7gpa\n \"موبايلي\", // xn--mgbb9fbpob\n \"بارت\", // xn--mgbbh1a\n \"بھارت\", // xn--mgbbh1a71e\n \"المغرب\", // xn--mgbc0a9azcg\n \"ابوظبي\", // xn--mgbca7dzdo\n \"السعودية\", // xn--mgberp4a5d4ar\n \"ڀارت\", // xn--mgbgu82a\n \"كاثوليك\", // xn--mgbi4ecexp\n \"سودان\", // xn--mgbpl2fh\n \"همراه\", // xn--mgbt3dhd\n \"عراق\", // xn--mgbtx2b\n \"مليسيا\", // xn--mgbx4cd0ab\n \"澳門\", // xn--mix891f\n \"닷컴\", // xn--mk1bu44c\n \"政府\", // xn--mxtq1m\n \"شبكة\", // xn--ngbc5azd\n \"بيتك\", // xn--ngbe9e0a\n \"عرب\", // xn--ngbrx\n \"გე\", // xn--node\n \"机构\", // xn--nqv7f\n \"组织机构\", // xn--nqv7fs00ema\n \"健康\", // xn--nyqy26a\n \"ไทย\", // xn--o3cw4h\n \"سورية\", // xn--ogbpf8fl\n \"招聘\", // xn--otu796d\n \"рус\", // xn--p1acf\n \"рф\", // xn--p1ai\n \"珠宝\", // xn--pbt977c\n \"تونس\", // xn--pgbs0dh\n \"大拿\", // xn--pssy2u\n \"みんな\", // xn--q9jyb4c\n \"グーグル\", // xn--qcka1pmc\n \"ελ\", // xn--qxam\n \"世界\", // xn--rhqv96g\n \"書籍\", // xn--rovu88b\n \"ഭാരതം\", // xn--rvc1e0am3e\n \"ਭਾਰਤ\", // xn--s9brj9c\n \"网址\", // xn--ses554g\n \"닷넷\", // xn--t60b56a\n \"コム\", // xn--tckwe\n \"天主教\", // xn--tiq49xqyj\n \"游戏\", // xn--unup4y\n \"vermögensberater\", // xn--vermgensberater-ctb\n \"vermögensberatung\", // xn--vermgensberatung-pwb\n \"企业\", // xn--vhquv\n \"信息\", // xn--vuq861b\n \"嘉里大酒店\", // xn--w4r85el8fhu5dnra\n \"嘉里\", // xn--w4rs40l\n \"مصر\", // xn--wgbh1c\n \"قطر\", // xn--wgbl6a\n \"广东\", // xn--xhq521b\n \"இலங்கை\", // xn--xkc2al3hye2a\n \"இந்தியா\", // xn--xkc2dl3a5ee0h\n \"հայ\", // xn--y9a3aq\n \"新加坡\", // xn--yfro4i67o\n \"فلسطين\", // xn--ygbi2ammx\n \"政务\", // xn--zfr164b\n \"xperia\",\n \"xxx\",\n \"xyz\",\n \"yachts\",\n \"yahoo\",\n \"yamaxun\",\n \"yandex\",\n \"ye\",\n \"yodobashi\",\n \"yoga\",\n \"yokohama\",\n \"you\",\n \"youtube\",\n \"yt\",\n \"yun\",\n \"za\",\n \"zappos\",\n \"zara\",\n \"zero\",\n \"zip\",\n \"zippo\",\n \"zm\",\n \"zone\",\n \"zuerich\",\n \"zw\"\n];\n","module.exports = require(\"electron\");","var fs = require('./fs.js')\nvar constants = require('constants')\n\nvar origCwd = process.cwd\nvar cwd = null\n\nvar platform = process.env.GRACEFUL_FS_PLATFORM || process.platform\n\nprocess.cwd = function() {\n if (!cwd)\n cwd = origCwd.call(process)\n return cwd\n}\ntry {\n process.cwd()\n} catch (er) {}\n\nvar chdir = process.chdir\nprocess.chdir = function(d) {\n cwd = null\n chdir.call(process, d)\n}\n\nmodule.exports = patch\n\nfunction patch (fs) {\n // (re-)implement some things that are known busted or missing.\n\n // lchmod, broken prior to 0.6.2\n // back-port the fix here.\n if (constants.hasOwnProperty('O_SYMLINK') &&\n process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)) {\n patchLchmod(fs)\n }\n\n // lutimes implementation, or no-op\n if (!fs.lutimes) {\n patchLutimes(fs)\n }\n\n // https://github.com/isaacs/node-graceful-fs/issues/4\n // Chown should not fail on einval or eperm if non-root.\n // It should not fail on enosys ever, as this just indicates\n // that a fs doesn't support the intended operation.\n\n fs.chown = chownFix(fs.chown)\n fs.fchown = chownFix(fs.fchown)\n fs.lchown = chownFix(fs.lchown)\n\n fs.chmod = chmodFix(fs.chmod)\n fs.fchmod = chmodFix(fs.fchmod)\n fs.lchmod = chmodFix(fs.lchmod)\n\n fs.chownSync = chownFixSync(fs.chownSync)\n fs.fchownSync = chownFixSync(fs.fchownSync)\n fs.lchownSync = chownFixSync(fs.lchownSync)\n\n fs.chmodSync = chmodFixSync(fs.chmodSync)\n fs.fchmodSync = chmodFixSync(fs.fchmodSync)\n fs.lchmodSync = chmodFixSync(fs.lchmodSync)\n\n fs.stat = statFix(fs.stat)\n fs.fstat = statFix(fs.fstat)\n fs.lstat = statFix(fs.lstat)\n\n fs.statSync = statFixSync(fs.statSync)\n fs.fstatSync = statFixSync(fs.fstatSync)\n fs.lstatSync = statFixSync(fs.lstatSync)\n\n // if lchmod/lchown do not exist, then make them no-ops\n if (!fs.lchmod) {\n fs.lchmod = function (path, mode, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchmodSync = function () {}\n }\n if (!fs.lchown) {\n fs.lchown = function (path, uid, gid, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchownSync = function () {}\n }\n\n // on Windows, A/V software can lock the directory, causing this\n // to fail with an EACCES or EPERM if the directory contains newly\n // created files. Try again on failure, for up to 60 seconds.\n\n // Set the timeout this long because some Windows Anti-Virus, such as Parity\n // bit9, may lock files for up to a minute, causing npm package install\n // failures. Also, take care to yield the scheduler. Windows scheduling gives\n // CPU to a busy looping process, which can cause the program causing the lock\n // contention to be starved of CPU by node, so the contention doesn't resolve.\n if (platform === \"win32\") {\n fs.rename = (function (fs$rename) { return function (from, to, cb) {\n var start = Date.now()\n var backoff = 0;\n fs$rename(from, to, function CB (er) {\n if (er\n && (er.code === \"EACCES\" || er.code === \"EPERM\")\n && Date.now() - start < 60000) {\n setTimeout(function() {\n fs.stat(to, function (stater, st) {\n if (stater && stater.code === \"ENOENT\")\n fs$rename(from, to, CB);\n else\n cb(er)\n })\n }, backoff)\n if (backoff < 100)\n backoff += 10;\n return;\n }\n if (cb) cb(er)\n })\n }})(fs.rename)\n }\n\n // if read() returns EAGAIN, then just try it again.\n fs.read = (function (fs$read) { return function (fd, buffer, offset, length, position, callback_) {\n var callback\n if (callback_ && typeof callback_ === 'function') {\n var eagCounter = 0\n callback = function (er, _, __) {\n if (er && er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n callback_.apply(this, arguments)\n }\n }\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }})(fs.read)\n\n fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) {\n var eagCounter = 0\n while (true) {\n try {\n return fs$readSync.call(fs, fd, buffer, offset, length, position)\n } catch (er) {\n if (er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n continue\n }\n throw er\n }\n }\n }})(fs.readSync)\n}\n\nfunction patchLchmod (fs) {\n fs.lchmod = function (path, mode, callback) {\n fs.open( path\n , constants.O_WRONLY | constants.O_SYMLINK\n , mode\n , function (err, fd) {\n if (err) {\n if (callback) callback(err)\n return\n }\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n fs.fchmod(fd, mode, function (err) {\n fs.close(fd, function(err2) {\n if (callback) callback(err || err2)\n })\n })\n })\n }\n\n fs.lchmodSync = function (path, mode) {\n var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)\n\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n var threw = true\n var ret\n try {\n ret = fs.fchmodSync(fd, mode)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n}\n\nfunction patchLutimes (fs) {\n if (constants.hasOwnProperty(\"O_SYMLINK\")) {\n fs.lutimes = function (path, at, mt, cb) {\n fs.open(path, constants.O_SYMLINK, function (er, fd) {\n if (er) {\n if (cb) cb(er)\n return\n }\n fs.futimes(fd, at, mt, function (er) {\n fs.close(fd, function (er2) {\n if (cb) cb(er || er2)\n })\n })\n })\n }\n\n fs.lutimesSync = function (path, at, mt) {\n var fd = fs.openSync(path, constants.O_SYMLINK)\n var ret\n var threw = true\n try {\n ret = fs.futimesSync(fd, at, mt)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n\n } else {\n fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }\n fs.lutimesSync = function () {}\n }\n}\n\nfunction chmodFix (orig) {\n if (!orig) return orig\n return function (target, mode, cb) {\n return orig.call(fs, target, mode, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n}\n\nfunction chmodFixSync (orig) {\n if (!orig) return orig\n return function (target, mode) {\n try {\n return orig.call(fs, target, mode)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n}\n\n\nfunction chownFix (orig) {\n if (!orig) return orig\n return function (target, uid, gid, cb) {\n return orig.call(fs, target, uid, gid, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n}\n\nfunction chownFixSync (orig) {\n if (!orig) return orig\n return function (target, uid, gid) {\n try {\n return orig.call(fs, target, uid, gid)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n}\n\n\nfunction statFix (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, cb) {\n return orig.call(fs, target, function (er, stats) {\n if (!stats) return cb.apply(this, arguments)\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n if (cb) cb.apply(this, arguments)\n })\n }\n}\n\nfunction statFixSync (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target) {\n var stats = orig.call(fs, target)\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n return stats;\n }\n}\n\n// ENOSYS means that the fs doesn't support the op. Just ignore\n// that, because it doesn't matter.\n//\n// if there's no getuid, or if getuid() is something other\n// than 0, and the error is EINVAL or EPERM, then just ignore\n// it.\n//\n// This specific case is a silent failure in cp, install, tar,\n// and most other unix tools that manage permissions.\n//\n// When running as root, or if other types of errors are\n// encountered, then it's strict.\nfunction chownErOk (er) {\n if (!er)\n return true\n\n if (er.code === \"ENOSYS\")\n return true\n\n var nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (er.code === \"EINVAL\" || er.code === \"EPERM\")\n return true\n }\n\n return false\n}\n","module.exports = require(\"constants\");","var Stream = require('stream').Stream\n\nmodule.exports = legacy\n\nfunction legacy (fs) {\n return {\n ReadStream: ReadStream,\n WriteStream: WriteStream\n }\n\n function ReadStream (path, options) {\n if (!(this instanceof ReadStream)) return new ReadStream(path, options);\n\n Stream.call(this);\n\n var self = this;\n\n this.path = path;\n this.fd = null;\n this.readable = true;\n this.paused = false;\n\n this.flags = 'r';\n this.mode = 438; /*=0666*/\n this.bufferSize = 64 * 1024;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.encoding) this.setEncoding(this.encoding);\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.end === undefined) {\n this.end = Infinity;\n } else if ('number' !== typeof this.end) {\n throw TypeError('end must be a Number');\n }\n\n if (this.start > this.end) {\n throw new Error('start must be <= end');\n }\n\n this.pos = this.start;\n }\n\n if (this.fd !== null) {\n process.nextTick(function() {\n self._read();\n });\n return;\n }\n\n fs.open(this.path, this.flags, this.mode, function (err, fd) {\n if (err) {\n self.emit('error', err);\n self.readable = false;\n return;\n }\n\n self.fd = fd;\n self.emit('open', fd);\n self._read();\n })\n }\n\n function WriteStream (path, options) {\n if (!(this instanceof WriteStream)) return new WriteStream(path, options);\n\n Stream.call(this);\n\n this.path = path;\n this.fd = null;\n this.writable = true;\n\n this.flags = 'w';\n this.encoding = 'binary';\n this.mode = 438; /*=0666*/\n this.bytesWritten = 0;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.start < 0) {\n throw new Error('start must be >= zero');\n }\n\n this.pos = this.start;\n }\n\n this.busy = false;\n this._queue = [];\n\n if (this.fd === null) {\n this._open = fs.open;\n this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);\n this.flush();\n }\n }\n}\n","module.exports = require(\"stream\");","module.exports = require(\"util\");","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdirpSync = require('../mkdirs').mkdirsSync\nconst utimesSync = require('../util/utimes.js').utimesMillisSync\n\nconst notExist = Symbol('notExist')\n\nfunction copySync (src, dest, opts) {\n if (typeof opts === 'function') {\n opts = {filter: opts}\n }\n\n opts = opts || {}\n opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now\n opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber\n\n // Warn about using preserveTimestamps on 32-bit node\n if (opts.preserveTimestamps && process.arch === 'ia32') {\n console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\\n\n see https://github.com/jprichardson/node-fs-extra/issues/269`)\n }\n\n const destStat = checkPaths(src, dest)\n\n if (opts.filter && !opts.filter(src, dest)) return\n\n const destParent = path.dirname(dest)\n if (!fs.existsSync(destParent)) mkdirpSync(destParent)\n return startCopy(destStat, src, dest, opts)\n}\n\nfunction startCopy (destStat, src, dest, opts) {\n if (opts.filter && !opts.filter(src, dest)) return\n return getStats(destStat, src, dest, opts)\n}\n\nfunction getStats (destStat, src, dest, opts) {\n const statSync = opts.dereference ? fs.statSync : fs.lstatSync\n const srcStat = statSync(src)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)\n else if (srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts)\n else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)\n}\n\nfunction onFile (srcStat, destStat, src, dest, opts) {\n if (destStat === notExist) return copyFile(srcStat, src, dest, opts)\n return mayCopyFile(srcStat, src, dest, opts)\n}\n\nfunction mayCopyFile (srcStat, src, dest, opts) {\n if (opts.overwrite) {\n fs.unlinkSync(dest)\n return copyFile(srcStat, src, dest, opts)\n } else if (opts.errorOnExist) {\n throw new Error(`'${dest}' already exists`)\n }\n}\n\nfunction copyFile (srcStat, src, dest, opts) {\n if (typeof fs.copyFileSync === 'function') {\n fs.copyFileSync(src, dest)\n fs.chmodSync(dest, srcStat.mode)\n if (opts.preserveTimestamps) {\n return utimesSync(dest, srcStat.atime, srcStat.mtime)\n }\n return\n }\n return copyFileFallback(srcStat, src, dest, opts)\n}\n\nfunction copyFileFallback (srcStat, src, dest, opts) {\n const BUF_LENGTH = 64 * 1024\n const _buff = require('../util/buffer')(BUF_LENGTH)\n\n const fdr = fs.openSync(src, 'r')\n const fdw = fs.openSync(dest, 'w', srcStat.mode)\n let pos = 0\n\n while (pos < srcStat.size) {\n const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)\n fs.writeSync(fdw, _buff, 0, bytesRead)\n pos += bytesRead\n }\n\n if (opts.preserveTimestamps) fs.futimesSync(fdw, srcStat.atime, srcStat.mtime)\n\n fs.closeSync(fdr)\n fs.closeSync(fdw)\n}\n\nfunction onDir (srcStat, destStat, src, dest, opts) {\n if (destStat === notExist) return mkDirAndCopy(srcStat, src, dest, opts)\n if (destStat && !destStat.isDirectory()) {\n throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)\n }\n return copyDir(src, dest, opts)\n}\n\nfunction mkDirAndCopy (srcStat, src, dest, opts) {\n fs.mkdirSync(dest)\n copyDir(src, dest, opts)\n return fs.chmodSync(dest, srcStat.mode)\n}\n\nfunction copyDir (src, dest, opts) {\n fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts))\n}\n\nfunction copyDirItem (item, src, dest, opts) {\n const srcItem = path.join(src, item)\n const destItem = path.join(dest, item)\n const destStat = checkPaths(srcItem, destItem)\n return startCopy(destStat, srcItem, destItem, opts)\n}\n\nfunction onLink (destStat, src, dest, opts) {\n let resolvedSrc = fs.readlinkSync(src)\n\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n\n if (destStat === notExist) {\n return fs.symlinkSync(resolvedSrc, dest)\n } else {\n let resolvedDest\n try {\n resolvedDest = fs.readlinkSync(dest)\n } catch (err) {\n // dest exists and is a regular file or directory,\n // Windows may throw UNKNOWN error. If dest already exists,\n // fs throws error anyway, so no need to guard against it here.\n if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest)\n throw err\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n if (isSrcSubdir(resolvedSrc, resolvedDest)) {\n throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)\n }\n\n // prevent copy if src is a subdir of dest since unlinking\n // dest in this case would result in removing src contents\n // and therefore a broken symlink would be created.\n if (fs.statSync(dest).isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {\n throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)\n }\n return copyLink(resolvedSrc, dest)\n }\n}\n\nfunction copyLink (resolvedSrc, dest) {\n fs.unlinkSync(dest)\n return fs.symlinkSync(resolvedSrc, dest)\n}\n\n// return true if dest is a subdir of src, otherwise false.\nfunction isSrcSubdir (src, dest) {\n const srcArray = path.resolve(src).split(path.sep)\n const destArray = path.resolve(dest).split(path.sep)\n return srcArray.reduce((acc, current, i) => acc && destArray[i] === current, true)\n}\n\nfunction checkStats (src, dest) {\n const srcStat = fs.statSync(src)\n let destStat\n try {\n destStat = fs.statSync(dest)\n } catch (err) {\n if (err.code === 'ENOENT') return {srcStat, destStat: notExist}\n throw err\n }\n return {srcStat, destStat}\n}\n\nfunction checkPaths (src, dest) {\n const {srcStat, destStat} = checkStats(src, dest)\n if (destStat.ino && destStat.ino === srcStat.ino) {\n throw new Error('Source and destination must not be the same.')\n }\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n throw new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`)\n }\n return destStat\n}\n\nmodule.exports = copySync\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst invalidWin32Path = require('./win32').invalidWin32Path\n\nconst o777 = parseInt('0777', 8)\n\nfunction mkdirs (p, opts, callback, made) {\n if (typeof opts === 'function') {\n callback = opts\n opts = {}\n } else if (!opts || typeof opts !== 'object') {\n opts = { mode: opts }\n }\n\n if (process.platform === 'win32' && invalidWin32Path(p)) {\n const errInval = new Error(p + ' contains invalid WIN32 path characters.')\n errInval.code = 'EINVAL'\n return callback(errInval)\n }\n\n let mode = opts.mode\n const xfs = opts.fs || fs\n\n if (mode === undefined) {\n mode = o777 & (~process.umask())\n }\n if (!made) made = null\n\n callback = callback || function () {}\n p = path.resolve(p)\n\n xfs.mkdir(p, mode, er => {\n if (!er) {\n made = made || p\n return callback(null, made)\n }\n switch (er.code) {\n case 'ENOENT':\n if (path.dirname(p) === p) return callback(er)\n mkdirs(path.dirname(p), opts, (er, made) => {\n if (er) callback(er, made)\n else mkdirs(p, opts, callback, made)\n })\n break\n\n // In the case of any other error, just see if there's a dir\n // there already. If so, then hooray! If not, then something\n // is borked.\n default:\n xfs.stat(p, (er2, stat) => {\n // if the stat fails, then that's super weird.\n // let the original error be the failure reason.\n if (er2 || !stat.isDirectory()) callback(er, made)\n else callback(null, made)\n })\n break\n }\n })\n}\n\nmodule.exports = mkdirs\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst invalidWin32Path = require('./win32').invalidWin32Path\n\nconst o777 = parseInt('0777', 8)\n\nfunction mkdirsSync (p, opts, made) {\n if (!opts || typeof opts !== 'object') {\n opts = { mode: opts }\n }\n\n let mode = opts.mode\n const xfs = opts.fs || fs\n\n if (process.platform === 'win32' && invalidWin32Path(p)) {\n const errInval = new Error(p + ' contains invalid WIN32 path characters.')\n errInval.code = 'EINVAL'\n throw errInval\n }\n\n if (mode === undefined) {\n mode = o777 & (~process.umask())\n }\n if (!made) made = null\n\n p = path.resolve(p)\n\n try {\n xfs.mkdirSync(p, mode)\n made = made || p\n } catch (err0) {\n if (err0.code === 'ENOENT') {\n if (path.dirname(p) === p) throw err0\n made = mkdirsSync(path.dirname(p), opts, made)\n mkdirsSync(p, opts, made)\n } else {\n // In the case of any other error, just see if there's a dir there\n // already. If so, then hooray! If not, then something is borked.\n let stat\n try {\n stat = xfs.statSync(p)\n } catch (err1) {\n throw err0\n }\n if (!stat.isDirectory()) throw err0\n }\n }\n\n return made\n}\n\nmodule.exports = mkdirsSync\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdirp = require('../mkdirs').mkdirs\nconst pathExists = require('../path-exists').pathExists\nconst utimes = require('../util/utimes').utimesMillis\n\nconst notExist = Symbol('notExist')\n\nfunction copy (src, dest, opts, cb) {\n if (typeof opts === 'function' && !cb) {\n cb = opts\n opts = {}\n } else if (typeof opts === 'function') {\n opts = {filter: opts}\n }\n\n cb = cb || function () {}\n opts = opts || {}\n\n opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now\n opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber\n\n // Warn about using preserveTimestamps on 32-bit node\n if (opts.preserveTimestamps && process.arch === 'ia32') {\n console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\\n\n see https://github.com/jprichardson/node-fs-extra/issues/269`)\n }\n\n checkPaths(src, dest, (err, destStat) => {\n if (err) return cb(err)\n if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb)\n return checkParentDir(destStat, src, dest, opts, cb)\n })\n}\n\nfunction checkParentDir (destStat, src, dest, opts, cb) {\n const destParent = path.dirname(dest)\n pathExists(destParent, (err, dirExists) => {\n if (err) return cb(err)\n if (dirExists) return startCopy(destStat, src, dest, opts, cb)\n mkdirp(destParent, err => {\n if (err) return cb(err)\n return startCopy(destStat, src, dest, opts, cb)\n })\n })\n}\n\nfunction handleFilter (onInclude, destStat, src, dest, opts, cb) {\n Promise.resolve(opts.filter(src, dest)).then(include => {\n if (include) {\n if (destStat) return onInclude(destStat, src, dest, opts, cb)\n return onInclude(src, dest, opts, cb)\n }\n return cb()\n }, error => cb(error))\n}\n\nfunction startCopy (destStat, src, dest, opts, cb) {\n if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb)\n return getStats(destStat, src, dest, opts, cb)\n}\n\nfunction getStats (destStat, src, dest, opts, cb) {\n const stat = opts.dereference ? fs.stat : fs.lstat\n stat(src, (err, srcStat) => {\n if (err) return cb(err)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb)\n else if (srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb)\n else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb)\n })\n}\n\nfunction onFile (srcStat, destStat, src, dest, opts, cb) {\n if (destStat === notExist) return copyFile(srcStat, src, dest, opts, cb)\n return mayCopyFile(srcStat, src, dest, opts, cb)\n}\n\nfunction mayCopyFile (srcStat, src, dest, opts, cb) {\n if (opts.overwrite) {\n fs.unlink(dest, err => {\n if (err) return cb(err)\n return copyFile(srcStat, src, dest, opts, cb)\n })\n } else if (opts.errorOnExist) {\n return cb(new Error(`'${dest}' already exists`))\n } else return cb()\n}\n\nfunction copyFile (srcStat, src, dest, opts, cb) {\n if (typeof fs.copyFile === 'function') {\n return fs.copyFile(src, dest, err => {\n if (err) return cb(err)\n return setDestModeAndTimestamps(srcStat, dest, opts, cb)\n })\n }\n return copyFileFallback(srcStat, src, dest, opts, cb)\n}\n\nfunction copyFileFallback (srcStat, src, dest, opts, cb) {\n const rs = fs.createReadStream(src)\n rs.on('error', err => cb(err)).once('open', () => {\n const ws = fs.createWriteStream(dest, { mode: srcStat.mode })\n ws.on('error', err => cb(err))\n .on('open', () => rs.pipe(ws))\n .once('close', () => setDestModeAndTimestamps(srcStat, dest, opts, cb))\n })\n}\n\nfunction setDestModeAndTimestamps (srcStat, dest, opts, cb) {\n fs.chmod(dest, srcStat.mode, err => {\n if (err) return cb(err)\n if (opts.preserveTimestamps) {\n return utimes(dest, srcStat.atime, srcStat.mtime, cb)\n }\n return cb()\n })\n}\n\nfunction onDir (srcStat, destStat, src, dest, opts, cb) {\n if (destStat === notExist) return mkDirAndCopy(srcStat, src, dest, opts, cb)\n if (destStat && !destStat.isDirectory()) {\n return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))\n }\n return copyDir(src, dest, opts, cb)\n}\n\nfunction mkDirAndCopy (srcStat, src, dest, opts, cb) {\n fs.mkdir(dest, err => {\n if (err) return cb(err)\n copyDir(src, dest, opts, err => {\n if (err) return cb(err)\n return fs.chmod(dest, srcStat.mode, cb)\n })\n })\n}\n\nfunction copyDir (src, dest, opts, cb) {\n fs.readdir(src, (err, items) => {\n if (err) return cb(err)\n return copyDirItems(items, src, dest, opts, cb)\n })\n}\n\nfunction copyDirItems (items, src, dest, opts, cb) {\n const item = items.pop()\n if (!item) return cb()\n return copyDirItem(items, item, src, dest, opts, cb)\n}\n\nfunction copyDirItem (items, item, src, dest, opts, cb) {\n const srcItem = path.join(src, item)\n const destItem = path.join(dest, item)\n checkPaths(srcItem, destItem, (err, destStat) => {\n if (err) return cb(err)\n startCopy(destStat, srcItem, destItem, opts, err => {\n if (err) return cb(err)\n return copyDirItems(items, src, dest, opts, cb)\n })\n })\n}\n\nfunction onLink (destStat, src, dest, opts, cb) {\n fs.readlink(src, (err, resolvedSrc) => {\n if (err) return cb(err)\n\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n\n if (destStat === notExist) {\n return fs.symlink(resolvedSrc, dest, cb)\n } else {\n fs.readlink(dest, (err, resolvedDest) => {\n if (err) {\n // dest exists and is a regular file or directory,\n // Windows may throw UNKNOWN error. If dest already exists,\n // fs throws error anyway, so no need to guard against it here.\n if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest, cb)\n return cb(err)\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n if (isSrcSubdir(resolvedSrc, resolvedDest)) {\n return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`))\n }\n\n // do not copy if src is a subdir of dest since unlinking\n // dest in this case would result in removing src contents\n // and therefore a broken symlink would be created.\n if (destStat.isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {\n return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))\n }\n return copyLink(resolvedSrc, dest, cb)\n })\n }\n })\n}\n\nfunction copyLink (resolvedSrc, dest, cb) {\n fs.unlink(dest, err => {\n if (err) return cb(err)\n return fs.symlink(resolvedSrc, dest, cb)\n })\n}\n\n// return true if dest is a subdir of src, otherwise false.\nfunction isSrcSubdir (src, dest) {\n const srcArray = path.resolve(src).split(path.sep)\n const destArray = path.resolve(dest).split(path.sep)\n return srcArray.reduce((acc, current, i) => acc && destArray[i] === current, true)\n}\n\nfunction checkStats (src, dest, cb) {\n fs.stat(src, (err, srcStat) => {\n if (err) return cb(err)\n fs.stat(dest, (err, destStat) => {\n if (err) {\n if (err.code === 'ENOENT') return cb(null, {srcStat, destStat: notExist})\n return cb(err)\n }\n return cb(null, {srcStat, destStat})\n })\n })\n}\n\nfunction checkPaths (src, dest, cb) {\n checkStats(src, dest, (err, stats) => {\n if (err) return cb(err)\n const {srcStat, destStat} = stats\n if (destStat.ino && destStat.ino === srcStat.ino) {\n return cb(new Error('Source and destination must not be the same.'))\n }\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n return cb(new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`))\n }\n return cb(null, destStat)\n })\n}\n\nmodule.exports = copy\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst fs = require('fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst remove = require('../remove')\n\nconst emptyDir = u(function emptyDir (dir, callback) {\n callback = callback || function () {}\n fs.readdir(dir, (err, items) => {\n if (err) return mkdir.mkdirs(dir, callback)\n\n items = items.map(item => path.join(dir, item))\n\n deleteItem()\n\n function deleteItem () {\n const item = items.pop()\n if (!item) return callback()\n remove.remove(item, err => {\n if (err) return callback(err)\n deleteItem()\n })\n }\n })\n})\n\nfunction emptyDirSync (dir) {\n let items\n try {\n items = fs.readdirSync(dir)\n } catch (err) {\n return mkdir.mkdirsSync(dir)\n }\n\n items.forEach(item => {\n item = path.join(dir, item)\n remove.removeSync(item)\n })\n}\n\nmodule.exports = {\n emptyDirSync,\n emptydirSync: emptyDirSync,\n emptyDir,\n emptydir: emptyDir\n}\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst assert = require('assert')\n\nconst isWindows = (process.platform === 'win32')\n\nfunction defaults (options) {\n const methods = [\n 'unlink',\n 'chmod',\n 'stat',\n 'lstat',\n 'rmdir',\n 'readdir'\n ]\n methods.forEach(m => {\n options[m] = options[m] || fs[m]\n m = m + 'Sync'\n options[m] = options[m] || fs[m]\n })\n\n options.maxBusyTries = options.maxBusyTries || 3\n}\n\nfunction rimraf (p, options, cb) {\n let busyTries = 0\n\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n assert(p, 'rimraf: missing path')\n assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')\n assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required')\n assert(options, 'rimraf: invalid options argument provided')\n assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')\n\n defaults(options)\n\n rimraf_(p, options, function CB (er) {\n if (er) {\n if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') &&\n busyTries < options.maxBusyTries) {\n busyTries++\n const time = busyTries * 100\n // try again, with the same exact callback as this one.\n return setTimeout(() => rimraf_(p, options, CB), time)\n }\n\n // already gone\n if (er.code === 'ENOENT') er = null\n }\n\n cb(er)\n })\n}\n\n// Two possible strategies.\n// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR\n// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR\n//\n// Both result in an extra syscall when you guess wrong. However, there\n// are likely far more normal files in the world than directories. This\n// is based on the assumption that a the average number of files per\n// directory is >= 1.\n//\n// If anyone ever complains about this, then I guess the strategy could\n// be made configurable somehow. But until then, YAGNI.\nfunction rimraf_ (p, options, cb) {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n // sunos lets the root user unlink directories, which is... weird.\n // so we have to lstat here and make sure it's not a dir.\n options.lstat(p, (er, st) => {\n if (er && er.code === 'ENOENT') {\n return cb(null)\n }\n\n // Windows can EPERM on stat. Life is suffering.\n if (er && er.code === 'EPERM' && isWindows) {\n return fixWinEPERM(p, options, er, cb)\n }\n\n if (st && st.isDirectory()) {\n return rmdir(p, options, er, cb)\n }\n\n options.unlink(p, er => {\n if (er) {\n if (er.code === 'ENOENT') {\n return cb(null)\n }\n if (er.code === 'EPERM') {\n return (isWindows)\n ? fixWinEPERM(p, options, er, cb)\n : rmdir(p, options, er, cb)\n }\n if (er.code === 'EISDIR') {\n return rmdir(p, options, er, cb)\n }\n }\n return cb(er)\n })\n })\n}\n\nfunction fixWinEPERM (p, options, er, cb) {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n if (er) {\n assert(er instanceof Error)\n }\n\n options.chmod(p, 0o666, er2 => {\n if (er2) {\n cb(er2.code === 'ENOENT' ? null : er)\n } else {\n options.stat(p, (er3, stats) => {\n if (er3) {\n cb(er3.code === 'ENOENT' ? null : er)\n } else if (stats.isDirectory()) {\n rmdir(p, options, er, cb)\n } else {\n options.unlink(p, cb)\n }\n })\n }\n })\n}\n\nfunction fixWinEPERMSync (p, options, er) {\n let stats\n\n assert(p)\n assert(options)\n if (er) {\n assert(er instanceof Error)\n }\n\n try {\n options.chmodSync(p, 0o666)\n } catch (er2) {\n if (er2.code === 'ENOENT') {\n return\n } else {\n throw er\n }\n }\n\n try {\n stats = options.statSync(p)\n } catch (er3) {\n if (er3.code === 'ENOENT') {\n return\n } else {\n throw er\n }\n }\n\n if (stats.isDirectory()) {\n rmdirSync(p, options, er)\n } else {\n options.unlinkSync(p)\n }\n}\n\nfunction rmdir (p, options, originalEr, cb) {\n assert(p)\n assert(options)\n if (originalEr) {\n assert(originalEr instanceof Error)\n }\n assert(typeof cb === 'function')\n\n // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)\n // if we guessed wrong, and it's not a directory, then\n // raise the original error.\n options.rmdir(p, er => {\n if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) {\n rmkids(p, options, cb)\n } else if (er && er.code === 'ENOTDIR') {\n cb(originalEr)\n } else {\n cb(er)\n }\n })\n}\n\nfunction rmkids (p, options, cb) {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n options.readdir(p, (er, files) => {\n if (er) return cb(er)\n\n let n = files.length\n let errState\n\n if (n === 0) return options.rmdir(p, cb)\n\n files.forEach(f => {\n rimraf(path.join(p, f), options, er => {\n if (errState) {\n return\n }\n if (er) return cb(errState = er)\n if (--n === 0) {\n options.rmdir(p, cb)\n }\n })\n })\n })\n}\n\n// this looks simpler, and is strictly *faster*, but will\n// tie up the JavaScript thread and fail on excessively\n// deep directory trees.\nfunction rimrafSync (p, options) {\n let st\n\n options = options || {}\n defaults(options)\n\n assert(p, 'rimraf: missing path')\n assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')\n assert(options, 'rimraf: missing options')\n assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')\n\n try {\n st = options.lstatSync(p)\n } catch (er) {\n if (er.code === 'ENOENT') {\n return\n }\n\n // Windows can EPERM on stat. Life is suffering.\n if (er.code === 'EPERM' && isWindows) {\n fixWinEPERMSync(p, options, er)\n }\n }\n\n try {\n // sunos lets the root user unlink directories, which is... weird.\n if (st && st.isDirectory()) {\n rmdirSync(p, options, null)\n } else {\n options.unlinkSync(p)\n }\n } catch (er) {\n if (er.code === 'ENOENT') {\n return\n } else if (er.code === 'EPERM') {\n return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)\n } else if (er.code !== 'EISDIR') {\n throw er\n }\n rmdirSync(p, options, er)\n }\n}\n\nfunction rmdirSync (p, options, originalEr) {\n assert(p)\n assert(options)\n if (originalEr) {\n assert(originalEr instanceof Error)\n }\n\n try {\n options.rmdirSync(p)\n } catch (er) {\n if (er.code === 'ENOTDIR') {\n throw originalEr\n } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') {\n rmkidsSync(p, options)\n } else if (er.code !== 'ENOENT') {\n throw er\n }\n }\n}\n\nfunction rmkidsSync (p, options) {\n assert(p)\n assert(options)\n options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))\n\n // We only end up here once we got ENOTEMPTY at least once, and\n // at this point, we are guaranteed to have removed all the kids.\n // So, we know that it won't be ENOENT or ENOTDIR or anything else.\n // try really hard to delete stuff on windows, because it has a\n // PROFOUNDLY annoying habit of not closing handles promptly when\n // files are deleted, resulting in spurious ENOTEMPTY errors.\n const retries = isWindows ? 100 : 1\n let i = 0\n do {\n let threw = true\n try {\n const ret = options.rmdirSync(p, options)\n threw = false\n return ret\n } finally {\n if (++i < retries && threw) continue // eslint-disable-line\n }\n } while (true)\n}\n\nmodule.exports = rimraf\nrimraf.sync = rimrafSync\n","'use strict'\n\nconst file = require('./file')\nconst link = require('./link')\nconst symlink = require('./symlink')\n\nmodule.exports = {\n // file\n createFile: file.createFile,\n createFileSync: file.createFileSync,\n ensureFile: file.createFile,\n ensureFileSync: file.createFileSync,\n // link\n createLink: link.createLink,\n createLinkSync: link.createLinkSync,\n ensureLink: link.createLink,\n ensureLinkSync: link.createLinkSync,\n // symlink\n createSymlink: symlink.createSymlink,\n createSymlinkSync: symlink.createSymlinkSync,\n ensureSymlink: symlink.createSymlink,\n ensureSymlinkSync: symlink.createSymlinkSync\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nfunction createFile (file, callback) {\n function makeFile () {\n fs.writeFile(file, '', err => {\n if (err) return callback(err)\n callback()\n })\n }\n\n fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err\n if (!err && stats.isFile()) return callback()\n const dir = path.dirname(file)\n pathExists(dir, (err, dirExists) => {\n if (err) return callback(err)\n if (dirExists) return makeFile()\n mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n makeFile()\n })\n })\n })\n}\n\nfunction createFileSync (file) {\n let stats\n try {\n stats = fs.statSync(file)\n } catch (e) {}\n if (stats && stats.isFile()) return\n\n const dir = path.dirname(file)\n if (!fs.existsSync(dir)) {\n mkdir.mkdirsSync(dir)\n }\n\n fs.writeFileSync(file, '')\n}\n\nmodule.exports = {\n createFile: u(createFile),\n createFileSync\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nfunction createLink (srcpath, dstpath, callback) {\n function makeLink (srcpath, dstpath) {\n fs.link(srcpath, dstpath, err => {\n if (err) return callback(err)\n callback(null)\n })\n }\n\n pathExists(dstpath, (err, destinationExists) => {\n if (err) return callback(err)\n if (destinationExists) return callback(null)\n fs.lstat(srcpath, (err) => {\n if (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n return callback(err)\n }\n\n const dir = path.dirname(dstpath)\n pathExists(dir, (err, dirExists) => {\n if (err) return callback(err)\n if (dirExists) return makeLink(srcpath, dstpath)\n mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n makeLink(srcpath, dstpath)\n })\n })\n })\n })\n}\n\nfunction createLinkSync (srcpath, dstpath) {\n const destinationExists = fs.existsSync(dstpath)\n if (destinationExists) return undefined\n\n try {\n fs.lstatSync(srcpath)\n } catch (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n throw err\n }\n\n const dir = path.dirname(dstpath)\n const dirExists = fs.existsSync(dir)\n if (dirExists) return fs.linkSync(srcpath, dstpath)\n mkdir.mkdirsSync(dir)\n\n return fs.linkSync(srcpath, dstpath)\n}\n\nmodule.exports = {\n createLink: u(createLink),\n createLinkSync\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst _mkdirs = require('../mkdirs')\nconst mkdirs = _mkdirs.mkdirs\nconst mkdirsSync = _mkdirs.mkdirsSync\n\nconst _symlinkPaths = require('./symlink-paths')\nconst symlinkPaths = _symlinkPaths.symlinkPaths\nconst symlinkPathsSync = _symlinkPaths.symlinkPathsSync\n\nconst _symlinkType = require('./symlink-type')\nconst symlinkType = _symlinkType.symlinkType\nconst symlinkTypeSync = _symlinkType.symlinkTypeSync\n\nconst pathExists = require('../path-exists').pathExists\n\nfunction createSymlink (srcpath, dstpath, type, callback) {\n callback = (typeof type === 'function') ? type : callback\n type = (typeof type === 'function') ? false : type\n\n pathExists(dstpath, (err, destinationExists) => {\n if (err) return callback(err)\n if (destinationExists) return callback(null)\n symlinkPaths(srcpath, dstpath, (err, relative) => {\n if (err) return callback(err)\n srcpath = relative.toDst\n symlinkType(relative.toCwd, type, (err, type) => {\n if (err) return callback(err)\n const dir = path.dirname(dstpath)\n pathExists(dir, (err, dirExists) => {\n if (err) return callback(err)\n if (dirExists) return fs.symlink(srcpath, dstpath, type, callback)\n mkdirs(dir, err => {\n if (err) return callback(err)\n fs.symlink(srcpath, dstpath, type, callback)\n })\n })\n })\n })\n })\n}\n\nfunction createSymlinkSync (srcpath, dstpath, type) {\n const destinationExists = fs.existsSync(dstpath)\n if (destinationExists) return undefined\n\n const relative = symlinkPathsSync(srcpath, dstpath)\n srcpath = relative.toDst\n type = symlinkTypeSync(relative.toCwd, type)\n const dir = path.dirname(dstpath)\n const exists = fs.existsSync(dir)\n if (exists) return fs.symlinkSync(srcpath, dstpath, type)\n mkdirsSync(dir)\n return fs.symlinkSync(srcpath, dstpath, type)\n}\n\nmodule.exports = {\n createSymlink: u(createSymlink),\n createSymlinkSync\n}\n","'use strict'\n\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst pathExists = require('../path-exists').pathExists\n\n/**\n * Function that returns two types of paths, one relative to symlink, and one\n * relative to the current working directory. Checks if path is absolute or\n * relative. If the path is relative, this function checks if the path is\n * relative to symlink or relative to current working directory. This is an\n * initiative to find a smarter `srcpath` to supply when building symlinks.\n * This allows you to determine which path to use out of one of three possible\n * types of source paths. The first is an absolute path. This is detected by\n * `path.isAbsolute()`. When an absolute path is provided, it is checked to\n * see if it exists. If it does it's used, if not an error is returned\n * (callback)/ thrown (sync). The other two options for `srcpath` are a\n * relative url. By default Node's `fs.symlink` works by creating a symlink\n * using `dstpath` and expects the `srcpath` to be relative to the newly\n * created symlink. If you provide a `srcpath` that does not exist on the file\n * system it results in a broken symlink. To minimize this, the function\n * checks to see if the 'relative to symlink' source file exists, and if it\n * does it will use it. If it does not, it checks if there's a file that\n * exists that is relative to the current working directory, if does its used.\n * This preserves the expectations of the original fs.symlink spec and adds\n * the ability to pass in `relative to current working direcotry` paths.\n */\n\nfunction symlinkPaths (srcpath, dstpath, callback) {\n if (path.isAbsolute(srcpath)) {\n return fs.lstat(srcpath, (err) => {\n if (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n return callback(err)\n }\n return callback(null, {\n 'toCwd': srcpath,\n 'toDst': srcpath\n })\n })\n } else {\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n return pathExists(relativeToDst, (err, exists) => {\n if (err) return callback(err)\n if (exists) {\n return callback(null, {\n 'toCwd': relativeToDst,\n 'toDst': srcpath\n })\n } else {\n return fs.lstat(srcpath, (err) => {\n if (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n return callback(err)\n }\n return callback(null, {\n 'toCwd': srcpath,\n 'toDst': path.relative(dstdir, srcpath)\n })\n })\n }\n })\n }\n}\n\nfunction symlinkPathsSync (srcpath, dstpath) {\n let exists\n if (path.isAbsolute(srcpath)) {\n exists = fs.existsSync(srcpath)\n if (!exists) throw new Error('absolute srcpath does not exist')\n return {\n 'toCwd': srcpath,\n 'toDst': srcpath\n }\n } else {\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n exists = fs.existsSync(relativeToDst)\n if (exists) {\n return {\n 'toCwd': relativeToDst,\n 'toDst': srcpath\n }\n } else {\n exists = fs.existsSync(srcpath)\n if (!exists) throw new Error('relative srcpath does not exist')\n return {\n 'toCwd': srcpath,\n 'toDst': path.relative(dstdir, srcpath)\n }\n }\n }\n}\n\nmodule.exports = {\n symlinkPaths,\n symlinkPathsSync\n}\n","'use strict'\n\nconst fs = require('graceful-fs')\n\nfunction symlinkType (srcpath, type, callback) {\n callback = (typeof type === 'function') ? type : callback\n type = (typeof type === 'function') ? false : type\n if (type) return callback(null, type)\n fs.lstat(srcpath, (err, stats) => {\n if (err) return callback(null, 'file')\n type = (stats && stats.isDirectory()) ? 'dir' : 'file'\n callback(null, type)\n })\n}\n\nfunction symlinkTypeSync (srcpath, type) {\n let stats\n\n if (type) return type\n try {\n stats = fs.lstatSync(srcpath)\n } catch (e) {\n return 'file'\n }\n return (stats && stats.isDirectory()) ? 'dir' : 'file'\n}\n\nmodule.exports = {\n symlinkType,\n symlinkTypeSync\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst jsonFile = require('./jsonfile')\n\njsonFile.outputJson = u(require('./output-json'))\njsonFile.outputJsonSync = require('./output-json-sync')\n// aliases\njsonFile.outputJSON = jsonFile.outputJson\njsonFile.outputJSONSync = jsonFile.outputJsonSync\njsonFile.writeJSON = jsonFile.writeJson\njsonFile.writeJSONSync = jsonFile.writeJsonSync\njsonFile.readJSON = jsonFile.readJson\njsonFile.readJSONSync = jsonFile.readJsonSync\n\nmodule.exports = jsonFile\n","var _fs\ntry {\n _fs = require('graceful-fs')\n} catch (_) {\n _fs = require('fs')\n}\n\nfunction readFile (file, options, callback) {\n if (callback == null) {\n callback = options\n options = {}\n }\n\n if (typeof options === 'string') {\n options = {encoding: options}\n }\n\n options = options || {}\n var fs = options.fs || _fs\n\n var shouldThrow = true\n if ('throws' in options) {\n shouldThrow = options.throws\n }\n\n fs.readFile(file, options, function (err, data) {\n if (err) return callback(err)\n\n data = stripBom(data)\n\n var obj\n try {\n obj = JSON.parse(data, options ? options.reviver : null)\n } catch (err2) {\n if (shouldThrow) {\n err2.message = file + ': ' + err2.message\n return callback(err2)\n } else {\n return callback(null, null)\n }\n }\n\n callback(null, obj)\n })\n}\n\nfunction readFileSync (file, options) {\n options = options || {}\n if (typeof options === 'string') {\n options = {encoding: options}\n }\n\n var fs = options.fs || _fs\n\n var shouldThrow = true\n if ('throws' in options) {\n shouldThrow = options.throws\n }\n\n try {\n var content = fs.readFileSync(file, options)\n content = stripBom(content)\n return JSON.parse(content, options.reviver)\n } catch (err) {\n if (shouldThrow) {\n err.message = file + ': ' + err.message\n throw err\n } else {\n return null\n }\n }\n}\n\nfunction stringify (obj, options) {\n var spaces\n var EOL = '\\n'\n if (typeof options === 'object' && options !== null) {\n if (options.spaces) {\n spaces = options.spaces\n }\n if (options.EOL) {\n EOL = options.EOL\n }\n }\n\n var str = JSON.stringify(obj, options ? options.replacer : null, spaces)\n\n return str.replace(/\\n/g, EOL) + EOL\n}\n\nfunction writeFile (file, obj, options, callback) {\n if (callback == null) {\n callback = options\n options = {}\n }\n options = options || {}\n var fs = options.fs || _fs\n\n var str = ''\n try {\n str = stringify(obj, options)\n } catch (err) {\n // Need to return whether a callback was passed or not\n if (callback) callback(err, null)\n return\n }\n\n fs.writeFile(file, str, options, callback)\n}\n\nfunction writeFileSync (file, obj, options) {\n options = options || {}\n var fs = options.fs || _fs\n\n var str = stringify(obj, options)\n // not sure if fs.writeFileSync returns anything, but just in case\n return fs.writeFileSync(file, str, options)\n}\n\nfunction stripBom (content) {\n // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified\n if (Buffer.isBuffer(content)) content = content.toString('utf8')\n content = content.replace(/^\\uFEFF/, '')\n return content\n}\n\nvar jsonfile = {\n readFile: readFile,\n readFileSync: readFileSync,\n writeFile: writeFile,\n writeFileSync: writeFileSync\n}\n\nmodule.exports = jsonfile\n","'use strict'\n\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\nconst jsonFile = require('./jsonfile')\n\nfunction outputJson (file, data, options, callback) {\n if (typeof options === 'function') {\n callback = options\n options = {}\n }\n\n const dir = path.dirname(file)\n\n pathExists(dir, (err, itDoes) => {\n if (err) return callback(err)\n if (itDoes) return jsonFile.writeJson(file, data, options, callback)\n\n mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n jsonFile.writeJson(file, data, options, callback)\n })\n })\n}\n\nmodule.exports = outputJson\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst jsonFile = require('./jsonfile')\n\nfunction outputJsonSync (file, data, options) {\n const dir = path.dirname(file)\n\n if (!fs.existsSync(dir)) {\n mkdir.mkdirsSync(dir)\n }\n\n jsonFile.writeJsonSync(file, data, options)\n}\n\nmodule.exports = outputJsonSync\n","'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst copySync = require('../copy-sync').copySync\nconst removeSync = require('../remove').removeSync\nconst mkdirpSync = require('../mkdirs').mkdirsSync\nconst buffer = require('../util/buffer')\n\nfunction moveSync (src, dest, options) {\n options = options || {}\n const overwrite = options.overwrite || options.clobber || false\n\n src = path.resolve(src)\n dest = path.resolve(dest)\n\n if (src === dest) return fs.accessSync(src)\n\n if (isSrcSubdir(src, dest)) throw new Error(`Cannot move '${src}' into itself '${dest}'.`)\n\n mkdirpSync(path.dirname(dest))\n tryRenameSync()\n\n function tryRenameSync () {\n if (overwrite) {\n try {\n return fs.renameSync(src, dest)\n } catch (err) {\n if (err.code === 'ENOTEMPTY' || err.code === 'EEXIST' || err.code === 'EPERM') {\n removeSync(dest)\n options.overwrite = false // just overwriteed it, no need to do it again\n return moveSync(src, dest, options)\n }\n\n if (err.code !== 'EXDEV') throw err\n return moveSyncAcrossDevice(src, dest, overwrite)\n }\n } else {\n try {\n fs.linkSync(src, dest)\n return fs.unlinkSync(src)\n } catch (err) {\n if (err.code === 'EXDEV' || err.code === 'EISDIR' || err.code === 'EPERM' || err.code === 'ENOTSUP') {\n return moveSyncAcrossDevice(src, dest, overwrite)\n }\n throw err\n }\n }\n }\n}\n\nfunction moveSyncAcrossDevice (src, dest, overwrite) {\n const stat = fs.statSync(src)\n\n if (stat.isDirectory()) {\n return moveDirSyncAcrossDevice(src, dest, overwrite)\n } else {\n return moveFileSyncAcrossDevice(src, dest, overwrite)\n }\n}\n\nfunction moveFileSyncAcrossDevice (src, dest, overwrite) {\n const BUF_LENGTH = 64 * 1024\n const _buff = buffer(BUF_LENGTH)\n\n const flags = overwrite ? 'w' : 'wx'\n\n const fdr = fs.openSync(src, 'r')\n const stat = fs.fstatSync(fdr)\n const fdw = fs.openSync(dest, flags, stat.mode)\n let pos = 0\n\n while (pos < stat.size) {\n const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)\n fs.writeSync(fdw, _buff, 0, bytesRead)\n pos += bytesRead\n }\n\n fs.closeSync(fdr)\n fs.closeSync(fdw)\n return fs.unlinkSync(src)\n}\n\nfunction moveDirSyncAcrossDevice (src, dest, overwrite) {\n const options = {\n overwrite: false\n }\n\n if (overwrite) {\n removeSync(dest)\n tryCopySync()\n } else {\n tryCopySync()\n }\n\n function tryCopySync () {\n copySync(src, dest, options)\n return removeSync(src)\n }\n}\n\n// return true if dest is a subdir of src, otherwise false.\n// extract dest base dir and check if that is the same as src basename\nfunction isSrcSubdir (src, dest) {\n try {\n return fs.statSync(src).isDirectory() &&\n src !== dest &&\n dest.indexOf(src) > -1 &&\n dest.split(path.dirname(src) + path.sep)[1].split(path.sep)[0] === path.basename(src)\n } catch (e) {\n return false\n }\n}\n\nmodule.exports = {\n moveSync\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst copy = require('../copy').copy\nconst remove = require('../remove').remove\nconst mkdirp = require('../mkdirs').mkdirp\nconst pathExists = require('../path-exists').pathExists\n\nfunction move (src, dest, opts, cb) {\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n const overwrite = opts.overwrite || opts.clobber || false\n\n src = path.resolve(src)\n dest = path.resolve(dest)\n\n if (src === dest) return fs.access(src, cb)\n\n fs.stat(src, (err, st) => {\n if (err) return cb(err)\n\n if (st.isDirectory() && isSrcSubdir(src, dest)) {\n return cb(new Error(`Cannot move '${src}' to a subdirectory of itself, '${dest}'.`))\n }\n mkdirp(path.dirname(dest), err => {\n if (err) return cb(err)\n return doRename(src, dest, overwrite, cb)\n })\n })\n}\n\nfunction doRename (src, dest, overwrite, cb) {\n if (overwrite) {\n return remove(dest, err => {\n if (err) return cb(err)\n return rename(src, dest, overwrite, cb)\n })\n }\n pathExists(dest, (err, destExists) => {\n if (err) return cb(err)\n if (destExists) return cb(new Error('dest already exists.'))\n return rename(src, dest, overwrite, cb)\n })\n}\n\nfunction rename (src, dest, overwrite, cb) {\n fs.rename(src, dest, err => {\n if (!err) return cb()\n if (err.code !== 'EXDEV') return cb(err)\n return moveAcrossDevice(src, dest, overwrite, cb)\n })\n}\n\nfunction moveAcrossDevice (src, dest, overwrite, cb) {\n const opts = {\n overwrite,\n errorOnExist: true\n }\n\n copy(src, dest, opts, err => {\n if (err) return cb(err)\n return remove(src, cb)\n })\n}\n\nfunction isSrcSubdir (src, dest) {\n const srcArray = src.split(path.sep)\n const destArray = dest.split(path.sep)\n\n return srcArray.reduce((acc, current, i) => {\n return acc && destArray[i] === current\n }, true)\n}\n\nmodule.exports = {\n move: u(move)\n}\n","'use strict'\n\nconst u = require('universalify').fromCallback\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nfunction outputFile (file, data, encoding, callback) {\n if (typeof encoding === 'function') {\n callback = encoding\n encoding = 'utf8'\n }\n\n const dir = path.dirname(file)\n pathExists(dir, (err, itDoes) => {\n if (err) return callback(err)\n if (itDoes) return fs.writeFile(file, data, encoding, callback)\n\n mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n\n fs.writeFile(file, data, encoding, callback)\n })\n })\n}\n\nfunction outputFileSync (file, ...args) {\n const dir = path.dirname(file)\n if (fs.existsSync(dir)) {\n return fs.writeFileSync(file, ...args)\n }\n mkdir.mkdirsSync(dir)\n fs.writeFileSync(file, ...args)\n}\n\nmodule.exports = {\n outputFile: u(outputFile),\n outputFileSync\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","module.exports = require(\"crypto\");","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!new.target) {\n throw new TypeError(\n \"Failed to construct 'URL'. Please use the 'new' operator; this constructor \" + \"cannot be called as a function.\"\n );\n }\n if (arguments.length < 1) {\n throw new TypeError(\n \"Failed to construct 'URL': 1 \" + \"argument required, but only \" + arguments.length + \" present.\"\n );\n }\n\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n\n args[0] = conversions[\"USVString\"](args[0], { context: \"Failed to construct 'URL': parameter 1\" });\n\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1], { context: \"Failed to construct 'URL': parameter 2\" });\n }\n\n iface.setup(this, args);\n}\n\nObject.defineProperty(URL, \"prototype\", {\n value: URL.prototype,\n writable: false,\n enumerable: false,\n configurable: false\n});\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl].toJSON();\n};\n\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"href\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'href' property on 'URL': The provided value\" });\n\n this[impl][\"href\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function toString() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this[impl][\"href\"];\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"origin\"];\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"protocol\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'protocol' property on 'URL': The provided value\" });\n\n this[impl][\"protocol\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"username\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'username' property on 'URL': The provided value\" });\n\n this[impl][\"username\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"password\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'password' property on 'URL': The provided value\" });\n\n this[impl][\"password\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"host\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'host' property on 'URL': The provided value\" });\n\n this[impl][\"host\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"hostname\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'hostname' property on 'URL': The provided value\" });\n\n this[impl][\"hostname\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"port\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'port' property on 'URL': The provided value\" });\n\n this[impl][\"port\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"pathname\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'pathname' property on 'URL': The provided value\" });\n\n this[impl][\"pathname\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"search\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'search' property on 'URL': The provided value\" });\n\n this[impl][\"search\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"searchParams\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return utils.getSameObject(this, \"searchParams\", () => {\n return utils.tryWrapperForImpl(this[impl][\"searchParams\"]);\n });\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n return this[impl][\"hash\"];\n },\n\n set(V) {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n\n V = conversions[\"USVString\"](V, { context: \"Failed to set the 'hash' property on 'URL': The provided value\" });\n\n this[impl][\"hash\"] = V;\n },\n\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, Symbol.toStringTag, {\n value: \"URL\",\n writable: false,\n enumerable: false,\n configurable: true\n});\n\nconst iface = {\n mixedInto: [],\n is(obj) {\n if (obj) {\n if (obj[impl] instanceof Impl.implementation) {\n return true;\n }\n for (let i = 0; i < module.exports.mixedInto.length; ++i) {\n if (obj instanceof module.exports.mixedInto[i]) {\n return true;\n }\n }\n }\n return false;\n },\n isImpl(obj) {\n if (obj) {\n if (obj instanceof Impl.implementation) {\n return true;\n }\n\n const wrapper = utils.wrapperForImpl(obj);\n for (let i = 0; i < module.exports.mixedInto.length; ++i) {\n if (wrapper instanceof module.exports.mixedInto[i]) {\n return true;\n }\n }\n }\n return false;\n },\n convert(obj, { context = \"The provided value\" } = {}) {\n if (module.exports.is(obj)) {\n return utils.implForWrapper(obj);\n }\n throw new TypeError(`${context} is not of type 'URL'.`);\n },\n\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n obj = this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n createImpl(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n obj = this.setup(obj, constructorArgs, privateData);\n return utils.implForWrapper(obj);\n },\n _internalSetup(obj) {},\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n\n privateData.wrapper = obj;\n\n this._internalSetup(obj);\n Object.defineProperty(obj, impl, {\n value: new Impl.implementation(constructorArgs, privateData),\n writable: false,\n enumerable: false,\n configurable: true\n });\n\n obj[impl][utils.wrapperSymbol] = obj;\n if (Impl.init) {\n Impl.init(obj[impl], privateData);\n }\n return obj;\n },\n interface: URL,\n expose: {\n Window: { URL },\n Worker: { URL }\n }\n}; // iface\nmodule.exports = iface;\n\nconst Impl = require(\".//URL-impl.js\");\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\nconst urlencoded = require(\"./urlencoded\");\nconst URLSearchParams = require(\"./URLSearchParams\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === null) {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === null) {\n throw new TypeError(\"Invalid URL\");\n }\n\n const query = parsedURL.query !== null ? parsedURL.query : \"\";\n\n this._url = parsedURL;\n\n // We cannot invoke the \"new URLSearchParams object\" algorithm without going through the constructor, which strips\n // question mark by default. Therefore the doNotStripQMark hack is used.\n this._query = URLSearchParams.createImpl([query], { doNotStripQMark: true });\n this._query._url = this;\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === null) {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n this._query._list.splice(0);\n const { query } = parsedURL;\n if (query !== null) {\n this._query._list = urlencoded.parseUrlencoded(query);\n }\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n this._query._list = [];\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n this._query._list = urlencoded.parseUrlencoded(input);\n }\n\n get searchParams() {\n return this._query;\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst punycode = require(\"punycode\");\nconst regexes = require(\"./lib/regexes.js\");\nconst mappingTable = require(\"./lib/mappingTable.json\");\n\nfunction containsNonASCII(str) {\n return /[^\\x00-\\x7F]/.test(str);\n}\n\nfunction findStatus(val, { useSTD3ASCIIRules }) {\n let start = 0;\n let end = mappingTable.length - 1;\n\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n\n const target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n if (target[1].startsWith(\"disallowed_STD3_\")) {\n const newStatus = useSTD3ASCIIRules ? \"disallowed\" : target[1].slice(16);\n return [newStatus, ...target.slice(2)];\n }\n return target.slice(1);\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nfunction mapChars(domainName, { useSTD3ASCIIRules, processingOption }) {\n let hasError = false;\n let processed = \"\";\n\n for (const ch of domainName) {\n const [status, mapping] = findStatus(ch.codePointAt(0), { useSTD3ASCIIRules });\n\n switch (status) {\n case \"disallowed\":\n hasError = true;\n processed += ch;\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += mapping;\n break;\n case \"deviation\":\n if (processingOption === \"transitional\") {\n processed += mapping;\n } else {\n processed += ch;\n }\n break;\n case \"valid\":\n processed += ch;\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nfunction validateLabel(label, { checkHyphens, checkBidi, checkJoiners, processingOption, useSTD3ASCIIRules }) {\n if (label.normalize(\"NFC\") !== label) {\n return false;\n }\n\n const codePoints = Array.from(label);\n\n if (checkHyphens) {\n if ((codePoints[2] === \"-\" && codePoints[3] === \"-\") ||\n (label.startsWith(\"-\") || label.endsWith(\"-\"))) {\n return false;\n }\n }\n\n if (label.includes(\".\") ||\n (codePoints.length > 0 && regexes.combiningMarks.test(codePoints[0]))) {\n return false;\n }\n\n for (const ch of codePoints) {\n const [status] = findStatus(ch.codePointAt(0), { useSTD3ASCIIRules });\n if ((processingOption === \"transitional\" && status !== \"valid\") ||\n (processingOption === \"nontransitional\" &&\n status !== \"valid\" && status !== \"deviation\")) {\n return false;\n }\n }\n\n // https://tools.ietf.org/html/rfc5892#appendix-A\n if (checkJoiners) {\n let last = 0;\n for (const [i, ch] of codePoints.entries()) {\n if (ch === \"\\u200C\" || ch === \"\\u200D\") {\n if (i > 0) {\n if (regexes.combiningClassVirama.test(codePoints[i - 1])) {\n continue;\n }\n if (ch === \"\\u200C\") {\n // TODO: make this more efficient\n const next = codePoints.indexOf(\"\\u200C\", i + 1);\n const test = next < 0 ? codePoints.slice(last) : codePoints.slice(last, next);\n if (regexes.validZWNJ.test(test.join(\"\"))) {\n last = i + 1;\n continue;\n }\n }\n }\n return false;\n }\n }\n }\n\n // https://tools.ietf.org/html/rfc5893#section-2\n if (checkBidi) {\n let rtl;\n\n // 1\n if (regexes.bidiS1LTR.test(codePoints[0])) {\n rtl = false;\n } else if (regexes.bidiS1RTL.test(codePoints[0])) {\n rtl = true;\n } else {\n return false;\n }\n\n if (rtl) {\n // 2-4\n if (!regexes.bidiS2.test(label) ||\n !regexes.bidiS3.test(label) ||\n (regexes.bidiS4EN.test(label) && regexes.bidiS4AN.test(label))) {\n return false;\n }\n } else if (!regexes.bidiS5.test(label) ||\n !regexes.bidiS6.test(label)) { // 5-6\n return false;\n }\n }\n\n return true;\n}\n\nfunction isBidiDomain(labels) {\n const domain = labels.map(label => {\n if (label.startsWith(\"xn--\")) {\n try {\n return punycode.decode(label.substring(4));\n } catch (err) {\n return \"\";\n }\n }\n return label;\n }).join(\".\");\n return regexes.bidiDomain.test(domain);\n}\n\nfunction processing(domainName, options) {\n const { processingOption } = options;\n\n // 1. Map.\n let { string, error } = mapChars(domainName, options);\n\n // 2. Normalize.\n string = string.normalize(\"NFC\");\n\n // 3. Break.\n const labels = string.split(\".\");\n const isBidi = isBidiDomain(labels);\n\n // 4. Convert/Validate.\n for (const [i, origLabel] of labels.entries()) {\n let label = origLabel;\n let curProcessing = processingOption;\n if (label.startsWith(\"xn--\")) {\n try {\n label = punycode.decode(label.substring(4));\n labels[i] = label;\n } catch (err) {\n error = true;\n continue;\n }\n curProcessing = \"nontransitional\";\n }\n\n // No need to validate if we already know there is an error.\n if (error) {\n continue;\n }\n const validation = validateLabel(label, Object.assign({}, options, {\n processingOption: curProcessing,\n checkBidi: options.checkBidi && isBidi\n }));\n if (!validation) {\n error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error\n };\n}\n\nfunction toASCII(domainName, {\n checkHyphens = false,\n checkBidi = false,\n checkJoiners = false,\n useSTD3ASCIIRules = false,\n processingOption = \"nontransitional\",\n verifyDNSLength = false\n} = {}) {\n if (processingOption !== \"transitional\" && processingOption !== \"nontransitional\") {\n throw new RangeError(\"processingOption must be either transitional or nontransitional\");\n }\n\n const result = processing(domainName, {\n processingOption,\n checkHyphens,\n checkBidi,\n checkJoiners,\n useSTD3ASCIIRules\n });\n let labels = result.string.split(\".\");\n labels = labels.map(l => {\n if (containsNonASCII(l)) {\n try {\n return \"xn--\" + punycode.encode(l);\n } catch (e) {\n result.error = true;\n }\n }\n return l;\n });\n\n if (verifyDNSLength) {\n const total = labels.join(\".\").length;\n if (total > 253 || total === 0) {\n result.error = true;\n }\n\n for (let i = 0; i < labels.length; ++i) {\n if (labels[i].length > 63 || labels[i].length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) {\n return null;\n }\n return labels.join(\".\");\n}\n\nfunction toUnicode(domainName, {\n checkHyphens = false,\n checkBidi = false,\n checkJoiners = false,\n useSTD3ASCIIRules = false\n} = {}) {\n const result = processing(domainName, {\n processingOption: \"nontransitional\",\n checkHyphens,\n checkBidi,\n checkJoiners,\n useSTD3ASCIIRules\n });\n\n return {\n domain: result.string,\n error: result.error\n };\n}\n\nmodule.exports = {\n toASCII,\n toUnicode\n};\n","\"use strict\";\n\nconst combiningMarks = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\u{101FD}\\u{102E0}\\u{10376}-\\u{1037A}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{11000}-\\u{11002}\\u{11038}-\\u{11046}\\u{1107F}-\\u{11082}\\u{110B0}-\\u{110BA}\\u{11100}-\\u{11102}\\u{11127}-\\u{11134}\\u{11173}\\u{11180}-\\u{11182}\\u{111B3}-\\u{111C0}\\u{111CA}-\\u{111CC}\\u{1122C}-\\u{11237}\\u{1123E}\\u{112DF}-\\u{112EA}\\u{11300}-\\u{11303}\\u{1133C}\\u{1133E}-\\u{11344}\\u{11347}\\u{11348}\\u{1134B}-\\u{1134D}\\u{11357}\\u{11362}\\u{11363}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11435}-\\u{11446}\\u{114B0}-\\u{114C3}\\u{115AF}-\\u{115B5}\\u{115B8}-\\u{115C0}\\u{115DC}\\u{115DD}\\u{11630}-\\u{11640}\\u{116AB}-\\u{116B7}\\u{1171D}-\\u{1172B}\\u{11A01}-\\u{11A0A}\\u{11A33}-\\u{11A39}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A5B}\\u{11A8A}-\\u{11A99}\\u{11C2F}-\\u{11C36}\\u{11C38}-\\u{11C3F}\\u{11C92}-\\u{11CA7}\\u{11CA9}-\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F51}-\\u{16F7E}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1D165}-\\u{1D169}\\u{1D16D}-\\u{1D172}\\u{1D17B}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{E0100}-\\u{E01EF}]/u;\nconst combiningClassVirama = /[\\u094D\\u09CD\\u0A4D\\u0ACD\\u0B4D\\u0BCD\\u0C4D\\u0CCD\\u0D3B\\u0D3C\\u0D4D\\u0DCA\\u0E3A\\u0F84\\u1039\\u103A\\u1714\\u1734\\u17D2\\u1A60\\u1B44\\u1BAA\\u1BAB\\u1BF2\\u1BF3\\u2D7F\\uA806\\uA8C4\\uA953\\uA9C0\\uAAF6\\uABED\\u{10A3F}\\u{11046}\\u{1107F}\\u{110B9}\\u{11133}\\u{11134}\\u{111C0}\\u{11235}\\u{112EA}\\u{1134D}\\u{11442}\\u{114C2}\\u{115BF}\\u{1163F}\\u{116B6}\\u{1172B}\\u{11A34}\\u{11A47}\\u{11A99}\\u{11C3F}\\u{11D44}\\u{11D45}]/u;\nconst validZWNJ = /[\\u0620\\u0626\\u0628\\u062A-\\u062E\\u0633-\\u063F\\u0641-\\u0647\\u0649\\u064A\\u066E\\u066F\\u0678-\\u0687\\u069A-\\u06BF\\u06C1\\u06C2\\u06CC\\u06CE\\u06D0\\u06D1\\u06FA-\\u06FC\\u06FF\\u0712-\\u0714\\u071A-\\u071D\\u071F-\\u0727\\u0729\\u072B\\u072D\\u072E\\u074E-\\u0758\\u075C-\\u076A\\u076D-\\u0770\\u0772\\u0775-\\u0777\\u077A-\\u077F\\u07CA-\\u07EA\\u0841-\\u0845\\u0848\\u084A-\\u0853\\u0855\\u0860\\u0862-\\u0865\\u0868\\u08A0-\\u08A9\\u08AF\\u08B0\\u08B3\\u08B4\\u08B6-\\u08B8\\u08BA-\\u08BD\\u1807\\u1820-\\u1877\\u1887-\\u18A8\\u18AA\\uA840-\\uA872\\u{10AC0}-\\u{10AC4}\\u{10ACD}\\u{10AD3}-\\u{10ADC}\\u{10ADE}-\\u{10AE0}\\u{10AEB}-\\u{10AEE}\\u{10B80}\\u{10B82}\\u{10B86}-\\u{10B88}\\u{10B8A}\\u{10B8B}\\u{10B8D}\\u{10B90}\\u{10BAD}\\u{10BAE}\\u{1E900}-\\u{1E943}][\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200B\\u200E\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u206A-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFFF9-\\uFFFB\\u{101FD}\\u{102E0}\\u{10376}-\\u{1037A}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{11001}\\u{11038}-\\u{11046}\\u{1107F}-\\u{11081}\\u{110B3}-\\u{110B6}\\u{110B9}\\u{110BA}\\u{110BD}\\u{11100}-\\u{11102}\\u{11127}-\\u{1112B}\\u{1112D}-\\u{11134}\\u{11173}\\u{11180}\\u{11181}\\u{111B6}-\\u{111BE}\\u{111CA}-\\u{111CC}\\u{1122F}-\\u{11231}\\u{11234}\\u{11236}\\u{11237}\\u{1123E}\\u{112DF}\\u{112E3}-\\u{112EA}\\u{11300}\\u{11301}\\u{1133C}\\u{11340}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11438}-\\u{1143F}\\u{11442}-\\u{11444}\\u{11446}\\u{114B3}-\\u{114B8}\\u{114BA}\\u{114BF}\\u{114C0}\\u{114C2}\\u{114C3}\\u{115B2}-\\u{115B5}\\u{115BC}\\u{115BD}\\u{115BF}\\u{115C0}\\u{115DC}\\u{115DD}\\u{11633}-\\u{1163A}\\u{1163D}\\u{1163F}\\u{11640}\\u{116AB}\\u{116AD}\\u{116B0}-\\u{116B5}\\u{116B7}\\u{1171D}-\\u{1171F}\\u{11722}-\\u{11725}\\u{11727}-\\u{1172B}\\u{11A01}-\\u{11A06}\\u{11A09}\\u{11A0A}\\u{11A33}-\\u{11A38}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A56}\\u{11A59}-\\u{11A5B}\\u{11A8A}-\\u{11A96}\\u{11A98}\\u{11A99}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C3F}\\u{11C92}-\\u{11CA7}\\u{11CAA}-\\u{11CB0}\\u{11CB2}\\u{11CB3}\\u{11CB5}\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1BCA0}-\\u{1BCA3}\\u{1D167}-\\u{1D169}\\u{1D173}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{E0001}\\u{E0020}-\\u{E007F}\\u{E0100}-\\u{E01EF}]*\\u200C[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200B\\u200E\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u206A-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFFF9-\\uFFFB\\u{101FD}\\u{102E0}\\u{10376}-\\u{1037A}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{11001}\\u{11038}-\\u{11046}\\u{1107F}-\\u{11081}\\u{110B3}-\\u{110B6}\\u{110B9}\\u{110BA}\\u{110BD}\\u{11100}-\\u{11102}\\u{11127}-\\u{1112B}\\u{1112D}-\\u{11134}\\u{11173}\\u{11180}\\u{11181}\\u{111B6}-\\u{111BE}\\u{111CA}-\\u{111CC}\\u{1122F}-\\u{11231}\\u{11234}\\u{11236}\\u{11237}\\u{1123E}\\u{112DF}\\u{112E3}-\\u{112EA}\\u{11300}\\u{11301}\\u{1133C}\\u{11340}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11438}-\\u{1143F}\\u{11442}-\\u{11444}\\u{11446}\\u{114B3}-\\u{114B8}\\u{114BA}\\u{114BF}\\u{114C0}\\u{114C2}\\u{114C3}\\u{115B2}-\\u{115B5}\\u{115BC}\\u{115BD}\\u{115BF}\\u{115C0}\\u{115DC}\\u{115DD}\\u{11633}-\\u{1163A}\\u{1163D}\\u{1163F}\\u{11640}\\u{116AB}\\u{116AD}\\u{116B0}-\\u{116B5}\\u{116B7}\\u{1171D}-\\u{1171F}\\u{11722}-\\u{11725}\\u{11727}-\\u{1172B}\\u{11A01}-\\u{11A06}\\u{11A09}\\u{11A0A}\\u{11A33}-\\u{11A38}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A56}\\u{11A59}-\\u{11A5B}\\u{11A8A}-\\u{11A96}\\u{11A98}\\u{11A99}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C3F}\\u{11C92}-\\u{11CA7}\\u{11CAA}-\\u{11CB0}\\u{11CB2}\\u{11CB3}\\u{11CB5}\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1BCA0}-\\u{1BCA3}\\u{1D167}-\\u{1D169}\\u{1D173}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{E0001}\\u{E0020}-\\u{E007F}\\u{E0100}-\\u{E01EF}]*[\\u0620\\u0622-\\u063F\\u0641-\\u064A\\u066E\\u066F\\u0671-\\u0673\\u0675-\\u06D3\\u06D5\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u077F\\u07CA-\\u07EA\\u0840-\\u0855\\u0860\\u0862-\\u0865\\u0867-\\u086A\\u08A0-\\u08AC\\u08AE-\\u08B4\\u08B6-\\u08BD\\u1807\\u1820-\\u1877\\u1887-\\u18A8\\u18AA\\uA840-\\uA871\\u{10AC0}-\\u{10AC5}\\u{10AC7}\\u{10AC9}\\u{10ACA}\\u{10ACE}-\\u{10AD6}\\u{10AD8}-\\u{10AE1}\\u{10AE4}\\u{10AEB}-\\u{10AEF}\\u{10B80}-\\u{10B91}\\u{10BA9}-\\u{10BAE}\\u{1E900}-\\u{1E943}]/u;\nconst bidiDomain = /[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05EA\\u05F0-\\u05F4\\u0600-\\u0605\\u0608\\u060B\\u060D\\u061B\\u061C\\u061E-\\u064A\\u0660-\\u0669\\u066B-\\u066F\\u0671-\\u06D5\\u06DD\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u070D\\u070F\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u083E\\u0840-\\u0858\\u085E\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08E2\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBC1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFE74\\uFE76-\\uFEFC\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10857}-\\u{1089E}\\u{108A7}-\\u{108AF}\\u{108E0}-\\u{108F2}\\u{108F4}\\u{108F5}\\u{108FB}-\\u{1091B}\\u{10920}-\\u{10939}\\u{1093F}\\u{10980}-\\u{109B7}\\u{109BC}-\\u{109CF}\\u{109D2}-\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A40}-\\u{10A47}\\u{10A50}-\\u{10A58}\\u{10A60}-\\u{10A9F}\\u{10AC0}-\\u{10AE4}\\u{10AEB}-\\u{10AF6}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B58}-\\u{10B72}\\u{10B78}-\\u{10B91}\\u{10B99}-\\u{10B9C}\\u{10BA9}-\\u{10BAF}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10CFA}-\\u{10CFF}\\u{10E60}-\\u{10E7E}\\u{1E800}-\\u{1E8C4}\\u{1E8C7}-\\u{1E8CF}\\u{1E900}-\\u{1E943}\\u{1E950}-\\u{1E959}\\u{1E95E}\\u{1E95F}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}]/u;\nconst bidiS1LTR = /[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02B8\\u02BB-\\u02C1\\u02D0\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0482\\u048A-\\u052F\\u0531-\\u0556\\u0559-\\u055F\\u0561-\\u0587\\u0589\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u0980\\u0982\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD-\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u09FC\\u09FD\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AF0\\u0AF9\\u0B02\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD0\\u0BD7\\u0BE6-\\u0BF2\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C7F\\u0C80\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D4E\\u0D4F\\u0D54-\\u0D61\\u0D66-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2-\\u0DF4\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0E5B\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE-\\u0FDA\\u1000-\\u102C\\u1031\\u1038\\u103B\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u10C5\\u10C7\\u10CD\\u10D0-\\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\\u1360-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1735\\u1736\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A19\\u1A1A\\u1A1E-\\u1A55\\u1A57\\u1A61\\u1A63\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA0-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B4B\\u1B50-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1BAE-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2\\u1BF3\\u1BFC-\\u1C2B\\u1C34\\u1C35\\u1C3B-\\u1C49\\u1C4D-\\u1C88\\u1CC0-\\u1CC7\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5-\\u1CF7\\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\\u200E\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D70\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u302E\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u3190-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u32FE\\u3300-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA680-\\uA69D\\uA6A0-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA8FD\\uA900-\\uA925\\uA92E-\\uA946\\uA952\\uA953\\uA95F-\\uA97C\\uA983-\\uA9B2\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BD-\\uA9CD\\uA9CF-\\uA9D9\\uA9DE-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D\\uAA50-\\uAA59\\uAA5C-\\uAA7B\\uAA7D-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAAEB\\uAAEE-\\uAAF5\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB65\\uAB70-\\uABE4\\uABE6\\uABE7\\uABE9-\\uABEC\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uD800-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10100}\\u{10102}\\u{10107}-\\u{10133}\\u{10137}-\\u{1013F}\\u{1018D}\\u{1018E}\\u{101D0}-\\u{101FC}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{10300}-\\u{10323}\\u{1032D}-\\u{1034A}\\u{10350}-\\u{10375}\\u{10380}-\\u{1039D}\\u{1039F}-\\u{103C3}\\u{103C8}-\\u{103D5}\\u{10400}-\\u{1049D}\\u{104A0}-\\u{104A9}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{1056F}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{11000}\\u{11002}-\\u{11037}\\u{11047}-\\u{1104D}\\u{11066}-\\u{1106F}\\u{11082}-\\u{110B2}\\u{110B7}\\u{110B8}\\u{110BB}-\\u{110C1}\\u{110D0}-\\u{110E8}\\u{110F0}-\\u{110F9}\\u{11103}-\\u{11126}\\u{1112C}\\u{11136}-\\u{11143}\\u{11150}-\\u{11172}\\u{11174}-\\u{11176}\\u{11182}-\\u{111B5}\\u{111BF}-\\u{111C9}\\u{111CD}\\u{111D0}-\\u{111DF}\\u{111E1}-\\u{111F4}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122E}\\u{11232}\\u{11233}\\u{11235}\\u{11238}-\\u{1123D}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A9}\\u{112B0}-\\u{112DE}\\u{112E0}-\\u{112E2}\\u{112F0}-\\u{112F9}\\u{11302}\\u{11303}\\u{11305}-\\u{1130C}\\u{1130F}\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}\\u{11333}\\u{11335}-\\u{11339}\\u{1133D}-\\u{1133F}\\u{11341}-\\u{11344}\\u{11347}\\u{11348}\\u{1134B}-\\u{1134D}\\u{11350}\\u{11357}\\u{1135D}-\\u{11363}\\u{11400}-\\u{11437}\\u{11440}\\u{11441}\\u{11445}\\u{11447}-\\u{11459}\\u{1145B}\\u{1145D}\\u{11480}-\\u{114B2}\\u{114B9}\\u{114BB}-\\u{114BE}\\u{114C1}\\u{114C4}-\\u{114C7}\\u{114D0}-\\u{114D9}\\u{11580}-\\u{115B1}\\u{115B8}-\\u{115BB}\\u{115BE}\\u{115C1}-\\u{115DB}\\u{11600}-\\u{11632}\\u{1163B}\\u{1163C}\\u{1163E}\\u{11641}-\\u{11644}\\u{11650}-\\u{11659}\\u{11680}-\\u{116AA}\\u{116AC}\\u{116AE}\\u{116AF}\\u{116B6}\\u{116C0}-\\u{116C9}\\u{11700}-\\u{11719}\\u{11720}\\u{11721}\\u{11726}\\u{11730}-\\u{1173F}\\u{118A0}-\\u{118F2}\\u{118FF}\\u{11A00}\\u{11A07}\\u{11A08}\\u{11A0B}-\\u{11A32}\\u{11A39}\\u{11A3A}\\u{11A3F}-\\u{11A46}\\u{11A50}\\u{11A57}\\u{11A58}\\u{11A5C}-\\u{11A83}\\u{11A86}-\\u{11A89}\\u{11A97}\\u{11A9A}-\\u{11A9C}\\u{11A9E}-\\u{11AA2}\\u{11AC0}-\\u{11AF8}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2F}\\u{11C3E}-\\u{11C45}\\u{11C50}-\\u{11C6C}\\u{11C70}-\\u{11C8F}\\u{11CA9}\\u{11CB1}\\u{11CB4}\\u{11D00}-\\u{11D06}\\u{11D08}\\u{11D09}\\u{11D0B}-\\u{11D30}\\u{11D46}\\u{11D50}-\\u{11D59}\\u{12000}-\\u{12399}\\u{12400}-\\u{1246E}\\u{12470}-\\u{12474}\\u{12480}-\\u{12543}\\u{13000}-\\u{1342E}\\u{14400}-\\u{14646}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A60}-\\u{16A69}\\u{16A6E}\\u{16A6F}\\u{16AD0}-\\u{16AED}\\u{16AF5}\\u{16B00}-\\u{16B2F}\\u{16B37}-\\u{16B45}\\u{16B50}-\\u{16B59}\\u{16B5B}-\\u{16B61}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16F00}-\\u{16F44}\\u{16F50}-\\u{16F7E}\\u{16F93}-\\u{16F9F}\\u{16FE0}\\u{16FE1}\\u{17000}-\\u{187EC}\\u{18800}-\\u{18AF2}\\u{1B000}-\\u{1B11E}\\u{1B170}-\\u{1B2FB}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1BC9C}\\u{1BC9F}\\u{1D000}-\\u{1D0F5}\\u{1D100}-\\u{1D126}\\u{1D129}-\\u{1D166}\\u{1D16A}-\\u{1D172}\\u{1D183}\\u{1D184}\\u{1D18C}-\\u{1D1A9}\\u{1D1AE}-\\u{1D1E8}\\u{1D360}-\\u{1D371}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}\\u{1D49F}\\u{1D4A2}\\u{1D4A5}\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6DA}\\u{1D6DC}-\\u{1D714}\\u{1D716}-\\u{1D74E}\\u{1D750}-\\u{1D788}\\u{1D78A}-\\u{1D7C2}\\u{1D7C4}-\\u{1D7CB}\\u{1D800}-\\u{1D9FF}\\u{1DA37}-\\u{1DA3A}\\u{1DA6D}-\\u{1DA74}\\u{1DA76}-\\u{1DA83}\\u{1DA85}-\\u{1DA8B}\\u{1F110}-\\u{1F12E}\\u{1F130}-\\u{1F169}\\u{1F170}-\\u{1F1AC}\\u{1F1E6}-\\u{1F202}\\u{1F210}-\\u{1F23B}\\u{1F240}-\\u{1F248}\\u{1F250}\\u{1F251}\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2CEB0}-\\u{2EBE0}\\u{2F800}-\\u{2FA1D}\\u{F0000}-\\u{FFFFD}\\u{100000}-\\u{10FFFD}]/u;\nconst bidiS1RTL = /[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05EA\\u05F0-\\u05F4\\u0608\\u060B\\u060D\\u061B\\u061C\\u061E-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u070D\\u070F\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u083E\\u0840-\\u0858\\u085E\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBC1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFE74\\uFE76-\\uFEFC\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10857}-\\u{1089E}\\u{108A7}-\\u{108AF}\\u{108E0}-\\u{108F2}\\u{108F4}\\u{108F5}\\u{108FB}-\\u{1091B}\\u{10920}-\\u{10939}\\u{1093F}\\u{10980}-\\u{109B7}\\u{109BC}-\\u{109CF}\\u{109D2}-\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A40}-\\u{10A47}\\u{10A50}-\\u{10A58}\\u{10A60}-\\u{10A9F}\\u{10AC0}-\\u{10AE4}\\u{10AEB}-\\u{10AF6}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B58}-\\u{10B72}\\u{10B78}-\\u{10B91}\\u{10B99}-\\u{10B9C}\\u{10BA9}-\\u{10BAF}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10CFA}-\\u{10CFF}\\u{1E800}-\\u{1E8C4}\\u{1E8C7}-\\u{1E8CF}\\u{1E900}-\\u{1E943}\\u{1E950}-\\u{1E959}\\u{1E95E}\\u{1E95F}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}]/u;\nconst bidiS2 = /^[\\0-\\x08\\x0E-\\x1B!-@\\[-`\\{-\\x84\\x86-\\xA9\\xAB-\\xB4\\xB6-\\xB9\\xBB-\\xBF\\xD7\\xF7\\u02B9\\u02BA\\u02C2-\\u02CF\\u02D2-\\u02DF\\u02E5-\\u02ED\\u02EF-\\u036F\\u0374\\u0375\\u037E\\u0384\\u0385\\u0387\\u03F6\\u0483-\\u0489\\u058A\\u058D-\\u058F\\u0591-\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F4\\u0600-\\u061C\\u061E-\\u070D\\u070F-\\u074A\\u074D-\\u07B1\\u07C0-\\u07FA\\u0800-\\u082D\\u0830-\\u083E\\u0840-\\u085B\\u085E\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u09F2\\u09F3\\u09FB\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AF1\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0BF3-\\u0BFA\\u0C00\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C78-\\u0C7E\\u0C81\\u0CBC\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E3F\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39-\\u0F3D\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1390-\\u1399\\u1400\\u169B\\u169C\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DB\\u17DD\\u17F0-\\u17F9\\u1800-\\u180E\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1940\\u1944\\u1945\\u19DE-\\u19FF\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u200B-\\u200D\\u200F-\\u2027\\u202F-\\u205E\\u2060-\\u2064\\u206A-\\u2070\\u2074-\\u207E\\u2080-\\u208E\\u20A0-\\u20BF\\u20D0-\\u20F0\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u2150-\\u215F\\u2189-\\u218B\\u2190-\\u2335\\u237B-\\u2394\\u2396-\\u2426\\u2440-\\u244A\\u2460-\\u249B\\u24EA-\\u26AB\\u26AD-\\u27FF\\u2900-\\u2B73\\u2B76-\\u2B95\\u2B98-\\u2BB9\\u2BBD-\\u2BC8\\u2BCA-\\u2BD2\\u2BEC-\\u2BEF\\u2CE5-\\u2CEA\\u2CEF-\\u2CF1\\u2CF9-\\u2CFF\\u2D7F\\u2DE0-\\u2E49\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u3004\\u3008-\\u3020\\u302A-\\u302D\\u3030\\u3036\\u3037\\u303D-\\u303F\\u3099-\\u309C\\u30A0\\u30FB\\u31C0-\\u31E3\\u321D\\u321E\\u3250-\\u325F\\u327C-\\u327E\\u32B1-\\u32BF\\u32CC-\\u32CF\\u3377-\\u337A\\u33DE\\u33DF\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA60D-\\uA60F\\uA66F-\\uA67F\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA700-\\uA721\\uA788\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA828-\\uA82B\\uA838\\uA839\\uA874-\\uA877\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1D-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBC1\\uFBD3-\\uFD3F\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFD\\uFE00-\\uFE19\\uFE20-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFEFF\\uFF01-\\uFF20\\uFF3B-\\uFF40\\uFF5B-\\uFF65\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFF9-\\uFFFD\\u{10101}\\u{10140}-\\u{1018C}\\u{10190}-\\u{1019B}\\u{101A0}\\u{101FD}\\u{102E0}-\\u{102FB}\\u{10376}-\\u{1037A}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10857}-\\u{1089E}\\u{108A7}-\\u{108AF}\\u{108E0}-\\u{108F2}\\u{108F4}\\u{108F5}\\u{108FB}-\\u{1091B}\\u{1091F}-\\u{10939}\\u{1093F}\\u{10980}-\\u{109B7}\\u{109BC}-\\u{109CF}\\u{109D2}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A38}-\\u{10A3A}\\u{10A3F}-\\u{10A47}\\u{10A50}-\\u{10A58}\\u{10A60}-\\u{10A9F}\\u{10AC0}-\\u{10AE6}\\u{10AEB}-\\u{10AF6}\\u{10B00}-\\u{10B35}\\u{10B39}-\\u{10B55}\\u{10B58}-\\u{10B72}\\u{10B78}-\\u{10B91}\\u{10B99}-\\u{10B9C}\\u{10BA9}-\\u{10BAF}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10CFA}-\\u{10CFF}\\u{10E60}-\\u{10E7E}\\u{11001}\\u{11038}-\\u{11046}\\u{11052}-\\u{11065}\\u{1107F}-\\u{11081}\\u{110B3}-\\u{110B6}\\u{110B9}\\u{110BA}\\u{11100}-\\u{11102}\\u{11127}-\\u{1112B}\\u{1112D}-\\u{11134}\\u{11173}\\u{11180}\\u{11181}\\u{111B6}-\\u{111BE}\\u{111CA}-\\u{111CC}\\u{1122F}-\\u{11231}\\u{11234}\\u{11236}\\u{11237}\\u{1123E}\\u{112DF}\\u{112E3}-\\u{112EA}\\u{11300}\\u{11301}\\u{1133C}\\u{11340}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11438}-\\u{1143F}\\u{11442}-\\u{11444}\\u{11446}\\u{114B3}-\\u{114B8}\\u{114BA}\\u{114BF}\\u{114C0}\\u{114C2}\\u{114C3}\\u{115B2}-\\u{115B5}\\u{115BC}\\u{115BD}\\u{115BF}\\u{115C0}\\u{115DC}\\u{115DD}\\u{11633}-\\u{1163A}\\u{1163D}\\u{1163F}\\u{11640}\\u{11660}-\\u{1166C}\\u{116AB}\\u{116AD}\\u{116B0}-\\u{116B5}\\u{116B7}\\u{1171D}-\\u{1171F}\\u{11722}-\\u{11725}\\u{11727}-\\u{1172B}\\u{11A01}-\\u{11A06}\\u{11A09}\\u{11A0A}\\u{11A33}-\\u{11A38}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A56}\\u{11A59}-\\u{11A5B}\\u{11A8A}-\\u{11A96}\\u{11A98}\\u{11A99}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C92}-\\u{11CA7}\\u{11CAA}-\\u{11CB0}\\u{11CB2}\\u{11CB3}\\u{11CB5}\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1BCA0}-\\u{1BCA3}\\u{1D167}-\\u{1D169}\\u{1D173}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D200}-\\u{1D245}\\u{1D300}-\\u{1D356}\\u{1D6DB}\\u{1D715}\\u{1D74F}\\u{1D789}\\u{1D7C3}\\u{1D7CE}-\\u{1D7FF}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E800}-\\u{1E8C4}\\u{1E8C7}-\\u{1E8D6}\\u{1E900}-\\u{1E94A}\\u{1E950}-\\u{1E959}\\u{1E95E}\\u{1E95F}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u{1EEF0}\\u{1EEF1}\\u{1F000}-\\u{1F02B}\\u{1F030}-\\u{1F093}\\u{1F0A0}-\\u{1F0AE}\\u{1F0B1}-\\u{1F0BF}\\u{1F0C1}-\\u{1F0CF}\\u{1F0D1}-\\u{1F0F5}\\u{1F100}-\\u{1F10C}\\u{1F16A}\\u{1F16B}\\u{1F260}-\\u{1F265}\\u{1F300}-\\u{1F6D4}\\u{1F6E0}-\\u{1F6EC}\\u{1F6F0}-\\u{1F6F8}\\u{1F700}-\\u{1F773}\\u{1F780}-\\u{1F7D4}\\u{1F800}-\\u{1F80B}\\u{1F810}-\\u{1F847}\\u{1F850}-\\u{1F859}\\u{1F860}-\\u{1F887}\\u{1F890}-\\u{1F8AD}\\u{1F900}-\\u{1F90B}\\u{1F910}-\\u{1F93E}\\u{1F940}-\\u{1F94C}\\u{1F950}-\\u{1F96B}\\u{1F980}-\\u{1F997}\\u{1F9C0}\\u{1F9D0}-\\u{1F9E6}\\u{E0001}\\u{E0020}-\\u{E007F}\\u{E0100}-\\u{E01EF}]*$/u;\nconst bidiS3 = /[0-9\\xB2\\xB3\\xB9\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05EA\\u05F0-\\u05F4\\u0600-\\u0605\\u0608\\u060B\\u060D\\u061B\\u061C\\u061E-\\u064A\\u0660-\\u0669\\u066B-\\u066F\\u0671-\\u06D5\\u06DD\\u06E5\\u06E6\\u06EE-\\u070D\\u070F\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u083E\\u0840-\\u0858\\u085E\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08E2\\u200F\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2488-\\u249B\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBC1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\u{102E1}-\\u{102FB}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10857}-\\u{1089E}\\u{108A7}-\\u{108AF}\\u{108E0}-\\u{108F2}\\u{108F4}\\u{108F5}\\u{108FB}-\\u{1091B}\\u{10920}-\\u{10939}\\u{1093F}\\u{10980}-\\u{109B7}\\u{109BC}-\\u{109CF}\\u{109D2}-\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A40}-\\u{10A47}\\u{10A50}-\\u{10A58}\\u{10A60}-\\u{10A9F}\\u{10AC0}-\\u{10AE4}\\u{10AEB}-\\u{10AF6}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B58}-\\u{10B72}\\u{10B78}-\\u{10B91}\\u{10B99}-\\u{10B9C}\\u{10BA9}-\\u{10BAF}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10CFA}-\\u{10CFF}\\u{10E60}-\\u{10E7E}\\u{1D7CE}-\\u{1D7FF}\\u{1E800}-\\u{1E8C4}\\u{1E8C7}-\\u{1E8CF}\\u{1E900}-\\u{1E943}\\u{1E950}-\\u{1E959}\\u{1E95E}\\u{1E95F}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u{1F100}-\\u{1F10A}][\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\u{101FD}\\u{102E0}\\u{10376}-\\u{1037A}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{11001}\\u{11038}-\\u{11046}\\u{1107F}-\\u{11081}\\u{110B3}-\\u{110B6}\\u{110B9}\\u{110BA}\\u{11100}-\\u{11102}\\u{11127}-\\u{1112B}\\u{1112D}-\\u{11134}\\u{11173}\\u{11180}\\u{11181}\\u{111B6}-\\u{111BE}\\u{111CA}-\\u{111CC}\\u{1122F}-\\u{11231}\\u{11234}\\u{11236}\\u{11237}\\u{1123E}\\u{112DF}\\u{112E3}-\\u{112EA}\\u{11300}\\u{11301}\\u{1133C}\\u{11340}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11438}-\\u{1143F}\\u{11442}-\\u{11444}\\u{11446}\\u{114B3}-\\u{114B8}\\u{114BA}\\u{114BF}\\u{114C0}\\u{114C2}\\u{114C3}\\u{115B2}-\\u{115B5}\\u{115BC}\\u{115BD}\\u{115BF}\\u{115C0}\\u{115DC}\\u{115DD}\\u{11633}-\\u{1163A}\\u{1163D}\\u{1163F}\\u{11640}\\u{116AB}\\u{116AD}\\u{116B0}-\\u{116B5}\\u{116B7}\\u{1171D}-\\u{1171F}\\u{11722}-\\u{11725}\\u{11727}-\\u{1172B}\\u{11A01}-\\u{11A06}\\u{11A09}\\u{11A0A}\\u{11A33}-\\u{11A38}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A56}\\u{11A59}-\\u{11A5B}\\u{11A8A}-\\u{11A96}\\u{11A98}\\u{11A99}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C92}-\\u{11CA7}\\u{11CAA}-\\u{11CB0}\\u{11CB2}\\u{11CB3}\\u{11CB5}\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1D167}-\\u{1D169}\\u{1D17B}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{E0100}-\\u{E01EF}]*$/u;\nconst bidiS4EN = /[0-9\\xB2\\xB3\\xB9\\u06F0-\\u06F9\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2488-\\u249B\\uFF10-\\uFF19\\u{102E1}-\\u{102FB}\\u{1D7CE}-\\u{1D7FF}\\u{1F100}-\\u{1F10A}]/u;\nconst bidiS4AN = /[\\u0600-\\u0605\\u0660-\\u0669\\u066B\\u066C\\u06DD\\u08E2\\u{10E60}-\\u{10E7E}]/u;\nconst bidiS5 = /^[\\0-\\x08\\x0E-\\x1B!-\\x84\\x86-\\u0377\\u037A-\\u037F\\u0384-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u052F\\u0531-\\u0556\\u0559-\\u055F\\u0561-\\u0587\\u0589\\u058A\\u058D-\\u058F\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0606\\u0607\\u0609\\u060A\\u060C\\u060E-\\u061A\\u064B-\\u065F\\u066A\\u0670\\u06D6-\\u06DC\\u06DE-\\u06E4\\u06E7-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07F6-\\u07F9\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09FD\\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-\\u0AF1\\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-\\u0B77\\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-\\u0BFA\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C78-\\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-\\u0D4F\\u0D54-\\u0D63\\u0D66-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2-\\u0DF4\\u0E01-\\u0E3A\\u0E3F-\\u0E5B\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F97\\u0F99-\\u0FBC\\u0FBE-\\u0FCC\\u0FCE-\\u0FDA\\u1000-\\u10C5\\u10C7\\u10CD\\u10D0-\\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-\\u137C\\u1380-\\u1399\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1400-\\u167F\\u1681-\\u169C\\u16A0-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1736\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17DD\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1800-\\u180E\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1940\\u1944-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u19DE-\\u1A1B\\u1A1E-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA0-\\u1AAD\\u1AB0-\\u1ABE\\u1B00-\\u1B4B\\u1B50-\\u1B7C\\u1B80-\\u1BF3\\u1BFC-\\u1C37\\u1C3B-\\u1C49\\u1C4D-\\u1C88\\u1CC0-\\u1CC7\\u1CD0-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FC4\\u1FC6-\\u1FD3\\u1FD6-\\u1FDB\\u1FDD-\\u1FEF\\u1FF2-\\u1FF4\\u1FF6-\\u1FFE\\u200B-\\u200E\\u2010-\\u2027\\u202F-\\u205E\\u2060-\\u2064\\u206A-\\u2071\\u2074-\\u208E\\u2090-\\u209C\\u20A0-\\u20BF\\u20D0-\\u20F0\\u2100-\\u218B\\u2190-\\u2426\\u2440-\\u244A\\u2460-\\u2B73\\u2B76-\\u2B95\\u2B98-\\u2BB9\\u2BBD-\\u2BC8\\u2BCA-\\u2BD2\\u2BEC-\\u2BEF\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CF3\\u2CF9-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D70\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2E49\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303F\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u32FE\\u3300-\\u4DB5\\u4DC0-\\u9FEA\\uA000-\\uA48C\\uA490-\\uA4C6\\uA4D0-\\uA62B\\uA640-\\uA6F7\\uA700-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA82B\\uA830-\\uA839\\uA840-\\uA877\\uA880-\\uA8C5\\uA8CE-\\uA8D9\\uA8E0-\\uA8FD\\uA900-\\uA953\\uA95F-\\uA97C\\uA980-\\uA9CD\\uA9CF-\\uA9D9\\uA9DE-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA5C-\\uAAC2\\uAADB-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB65\\uAB70-\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uD800-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1E\\uFB29\\uFD3E\\uFD3F\\uFDFD\\uFE00-\\uFE19\\uFE20-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFEFF\\uFF01-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFF9-\\uFFFD\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10100}-\\u{10102}\\u{10107}-\\u{10133}\\u{10137}-\\u{1018E}\\u{10190}-\\u{1019B}\\u{101A0}\\u{101D0}-\\u{101FD}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{102E0}-\\u{102FB}\\u{10300}-\\u{10323}\\u{1032D}-\\u{1034A}\\u{10350}-\\u{1037A}\\u{10380}-\\u{1039D}\\u{1039F}-\\u{103C3}\\u{103C8}-\\u{103D5}\\u{10400}-\\u{1049D}\\u{104A0}-\\u{104A9}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{1056F}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{1091F}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{10B39}-\\u{10B3F}\\u{11000}-\\u{1104D}\\u{11052}-\\u{1106F}\\u{1107F}-\\u{110C1}\\u{110D0}-\\u{110E8}\\u{110F0}-\\u{110F9}\\u{11100}-\\u{11134}\\u{11136}-\\u{11143}\\u{11150}-\\u{11176}\\u{11180}-\\u{111CD}\\u{111D0}-\\u{111DF}\\u{111E1}-\\u{111F4}\\u{11200}-\\u{11211}\\u{11213}-\\u{1123E}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A9}\\u{112B0}-\\u{112EA}\\u{112F0}-\\u{112F9}\\u{11300}-\\u{11303}\\u{11305}-\\u{1130C}\\u{1130F}\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}\\u{11333}\\u{11335}-\\u{11339}\\u{1133C}-\\u{11344}\\u{11347}\\u{11348}\\u{1134B}-\\u{1134D}\\u{11350}\\u{11357}\\u{1135D}-\\u{11363}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11400}-\\u{11459}\\u{1145B}\\u{1145D}\\u{11480}-\\u{114C7}\\u{114D0}-\\u{114D9}\\u{11580}-\\u{115B5}\\u{115B8}-\\u{115DD}\\u{11600}-\\u{11644}\\u{11650}-\\u{11659}\\u{11660}-\\u{1166C}\\u{11680}-\\u{116B7}\\u{116C0}-\\u{116C9}\\u{11700}-\\u{11719}\\u{1171D}-\\u{1172B}\\u{11730}-\\u{1173F}\\u{118A0}-\\u{118F2}\\u{118FF}\\u{11A00}-\\u{11A47}\\u{11A50}-\\u{11A83}\\u{11A86}-\\u{11A9C}\\u{11A9E}-\\u{11AA2}\\u{11AC0}-\\u{11AF8}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C36}\\u{11C38}-\\u{11C45}\\u{11C50}-\\u{11C6C}\\u{11C70}-\\u{11C8F}\\u{11C92}-\\u{11CA7}\\u{11CA9}-\\u{11CB6}\\u{11D00}-\\u{11D06}\\u{11D08}\\u{11D09}\\u{11D0B}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D47}\\u{11D50}-\\u{11D59}\\u{12000}-\\u{12399}\\u{12400}-\\u{1246E}\\u{12470}-\\u{12474}\\u{12480}-\\u{12543}\\u{13000}-\\u{1342E}\\u{14400}-\\u{14646}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A60}-\\u{16A69}\\u{16A6E}\\u{16A6F}\\u{16AD0}-\\u{16AED}\\u{16AF0}-\\u{16AF5}\\u{16B00}-\\u{16B45}\\u{16B50}-\\u{16B59}\\u{16B5B}-\\u{16B61}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16F00}-\\u{16F44}\\u{16F50}-\\u{16F7E}\\u{16F8F}-\\u{16F9F}\\u{16FE0}\\u{16FE1}\\u{17000}-\\u{187EC}\\u{18800}-\\u{18AF2}\\u{1B000}-\\u{1B11E}\\u{1B170}-\\u{1B2FB}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1BC9C}-\\u{1BCA3}\\u{1D000}-\\u{1D0F5}\\u{1D100}-\\u{1D126}\\u{1D129}-\\u{1D1E8}\\u{1D200}-\\u{1D245}\\u{1D300}-\\u{1D356}\\u{1D360}-\\u{1D371}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}\\u{1D49F}\\u{1D4A2}\\u{1D4A5}\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D7CB}\\u{1D7CE}-\\u{1DA8B}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{1EEF0}\\u{1EEF1}\\u{1F000}-\\u{1F02B}\\u{1F030}-\\u{1F093}\\u{1F0A0}-\\u{1F0AE}\\u{1F0B1}-\\u{1F0BF}\\u{1F0C1}-\\u{1F0CF}\\u{1F0D1}-\\u{1F0F5}\\u{1F100}-\\u{1F10C}\\u{1F110}-\\u{1F12E}\\u{1F130}-\\u{1F16B}\\u{1F170}-\\u{1F1AC}\\u{1F1E6}-\\u{1F202}\\u{1F210}-\\u{1F23B}\\u{1F240}-\\u{1F248}\\u{1F250}\\u{1F251}\\u{1F260}-\\u{1F265}\\u{1F300}-\\u{1F6D4}\\u{1F6E0}-\\u{1F6EC}\\u{1F6F0}-\\u{1F6F8}\\u{1F700}-\\u{1F773}\\u{1F780}-\\u{1F7D4}\\u{1F800}-\\u{1F80B}\\u{1F810}-\\u{1F847}\\u{1F850}-\\u{1F859}\\u{1F860}-\\u{1F887}\\u{1F890}-\\u{1F8AD}\\u{1F900}-\\u{1F90B}\\u{1F910}-\\u{1F93E}\\u{1F940}-\\u{1F94C}\\u{1F950}-\\u{1F96B}\\u{1F980}-\\u{1F997}\\u{1F9C0}\\u{1F9D0}-\\u{1F9E6}\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2CEB0}-\\u{2EBE0}\\u{2F800}-\\u{2FA1D}\\u{E0001}\\u{E0020}-\\u{E007F}\\u{E0100}-\\u{E01EF}\\u{F0000}-\\u{FFFFD}\\u{100000}-\\u{10FFFD}]*$/u;\nconst bidiS6 = /[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02B8\\u02BB-\\u02C1\\u02D0\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0482\\u048A-\\u052F\\u0531-\\u0556\\u0559-\\u055F\\u0561-\\u0587\\u0589\\u06F0-\\u06F9\\u0903-\\u0939\\u093B\\u093D-\\u0940\\u0949-\\u094C\\u094E-\\u0950\\u0958-\\u0961\\u0964-\\u0980\\u0982\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD-\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09FA\\u09FC\\u09FD\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AF0\\u0AF9\\u0B02\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD0\\u0BD7\\u0BE6-\\u0BF2\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C7F\\u0C80\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D4E\\u0D4F\\u0D54-\\u0D61\\u0D66-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2-\\u0DF4\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E4F-\\u0E5B\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00-\\u0F17\\u0F1A-\\u0F34\\u0F36\\u0F38\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE-\\u0FDA\\u1000-\\u102C\\u1031\\u1038\\u103B\\u103C\\u103F-\\u1057\\u105A-\\u105D\\u1061-\\u1070\\u1075-\\u1081\\u1083\\u1084\\u1087-\\u108C\\u108E-\\u109C\\u109E-\\u10C5\\u10C7\\u10CD\\u10D0-\\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\\u1360-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u167F\\u1681-\\u169A\\u16A0-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1735\\u1736\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u17D4-\\u17DA\\u17DC\\u17E0-\\u17E9\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A19\\u1A1A\\u1A1E-\\u1A55\\u1A57\\u1A61\\u1A63\\u1A64\\u1A6D-\\u1A72\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA0-\\u1AAD\\u1B04-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B4B\\u1B50-\\u1B6A\\u1B74-\\u1B7C\\u1B82-\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1BAE-\\u1BE5\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2\\u1BF3\\u1BFC-\\u1C2B\\u1C34\\u1C35\\u1C3B-\\u1C49\\u1C4D-\\u1C88\\u1CC0-\\u1CC7\\u1CD3\\u1CE1\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5-\\u1CF7\\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\\u200E\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u214F\\u2160-\\u2188\\u2336-\\u237A\\u2395\\u2488-\\u24E9\\u26AC\\u2800-\\u28FF\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D70\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u302E\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u3190-\\u31BA\\u31F0-\\u321C\\u3220-\\u324F\\u3260-\\u327B\\u327F-\\u32B0\\u32C0-\\u32CB\\u32D0-\\u32FE\\u3300-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA680-\\uA69D\\uA6A0-\\uA6EF\\uA6F2-\\uA6F7\\uA722-\\uA787\\uA789-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA824\\uA827\\uA830-\\uA837\\uA840-\\uA873\\uA880-\\uA8C3\\uA8CE-\\uA8D9\\uA8F2-\\uA8FD\\uA900-\\uA925\\uA92E-\\uA946\\uA952\\uA953\\uA95F-\\uA97C\\uA983-\\uA9B2\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BD-\\uA9CD\\uA9CF-\\uA9D9\\uA9DE-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D\\uAA50-\\uAA59\\uAA5C-\\uAA7B\\uAA7D-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAAEB\\uAAEE-\\uAAF5\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB65\\uAB70-\\uABE4\\uABE6\\uABE7\\uABE9-\\uABEC\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uD800-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10100}\\u{10102}\\u{10107}-\\u{10133}\\u{10137}-\\u{1013F}\\u{1018D}\\u{1018E}\\u{101D0}-\\u{101FC}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{102E1}-\\u{102FB}\\u{10300}-\\u{10323}\\u{1032D}-\\u{1034A}\\u{10350}-\\u{10375}\\u{10380}-\\u{1039D}\\u{1039F}-\\u{103C3}\\u{103C8}-\\u{103D5}\\u{10400}-\\u{1049D}\\u{104A0}-\\u{104A9}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{1056F}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{11000}\\u{11002}-\\u{11037}\\u{11047}-\\u{1104D}\\u{11066}-\\u{1106F}\\u{11082}-\\u{110B2}\\u{110B7}\\u{110B8}\\u{110BB}-\\u{110C1}\\u{110D0}-\\u{110E8}\\u{110F0}-\\u{110F9}\\u{11103}-\\u{11126}\\u{1112C}\\u{11136}-\\u{11143}\\u{11150}-\\u{11172}\\u{11174}-\\u{11176}\\u{11182}-\\u{111B5}\\u{111BF}-\\u{111C9}\\u{111CD}\\u{111D0}-\\u{111DF}\\u{111E1}-\\u{111F4}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122E}\\u{11232}\\u{11233}\\u{11235}\\u{11238}-\\u{1123D}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A9}\\u{112B0}-\\u{112DE}\\u{112E0}-\\u{112E2}\\u{112F0}-\\u{112F9}\\u{11302}\\u{11303}\\u{11305}-\\u{1130C}\\u{1130F}\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}\\u{11333}\\u{11335}-\\u{11339}\\u{1133D}-\\u{1133F}\\u{11341}-\\u{11344}\\u{11347}\\u{11348}\\u{1134B}-\\u{1134D}\\u{11350}\\u{11357}\\u{1135D}-\\u{11363}\\u{11400}-\\u{11437}\\u{11440}\\u{11441}\\u{11445}\\u{11447}-\\u{11459}\\u{1145B}\\u{1145D}\\u{11480}-\\u{114B2}\\u{114B9}\\u{114BB}-\\u{114BE}\\u{114C1}\\u{114C4}-\\u{114C7}\\u{114D0}-\\u{114D9}\\u{11580}-\\u{115B1}\\u{115B8}-\\u{115BB}\\u{115BE}\\u{115C1}-\\u{115DB}\\u{11600}-\\u{11632}\\u{1163B}\\u{1163C}\\u{1163E}\\u{11641}-\\u{11644}\\u{11650}-\\u{11659}\\u{11680}-\\u{116AA}\\u{116AC}\\u{116AE}\\u{116AF}\\u{116B6}\\u{116C0}-\\u{116C9}\\u{11700}-\\u{11719}\\u{11720}\\u{11721}\\u{11726}\\u{11730}-\\u{1173F}\\u{118A0}-\\u{118F2}\\u{118FF}\\u{11A00}\\u{11A07}\\u{11A08}\\u{11A0B}-\\u{11A32}\\u{11A39}\\u{11A3A}\\u{11A3F}-\\u{11A46}\\u{11A50}\\u{11A57}\\u{11A58}\\u{11A5C}-\\u{11A83}\\u{11A86}-\\u{11A89}\\u{11A97}\\u{11A9A}-\\u{11A9C}\\u{11A9E}-\\u{11AA2}\\u{11AC0}-\\u{11AF8}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2F}\\u{11C3E}-\\u{11C45}\\u{11C50}-\\u{11C6C}\\u{11C70}-\\u{11C8F}\\u{11CA9}\\u{11CB1}\\u{11CB4}\\u{11D00}-\\u{11D06}\\u{11D08}\\u{11D09}\\u{11D0B}-\\u{11D30}\\u{11D46}\\u{11D50}-\\u{11D59}\\u{12000}-\\u{12399}\\u{12400}-\\u{1246E}\\u{12470}-\\u{12474}\\u{12480}-\\u{12543}\\u{13000}-\\u{1342E}\\u{14400}-\\u{14646}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A60}-\\u{16A69}\\u{16A6E}\\u{16A6F}\\u{16AD0}-\\u{16AED}\\u{16AF5}\\u{16B00}-\\u{16B2F}\\u{16B37}-\\u{16B45}\\u{16B50}-\\u{16B59}\\u{16B5B}-\\u{16B61}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16F00}-\\u{16F44}\\u{16F50}-\\u{16F7E}\\u{16F93}-\\u{16F9F}\\u{16FE0}\\u{16FE1}\\u{17000}-\\u{187EC}\\u{18800}-\\u{18AF2}\\u{1B000}-\\u{1B11E}\\u{1B170}-\\u{1B2FB}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1BC9C}\\u{1BC9F}\\u{1D000}-\\u{1D0F5}\\u{1D100}-\\u{1D126}\\u{1D129}-\\u{1D166}\\u{1D16A}-\\u{1D172}\\u{1D183}\\u{1D184}\\u{1D18C}-\\u{1D1A9}\\u{1D1AE}-\\u{1D1E8}\\u{1D360}-\\u{1D371}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}\\u{1D49F}\\u{1D4A2}\\u{1D4A5}\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6DA}\\u{1D6DC}-\\u{1D714}\\u{1D716}-\\u{1D74E}\\u{1D750}-\\u{1D788}\\u{1D78A}-\\u{1D7C2}\\u{1D7C4}-\\u{1D7CB}\\u{1D7CE}-\\u{1D9FF}\\u{1DA37}-\\u{1DA3A}\\u{1DA6D}-\\u{1DA74}\\u{1DA76}-\\u{1DA83}\\u{1DA85}-\\u{1DA8B}\\u{1F100}-\\u{1F10A}\\u{1F110}-\\u{1F12E}\\u{1F130}-\\u{1F169}\\u{1F170}-\\u{1F1AC}\\u{1F1E6}-\\u{1F202}\\u{1F210}-\\u{1F23B}\\u{1F240}-\\u{1F248}\\u{1F250}\\u{1F251}\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2CEB0}-\\u{2EBE0}\\u{2F800}-\\u{2FA1D}\\u{F0000}-\\u{FFFFD}\\u{100000}-\\u{10FFFD}][\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\u{101FD}\\u{102E0}\\u{10376}-\\u{1037A}\\u{10A01}-\\u{10A03}\\u{10A05}\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10AE5}\\u{10AE6}\\u{11001}\\u{11038}-\\u{11046}\\u{1107F}-\\u{11081}\\u{110B3}-\\u{110B6}\\u{110B9}\\u{110BA}\\u{11100}-\\u{11102}\\u{11127}-\\u{1112B}\\u{1112D}-\\u{11134}\\u{11173}\\u{11180}\\u{11181}\\u{111B6}-\\u{111BE}\\u{111CA}-\\u{111CC}\\u{1122F}-\\u{11231}\\u{11234}\\u{11236}\\u{11237}\\u{1123E}\\u{112DF}\\u{112E3}-\\u{112EA}\\u{11300}\\u{11301}\\u{1133C}\\u{11340}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11438}-\\u{1143F}\\u{11442}-\\u{11444}\\u{11446}\\u{114B3}-\\u{114B8}\\u{114BA}\\u{114BF}\\u{114C0}\\u{114C2}\\u{114C3}\\u{115B2}-\\u{115B5}\\u{115BC}\\u{115BD}\\u{115BF}\\u{115C0}\\u{115DC}\\u{115DD}\\u{11633}-\\u{1163A}\\u{1163D}\\u{1163F}\\u{11640}\\u{116AB}\\u{116AD}\\u{116B0}-\\u{116B5}\\u{116B7}\\u{1171D}-\\u{1171F}\\u{11722}-\\u{11725}\\u{11727}-\\u{1172B}\\u{11A01}-\\u{11A06}\\u{11A09}\\u{11A0A}\\u{11A33}-\\u{11A38}\\u{11A3B}-\\u{11A3E}\\u{11A47}\\u{11A51}-\\u{11A56}\\u{11A59}-\\u{11A5B}\\u{11A8A}-\\u{11A96}\\u{11A98}\\u{11A99}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C92}-\\u{11CA7}\\u{11CAA}-\\u{11CB0}\\u{11CB2}\\u{11CB3}\\u{11CB5}\\u{11CB6}\\u{11D31}-\\u{11D36}\\u{11D3A}\\u{11D3C}\\u{11D3D}\\u{11D3F}-\\u{11D45}\\u{11D47}\\u{16AF0}-\\u{16AF4}\\u{16B30}-\\u{16B36}\\u{16F8F}-\\u{16F92}\\u{1BC9D}\\u{1BC9E}\\u{1D167}-\\u{1D169}\\u{1D17B}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1DA00}-\\u{1DA36}\\u{1DA3B}-\\u{1DA6C}\\u{1DA75}\\u{1DA84}\\u{1DA9B}-\\u{1DA9F}\\u{1DAA1}-\\u{1DAAF}\\u{1E000}-\\u{1E006}\\u{1E008}-\\u{1E018}\\u{1E01B}-\\u{1E021}\\u{1E023}\\u{1E024}\\u{1E026}-\\u{1E02A}\\u{1E8D0}-\\u{1E8D6}\\u{1E944}-\\u{1E94A}\\u{E0100}-\\u{E01EF}]*$/u;\n\nmodule.exports = {\n combiningMarks,\n combiningClassVirama,\n validZWNJ,\n bidiDomain,\n bidiS1LTR,\n bidiS1RTL,\n bidiS2,\n bidiS3,\n bidiS4EN,\n bidiS4AN,\n bidiS5,\n bidiS6\n};\n","\"use strict\";\nconst stableSortBy = require(\"lodash.sortby\");\nconst urlencoded = require(\"./urlencoded\");\n\nexports.implementation = class URLSearchParamsImpl {\n constructor(constructorArgs, { doNotStripQMark = false }) {\n let init = constructorArgs[0];\n this._list = [];\n this._url = null;\n\n if (!doNotStripQMark && typeof init === \"string\" && init[0] === \"?\") {\n init = init.slice(1);\n }\n\n if (Array.isArray(init)) {\n for (const pair of init) {\n if (pair.length !== 2) {\n throw new TypeError(\"Failed to construct 'URLSearchParams': parameter 1 sequence's element does not \" +\n \"contain exactly two elements.\");\n }\n this._list.push([pair[0], pair[1]]);\n }\n } else if (typeof init === \"object\" && Object.getPrototypeOf(init) === null) {\n for (const name of Object.keys(init)) {\n const value = init[name];\n this._list.push([name, value]);\n }\n } else {\n this._list = urlencoded.parseUrlencoded(init);\n }\n }\n\n _updateSteps() {\n if (this._url !== null) {\n let query = urlencoded.serializeUrlencoded(this._list);\n if (query === \"\") {\n query = null;\n }\n this._url._url.query = query;\n }\n }\n\n append(name, value) {\n this._list.push([name, value]);\n this._updateSteps();\n }\n\n delete(name) {\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n this._list.splice(i, 1);\n } else {\n i++;\n }\n }\n this._updateSteps();\n }\n\n get(name) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return tuple[1];\n }\n }\n return null;\n }\n\n getAll(name) {\n const output = [];\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n output.push(tuple[1]);\n }\n }\n return output;\n }\n\n has(name) {\n for (const tuple of this._list) {\n if (tuple[0] === name) {\n return true;\n }\n }\n return false;\n }\n\n set(name, value) {\n let found = false;\n let i = 0;\n while (i < this._list.length) {\n if (this._list[i][0] === name) {\n if (found) {\n this._list.splice(i, 1);\n } else {\n found = true;\n this._list[i][1] = value;\n i++;\n }\n } else {\n i++;\n }\n }\n if (!found) {\n this._list.push([name, value]);\n }\n this._updateSteps();\n }\n\n sort() {\n this._list = stableSortBy(this._list, [0]);\n this._updateSteps();\n }\n\n [Symbol.iterator]() {\n return this._list[Symbol.iterator]();\n }\n\n toString() {\n return urlencoded.serializeUrlencoded(this._list);\n }\n};\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, function(o) { return o.user; });\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n *\n * _.sortBy(users, 'user', function(o) {\n * return Math.floor(o.age / 10);\n * });\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = sortBy;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports', './diff', './added', './deleted', './updated', './detailed'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('./diff'), require('./added'), require('./deleted'), require('./updated'), require('./detailed'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.diff, global.added, global.deleted, global.updated, global.detailed);\n global.index = mod.exports;\n }\n})(this, function (exports, _diff, _added, _deleted, _updated, _detailed) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.detailedDiff = exports.updatedDiff = exports.deletedDiff = exports.diff = exports.addedDiff = undefined;\n\n var _diff2 = _interopRequireDefault(_diff);\n\n var _added2 = _interopRequireDefault(_added);\n\n var _deleted2 = _interopRequireDefault(_deleted);\n\n var _updated2 = _interopRequireDefault(_updated);\n\n var _detailed2 = _interopRequireDefault(_detailed);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n exports.addedDiff = _added2.default;\n exports.diff = _diff2.default;\n exports.deletedDiff = _deleted2.default;\n exports.updatedDiff = _updated2.default;\n exports.detailedDiff = _detailed2.default;\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.utils);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _utils) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var diff = function diff(lhs, rhs) {\n if (lhs === rhs) return {}; // equal return no diff\n\n if (!(0, _utils.isObject)(lhs) || !(0, _utils.isObject)(rhs)) return rhs; // return updated rhs\n\n var l = (0, _utils.properObject)(lhs);\n var r = (0, _utils.properObject)(rhs);\n\n var deletedValues = Object.keys(l).reduce(function (acc, key) {\n return r.hasOwnProperty(key) ? acc : _extends({}, acc, _defineProperty({}, key, undefined));\n }, {});\n\n if ((0, _utils.isDate)(l) || (0, _utils.isDate)(r)) {\n if (l.valueOf() == r.valueOf()) return {};\n return r;\n }\n\n return Object.keys(r).reduce(function (acc, key) {\n if (!l.hasOwnProperty(key)) return _extends({}, acc, _defineProperty({}, key, r[key])); // return added r key\n\n var difference = diff(l[key], r[key]);\n\n if ((0, _utils.isObject)(difference) && (0, _utils.isEmpty)(difference) && !(0, _utils.isDate)(difference)) return acc; // return no diff\n\n return _extends({}, acc, _defineProperty({}, key, difference)); // return updated key\n }, deletedValues);\n };\n\n exports.default = diff;\n module.exports = exports['default'];\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../added', '../deleted', '../updated'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../added'), require('../deleted'), require('../updated'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.added, global.deleted, global.updated);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _added, _deleted, _updated) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _added2 = _interopRequireDefault(_added);\n\n var _deleted2 = _interopRequireDefault(_deleted);\n\n var _updated2 = _interopRequireDefault(_updated);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var detailedDiff = function detailedDiff(lhs, rhs) {\n return {\n added: (0, _added2.default)(lhs, rhs),\n deleted: (0, _deleted2.default)(lhs, rhs),\n updated: (0, _updated2.default)(lhs, rhs)\n };\n };\n\n exports.default = detailedDiff;\n module.exports = exports['default'];\n});","\"use strict\";\n\nvar forEach = require(\"./collection-utils\").forEach;\nvar elementUtilsMaker = require(\"./element-utils\");\nvar listenerHandlerMaker = require(\"./listener-handler\");\nvar idGeneratorMaker = require(\"./id-generator\");\nvar idHandlerMaker = require(\"./id-handler\");\nvar reporterMaker = require(\"./reporter\");\nvar browserDetector = require(\"./browser-detector\");\nvar batchProcessorMaker = require(\"batch-processor\");\nvar stateHandler = require(\"./state-handler\");\n\n//Detection strategies.\nvar objectStrategyMaker = require(\"./detection-strategy/object.js\");\nvar scrollStrategyMaker = require(\"./detection-strategy/scroll.js\");\n\nfunction isCollection(obj) {\n return Array.isArray(obj) || obj.length !== undefined;\n}\n\nfunction toArray(collection) {\n if (!Array.isArray(collection)) {\n var array = [];\n forEach(collection, function (obj) {\n array.push(obj);\n });\n return array;\n } else {\n return collection;\n }\n}\n\nfunction isElement(obj) {\n return obj && obj.nodeType === 1;\n}\n\n/**\n * @typedef idHandler\n * @type {object}\n * @property {function} get Gets the resize detector id of the element.\n * @property {function} set Generate and sets the resize detector id of the element.\n */\n\n/**\n * @typedef Options\n * @type {object}\n * @property {boolean} callOnAdd Determines if listeners should be called when they are getting added.\n Default is true. If true, the listener is guaranteed to be called when it has been added.\n If false, the listener will not be guarenteed to be called when it has been added (does not prevent it from being called).\n * @property {idHandler} idHandler A custom id handler that is responsible for generating, setting and retrieving id's for elements.\n If not provided, a default id handler will be used.\n * @property {reporter} reporter A custom reporter that handles reporting logs, warnings and errors.\n If not provided, a default id handler will be used.\n If set to false, then nothing will be reported.\n * @property {boolean} debug If set to true, the the system will report debug messages as default for the listenTo method.\n */\n\n/**\n * Creates an element resize detector instance.\n * @public\n * @param {Options?} options Optional global options object that will decide how this instance will work.\n */\nmodule.exports = function(options) {\n options = options || {};\n\n //idHandler is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var idHandler;\n\n if (options.idHandler) {\n // To maintain compatability with idHandler.get(element, readonly), make sure to wrap the given idHandler\n // so that readonly flag always is true when it's used here. This may be removed next major version bump.\n idHandler = {\n get: function (element) { return options.idHandler.get(element, true); },\n set: options.idHandler.set\n };\n } else {\n var idGenerator = idGeneratorMaker();\n var defaultIdHandler = idHandlerMaker({\n idGenerator: idGenerator,\n stateHandler: stateHandler\n });\n idHandler = defaultIdHandler;\n }\n\n //reporter is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var reporter = options.reporter;\n\n if(!reporter) {\n //If options.reporter is false, then the reporter should be quiet.\n var quiet = reporter === false;\n reporter = reporterMaker(quiet);\n }\n\n //batchProcessor is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var batchProcessor = getOption(options, \"batchProcessor\", batchProcessorMaker({ reporter: reporter }));\n\n //Options to be used as default for the listenTo function.\n var globalOptions = {};\n globalOptions.callOnAdd = !!getOption(options, \"callOnAdd\", true);\n globalOptions.debug = !!getOption(options, \"debug\", false);\n\n var eventListenerHandler = listenerHandlerMaker(idHandler);\n var elementUtils = elementUtilsMaker({\n stateHandler: stateHandler\n });\n\n //The detection strategy to be used.\n var detectionStrategy;\n var desiredStrategy = getOption(options, \"strategy\", \"object\");\n var strategyOptions = {\n reporter: reporter,\n batchProcessor: batchProcessor,\n stateHandler: stateHandler,\n idHandler: idHandler\n };\n\n if(desiredStrategy === \"scroll\") {\n if (browserDetector.isLegacyOpera()) {\n reporter.warn(\"Scroll strategy is not supported on legacy Opera. Changing to object strategy.\");\n desiredStrategy = \"object\";\n } else if (browserDetector.isIE(9)) {\n reporter.warn(\"Scroll strategy is not supported on IE9. Changing to object strategy.\");\n desiredStrategy = \"object\";\n }\n }\n\n if(desiredStrategy === \"scroll\") {\n detectionStrategy = scrollStrategyMaker(strategyOptions);\n } else if(desiredStrategy === \"object\") {\n detectionStrategy = objectStrategyMaker(strategyOptions);\n } else {\n throw new Error(\"Invalid strategy name: \" + desiredStrategy);\n }\n\n //Calls can be made to listenTo with elements that are still being installed.\n //Also, same elements can occur in the elements list in the listenTo function.\n //With this map, the ready callbacks can be synchronized between the calls\n //so that the ready callback can always be called when an element is ready - even if\n //it wasn't installed from the function itself.\n var onReadyCallbacks = {};\n\n /**\n * Makes the given elements resize-detectable and starts listening to resize events on the elements. Calls the event callback for each event for each element.\n * @public\n * @param {Options?} options Optional options object. These options will override the global options. Some options may not be overriden, such as idHandler.\n * @param {element[]|element} elements The given array of elements to detect resize events of. Single element is also valid.\n * @param {function} listener The callback to be executed for each resize event for each element.\n */\n function listenTo(options, elements, listener) {\n function onResizeCallback(element) {\n var listeners = eventListenerHandler.get(element);\n forEach(listeners, function callListenerProxy(listener) {\n listener(element);\n });\n }\n\n function addListener(callOnAdd, element, listener) {\n eventListenerHandler.add(element, listener);\n\n if(callOnAdd) {\n listener(element);\n }\n }\n\n //Options object may be omitted.\n if(!listener) {\n listener = elements;\n elements = options;\n options = {};\n }\n\n if(!elements) {\n throw new Error(\"At least one element required.\");\n }\n\n if(!listener) {\n throw new Error(\"Listener required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n var elementsReady = 0;\n\n var callOnAdd = getOption(options, \"callOnAdd\", globalOptions.callOnAdd);\n var onReadyCallback = getOption(options, \"onReady\", function noop() {});\n var debug = getOption(options, \"debug\", globalOptions.debug);\n\n forEach(elements, function attachListenerToElement(element) {\n if (!stateHandler.getState(element)) {\n stateHandler.initState(element);\n idHandler.set(element);\n }\n\n var id = idHandler.get(element);\n\n debug && reporter.log(\"Attaching listener to element\", id, element);\n\n if(!elementUtils.isDetectable(element)) {\n debug && reporter.log(id, \"Not detectable.\");\n if(elementUtils.isBusy(element)) {\n debug && reporter.log(id, \"System busy making it detectable\");\n\n //The element is being prepared to be detectable. Do not make it detectable.\n //Just add the listener, because the element will soon be detectable.\n addListener(callOnAdd, element, listener);\n onReadyCallbacks[id] = onReadyCallbacks[id] || [];\n onReadyCallbacks[id].push(function onReady() {\n elementsReady++;\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n return;\n }\n\n debug && reporter.log(id, \"Making detectable...\");\n //The element is not prepared to be detectable, so do prepare it and add a listener to it.\n elementUtils.markBusy(element, true);\n return detectionStrategy.makeDetectable({ debug: debug }, element, function onElementDetectable(element) {\n debug && reporter.log(id, \"onElementDetectable\");\n\n if (stateHandler.getState(element)) {\n elementUtils.markAsDetectable(element);\n elementUtils.markBusy(element, false);\n detectionStrategy.addListener(element, onResizeCallback);\n addListener(callOnAdd, element, listener);\n\n // Since the element size might have changed since the call to \"listenTo\", we need to check for this change,\n // so that a resize event may be emitted.\n // Having the startSize object is optional (since it does not make sense in some cases such as unrendered elements), so check for its existance before.\n // Also, check the state existance before since the element may have been uninstalled in the installation process.\n var state = stateHandler.getState(element);\n if (state && state.startSize) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n if (state.startSize.width !== width || state.startSize.height !== height) {\n onResizeCallback(element);\n }\n }\n\n if(onReadyCallbacks[id]) {\n forEach(onReadyCallbacks[id], function(callback) {\n callback();\n });\n }\n } else {\n // The element has been unisntalled before being detectable.\n debug && reporter.log(id, \"Element uninstalled before being detectable.\");\n }\n\n delete onReadyCallbacks[id];\n\n elementsReady++;\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n }\n\n debug && reporter.log(id, \"Already detecable, adding listener.\");\n\n //The element has been prepared to be detectable and is ready to be listened to.\n addListener(callOnAdd, element, listener);\n elementsReady++;\n });\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n }\n\n function uninstall(elements) {\n if(!elements) {\n return reporter.error(\"At least one element is required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n forEach(elements, function (element) {\n eventListenerHandler.removeAllListeners(element);\n detectionStrategy.uninstall(element);\n stateHandler.cleanState(element);\n });\n }\n\n return {\n listenTo: listenTo,\n removeListener: eventListenerHandler.removeListener,\n removeAllListeners: eventListenerHandler.removeAllListeners,\n uninstall: uninstall\n };\n};\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","\"use strict\";\n\nmodule.exports = function(options) {\n var getState = options.stateHandler.getState;\n\n /**\n * Tells if the element has been made detectable and ready to be listened for resize events.\n * @public\n * @param {element} The element to check.\n * @returns {boolean} True or false depending on if the element is detectable or not.\n */\n function isDetectable(element) {\n var state = getState(element);\n return state && !!state.isDetectable;\n }\n\n /**\n * Marks the element that it has been made detectable and ready to be listened for resize events.\n * @public\n * @param {element} The element to mark.\n */\n function markAsDetectable(element) {\n getState(element).isDetectable = true;\n }\n\n /**\n * Tells if the element is busy or not.\n * @public\n * @param {element} The element to check.\n * @returns {boolean} True or false depending on if the element is busy or not.\n */\n function isBusy(element) {\n return !!getState(element).busy;\n }\n\n /**\n * Marks the object is busy and should not be made detectable.\n * @public\n * @param {element} element The element to mark.\n * @param {boolean} busy If the element is busy or not.\n */\n function markBusy(element, busy) {\n getState(element).busy = !!busy;\n }\n\n return {\n isDetectable: isDetectable,\n markAsDetectable: markAsDetectable,\n isBusy: isBusy,\n markBusy: markBusy\n };\n};\n","\"use strict\";\n\nmodule.exports = function(idHandler) {\n var eventListeners = {};\n\n /**\n * Gets all listeners for the given element.\n * @public\n * @param {element} element The element to get all listeners for.\n * @returns All listeners for the given element.\n */\n function getListeners(element) {\n var id = idHandler.get(element);\n\n if (id === undefined) {\n return [];\n }\n\n return eventListeners[id] || [];\n }\n\n /**\n * Stores the given listener for the given element. Will not actually add the listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The callback that the element has added.\n */\n function addListener(element, listener) {\n var id = idHandler.get(element);\n\n if(!eventListeners[id]) {\n eventListeners[id] = [];\n }\n\n eventListeners[id].push(listener);\n }\n\n function removeListener(element, listener) {\n var listeners = getListeners(element);\n for (var i = 0, len = listeners.length; i < len; ++i) {\n if (listeners[i] === listener) {\n listeners.splice(i, 1);\n break;\n }\n }\n }\n\n function removeAllListeners(element) {\n var listeners = getListeners(element);\n if (!listeners) { return; }\n listeners.length = 0;\n }\n\n return {\n get: getListeners,\n add: addListener,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners\n };\n};\n","\"use strict\";\n\nmodule.exports = function() {\n var idCount = 1;\n\n /**\n * Generates a new unique id in the context.\n * @public\n * @returns {number} A unique id in the context.\n */\n function generate() {\n return idCount++;\n }\n\n return {\n generate: generate\n };\n};\n","\"use strict\";\n\nmodule.exports = function(options) {\n var idGenerator = options.idGenerator;\n var getState = options.stateHandler.getState;\n\n /**\n * Gets the resize detector id of the element.\n * @public\n * @param {element} element The target element to get the id of.\n * @returns {string|number|null} The id of the element. Null if it has no id.\n */\n function getId(element) {\n var state = getState(element);\n\n if (state && state.id !== undefined) {\n return state.id;\n }\n\n return null;\n }\n\n /**\n * Sets the resize detector id of the element. Requires the element to have a resize detector state initialized.\n * @public\n * @param {element} element The target element to set the id of.\n * @returns {string|number|null} The id of the element.\n */\n function setId(element) {\n var state = getState(element);\n\n if (!state) {\n throw new Error(\"setId required the element to have a resize detection state.\");\n }\n\n var id = idGenerator.generate();\n\n state.id = id;\n\n return id;\n }\n\n return {\n get: getId,\n set: setId\n };\n};\n","\"use strict\";\n\n/* global console: false */\n\n/**\n * Reporter that handles the reporting of logs, warnings and errors.\n * @public\n * @param {boolean} quiet Tells if the reporter should be quiet or not.\n */\nmodule.exports = function(quiet) {\n function noop() {\n //Does nothing.\n }\n\n var reporter = {\n log: noop,\n warn: noop,\n error: noop\n };\n\n if(!quiet && window.console) {\n var attachFunction = function(reporter, name) {\n //The proxy is needed to be able to call the method with the console context,\n //since we cannot use bind.\n reporter[name] = function reporterProxy() {\n var f = console[name];\n if (f.apply) { //IE9 does not support console.log.apply :)\n f.apply(console, arguments);\n } else {\n for (var i = 0; i < arguments.length; i++) {\n f(arguments[i]);\n }\n }\n };\n };\n\n attachFunction(reporter, \"log\");\n attachFunction(reporter, \"warn\");\n attachFunction(reporter, \"error\");\n }\n\n return reporter;\n};","\"use strict\";\n\nvar utils = require(\"./utils\");\n\nmodule.exports = function batchProcessorMaker(options) {\n options = options || {};\n var reporter = options.reporter;\n var asyncProcess = utils.getOption(options, \"async\", true);\n var autoProcess = utils.getOption(options, \"auto\", true);\n\n if(autoProcess && !asyncProcess) {\n reporter && reporter.warn(\"Invalid options combination. auto=true and async=false is invalid. Setting async=true.\");\n asyncProcess = true;\n }\n\n var batch = Batch();\n var asyncFrameHandler;\n var isProcessing = false;\n\n function addFunction(level, fn) {\n if(!isProcessing && autoProcess && asyncProcess && batch.size() === 0) {\n // Since this is async, it is guaranteed to be executed after that the fn is added to the batch.\n // This needs to be done before, since we're checking the size of the batch to be 0.\n processBatchAsync();\n }\n\n batch.add(level, fn);\n }\n\n function processBatch() {\n // Save the current batch, and create a new batch so that incoming functions are not added into the currently processing batch.\n // Continue processing until the top-level batch is empty (functions may be added to the new batch while processing, and so on).\n isProcessing = true;\n while (batch.size()) {\n var processingBatch = batch;\n batch = Batch();\n processingBatch.process();\n }\n isProcessing = false;\n }\n\n function forceProcessBatch(localAsyncProcess) {\n if (isProcessing) {\n return;\n }\n\n if(localAsyncProcess === undefined) {\n localAsyncProcess = asyncProcess;\n }\n\n if(asyncFrameHandler) {\n cancelFrame(asyncFrameHandler);\n asyncFrameHandler = null;\n }\n\n if(localAsyncProcess) {\n processBatchAsync();\n } else {\n processBatch();\n }\n }\n\n function processBatchAsync() {\n asyncFrameHandler = requestFrame(processBatch);\n }\n\n function clearBatch() {\n batch = {};\n batchSize = 0;\n topLevel = 0;\n bottomLevel = 0;\n }\n\n function cancelFrame(listener) {\n // var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;\n var cancel = clearTimeout;\n return cancel(listener);\n }\n\n function requestFrame(callback) {\n // var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(fn) { return window.setTimeout(fn, 20); };\n var raf = function(fn) { return setTimeout(fn, 0); };\n return raf(callback);\n }\n\n return {\n add: addFunction,\n force: forceProcessBatch\n };\n};\n\nfunction Batch() {\n var batch = {};\n var size = 0;\n var topLevel = 0;\n var bottomLevel = 0;\n\n function add(level, fn) {\n if(!fn) {\n fn = level;\n level = 0;\n }\n\n if(level > topLevel) {\n topLevel = level;\n } else if(level < bottomLevel) {\n bottomLevel = level;\n }\n\n if(!batch[level]) {\n batch[level] = [];\n }\n\n batch[level].push(fn);\n size++;\n }\n\n function process() {\n for(var level = bottomLevel; level <= topLevel; level++) {\n var fns = batch[level];\n\n for(var i = 0; i < fns.length; i++) {\n var fn = fns[i];\n fn();\n }\n }\n }\n\n function getSize() {\n return size;\n }\n\n return {\n add: add,\n process: process,\n size: getSize\n };\n}\n","\"use strict\";\n\nvar utils = module.exports = {};\n\nutils.getOption = getOption;\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","\"use strict\";\n\nvar prop = \"_erd\";\n\nfunction initState(element) {\n element[prop] = {};\n return getState(element);\n}\n\nfunction getState(element) {\n return element[prop];\n}\n\nfunction cleanState(element) {\n delete element[prop];\n}\n\nmodule.exports = {\n initState: initState,\n getState: getState,\n cleanState: cleanState\n};\n","/**\n * Resize detection strategy that injects objects to elements in order to detect resize events.\n * Heavily inspired by: http://www.backalleycoder.com/2013/03/18/cross-browser-event-based-element-resize-detection/\n */\n\n\"use strict\";\n\nvar browserDetector = require(\"../browser-detector\");\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n\n if(!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n if(!getObject(element)) {\n throw new Error(\"Element is not detectable by this strategy.\");\n }\n\n function listenerProxy() {\n listener(element);\n }\n\n if(browserDetector.isIE(8)) {\n //IE 8 does not support object, but supports the resize event directly on elements.\n getState(element).object = {\n proxy: listenerProxy\n };\n element.attachEvent(\"onresize\", listenerProxy);\n } else {\n var object = getObject(element);\n object.contentDocument.defaultView.addEventListener(\"resize\", listenerProxy);\n }\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n var debug = options.debug;\n\n function injectObject(element, callback) {\n var OBJECT_STYLE = \"display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; padding: 0; margin: 0; opacity: 0; z-index: -1000; pointer-events: none;\";\n\n //The target element needs to be positioned (everything except static) so the absolute positioned object will be positioned relative to the target element.\n\n // Position altering may be performed directly or on object load, depending on if style resolution is possible directly or not.\n var positionCheckPerformed = false;\n\n // The element may not yet be attached to the DOM, and therefore the style object may be empty in some browsers.\n // Since the style object is a reference, it will be updated as soon as the element is attached to the DOM.\n var style = window.getComputedStyle(element);\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n getState(element).startSize = {\n width: width,\n height: height\n };\n\n function mutateDom() {\n function alterPositionStyles() {\n if(style.position === \"static\") {\n element.style.position = \"relative\";\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function onObjectLoad() {\n // The object has been loaded, which means that the element now is guaranteed to be attached to the DOM.\n if (!positionCheckPerformed) {\n alterPositionStyles();\n }\n\n /*jshint validthis: true */\n\n function getDocument(element, callback) {\n //Opera 12 seem to call the object.onload before the actual document has been created.\n //So if it is not present, poll it with an timeout until it is present.\n //TODO: Could maybe be handled better with object.onreadystatechange or similar.\n if(!element.contentDocument) {\n setTimeout(function checkForObjectDocument() {\n getDocument(element, callback);\n }, 100);\n\n return;\n }\n\n callback(element.contentDocument);\n }\n\n //Mutating the object element here seems to fire another load event.\n //Mutating the inner document of the object element is fine though.\n var objectElement = this;\n\n //Create the style element to be added to the object.\n getDocument(objectElement, function onObjectDocumentReady(objectDocument) {\n //Notify that the element is ready to be listened to.\n callback(element);\n });\n }\n\n // The element may be detached from the DOM, and some browsers does not support style resolving of detached elements.\n // The alterPositionStyles needs to be delayed until we know the element has been attached to the DOM (which we are sure of when the onObjectLoad has been fired), if style resolution is not possible.\n if (style.position !== \"\") {\n alterPositionStyles(style);\n positionCheckPerformed = true;\n }\n\n //Add an object element as a child to the target element that will be listened to for resize events.\n var object = document.createElement(\"object\");\n object.style.cssText = OBJECT_STYLE;\n object.tabIndex = -1;\n object.type = \"text/html\";\n object.onload = onObjectLoad;\n\n //Safari: This must occur before adding the object to the DOM.\n //IE: Does not like that this happens before, even if it is also added after.\n if(!browserDetector.isIE()) {\n object.data = \"about:blank\";\n }\n\n element.appendChild(object);\n getState(element).object = object;\n\n //IE: This must occur after adding the object to the DOM.\n if(browserDetector.isIE()) {\n object.data = \"about:blank\";\n }\n }\n\n if(batchProcessor) {\n batchProcessor.add(mutateDom);\n } else {\n mutateDom();\n }\n }\n\n if(browserDetector.isIE(8)) {\n //IE 8 does not support objects properly. Luckily they do support the resize event.\n //So do not inject the object and notify that the element is already ready to be listened to.\n //The event handler for the resize event is attached in the utils.addListener instead.\n callback(element);\n } else {\n injectObject(element, callback);\n }\n }\n\n /**\n * Returns the child object of the target element.\n * @private\n * @param {element} element The target element.\n * @returns The object element of the target.\n */\n function getObject(element) {\n return getState(element).object;\n }\n\n function uninstall(element) {\n if(browserDetector.isIE(8)) {\n element.detachEvent(\"onresize\", getState(element).object.proxy);\n } else {\n element.removeChild(getObject(element));\n }\n delete getState(element).object;\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall\n };\n};\n","/**\n * Resize detection strategy that injects divs to elements in order to detect resize events on scroll events.\n * Heavily inspired by: https://github.com/marcj/css-element-queries/blob/master/src/ResizeSensor.js\n */\n\n\"use strict\";\n\nvar forEach = require(\"../collection-utils\").forEach;\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n var hasState = options.stateHandler.hasState;\n var idHandler = options.idHandler;\n\n if (!batchProcessor) {\n throw new Error(\"Missing required dependency: batchProcessor\");\n }\n\n if (!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n //TODO: Could this perhaps be done at installation time?\n var scrollbarSizes = getScrollbarSizes();\n\n // Inject the scrollbar styling that prevents them from appearing sometimes in Chrome.\n // The injected container needs to have a class, so that it may be styled with CSS (pseudo elements).\n var styleId = \"erd_scroll_detection_scrollbar_style\";\n var detectionContainerClass = \"erd_scroll_detection_container\";\n injectScrollStyle(styleId, detectionContainerClass);\n\n function getScrollbarSizes() {\n var width = 500;\n var height = 500;\n\n var child = document.createElement(\"div\");\n child.style.cssText = \"position: absolute; width: \" + width*2 + \"px; height: \" + height*2 + \"px; visibility: hidden; margin: 0; padding: 0;\";\n\n var container = document.createElement(\"div\");\n container.style.cssText = \"position: absolute; width: \" + width + \"px; height: \" + height + \"px; overflow: scroll; visibility: none; top: \" + -width*3 + \"px; left: \" + -height*3 + \"px; visibility: hidden; margin: 0; padding: 0;\";\n\n container.appendChild(child);\n\n document.body.insertBefore(container, document.body.firstChild);\n\n var widthSize = width - container.clientWidth;\n var heightSize = height - container.clientHeight;\n\n document.body.removeChild(container);\n\n return {\n width: widthSize,\n height: heightSize\n };\n }\n\n function injectScrollStyle(styleId, containerClass) {\n function injectStyle(style, method) {\n method = method || function (element) {\n document.head.appendChild(element);\n };\n\n var styleElement = document.createElement(\"style\");\n styleElement.innerHTML = style;\n styleElement.id = styleId;\n method(styleElement);\n return styleElement;\n }\n\n if (!document.getElementById(styleId)) {\n var containerAnimationClass = containerClass + \"_animation\";\n var containerAnimationActiveClass = containerClass + \"_animation_active\";\n var style = \"/* Created by the element-resize-detector library. */\\n\";\n style += \".\" + containerClass + \" > div::-webkit-scrollbar { display: none; }\\n\\n\";\n style += \".\" + containerAnimationActiveClass + \" { -webkit-animation-duration: 0.1s; animation-duration: 0.1s; -webkit-animation-name: \" + containerAnimationClass + \"; animation-name: \" + containerAnimationClass + \"; }\\n\";\n style += \"@-webkit-keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\\n\";\n style += \"@keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\";\n injectStyle(style);\n }\n }\n\n function addAnimationClass(element) {\n element.className += \" \" + detectionContainerClass + \"_animation_active\";\n }\n\n function addEvent(el, name, cb) {\n if (el.addEventListener) {\n el.addEventListener(name, cb);\n } else if(el.attachEvent) {\n el.attachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to add event listeners.\");\n }\n }\n\n function removeEvent(el, name, cb) {\n if (el.removeEventListener) {\n el.removeEventListener(name, cb);\n } else if(el.detachEvent) {\n el.detachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to remove event listeners.\");\n }\n }\n\n function getExpandElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[0];\n }\n\n function getShrinkElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[1];\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n var listeners = getState(element).listeners;\n\n if (!listeners.push) {\n throw new Error(\"Cannot add listener to an element that is not detectable.\");\n }\n\n getState(element).listeners.push(listener);\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n\n function debug() {\n if (options.debug) {\n var args = Array.prototype.slice.call(arguments);\n args.unshift(idHandler.get(element), \"Scroll: \");\n if (reporter.log.apply) {\n reporter.log.apply(null, args);\n } else {\n for (var i = 0; i < args.length; i++) {\n reporter.log(args[i]);\n }\n }\n }\n }\n\n function isDetached(element) {\n function isInDocument(element) {\n return element === element.ownerDocument.body || element.ownerDocument.body.contains(element);\n }\n\n if (!isInDocument(element)) {\n return true;\n }\n\n // FireFox returns null style in hidden iframes. See https://github.com/wnr/element-resize-detector/issues/68 and https://bugzilla.mozilla.org/show_bug.cgi?id=795520\n if (window.getComputedStyle(element) === null) {\n return true;\n }\n\n return false;\n }\n\n function isUnrendered(element) {\n // Check the absolute positioned container since the top level container is display: inline.\n var container = getState(element).container.childNodes[0];\n var style = window.getComputedStyle(container);\n return !style.width || style.width.indexOf(\"px\") === -1; //Can only compute pixel value when rendered.\n }\n\n function getStyle() {\n // Some browsers only force layouts when actually reading the style properties of the style object, so make sure that they are all read here,\n // so that the user of the function can be sure that it will perform the layout here, instead of later (important for batching).\n var elementStyle = window.getComputedStyle(element);\n var style = {};\n style.position = elementStyle.position;\n style.width = element.offsetWidth;\n style.height = element.offsetHeight;\n style.top = elementStyle.top;\n style.right = elementStyle.right;\n style.bottom = elementStyle.bottom;\n style.left = elementStyle.left;\n style.widthCSS = elementStyle.width;\n style.heightCSS = elementStyle.height;\n return style;\n }\n\n function storeStartSize() {\n var style = getStyle();\n getState(element).startSize = {\n width: style.width,\n height: style.height\n };\n debug(\"Element start size\", getState(element).startSize);\n }\n\n function initListeners() {\n getState(element).listeners = [];\n }\n\n function storeStyle() {\n debug(\"storeStyle invoked.\");\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getStyle();\n getState(element).style = style;\n }\n\n function storeCurrentSize(element, width, height) {\n getState(element).lastWidth = width;\n getState(element).lastHeight = height;\n }\n\n function getExpandChildElement(element) {\n return getExpandElement(element).childNodes[0];\n }\n\n function getWidthOffset() {\n return 2 * scrollbarSizes.width + 1;\n }\n\n function getHeightOffset() {\n return 2 * scrollbarSizes.height + 1;\n }\n\n function getExpandWidth(width) {\n return width + 10 + getWidthOffset();\n }\n\n function getExpandHeight(height) {\n return height + 10 + getHeightOffset();\n }\n\n function getShrinkWidth(width) {\n return width * 2 + getWidthOffset();\n }\n\n function getShrinkHeight(height) {\n return height * 2 + getHeightOffset();\n }\n\n function positionScrollbars(element, width, height) {\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n var shrinkWidth = getShrinkWidth(width);\n var shrinkHeight = getShrinkHeight(height);\n expand.scrollLeft = expandWidth;\n expand.scrollTop = expandHeight;\n shrink.scrollLeft = shrinkWidth;\n shrink.scrollTop = shrinkHeight;\n }\n\n function injectContainerElement() {\n var container = getState(element).container;\n\n if (!container) {\n container = document.createElement(\"div\");\n container.className = detectionContainerClass;\n container.style.cssText = \"visibility: hidden; display: inline; width: 0px; height: 0px; z-index: -1; overflow: hidden; margin: 0; padding: 0;\";\n getState(element).container = container;\n addAnimationClass(container);\n element.appendChild(container);\n\n var onAnimationStart = function () {\n getState(element).onRendered && getState(element).onRendered();\n };\n\n addEvent(container, \"animationstart\", onAnimationStart);\n\n // Store the event handler here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onAnimationStart = onAnimationStart;\n }\n\n return container;\n }\n\n function injectScrollElements() {\n function alterPositionStyles() {\n var style = getState(element).style;\n\n if(style.position === \"static\") {\n element.style.position = \"relative\";\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function getLeftTopBottomRightCssText(left, top, bottom, right) {\n left = (!left ? \"0\" : (left + \"px\"));\n top = (!top ? \"0\" : (top + \"px\"));\n bottom = (!bottom ? \"0\" : (bottom + \"px\"));\n right = (!right ? \"0\" : (right + \"px\"));\n\n return \"left: \" + left + \"; top: \" + top + \"; right: \" + right + \"; bottom: \" + bottom + \";\";\n }\n\n debug(\"Injecting elements\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n alterPositionStyles();\n\n var rootContainer = getState(element).container;\n\n if (!rootContainer) {\n rootContainer = injectContainerElement();\n }\n\n // Due to this WebKit bug https://bugs.webkit.org/show_bug.cgi?id=80808 (currently fixed in Blink, but still present in WebKit browsers such as Safari),\n // we need to inject two containers, one that is width/height 100% and another that is left/top -1px so that the final container always is 1x1 pixels bigger than\n // the targeted element.\n // When the bug is resolved, \"containerContainer\" may be removed.\n\n // The outer container can occasionally be less wide than the targeted when inside inline elements element in WebKit (see https://bugs.webkit.org/show_bug.cgi?id=152980).\n // This should be no problem since the inner container either way makes sure the injected scroll elements are at least 1x1 px.\n\n var scrollbarWidth = scrollbarSizes.width;\n var scrollbarHeight = scrollbarSizes.height;\n var containerContainerStyle = \"position: absolute; flex: none; overflow: hidden; z-index: -1; visibility: hidden; width: 100%; height: 100%; left: 0px; top: 0px;\";\n var containerStyle = \"position: absolute; flex: none; overflow: hidden; z-index: -1; visibility: hidden; \" + getLeftTopBottomRightCssText(-(1 + scrollbarWidth), -(1 + scrollbarHeight), -scrollbarHeight, -scrollbarWidth);\n var expandStyle = \"position: absolute; flex: none; overflow: scroll; z-index: -1; visibility: hidden; width: 100%; height: 100%;\";\n var shrinkStyle = \"position: absolute; flex: none; overflow: scroll; z-index: -1; visibility: hidden; width: 100%; height: 100%;\";\n var expandChildStyle = \"position: absolute; left: 0; top: 0;\";\n var shrinkChildStyle = \"position: absolute; width: 200%; height: 200%;\";\n\n var containerContainer = document.createElement(\"div\");\n var container = document.createElement(\"div\");\n var expand = document.createElement(\"div\");\n var expandChild = document.createElement(\"div\");\n var shrink = document.createElement(\"div\");\n var shrinkChild = document.createElement(\"div\");\n\n // Some browsers choke on the resize system being rtl, so force it to ltr. https://github.com/wnr/element-resize-detector/issues/56\n // However, dir should not be set on the top level container as it alters the dimensions of the target element in some browsers.\n containerContainer.dir = \"ltr\";\n\n containerContainer.style.cssText = containerContainerStyle;\n containerContainer.className = detectionContainerClass;\n container.className = detectionContainerClass;\n container.style.cssText = containerStyle;\n expand.style.cssText = expandStyle;\n expandChild.style.cssText = expandChildStyle;\n shrink.style.cssText = shrinkStyle;\n shrinkChild.style.cssText = shrinkChildStyle;\n\n expand.appendChild(expandChild);\n shrink.appendChild(shrinkChild);\n container.appendChild(expand);\n container.appendChild(shrink);\n containerContainer.appendChild(container);\n rootContainer.appendChild(containerContainer);\n\n function onExpandScroll() {\n getState(element).onExpand && getState(element).onExpand();\n }\n\n function onShrinkScroll() {\n getState(element).onShrink && getState(element).onShrink();\n }\n\n addEvent(expand, \"scroll\", onExpandScroll);\n addEvent(shrink, \"scroll\", onShrinkScroll);\n\n // Store the event handlers here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onExpandScroll = onExpandScroll;\n getState(element).onShrinkScroll = onShrinkScroll;\n }\n\n function registerListenersAndPositionElements() {\n function updateChildSizes(element, width, height) {\n var expandChild = getExpandChildElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n expandChild.style.width = expandWidth + \"px\";\n expandChild.style.height = expandHeight + \"px\";\n }\n\n function updateDetectorElements(done) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n debug(\"Storing current size\", width, height);\n\n // Store the size of the element sync here, so that multiple scroll events may be ignored in the event listeners.\n // Otherwise the if-check in handleScroll is useless.\n storeCurrentSize(element, width, height);\n\n // Since we delay the processing of the batch, there is a risk that uninstall has been called before the batch gets to execute.\n // Since there is no way to cancel the fn executions, we need to add an uninstall guard to all fns of the batch.\n\n batchProcessor.add(0, function performUpdateChildSizes() {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n if (options.debug) {\n var w = element.offsetWidth;\n var h = element.offsetHeight;\n\n if (w !== width || h !== height) {\n reporter.warn(idHandler.get(element), \"Scroll: Size changed before updating detector elements.\");\n }\n }\n\n updateChildSizes(element, width, height);\n });\n\n batchProcessor.add(1, function updateScrollbars() {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n positionScrollbars(element, width, height);\n });\n\n if (done) {\n batchProcessor.add(2, function () {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n done();\n });\n }\n }\n\n function areElementsInjected() {\n return !!getState(element).container;\n }\n\n function notifyListenersIfNeeded() {\n function isFirstNotify() {\n return getState(element).lastNotifiedWidth === undefined;\n }\n\n debug(\"notifyListenersIfNeeded invoked\");\n\n var state = getState(element);\n\n // Don't notify the if the current size is the start size, and this is the first notification.\n if (isFirstNotify() && state.lastWidth === state.startSize.width && state.lastHeight === state.startSize.height) {\n return debug(\"Not notifying: Size is the same as the start size, and there has been no notification yet.\");\n }\n\n // Don't notify if the size already has been notified.\n if (state.lastWidth === state.lastNotifiedWidth && state.lastHeight === state.lastNotifiedHeight) {\n return debug(\"Not notifying: Size already notified\");\n }\n\n\n debug(\"Current size not notified, notifying...\");\n state.lastNotifiedWidth = state.lastWidth;\n state.lastNotifiedHeight = state.lastHeight;\n forEach(getState(element).listeners, function (listener) {\n listener(element);\n });\n }\n\n function handleRender() {\n debug(\"startanimation triggered.\");\n\n if (isUnrendered(element)) {\n debug(\"Ignoring since element is still unrendered...\");\n return;\n }\n\n debug(\"Element rendered.\");\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n if (expand.scrollLeft === 0 || expand.scrollTop === 0 || shrink.scrollLeft === 0 || shrink.scrollTop === 0) {\n debug(\"Scrollbars out of sync. Updating detector elements...\");\n updateDetectorElements(notifyListenersIfNeeded);\n }\n }\n\n function handleScroll() {\n debug(\"Scroll detected.\");\n\n if (isUnrendered(element)) {\n // Element is still unrendered. Skip this scroll event.\n debug(\"Scroll event fired while unrendered. Ignoring...\");\n return;\n }\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (width !== getState(element).lastWidth || height !== getState(element).lastHeight) {\n debug(\"Element size changed.\");\n updateDetectorElements(notifyListenersIfNeeded);\n } else {\n debug(\"Element size has not changed (\" + width + \"x\" + height + \").\");\n }\n }\n\n debug(\"registerListenersAndPositionElements invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n getState(element).onRendered = handleRender;\n getState(element).onExpand = handleScroll;\n getState(element).onShrink = handleScroll;\n\n var style = getState(element).style;\n updateChildSizes(element, style.width, style.height);\n }\n\n function finalizeDomMutation() {\n debug(\"finalizeDomMutation invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getState(element).style;\n storeCurrentSize(element, style.width, style.height);\n positionScrollbars(element, style.width, style.height);\n }\n\n function ready() {\n callback(element);\n }\n\n function install() {\n debug(\"Installing...\");\n initListeners();\n storeStartSize();\n\n batchProcessor.add(0, storeStyle);\n batchProcessor.add(1, injectScrollElements);\n batchProcessor.add(2, registerListenersAndPositionElements);\n batchProcessor.add(3, finalizeDomMutation);\n batchProcessor.add(4, ready);\n }\n\n debug(\"Making detectable...\");\n\n if (isDetached(element)) {\n debug(\"Element is detached\");\n\n injectContainerElement();\n\n debug(\"Waiting until element is attached...\");\n\n getState(element).onRendered = function () {\n debug(\"Element is now attached\");\n install();\n };\n } else {\n install();\n }\n }\n\n function uninstall(element) {\n var state = getState(element);\n\n if (!state) {\n // Uninstall has been called on a non-erd element.\n return;\n }\n\n // Uninstall may have been called in the following scenarios:\n // (1) Right between the sync code and async batch (here state.busy = true, but nothing have been registered or injected).\n // (2) In the ready callback of the last level of the batch by another element (here, state.busy = true, but all the stuff has been injected).\n // (3) After the installation process (here, state.busy = false and all the stuff has been injected).\n // So to be on the safe side, let's check for each thing before removing.\n\n // We need to remove the event listeners, because otherwise the event might fire on an uninstall element which results in an error when trying to get the state of the element.\n state.onExpandScroll && removeEvent(getExpandElement(element), \"scroll\", state.onExpandScroll);\n state.onShrinkScroll && removeEvent(getShrinkElement(element), \"scroll\", state.onShrinkScroll);\n state.onAnimationStart && removeEvent(state.container, \"animationstart\", state.onAnimationStart);\n\n state.container && element.removeChild(state.container);\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall\n };\n};\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { clearDiv, createHorizontalLine } from './atom-xterm-utils'\r\n\r\nclass AtomXtermDeleteProfileElementImpl extends HTMLElement {\r\n initialize (model) {\r\n this.model = model\r\n this.model.setElement(this)\r\n this.messageDiv = document.createElement('div')\r\n this.messageDiv.classList.add('atom-xterm-modal-message')\r\n this.appendChild(this.messageDiv)\r\n this.appendChild(createHorizontalLine())\r\n this.promptButtonsDiv = document.createElement('div')\r\n this.promptButtonsDiv.classList.add('atom-xterm-modal-buttons-div')\r\n this.appendChild(this.promptButtonsDiv)\r\n }\r\n\r\n setNewPrompt (profileName, confirmHandler, cancelHandler) {\r\n clearDiv(this.messageDiv)\r\n clearDiv(this.promptButtonsDiv)\r\n let text = 'Delete existing profile \\'' + profileName + '\\'?'\r\n this.messageDiv.appendChild(document.createTextNode(text))\r\n let confirmButton = document.createElement('button')\r\n confirmButton.classList.add('atom-xterm-modal-button')\r\n confirmButton.appendChild(document.createTextNode('Confirm'))\r\n confirmButton.addEventListener('click', confirmHandler)\r\n this.promptButtonsDiv.appendChild(confirmButton)\r\n let cancelButton = document.createElement('button')\r\n cancelButton.classList.add('atom-xterm-modal-button')\r\n cancelButton.appendChild(document.createTextNode('Cancel'))\r\n cancelButton.addEventListener('click', cancelHandler)\r\n this.promptButtonsDiv.appendChild(cancelButton)\r\n }\r\n}\r\n\r\nconst AtomXtermDeleteProfileElement = document.registerElement('atom-xterm-delete-profile', {\r\n prototype: AtomXtermDeleteProfileElementImpl.prototype\r\n})\r\n\r\nexport {\r\n AtomXtermDeleteProfileElement\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { clearDiv, createHorizontalLine } from './atom-xterm-utils'\r\n\r\nclass AtomXtermOverwriteProfileElementImpl extends HTMLElement {\r\n initialize (model) {\r\n this.model = model\r\n this.model.setElement(this)\r\n this.messageDiv = document.createElement('div')\r\n this.messageDiv.classList.add('atom-xterm-modal-message')\r\n this.appendChild(this.messageDiv)\r\n this.appendChild(createHorizontalLine())\r\n this.promptButtonsDiv = document.createElement('div')\r\n this.promptButtonsDiv.classList.add('atom-xterm-modal-buttons-div')\r\n this.appendChild(this.promptButtonsDiv)\r\n }\r\n\r\n setNewPrompt (profileName, confirmHandler, cancelHandler) {\r\n clearDiv(this.messageDiv)\r\n clearDiv(this.promptButtonsDiv)\r\n let text = 'Overwrite existing profile \\'' + profileName + '\\'?'\r\n this.messageDiv.appendChild(document.createTextNode(text))\r\n let confirmButton = document.createElement('button')\r\n confirmButton.classList.add('atom-xterm-modal-button')\r\n confirmButton.appendChild(document.createTextNode('Confirm'))\r\n confirmButton.addEventListener('click', confirmHandler)\r\n this.promptButtonsDiv.appendChild(confirmButton)\r\n let cancelButton = document.createElement('button')\r\n cancelButton.classList.add('atom-xterm-modal-button')\r\n cancelButton.appendChild(document.createTextNode('Cancel'))\r\n cancelButton.addEventListener('click', cancelHandler)\r\n this.promptButtonsDiv.appendChild(cancelButton)\r\n }\r\n}\r\n\r\nconst AtomXtermOverwriteProfileElement = document.registerElement('atom-xterm-overwrite-profile', {\r\n prototype: AtomXtermOverwriteProfileElementImpl.prototype\r\n})\r\n\r\nexport {\r\n AtomXtermOverwriteProfileElement\r\n}\r\n","/** @babel */\r\n/*\r\n * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n * Copyright 2017-2018 Andres Mejia . All Rights Reserved.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\r\n * software and associated documentation files (the \"Software\"), to deal in the Software\r\n * without restriction, including without limitation the rights to use, copy, modify,\r\n * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n * permit persons to whom the Software is furnished to do so.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n\r\nimport { clearDiv } from './atom-xterm-utils'\r\n\r\nclass AtomXtermSaveProfileElementImpl extends HTMLElement {\r\n initialize (model) {\r\n this.model = model\r\n this.model.setElement(this)\r\n this.textboxDiv = document.createElement('div')\r\n this.textboxDiv.classList.add('atom-xterm-save-profile-textbox')\r\n this.appendChild(this.textboxDiv)\r\n this.messageDiv = document.createElement('div')\r\n this.messageDiv.classList.add('atom-xterm-modal-message')\r\n this.messageDiv.appendChild(document.createTextNode('Enter new profile name'))\r\n this.appendChild(this.messageDiv)\r\n }\r\n\r\n setNewTextbox (textbox) {\r\n clearDiv(this.textboxDiv)\r\n this.textboxDiv.appendChild(textbox.getElement())\r\n }\r\n}\r\n\r\nconst AtomXtermSaveProfileElement = document.registerElement('atom-xterm-save-profile', {\r\n prototype: AtomXtermSaveProfileElementImpl.prototype\r\n})\r\n\r\nexport {\r\n AtomXtermSaveProfileElement\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file