diff --git a/CHANGELOG.md b/CHANGELOG.md index 913311b7..29282aae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ All notable changes to the [VSCode NLP++ extension](http://vscode.visualtext.org Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. +### 3.11.13 +LLM prompts can point at the help files. + +- Prompt files can now use a `{{helpDir}}` placeholder, filled in with your machine's `Help/markdown` directory. The **Prime Claude for NLP++** prompt uses it to send Claude to the per-function help pages and the `vscode/home.md` index instead of guessing function signatures. + ### 3.11.12 NLP++ math functions: `floor`, `ceiling`, `round` and friends. diff --git a/dist/extension.js b/dist/extension.js index 58b2e237..0a263e9c 100644 --- a/dist/extension.js +++ b/dist/extension.js @@ -1,2 +1,2 @@ /*! For license information please see extension.js.LICENSE.txt */ -(()=>{var e={867(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createFileSystemAdapter=t.FILE_SYSTEM_ADAPTER=void 0;const i=s(9896);t.FILE_SYSTEM_ADAPTER={lstat:i.lstat,stat:i.stat,lstatSync:i.lstatSync,statSync:i.statSync,readdir:i.readdir,readdirSync:i.readdirSync},t.createFileSystemAdapter=function(e){return void 0===e?t.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),e)}},4584(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;const s=process.versions.node.split(".");if(void 0===s[0]||void 0===s[1])throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);const i=Number.parseInt(s[0],10),n=Number.parseInt(s[1],10),a=i>10,r=10===i&&n>=10;t.IS_SUPPORT_READDIR_WITH_FILE_TYPES=a||r},5857(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Settings=t.scandirSync=t.scandir=void 0;const i=s(3160),n=s(7753),a=s(1212);function r(e={}){return e instanceof a.default?e:new a.default(e)}t.Settings=a.default,t.scandir=function(e,t,s){"function"!=typeof t?i.read(e,r(t),s):i.read(e,r(),t)},t.scandirSync=function(e,t){const s=r(t);return n.read(e,s)}},3160(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.readdir=t.readdirWithFileTypes=t.read=void 0;const i=s(8631),n=s(8190),a=s(4584),r=s(8947),o=s(951);function l(e,t,s){t.fs.readdir(e,{withFileTypes:!0},(i,a)=>{if(null!==i)return void u(s,i);const l=a.map(s=>({dirent:s,name:s.name,path:o.joinPathSegments(e,s.name,t.pathSegmentSeparator)}));if(!t.followSymbolicLinks)return void d(s,l);const c=l.map(e=>function(e,t){return s=>{e.dirent.isSymbolicLink()?t.fs.stat(e.path,(i,n)=>{if(null!==i)return t.throwErrorOnBrokenSymbolicLink?void s(i):void s(null,e);e.dirent=r.fs.createDirentFromStats(e.name,n),s(null,e)}):s(null,e)}}(e,t));n(c,(e,t)=>{null===e?d(s,t):u(s,e)})})}function c(e,t,s){t.fs.readdir(e,(a,l)=>{if(null!==a)return void u(s,a);const c=l.map(s=>{const n=o.joinPathSegments(e,s,t.pathSegmentSeparator);return e=>{i.stat(n,t.fsStatSettings,(i,a)=>{if(null!==i)return void e(i);const o={name:s,path:n,dirent:r.fs.createDirentFromStats(s,a)};t.stats&&(o.stats=a),e(null,o)})}});n(c,(e,t)=>{null===e?d(s,t):u(s,e)})})}function u(e,t){e(t)}function d(e,t){e(null,t)}t.read=function(e,t,s){t.stats||!a.IS_SUPPORT_READDIR_WITH_FILE_TYPES?c(e,t,s):l(e,t,s)},t.readdirWithFileTypes=l,t.readdir=c},951(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.joinPathSegments=void 0,t.joinPathSegments=function(e,t,s){return e.endsWith(s)?e+t:e+s+t}},7753(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.readdir=t.readdirWithFileTypes=t.read=void 0;const i=s(8631),n=s(4584),a=s(8947),r=s(951);function o(e,t){return t.fs.readdirSync(e,{withFileTypes:!0}).map(s=>{const i={dirent:s,name:s.name,path:r.joinPathSegments(e,s.name,t.pathSegmentSeparator)};if(i.dirent.isSymbolicLink()&&t.followSymbolicLinks)try{const e=t.fs.statSync(i.path);i.dirent=a.fs.createDirentFromStats(i.name,e)}catch(e){if(t.throwErrorOnBrokenSymbolicLink)throw e}return i})}function l(e,t){return t.fs.readdirSync(e).map(s=>{const n=r.joinPathSegments(e,s,t.pathSegmentSeparator),o=i.statSync(n,t.fsStatSettings),l={name:s,path:n,dirent:a.fs.createDirentFromStats(s,o)};return t.stats&&(l.stats=o),l})}t.read=function(e,t){return!t.stats&&n.IS_SUPPORT_READDIR_WITH_FILE_TYPES?o(e,t):l(e,t)},t.readdirWithFileTypes=o,t.readdir=l},1212(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(6928),n=s(8631),a=s(867);t.default=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=a.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,i.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new n.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return null!=e?e:t}}},8352(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createDirentFromStats=void 0;class s{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}}t.createDirentFromStats=function(e,t){return new s(e,t)}},8947(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fs=void 0;const i=s(8352);t.fs=i},7105(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createFileSystemAdapter=t.FILE_SYSTEM_ADAPTER=void 0;const i=s(9896);t.FILE_SYSTEM_ADAPTER={lstat:i.lstat,stat:i.stat,lstatSync:i.lstatSync,statSync:i.statSync},t.createFileSystemAdapter=function(e){return void 0===e?t.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),e)}},8631(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.statSync=t.stat=t.Settings=void 0;const i=s(5422),n=s(7675),a=s(1682);function r(e={}){return e instanceof a.default?e:new a.default(e)}t.Settings=a.default,t.stat=function(e,t,s){"function"!=typeof t?i.read(e,r(t),s):i.read(e,r(),t)},t.statSync=function(e,t){const s=r(t);return n.read(e,s)}},5422(e,t){"use strict";function s(e,t){e(t)}function i(e,t){e(null,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.read=void 0,t.read=function(e,t,n){t.fs.lstat(e,(a,r)=>{null===a?r.isSymbolicLink()&&t.followSymbolicLink?t.fs.stat(e,(e,a)=>{if(null!==e)return t.throwErrorOnBrokenSymbolicLink?void s(n,e):void i(n,r);t.markSymbolicLink&&(a.isSymbolicLink=()=>!0),i(n,a)}):i(n,r):s(n,a)})}},7675(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.read=void 0,t.read=function(e,t){const s=t.fs.lstatSync(e);if(!s.isSymbolicLink()||!t.followSymbolicLink)return s;try{const s=t.fs.statSync(e);return t.markSymbolicLink&&(s.isSymbolicLink=()=>!0),s}catch(e){if(!t.throwErrorOnBrokenSymbolicLink)return s;throw e}}},1682(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(7105);t.default=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=i.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return null!=e?e:t}}},764(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Settings=t.walkStream=t.walkSync=t.walk=void 0;const i=s(6105),n=s(5981),a=s(6354),r=s(611);function o(e={}){return e instanceof r.default?e:new r.default(e)}t.Settings=r.default,t.walk=function(e,t,s){"function"!=typeof t?new i.default(e,o(t)).read(s):new i.default(e,o()).read(t)},t.walkSync=function(e,t){const s=o(t);return new a.default(e,s).read()},t.walkStream=function(e,t){const s=o(t);return new n.default(e,s).read()}},6105(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(2695);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new i.default(this._root,this._settings),this._storage=[]}read(e){this._reader.onError(t=>{!function(e,t){e(t)}(e,t)}),this._reader.onEntry(e=>{this._storage.push(e)}),this._reader.onEnd(()=>{!function(e,t){e(null,t)}(e,this._storage)}),this._reader.read()}}},5981(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(2203),n=s(2695);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new n.default(this._root,this._settings),this._stream=new i.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}}},6354(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(7660);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new i.default(this._root,this._settings)}read(){return this._reader.read()}}},2695(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(4434),n=s(5857),a=s(6697),r=s(9966),o=s(5700);class l extends o.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=n.scandir,this._emitter=new i.EventEmitter,this._queue=a(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){const s={directory:e,base:t};this._queue.push(s,e=>{null!==e&&this._handleError(e)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(s,i)=>{if(null===s){for(const t of i)this._handleEntry(t,e.base);t(null,void 0)}else t(s,void 0)})}_handleError(e){!this._isDestroyed&&r.isFatalError(this._settings,e)&&(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;const s=e.path;void 0!==t&&(e.path=r.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),r.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&r.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(s,void 0===t?void 0:e.path)}_emitEntry(e){this._emitter.emit("entry",e)}}t.default=l},9966(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.joinPathSegments=t.replacePathSegmentSeparator=t.isAppliedFilter=t.isFatalError=void 0,t.isFatalError=function(e,t){return null===e.errorFilter||!e.errorFilter(t)},t.isAppliedFilter=function(e,t){return null===e||e(t)},t.replacePathSegmentSeparator=function(e,t){return e.split(/[/\\]/).join(t)},t.joinPathSegments=function(e,t,s){return""===e?t:e.endsWith(s)?e+t:e+s+t}},5700(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(9966);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._root=i.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}}},7660(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(5857),n=s(9966),a=s(5700);class r extends a.default{constructor(){super(...arguments),this._scandir=i.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(const e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{const s=this._scandir(e,this._settings.fsScandirSettings);for(const e of s)this._handleEntry(e,t)}catch(e){this._handleError(e)}}_handleError(e){if(n.isFatalError(this._settings,e))throw e}_handleEntry(e,t){const s=e.path;void 0!==t&&(e.path=n.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),n.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&n.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(s,void 0===t?void 0:e.path)}_pushToStorage(e){this._storage.push(e)}}t.default=r},611(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(6928),n=s(5857);t.default=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,i.sep),this.fsScandirSettings=new n.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return null!=e?e:t}}},9724(e,t,s){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const n=s(4434),a=i(s(5753)),r=i(s(1956)),o=a.default("agent-base");function l(){const{stack:e}=new Error;return"string"==typeof e&&e.split("\n").some(e=>-1!==e.indexOf("(https.js:")||-1!==e.indexOf("node:https:"))}function c(e,t){return new c.Agent(e,t)}!function(e){class t extends n.EventEmitter{constructor(e,t){super();let s=t;"function"==typeof e?this.callback=e:e&&(s=e),this.timeout=null,s&&"number"==typeof s.timeout&&(this.timeout=s.timeout),this.maxFreeSockets=1,this.maxSockets=1,this.maxTotalSockets=1/0,this.sockets={},this.freeSockets={},this.requests={},this.options={}}get defaultPort(){return"number"==typeof this.explicitDefaultPort?this.explicitDefaultPort:l()?443:80}set defaultPort(e){this.explicitDefaultPort=e}get protocol(){return"string"==typeof this.explicitProtocol?this.explicitProtocol:l()?"https:":"http:"}set protocol(e){this.explicitProtocol=e}callback(e,t,s){throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`')}addRequest(e,t){const s=Object.assign({},t);"boolean"!=typeof s.secureEndpoint&&(s.secureEndpoint=l()),null==s.host&&(s.host="localhost"),null==s.port&&(s.port=s.secureEndpoint?443:80),null==s.protocol&&(s.protocol=s.secureEndpoint?"https:":"http:"),s.host&&s.path&&delete s.path,delete s.agent,delete s.hostname,delete s._defaultAgent,delete s.defaultPort,delete s.createConnection,e._last=!0,e.shouldKeepAlive=!1;let i=!1,n=null;const a=s.timeout||this.timeout,c=t=>{e._hadError||(e.emit("error",t),e._hadError=!0)},u=()=>{n=null,i=!0;const e=new Error(`A "socket" was not created for HTTP request before ${a}ms`);e.code="ETIMEOUT",c(e)},d=e=>{i||(null!==n&&(clearTimeout(n),n=null),c(e))},p=t=>{if(i)return;if(null!=n&&(clearTimeout(n),n=null),a=t,Boolean(a)&&"function"==typeof a.addRequest)return o("Callback returned another Agent instance %o",t.constructor.name),void t.addRequest(e,s);var a;if(t)return t.once("free",()=>{this.freeSocket(t,s)}),void e.onSocket(t);const r=new Error(`no Duplex stream was returned to agent-base for \`${e.method} ${e.path}\``);c(r)};if("function"==typeof this.callback){this.promisifiedCallback||(this.callback.length>=3?(o("Converting legacy callback function to promise"),this.promisifiedCallback=r.default(this.callback)):this.promisifiedCallback=this.callback),"number"==typeof a&&a>0&&(n=setTimeout(u,a)),"port"in s&&"number"!=typeof s.port&&(s.port=Number(s.port));try{o("Resolving socket for %o request: %o",s.protocol,`${e.method} ${e.path}`),Promise.resolve(this.promisifiedCallback(e,s)).then(p,d)}catch(e){Promise.reject(e).catch(d)}}else c(new Error("`callback` is not defined"))}freeSocket(e,t){o("Freeing socket %o %o",e.constructor.name,t),e.destroy()}destroy(){o("Destroying agent %o",this.constructor.name)}}e.Agent=t,e.prototype=e.Agent.prototype}(c||(c={})),e.exports=c},1956(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,s){return new Promise((i,n)=>{e.call(this,t,s,(e,t)=>{e?n(e):i(t)})})}}},4537(e,t,s){"use strict";const i=s(3720),n=s(8712),a=s(8697),r=s(2598),o=(e,t={})=>{let s=[];if(Array.isArray(e))for(const i of e){const e=o.create(i,t);Array.isArray(e)?s.push(...e):s.push(e)}else s=[].concat(o.create(e,t));return t&&!0===t.expand&&!0===t.nodupes&&(s=[...new Set(s)]),s};o.parse=(e,t={})=>r(e,t),o.stringify=(e,t={})=>i("string"==typeof e?o.parse(e,t):e,t),o.compile=(e,t={})=>("string"==typeof e&&(e=o.parse(e,t)),n(e,t)),o.expand=(e,t={})=>{"string"==typeof e&&(e=o.parse(e,t));let s=a(e,t);return!0===t.noempty&&(s=s.filter(Boolean)),!0===t.nodupes&&(s=[...new Set(s)]),s},o.create=(e,t={})=>""===e||e.length<3?[e]:!0!==t.expand?o.compile(e,t):o.expand(e,t),e.exports=o},8712(e,t,s){"use strict";const i=s(7028),n=s(7612);e.exports=(e,t={})=>{const s=(e,a={})=>{const r=n.isInvalidBrace(a),o=!0===e.invalid&&!0===t.escapeInvalid,l=!0===r||!0===o,c=!0===t.escapeInvalid?"\\":"";let u="";if(!0===e.isOpen)return c+e.value;if(!0===e.isClose)return console.log("node.isClose",c,e.value),c+e.value;if("open"===e.type)return l?c+e.value:"(";if("close"===e.type)return l?c+e.value:")";if("comma"===e.type)return"comma"===e.prev.type?"":l?e.value:"|";if(e.value)return e.value;if(e.nodes&&e.ranges>0){const s=n.reduce(e.nodes),a=i(...s,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(0!==a.length)return s.length>1&&a.length>1?`(${a})`:a}if(e.nodes)for(const t of e.nodes)u+=s(t,e);return u};return s(e)}},8776(e){"use strict";e.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:"\n",CHAR_NO_BREAK_SPACE:" ",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"}},8697(e,t,s){"use strict";const i=s(7028),n=s(3720),a=s(7612),r=(e="",t="",s=!1)=>{const i=[];if(e=[].concat(e),!(t=[].concat(t)).length)return e;if(!e.length)return s?a.flatten(t).map(e=>`{${e}}`):t;for(const n of e)if(Array.isArray(n))for(const e of n)i.push(r(e,t,s));else for(let e of t)!0===s&&"string"==typeof e&&(e=`{${e}}`),i.push(Array.isArray(e)?r(n,e,s):n+e);return a.flatten(i)};e.exports=(e,t={})=>{const s=void 0===t.rangeLimit?1e3:t.rangeLimit,o=(e,l={})=>{e.queue=[];let c=l,u=l.queue;for(;"brace"!==c.type&&"root"!==c.type&&c.parent;)c=c.parent,u=c.queue;if(e.invalid||e.dollar)return void u.push(r(u.pop(),n(e,t)));if("brace"===e.type&&!0!==e.invalid&&2===e.nodes.length)return void u.push(r(u.pop(),["{}"]));if(e.nodes&&e.ranges>0){const o=a.reduce(e.nodes);if(a.exceedsLimit(...o,t.step,s))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let l=i(...o,t);return 0===l.length&&(l=n(e,t)),u.push(r(u.pop(),l)),void(e.nodes=[])}const d=a.encloseBrace(e);let p=e.queue,m=e;for(;"brace"!==m.type&&"root"!==m.type&&m.parent;)m=m.parent,p=m.queue;for(let t=0;t{if("string"!=typeof e)throw new TypeError("Expected a string");const s=t||{},v="number"==typeof s.maxLength?Math.min(n,s.maxLength):n;if(e.length>v)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${v})`);const x={type:"root",input:e,nodes:[]},w=[x];let b=x,T=x,L=0;const M=e.length;let k,D=0,S=0;const E=()=>e[D++],Y=e=>{if("text"===e.type&&"dot"===T.type&&(T.type="text"),!T||"text"!==T.type||"text"!==e.type)return b.nodes.push(e),e.parent=b,e.prev=T,T=e,e;T.value+=e.value};for(Y({type:"bos"});D0){if(b.ranges>0){b.ranges=0;const e=b.nodes.shift();b.nodes=[e,{type:"text",value:i(b)}]}Y({type:"comma",value:k}),b.commas++}else{if(k===l&&S>0&&0===b.commas){const e=b.nodes;if(0===S||0===e.length){Y({type:"text",value:k});continue}if("dot"===T.type){if(b.range=[],T.value+=k,T.type="range",3!==b.nodes.length&&5!==b.nodes.length){b.invalid=!0,b.ranges=0,T.type="text";continue}b.ranges++,b.args=[];continue}if("range"===T.type){e.pop();const t=e[e.length-1];t.value+=T.value+k,T=t,b.ranges--;continue}Y({type:"dot",value:k});continue}Y({type:"text",value:k})}}else{if("paren"!==b.type){Y({type:"text",value:k});continue}b=w.pop(),Y({type:"text",value:k}),b=w[w.length-1]}else b=Y({type:"paren",nodes:[]}),w.push(b),Y({type:"text",value:k})}else Y({type:"text",value:"\\"+k});else Y({type:"text",value:(t.keepEscaping?k:"")+E()});do{if(b=w.pop(),"root"!==b.type){b.nodes.forEach(e=>{e.nodes||("open"===e.type&&(e.isOpen=!0),"close"===e.type&&(e.isClose=!0),e.nodes||(e.type="text"),e.invalid=!0)});const e=w[w.length-1],t=e.nodes.indexOf(b);e.nodes.splice(t,1,...b.nodes)}}while(w.length>0);return Y({type:"eos"}),x}},3720(e,t,s){"use strict";const i=s(7612);e.exports=(e,t={})=>{const s=(e,n={})=>{const a=t.escapeInvalid&&i.isInvalidBrace(n),r=!0===e.invalid&&!0===t.escapeInvalid;let o="";if(e.value)return(a||r)&&i.isOpenOrClose(e)?"\\"+e.value:e.value;if(e.value)return e.value;if(e.nodes)for(const t of e.nodes)o+=s(t);return o};return s(e)}},7612(e,t){"use strict";t.isInteger=e=>"number"==typeof e?Number.isInteger(e):"string"==typeof e&&""!==e.trim()&&Number.isInteger(Number(e)),t.find=(e,t)=>e.nodes.find(e=>e.type===t),t.exceedsLimit=(e,s,i=1,n)=>!1!==n&&!(!t.isInteger(e)||!t.isInteger(s))&&(Number(s)-Number(e))/Number(i)>=n,t.escapeNode=(e,t=0,s)=>{const i=e.nodes[t];i&&(s&&i.type===s||"open"===i.type||"close"===i.type)&&!0!==i.escaped&&(i.value="\\"+i.value,i.escaped=!0)},t.encloseBrace=e=>!("brace"!==e.type||e.commas>>0+e.ranges|0||(e.invalid=!0,0)),t.isInvalidBrace=e=>!("brace"!==e.type||!0!==e.invalid&&!e.dollar&&(e.commas>>0+e.ranges|0&&!0===e.open&&!0===e.close||(e.invalid=!0,0))),t.isOpenOrClose=e=>"open"===e.type||"close"===e.type||!0===e.open||!0===e.close,t.reduce=e=>e.reduce((e,t)=>("text"===t.type&&e.push(t.value),"range"===t.type&&(t.type="text"),e),[]),t.flatten=(...e)=>{const t=[],s=e=>{for(let i=0;i>>8;return-1^s}function o(){return e=r.apply(null,arguments),(t=a(4)).writeInt32BE(e,0),t;var e,t}"undefined"!=typeof Int32Array&&(n=new Int32Array(n)),o.signed=function(){return r.apply(null,arguments)},o.unsigned=function(){return r.apply(null,arguments)>>>0},e.exports=o},5206(e,t,s){var i=s(4899),n=s(5380);i.sync=n,e.exports=i},4899(e,t,s){var i=s(9896),n=s(6928);function a(e,t,s,a){"function"==typeof s&&(a?s={filter:s}:(a=s,s={filter:function(){return!0}})),"function"!=typeof a&&(a=function(){}),void 0===s.cover&&(s.cover=!0),s.filter="function"==typeof s.filter?s.filter:function(e,t,i){return s.filter},i.lstat(e,function(o,u){if(o)a(o);else{var d=u.isDirectory()?"directory":u.isFile()?"file":u.isSymbolicLink()?"symbolicLink":"",p=s.filter(d,e,n.basename(e));"directory"===d||"symbolicLink"===d?p?i.stat(t,function(n){n?"ENOENT"===n.code?i.mkdir(t,function(i){i?a(i):(s.debug&&console.log(">> "+t),c(t,s,u,function(i){i?a(i):r(e,t,s,a)}))}):a(n):c(t,s,u,function(i){i?a(i):r(e,t,s,a)})}):a():u.isFile()?p?s.cover?l(e,t,s,u,a):i.stat(t,function(i){i?"ENOENT"===i.code?l(e,t,s,u,a):a(i):a()}):a():a(new Error("stats invalid: "+e))}})}function r(e,t,s,n){i.readdir(e,function(i,a){i?n(i):o(a,e,t,s,n)})}function o(e,t,s,i,r){if(0===e.length)r(null);else{var l=e.shift();a(n.join(t,l),n.join(s,l),i,function(n){n?r(n):o(e,t,s,i,r)})}}function l(e,t,s,n,a){i.readFile(e,"binary",function(e,r){e?a(e):i.writeFile(t,r,"binary",function(e){e?a(e):(s.debug&&console.log(">> "+t),c(t,s,n,a))})})}function c(e,t,s,n){t.cover?function(e,t,s){t?i.chmod(e,t,s):s()}(e,!0===t.mode?s.mode:t.mode,function(a){a?n(a):function(e,t,s){t?i.utimes(e,t.atime,t.mtime,s):s()}(e,!0===t.utimes?{atime:s.atime,mtime:s.mtime}:t.utimes,n)}):n()}e.exports=a},5380(e,t,s){var i=s(9896),n=s(6928);function a(e,t,s){"function"==typeof s&&(s={filter:s}),void 0===s&&(s={}),void 0===s.cover&&(s.cover=!0),s.filter="function"==typeof s.filter?s.filter:function(e,t,i){return s.filter};var a=i.lstatSync(e),c=a.isDirectory()?"directory":a.isFile()?"file":a.isSymbolicLink()?"symbolicLink":"",u=s.filter(c,e,n.basename(e));if("directory"===c||"symbolicLink"===c){if(u){try{i.statSync(t)}catch(e){if("ENOENT"!==e.code)throw e;i.mkdirSync(t),s.debug&&console.log(">> "+t)}l(t,s,a),function(e,t,s){r(i.readdirSync(e),e,t,s)}(e,t,s)}}else{if(!a.isFile())throw new Error("stats invalid: "+e);if(u)if(s.cover)o(e,t,s,a);else try{i.statSync(t)}catch(i){if("ENOENT"!==i.code)throw i;o(e,t,s,a)}}}function r(e,t,s,i){if(0===e.length)return!0;var o=e.shift();a(n.join(t,o),n.join(s,o),i),r(e,t,s,i)}function o(e,t,s,n){i.writeFileSync(t,i.readFileSync(e,"binary"),"binary"),s.debug&&console.log(">> "+t),l(t,s,n)}function l(e,t,s,n){if(t.cover){var a=!0===t.mode?s.mode:t.mode,r=!0===t.utimes?{atime:s.atime,mtime:s.mtime}:t.utimes;a&&i.chmodSync(e,a),r&&i.utimesSync(e,r.atime,r.mtime)}return!0}e.exports=a},7833(e,t,s){t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const s="color: "+this.color;t.splice(1,0,s,"color: inherit");let i=0,n=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(i++,"%c"===e&&(n=i))}),t.splice(n,0,s)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=s(736)(t);const{formatters:i}=e.exports;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},736(e,t,s){e.exports=function(e){function t(e){let s,n,a,r=null;function o(...e){if(!o.enabled)return;const i=o,n=Number(new Date),a=n-(s||n);i.diff=a,i.prev=s,i.curr=n,s=n,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let r=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(s,n)=>{if("%%"===s)return"%";r++;const a=t.formatters[n];if("function"==typeof a){const t=e[r];s=a.call(i,t),e.splice(r,1),r--}return s}),t.formatArgs.call(i,e),(i.log||t.log).apply(i,e)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=i,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==r?r:(n!==t.namespaces&&(n=t.namespaces,a=t.enabled(e)),a),set:e=>{r=e}}),"function"==typeof t.init&&t.init(o),o}function i(e,s){const i=t(this.namespace+(void 0===s?":":s)+e);return i.log=this.log,i}function n(e,t){let s=0,i=0,n=-1,a=0;for(;s"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){t.save(e),t.namespaces=e,t.names=[],t.skips=[];const s=("string"==typeof e?e:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const e of s)"-"===e[0]?t.skips.push(e.slice(1)):t.names.push(e)},t.enabled=function(e){for(const s of t.skips)if(n(e,s))return!1;for(const s of t.names)if(n(e,s))return!0;return!1},t.humanize=s(6585),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach(s=>{t[s]=e[s]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let s=0;for(let t=0;t{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{const e=s(7687);e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{const s=t.substring(6).toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase());let i=process.env[t];return i=!!/^(yes|on|true|enabled)$/i.test(i)||!/^(no|off|false|disabled)$/i.test(i)&&("null"===i?null:Number(i)),e[s]=i,e},{}),e.exports=s(736)(t);const{formatters:a}=e.exports;a.o=function(e){return this.inspectOpts.colors=this.useColors,n.inspect(e,this.inspectOpts).split("\n").map(e=>e.trim()).join(" ")},a.O=function(e){return this.inspectOpts.colors=this.useColors,n.inspect(e,this.inspectOpts)}},6611(e,t,s){var i=s(3519),n=function(){},a=function(e,t,s){if("function"==typeof t)return a(e,null,t);t||(t={}),s=i(s||n);var r=e._writableState,o=e._readableState,l=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,u=!1,d=function(){e.writable||p()},p=function(){c=!1,l||s.call(e)},m=function(){l=!1,c||s.call(e)},h=function(t){s.call(e,t?new Error("exited with error code: "+t):null)},f=function(t){s.call(e,t)},_=function(){process.nextTick(g)},g=function(){if(!u)return(!l||o&&o.ended&&!o.destroyed)&&(!c||r&&r.ended&&!r.destroyed)?void 0:s.call(e,new Error("premature close"))},y=function(){e.req.on("finish",p)};return function(e){return e.setHeader&&"function"==typeof e.abort}(e)?(e.on("complete",p),e.on("abort",_),e.req?y():e.on("request",y)):c&&!r&&(e.on("end",d),e.on("close",d)),function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length}(e)&&e.on("exit",h),e.on("end",m),e.on("finish",p),!1!==t.error&&e.on("error",f),e.on("close",_),function(){u=!0,e.removeListener("complete",p),e.removeListener("abort",_),e.removeListener("request",y),e.req&&e.req.removeListener("finish",p),e.removeListener("end",d),e.removeListener("close",d),e.removeListener("finish",p),e.removeListener("exit",h),e.removeListener("end",m),e.removeListener("error",f),e.removeListener("close",_)}};e.exports=a},3832(e,t,s){const i=s(5753)("extract-zip"),{createWriteStream:n,promises:a}=s(9896),r=s(4594),o=s(6928),{promisify:l}=s(9023),c=s(2203),u=s(4824),d=l(u.open),p=l(c.pipeline);class m{constructor(e,t){this.zipPath=e,this.opts=t}async extract(){return i("opening",this.zipPath,"with opts",this.opts),this.zipfile=await d(this.zipPath,{lazyEntries:!0}),this.canceled=!1,new Promise((e,t)=>{this.zipfile.on("error",e=>{this.canceled=!0,t(e)}),this.zipfile.readEntry(),this.zipfile.on("close",()=>{this.canceled||(i("zip extraction complete"),e())}),this.zipfile.on("entry",async e=>{if(this.canceled)return void i("skipping entry",e.fileName,{cancelled:this.canceled});if(i("zipfile entry",e.fileName),e.fileName.startsWith("__MACOSX/"))return void this.zipfile.readEntry();const s=o.dirname(o.join(this.opts.dir,e.fileName));try{await a.mkdir(s,{recursive:!0});const t=await a.realpath(s);if(o.relative(this.opts.dir,t).split(o.sep).includes(".."))throw new Error(`Out of bound path "${t}" found while processing file ${e.fileName}`);await this.extractEntry(e),i("finished processing",e.fileName),this.zipfile.readEntry()}catch(e){this.canceled=!0,this.zipfile.close(),t(e)}})})}async extractEntry(e){if(this.canceled)return void i("skipping entry extraction",e.fileName,{cancelled:this.canceled});this.opts.onEntry&&this.opts.onEntry(e,this.zipfile);const t=o.join(this.opts.dir,e.fileName),s=e.externalFileAttributes>>16&65535,c=40960==(61440&s);let u=16384==(61440&s);!u&&e.fileName.endsWith("/")&&(u=!0);const d=e.versionMadeBy>>8;u||(u=0===d&&16===e.externalFileAttributes),i("extracting entry",{filename:e.fileName,isDir:u,isSymlink:c});const m=511&this.getExtractedMode(s,u),h=u?t:o.dirname(t),f={recursive:!0};if(u&&(f.mode=m),i("mkdir",{dir:h,...f}),await a.mkdir(h,f),u)return;i("opening read stream",t);const _=await l(this.zipfile.openReadStream.bind(this.zipfile))(e);if(c){const e=await r(_);i("creating symlink",e,t),await a.symlink(e,t)}else await p(_,n(t,{mode:m}))}getExtractedMode(e,t){let s=e;return 0===s&&(t?(this.opts.defaultDirMode&&(s=parseInt(this.opts.defaultDirMode,10)),s||(s=493)):(this.opts.defaultFileMode&&(s=parseInt(this.opts.defaultFileMode,10)),s||(s=420))),s}}e.exports=async function(e,t){if(i("creating target directory",t.dir),!o.isAbsolute(t.dir))throw new Error("Target directory is expected to be absolute");return await a.mkdir(t.dir,{recursive:!0}),t.dir=await a.realpath(t.dir),new m(e,t).extract()}},6981(e,t,s){"use strict";var i=s(2382),n=s(6928).posix.dirname,a="win32"===s(857).platform(),r=/\\/g,o=/[\{\[].*[\}\]]$/,l=/(^|[^\\])([\{\[]|\([^\)]+$)/,c=/\\([\!\*\?\|\[\]\(\)\{\}])/g;e.exports=function(e,t){Object.assign({flipBackslashes:!0},t).flipBackslashes&&a&&e.indexOf("/")<0&&(e=e.replace(r,"/")),o.test(e)&&(e+="/"),e+="a";do{e=n(e)}while(i(e)||l.test(e));return e.replace(c,"$1")}},4447(e,t,s){"use strict";const i=s(9806),n=s(1814),a=s(7e3),r=s(2947),o=s(8509),l=s(7705);async function c(e,t){d(e);const s=u(e,n.default,t),i=await Promise.all(s);return l.array.flatten(i)}function u(e,t,s){const n=[].concat(e),a=new o.default(s),r=i.generate(n,a),l=new t(a);return r.map(l.read,l)}function d(e){if(![].concat(e).every(e=>l.string.isString(e)&&!l.string.isEmpty(e)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}!function(e){function t(e,t){d(e);const s=u(e,r.default,t);return l.array.flatten(s)}function s(e,t){d(e);const s=u(e,a.default,t);return l.stream.merge(s)}let n,c;e.glob=e,e.globSync=t,e.globStream=s,e.async=e,e.sync=t,e.stream=s,e.generateTasks=function(e,t){d(e);const s=[].concat(e),n=new o.default(t);return i.generate(s,n)},e.isDynamicPattern=function(e,t){d(e);const s=new o.default(t);return l.pattern.isDynamicPattern(e,s)},e.escapePath=function(e){return d(e),l.path.escape(e)},e.convertPathToPattern=function(e){return d(e),l.path.convertPathToPattern(e)},function(e){e.escapePath=function(e){return d(e),l.path.escapePosixPath(e)},e.convertPathToPattern=function(e){return d(e),l.path.convertPosixPathToPattern(e)}}(n=e.posix||(e.posix={})),function(e){e.escapePath=function(e){return d(e),l.path.escapeWindowsPath(e)},e.convertPathToPattern=function(e){return d(e),l.path.convertWindowsPathToPattern(e)}}(c=e.win32||(e.win32={}))}(c||(c={})),e.exports=c},9806(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertPatternGroupToTask=t.convertPatternGroupsToTasks=t.groupPatternsByBaseDirectory=t.getNegativePatternsAsPositive=t.getPositivePatterns=t.convertPatternsToTasks=t.generate=void 0;const i=s(7705);function n(e,t){let s=e;return t.braceExpansion&&(s=i.pattern.expandPatternsWithBraceExpansion(s)),t.baseNameMatch&&(s=s.map(e=>e.includes("/")?e:`**/${e}`)),s.map(e=>i.pattern.removeDuplicateSlashes(e))}function a(e,t,s){const n=[],a=i.pattern.getPatternsOutsideCurrentDirectory(e),r=i.pattern.getPatternsInsideCurrentDirectory(e),o=l(a),d=l(r);return n.push(...c(o,t,s)),"."in d?n.push(u(".",r,t,s)):n.push(...c(d,t,s)),n}function r(e){return i.pattern.getPositivePatterns(e)}function o(e,t){return i.pattern.getNegativePatterns(e).concat(t).map(i.pattern.convertToPositivePattern)}function l(e){return e.reduce((e,t)=>{const s=i.pattern.getBaseDirectory(t);return s in e?e[s].push(t):e[s]=[t],e},{})}function c(e,t,s){return Object.keys(e).map(i=>u(i,e[i],t,s))}function u(e,t,s,n){return{dynamic:n,positive:t,negative:s,base:e,patterns:[].concat(t,s.map(i.pattern.convertToNegativePattern))}}t.generate=function(e,t){const s=n(e,t),l=n(t.ignore,t),c=r(s),u=o(s,l),d=c.filter(e=>i.pattern.isStaticPattern(e,t)),p=c.filter(e=>i.pattern.isDynamicPattern(e,t)),m=a(d,u,!1),h=a(p,u,!0);return m.concat(h)},t.convertPatternsToTasks=a,t.getPositivePatterns=r,t.getNegativePatternsAsPositive=o,t.groupPatternsByBaseDirectory=l,t.convertPatternGroupsToTasks=c,t.convertPatternGroupToTask=u},1814(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(3936),n=s(6101);class a extends n.default{constructor(){super(...arguments),this._reader=new i.default(this._settings)}async read(e){const t=this._getRootDirectory(e),s=this._getReaderOptions(e);return(await this.api(t,e,s)).map(e=>s.transform(e))}api(e,t,s){return t.dynamic?this._reader.dynamic(e,s):this._reader.static(t.patterns,s)}}t.default=a},602(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(7705),n=s(7669);t.default=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,s){const i=this._getMatcher(t),n=this._getNegativePatternsRe(s);return t=>this._filter(e,t,i,n)}_getMatcher(e){return new n.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){const t=e.filter(i.pattern.isAffectDepthOfReadingPattern);return i.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,s,n){if(this._isSkippedByDeep(e,t.path))return!1;if(this._isSkippedSymbolicLink(t))return!1;const a=i.path.removeLeadingDotSegment(t.path);return!this._isSkippedByPositivePatterns(a,s)&&this._isSkippedByNegativePatterns(a,n)}_isSkippedByDeep(e,t){return this._settings.deep!==1/0&&this._getEntryLevel(e,t)>=this._settings.deep}_getEntryLevel(e,t){const s=t.split("/").length;return""===e?s:s-e.split("/").length}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!i.pattern.matchAny(e,t)}}},2042(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(7705);t.default=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){const[s,n]=i.pattern.partitionAbsoluteAndRelative(t),a={positive:{all:i.pattern.convertPatternsToRe(e,this._micromatchOptions)},negative:{absolute:i.pattern.convertPatternsToRe(s,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0})),relative:i.pattern.convertPatternsToRe(n,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}))}};return e=>this._filter(e,a)}_filter(e,t){const s=i.path.removeLeadingDotSegment(e.path);if(this._settings.unique&&this._isDuplicateEntry(s))return!1;if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e))return!1;const n=this._isMatchToPatternsSet(s,t,e.dirent.isDirectory());return this._settings.unique&&n&&this._createIndexRecord(s),n}_isDuplicateEntry(e){return this.index.has(e)}_createIndexRecord(e){this.index.set(e,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isMatchToPatternsSet(e,t,s){return!!this._isMatchToPatterns(e,t.positive.all,s)&&(!this._isMatchToPatterns(e,t.negative.relative,s)&&!this._isMatchToAbsoluteNegative(e,t.negative.absolute,s))}_isMatchToAbsoluteNegative(e,t,s){if(0===t.length)return!1;const n=i.path.makeAbsolute(this._settings.cwd,e);return this._isMatchToPatterns(n,t,s)}_isMatchToPatterns(e,t,s){if(0===t.length)return!1;const n=i.pattern.matchAny(e,t);return!n&&s?i.pattern.matchAny(e+"/",t):n}}},4284(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(7705);t.default=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return i.errno.isEnoentCodeError(e)||this._settings.suppressErrors}}},330(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(7705);t.default=class{constructor(e,t,s){this._patterns=e,this._settings=t,this._micromatchOptions=s,this._storage=[],this._fillStorage()}_fillStorage(){for(const e of this._patterns){const t=this._getPatternSegments(e),s=this._splitSegmentsIntoSections(t);this._storage.push({complete:s.length<=1,pattern:e,segments:t,sections:s})}}_getPatternSegments(e){return i.pattern.getPatternParts(e,this._micromatchOptions).map(e=>i.pattern.isDynamicPattern(e,this._settings)?{dynamic:!0,pattern:e,patternRe:i.pattern.makeRe(e,this._micromatchOptions)}:{dynamic:!1,pattern:e})}_splitSegmentsIntoSections(e){return i.array.splitWhen(e,e=>e.dynamic&&i.pattern.hasGlobStar(e.pattern))}}},7669(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(330);class n extends i.default{match(e){const t=e.split("/"),s=t.length,i=this._storage.filter(e=>!e.complete||e.segments.length>s);for(const e of i){const i=e.sections[0];if(!e.complete&&s>i.length)return!0;if(t.every((t,s)=>{const i=e.segments[s];return!(!i.dynamic||!i.patternRe.test(t))||!i.dynamic&&i.pattern===t}))return!0}return!1}}t.default=n},6101(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(6928),n=s(602),a=s(2042),r=s(4284),o=s(7403);t.default=class{constructor(e){this._settings=e,this.errorFilter=new r.default(this._settings),this.entryFilter=new a.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new n.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new o.default(this._settings)}_getRootDirectory(e){return i.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){const t="."===e.base?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}}},7e3(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(2203),n=s(890),a=s(6101);class r extends a.default{constructor(){super(...arguments),this._reader=new n.default(this._settings)}read(e){const t=this._getRootDirectory(e),s=this._getReaderOptions(e),n=this.api(t,e,s),a=new i.Readable({objectMode:!0,read:()=>{}});return n.once("error",e=>a.emit("error",e)).on("data",e=>a.emit("data",s.transform(e))).once("end",()=>a.emit("end")),a.once("close",()=>n.destroy()),a}api(e,t,s){return t.dynamic?this._reader.dynamic(e,s):this._reader.static(t.patterns,s)}}t.default=r},2947(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(8497),n=s(6101);class a extends n.default{constructor(){super(...arguments),this._reader=new i.default(this._settings)}read(e){const t=this._getRootDirectory(e),s=this._getReaderOptions(e);return this.api(t,e,s).map(s.transform)}api(e,t,s){return t.dynamic?this._reader.dynamic(e,s):this._reader.static(t.patterns,s)}}t.default=a},7403(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(7705);t.default=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=i.path.makeAbsolute(this._settings.cwd,t),t=i.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}}},3936(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(764),n=s(149),a=s(890);class r extends n.default{constructor(){super(...arguments),this._walkAsync=i.walk,this._readerStream=new a.default(this._settings)}dynamic(e,t){return new Promise((s,i)=>{this._walkAsync(e,t,(e,t)=>{null===e?s(t):i(e)})})}async static(e,t){const s=[],i=this._readerStream.static(e,t);return new Promise((e,t)=>{i.once("error",t),i.on("data",e=>s.push(e)),i.once("end",()=>e(s))})}}t.default=r},149(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(6928),n=s(8631),a=s(7705);t.default=class{constructor(e){this._settings=e,this._fsStatSettings=new n.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return i.resolve(this._settings.cwd,e)}_makeEntry(e,t){const s={name:t,path:t,dirent:a.fs.createDirentFromStats(t,e)};return this._settings.stats&&(s.stats=e),s}_isFatalError(e){return!a.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}}},890(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(2203),n=s(8631),a=s(764),r=s(149);class o extends r.default{constructor(){super(...arguments),this._walkStream=a.walkStream,this._stat=n.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){const s=e.map(this._getFullEntryPath,this),n=new i.PassThrough({objectMode:!0});n._write=(i,a,r)=>this._getEntry(s[i],e[i],t).then(e=>{null!==e&&t.entryFilter(e)&&n.push(e),i===s.length-1&&n.end(),r()}).catch(r);for(let e=0;ethis._makeEntry(e,t)).catch(e=>{if(s.errorFilter(e))return null;throw e})}_getStat(e){return new Promise((t,s)=>{this._stat(e,this._fsStatSettings,(e,i)=>null===e?t(i):s(e))})}}t.default=o},8497(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=s(8631),n=s(764),a=s(149);class r extends a.default{constructor(){super(...arguments),this._walkSync=n.walkSync,this._statSync=i.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){const s=[];for(const i of e){const e=this._getFullEntryPath(i),n=this._getEntry(e,i,t);null!==n&&t.entryFilter(n)&&s.push(n)}return s}_getEntry(e,t,s){try{const s=this._getStat(e);return this._makeEntry(s,t)}catch(e){if(s.errorFilter(e))return null;throw e}}_getStat(e){return this._statSync(e,this._fsStatSettings)}}t.default=r},8509(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;const i=s(9896),n=s(857),a=Math.max(n.cpus().length,1);t.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:i.lstat,lstatSync:i.lstatSync,stat:i.stat,statSync:i.statSync,readdir:i.readdir,readdirSync:i.readdirSync},t.default=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,a),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(e,t){return void 0===e?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},t.DEFAULT_FILE_SYSTEM_ADAPTER),e)}}},4392(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.splitWhen=t.flatten=void 0,t.flatten=function(e){return e.reduce((e,t)=>[].concat(e,t),[])},t.splitWhen=function(e,t){const s=[[]];let i=0;for(const n of e)t(n)?(i++,s[i]=[]):s[i].push(n);return s}},2741(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEnoentCodeError=void 0,t.isEnoentCodeError=function(e){return"ENOENT"===e.code}},2014(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createDirentFromStats=void 0;class s{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}}t.createDirentFromStats=function(e,t){return new s(e,t)}},7705(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.string=t.stream=t.pattern=t.path=t.fs=t.errno=t.array=void 0;const i=s(4392);t.array=i;const n=s(2741);t.errno=n;const a=s(2014);t.fs=a;const r=s(4522);t.path=r;const o=s(9287);t.pattern=o;const l=s(9997);t.stream=l;const c=s(4848);t.string=c},4522(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertPosixPathToPattern=t.convertWindowsPathToPattern=t.convertPathToPattern=t.escapePosixPath=t.escapeWindowsPath=t.escape=t.removeLeadingDotSegment=t.makeAbsolute=t.unixify=void 0;const i=s(857),n=s(6928),a="win32"===i.platform(),r=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,o=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,l=/^\\\\([.?])/,c=/\\(?![!()+@[\]{}])/g;function u(e){return e.replace(o,"\\$2")}function d(e){return e.replace(r,"\\$2")}function p(e){return u(e).replace(l,"//$1").replace(c,"/")}function m(e){return d(e)}t.unixify=function(e){return e.replace(/\\/g,"/")},t.makeAbsolute=function(e,t){return n.resolve(e,t)},t.removeLeadingDotSegment=function(e){if("."===e.charAt(0)){const t=e.charAt(1);if("/"===t||"\\"===t)return e.slice(2)}return e},t.escape=a?u:d,t.escapeWindowsPath=u,t.escapePosixPath=d,t.convertPathToPattern=a?p:m,t.convertWindowsPathToPattern=p,t.convertPosixPathToPattern=m},9287(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isAbsolute=t.partitionAbsoluteAndRelative=t.removeDuplicateSlashes=t.matchAny=t.convertPatternsToRe=t.makeRe=t.getPatternParts=t.expandBraceExpansion=t.expandPatternsWithBraceExpansion=t.isAffectDepthOfReadingPattern=t.endsWithSlashGlobStar=t.hasGlobStar=t.getBaseDirectory=t.isPatternRelatedToParentDirectory=t.getPatternsOutsideCurrentDirectory=t.getPatternsInsideCurrentDirectory=t.getPositivePatterns=t.getNegativePatterns=t.isPositivePattern=t.isNegativePattern=t.convertToNegativePattern=t.convertToPositivePattern=t.isDynamicPattern=t.isStaticPattern=void 0;const i=s(6928),n=s(6981),a=s(628),r=/[*?]|^!/,o=/\[[^[]*]/,l=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,c=/[!*+?@]\([^(]*\)/,u=/,|\.\./,d=/(?!^)\/{2,}/g;function p(e,t={}){return!m(e,t)}function m(e,t={}){return!!(""!==e&&(!1===t.caseSensitiveMatch||e.includes("\\")||r.test(e)||o.test(e)||l.test(e)||!1!==t.extglob&&c.test(e)||!1!==t.braceExpansion&&function(e){const t=e.indexOf("{");if(-1===t)return!1;const s=e.indexOf("}",t+1);if(-1===s)return!1;const i=e.slice(t,s);return u.test(i)}(e)))}function h(e){return e.startsWith("!")&&"("!==e[1]}function f(e){return!h(e)}function _(e){return e.startsWith("..")||e.startsWith("./..")}function g(e){return e.endsWith("/**")}function y(e){const t=a.braces(e,{expand:!0,nodupes:!0,keepEscaping:!0});return t.sort((e,t)=>e.length-t.length),t.filter(e=>""!==e)}function v(e,t){return a.makeRe(e,t)}function x(e){return i.isAbsolute(e)}t.isStaticPattern=p,t.isDynamicPattern=m,t.convertToPositivePattern=function(e){return h(e)?e.slice(1):e},t.convertToNegativePattern=function(e){return"!"+e},t.isNegativePattern=h,t.isPositivePattern=f,t.getNegativePatterns=function(e){return e.filter(h)},t.getPositivePatterns=function(e){return e.filter(f)},t.getPatternsInsideCurrentDirectory=function(e){return e.filter(e=>!_(e))},t.getPatternsOutsideCurrentDirectory=function(e){return e.filter(_)},t.isPatternRelatedToParentDirectory=_,t.getBaseDirectory=function(e){return n(e,{flipBackslashes:!1})},t.hasGlobStar=function(e){return e.includes("**")},t.endsWithSlashGlobStar=g,t.isAffectDepthOfReadingPattern=function(e){const t=i.basename(e);return g(e)||p(t)},t.expandPatternsWithBraceExpansion=function(e){return e.reduce((e,t)=>e.concat(y(t)),[])},t.expandBraceExpansion=y,t.getPatternParts=function(e,t){let{parts:s}=a.scan(e,Object.assign(Object.assign({},t),{parts:!0}));return 0===s.length&&(s=[e]),s[0].startsWith("/")&&(s[0]=s[0].slice(1),s.unshift("")),s},t.makeRe=v,t.convertPatternsToRe=function(e,t){return e.map(e=>v(e,t))},t.matchAny=function(e,t){return t.some(t=>t.test(e))},t.removeDuplicateSlashes=function(e){return e.replace(d,"/")},t.partitionAbsoluteAndRelative=function(e){const t=[],s=[];for(const i of e)x(i)?t.push(i):s.push(i);return[t,s]},t.isAbsolute=x},9997(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.merge=void 0;const i=s(4971);function n(e){e.forEach(e=>e.emit("close"))}t.merge=function(e){const t=i(e);return e.forEach(e=>{e.once("error",e=>t.emit("error",e))}),t.once("close",()=>n(e)),t.once("end",()=>n(e)),t}},4848(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEmpty=t.isString=void 0,t.isString=function(e){return"string"==typeof e},t.isEmpty=function(e){return""===e}},6697(e,t,s){"use strict";var i=s(9027);function n(e,t,s){if("function"==typeof e&&(s=t,t=e,e=null),!(s>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var n=i(r),o=null,l=null,c=0,u=null,d={push:function(i,r){var m=n.get();m.context=e,m.release=p,m.value=i,m.callback=r||a,m.errorHandler=u,c>=s||d.paused?l?(l.next=m,l=m):(o=m,l=m,d.saturated()):(c++,t.call(e,m.value,m.worked))},drain:a,saturated:a,pause:function(){d.paused=!0},paused:!1,get concurrency(){return s},set concurrency(e){if(!(e>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(s=e,!d.paused)for(;o&&c=s||d.paused?o?(m.next=o,o=m):(o=m,l=m,d.saturated()):(c++,t.call(e,m.value,m.worked))},empty:a,kill:function(){o=null,l=null,d.drain=a},killAndDrain:function(){o=null,l=null,d.drain(),d.drain=a},error:function(e){u=e}};return d;function p(i){i&&n.release(i);var a=o;a&&c<=s?d.paused?c--:(l===o&&(l=null),o=a.next,a.next=null,t.call(e,a.value,a.worked),null===l&&d.empty()):0===--c&&d.drain()}}function a(){}function r(){this.value=null,this.callback=a,this.next=null,this.release=a,this.context=null,this.errorHandler=null;var e=this;this.worked=function(t,s){var i=e.callback,n=e.errorHandler,r=e.value;e.value=null,e.callback=a,e.errorHandler&&n(t,r),i.call(e.context,t,s),e.release(e)}}e.exports=n,e.exports.promise=function(e,t,s){"function"==typeof e&&(s=t,t=e,e=null);var i=n(e,function(e,s){t.call(this,e).then(function(e){s(null,e)},s)},s),r=i.push,o=i.unshift;return i.push=function(e){var t=new Promise(function(t,s){r(e,function(e,i){e?s(e):t(i)})});return t.catch(a),t},i.unshift=function(e){var t=new Promise(function(t,s){o(e,function(e,i){e?s(e):t(i)})});return t.catch(a),t},i.drained=function(){return new Promise(function(e){process.nextTick(function(){if(i.idle())e();else{var t=i.drain;i.drain=function(){"function"==typeof t&&t(),e(),i.drain=t}}})})},i}},3070(e,t,s){var i=s(9896),n=s(9023),a=s(2203),r=a.Readable,o=a.Writable,l=a.PassThrough,c=s(1436),u=s(4434).EventEmitter;function d(e,t){t=t||{},u.call(this),this.fd=e,this.pend=new c,this.pend.max=1,this.refCount=0,this.autoClose=!!t.autoClose}function p(e,t){t=t||{},r.call(this,t),this.context=e,this.context.ref(),this.start=t.start||0,this.endOffset=t.end,this.pos=this.start,this.destroyed=!1}function m(e,t){t=t||{},o.call(this,t),this.context=e,this.context.ref(),this.start=t.start||0,this.endOffset=null==t.end?1/0:+t.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}function h(e,t){u.call(this),t=t||{},this.refCount=0,this.buffer=e,this.maxChunkSize=t.maxChunkSize||Number.MAX_SAFE_INTEGER}t.createFromBuffer=function(e,t){return new h(e,t)},t.createFromFd=function(e,t){return new d(e,t)},t.BufferSlicer=h,t.FdSlicer=d,n.inherits(d,u),d.prototype.read=function(e,t,s,n,a){var r=this;r.pend.go(function(o){i.read(r.fd,e,t,s,n,function(e,t,s){o(),a(e,t,s)})})},d.prototype.write=function(e,t,s,n,a){var r=this;r.pend.go(function(o){i.write(r.fd,e,t,s,n,function(e,t,s){o(),a(e,t,s)})})},d.prototype.createReadStream=function(e){return new p(this,e)},d.prototype.createWriteStream=function(e){return new m(this,e)},d.prototype.ref=function(){this.refCount+=1},d.prototype.unref=function(){var e=this;if(e.refCount-=1,!(e.refCount>0)){if(e.refCount<0)throw new Error("invalid unref");e.autoClose&&i.close(e.fd,function(t){t?e.emit("error",t):e.emit("close")})}},n.inherits(p,r),p.prototype._read=function(e){var t=this;if(!t.destroyed){var s=Math.min(t._readableState.highWaterMark,e);if(null!=t.endOffset&&(s=Math.min(s,t.endOffset-t.pos)),s<=0)return t.destroyed=!0,t.push(null),void t.context.unref();t.context.pend.go(function(e){if(t.destroyed)return e();var n=new Buffer(s);i.read(t.context.fd,n,0,s,t.pos,function(s,i){s?t.destroy(s):0===i?(t.destroyed=!0,t.push(null),t.context.unref()):(t.pos+=i,t.push(n.slice(0,i))),e()})})}},p.prototype.destroy=function(e){this.destroyed||(e=e||new Error("stream destroyed"),this.destroyed=!0,this.emit("error",e),this.context.unref())},n.inherits(m,o),m.prototype._write=function(e,t,s){var n=this;if(!n.destroyed){if(n.pos+e.length>n.endOffset){var a=new Error("maximum file length exceeded");return a.code="ETOOBIG",n.destroy(),void s(a)}n.context.pend.go(function(t){if(n.destroyed)return t();i.write(n.context.fd,e,0,e.length,n.pos,function(e,i){e?(n.destroy(),t(),s(e)):(n.bytesWritten+=i,n.pos+=i,n.emit("progress"),t(),s())})})}},m.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.context.unref())},n.inherits(h,u),h.prototype.read=function(e,t,s,i,n){var a=i+s,r=a-this.buffer.length,o=r>0?r:s;this.buffer.copy(e,t,i,a),setImmediate(function(){n(null,o)})},h.prototype.write=function(e,t,s,i,n){e.copy(this.buffer,i,t,t+s),setImmediate(function(){n(null,s,e)})},h.prototype.createReadStream=function(e){var t=new l(e=e||{});t.destroyed=!1,t.start=e.start||0,t.endOffset=e.end,t.pos=t.endOffset||this.buffer.length;for(var s=this.buffer.slice(t.start,t.pos),i=0;;){var n=i+this.maxChunkSize;if(n>=s.length){is.endOffset){var r=new Error("maximum file length exceeded");return r.code="ETOOBIG",s.destroyed=!0,void n(r)}e.copy(t.buffer,s.pos,0,e.length),s.bytesWritten+=e.length,s.pos=a,s.emit("progress"),n()}},s.destroy=function(){s.destroyed=!0},s},h.prototype.ref=function(){this.refCount+=1},h.prototype.unref=function(){if(this.refCount-=1,this.refCount<0)throw new Error("invalid unref")}},7028(e,t,s){"use strict";const i=s(9023),n=s(54),a=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),r=e=>"number"==typeof e||"string"==typeof e&&""!==e,o=e=>Number.isInteger(+e),l=e=>{let t=`${e}`,s=-1;if("-"===t[0]&&(t=t.slice(1)),"0"===t)return!1;for(;"0"===t[++s];);return s>0},c=(e,t,s)=>{if(t>0){let s="-"===e[0]?"-":"";s&&(e=e.slice(1)),e=s+e.padStart(s?t-1:t,"0")}return!1===s?String(e):e},u=(e,t)=>{let s="-"===e[0]?"-":"";for(s&&(e=e.slice(1),t--);e.length{if(s)return n(e,t,{wrap:!1,...i});let a=String.fromCharCode(e);return e===t?a:`[${a}-${String.fromCharCode(t)}]`},p=(e,t,s)=>{if(Array.isArray(e)){let t=!0===s.wrap,i=s.capture?"":"?:";return t?`(${i}${e.join("|")})`:e.join("|")}return n(e,t,s)},m=(...e)=>new RangeError("Invalid range arguments: "+i.inspect(...e)),h=(e,t,s)=>{if(!0===s.strictRanges)throw m([e,t]);return[]},f=(e,t,s,i={})=>{if(null==t&&r(e))return[e];if(!r(e)||!r(t))return h(e,t,i);if("function"==typeof s)return f(e,t,1,{transform:s});if(a(s))return f(e,t,0,s);let n={...i};return!0===n.capture&&(n.wrap=!0),s=s||n.step||1,o(s)?o(e)&&o(t)?((e,t,s=1,i={})=>{let n=Number(e),a=Number(t);if(!Number.isInteger(n)||!Number.isInteger(a)){if(!0===i.strictRanges)throw m([e,t]);return[]}0===n&&(n=0),0===a&&(a=0);let r=n>a,o=String(e),h=String(t),f=String(s);s=Math.max(Math.abs(s),1);let _=l(o)||l(h)||l(f),g=_?Math.max(o.length,h.length,f.length):0,y=!1===_&&!1===((e,t,s)=>"string"==typeof e||"string"==typeof t||!0===s.stringify)(e,t,i),v=i.transform||(e=>t=>!0===e?Number(t):String(t))(y);if(i.toRegex&&1===s)return d(u(e,g),u(t,g),!0,i);let x={negatives:[],positives:[]},w=e=>x[e<0?"negatives":"positives"].push(Math.abs(e)),b=[],T=0;for(;r?n>=a:n<=a;)!0===i.toRegex&&s>1?w(n):b.push(c(v(n,T),g,y)),n=r?n-s:n+s,T++;return!0===i.toRegex?s>1?((e,t,s)=>{e.negatives.sort((e,t)=>et?1:0),e.positives.sort((e,t)=>et?1:0);let i,n=t.capture?"":"?:",a="",r="";return e.positives.length&&(a=e.positives.map(e=>u(String(e),s)).join("|")),e.negatives.length&&(r=`-(${n}${e.negatives.map(e=>u(String(e),s)).join("|")})`),i=a&&r?`${a}|${r}`:a||r,t.wrap?`(${n}${i})`:i})(x,i,g):p(b,null,{wrap:!1,...i}):b})(e,t,s,n):((e,t,s=1,i={})=>{if(!o(e)&&e.length>1||!o(t)&&t.length>1)return h(e,t,i);let n=i.transform||(e=>String.fromCharCode(e)),a=`${e}`.charCodeAt(0),r=`${t}`.charCodeAt(0),l=a>r,c=Math.min(a,r),u=Math.max(a,r);if(i.toRegex&&1===s)return d(c,u,!1,i);let m=[],f=0;for(;l?a>=r:a<=r;)m.push(n(a,f)),a=l?a-s:a+s,f++;return!0===i.toRegex?p(m,null,{wrap:!1,options:i}):m})(e,t,Math.max(Math.abs(s),1),n):null==s||a(s)?f(e,t,1,s):((e,t)=>{if(!0===t.strictRanges)throw new TypeError(`Expected step "${e}" to be a number`);return[]})(s,n)};e.exports=f},7507(e,t,s){var i;e.exports=function(){if(!i){try{i=s(5753)("follow-redirects")}catch(e){}"function"!=typeof i&&(i=function(){})}i.apply(null,arguments)}},783(e,t,s){var i,n,a,r=s(7016),o=r.URL,l=s(8611),c=s(5692),u=s(2203).Writable,d=s(2613),p=s(7507);i="undefined"!=typeof process,n="undefined"!=typeof window&&"undefined"!=typeof document,a=O(Error.captureStackTrace),i||!n&&a||console.warn("The follow-redirects package should be excluded from browser builds.");var m=!1;try{d(new o(""))}catch(e){m="ERR_INVALID_URL"===e.code}var h=["Authorization","Proxy-Authorization","Cookie"],f=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],_=["abort","aborted","connect","error","socket","timeout"],g=Object.create(null);_.forEach(function(e){g[e]=function(t,s,i){this._redirectable.emit(e,t,s,i)}});var y=P("ERR_INVALID_URL","Invalid URL",TypeError),v=P("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),x=P("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",v),w=P("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),b=P("ERR_STREAM_WRITE_AFTER_END","write after end"),T=u.prototype.destroy||k;function L(e,t){u.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var s=this;this._onNativeResponse=function(e){try{s._processResponse(e)}catch(e){s.emit("error",e instanceof v?e:new v({cause:e}))}},this._headerFilter=new RegExp("^(?:"+h.concat(e.sensitiveHeaders).map(C).join("|")+")$","i"),this._performRequest()}function M(e){var t={maxRedirects:21,maxBodyLength:10485760},s={};return Object.keys(e).forEach(function(i){var n=i+":",a=s[n]=e[i],r=t[i]=Object.create(a);Object.defineProperties(r,{request:{value:function(e,i,a){return o&&e instanceof o?e=E(e):A(e)?e=E(D(e)):(a=i,i=S(e),e={protocol:n}),O(i)&&(a=i,i=null),(i=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},e,i)).nativeProtocols=s,A(i.host)||A(i.hostname)||(i.hostname="::1"),d.equal(i.protocol,n,"protocol mismatch"),p("options",i),new L(i,a)},configurable:!0,enumerable:!0,writable:!0},get:{value:function(e,t,s){var i=r.request(e,t,s);return i.end(),i},configurable:!0,enumerable:!0,writable:!0}})}),t}function k(){}function D(e){var t;if(m)t=new o(e);else if(!A((t=S(r.parse(e))).protocol))throw new y({input:e});return t}function S(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new y({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new y({input:e.href||e});return e}function E(e,t){var s=t||{};for(var i of f)s[i]=e[i];return s.hostname.startsWith("[")&&(s.hostname=s.hostname.slice(1,-1)),""!==s.port&&(s.port=Number(s.port)),s.path=s.search?s.pathname+s.search:s.pathname,s}function Y(e,t){var s;for(var i in t)e.test(i)&&(s=t[i],delete t[i]);return null==s?void 0:String(s).trim()}function P(e,t,s){function i(s){O(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,s||{}),this.code=e,this.message=this.cause?t+": "+this.cause.message:t}return i.prototype=new(s||Error),Object.defineProperties(i.prototype,{constructor:{value:i,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),i}function F(e,t){for(var s of _)e.removeListener(s,g[s]);e.on("error",k),e.destroy(t)}function A(e){return"string"==typeof e||e instanceof String}function O(e){return"function"==typeof e}function C(e){return e.replace(/[\]\\/()*+?.$]/g,"\\$&")}L.prototype=Object.create(u.prototype),L.prototype.abort=function(){F(this._currentRequest),this._currentRequest.abort(),this.emit("abort")},L.prototype.destroy=function(e){return F(this._currentRequest,e),T.call(this,e),this},L.prototype.write=function(e,t,s){if(this._ending)throw new b;if(!(A(e)||"object"==typeof(i=e)&&"length"in i))throw new TypeError("data should be a string, Buffer or Uint8Array");var i;O(t)&&(s=t,t=null),0!==e.length?this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,s)):(this.emit("error",new w),this.abort()):s&&s()},L.prototype.end=function(e,t,s){if(O(e)?(s=e,e=t=null):O(t)&&(s=t,t=null),e){var i=this,n=this._currentRequest;this.write(e,t,function(){i._ended=!0,n.end(null,null,s)}),this._ending=!0}else this._ended=this._ending=!0,this._currentRequest.end(null,null,s)},L.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)},L.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)},L.prototype.setTimeout=function(e,t){var s=this;function i(t){t.setTimeout(e),t.removeListener("timeout",t.destroy),t.addListener("timeout",t.destroy)}function n(t){s._timeout&&clearTimeout(s._timeout),s._timeout=setTimeout(function(){s.emit("timeout"),a()},e),i(t)}function a(){s._timeout&&(clearTimeout(s._timeout),s._timeout=null),s.removeListener("abort",a),s.removeListener("error",a),s.removeListener("response",a),s.removeListener("close",a),t&&s.removeListener("timeout",t),s.socket||s._currentRequest.removeListener("socket",n)}return t&&this.on("timeout",t),this.socket?n(this.socket):this._currentRequest.once("socket",n),this.on("socket",i),this.on("abort",a),this.on("error",a),this.on("response",a),this.on("close",a),this},["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){L.prototype[e]=function(t,s){return this._currentRequest[e](t,s)}}),["aborted","connection","socket"].forEach(function(e){Object.defineProperty(L.prototype,e,{get:function(){return this._currentRequest[e]}})}),L.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.sensitiveHeaders instanceof Array||(e.sensitiveHeaders=[]),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");t<0?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}},L.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var s=e.slice(0,-1);this._options.agent=this._options.agents[s]}var i=this._currentRequest=t.request(this._options,this._onNativeResponse);for(var n of(i._redirectable=this,_))i.on(n,g[n]);if(this._currentUrl=/^\//.test(this._options.path)?r.format(this._options):this._options.path,this._isRedirect){var a=0,o=this,l=this._requestBodyBuffers;!function e(t){if(i===o._currentRequest)if(t)o.emit("error",t);else if(a=400)return e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),void(this._requestBodyBuffers=[]);if(F(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new x;var n=this._options.beforeRedirect;n&&(s=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var a=this._options.method;((301===t||302===t)&&"POST"===this._options.method||303===t&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],Y(/^content-/i,this._options.headers));var l,c,u=Y(/^host$/i,this._options.headers),h=D(this._currentUrl),f=u||h.host,_=/^\w+:/.test(i)?this._currentUrl:r.format(Object.assign(h,{host:f})),g=(l=i,c=_,m?new o(l,c):D(r.resolve(c,l)));if(p("redirecting to",g.href),this._isRedirect=!0,E(g,this._options),(g.protocol!==h.protocol&&"https:"!==g.protocol||g.host!==f&&!function(e,t){d(A(e)&&A(t));var s=e.length-t.length-1;return s>0&&"."===e[s]&&e.endsWith(t)}(g.host,f))&&Y(this._headerFilter,this._options.headers),O(n)){var y={headers:e.headers,statusCode:t},v={url:_,method:a,headers:s};n(this._options,y,v),this._sanitizeOptions(this._options)}this._performRequest()},e.exports=M({http:l,https:c}),e.exports.wrap=M},5635(e,t,s){"use strict";const{PassThrough:i}=s(2203);e.exports=e=>{e={...e};const{array:t}=e;let{encoding:s}=e;const n="buffer"===s;let a=!1;t?a=!(s||n):s=s||"utf8",n&&(s=null);const r=new i({objectMode:a});s&&r.setEncoding(s);let o=0;const l=[];return r.on("data",e=>{l.push(e),a?o=l.length:o+=e.length}),r.getBufferedValue=()=>t?l:n?Buffer.concat(l,o):l.join(""),r.getBufferedLength=()=>o,r}},4594(e,t,s){"use strict";const{constants:i}=s(181),n=s(815),a=s(5635);class r extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}}async function o(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};const{maxBuffer:s}=t;let o;return await new Promise((l,c)=>{const u=e=>{e&&o.getBufferedLength()<=i.MAX_LENGTH&&(e.bufferedData=o.getBufferedValue()),c(e)};o=n(e,a(t),e=>{e?u(e):l()}),o.on("data",()=>{o.getBufferedLength()>s&&u(new r)})}),o.getBufferedValue()}e.exports=o,e.exports.default=o,e.exports.buffer=(e,t)=>o(e,{...t,encoding:"buffer"}),e.exports.array=(e,t)=>o(e,{...t,array:!0}),e.exports.MaxBufferError=r},5884(e){"use strict";e.exports=(e,t=process.argv)=>{const s=e.startsWith("-")?"":1===e.length?"-":"--",i=t.indexOf(s+e),n=t.indexOf("--");return-1!==i&&(-1===n||i{p("replaying proxy buffer for failed request"),l.default(e.listenerCount("data")>0),e.push(y),e.push(null)}),v})}}function h(e){e.resume()}t.default=m},2288(e,t,s){"use strict";const i=(this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(s(6329));function n(e){return new i.default(e)}!function(e){e.HttpsProxyAgent=i.default,e.prototype=i.default.prototype}(n||(n={})),e.exports=n},3868(e,t,s){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=i(s(5753)).default("https-proxy-agent:parse-proxy-response");t.default=function(e){return new Promise((t,s)=>{let i=0;const a=[];function r(){const s=e.read();s?function(e){a.push(e),i+=e.length;const s=Buffer.concat(a,i);if(-1===s.indexOf("\r\n\r\n"))return n("have not received end of HTTP headers yet..."),void r();const o=s.toString("ascii",0,s.indexOf("\r\n")),l=+o.split(" ")[1];n("got proxy server response: %o",o),t({statusCode:l,buffered:s})}(s):e.once("readable",r)}function o(e){n("onclose had error %o",e)}function l(){n("onend")}e.on("error",function t(i){e.removeListener("end",l),e.removeListener("error",t),e.removeListener("close",o),e.removeListener("readable",r),n("onerror %o",i),s(i)}),e.on("close",o),e.on("end",l),r()})}},2535(e){function t(e){return Array.isArray(e)?e:[e]}const s=/^\s+$/,i=/(?:[^\\]|^)\\$/,n=/^\\!/,a=/^\\#/,r=/\r?\n/g,o=/^\.{0,2}\/|^\.{1,2}$/,l=/\/$/,c="/";let u="node-ignore";"undefined"!=typeof Symbol&&(u=Symbol.for("node-ignore"));const d=u,p=(e,t,s)=>(Object.defineProperty(e,t,{value:s}),s),m=/([0-z])-([0-z])/g,h=()=>!1,f=[[/^\uFEFF/,()=>""],[/((?:\\\\)*?)(\\?\s+)$/,(e,t,s)=>t+(0===s.indexOf("\\")?" ":"")],[/(\\+?)\s/g,(e,t)=>{const{length:s}=t;return t.slice(0,s-s%2)+" "}],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,s)=>t+6t+s.replace(/\\\*/g,"[^\\/]*")],[/\\\\\\(?=[$.|*+(){^])/g,()=>"\\"],[/\\\\/g,()=>"\\"],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,s,i,n)=>"\\"===t?`\\[${s}${(e=>{const{length:t}=e;return e.slice(0,t-t%2)})(i)}${n}`:"]"===n&&i.length%2==0?`[${(e=>e.replace(m,(e,t,s)=>t.charCodeAt(0)<=s.charCodeAt(0)?e:""))(s)}${i}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`]],_=/(^|\\\/)?\\\*$/,g="regex",y="checkRegex",v={[g]:(e,t)=>(t?`${t}[^/]+`:"[^/]*")+"(?=$|\\/$)",[y]:(e,t)=>(t?`${t}[^/]*`:"[^/]*")+"(?=$|\\/$)"},x=e=>"string"==typeof e;class w{constructor(e,t,s,i,n,a){this.pattern=e,this.mark=t,this.negative=n,p(this,"body",s),p(this,"ignoreCase",i),p(this,"regexPrefix",a)}get regex(){const e="_"+g;return this[e]?this[e]:this._make(g,e)}get checkRegex(){const e="_"+y;return this[e]?this[e]:this._make(y,e)}_make(e,t){const s=this.regexPrefix.replace(_,v[e]),i=this.ignoreCase?new RegExp(s,"i"):new RegExp(s);return p(this,t,i)}}class b{constructor(e){this._ignoreCase=e,this._rules=[]}_add(e){if(e&&e[d])return this._rules=this._rules.concat(e._rules._rules),void(this._added=!0);if(x(e)&&(e={pattern:e}),(e=>e&&x(e)&&!s.test(e)&&!i.test(e)&&0!==e.indexOf("#"))(e.pattern)){const t=(({pattern:e,mark:t},s)=>{let i=!1,r=e;0===r.indexOf("!")&&(i=!0,r=r.substr(1)),r=r.replace(n,"!").replace(a,"#");const o=(e=>f.reduce((t,[s,i])=>t.replace(s,i.bind(e)),e))(r);return new w(e,t,r,s,i,o)})(e,this._ignoreCase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,t(x(e)?(e=>e.split(r).filter(Boolean))(e):e).forEach(this._add,this),this._added}test(e,t,s){let i,n=!1,a=!1;this._rules.forEach(r=>{const{negative:o}=r;a===o&&n!==a||o&&!n&&!a&&!t||r[s].test(e)&&(n=!o,a=o,i=o?void 0:r)});const r={ignored:n,unignored:a};return i&&(r.rule=i),r}}const T=(e,t)=>{throw new t(e)},L=(e,t,s)=>x(e)?e?!L.isNotRelative(e)||s(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):s("path must not be empty",TypeError):s(`path must be a string, but got \`${t}\``,TypeError),M=e=>o.test(e);L.isNotRelative=M,L.convert=e=>e;class k{constructor({ignorecase:e=!0,ignoreCase:t=e,allowRelativePaths:s=!1}={}){p(this,d,!0),this._rules=new b(t),this._strictPathCheck=!s,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}add(e){return this._rules.add(e)&&this._initCache(),this}addPattern(e){return this.add(e)}_test(e,t,s,i){const n=e&&L.convert(e);return L(n,e,this._strictPathCheck?T:h),this._t(n,t,s,i)}checkIgnore(e){if(!l.test(e))return this.test(e);const t=e.split(c).filter(Boolean);if(t.pop(),t.length){const e=this._t(t.join(c)+c,this._testCache,!0,t);if(e.ignored)return e}return this._rules.test(e,!1,y)}_t(e,t,s,i){if(e in t)return t[e];if(i||(i=e.split(c).filter(Boolean)),i.pop(),!i.length)return t[e]=this._rules.test(e,s,g);const n=this._t(i.join(c)+c,t,s,i);return t[e]=n.ignored?n:this._rules.test(e,s,g)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return t(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}}const D=e=>new k(e),S=()=>{L.convert=e=>/^\\\\\?\\/.test(e)||/["<>|\u0000-\u001F]+/u.test(e)?e:e.replace(/\\/g,"/");const e=/^[a-z]:\//i;L.isNotRelative=t=>e.test(t)||M(t)};"undefined"!=typeof process&&"win32"===process.platform&&S(),e.exports=D,D.default=D,e.exports.isPathValid=e=>L(e&&L.convert(e),e,h),p(e.exports,Symbol.for("setupWindows"),S)},1341(e){e.exports=function(e){if("string"!=typeof e||""===e)return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}},2382(e,t,s){var i=s(1341),n={"{":"}","(":")","[":"]"},a=function(e){if("!"===e[0])return!0;for(var t=0,s=-2,i=-2,a=-2,r=-2,o=-2;tt)){if(-1===o||o>i)return!0;if(-1===(o=e.indexOf("\\",t))||o>i)return!0}if(-1!==a&&"{"===e[t]&&"}"!==e[t+1]&&(a=e.indexOf("}",t))>t&&(-1===(o=e.indexOf("\\",t))||o>a))return!0;if(-1!==r&&"("===e[t]&&"?"===e[t+1]&&/[:!=]/.test(e[t+2])&&")"!==e[t+3]&&(r=e.indexOf(")",t))>t&&(-1===(o=e.indexOf("\\",t))||o>r))return!0;if(-1!==s&&"("===e[t]&&"|"!==e[t+1]&&(ss&&(-1===(o=e.indexOf("\\",s))||o>r)))return!0;if("\\"===e[t]){var l=e[t+1];t+=2;var c=n[l];if(c){var u=e.indexOf(c,t);-1!==u&&(t=u+1)}if("!"===e[t])return!0}else t++}return!1},r=function(e){if("!"===e[0])return!0;for(var t=0;t0||(s=!1,d())}function a(e){function t(){e.removeListener("merge2UnpipeEnd",t),e.removeListener("end",t),l&&e.removeListener("error",s),n()}function s(e){c.emit("error",e)}if(e._readableState.endEmitted)return n();e.on("merge2UnpipeEnd",t),e.on("end",t),l&&e.on("error",s),e.pipe(c,{end:!1}),e.resume()}for(let e=0;e""===e||"./"===e,l=e=>{const t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},c=(e,t,s)=>{t=[].concat(t),e=[].concat(e);let i=new Set,n=new Set,r=new Set,o=0,l=e=>{r.add(e.output),s&&s.onResult&&s.onResult(e)};for(let r=0;r!i.has(e));if(s&&0===c.length){if(!0===s.failglob)throw new Error(`No matches found for "${t.join(", ")}"`);if(!0===s.nonull||!0===s.nullglob)return s.unescape?t.map(e=>e.replace(/\\/g,"")):t}return c};c.match=c,c.matcher=(e,t)=>a(e,t),c.any=c.isMatch=(e,t,s)=>a(t,s)(e),c.not=(e,t,s={})=>{t=[].concat(t).map(String);let i=new Set,n=[],a=new Set(c(e,t,{...s,onResult:e=>{s.onResult&&s.onResult(e),n.push(e.output)}}));for(let e of n)a.has(e)||i.add(e);return[...i]},c.contains=(e,t,s)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${i.inspect(e)}"`);if(Array.isArray(t))return t.some(t=>c.contains(e,t,s));if("string"==typeof t){if(o(e)||o(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return c.isMatch(e,t,{...s,contains:!0})},c.matchKeys=(e,t,s)=>{if(!r.isObject(e))throw new TypeError("Expected the first argument to be an object");let i=c(Object.keys(e),t,s),n={};for(let t of i)n[t]=e[t];return n},c.some=(e,t,s)=>{let i=[].concat(e);for(let e of[].concat(t)){let t=a(String(e),s);if(i.some(e=>t(e)))return!0}return!1},c.every=(e,t,s)=>{let i=[].concat(e);for(let e of[].concat(t)){let t=a(String(e),s);if(!i.every(e=>t(e)))return!1}return!0},c.all=(e,t,s)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${i.inspect(e)}"`);return[].concat(t).every(t=>a(t,s)(e))},c.capture=(e,t,s)=>{let i=r.isWindows(s),n=a.makeRe(String(e),{...s,capture:!0}).exec(i?r.toPosixSlashes(t):t);if(n)return n.slice(1).map(e=>void 0===e?"":e)},c.makeRe=(...e)=>a.makeRe(...e),c.scan=(...e)=>a.scan(...e),c.parse=(e,t)=>{let s=[];for(let i of[].concat(e||[]))for(let e of n(String(i),t))s.push(a.parse(e,t));return s},c.braces=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return t&&!0===t.nobrace||!l(e)?[e]:n(e,t)},c.braceExpand=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return c.braces(e,{...t,expand:!0})},c.hasBraces=l,e.exports=c},7598(e,t,s){e.exports=s(1813)},6049(e,t,s){"use strict";var i,n,a,r=s(7598),o=s(6928).extname,l=/^\s*([^;\s]*)(?:;|\s|$)/,c=/^text\//i;function u(e){if(!e||"string"!=typeof e)return!1;var t=l.exec(e),s=t&&r[t[1].toLowerCase()];return s&&s.charset?s.charset:!(!t||!c.test(t[1]))&&"UTF-8"}t.charset=u,t.charsets={lookup:u},t.contentType=function(e){if(!e||"string"!=typeof e)return!1;var s=-1===e.indexOf("/")?t.lookup(e):e;if(!s)return!1;if(-1===s.indexOf("charset")){var i=t.charset(s);i&&(s+="; charset="+i.toLowerCase())}return s},t.extension=function(e){if(!e||"string"!=typeof e)return!1;var s=l.exec(e),i=s&&t.extensions[s[1].toLowerCase()];return!(!i||!i.length)&&i[0]},t.extensions=Object.create(null),t.lookup=function(e){if(!e||"string"!=typeof e)return!1;var s=o("x."+e).toLowerCase().substr(1);return s&&t.types[s]||!1},t.types=Object.create(null),i=t.extensions,n=t.types,a=["nginx","apache",void 0,"iana"],Object.keys(r).forEach(function(e){var t=r[e],s=t.extensions;if(s&&s.length){i[e]=s;for(var o=0;ou||c===u&&"application/"===n[l].substr(0,12)))continue}n[l]=e}}})},3395(e,t,s){var i,n,a,r,o;r=this,o=function(e){var t=!1,s=!1,i=!1,n=!1,a="escape years months weeks days hours minutes seconds milliseconds general".split(" "),r=[{type:"seconds",targets:[{type:"minutes",value:60},{type:"hours",value:3600},{type:"days",value:86400},{type:"weeks",value:604800},{type:"months",value:2678400},{type:"years",value:31536e3}]},{type:"minutes",targets:[{type:"hours",value:60},{type:"days",value:1440},{type:"weeks",value:10080},{type:"months",value:44640},{type:"years",value:525600}]},{type:"hours",targets:[{type:"days",value:24},{type:"weeks",value:168},{type:"months",value:744},{type:"years",value:8760}]},{type:"days",targets:[{type:"weeks",value:7},{type:"months",value:31},{type:"years",value:365}]},{type:"months",targets:[{type:"years",value:12}]}];function o(e,t){return!(t.length>e.length)&&-1!==e.indexOf(t)}function l(e){for(var t="";e;)t+="0",e-=1;return t}function c(e,t){var s=e+"+"+g(L(t).sort(),function(e){return e+":"+t[e]}).join(",");return c.cache[s]||(c.cache[s]=Intl.NumberFormat(e,t)),c.cache[s]}function u(e,t,a){var r,o,d,p=t.useToLocaleString,m=t.useGrouping,h=m&&t.grouping.slice(),f=t.maximumSignificantDigits,_=t.minimumIntegerDigits||1,g=t.fractionDigits||0,y=t.groupingSeparator,v=t.decimalSeparator;if(p&&a){var x,w={minimumIntegerDigits:_,useGrouping:m};return g&&(w.maximumFractionDigits=g,w.minimumFractionDigits=g),f&&e>0&&(w.maximumSignificantDigits=f),i?(n||((x=T({},t)).useGrouping=!1,x.decimalSeparator=".",e=parseFloat(u(e,x),10)),c(a,w).format(e)):(s||((x=T({},t)).useGrouping=!1,x.decimalSeparator=".",e=parseFloat(u(e,x),10)),e.toLocaleString(a,w))}var b=(f?e.toPrecision(f+1):e.toFixed(g+1)).split("e");d=b[1]||"",o=(b=b[0].split("."))[1]||"";var L=(r=b[0]||"").length,M=o.length,k=L+M,D=r+o;(f&&k===f+1||!f&&M===g+1)&&((D=function(e){for(var t=e.split("").reverse(),s=0,i=!0;i&&s0?o.length<=S?(r+=o+=l(S-o.length),o=""):(r+=o.slice(0,S),o=o.slice(S)):S<0&&(o=l(Math.abs(S)-r.length)+r+o,r="0"),f||((o=o.slice(0,g)).lengtht.label.length?-1:e.label.length0,K=$?n.precision:0,q=K,G=n.minValue,J=!1,Z=n.maxValue,X=!1,Q=n.useToLocaleString,ee=n.groupingSeparator,te=n.decimalSeparator,se=n.grouping;Q=Q&&(t||i);var ie=n.trim;m(ie)&&(ie=ie.join(" ")),null===ie&&(N||Z||$)&&(ie="all"),null!==ie&&!0!==ie&&"left"!==ie&&"right"!==ie||(ie="large"),!1===ie&&(ie="");var ne=function(e){return e.test(ie)},ae=/both/,re=/^all|[^sm]all/,oe=N>0||M([/large/,ae,re],ne),le=M([/small/,ae,re],ne),ce=M([/mid/,re],ne),ue=M([/final/,re],ne),de=g(A.match(F),function(e,t){var s=P(e);return"*"===e.slice(0,1)&&(e=e.slice(1),"escape"!==s&&"general"!==s&&R.push(s)),{index:t,length:e.length,text:"",token:"escape"===s?e.replace(Y.escape,"$1"):e,type:"escape"===s||"general"===s?null:s}}),pe={index:0,length:0,token:"",text:"",type:null},me=[];H&&de.reverse(),_(de,function(e){if(e.type)return(pe.type||pe.text)&&me.push(pe),void(pe=e);H?pe.text=e.token+pe.text:pe.text+=e.token}),(pe.type||pe.text)&&me.push(pe),H&&me.reverse();var he=w(a,x(v(y(me,"type"))));if(!he.length)return y(me,"text").join("");he=g(he,function(e,t){var s,i=t+1===he.length,a=!t;s="years"===e||"months"===e?S.as(e):D.as(e);var r=Math.floor(s),o=s-r,l=f(me,function(t){return e===t.type});return a&&Z&&s>Z&&(X=!0),i&&G&&Math.abs(n.duration.as(e))1&&(W=!0),D.subtract(r,e),S.subtract(r,e),{rawValue:s,wholeValue:r,decimalValue:i?o:0,isSmallest:i,isLargest:a,type:e,tokenLength:l.length}});var fe,_e=B?Math.floor:Math.round,ge=function(e,t){var s=Math.pow(10,t);return _e(e*s)/s},ye=!1,ve=!1,xe=function(e,t){var s={useGrouping:V,groupingSeparator:ee,decimalSeparator:te,grouping:se,useToLocaleString:Q};return $&&(K<=0?(e.rawValue=0,e.wholeValue=0,e.decimalValue=0):(s.maximumSignificantDigits=K,e.significantDigits=K)),X&&!ve&&(e.isLargest?(e.wholeValue=Z,e.decimalValue=0):(e.wholeValue=0,e.decimalValue=0)),J&&!ve&&(e.isSmallest?(e.wholeValue=G,e.decimalValue=0):(e.wholeValue=0,e.decimalValue=0)),e.isSmallest||e.significantDigits&&e.significantDigits-e.wholeValue.toString().length<=0?U<0?e.value=ge(e.wholeValue,U):0===U?e.value=_e(e.wholeValue+e.decimalValue):$?(e.value=B?ge(e.rawValue,K-e.wholeValue.toString().length):e.rawValue,e.wholeValue&&(K-=e.wholeValue.toString().length)):(s.fractionDigits=U,e.value=B?e.wholeValue+ge(e.decimalValue,U):e.wholeValue+e.decimalValue):$&&e.wholeValue?(e.value=Math.round(ge(e.wholeValue,e.significantDigits-e.wholeValue.toString().length)),K-=e.wholeValue.toString().length):e.value=e.wholeValue,e.tokenLength>1&&(W||ye)&&(s.minimumIntegerDigits=e.tokenLength,ve&&s.maximumSignificantDigits0||""===ie||f(R,e.type)||f(O,e.type))&&(ye=!0),e.formattedValue=u(e.value,s,I),s.useGrouping=!1,s.decimalSeparator=".",e.formattedValueEn=u(e.value,s,"en"),2===e.tokenLength&&"milliseconds"===e.type&&(e.formattedValueMS=u(e.value,{minimumIntegerDigits:3,useGrouping:!1},"en").slice(0,2)),e};if((he=v(he=g(he,xe))).length>1){var we=function(e){return f(he,function(t){return t.type===e})};_(r,function(e){var t=we(e.type);t&&_(e.targets,function(e){var s=we(e.type);s&&parseInt(t.formattedValueEn,10)===e.value&&(t.rawValue=0,t.wholeValue=0,t.decimalValue=0,s.rawValue+=1,s.wholeValue+=1,s.decimalValue=0,s.formattedValueEn=s.wholeValue.toString(),ve=!0)})})}return ve&&(ye=!1,K=q,he=v(he=g(he,xe))),!O||X&&!n.trim?(oe&&(he=b(he,function(e){return!e.isSmallest&&!e.wholeValue&&!f(R,e.type)})),N&&he.length&&(he=he.slice(0,N)),le&&he.length>1&&(fe=function(e){return!e.wholeValue&&!f(R,e.type)&&!e.isLargest},he=b(he.slice().reverse(),fe).reverse()),ce&&(he=v(he=g(he,function(e,t){return t>0&&t ",X=!1,J=!1),k&&(t.value>0||""===ie||f(R,t.type)||f(O,t.type))&&(s+="-",k=!1),"milliseconds"===e.type&&t.formattedValueMS?s+=t.formattedValueMS:s+=t.formattedValue,H||(s+=e.text),s})).join("").replace(/(,| |:|\.)*$/,"").replace(/^(,| |:|\.)*/,""))}function Y(){var e=this.duration,t=function(t){return e._data[t]},s=f(this.types,t),i=function(e,t){for(var s=e.length;s-=1;)if(t(e[s]))return e[s]}(this.types,t);switch(s){case"milliseconds":return"S __";case"seconds":case"minutes":return"*_MS_";case"hours":return"_HMS_";case"days":if(s===i)return"d __";case"weeks":return s===i?"w __":(null===this.trim&&(this.trim="both"),"w __, d __, h __");case"months":if(s===i)return"M __";case"years":return s===i?"y __":(null===this.trim&&(this.trim="both"),"y __, M __, d __");default:return null===this.trim&&(this.trim="both"),"y __, d __, h __, m __, s __"}}function P(e){if(!e)throw"Moment Duration Format init cannot find moment instance.";e.duration.format=S,e.duration.fn.format=E,e.duration.fn.format.defaults={trim:null,stopTrim:null,largest:null,maxValue:null,minValue:null,precision:0,trunc:!1,forceLength:null,userLocale:null,usePlural:!0,useLeftUnits:!1,useGrouping:!0,useSignificantDigits:!1,template:Y,useToLocaleString:!0,groupingSeparator:",",decimalSeparator:".",grouping:[3]},e.updateLocale("en",p)}var F=function(e,t,s){return e.toLocaleString(t,s)};t=function(){try{(0).toLocaleString("i")}catch(e){return"RangeError"===e.name}return!1}()&&D(F),s=t&&k(F);var A=function(e,t,s){if("undefined"!=typeof window&&window&&window.Intl&&window.Intl.NumberFormat)return window.Intl.NumberFormat(t,s).format(e)};return i=D(A),n=i&&k(A),P(e),P},n=[s(5093)],void 0===(a="function"==typeof(i=o)?i.apply(t,n):i)||(e.exports=a),r&&(r.momentDurationFormatSetup=r.moment?o(r.moment):o)},5177(e,t,s){!function(e){"use strict";e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,s){return e<12?s?"vm":"VM":s?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(s(5093))},1488(e,t,s){!function(e){"use strict";var t=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},s={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},i=function(e){return function(i,n,a,r){var o=t(i),l=s[e][t(i)];return 2===o&&(l=l[n?0:1]),l.replace(/%d/i,i)}},n=["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-dz",{months:n,monthsShort:n,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,s){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:0,doy:4}})}(s(5093))},8676(e,t,s){!function(e){"use strict";e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(s(5093))},2353(e,t,s){!function(e){"use strict";var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},s=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},i={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},n=function(e){return function(t,n,a,r){var o=s(t),l=i[e][s(t)];return 2===o&&(l=l[n?0:1]),l.replace(/%d/i,t)}},a=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,s){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:n("s"),ss:n("s"),m:n("m"),mm:n("m"),h:n("h"),hh:n("h"),d:n("d"),dd:n("d"),M:n("M"),MM:n("M"),y:n("y"),yy:n("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(s(5093))},4496(e,t,s){!function(e){"use strict";e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(s(5093))},6947(e,t,s){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},s={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-ps",{months:"كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل".split("_"),monthsShort:"ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,s){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[٣٤٥٦٧٨٩٠]/g,function(e){return s[e]}).split("").reverse().join("").replace(/[١٢](?![\u062a\u0643])/g,function(e){return s[e]}).split("").reverse().join("").replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:0,doy:6}})}(s(5093))},2682(e,t,s){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},s={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,s){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return s[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:0,doy:6}})}(s(5093))},9756(e,t,s){!function(e){"use strict";e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(s(5093))},1509(e,t,s){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},s={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},i=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},a=function(e){return function(t,s,a,r){var o=i(t),l=n[e][i(t)];return 2===o&&(l=l[s?0:1]),l.replace(/%d/i,t)}},r=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:r,monthsShort:r,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,s){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return s[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(s(5093))},5533(e,t,s){!function(e){"use strict";var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"bir neçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,s){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var s=e%10;return e+(t[s]||t[e%100-s]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(s(5093))},8959(e,t,s){!function(e){"use strict";function t(e,t,s){return"m"===s?t?"хвіліна":"хвіліну":"h"===s?t?"гадзіна":"гадзіну":e+" "+(i=+e,n={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[s].split("_"),i%10==1&&i%100!=11?n[0]:i%10>=2&&i%10<=4&&(i%100<10||i%100>=20)?n[1]:n[2]);var i,n}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:t,mm:t,h:t,hh:t,d:"дзень",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,s){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(s(5093))},7777(e,t,s){!function(e){"use strict";e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Миналата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Миналия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",w:"седмица",ww:"%d седмици",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,s=e%100;return 0===e?e+"-ев":0===s?e+"-ен":s>10&&s<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(s(5093))},4903(e,t,s){!function(e){"use strict";e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(s(5093))},7357(e,t,s){!function(e){"use strict";var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},s={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn-bd",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t?e<4?e:e+12:"ভোর"===t||"সকাল"===t?e:"দুপুর"===t?e>=3?e:e+12:"বিকাল"===t||"সন্ধ্যা"===t?e+12:void 0},meridiem:function(e,t,s){return e<4?"রাত":e<6?"ভোর":e<12?"সকাল":e<15?"দুপুর":e<18?"বিকাল":e<20?"সন্ধ্যা":"রাত"},week:{dow:0,doy:6}})}(s(5093))},1290(e,t,s){!function(e){"use strict";var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},s={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,s){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(s(5093))},1545(e,t,s){!function(e){"use strict";var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},s={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12".split("_"),monthsShortRegex:/^(ཟླ་\d{1,2})/,monthsParseExact:!0,weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,s){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(s(5093))},1470(e,t,s){!function(e){"use strict";function t(e,t,s){return e+" "+function(e,t){return 2===t?function(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[s],e)}function s(e){return e>9?s(e%10):e}var i=[/^gen/i,/^c[ʼ\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],n=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,a=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];e.defineLocale("br",{months:"Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:a,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[ʼ\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:a,monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warcʼhoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Decʼh da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s ʼzo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(s(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(e){return"g.m."===e},meridiem:function(e,t,s){return e<12?"a.m.":"g.m."}})}(s(5093))},4429(e,t,s){!function(e){"use strict";function t(e,t,s){var i=e+" ";switch(s){case"ss":return i+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"mm":return i+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return"jedan sat";case"hh":return i+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return i+(1===e?"dan":"dana");case"MM":return i+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return i+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:function(e,t,s,i){if("m"===s)return t?"jedna minuta":i?"jednu minutu":"jedne minute"},mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(s(5093))},7306(e,t,s){!function(e){"use strict";e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var s=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(s="a"),e+s},week:{dow:1,doy:4}})}(s(5093))},6464(e,t,s){!function(e){"use strict";var t={standalone:"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),format:"ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince".split("_"),isFormat:/DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/},s="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),i=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],n=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function a(e){return e>1&&e<5&&1!=~~(e/10)}function r(e,t,s,i){var n=e+" ";switch(s){case"s":return t||i?"pár sekund":"pár sekundami";case"ss":return t||i?n+(a(e)?"sekundy":"sekund"):n+"sekundami";case"m":return t?"minuta":i?"minutu":"minutou";case"mm":return t||i?n+(a(e)?"minuty":"minut"):n+"minutami";case"h":return t?"hodina":i?"hodinu":"hodinou";case"hh":return t||i?n+(a(e)?"hodiny":"hodin"):n+"hodinami";case"d":return t||i?"den":"dnem";case"dd":return t||i?n+(a(e)?"dny":"dní"):n+"dny";case"M":return t||i?"měsíc":"měsícem";case"MM":return t||i?n+(a(e)?"měsíce":"měsíců"):n+"měsíci";case"y":return t||i?"rok":"rokem";case"yy":return t||i?n+(a(e)?"roky":"let"):n+"lety"}}e.defineLocale("cs",{months:t,monthsShort:s,monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},3635(e,t,s){!function(e){"use strict";e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(s(5093))},4226(e,t,s){!function(e){"use strict";e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(s(5093))},3601(e,t,s){!function(e){"use strict";e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},6111(e,t,s){!function(e){"use strict";function t(e,t,s,i){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?n[s][0]:n[s][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},4697(e,t,s){!function(e){"use strict";function t(e,t,s,i){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?n[s][0]:n[s][1]}e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},7853(e,t,s){!function(e){"use strict";function t(e,t,s,i){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?n[s][0]:n[s][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},708(e,t,s){!function(e){"use strict";var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],s=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:s,weekdaysShort:s,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,s){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(s(5093))},4691(e,t,s){!function(e){"use strict";e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,s){return e>11?s?"μμ":"ΜΜ":s?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){return 6===this.day()?"[το προηγούμενο] dddd [{}] LT":"[την προηγούμενη] dddd [{}] LT"},sameElse:"L"},calendar:function(e,t){var s,i=this._calendarEl[e],n=t&&t.hours();return s=i,("undefined"!=typeof Function&&s instanceof Function||"[object Function]"===Object.prototype.toString.call(s))&&(i=i.apply(t)),i.replace("{}",n%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(s(5093))},3872(e,t,s){!function(e){"use strict";e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:4}})}(s(5093))},8298(e,t,s){!function(e){"use strict";e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(s(5093))},6195(e,t,s){!function(e){"use strict";e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(s(5093))},6584(e,t,s){!function(e){"use strict";e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(s(5093))},5543(e,t,s){!function(e){"use strict";e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(s(5093))},9033(e,t,s){!function(e){"use strict";e.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:6}})}(s(5093))},9402(e,t,s){!function(e){"use strict";e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(s(5093))},3004(e,t,s){!function(e){"use strict";e.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(s(5093))},2934(e,t,s){!function(e){"use strict";e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,s){return e>11?s?"p.t.m.":"P.T.M.":s?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(s(5093))},838(e,t,s){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),s="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],n=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?s[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(s(5093))},7730(e,t,s){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),s="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],n=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-mx",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?s[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:4},invalidDate:"Fecha inválida"})}(s(5093))},6575(e,t,s){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),s="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],n=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?s[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(s(5093))},7650(e,t,s){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),s="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],n=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?s[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4},invalidDate:"Fecha inválida"})}(s(5093))},3035(e,t,s){!function(e){"use strict";function t(e,t,s,i){var n={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?n[s][2]?n[s][2]:n[s][1]:i?n[s][0]:n[s][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},3508(e,t,s){!function(e){"use strict";e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(s(5093))},119(e,t,s){!function(e){"use strict";var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},s={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,s){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"%d ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,function(e){return s[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(s(5093))},527(e,t,s){!function(e){"use strict";var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),s=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function i(e,i,n,a){var r="";switch(n){case"s":return a?"muutaman sekunnin":"muutama sekunti";case"ss":r=a?"sekunnin":"sekuntia";break;case"m":return a?"minuutin":"minuutti";case"mm":r=a?"minuutin":"minuuttia";break;case"h":return a?"tunnin":"tunti";case"hh":r=a?"tunnin":"tuntia";break;case"d":return a?"päivän":"päivä";case"dd":r=a?"päivän":"päivää";break;case"M":return a?"kuukauden":"kuukausi";case"MM":r=a?"kuukauden":"kuukautta";break;case"y":return a?"vuoden":"vuosi";case"yy":r=a?"vuoden":"vuotta"}return function(e,i){return e<10?i?s[e]:t[e]:e}(e,a)+" "+r}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},5995(e,t,s){!function(e){"use strict";e.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(s(5093))},2477(e,t,s){!function(e){"use strict";e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},6435(e,t,s){!function(e){"use strict";e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(s(5093))},7892(e,t,s){!function(e){"use strict";e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(s(5093))},5498(e,t,s){!function(e){"use strict";var t=/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,s=[/^janv/i,/^févr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^août/i,/^sept/i,/^oct/i,/^nov/i,/^déc/i];e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsRegex:t,monthsShortRegex:t,monthsStrictRegex:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,monthsShortStrictRegex:/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",w:"une semaine",ww:"%d semaines",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(s(5093))},7071(e,t,s){!function(e){"use strict";var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),s="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?s[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(s(5093))},1734(e,t,s){!function(e){"use strict";e.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig"],monthsShort:["Ean","Feabh","Márt","Aib","Beal","Meith","Iúil","Lún","M.F.","D.F.","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"],weekdaysShort:["Domh","Luan","Máirt","Céad","Déar","Aoine","Sath"],weekdaysMin:["Do","Lu","Má","Cé","Dé","A","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d míonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(s(5093))},217(e,t,s){!function(e){"use strict";e.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(s(5093))},7329(e,t,s){!function(e){"use strict";e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(s(5093))},2124(e,t,s){!function(e){"use strict";function t(e,t,s,i){var n={s:["थोडया सॅकंडांनी","थोडे सॅकंड"],ss:[e+" सॅकंडांनी",e+" सॅकंड"],m:["एका मिणटान","एक मिनूट"],mm:[e+" मिणटांनी",e+" मिणटां"],h:["एका वरान","एक वर"],hh:[e+" वरांनी",e+" वरां"],d:["एका दिसान","एक दीस"],dd:[e+" दिसांनी",e+" दीस"],M:["एका म्हयन्यान","एक म्हयनो"],MM:[e+" म्हयन्यानी",e+" म्हयने"],y:["एका वर्सान","एक वर्स"],yy:[e+" वर्सांनी",e+" वर्सां"]};return i?n[s][0]:n[s][1]}e.defineLocale("gom-deva",{months:{standalone:"जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),format:"जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार".split("_"),weekdaysShort:"आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.".split("_"),weekdaysMin:"आ_सो_मं_बु_ब्रे_सु_शे".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [वाजतां]",LTS:"A h:mm:ss [वाजतां]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [वाजतां]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [वाजतां]",llll:"ddd, D MMM YYYY, A h:mm [वाजतां]"},calendar:{sameDay:"[आयज] LT",nextDay:"[फाल्यां] LT",nextWeek:"[फुडलो] dddd[,] LT",lastDay:"[काल] LT",lastWeek:"[फाटलो] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s आदीं",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(वेर)/,ordinal:function(e,t){return"D"===t?e+"वेर":e},week:{dow:0,doy:3},meridiemParse:/राती|सकाळीं|दनपारां|सांजे/,meridiemHour:function(e,t){return 12===e&&(e=0),"राती"===t?e<4?e:e+12:"सकाळीं"===t?e:"दनपारां"===t?e>12?e:e+12:"सांजे"===t?e+12:void 0},meridiem:function(e,t,s){return e<4?"राती":e<12?"सकाळीं":e<16?"दनपारां":e<20?"सांजे":"राती"}})}(s(5093))},3383(e,t,s){!function(e){"use strict";function t(e,t,s,i){var n={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return i?n[s][0]:n[s][1]}e.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){return"D"===t?e+"er":e},week:{dow:0,doy:3},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokallim"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,s){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(s(5093))},5050(e,t,s){!function(e){"use strict";var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},s={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પહેલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,s){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(s(5093))},1713(e,t,s){!function(e){"use strict";e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,s){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?s?'לפנה"צ':"לפני הצהריים":e<18?s?'אחה"צ':"אחרי הצהריים":"בערב"}})}(s(5093))},3861(e,t,s){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},s={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},i=[/^जन/i,/^फ़र|फर/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सितं|सित/i,/^अक्टू/i,/^नव|नवं/i,/^दिसं|दिस/i];e.defineLocale("hi",{months:{format:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),standalone:"जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर".split("_")},monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},monthsParse:i,longMonthsParse:i,shortMonthsParse:[/^जन/i,/^फ़र/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सित/i,/^अक्टू/i,/^नव/i,/^दिस/i],monthsRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsShortRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsStrictRegex:/^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,monthsShortStrictRegex:/^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,s){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(s(5093))},6308(e,t,s){!function(e){"use strict";function t(e,t,s){var i=e+" ";switch(s){case"ss":return i+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return i+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return i+(1===e?"dan":"dana");case"MM":return i+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return i+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(s(5093))},609(e,t,s){!function(e){"use strict";var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function s(e,t,s,i){var n=e;switch(s){case"s":return i||t?"néhány másodperc":"néhány másodperce";case"ss":return n+(i||t)?" másodperc":" másodperce";case"m":return"egy"+(i||t?" perc":" perce");case"mm":return n+(i||t?" perc":" perce");case"h":return"egy"+(i||t?" óra":" órája");case"hh":return n+(i||t?" óra":" órája");case"d":return"egy"+(i||t?" nap":" napja");case"dd":return n+(i||t?" nap":" napja");case"M":return"egy"+(i||t?" hónap":" hónapja");case"MM":return n+(i||t?" hónap":" hónapja");case"y":return"egy"+(i||t?" év":" éve");case"yy":return n+(i||t?" év":" éve")}return""}function i(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,s){return e<12?!0===s?"de":"DE":!0===s?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return i.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return i.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s,ss:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},7160(e,t,s){!function(e){"use strict";e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(s(5093))},4063(e,t,s){!function(e){"use strict";e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,s){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(s(5093))},9374(e,t,s){!function(e){"use strict";function t(e){return e%100==11||e%10!=1}function s(e,s,i,n){var a=e+" ";switch(i){case"s":return s||n?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?a+(s||n?"sekúndur":"sekúndum"):a+"sekúnda";case"m":return s?"mínúta":"mínútu";case"mm":return t(e)?a+(s||n?"mínútur":"mínútum"):s?a+"mínúta":a+"mínútu";case"hh":return t(e)?a+(s||n?"klukkustundir":"klukkustundum"):a+"klukkustund";case"d":return s?"dagur":n?"dag":"degi";case"dd":return t(e)?s?a+"dagar":a+(n?"daga":"dögum"):s?a+"dagur":a+(n?"dag":"degi");case"M":return s?"mánuður":n?"mánuð":"mánuði";case"MM":return t(e)?s?a+"mánuðir":a+(n?"mánuði":"mánuðum"):s?a+"mánuður":a+(n?"mánuð":"mánuði");case"y":return s||n?"ár":"ári";case"yy":return t(e)?a+(s||n?"ár":"árum"):a+(s||n?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s,ss:s,m:s,mm:s,h:"klukkustund",hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},1827(e,t,s){!function(e){"use strict";e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(s(5093))},8383(e,t,s){!function(e){"use strict";e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){return 0===this.day()?"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT":"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",w:"una settimana",ww:"%d settimane",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(s(5093))},3827(e,t,s){!function(e){"use strict";e.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"令和",narrow:"㋿",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"平成",narrow:"㍻",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"昭和",narrow:"㍼",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"大正",narrow:"㍽",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"明治",narrow:"㍾",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"西暦",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"紀元前",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(元|\d+)年/,eraYearOrdinalParse:function(e,t){return"元"===t[1]?1:parseInt(t[1]||e,10)},months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,s){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()!==this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()!==e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,t){switch(t){case"y":return 1===e?"元年":e+"年";case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(s(5093))},9722(e,t,s){!function(e){"use strict";e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,s){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(s(5093))},1794(e,t,s){!function(e){"use strict";e.defineLocale("ka",{months:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return e.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,function(e,t,s){return"ი"===s?t+"ში":t+s+"ში"})},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):e},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(s(5093))},7088(e,t,s){!function(e){"use strict";var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(s(5093))},6870(e,t,s){!function(e){"use strict";var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},s={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,s){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},week:{dow:1,doy:4}})}(s(5093))},4451(e,t,s){!function(e){"use strict";var t={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},s={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?e>=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,s){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(s(5093))},3164(e,t,s){!function(e){"use strict";e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,s){return e<12?"오전":"오후"}})}(s(5093))},6181(e,t,s){!function(e){"use strict";function t(e,t,s,i){var n={s:["çend sanîye","çend sanîyeyan"],ss:[e+" sanîye",e+" sanîyeyan"],m:["deqîqeyek","deqîqeyekê"],mm:[e+" deqîqe",e+" deqîqeyan"],h:["saetek","saetekê"],hh:[e+" saet",e+" saetan"],d:["rojek","rojekê"],dd:[e+" roj",e+" rojan"],w:["hefteyek","hefteyekê"],ww:[e+" hefte",e+" hefteyan"],M:["mehek","mehekê"],MM:[e+" meh",e+" mehan"],y:["salek","salekê"],yy:[e+" sal",e+" salan"]};return t?n[s][0]:n[s][1]}e.defineLocale("ku-kmr",{months:"Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar".split("_"),monthsShort:"Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber".split("_"),monthsParseExact:!0,weekdays:"Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî".split("_"),weekdaysShort:"Yek_Du_Sê_Çar_Pên_În_Şem".split("_"),weekdaysMin:"Ye_Du_Sê_Ça_Pê_În_Şe".split("_"),meridiem:function(e,t,s){return e<12?s?"bn":"BN":s?"pn":"PN"},meridiemParse:/bn|BN|pn|PN/,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM[a] YYYY[an]",LLL:"Do MMMM[a] YYYY[an] HH:mm",LLLL:"dddd, Do MMMM[a] YYYY[an] HH:mm",ll:"Do MMM[.] YYYY[an]",lll:"Do MMM[.] YYYY[an] HH:mm",llll:"ddd[.], Do MMM[.] YYYY[an] HH:mm"},calendar:{sameDay:"[Îro di saet] LT [de]",nextDay:"[Sibê di saet] LT [de]",nextWeek:"dddd [di saet] LT [de]",lastDay:"[Duh di saet] LT [de]",lastWeek:"dddd[a borî di saet] LT [de]",sameElse:"L"},relativeTime:{future:"di %s de",past:"berî %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,w:t,ww:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(?:yê|ê|\.)/,ordinal:function(e,t){var s=t.toLowerCase();return s.includes("w")||s.includes("m")?e+".":e+function(e){var t=(e=""+e).substring(e.length-1),s=e.length>1?e.substring(e.length-2):"";return 12==s||13==s||"2"!=t&&"3"!=t&&"50"!=s&&"70"!=t&&"80"!=t?"ê":"yê"}(e)},week:{dow:1,doy:4}})}(s(5093))},8174(e,t,s){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},s={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},i=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:i,monthsShort:i,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(e){return/ئێواره‌/.test(e)},meridiem:function(e,t,s){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return s[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})}(s(5093))},8474(e,t,s){!function(e){"use strict";var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(s(5093))},9680(e,t,s){!function(e){"use strict";function t(e,t,s,i){var n={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?n[s][0]:n[s][1]}function s(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return s(0===t?e/10:t)}if(e<1e4){for(;e>=10;)e/=10;return s(e)}return s(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return s(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return s(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},5867(e,t,s){!function(e){"use strict";e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,s){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(s(5093))},5766(e,t,s){!function(e){"use strict";var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function s(e,t,s,i){return t?n(s)[0]:i?n(s)[1]:n(s)[2]}function i(e){return e%10==0||e>10&&e<20}function n(e){return t[e].split("_")}function a(e,t,a,r){var o=e+" ";return 1===e?o+s(0,t,a[0],r):t?o+(i(e)?n(a)[1]:n(a)[0]):r?o+n(a)[1]:o+(i(e)?n(a)[1]:n(a)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,s,i){return t?"kelios sekundės":i?"kelių sekundžių":"kelias sekundes"},ss:a,m:s,mm:a,h:s,hh:a,d:s,dd:a,M:s,MM:a,y:s,yy:a},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(s(5093))},9532(e,t,s){!function(e){"use strict";var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function s(e,t,s){return s?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function i(e,i,n){return e+" "+s(t[n],e,i)}function n(e,i,n){return s(t[n],e,i)}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:i,m:n,mm:i,h:n,hh:i,d:n,dd:i,M:n,MM:i,y:n,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},8076(e,t,s){!function(e){"use strict";var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,s,i){var n=t.words[i];return 1===i.length?s?n[0]:n[1]:e+" "+t.correctGrammaticalCase(e,n)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(s(5093))},1848(e,t,s){!function(e){"use strict";e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(s(5093))},306(e,t,s){!function(e){"use strict";e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"за %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"една минута",mm:"%d минути",h:"еден час",hh:"%d часа",d:"еден ден",dd:"%d дена",M:"еден месец",MM:"%d месеци",y:"една година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,s=e%100;return 0===e?e+"-ев":0===s?e+"-ен":s>10&&s<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(s(5093))},3739(e,t,s){!function(e){"use strict";e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,s){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(s(5093))},9053(e,t,s){!function(e){"use strict";function t(e,t,s,i){switch(s){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,s){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}})}(s(5093))},6169(e,t,s){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},s={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function i(e,t,s,i){var n="";if(t)switch(s){case"s":n="काही सेकंद";break;case"ss":n="%d सेकंद";break;case"m":n="एक मिनिट";break;case"mm":n="%d मिनिटे";break;case"h":n="एक तास";break;case"hh":n="%d तास";break;case"d":n="एक दिवस";break;case"dd":n="%d दिवस";break;case"M":n="एक महिना";break;case"MM":n="%d महिने";break;case"y":n="एक वर्ष";break;case"yy":n="%d वर्षे"}else switch(s){case"s":n="काही सेकंदां";break;case"ss":n="%d सेकंदां";break;case"m":n="एका मिनिटा";break;case"mm":n="%d मिनिटां";break;case"h":n="एका तासा";break;case"hh":n="%d तासां";break;case"d":n="एका दिवसा";break;case"dd":n="%d दिवसां";break;case"M":n="एका महिन्या";break;case"MM":n="%d महिन्यां";break;case"y":n="एका वर्षा";break;case"yy":n="%d वर्षां"}return n.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,meridiemHour:function(e,t){return 12===e&&(e=0),"पहाटे"===t||"सकाळी"===t?e:"दुपारी"===t||"सायंकाळी"===t||"रात्री"===t?e>=12?e:e+12:void 0},meridiem:function(e,t,s){return e>=0&&e<6?"पहाटे":e<12?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(s(5093))},2297(e,t,s){!function(e){"use strict";e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,s){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(s(5093))},3386(e,t,s){!function(e){"use strict";e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,s){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(s(5093))},7075(e,t,s){!function(e){"use strict";e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(s(5093))},2264(e,t,s){!function(e){"use strict";var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},s={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},week:{dow:1,doy:4}})}(s(5093))},2274(e,t,s){!function(e){"use strict";e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"én time",hh:"%d timer",d:"én dag",dd:"%d dager",w:"én uke",ww:"%d uker",M:"én måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},8235(e,t,s){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},s={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,s){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(s(5093))},3784(e,t,s){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),s="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),i=[/^jan/i,/^feb/i,/^(maart|mrt\.?)$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],n=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?s[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(s(5093))},2572(e,t,s){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),s="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),i=[/^jan/i,/^feb/i,/^(maart|mrt\.?)$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],n=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?s[e.month()]:t[e.month()]:t},monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",w:"één week",ww:"%d weken",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(s(5093))},4566(e,t,s){!function(e){"use strict";e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._må._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_må_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",w:"ei veke",ww:"%d veker",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},9330(e,t,s){!function(e){"use strict";e.defineLocale("oc-lnc",{months:{standalone:"genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"),format:"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[uèi a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[ièr a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var s=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(s="a"),e+s},week:{dow:1,doy:4}})}(s(5093))},9849(e,t,s){!function(e){"use strict";var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},s={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,s){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(s(5093))},4418(e,t,s){!function(e){"use strict";var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),s="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),i=[/^sty/i,/^lut/i,/^mar/i,/^kwi/i,/^maj/i,/^cze/i,/^lip/i,/^sie/i,/^wrz/i,/^paź/i,/^lis/i,/^gru/i];function n(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function a(e,t,s){var i=e+" ";switch(s){case"ss":return i+(n(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return i+(n(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return i+(n(e)?"godziny":"godzin");case"ww":return i+(n(e)?"tygodnie":"tygodni");case"MM":return i+(n(e)?"miesiące":"miesięcy");case"yy":return i+(n(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,i){return e?/D MMMM/.test(i)?s[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:a,m:a,mm:a,h:a,hh:a,d:"1 dzień",dd:"%d dni",w:"tydzień",ww:a,M:"miesiąc",MM:a,y:"rok",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},8303(e,t,s){!function(e){"use strict";e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"do_2ª_3ª_4ª_5ª_6ª_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",invalidDate:"Data inválida"})}(s(5093))},9834(e,t,s){!function(e){"use strict";e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",w:"uma semana",ww:"%d semanas",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(s(5093))},4457(e,t,s){!function(e){"use strict";function t(e,t,s){var i=" ";return(e%100>=20||e>=100&&e%100==0)&&(i=" de "),e+i+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",ww:"săptămâni",MM:"luni",yy:"ani"}[s]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,w:"o săptămână",ww:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(s(5093))},2271(e,t,s){!function(e){"use strict";function t(e,t,s){return"m"===s?t?"минута":"минуту":e+" "+(i=+e,n={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",ww:"неделя_недели_недель",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[s].split("_"),i%10==1&&i%100!=11?n[0]:i%10>=2&&i%10<=4&&(i%100<10||i%100>=20)?n[1]:n[2]);var i,n}var s=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:s,longMonthsParse:s,shortMonthsParse:s,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:t,m:t,mm:t,h:"час",hh:t,d:"день",dd:t,w:"неделя",ww:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,s){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(s(5093))},1221(e,t,s){!function(e){"use strict";var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],s=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:s,weekdaysShort:s,weekdaysMin:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,s){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(s(5093))},3478(e,t,s){!function(e){"use strict";e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},7538(e,t,s){!function(e){"use strict";e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,s){return e>11?s?"ප.ව.":"පස් වරු":s?"පෙ.ව.":"පෙර වරු"}})}(s(5093))},5784(e,t,s){!function(e){"use strict";var t="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),s="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function i(e){return e>1&&e<5}function n(e,t,s,n){var a=e+" ";switch(s){case"s":return t||n?"pár sekúnd":"pár sekundami";case"ss":return t||n?a+(i(e)?"sekundy":"sekúnd"):a+"sekundami";case"m":return t?"minúta":n?"minútu":"minútou";case"mm":return t||n?a+(i(e)?"minúty":"minút"):a+"minútami";case"h":return t?"hodina":n?"hodinu":"hodinou";case"hh":return t||n?a+(i(e)?"hodiny":"hodín"):a+"hodinami";case"d":return t||n?"deň":"dňom";case"dd":return t||n?a+(i(e)?"dni":"dní"):a+"dňami";case"M":return t||n?"mesiac":"mesiacom";case"MM":return t||n?a+(i(e)?"mesiace":"mesiacov"):a+"mesiacmi";case"y":return t||n?"rok":"rokom";case"yy":return t||n?a+(i(e)?"roky":"rokov"):a+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:s,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:case 4:case 5:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},6637(e,t,s){!function(e){"use strict";function t(e,t,s,i){var n=e+" ";switch(s){case"s":return t||i?"nekaj sekund":"nekaj sekundami";case"ss":return n+(1===e?t?"sekundo":"sekundi":2===e?t||i?"sekundi":"sekundah":e<5?t||i?"sekunde":"sekundah":"sekund");case"m":return t?"ena minuta":"eno minuto";case"mm":return n+(1===e?t?"minuta":"minuto":2===e?t||i?"minuti":"minutama":e<5?t||i?"minute":"minutami":t||i?"minut":"minutami");case"h":return t?"ena ura":"eno uro";case"hh":return n+(1===e?t?"ura":"uro":2===e?t||i?"uri":"urama":e<5?t||i?"ure":"urami":t||i?"ur":"urami");case"d":return t||i?"en dan":"enim dnem";case"dd":return n+(1===e?t||i?"dan":"dnem":2===e?t||i?"dni":"dnevoma":t||i?"dni":"dnevi");case"M":return t||i?"en mesec":"enim mesecem";case"MM":return n+(1===e?t||i?"mesec":"mesecem":2===e?t||i?"meseca":"mesecema":e<5?t||i?"mesece":"meseci":t||i?"mesecev":"meseci");case"y":return t||i?"eno leto":"enim letom";case"yy":return n+(1===e?t||i?"leto":"letom":2===e?t||i?"leti":"letoma":e<5?t||i?"leta":"leti":t||i?"let":"leti")}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(s(5093))},6794(e,t,s){!function(e){"use strict";e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,s){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},3322(e,t,s){!function(e){"use strict";var t={words:{ss:["секунда","секунде","секунди"],m:["један минут","једног минута"],mm:["минут","минута","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],d:["један дан","једног дана"],dd:["дан","дана","дана"],M:["један месец","једног месеца"],MM:["месец","месеца","месеци"],y:["једну годину","једне године"],yy:["годину","године","година"]},correctGrammaticalCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},translate:function(e,s,i,n){var a,r=t.words[i];return 1===i.length?"y"===i&&s?"једна година":n||s?r[0]:r[1]:(a=t.correctGrammaticalCase(e,r),"yy"===i&&s&&"годину"===a?e+" година":e+" "+a)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:t.translate,dd:t.translate,M:t.translate,MM:t.translate,y:t.translate,yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(s(5093))},5719(e,t,s){!function(e){"use strict";var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],d:["jedan dan","jednog dana"],dd:["dan","dana","dana"],M:["jedan mesec","jednog meseca"],MM:["mesec","meseca","meseci"],y:["jednu godinu","jedne godine"],yy:["godinu","godine","godina"]},correctGrammaticalCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},translate:function(e,s,i,n){var a,r=t.words[i];return 1===i.length?"y"===i&&s?"jedna godina":n||s?r[0]:r[1]:(a=t.correctGrammaticalCase(e,r),"yy"===i&&s&&"godinu"===a?e+" godina":e+" "+a)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:t.translate,dd:t.translate,M:t.translate,MM:t.translate,y:t.translate,yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(s(5093))},6e3(e,t,s){!function(e){"use strict";e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,s){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(s(5093))},1011(e,t,s){!function(e){"use strict";e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?":e":1===t||2===t?":a":":e")},week:{dow:1,doy:4}})}(s(5093))},748(e,t,s){!function(e){"use strict";e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(s(5093))},1025(e,t,s){!function(e){"use strict";var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},s={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(e){return s[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,s){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t||"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(s(5093))},1885(e,t,s){!function(e){"use strict";e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,s){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(s(5093))},8861(e,t,s){!function(e){"use strict";e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"segundu balun",ss:"segundu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(s(5093))},6571(e,t,s){!function(e){"use strict";var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:{format:"январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри".split("_"),standalone:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_")},monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Фардо соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,s){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(s(5093))},5802(e,t,s){!function(e){"use strict";e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,s){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",w:"1 สัปดาห์",ww:"%d สัปดาห์",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(s(5093))},9527(e,t,s){!function(e){"use strict";var t={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'ünji",4:"'ünji",100:"'ünji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};e.defineLocale("tk",{months:"Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"),monthsShort:"Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"),weekdays:"Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"),weekdaysShort:"Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"),weekdaysMin:"Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[düýn] LT",lastWeek:"[geçen] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s soň",past:"%s öň",s:"birnäçe sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir gün",dd:"%d gün",M:"bir aý",MM:"%d aý",y:"bir ýyl",yy:"%d ýyl"},ordinal:function(e,s){switch(s){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var i=e%10;return e+(t[i]||t[e%100-i]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(s(5093))},9231(e,t,s){!function(e){"use strict";e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(s(5093))},1052(e,t,s){!function(e){"use strict";var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function s(e,s,i,n){var a=function(e){var s=Math.floor(e%1e3/100),i=Math.floor(e%100/10),n=e%10,a="";return s>0&&(a+=t[s]+"vatlh"),i>0&&(a+=(""!==a?" ":"")+t[i]+"maH"),n>0&&(a+=(""!==a?" ":"")+t[n]),""===a?"pagh":a}(e);switch(i){case"ss":return a+" lup";case"mm":return a+" tup";case"hh":return a+" rep";case"dd":return a+" jaj";case"MM":return a+" jar";case"yy":return a+" DIS"}}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:s,m:"wa’ tup",mm:s,h:"wa’ rep",hh:s,d:"wa’ jaj",dd:s,M:"wa’ jar",MM:s,y:"wa’ DIS",yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},5096(e,t,s){!function(e){"use strict";var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pzt_Sal_Çar_Per_Cum_Cmt".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),meridiem:function(e,t,s){return e<12?s?"öö":"ÖÖ":s?"ös":"ÖS"},meridiemParse:/öö|ÖÖ|ös|ÖS/,isPM:function(e){return"ös"===e||"ÖS"===e},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",w:"bir hafta",ww:"%d hafta",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,s){switch(s){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var i=e%10;return e+(t[i]||t[e%100-i]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(s(5093))},9846(e,t,s){!function(e){"use strict";function t(e,t,s,i){var n={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return i||t?n[s][0]:n[s][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,s){return e>11?s?"d'o":"D'O":s?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(s(5093))},7711(e,t,s){!function(e){"use strict";e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(s(5093))},1765(e,t,s){!function(e){"use strict";e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(s(5093))},8414(e,t,s){!function(e){"use strict";e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,s){var i=100*e+t;return i<600?"يېرىم كېچە":i<900?"سەھەر":i<1130?"چۈشتىن بۇرۇن":i<1230?"چۈش":i<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})}(s(5093))},6618(e,t,s){!function(e){"use strict";function t(e,t,s){return"m"===s?t?"хвилина":"хвилину":"h"===s?t?"година":"годину":e+" "+(i=+e,n={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[s].split("_"),i%10==1&&i%100!=11?n[0]:i%10>=2&&i%10<=4&&(i%100<10||i%100>=20)?n[1]:n[2]);var i,n}function s(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var s={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?s.nominative.slice(1,7).concat(s.nominative.slice(0,1)):e?s[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:s.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:s("[Сьогодні "),nextDay:s("[Завтра "),lastDay:s("[Вчора "),nextWeek:s("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return s("[Минулої] dddd [").call(this);case 1:case 2:case 4:return s("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:t,m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"місяць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,s){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(s(5093))},158(e,t,s){!function(e){"use strict";var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],s=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:s,weekdaysShort:s,weekdaysMin:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,s){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(s(5093))},2475(e,t,s){!function(e){"use strict";e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(s(5093))},7609(e,t,s){!function(e){"use strict";e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(s(5093))},1135(e,t,s){!function(e){"use strict";e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,s){return e<12?s?"sa":"SA":s?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần trước lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",w:"một tuần",ww:"%d tuần",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(s(5093))},4051(e,t,s){!function(e){"use strict";e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(s(5093))},2218(e,t,s){!function(e){"use strict";e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(s(5093))},2648(e,t,s){!function(e){"use strict";e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,s){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",w:"1 周",ww:"%d 周",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(s(5093))},1632(e,t,s){!function(e){"use strict";e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,s){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1200?"上午":1200===i?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(s(5093))},1541(e,t,s){!function(e){"use strict";e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,s){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(s(5093))},304(e,t,s){!function(e){"use strict";e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,s){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(s(5093))},5358(e,t,s){var i={"./af":5177,"./af.js":5177,"./ar":1509,"./ar-dz":1488,"./ar-dz.js":1488,"./ar-kw":8676,"./ar-kw.js":8676,"./ar-ly":2353,"./ar-ly.js":2353,"./ar-ma":4496,"./ar-ma.js":4496,"./ar-ps":6947,"./ar-ps.js":6947,"./ar-sa":2682,"./ar-sa.js":2682,"./ar-tn":9756,"./ar-tn.js":9756,"./ar.js":1509,"./az":5533,"./az.js":5533,"./be":8959,"./be.js":8959,"./bg":7777,"./bg.js":7777,"./bm":4903,"./bm.js":4903,"./bn":1290,"./bn-bd":7357,"./bn-bd.js":7357,"./bn.js":1290,"./bo":1545,"./bo.js":1545,"./br":1470,"./br.js":1470,"./bs":4429,"./bs.js":4429,"./ca":7306,"./ca.js":7306,"./cs":6464,"./cs.js":6464,"./cv":3635,"./cv.js":3635,"./cy":4226,"./cy.js":4226,"./da":3601,"./da.js":3601,"./de":7853,"./de-at":6111,"./de-at.js":6111,"./de-ch":4697,"./de-ch.js":4697,"./de.js":7853,"./dv":708,"./dv.js":708,"./el":4691,"./el.js":4691,"./en-au":3872,"./en-au.js":3872,"./en-ca":8298,"./en-ca.js":8298,"./en-gb":6195,"./en-gb.js":6195,"./en-ie":6584,"./en-ie.js":6584,"./en-il":5543,"./en-il.js":5543,"./en-in":9033,"./en-in.js":9033,"./en-nz":9402,"./en-nz.js":9402,"./en-sg":3004,"./en-sg.js":3004,"./eo":2934,"./eo.js":2934,"./es":7650,"./es-do":838,"./es-do.js":838,"./es-mx":7730,"./es-mx.js":7730,"./es-us":6575,"./es-us.js":6575,"./es.js":7650,"./et":3035,"./et.js":3035,"./eu":3508,"./eu.js":3508,"./fa":119,"./fa.js":119,"./fi":527,"./fi.js":527,"./fil":5995,"./fil.js":5995,"./fo":2477,"./fo.js":2477,"./fr":5498,"./fr-ca":6435,"./fr-ca.js":6435,"./fr-ch":7892,"./fr-ch.js":7892,"./fr.js":5498,"./fy":7071,"./fy.js":7071,"./ga":1734,"./ga.js":1734,"./gd":217,"./gd.js":217,"./gl":7329,"./gl.js":7329,"./gom-deva":2124,"./gom-deva.js":2124,"./gom-latn":3383,"./gom-latn.js":3383,"./gu":5050,"./gu.js":5050,"./he":1713,"./he.js":1713,"./hi":3861,"./hi.js":3861,"./hr":6308,"./hr.js":6308,"./hu":609,"./hu.js":609,"./hy-am":7160,"./hy-am.js":7160,"./id":4063,"./id.js":4063,"./is":9374,"./is.js":9374,"./it":8383,"./it-ch":1827,"./it-ch.js":1827,"./it.js":8383,"./ja":3827,"./ja.js":3827,"./jv":9722,"./jv.js":9722,"./ka":1794,"./ka.js":1794,"./kk":7088,"./kk.js":7088,"./km":6870,"./km.js":6870,"./kn":4451,"./kn.js":4451,"./ko":3164,"./ko.js":3164,"./ku":8174,"./ku-kmr":6181,"./ku-kmr.js":6181,"./ku.js":8174,"./ky":8474,"./ky.js":8474,"./lb":9680,"./lb.js":9680,"./lo":5867,"./lo.js":5867,"./lt":5766,"./lt.js":5766,"./lv":9532,"./lv.js":9532,"./me":8076,"./me.js":8076,"./mi":1848,"./mi.js":1848,"./mk":306,"./mk.js":306,"./ml":3739,"./ml.js":3739,"./mn":9053,"./mn.js":9053,"./mr":6169,"./mr.js":6169,"./ms":3386,"./ms-my":2297,"./ms-my.js":2297,"./ms.js":3386,"./mt":7075,"./mt.js":7075,"./my":2264,"./my.js":2264,"./nb":2274,"./nb.js":2274,"./ne":8235,"./ne.js":8235,"./nl":2572,"./nl-be":3784,"./nl-be.js":3784,"./nl.js":2572,"./nn":4566,"./nn.js":4566,"./oc-lnc":9330,"./oc-lnc.js":9330,"./pa-in":9849,"./pa-in.js":9849,"./pl":4418,"./pl.js":4418,"./pt":9834,"./pt-br":8303,"./pt-br.js":8303,"./pt.js":9834,"./ro":4457,"./ro.js":4457,"./ru":2271,"./ru.js":2271,"./sd":1221,"./sd.js":1221,"./se":3478,"./se.js":3478,"./si":7538,"./si.js":7538,"./sk":5784,"./sk.js":5784,"./sl":6637,"./sl.js":6637,"./sq":6794,"./sq.js":6794,"./sr":5719,"./sr-cyrl":3322,"./sr-cyrl.js":3322,"./sr.js":5719,"./ss":6e3,"./ss.js":6e3,"./sv":1011,"./sv.js":1011,"./sw":748,"./sw.js":748,"./ta":1025,"./ta.js":1025,"./te":1885,"./te.js":1885,"./tet":8861,"./tet.js":8861,"./tg":6571,"./tg.js":6571,"./th":5802,"./th.js":5802,"./tk":9527,"./tk.js":9527,"./tl-ph":9231,"./tl-ph.js":9231,"./tlh":1052,"./tlh.js":1052,"./tr":5096,"./tr.js":5096,"./tzl":9846,"./tzl.js":9846,"./tzm":1765,"./tzm-latn":7711,"./tzm-latn.js":7711,"./tzm.js":1765,"./ug-cn":8414,"./ug-cn.js":8414,"./uk":6618,"./uk.js":6618,"./ur":158,"./ur.js":158,"./uz":7609,"./uz-latn":2475,"./uz-latn.js":2475,"./uz.js":7609,"./vi":1135,"./vi.js":1135,"./x-pseudo":4051,"./x-pseudo.js":4051,"./yo":2218,"./yo.js":2218,"./zh-cn":2648,"./zh-cn.js":2648,"./zh-hk":1632,"./zh-hk.js":1632,"./zh-mo":1541,"./zh-mo.js":1541,"./zh-tw":304,"./zh-tw.js":304};function n(e){var t=a(e);return s(t)}function a(e){if(!s.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}n.keys=function(){return Object.keys(i)},n.resolve=a,e.exports=n,n.id=5358},5093(e,t,s){(e=s.nmd(e)).exports=function(){"use strict";var t,i;function n(){return t.apply(null,arguments)}function a(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function l(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(o(e,t))return!1;return!0}function c(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function p(e,t){var s,i=[],n=e.length;for(s=0;s>>0;for(t=0;t0)for(s=0;s=0?s?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+i}var F=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,A=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,O={},C={};function N(e,t,s,i){var n=i;"string"==typeof i&&(n=function(){return this[i]()}),e&&(C[e]=n),t&&(C[t[0]]=function(){return P(n.apply(this,arguments),t[1],t[2])}),s&&(C[s]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function R(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function j(e,t){return e.isValid()?(t=I(t,e.localeData()),O[t]=O[t]||function(e){var t,s,i=e.match(F);for(t=0,s=i.length;t=0&&A.test(e);)e=e.replace(A,i),A.lastIndex=0,s-=1;return e}var H={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function z(e){return"string"==typeof e?H[e]||H[e.toLowerCase()]:void 0}function U(e){var t,s,i={};for(s in e)o(e,s)&&(t=z(s))&&(i[t]=e[s]);return i}var W={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};var V,B=/\d/,$=/\d\d/,K=/\d{3}/,q=/\d{4}/,G=/[+-]?\d{6}/,J=/\d\d?/,Z=/\d\d\d\d?/,X=/\d\d\d\d\d\d?/,Q=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,se=/\d+/,ie=/[+-]?\d+/,ne=/Z|[+-]\d\d:?\d\d/gi,ae=/Z|[+-]\d\d(?::?\d\d)?/gi,re=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,oe=/^[1-9]\d?/,le=/^([1-9]\d|\d)/;function ce(e,t,s){V[e]=S(t)?t:function(e,i){return e&&s?s:t}}function ue(e,t){return o(V,e)?V[e](t._strict,t._locale):new RegExp(de(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,s,i,n){return t||s||i||n})))}function de(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function pe(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function me(e){var t=+e,s=0;return 0!==t&&isFinite(t)&&(s=pe(t)),s}V={};var he={};function fe(e,t){var s,i,n=t;for("string"==typeof e&&(e=[e]),u(t)&&(n=function(e,s){s[t]=me(e)}),i=e.length,s=0;s68?1900:2e3)};var Ee,Ye=Pe("FullYear",!0);function Pe(e,t){return function(s){return null!=s?(Ae(this,e,s),n.updateOffset(this,t),this):Fe(this,e)}}function Fe(e,t){if(!e.isValid())return NaN;var s=e._d,i=e._isUTC;switch(t){case"Milliseconds":return i?s.getUTCMilliseconds():s.getMilliseconds();case"Seconds":return i?s.getUTCSeconds():s.getSeconds();case"Minutes":return i?s.getUTCMinutes():s.getMinutes();case"Hours":return i?s.getUTCHours():s.getHours();case"Date":return i?s.getUTCDate():s.getDate();case"Day":return i?s.getUTCDay():s.getDay();case"Month":return i?s.getUTCMonth():s.getMonth();case"FullYear":return i?s.getUTCFullYear():s.getFullYear();default:return NaN}}function Ae(e,t,s){var i,n,a,r,o;if(e.isValid()&&!isNaN(s)){switch(i=e._d,n=e._isUTC,t){case"Milliseconds":return void(n?i.setUTCMilliseconds(s):i.setMilliseconds(s));case"Seconds":return void(n?i.setUTCSeconds(s):i.setSeconds(s));case"Minutes":return void(n?i.setUTCMinutes(s):i.setMinutes(s));case"Hours":return void(n?i.setUTCHours(s):i.setHours(s));case"Date":return void(n?i.setUTCDate(s):i.setDate(s));case"FullYear":break;default:return}a=s,r=e.month(),o=29!==(o=e.date())||1!==r||ye(a)?o:28,n?i.setUTCFullYear(a,r,o):i.setFullYear(a,r,o)}}function Oe(e,t){if(isNaN(e)||isNaN(t))return NaN;var s,i=(t%(s=12)+s)%s;return e+=(t-i)/12,1===i?ye(e)?29:28:31-i%7%2}Ee=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t=0?(o=new Date(e+400,t,s,i,n,a,r),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,s,i,n,a,r),o}function Be(e){var t,s;return e<100&&e>=0?((s=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,s)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function $e(e,t,s){var i=7+t-s;return-(7+Be(e,0,i).getUTCDay()-t)%7+i-1}function Ke(e,t,s,i,n){var a,r,o=1+7*(t-1)+(7+s-i)%7+$e(e,i,n);return o<=0?r=Se(a=e-1)+o:o>Se(e)?(a=e+1,r=o-Se(e)):(a=e,r=o),{year:a,dayOfYear:r}}function qe(e,t,s){var i,n,a=$e(e.year(),t,s),r=Math.floor((e.dayOfYear()-a-1)/7)+1;return r<1?i=r+Ge(n=e.year()-1,t,s):r>Ge(e.year(),t,s)?(i=r-Ge(e.year(),t,s),n=e.year()+1):(n=e.year(),i=r),{week:i,year:n}}function Ge(e,t,s){var i=$e(e,t,s),n=$e(e+1,t,s);return(Se(e)-i+n)/7}N("w",["ww",2],"wo","week"),N("W",["WW",2],"Wo","isoWeek"),ce("w",J,oe),ce("ww",J,$),ce("W",J,oe),ce("WW",J,$),_e(["w","ww","W","WW"],function(e,t,s,i){t[i.substr(0,1)]=me(e)});function Je(e,t){return e.slice(t,7).concat(e.slice(0,t))}N("d",0,"do","day"),N("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),N("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),N("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),N("e",0,0,"weekday"),N("E",0,0,"isoWeekday"),ce("d",J),ce("e",J),ce("E",J),ce("dd",function(e,t){return t.weekdaysMinRegex(e)}),ce("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ce("dddd",function(e,t){return t.weekdaysRegex(e)}),_e(["dd","ddd","dddd"],function(e,t,s,i){var n=s._locale.weekdaysParse(e,i,s._strict);null!=n?t.d=n:f(s).invalidWeekday=e}),_e(["d","e","E"],function(e,t,s,i){t[i]=me(e)});var Ze="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Xe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Qe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),et=re,tt=re,st=re;function it(e,t,s){var i,n,a,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)a=h([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(a,"").toLocaleLowerCase();return s?"dddd"===t?-1!==(n=Ee.call(this._weekdaysParse,r))?n:null:"ddd"===t?-1!==(n=Ee.call(this._shortWeekdaysParse,r))?n:null:-1!==(n=Ee.call(this._minWeekdaysParse,r))?n:null:"dddd"===t?-1!==(n=Ee.call(this._weekdaysParse,r))||-1!==(n=Ee.call(this._shortWeekdaysParse,r))||-1!==(n=Ee.call(this._minWeekdaysParse,r))?n:null:"ddd"===t?-1!==(n=Ee.call(this._shortWeekdaysParse,r))||-1!==(n=Ee.call(this._weekdaysParse,r))||-1!==(n=Ee.call(this._minWeekdaysParse,r))?n:null:-1!==(n=Ee.call(this._minWeekdaysParse,r))||-1!==(n=Ee.call(this._weekdaysParse,r))||-1!==(n=Ee.call(this._shortWeekdaysParse,r))?n:null}function nt(){function e(e,t){return t.length-e.length}var t,s,i,n,a,r=[],o=[],l=[],c=[];for(t=0;t<7;t++)s=h([2e3,1]).day(t),i=de(this.weekdaysMin(s,"")),n=de(this.weekdaysShort(s,"")),a=de(this.weekdays(s,"")),r.push(i),o.push(n),l.push(a),c.push(i),c.push(n),c.push(a);r.sort(e),o.sort(e),l.sort(e),c.sort(e),this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function at(){return this.hours()%12||12}function rt(e,t){N(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function ot(e,t){return t._meridiemParse}N("H",["HH",2],0,"hour"),N("h",["hh",2],0,at),N("k",["kk",2],0,function(){return this.hours()||24}),N("hmm",0,0,function(){return""+at.apply(this)+P(this.minutes(),2)}),N("hmmss",0,0,function(){return""+at.apply(this)+P(this.minutes(),2)+P(this.seconds(),2)}),N("Hmm",0,0,function(){return""+this.hours()+P(this.minutes(),2)}),N("Hmmss",0,0,function(){return""+this.hours()+P(this.minutes(),2)+P(this.seconds(),2)}),rt("a",!0),rt("A",!1),ce("a",ot),ce("A",ot),ce("H",J,le),ce("h",J,oe),ce("k",J,oe),ce("HH",J,$),ce("hh",J,$),ce("kk",J,$),ce("hmm",Z),ce("hmmss",X),ce("Hmm",Z),ce("Hmmss",X),fe(["H","HH"],be),fe(["k","kk"],function(e,t,s){var i=me(e);t[be]=24===i?0:i}),fe(["a","A"],function(e,t,s){s._isPm=s._locale.isPM(e),s._meridiem=e}),fe(["h","hh"],function(e,t,s){t[be]=me(e),f(s).bigHour=!0}),fe("hmm",function(e,t,s){var i=e.length-2;t[be]=me(e.substr(0,i)),t[Te]=me(e.substr(i)),f(s).bigHour=!0}),fe("hmmss",function(e,t,s){var i=e.length-4,n=e.length-2;t[be]=me(e.substr(0,i)),t[Te]=me(e.substr(i,2)),t[Le]=me(e.substr(n)),f(s).bigHour=!0}),fe("Hmm",function(e,t,s){var i=e.length-2;t[be]=me(e.substr(0,i)),t[Te]=me(e.substr(i))}),fe("Hmmss",function(e,t,s){var i=e.length-4,n=e.length-2;t[be]=me(e.substr(0,i)),t[Te]=me(e.substr(i,2)),t[Le]=me(e.substr(n))});var lt=Pe("Hours",!0);var ct,ut={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ce,monthsShort:Ne,week:{dow:0,doy:6},weekdays:Ze,weekdaysMin:Qe,weekdaysShort:Xe,meridiemParse:/[ap]\.?m?\.?/i},dt={},pt={};function mt(e,t){var s,i=Math.min(e.length,t.length);for(s=0;s0;){if(i=ft(n.slice(0,t).join("-")))return i;if(s&&s.length>=t&&mt(n,s)>=t-1)break;t--}a++}return ct}(e)}function vt(e){var t,s=e._a;return s&&-2===f(e).overflow&&(t=s[xe]<0||s[xe]>11?xe:s[we]<1||s[we]>Oe(s[ve],s[xe])?we:s[be]<0||s[be]>24||24===s[be]&&(0!==s[Te]||0!==s[Le]||0!==s[Me])?be:s[Te]<0||s[Te]>59?Te:s[Le]<0||s[Le]>59?Le:s[Me]<0||s[Me]>999?Me:-1,f(e)._overflowDayOfYear&&(twe)&&(t=we),f(e)._overflowWeeks&&-1===t&&(t=ke),f(e)._overflowWeekday&&-1===t&&(t=De),f(e).overflow=t),e}var xt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,wt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,bt=/Z|[+-]\d\d(?::?\d\d)?/,Tt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Lt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Mt=/^\/?Date\((-?\d+)/i,kt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Dt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function St(e){var t,s,i,n,a,r,o=e._i,l=xt.exec(o)||wt.exec(o),c=Tt.length,u=Lt.length;if(l){for(f(e).iso=!0,t=0,s=c;t7)&&(l=!0)):(a=e._locale._week.dow,r=e._locale._week.doy,c=qe(Nt(),a,r),s=Pt(t.gg,e._a[ve],c.year),i=Pt(t.w,c.week),null!=t.d?((n=t.d)<0||n>6)&&(l=!0):null!=t.e?(n=t.e+a,(t.e<0||t.e>6)&&(l=!0)):n=a),i<1||i>Ge(s,a,r)?f(e)._overflowWeeks=!0:null!=l?f(e)._overflowWeekday=!0:(o=Ke(s,i,n,a,r),e._a[ve]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=Pt(e._a[ve],i[ve]),(e._dayOfYear>Se(r)||0===e._dayOfYear)&&(f(e)._overflowDayOfYear=!0),s=Be(r,0,e._dayOfYear),e._a[xe]=s.getUTCMonth(),e._a[we]=s.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=i[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[be]&&0===e._a[Te]&&0===e._a[Le]&&0===e._a[Me]&&(e._nextDay=!0,e._a[be]=0),e._d=(e._useUTC?Be:Ve).apply(null,o),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[be]=24),e._w&&void 0!==e._w.d&&e._w.d!==a&&(f(e).weekdayMismatch=!0)}}function At(e){if(e._f!==n.ISO_8601)if(e._f!==n.RFC_2822){e._a=[],f(e).empty=!0;var t,s,i,a,r,o,l,c=""+e._i,u=c.length,d=0;for(l=(i=I(e._f,e._locale).match(F)||[]).length,t=0;t0&&f(e).unusedInput.push(r),c=c.slice(c.indexOf(s)+s.length),d+=s.length),C[a]?(s?f(e).empty=!1:f(e).unusedTokens.push(a),ge(a,s,e)):e._strict&&!s&&f(e).unusedTokens.push(a);f(e).charsLeftOver=u-d,c.length>0&&f(e).unusedInput.push(c),e._a[be]<=12&&!0===f(e).bigHour&&e._a[be]>0&&(f(e).bigHour=void 0),f(e).parsedDateParts=e._a.slice(0),f(e).meridiem=e._meridiem,e._a[be]=function(e,t,s){var i;return null==s?t:null!=e.meridiemHour?e.meridiemHour(t,s):null!=e.isPM?((i=e.isPM(s))&&t<12&&(t+=12),i||12!==t||(t=0),t):t}(e._locale,e._a[be],e._meridiem),null!==(o=f(e).era)&&(e._a[ve]=e._locale.erasConvertYear(o,e._a[ve])),Ft(e),vt(e)}else Yt(e);else St(e)}function Ot(e){var t=e._i,s=e._f;return e._locale=e._locale||yt(e._l),null===t||void 0===s&&""===t?g({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),b(t)?new w(vt(t)):(d(t)?e._d=t:a(s)?function(e){var t,s,i,n,a,r,o=!1,l=e._f.length;if(0===l)return f(e).invalidFormat=!0,void(e._d=new Date(NaN));for(n=0;nthis?this:e:g()});function It(e,t){var s,i;if(1===t.length&&a(t[0])&&(t=t[0]),!t.length)return Nt();for(s=t[0],i=1;i=0?new Date(e+400,t,s)-hs:new Date(e,t,s).valueOf()}function gs(e,t,s){return e<100&&e>=0?Date.UTC(e+400,t,s)-hs:Date.UTC(e,t,s)}function ys(e,t){return t.erasAbbrRegex(e)}function vs(){var e,t,s,i,n,a=[],r=[],o=[],l=[],c=this.eras();for(e=0,t=c.length;e(a=Ge(e,i,n))&&(t=a),bs.call(this,e,t,s,i,n))}function bs(e,t,s,i,n){var a=Ke(e,t,s,i,n),r=Be(a.year,0,a.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}N("N",0,0,"eraAbbr"),N("NN",0,0,"eraAbbr"),N("NNN",0,0,"eraAbbr"),N("NNNN",0,0,"eraName"),N("NNNNN",0,0,"eraNarrow"),N("y",["y",1],"yo","eraYear"),N("y",["yy",2],0,"eraYear"),N("y",["yyy",3],0,"eraYear"),N("y",["yyyy",4],0,"eraYear"),ce("N",ys),ce("NN",ys),ce("NNN",ys),ce("NNNN",function(e,t){return t.erasNameRegex(e)}),ce("NNNNN",function(e,t){return t.erasNarrowRegex(e)}),fe(["N","NN","NNN","NNNN","NNNNN"],function(e,t,s,i){var n=s._locale.erasParse(e,i,s._strict);n?f(s).era=n:f(s).invalidEra=e}),ce("y",se),ce("yy",se),ce("yyy",se),ce("yyyy",se),ce("yo",function(e,t){return t._eraYearOrdinalRegex||se}),fe(["y","yy","yyy","yyyy"],ve),fe(["yo"],function(e,t,s,i){var n;s._locale._eraYearOrdinalRegex&&(n=e.match(s._locale._eraYearOrdinalRegex)),s._locale.eraYearOrdinalParse?t[ve]=s._locale.eraYearOrdinalParse(e,n):t[ve]=parseInt(e,10)}),N(0,["gg",2],0,function(){return this.weekYear()%100}),N(0,["GG",2],0,function(){return this.isoWeekYear()%100}),xs("gggg","weekYear"),xs("ggggg","weekYear"),xs("GGGG","isoWeekYear"),xs("GGGGG","isoWeekYear"),ce("G",ie),ce("g",ie),ce("GG",J,$),ce("gg",J,$),ce("GGGG",ee,q),ce("gggg",ee,q),ce("GGGGG",te,G),ce("ggggg",te,G),_e(["gggg","ggggg","GGGG","GGGGG"],function(e,t,s,i){t[i.substr(0,2)]=me(e)}),_e(["gg","GG"],function(e,t,s,i){t[i]=n.parseTwoDigitYear(e)}),N("Q",0,"Qo","quarter"),ce("Q",B),fe("Q",function(e,t){t[xe]=3*(me(e)-1)}),N("D",["DD",2],"Do","date"),ce("D",J,oe),ce("DD",J,$),ce("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),fe(["D","DD"],we),fe("Do",function(e,t){t[we]=me(e.match(J)[0])});var Ts=Pe("Date",!0);N("DDD",["DDDD",3],"DDDo","dayOfYear"),ce("DDD",Q),ce("DDDD",K),fe(["DDD","DDDD"],function(e,t,s){s._dayOfYear=me(e)}),N("m",["mm",2],0,"minute"),ce("m",J,le),ce("mm",J,$),fe(["m","mm"],Te);var Ls=Pe("Minutes",!1);N("s",["ss",2],0,"second"),ce("s",J,le),ce("ss",J,$),fe(["s","ss"],Le);var Ms,ks,Ds=Pe("Seconds",!1);for(N("S",0,0,function(){return~~(this.millisecond()/100)}),N(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),N(0,["SSS",3],0,"millisecond"),N(0,["SSSS",4],0,function(){return 10*this.millisecond()}),N(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),N(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),N(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),N(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),N(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),ce("S",Q,B),ce("SS",Q,$),ce("SSS",Q,K),Ms="SSSS";Ms.length<=9;Ms+="S")ce(Ms,se);function Ss(e,t){t[Me]=me(1e3*("0."+e))}for(Ms="S";Ms.length<=9;Ms+="S")fe(Ms,Ss);ks=Pe("Milliseconds",!1),N("z",0,0,"zoneAbbr"),N("zz",0,0,"zoneName");var Es=w.prototype;function Ys(e){return e}Es.add=is,Es.calendar=function(e,t){1===arguments.length&&(arguments[0]?rs(arguments[0])?(e=arguments[0],t=void 0):function(e){var t,s=r(e)&&!l(e),i=!1,n=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(t=0;ts.valueOf():s.valueOf()9999?j(s,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):S(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",j(s,"Z")):j(s,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Es.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,s,i="moment",n="";return this.isLocal()||(i=0===this.utcOffset()?"moment.utc":"moment.parseZone",n="Z"),e="["+i+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",s=n+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+s)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(Es[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),Es.toJSON=function(){return this.isValid()?this.toISOString():null},Es.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Es.unix=function(){return Math.floor(this.valueOf()/1e3)},Es.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Es.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Es.eraName=function(){var e,t,s,i=this.localeData().eras();for(e=0,t=i.length;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Es.isLocal=function(){return!!this.isValid()&&!this._isUTC},Es.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Es.isUtc=Gt,Es.isUTC=Gt,Es.zoneAbbr=function(){return this._isUTC?"UTC":""},Es.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Es.dates=L("dates accessor is deprecated. Use date instead.",Ts),Es.months=L("months accessor is deprecated. Use month instead",Ue),Es.years=L("years accessor is deprecated. Use year instead",Ye),Es.zone=L("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),Es.isDSTShifted=L("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!c(this._isDSTShifted))return this._isDSTShifted;var e,t={};return x(t,this),(t=Ot(t))._a?(e=t._isUTC?h(t._a):Nt(t._a),this._isDSTShifted=this.isValid()&&function(e,t,s){var i,n=Math.min(e.length,t.length),a=Math.abs(e.length-t.length),r=0;for(i=0;i0):this._isDSTShifted=!1,this._isDSTShifted});var Ps=Y.prototype;function Fs(e,t,s,i){var n=yt(),a=h().set(i,t);return n[s](a,e)}function As(e,t,s){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return Fs(e,t,s,"month");var i,n=[];for(i=0;i<12;i++)n[i]=Fs(e,i,s,"month");return n}function Os(e,t,s,i){"boolean"==typeof e?(u(t)&&(s=t,t=void 0),t=t||""):(s=t=e,e=!1,u(t)&&(s=t,t=void 0),t=t||"");var n,a=yt(),r=e?a._week.dow:0,o=[];if(null!=s)return Fs(t,(s+r)%7,i,"day");for(n=0;n<7;n++)o[n]=Fs(t,(n+r)%7,i,"day");return o}Ps.calendar=function(e,t,s){var i=this._calendar[e]||this._calendar.sameElse;return S(i)?i.call(t,s):i},Ps.longDateFormat=function(e){var t=this._longDateFormat[e],s=this._longDateFormat[e.toUpperCase()];return t||!s?t:(this._longDateFormat[e]=s.match(F).map(function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e}).join(""),this._longDateFormat[e])},Ps.invalidDate=function(){return this._invalidDate},Ps.ordinal=function(e){return this._ordinal.replace("%d",e)},Ps.preparse=Ys,Ps.postformat=Ys,Ps.relativeTime=function(e,t,s,i){var n=this._relativeTime[s];return S(n)?n(e,t,s,i):n.replace(/%d/i,e)},Ps.pastFuture=function(e,t){var s=this._relativeTime[e>0?"future":"past"];return S(s)?s(t):s.replace(/%s/i,t)},Ps.set=function(e){var t,s;for(s in e)o(e,s)&&(S(t=e[s])?this[s]=t:this["_"+s]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Ps.eras=function(e,t){var s,i,a,r=this._eras||yt("en")._eras;for(s=0,i=r.length;s=0)return l[i]},Ps.erasConvertYear=function(e,t){var s=e.since<=e.until?1:-1;return void 0===t?n(e.since).year():n(e.since).year()+(t-e.offset)*s},Ps.erasAbbrRegex=function(e){return o(this,"_erasAbbrRegex")||vs.call(this),e?this._erasAbbrRegex:this._erasRegex},Ps.erasNameRegex=function(e){return o(this,"_erasNameRegex")||vs.call(this),e?this._erasNameRegex:this._erasRegex},Ps.erasNarrowRegex=function(e){return o(this,"_erasNarrowRegex")||vs.call(this),e?this._erasNarrowRegex:this._erasRegex},Ps.months=function(e,t){return e?a(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Re).test(t)?"format":"standalone"][e.month()]:a(this._months)?this._months:this._months.standalone},Ps.monthsShort=function(e,t){return e?a(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Re.test(t)?"format":"standalone"][e.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Ps.monthsParse=function(e,t,s){var i,n,a;if(this._monthsParseExact)return He.call(this,e,t,s);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(n=h([2e3,i]),s&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),s||this._monthsParse[i]||(a="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[i]=new RegExp(a.replace(".",""),"i")),s&&"MMMM"===t&&this._longMonthsParse[i].test(e))return i;if(s&&"MMM"===t&&this._shortMonthsParse[i].test(e))return i;if(!s&&this._monthsParse[i].test(e))return i}},Ps.monthsRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||We.call(this),e?this._monthsStrictRegex:this._monthsRegex):(o(this,"_monthsRegex")||(this._monthsRegex=Ie),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},Ps.monthsShortRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||We.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(o(this,"_monthsShortRegex")||(this._monthsShortRegex=je),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},Ps.week=function(e){return qe(e,this._week.dow,this._week.doy).week},Ps.firstDayOfYear=function(){return this._week.doy},Ps.firstDayOfWeek=function(){return this._week.dow},Ps.weekdays=function(e,t){var s=a(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Je(s,this._week.dow):e?s[e.day()]:s},Ps.weekdaysMin=function(e){return!0===e?Je(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},Ps.weekdaysShort=function(e){return!0===e?Je(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},Ps.weekdaysParse=function(e,t,s){var i,n,a;if(this._weekdaysParseExact)return it.call(this,e,t,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(n=h([2e3,1]).day(i),s&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(a="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[i]=new RegExp(a.replace(".",""),"i")),s&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(s&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(s&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!s&&this._weekdaysParse[i].test(e))return i}},Ps.weekdaysRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||nt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(o(this,"_weekdaysRegex")||(this._weekdaysRegex=et),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},Ps.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||nt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=tt),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Ps.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||nt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=st),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Ps.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},Ps.meridiem=function(e,t,s){return e>11?s?"pm":"PM":s?"am":"AM"},_t("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===me(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.lang=L("moment.lang is deprecated. Use moment.locale instead.",_t),n.langData=L("moment.langData is deprecated. Use moment.localeData instead.",yt);var Cs=Math.abs;function Ns(e,t,s,i){var n=Xt(t,s);return e._milliseconds+=i*n._milliseconds,e._days+=i*n._days,e._months+=i*n._months,e._bubble()}function Rs(e){return e<0?Math.floor(e):Math.ceil(e)}function js(e){return 4800*e/146097}function Is(e){return 146097*e/4800}function Hs(e){return function(){return this.as(e)}}var zs=Hs("ms"),Us=Hs("s"),Ws=Hs("m"),Vs=Hs("h"),Bs=Hs("d"),$s=Hs("w"),Ks=Hs("M"),qs=Hs("Q"),Gs=Hs("y"),Js=zs;function Zs(e){return function(){return this.isValid()?this._data[e]:NaN}}var Xs=Zs("milliseconds"),Qs=Zs("seconds"),ei=Zs("minutes"),ti=Zs("hours"),si=Zs("days"),ii=Zs("months"),ni=Zs("years");var ai=Math.round,ri={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function oi(e,t,s,i,n){return n.relativeTime(t||1,!!s,e,i)}var li=Math.abs;function ci(e){return(e>0)-(e<0)||+e}function ui(){if(!this.isValid())return this.localeData().invalidDate();var e,t,s,i,n,a,r,o,l=li(this._milliseconds)/1e3,c=li(this._days),u=li(this._months),d=this.asSeconds();return d?(e=pe(l/60),t=pe(e/60),l%=60,e%=60,s=pe(u/12),u%=12,i=l?l.toFixed(3).replace(/\.?0+$/,""):"",n=d<0?"-":"",a=ci(this._months)!==ci(d)?"-":"",r=ci(this._days)!==ci(d)?"-":"",o=ci(this._milliseconds)!==ci(d)?"-":"",n+"P"+(s?a+s+"Y":"")+(u?a+u+"M":"")+(c?r+c+"D":"")+(t||e||l?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(l?o+i+"S":"")):"P0D"}var di=zt.prototype;return di.isValid=function(){return this._isValid},di.abs=function(){var e=this._data;return this._milliseconds=Cs(this._milliseconds),this._days=Cs(this._days),this._months=Cs(this._months),e.milliseconds=Cs(e.milliseconds),e.seconds=Cs(e.seconds),e.minutes=Cs(e.minutes),e.hours=Cs(e.hours),e.months=Cs(e.months),e.years=Cs(e.years),this},di.add=function(e,t){return Ns(this,e,t,1)},di.subtract=function(e,t){return Ns(this,e,t,-1)},di.as=function(e){if(!this.isValid())return NaN;var t,s,i=this._milliseconds;if("month"===(e=z(e))||"quarter"===e||"year"===e)switch(t=this._days+i/864e5,s=this._months+js(t),e){case"month":return s;case"quarter":return s/3;case"year":return s/12}else switch(t=this._days+Math.round(Is(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}},di.asMilliseconds=zs,di.asSeconds=Us,di.asMinutes=Ws,di.asHours=Vs,di.asDays=Bs,di.asWeeks=$s,di.asMonths=Ks,di.asQuarters=qs,di.asYears=Gs,di.valueOf=Js,di._bubble=function(){var e,t,s,i,n,a=this._milliseconds,r=this._days,o=this._months,l=this._data;return a>=0&&r>=0&&o>=0||a<=0&&r<=0&&o<=0||(a+=864e5*Rs(Is(o)+r),r=0,o=0),l.milliseconds=a%1e3,e=pe(a/1e3),l.seconds=e%60,t=pe(e/60),l.minutes=t%60,s=pe(t/60),l.hours=s%24,r+=pe(s/24),o+=n=pe(js(r)),r-=Rs(Is(n)),i=pe(o/12),o%=12,l.days=r,l.months=o,l.years=i,this},di.clone=function(){return Xt(this)},di.get=function(e){return e=z(e),this.isValid()?this[e+"s"]():NaN},di.milliseconds=Xs,di.seconds=Qs,di.minutes=ei,di.hours=ti,di.days=si,di.weeks=function(){return pe(this.days()/7)},di.months=ii,di.years=ni,di.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var s,i,n=!1,a=ri;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(n=e),"object"==typeof t&&(a=Object.assign({},ri,t),null!=t.s&&null==t.ss&&(a.ss=t.s-1)),i=function(e,t,s,i){var n=Xt(e).abs(),a=ai(n.as("s")),r=ai(n.as("m")),o=ai(n.as("h")),l=ai(n.as("d")),c=ai(n.as("M")),u=ai(n.as("w")),d=ai(n.as("y")),p=a<=s.ss&&["s",a]||a0,p[4]=i,oi.apply(null,p)}(this,!n,a,s=this.localeData()),n&&(i=s.pastFuture(+this,i)),s.postformat(i)},di.toISOString=ui,di.toString=ui,di.toJSON=ui,di.locale=ls,di.localeData=us,di.toIsoString=L("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ui),di.lang=cs,N("X",0,0,"unix"),N("x",0,0,"valueOf"),ce("x",ie),ce("X",/[+-]?\d+(\.\d{1,3})?/),fe("X",function(e,t,s){s._d=new Date(1e3*parseFloat(e))}),fe("x",function(e,t,s){s._d=new Date(me(e))}),n.version="2.30.1",t=Nt,n.fn=Es,n.min=function(){return It("isBefore",[].slice.call(arguments,0))},n.max=function(){return It("isAfter",[].slice.call(arguments,0))},n.now=function(){return Date.now?Date.now():+new Date},n.utc=h,n.unix=function(e){return Nt(1e3*e)},n.months=function(e,t){return As(e,t,"months")},n.isDate=d,n.locale=_t,n.invalid=g,n.duration=Xt,n.isMoment=b,n.weekdays=function(e,t,s){return Os(e,t,s,"weekdays")},n.parseZone=function(){return Nt.apply(null,arguments).parseZone()},n.localeData=yt,n.isDuration=Ut,n.monthsShort=function(e,t){return As(e,t,"monthsShort")},n.weekdaysMin=function(e,t,s){return Os(e,t,s,"weekdaysMin")},n.defineLocale=gt,n.updateLocale=function(e,t){if(null!=t){var s,i,n=ut;null!=dt[e]&&null!=dt[e].parentLocale?dt[e].set(E(dt[e]._config,t)):(null!=(i=ft(e))&&(n=i._config),t=E(n,t),null==i&&(t.abbr=e),(s=new Y(t)).parentLocale=dt[e],dt[e]=s),_t(e)}else null!=dt[e]&&(null!=dt[e].parentLocale?(dt[e]=dt[e].parentLocale,e===_t()&&_t(e)):null!=dt[e]&&delete dt[e]);return dt[e]},n.locales=function(){return M(dt)},n.weekdaysShort=function(e,t,s){return Os(e,t,s,"weekdaysShort")},n.normalizeUnits=z,n.relativeTimeRounding=function(e){return void 0===e?ai:"function"==typeof e&&(ai=e,!0)},n.relativeTimeThreshold=function(e,t){return void 0!==ri[e]&&(void 0===t?ri[e]:(ri[e]=t,"s"===e&&(ri.ss=t-1),!0))},n.calendarFormat=function(e,t){var s=e.diff(t,"days",!0);return s<-6?"sameElse":s<-1?"lastWeek":s<0?"lastDay":s<1?"sameDay":s<2?"nextDay":s<7?"nextWeek":"sameElse"},n.prototype=Es,n.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},n}()},6585(e){var t=1e3,s=60*t,i=60*s,n=24*i,a=7*n;function r(e,t,s,i){var n=t>=1.5*s;return Math.round(e/s)+" "+i+(n?"s":"")}e.exports=function(e,o){o=o||{};var l,c,u=typeof e;if("string"===u&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var r=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(r){var o=parseFloat(r[1]);switch((r[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"weeks":case"week":case"w":return o*a;case"days":case"day":case"d":return o*n;case"hours":case"hour":case"hrs":case"hr":case"h":return o*i;case"minutes":case"minute":case"mins":case"min":case"m":return o*s;case"seconds":case"second":case"secs":case"sec":case"s":return o*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}}}(e);if("number"===u&&isFinite(e))return o.long?(l=e,(c=Math.abs(l))>=n?r(l,c,n,"day"):c>=i?r(l,c,i,"hour"):c>=s?r(l,c,s,"minute"):c>=t?r(l,c,t,"second"):l+" ms"):function(e){var a=Math.abs(e);return a>=n?Math.round(e/n)+"d":a>=i?Math.round(e/i)+"h":a>=s?Math.round(e/s)+"m":a>=t?Math.round(e/t)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},6416(e,t,s){"use strict";const i=s(9896);e.exports=class{constructor(e,t){(t=t||{}).readChunk||(t.readChunk=1024),this.fd="number"==typeof e?e:i.openSync(e,"r"),this.options=t,this.isStdin=0===this.fd,this.reset()}_searchInBuffer(e){for(let t=0;t0&&10===e[0]&&(i=1),this.lastChunkEndedWithCR=!1,this.lineIsComplete=!1;for(let n=i;n=e.length?(t||(this.lastChunkEndedWithCR=!0),s.push(e.slice(i,a)),i=n+1):10===e[n+1]?(s.push(e.slice(i,a)),n++,i=n+1):(s.push(e.slice(i,a)),i=n+1)}}return i0?this.linesCache[0]=Buffer.concat([e,this.linesCache[0]]):this.linesCache.push(e))),s}next(){if(null===this.fd)return null;let e,t=null;return this.eofReached&&0===this.linesCache.length||(this.linesCache.length||(e=this._readChunk()),this.linesCache.length&&(t=this.linesCache.shift(),this.eofReached||this.lineIsComplete||0!==this.linesCache.length||(e=this._readChunk(t),e&&this.linesCache.length&&(t=this.linesCache.shift()))),this.eofReached&&0===this.linesCache.length&&this.close()),t}isLast(){return null===this.fd||this.eofReached&&0===this.linesCache.length}}},633(e,t,s){const i=s(9896),n=s(8611).IncomingMessage,a=s(2982);s(2203);var r=s(2288);const{Transform:o}=s(2203),l=s(9023),c=s(305),u=l.promisify(i.mkdir),d=l.promisify(i.writeFile),{deduceFileName:p,exists:m,getTempFilePath:h}=s(7034),{isJson:f}=s(9238),{isDataUrl:_}=s(8702),g=l.promisify(i.unlink),y=l.promisify(i.rename),{bufferToReadableStream:v,createWriteStream:x,createBufferFromResponseStream:w,pipeStreams:b,getStringFromStream:T}=s(4371),L=s(6928),M="ABORTED";e.exports=class{constructor(e){this.config={directory:"./",fileName:void 0,timeout:6e3,useSynchronousMode:!1,httpsAgent:void 0,proxy:void 0,headers:void 0,cloneFiles:!0,skipExistingFileName:!1,shouldBufferResponse:!1,onResponse:void 0,onBeforeSave:void 0,onProgress:void 0,method:"GET",...e},this.isCancelled=!1,this.cancelCb=null,this.percentage=0,this.fileSize=null,this.currentDataSize=0,this.originalResponse=null}async start(){if(await this._verifyDirectoryExists(this.config.directory),await this._shouldSkipRequest())return{downloadStatus:M,filePath:null};try{const{dataStream:e,originalResponse:t}=await this._request();if(this.originalResponse=t,await this._handlePossibleStatusCodeError({dataStream:e,originalResponse:t}),this.config.onResponse&&!1===await this.config.onResponse(t))return{downloadStatus:M,filePath:null};let{finalFileName:s,originalFileName:i}=await this._getFileName(t.headers);const n=await this._save({dataStream:e,finalFileName:s,originalFileName:i});return{filePath:n,downloadStatus:n?"COMPLETE":M}}catch(e){if(this.isCancelled){const e=new Error("Request cancelled");throw e.code="ERR_REQUEST_CANCELLED",e}throw e}}async _shouldSkipRequest(){return!!(this.config.fileName&&this.config.skipExistingFileName&&await m(L.join(this.config.directory,this.config.fileName)))}async _handlePossibleStatusCodeError({dataStream:e,originalResponse:t}){if(t.statusCode>226)throw await this._createErrorObject(e,t)}async _createErrorObject(e,t){const s=await T(e),i=new Error(`Request failed with status code ${t.statusCode}`);return i.statusCode=t.statusCode,i.response=t,i.responseBody=f(s)?JSON.parse(s):s,i}async _verifyDirectoryExists(e){await u(e,{recursive:!0})}async _request(){if(_(this.config.url))return this._mimic_RequestForDataUrl(this.config.url);{const{dataStream:e,originalResponse:t}=await this._makeRequest(),s=t.headers,i=s["content-length"]||s["Content-Length"];return this.fileSize=parseInt(i),{dataStream:e,originalResponse:t}}}_mimic_RequestForDataUrl(e){const t=e.match(/data:([^;]+);/)[1],s=e.replace(/^data:[^;]+;base64,/,""),i=Buffer.from(s,"base64"),a=v(i),r=new n(null);return r.headers={"content-type":t,"content-length":i.byteLength},r.statusCode=200,this.fileSize=i.byteLength,{dataStream:a,originalResponse:r}}async _shouldSkipSaving(e){return!(!this.config.skipExistingFileName||!await m(L.join(this.config.directory,e)))}_getTempAndFinalPath(e){const t=`${this.config.directory}/${e}`;return{finalPath:t,tempPath:h(t)}}async _saveAccordingToConfig({dataStream:e,tempPath:t}){if(this.config.shouldBufferResponse){const s=await w(e);await this._saveFromBuffer(s,t)}else await this._saveFromReadableStream(e,t)}async _handleOnBeforeSave(e){if(this.config.onBeforeSave){const t=await this.config.onBeforeSave(e);t&&"string"==typeof t&&(e=t)}return e}async _save({dataStream:e,finalFileName:t,originalFileName:s}){try{if(await this._shouldSkipSaving(s))return null;t=await this._handleOnBeforeSave(t);var{finalPath:i,tempPath:n}=this._getTempAndFinalPath(t);return await this._saveAccordingToConfig({dataStream:e,tempPath:n}),await this._renameTempFileToFinalName(n,i),i}catch(e){throw this.config.shouldBufferResponse||await this._removeFailedFile(n),e}}async _makeRequest(){const{timeout:e,headers:t,proxy:s,url:i,httpsAgent:n,method:o}=this.config,l={timeout:e,headers:t,method:o};n?l.agent=n:s&&(l.agent=new r(s));const{makeRequestIter:c,cancel:u}=a(i,l);this.cancelCb=u;const{dataStream:d,originalResponse:p}=await c();return{dataStream:d,originalResponse:p}}_getProgressStream(){const e=this;return new o({transform(t,s,i){e.currentDataSize+=t.byteLength,e.fileSize?e.percentage=(e.currentDataSize/e.fileSize*100).toFixed(2):e.percentage=NaN;const n=(100-e.percentage)/100,a=Math.round(n*e.fileSize);e.config.onProgress&&e.config.onProgress(e.percentage,t,a),i(null,t)}})}async _saveFromReadableStream(e,t){const s=[e],i=x(t);if(this.config.onProgress){const e=this._getProgressStream();s.push(e)}s.push(i),await b(s)}async _saveFromBuffer(e,t){await d(t,e)}async _removeFailedFile(e){await g(e)}async _renameTempFileToFinalName(e,t){await y(e,t)}async _getFileName(e){let t,s;if(t=this.config.fileName?this.config.fileName:p(this.config.url,e),!0===this.config.cloneFiles){var i=new c({useSynchronousMode:this.config.useSynchronousMode,fileName:t,path:this.config.directory});s=await i.getAvailableFileName()}else s=t;return{finalFileName:s,originalFileName:t}}cancel(){this.cancelCb&&(this.isCancelled=!0,this.cancelCb())}}},6266(e,t,s){const i=s(8909),{capitalize:n}=s(9238),a=s(633),r={url:{type:"string",mandatory:!0},directory:{type:"string",mandatory:!1},fileName:{type:"string",mandatory:!1},cloneFiles:{type:"boolean",mandatory:!1},proxy:{type:"string",mandatory:!1}};class o{constructor(e){if(!e||"object"!=typeof e)throw new Error("Must provide a valid config object");(e=>{const t=e=>{throw new Error(`config.${e} must be of type ${r[e].type}`)};for(let s in r){if(r[s].mandatory){if(!e[s])throw new Error(`Must supply a config.${s}`);-1===[].concat(r[s].type).indexOf(typeof e[s])&&t(s)}e.hasOwnProperty(s)&&-1===[].concat(r[s].type).indexOf(typeof e[s])&&t(s)}})(e);this.config={directory:"./",fileName:void 0,timeout:6e3,maxAttempts:1,useSynchronousMode:!1,httpsAgent:void 0,proxy:void 0,headers:void 0,cloneFiles:!0,skipExistingFileName:!1,shouldBufferResponse:!1,onResponse:void 0,onBeforeSave:void 0,onError:void 0,onProgress:void 0,method:"GET",...e},this.config.filename&&(this.config.fileName=this.config.filename),this._currentDownload=null}on(e,t){this.config[`on${n(e)}`]=t}async download(){const{url:e,method:t,directory:s,fileName:i,cloneFiles:n,skipExistingFileName:r,timeout:o,headers:l,httpsAgent:c,proxy:u,onResponse:d,onBeforeSave:p,onProgress:m,shouldBufferResponse:h,useSynchronousMode:f}=this.config,{filePath:_,downloadStatus:g}=await this._makeUntilSuccessful(async()=>{const _=new a({url:e,method:t,directory:s,fileName:i,cloneFiles:n,skipExistingFileName:r,timeout:o,headers:l,httpsAgent:c,proxy:u,onResponse:d,onBeforeSave:p,onProgress:m,shouldBufferResponse:h,useSynchronousMode:f});return this._currentDownload=_,await _.start()});return{filePath:_,downloadStatus:g}}async _makeUntilSuccessful(e){let t;const s=e.bind(this);return await i(async()=>{t=await s()},{onError:async e=>{this.config.onError&&await this.config.onError(e)},shouldStop:async e=>"ERR_REQUEST_CANCELLED"===e.code||!(!this.config.shouldStop||!0!==await this.config.shouldStop(e))||void 0,maxAttempts:this.config.maxAttempts}),t}cancel(){this._currentDownload.cancel()}}e.exports=o,e.exports.Downloader=o},2982(e,t,s){const{http:i,https:n}=s(783),{Readable:a}=s(2203);e.exports=function(e,t={}){let s,r,o;const l=new Promise((s,a)=>{r=a;const l=e.trim().startsWith("https")?n:i;o=l.request(e,t,e=>{s(e)}),o.end(),o.on("error",e=>{r(e)})}),c=new Promise((e,s)=>{t.timeout&&o.setTimeout(t.timeout,()=>{const e=new Error("Request timed out");e.code="ERR_REQUEST_TIMEDOUT",s(e)})}),u=new Promise((e,t)=>{s=t});return{makeRequestIter:async function(){const e=await Promise.race([l,u,c]),t=e[Symbol.asyncIterator](),s=async function*(){try{for(;;){const e=await Promise.race([t.next(),u,c]);if(e.done)break;yield e.value}}catch(e){throw function(e){const t=process.versions.node.split(".")[0];!t||t<14?e.abort():e.destroy()}(o._currentRequest),e}}();return{dataStream:a.from(s),originalResponse:e}},cancel(){const e=new Error("Request cancelled");e.code="ERR_REQUEST_CANCELLED",s(e)}}}},305(e,t,s){const i=s(6928),n=s(9896);e.exports=class{constructor(e){this.originalFileName=e.fileName,this.fileExtension=i.extname(this.originalFileName),this.fileNameWithoutExtension=e.fileName.split(".").slice(0,-1).join("."),this.basePath="/"===e.path[e.path.length-1]?e.path:e.path+"/",this.useSynchronousMode=e.useSynchronousMode||!1}getAvailableFileName(){return this.useSynchronousMode?this.createNewFileNameSync(this.originalFileName):new Promise(async e=>{try{e(await this.createNewFileName(this.originalFileName))}catch(e){reject(e)}})}pathExistsSync(e){return n.existsSync(e)}pathExists(e){return this.useSynchronousMode?this.pathExistsSync(e):new Promise((t,s)=>{n.access(e,e=>{t(!e)})})}createNewFileNameSync(e,t=1){if(!this.pathExistsSync(this.basePath+e))return e;t+=1;let s=this.fileNameWithoutExtension+"_"+t+this.fileExtension;return this.createNewFileNameSync(s,t)}async createNewFileName(e,t=1){if(!await this.pathExists(this.basePath+e))return e;t+=1;let s=this.fileNameWithoutExtension+"_"+t+this.fileExtension;return await this.createNewFileName(s,t)}}},560(e){e.exports={createDelay:function(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}}},7034(e,t,s){const i=s(2424),n=s(6928);var a=s(6049);const{promises:r}=s(9896);function o(e){return e.split(/[?#]/)[0]}s(6982),e.exports={deduceFileName:function(e,t){const s=function(e){if(!e||!e.includes("filename="))return"";let t="";var s=/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(e);return null!=s&&s[1]&&(t=s[1].replace(/['"]/g,"")),t?i(t):""}(t["content-disposition"]||t["Content-Disposition"]);if(s)return s;if(n.extname(e)){const t=function(e){const t=o(e);return i(n.basename(t))}(e);if(t)return t}const r=function(e,t){let s=a.extension(e);t=o(t);const r=function(e){const t=e.split(".");return 1==t.length?e:t.slice(0,-1).join(".")}(n.basename(t));return`${i(r)}.${s}`}(t["content-type"]||t["Content-Type"],e);return r||i(e)},exists:async function(e){try{return await r.access(e),!0}catch{return!1}},getTempFilePath:function(e){return`${e}.download`}}},8909(e,t,s){const{createDelay:i}=s(560);e.exports=async function e(t,s={}){const n=arguments[2]||0,a=s.shouldStop||(()=>!1),r=s.delay||null,o=s.maxAttempts||3,l=s.timeout||0;try{var c=n+1;s.onAttempt&&await s.onAttempt(n+1);const e=t(),i=await function(e,t){return new Promise(async(s,i)=>{if(t)var n=setTimeout(()=>{i(new Error("Promise timed out as defined in the config"))},t);try{s(await e)}catch(e){i(e)}finally{clearTimeout(n)}})}(e,l);return i}catch(n){if(s.onError&&await s.onError(n,c),await a(n)||c==o)throw n;return r&&await i(r),await e(t,s,c)}}},4371(e,t,s){const i=s(9896),n=s(2203),a=s(9023).promisify(n.pipeline);async function r(e){const t=[];for await(let s of e)t.push(s);return Buffer.concat(t)}e.exports={bufferToReadableStream:function(e){return new n.Stream.Readable({read(){this.push(e),this.push(null)}})},createWriteStream:function(e){return i.createWriteStream(e)},createBufferFromResponseStream:r,pipeStreams:async function(e){await a(...e)},getStringFromStream:async function(e){return(await r(e)).toString()}}},9238(e){e.exports={capitalize:e=>"string"!=typeof e?"":e.charAt(0).toUpperCase()+e.slice(1),isJson:e=>{try{return JSON.parse(e),!0}catch(e){return!1}}}},8702(e){e.exports={isDataUrl:function(e){return!(!e||!e.startsWith("data:image"))},getDataUrlExtension:function(e){return e.split("/")[1].split(";")[0]}}},3519(e,t,s){var i=s(6587);function n(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function a(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},s=e.name||"Function wrapped with `once`";return t.onceError=s+" shouldn't be called more than once",t.called=!1,t}e.exports=i(n),e.exports.strict=i(a),n.proto=n(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return n(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return a(this)},configurable:!0})})},1436(e){function t(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}function s(e){e.pending+=1;var t=!1;return function(n){if(t)throw new Error("callback called twice");if(t=!0,e.error=e.error||n,e.pending-=1,e.waiting.length>0&&e.pending?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:i.sep,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?m:p}},1154(e,t,s){"use strict";const i=s(3940),n=s(280),{MAX_LENGTH:a,POSIX_REGEX_SOURCE:r,REGEX_NON_SPECIAL_CHARS:o,REGEX_SPECIAL_CHARS_BACKREF:l,REPLACEMENTS:c}=i,u=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();const s=`[${e.join("-")}]`;try{new RegExp(s)}catch(t){return e.map(e=>n.escapeRegex(e)).join("..")}return s},d=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,p=e=>{const t=[];let s=0,i=0,n=0,a="",r=!1;for(const o of e)if(!0!==r)if("\\"!==o)if('"'!==o){if(0===n)if("["===o)s++;else if("]"===o&&s>0)s--;else if(0===s)if("("===o)i++;else if(")"===o&&i>0)i--;else if("|"===o&&0===i){t.push(a),a="";continue}a+=o}else n=1===n?0:1,a+=o;else a+=o,r=!0;else a+=o,r=!1;return t.push(a),t},m=e=>{let t=e.trim(),s=!0;for(;!0===s;)s=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),s=!0);if((e=>{let t=!1;for(const s of e)if(!0!==t)if("\\"!==s){if(/[?*+@!()[\]{}]/.test(s))return!1}else t=!0;else t=!1;return!0})(t))return t.replace(/\\(.)/g,"$1")},h=(e,t=!0)=>{if("+"!==e[0]&&"*"!==e[0]||"("!==e[1])return;let s=0,i=0,n=0,a=!1;for(let r=1;r0)s--;else if(!(s>0))if("("!==o){if(")"===o&&(i--,0===i)){if(!0===t&&r!==e.length-1)return;return{type:e[0],body:e.slice(2,r),end:r}}}else i++}else s++}else n=1===n?0:1;else a=!0;else a=!1}},f=e=>{let t=0;const s=[];for(;te.trim());if(1!==n.length)return;const a=m(n[0]);if(!a||1!==a.length)return;s.push(a),t+=i.end+1}if(!(s.length<1))return`${1===s.length?n.escapeRegex(s[0]):`[${s.map(e=>n.escapeRegex(e)).join("")}]`}*`},_=e=>{let t=0,s=e.trim(),i=h(s);for(;i;)t++,s=i.body.trim(),i=h(s);return t},g=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=c[e]||e;const s={...t},h="number"==typeof s.maxLength?Math.min(a,s.maxLength):a;let y=e.length;if(y>h)throw new SyntaxError(`Input length: ${y}, exceeds maximum allowed length: ${h}`);const v={type:"bos",value:"",output:s.prepend||""},x=[v],w=s.capture?"":"?:",b=n.isWindows(t),T=i.globChars(b),L=i.extglobChars(T),{DOT_LITERAL:M,PLUS_LITERAL:k,SLASH_LITERAL:D,ONE_CHAR:S,DOTS_SLASH:E,NO_DOT:Y,NO_DOT_SLASH:P,NO_DOTS_SLASH:F,QMARK:A,QMARK_NO_DOT:O,STAR:C,START_ANCHOR:N}=T,R=e=>`(${w}(?:(?!${N}${e.dot?E:M}).)*?)`,j=s.dot?"":Y,I=s.dot?A:O;let H=!0===s.bash?R(s):C;s.capture&&(H=`(${H})`),"boolean"==typeof s.noext&&(s.noextglob=s.noext);const z={input:e,index:-1,start:0,dot:!0===s.dot,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:x};e=n.removePrefix(e,z),y=e.length;const U=[],W=[],V=[];let B,$=v;const K=()=>z.index===y-1,q=z.peek=(t=1)=>e[z.index+t],G=z.advance=()=>e[++z.index]||"",J=()=>e.slice(z.index+1),Z=(e="",t=0)=>{z.consumed+=e,z.index+=t},X=e=>{z.output+=null!=e.output?e.output:e.value,Z(e.value)},Q=()=>{let e=1;for(;"!"===q()&&("("!==q(2)||"?"===q(3));)G(),z.start++,e++;return e%2!=0&&(z.negated=!0,z.start++,!0)},ee=e=>{z[e]++,V.push(e)},te=e=>{z[e]--,V.pop()},se=e=>{if("globstar"===$.type){const t=z.braces>0&&("comma"===e.type||"brace"===e.type),s=!0===e.extglob||U.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||s||(z.output=z.output.slice(0,-$.output.length),$.type="star",$.value="*",$.output=H,z.output+=$.output)}if(U.length&&"paren"!==e.type&&(U[U.length-1].inner+=e.value),(e.value||e.output)&&X(e),$&&"text"===$.type&&"text"===e.type)return $.value+=e.value,void($.output=($.output||"")+e.value);e.prev=$,x.push(e),$=e},ie=(e,t)=>{const i={...L[t],conditions:1,inner:""};i.prev=$,i.parens=z.parens,i.output=z.output,i.startIndex=z.index,i.tokensIndex=x.length;const n=(s.capture?"(":"")+i.open;ee("parens"),se({type:e,value:t,output:z.output?"":S}),se({type:"paren",extglob:!0,value:G(),output:n}),U.push(i)},ne=a=>{const r=e.slice(a.startIndex,z.index+1),o=((e,t)=>{if(!1===t.maxExtglobRecursion)return{risky:!1};const s="number"==typeof t.maxExtglobRecursion?t.maxExtglobRecursion:i.DEFAULT_MAX_EXTGLOB_RECURSION,n=p(e).map(e=>e.trim());if(n.length>1&&(n.some(e=>""===e)||n.some(e=>/^[*?]+$/.test(e))||(e=>{const t=e.map(m).filter(Boolean);for(let e=0;es)return{risky:!0}}return{risky:!1}})(e.slice(a.startIndex+2,z.index),s);if(("plus"===a.type||"star"===a.type)&&o.risky){const e=o.safeOutput?(a.output?"":S)+(s.capture?`(${o.safeOutput})`:o.safeOutput):void 0,t=x[a.tokensIndex];t.type="text",t.value=r,t.output=e||n.escapeRegex(r);for(let e=a.tokensIndex+1;e1&&a.inner.includes("/")&&(e=R(s)),(e!==H||K()||/^\)+$/.test(J()))&&(c=a.close=`)$))${e}`),a.inner.includes("*")&&(l=J())&&/^\.[^\\/.]+$/.test(l)){const s=g(l,{...t,fastpaths:!1}).output;c=a.close=`)${s})${e})`}"bos"===a.prev.type&&(z.negatedExtglob=!0)}se({type:"paren",extglob:!0,value:B,output:c}),te("parens")};if(!1!==s.fastpaths&&!/(^[*!]|[/()[\]{}"])/.test(e)){let i=!1,a=e.replace(l,(e,t,s,n,a,r)=>"\\"===n?(i=!0,e):"?"===n?t?t+n+(a?A.repeat(a.length):""):0===r?I+(a?A.repeat(a.length):""):A.repeat(s.length):"."===n?M.repeat(s.length):"*"===n?t?t+n+(a?H:""):H:t?e:`\\${e}`);return!0===i&&(a=!0===s.unescape?a.replace(/\\/g,""):a.replace(/\\+/g,e=>e.length%2==0?"\\\\":e?"\\":"")),a===e&&!0===s.contains?(z.output=e,z):(z.output=n.wrapOutput(a,z,t),z)}for(;!K();){if(B=G(),"\0"===B)continue;if("\\"===B){const e=q();if("/"===e&&!0!==s.bash)continue;if("."===e||";"===e)continue;if(!e){B+="\\",se({type:"text",value:B});continue}const t=/^\\+/.exec(J());let i=0;if(t&&t[0].length>2&&(i=t[0].length,z.index+=i,i%2!=0&&(B+="\\")),!0===s.unescape?B=G():B+=G(),0===z.brackets){se({type:"text",value:B});continue}}if(z.brackets>0&&("]"!==B||"["===$.value||"[^"===$.value)){if(!1!==s.posix&&":"===B){const e=$.value.slice(1);if(e.includes("[")&&($.posix=!0,e.includes(":"))){const e=$.value.lastIndexOf("["),t=$.value.slice(0,e),s=$.value.slice(e+2),i=r[s];if(i){$.value=t+i,z.backtrack=!0,G(),v.output||1!==x.indexOf($)||(v.output=S);continue}}}("["===B&&":"!==q()||"-"===B&&"]"===q())&&(B=`\\${B}`),"]"!==B||"["!==$.value&&"[^"!==$.value||(B=`\\${B}`),!0===s.posix&&"!"===B&&"["===$.value&&(B="^"),$.value+=B,X({value:B});continue}if(1===z.quotes&&'"'!==B){B=n.escapeRegex(B),$.value+=B,X({value:B});continue}if('"'===B){z.quotes=1===z.quotes?0:1,!0===s.keepQuotes&&se({type:"text",value:B});continue}if("("===B){ee("parens"),se({type:"paren",value:B});continue}if(")"===B){if(0===z.parens&&!0===s.strictBrackets)throw new SyntaxError(d("opening","("));const e=U[U.length-1];if(e&&z.parens===e.parens+1){ne(U.pop());continue}se({type:"paren",value:B,output:z.parens?")":"\\)"}),te("parens");continue}if("["===B){if(!0!==s.nobracket&&J().includes("]"))ee("brackets");else{if(!0!==s.nobracket&&!0===s.strictBrackets)throw new SyntaxError(d("closing","]"));B=`\\${B}`}se({type:"bracket",value:B});continue}if("]"===B){if(!0===s.nobracket||$&&"bracket"===$.type&&1===$.value.length){se({type:"text",value:B,output:`\\${B}`});continue}if(0===z.brackets){if(!0===s.strictBrackets)throw new SyntaxError(d("opening","["));se({type:"text",value:B,output:`\\${B}`});continue}te("brackets");const e=$.value.slice(1);if(!0===$.posix||"^"!==e[0]||e.includes("/")||(B=`/${B}`),$.value+=B,X({value:B}),!1===s.literalBrackets||n.hasRegexChars(e))continue;const t=n.escapeRegex($.value);if(z.output=z.output.slice(0,-$.value.length),!0===s.literalBrackets){z.output+=t,$.value=t;continue}$.value=`(${w}${t}|${$.value})`,z.output+=$.value;continue}if("{"===B&&!0!==s.nobrace){ee("braces");const e={type:"brace",value:B,output:"(",outputIndex:z.output.length,tokensIndex:z.tokens.length};W.push(e),se(e);continue}if("}"===B){const e=W[W.length-1];if(!0===s.nobrace||!e){se({type:"text",value:B,output:B});continue}let t=")";if(!0===e.dots){const e=x.slice(),i=[];for(let t=e.length-1;t>=0&&(x.pop(),"brace"!==e[t].type);t--)"dots"!==e[t].type&&i.unshift(e[t].value);t=u(i,s),z.backtrack=!0}if(!0!==e.comma&&!0!==e.dots){const s=z.output.slice(0,e.outputIndex),i=z.tokens.slice(e.tokensIndex);e.value=e.output="\\{",B=t="\\}",z.output=s;for(const e of i)z.output+=e.output||e.value}se({type:"brace",value:B,output:t}),te("braces"),W.pop();continue}if("|"===B){U.length>0&&U[U.length-1].conditions++,se({type:"text",value:B});continue}if(","===B){let e=B;const t=W[W.length-1];t&&"braces"===V[V.length-1]&&(t.comma=!0,e="|"),se({type:"comma",value:B,output:e});continue}if("/"===B){if("dot"===$.type&&z.index===z.start+1){z.start=z.index+1,z.consumed="",z.output="",x.pop(),$=v;continue}se({type:"slash",value:B,output:D});continue}if("."===B){if(z.braces>0&&"dot"===$.type){"."===$.value&&($.output=M);const e=W[W.length-1];$.type="dots",$.output+=B,$.value+=B,e.dots=!0;continue}if(z.braces+z.parens===0&&"bos"!==$.type&&"slash"!==$.type){se({type:"text",value:B,output:M});continue}se({type:"dot",value:B,output:M});continue}if("?"===B){if((!$||"("!==$.value)&&!0!==s.noextglob&&"("===q()&&"?"!==q(2)){ie("qmark",B);continue}if($&&"paren"===$.type){const e=q();let t=B;if("<"===e&&!n.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===$.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(J()))&&(t=`\\${B}`),se({type:"text",value:B,output:t});continue}if(!0!==s.dot&&("slash"===$.type||"bos"===$.type)){se({type:"qmark",value:B,output:O});continue}se({type:"qmark",value:B,output:A});continue}if("!"===B){if(!0!==s.noextglob&&"("===q()&&("?"!==q(2)||!/[!=<:]/.test(q(3)))){ie("negate",B);continue}if(!0!==s.nonegate&&0===z.index){Q();continue}}if("+"===B){if(!0!==s.noextglob&&"("===q()&&"?"!==q(2)){ie("plus",B);continue}if($&&"("===$.value||!1===s.regex){se({type:"plus",value:B,output:k});continue}if($&&("bracket"===$.type||"paren"===$.type||"brace"===$.type)||z.parens>0){se({type:"plus",value:B});continue}se({type:"plus",value:k});continue}if("@"===B){if(!0!==s.noextglob&&"("===q()&&"?"!==q(2)){se({type:"at",extglob:!0,value:B,output:""});continue}se({type:"text",value:B});continue}if("*"!==B){"$"!==B&&"^"!==B||(B=`\\${B}`);const e=o.exec(J());e&&(B+=e[0],z.index+=e[0].length),se({type:"text",value:B});continue}if($&&("globstar"===$.type||!0===$.star)){$.type="star",$.star=!0,$.value+=B,$.output=H,z.backtrack=!0,z.globstar=!0,Z(B);continue}let t=J();if(!0!==s.noextglob&&/^\([^?]/.test(t)){ie("star",B);continue}if("star"===$.type){if(!0===s.noglobstar){Z(B);continue}const i=$.prev,n=i.prev,a="slash"===i.type||"bos"===i.type,r=n&&("star"===n.type||"globstar"===n.type);if(!0===s.bash&&(!a||t[0]&&"/"!==t[0])){se({type:"star",value:B,output:""});continue}const o=z.braces>0&&("comma"===i.type||"brace"===i.type),l=U.length&&("pipe"===i.type||"paren"===i.type);if(!a&&"paren"!==i.type&&!o&&!l){se({type:"star",value:B,output:""});continue}for(;"/**"===t.slice(0,3);){const s=e[z.index+4];if(s&&"/"!==s)break;t=t.slice(3),Z("/**",3)}if("bos"===i.type&&K()){$.type="globstar",$.value+=B,$.output=R(s),z.output=$.output,z.globstar=!0,Z(B);continue}if("slash"===i.type&&"bos"!==i.prev.type&&!r&&K()){z.output=z.output.slice(0,-(i.output+$.output).length),i.output=`(?:${i.output}`,$.type="globstar",$.output=R(s)+(s.strictSlashes?")":"|$)"),$.value+=B,z.globstar=!0,z.output+=i.output+$.output,Z(B);continue}if("slash"===i.type&&"bos"!==i.prev.type&&"/"===t[0]){const e=void 0!==t[1]?"|$":"";z.output=z.output.slice(0,-(i.output+$.output).length),i.output=`(?:${i.output}`,$.type="globstar",$.output=`${R(s)}${D}|${D}${e})`,$.value+=B,z.output+=i.output+$.output,z.globstar=!0,Z(B+G()),se({type:"slash",value:"/",output:""});continue}if("bos"===i.type&&"/"===t[0]){$.type="globstar",$.value+=B,$.output=`(?:^|${D}|${R(s)}${D})`,z.output=$.output,z.globstar=!0,Z(B+G()),se({type:"slash",value:"/",output:""});continue}z.output=z.output.slice(0,-$.output.length),$.type="globstar",$.output=R(s),$.value+=B,z.output+=$.output,z.globstar=!0,Z(B);continue}const i={type:"star",value:B,output:H};!0!==s.bash?!$||"bracket"!==$.type&&"paren"!==$.type||!0!==s.regex?(z.index!==z.start&&"slash"!==$.type&&"dot"!==$.type||("dot"===$.type?(z.output+=P,$.output+=P):!0===s.dot?(z.output+=F,$.output+=F):(z.output+=j,$.output+=j),"*"!==q()&&(z.output+=S,$.output+=S)),se(i)):(i.output=B,se(i)):(i.output=".*?","bos"!==$.type&&"slash"!==$.type||(i.output=j+i.output),se(i))}for(;z.brackets>0;){if(!0===s.strictBrackets)throw new SyntaxError(d("closing","]"));z.output=n.escapeLast(z.output,"["),te("brackets")}for(;z.parens>0;){if(!0===s.strictBrackets)throw new SyntaxError(d("closing",")"));z.output=n.escapeLast(z.output,"("),te("parens")}for(;z.braces>0;){if(!0===s.strictBrackets)throw new SyntaxError(d("closing","}"));z.output=n.escapeLast(z.output,"{"),te("braces")}if(!0===s.strictSlashes||"star"!==$.type&&"bracket"!==$.type||se({type:"maybe_slash",value:"",output:`${D}?`}),!0===z.backtrack){z.output="";for(const e of z.tokens)z.output+=null!=e.output?e.output:e.value,e.suffix&&(z.output+=e.suffix)}return z};g.fastpaths=(e,t)=>{const s={...t},r="number"==typeof s.maxLength?Math.min(a,s.maxLength):a,o=e.length;if(o>r)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${r}`);e=c[e]||e;const l=n.isWindows(t),{DOT_LITERAL:u,SLASH_LITERAL:d,ONE_CHAR:p,DOTS_SLASH:m,NO_DOT:h,NO_DOTS:f,NO_DOTS_SLASH:_,STAR:g,START_ANCHOR:y}=i.globChars(l),v=s.dot?f:h,x=s.dot?_:h,w=s.capture?"":"?:";let b=!0===s.bash?".*?":g;s.capture&&(b=`(${b})`);const T=e=>!0===e.noglobstar?b:`(${w}(?:(?!${y}${e.dot?m:u}).)*?)`,L=e=>{switch(e){case"*":return`${v}${p}${b}`;case".*":return`${u}${p}${b}`;case"*.*":return`${v}${b}${u}${p}${b}`;case"*/*":return`${v}${b}${d}${p}${x}${b}`;case"**":return v+T(s);case"**/*":return`(?:${v}${T(s)}${d})?${x}${p}${b}`;case"**/*.*":return`(?:${v}${T(s)}${d})?${x}${b}${u}${p}${b}`;case"**/.*":return`(?:${v}${T(s)}${d})?${u}${p}${b}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const s=L(t[1]);if(!s)return;return s+u+t[2]}}},M=n.removePrefix(e,{negated:!1,prefix:""});let k=L(M);return k&&!0!==s.strictSlashes&&(k+=`${d}?`),k},e.exports=g},6675(e,t,s){"use strict";const i=s(6928),n=s(2608),a=s(1154),r=s(280),o=s(3940),l=(e,t,s=!1)=>{if(Array.isArray(e)){const i=e.map(e=>l(e,t,s)),n=e=>{for(const t of i){const s=t(e);if(s)return s}return!1};return n}const i=(n=e)&&"object"==typeof n&&!Array.isArray(n)&&e.tokens&&e.input;var n;if(""===e||"string"!=typeof e&&!i)throw new TypeError("Expected pattern to be a non-empty string");const a=t||{},o=r.isWindows(t),c=i?l.compileRe(e,t):l.makeRe(e,t,!1,!0),u=c.state;delete c.state;let d=()=>!1;if(a.ignore){const e={...t,ignore:null,onMatch:null,onResult:null};d=l(a.ignore,e,s)}const p=(s,i=!1)=>{const{isMatch:n,match:r,output:p}=l.test(s,c,t,{glob:e,posix:o}),m={glob:e,state:u,regex:c,posix:o,input:s,output:p,match:r,isMatch:n};return"function"==typeof a.onResult&&a.onResult(m),!1===n?(m.isMatch=!1,!!i&&m):d(s)?("function"==typeof a.onIgnore&&a.onIgnore(m),m.isMatch=!1,!!i&&m):("function"==typeof a.onMatch&&a.onMatch(m),!i||m)};return s&&(p.state=u),p};l.test=(e,t,s,{glob:i,posix:n}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};const a=s||{},o=a.format||(n?r.toPosixSlashes:null);let c=e===i,u=c&&o?o(e):e;return!1===c&&(u=o?o(e):e,c=u===i),!1!==c&&!0!==a.capture||(c=!0===a.matchBase||!0===a.basename?l.matchBase(e,t,s,n):t.exec(u)),{isMatch:Boolean(c),match:c,output:u}},l.matchBase=(e,t,s,n=r.isWindows(s))=>(t instanceof RegExp?t:l.makeRe(t,s)).test(i.basename(e)),l.isMatch=(e,t,s)=>l(t,s)(e),l.parse=(e,t)=>Array.isArray(e)?e.map(e=>l.parse(e,t)):a(e,{...t,fastpaths:!1}),l.scan=(e,t)=>n(e,t),l.compileRe=(e,t,s=!1,i=!1)=>{if(!0===s)return e.output;const n=t||{},a=n.contains?"":"^",r=n.contains?"":"$";let o=`${a}(?:${e.output})${r}`;e&&!0===e.negated&&(o=`^(?!${o}).*$`);const c=l.toRegex(o,t);return!0===i&&(c.state=e),c},l.makeRe=(e,t={},s=!1,i=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return!1===t.fastpaths||"."!==e[0]&&"*"!==e[0]||(n.output=a.fastpaths(e,t)),n.output||(n=a(e,t)),l.compileRe(n,t,s,i)},l.toRegex=(e,t)=>{try{const s=t||{};return new RegExp(e,s.flags||(s.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},l.constants=o,e.exports=l},2608(e,t,s){"use strict";const i=s(280),{CHAR_ASTERISK:n,CHAR_AT:a,CHAR_BACKWARD_SLASH:r,CHAR_COMMA:o,CHAR_DOT:l,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:d,CHAR_LEFT_PARENTHESES:p,CHAR_LEFT_SQUARE_BRACKET:m,CHAR_PLUS:h,CHAR_QUESTION_MARK:f,CHAR_RIGHT_CURLY_BRACE:_,CHAR_RIGHT_PARENTHESES:g,CHAR_RIGHT_SQUARE_BRACKET:y}=s(3940),v=e=>e===u||e===r,x=e=>{!0!==e.isPrefix&&(e.depth=e.isGlobstar?1/0:1)};e.exports=(e,t)=>{const s=t||{},w=e.length-1,b=!0===s.parts||!0===s.scanToEnd,T=[],L=[],M=[];let k,D,S=e,E=-1,Y=0,P=0,F=!1,A=!1,O=!1,C=!1,N=!1,R=!1,j=!1,I=!1,H=!1,z=!1,U=0,W={value:"",depth:0,isGlob:!1};const V=()=>E>=w,B=()=>S.charCodeAt(E+1),$=()=>(k=D,S.charCodeAt(++E));for(;E0&&(q=S.slice(0,Y),S=S.slice(Y),P-=Y),K&&!0===O&&P>0?(K=S.slice(0,P),G=S.slice(P)):!0===O?(K="",G=S):K=S,K&&""!==K&&"/"!==K&&K!==S&&v(K.charCodeAt(K.length-1))&&(K=K.slice(0,-1)),!0===s.unescape&&(G&&(G=i.removeBackslashes(G)),K&&!0===j&&(K=i.removeBackslashes(K)));const J={prefix:q,input:e,start:Y,base:K,glob:G,isBrace:F,isBracket:A,isGlob:O,isExtglob:C,isGlobstar:N,negated:I,negatedExtglob:H};if(!0===s.tokens&&(J.maxDepth=0,v(D)||L.push(W),J.tokens=L),!0===s.parts||!0===s.tokens){let t;for(let i=0;inull!==e&&"object"==typeof e&&!Array.isArray(e),t.hasRegexChars=e=>o.test(e),t.isRegexChar=e=>1===e.length&&t.hasRegexChars(e),t.escapeRegex=e=>e.replace(l,"\\$1"),t.toPosixSlashes=e=>e.replace(a,"/"),t.removeBackslashes=e=>e.replace(r,e=>"\\"===e?"":e),t.supportsLookbehinds=()=>{const e=process.version.slice(1).split(".").map(Number);return 3===e.length&&e[0]>=9||8===e[0]&&e[1]>=10},t.isWindows=e=>e&&"boolean"==typeof e.windows?e.windows:!0===n||"\\"===i.sep,t.escapeLast=(e,s,i)=>{const n=e.lastIndexOf(s,i);return-1===n?e:"\\"===e[n-1]?t.escapeLast(e,s,n-1):`${e.slice(0,n)}\\${e.slice(n)}`},t.removePrefix=(e,t={})=>{let s=e;return s.startsWith("./")&&(s=s.slice(2),t.prefix="./"),s},t.wrapOutput=(e,t={},s={})=>{let i=`${s.contains?"":"^"}(?:${e})${s.contains?"":"$"}`;return!0===t.negated&&(i=`(?:^(?!${i}).*$)`),i}},815(e,t,s){var i=s(3519),n=s(6611),a=s(9896),r=function(){},o=/^v?\.0/.test(process.version),l=function(e){return"function"==typeof e},c=function(e){e()},u=function(e,t){return e.pipe(t)};e.exports=function(){var e,t=Array.prototype.slice.call(arguments),s=l(t[t.length-1]||r)&&t.pop()||r;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var d=t.map(function(u,p){var m=p0,function(t){e||(e=t),t&&d.forEach(c),m||(d.forEach(c),s(e))})});return t.reduce(u)}},9596(e){let t;e.exports="function"==typeof queueMicrotask?queueMicrotask.bind("undefined"!=typeof window?window:global):e=>(t||(t=Promise.resolve())).then(e).catch(e=>setTimeout(()=>{throw e},0))},9027(e){"use strict";e.exports=function(e){var t=new e,s=t;return{get:function(){var i=t;return i.next?t=i.next:(t=new e,s=t),i.next=null,i},release:function(e){s.next=e,s=e}}}},8190(e,t,s){e.exports=function(e,t){let s,n,a,r=!0;function o(e){function n(){t&&t(e,s),t=null}r?i(n):n()}function l(e,t,i){s[e]=i,(0===--n||t)&&o(t)}Array.isArray(e)?(s=[],n=e.length):(a=Object.keys(e),s={},n=a.length),n?a?a.forEach(function(t){e[t](function(e,s){l(t,e,s)})}):e.forEach(function(e,t){e(function(e,s){l(t,e,s)})}):o(null),r=!1};const i=s(9596)},2424(e,t,s){"use strict";var i=s(627),n=/[\/\?<>\\:\*\|"]/g,a=/[\x00-\x1f\x80-\x9f]/g,r=/^\.+$/,o=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,l=/[\. ]+$/;function c(e,t){if("string"!=typeof e)throw new Error("Input must be string");var s=e.replace(n,t).replace(a,t).replace(r,t).replace(o,t).replace(l,t);return i(s,255)}e.exports=function(e,t){var s=t&&t.replacement||"",i=c(e,s);return""===s?i:c(i,"")}},7687(e,t,s){"use strict";const i=s(857),n=s(2018),a=s(5884),{env:r}=process;let o;function l(e,t={}){return 0!==(s=function(e,{streamIsTTY:t,sniffFlags:s=!0}={}){const n=function(){if("FORCE_COLOR"in r)return"true"===r.FORCE_COLOR?1:"false"===r.FORCE_COLOR?0:0===r.FORCE_COLOR.length?1:Math.min(Number.parseInt(r.FORCE_COLOR,10),3)}();void 0!==n&&(o=n);const l=s?o:n;if(0===l)return 0;if(s){if(a("color=16m")||a("color=full")||a("color=truecolor"))return 3;if(a("color=256"))return 2}if(e&&!t&&void 0===l)return 0;const c=l||0;if("dumb"===r.TERM)return c;if("win32"===process.platform){const e=i.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in r)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(e=>e in r)||"codeship"===r.CI_NAME?1:c;if("TEAMCITY_VERSION"in r)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(r.TEAMCITY_VERSION)?1:0;if("truecolor"===r.COLORTERM)return 3;if("TERM_PROGRAM"in r){const e=Number.parseInt((r.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(r.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(r.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(r.TERM)||"COLORTERM"in r?1:c}(e,{streamIsTTY:e&&e.isTTY,...t}))&&{level:s,hasBasic:!0,has256:s>=2,has16m:s>=3};var s}a("no-color")||a("no-colors")||a("color=false")||a("color=never")?o=0:(a("color")||a("colors")||a("color=true")||a("color=always"))&&(o=1),e.exports={supportsColor:l,stdout:l({isTTY:n.isatty(1)}),stderr:l({isTTY:n.isatty(2)})}},54(e,t,s){"use strict";const i=s(1929),n=(e,t,s)=>{if(!1===i(e))throw new TypeError("toRegexRange: expected the first argument to be a number");if(void 0===t||e===t)return String(e);if(!1===i(t))throw new TypeError("toRegexRange: expected the second argument to be a number.");let a={relaxZeros:!0,...s};"boolean"==typeof a.strictZeros&&(a.relaxZeros=!1===a.strictZeros);let l=e+":"+t+"="+String(a.relaxZeros)+String(a.shorthand)+String(a.capture)+String(a.wrap);if(n.cache.hasOwnProperty(l))return n.cache[l].result;let c=Math.min(e,t),u=Math.max(e,t);if(1===Math.abs(c-u)){let s=e+"|"+t;return a.capture?`(${s})`:!1===a.wrap?s:`(?:${s})`}let d=h(e)||h(t),p={min:e,max:t,a:c,b:u},m=[],f=[];return d&&(p.isPadded=d,p.maxLen=String(p.max).length),c<0&&(f=r(u<0?Math.abs(u):1,Math.abs(c),p,a),c=p.a=0),u>=0&&(m=r(c,u,p,a)),p.negatives=f,p.positives=m,p.result=function(e,t){let s=o(e,t,"-",!1)||[],i=o(t,e,"",!1)||[],n=o(e,t,"-?",!0)||[];return s.concat(n).concat(i).join("|")}(f,m),!0===a.capture?p.result=`(${p.result})`:!1!==a.wrap&&m.length+f.length>1&&(p.result=`(?:${p.result})`),n.cache[l]=p,p.result};function a(e,t,s){if(e===t)return{pattern:e,count:[],digits:0};let i=function(e,t){let s=[];for(let i=0;i1&&n.count.pop(),n.count.push(l.count[0]),n.string=n.pattern+p(n.count),c=t+1)}return o}function o(e,t,s,i,n){let a=[];for(let n of e){let{string:e}=n;i||c(t,"string",e)||a.push(s+e),i&&c(t,"string",e)&&a.push(s+e)}return a}function l(e,t){return e>t?1:t>e?-1:0}function c(e,t,s){return e.some(e=>e[t]===s)}function u(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function d(e,t){return e-e%Math.pow(10,t)}function p(e){let[t=0,s=""]=e;return s||t>1?`{${t+(s?","+s:"")}}`:""}function m(e,t,s){return`[${e}${t-e===1?"":"-"}${t}]`}function h(e){return/^-?(0+)\d/.test(e)}function f(e,t,s){if(!t.isPadded)return e;let i=Math.abs(t.maxLen-String(e).length),n=!1!==s.relaxZeros;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}n.cache={},n.clearCache=()=>n.cache={},e.exports=n},627(e,t,s){"use strict";var i=s(5045),n=Buffer.byteLength.bind(Buffer);e.exports=i.bind(null,n)},5045(e){"use strict";function t(e){return e>=55296&&e<=56319}function s(e){return e>=56320&&e<=57343}e.exports=function(e,i,n){if("string"!=typeof i)throw new Error("Input must be string");for(var a,r,o=i.length,l=0,c=0;cn)return i.slice(0,c-r.length+1)}return i}},4792(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Analyzer=t.analyzer=t.anaSubDir=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=s(9679),l=s(9621),c=s(8999),u=s(5720),d=s(6951),p=s(6951),m=s(5603),h=s(7918),f=s(766);var _;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.INPUT=1]="INPUT",e[e.KB=2]="KB",e[e.LOGS=3]="LOGS",e[e.OUTPUT=4]="OUTPUT",e[e.SPEC=5]="SPEC"}(_||(t.anaSubDir=_={})),t.Analyzer=class{constructor(){this.seqFile=new o.SequenceFile,this.jsonState=new c.JsonState,this.analyzerDir=n.Uri.file(""),this.specDir=n.Uri.file(""),this.inputDir=n.Uri.file(""),this.outputDir=n.Uri.file(""),this.kbDir=n.Uri.file(""),this.logDir=n.Uri.file(""),this.currentTextFile=n.Uri.file(""),this.currentPassFile=n.Uri.file(""),this.passNum=0,this.loaded=!1,this.hasLogs=!1,this.timerCounter=0,this.timerID=0,this.analyzerCopyUri=n.Uri.file(""),this.name=""}readState(){if(this.jsonState.jsonParse(this.analyzerDir,"state")){const e=this.jsonState.json.visualText[0];if(e.currentTextFile){let t=e.currentTextFile;r.existsSync(t)?this.currentTextFile=n.Uri.file(t):t.includes("input")?this.currentTextFile=n.Uri.file(""):this.currentTextFile=n.Uri.file(a.join(this.getInputDirectory().fsPath,t)),e.currentPassFile&&(t=e.currentPassFile,r.existsSync(t)?this.currentPassFile=n.Uri.file(t):this.currentPassFile=n.Uri.file(a.join(this.getSpecDirectory().fsPath,t))),n.commands.executeCommand("status.update"),this.outputDirectory()}}}modCreate(e){return i.__awaiter(this,void 0,void 0,function*(){let t=!1;return yield n.window.showInputBox({value:"filename",prompt:"Enter mod file name"}).then(s=>{if(s){const i=a.join(e.fsPath,s+".nlm");if(r.existsSync(i))return void n.window.showWarningMessage("Mod file: "+i+" already exists");const o=n.Uri.file(i);l.visualText.modFiles.push(o),u.dirfuncs.writeFile(i,"# Description goes here"),l.visualText.setModFile(o),n.commands.executeCommand("kbView.refreshAll"),t=!0}}),t})}hasText(){return!!this.currentTextFile.fsPath.length}newAnalyzer(e){if(l.visualText.hasWorkspaceFolder())if(l.visualText.getBlockAnalyzersPath().fsPath==l.visualText.getWorkspaceFolder().fsPath){const t="Create analyzer reguardless";n.window.showInformationMessage("Any analyzer in the example analyzers folder will be lost when updated.",t).then(s=>{t===s&&this.askToCreateNewAnalyzer(e)})}else this.askToCreateNewAnalyzer(e);return""}askToCreateNewAnalyzer(e){n.window.showInputBox({value:"name",prompt:"Enter new analyzer name"}).then(t=>{if(t)return this.createNewAnalyzer(e,t),t})}zeroAnalyzer(){this.analyzerDir=n.Uri.file(""),this.specDir=n.Uri.file(""),this.inputDir=n.Uri.file(""),this.outputDir=n.Uri.file(""),this.kbDir=n.Uri.file(""),this.currentTextFile=n.Uri.file(""),this.name="",this.passNum=0,this.loaded=!1}createNewAnalyzer(e,t){if(l.visualText.readState(),this.analyzerDir=n.Uri.file(a.join(e.fsPath,t)),r.existsSync(this.analyzerDir.fsPath))return n.window.showWarningMessage("Analyzer already exists"),!1;if(!l.visualText.visualTextDirectoryExists())return n.window.showWarningMessage("Block analyzer files missing"),!1;{const e=[];let t=a.join(l.visualText.getVisualTextDirectory("analyzer-templates"));if(!u.dirfuncs.isDir(t))return t=a.join(l.visualText.getVisualTextDirectory("visualText")),this.makeNewAnalyzer(t,""),!0;{const s=u.dirfuncs.getDirectories(n.Uri.file(t)),i={};for(const t of s){const s=a.basename(t.fsPath);if(u.dirfuncs.isDir(t.fsPath)){const n=a.join(t.fsPath,"README.md");let r,o;({title:o,description:r}=this.readDescription(n));const l={label:o,description:r};"Knowledge Base"===s?(l.picked=!0,l.description=r&&r.length?"(Recommended) "+r:"(Recommended)",e.unshift(l)):e.push(l),i[o]=s}}n.window.showQuickPick(e,{title:"Creating New Analyzer",canPickMany:!0,placeHolder:"Choose analyzer block"}).then(e=>{if(!e)return!1;if(1==e.length){let s=i[e[0].label];return this.makeNewAnalyzer(t,s),l.visualText.fileOps.startFileOps(),this.loaded=!0,!0}this.makeNewAnalyzer(t,"Bare Minimum");const s=this.analyzerDir.fsPath;l.visualText.fileOps.addFileOperation(n.Uri.file(t),n.Uri.file(s),[h.fileOpRefresh.ANALYZER],h.fileOperation.ANASEL,"1");for(const i of e)f.sequenceView.insertAnalyzerBlock(t,s,i.label);return this.loaded=!0,l.visualText.fileOps.startFileOps(),!0})}}return!1}readDescription(e){if(!r.existsSync(e))return{title:"",description:""};let t="",s=0,i="";const n=new d.TextFile(e).getLines();for(const e of n){let n=e.toString().trim();if(0==i.length&&n.length>0)n.startsWith("# ")&&(n=n.substring(2)),i=n;else if(i.length>0&&n.length>0&&(t+=n,s>0&&t.length>5))break;s++}return{title:i,description:t}}makeNewAnalyzer(e,t){if(e=a.join(e,t),!u.dirfuncs.makeDir(this.analyzerDir.fsPath))return n.window.showWarningMessage(`Could not make directory: ${e}`),!1;l.visualText.fileOps.addFileOperation(n.Uri.file(e),this.analyzerDir,[h.fileOpRefresh.ANALYZERS],h.fileOperation.COPY),l.visualText.fileOps.addFileOperation(n.Uri.file(e),this.analyzerDir,[h.fileOpRefresh.ANALYZERS],h.fileOperation.ANALOAD)}createAnaSequenceFile(e=""){const t=e.length?e:"#\ntokenize\tnil\t# Gen: Convert input to token list.";if(this.getSpecDirectory()){const e=a.join(this.getSpecDirectory().fsPath,l.visualText.ANALYZER_SEQUENCE_FILE);return u.dirfuncs.writeFile(e,t)}return!1}saveStateFile(){if((0==this.currentPassFile.fsPath.length||0==this.currentTextFile.fsPath.length)&&this.jsonState.jsonParse(this.analyzerDir,"state")){const e=this.jsonState.json.visualText[0];if(e.currentTextFile&&0==this.currentPassFile.fsPath.length){const t=e.currentTextFile;r.existsSync(t)?this.currentTextFile=n.Uri.file(t):this.currentTextFile=n.Uri.file(a.join(this.getInputDirectory().fsPath,t))}if(e.currentPassFile&&0==this.currentPassFile.fsPath.length){const t=e.currentPassFile;r.existsSync(t)?this.currentPassFile=n.Uri.file(t):this.currentPassFile=n.Uri.file(a.join(this.getSpecDirectory().fsPath,t))}}this.saveAnalyzerState(),this.outputDirectory()}saveAnalyzerState(){const e={visualText:[{name:"Analyzer",type:"state",currentTextFile:this.currentTextFile.fsPath,currentPassFile:this.currentPassFile.fsPath}]};this.jsonState.saveFile(this.analyzerDir.fsPath,"state",e)}getCurrentFile(){return this.currentTextFile}saveCurrentFile(e){this.currentTextFile=e,this.outputDirectory(),this.saveAnalyzerState()}saveCurrentPass(e,t){this.currentPassFile=e,this.passNum=t,this.saveAnalyzerState()}load(e){this.setWorkingDir(e),this.readState(),this.seqFile.init(),this.checkHierFile(),n.commands.executeCommand("analyzerView.updateTitle",e),this.currentTextFile.fsPath.length>2?n.commands.executeCommand("textView.updateTitle",n.Uri.file(this.currentTextFile.fsPath)):n.commands.executeCommand("textView.updateTitle",n.Uri.file(""))}checkHierFile(){const e=l.visualText.analyzer.getKBDirectory(),t=a.join(e.fsPath,"hier.kb");if(r.existsSync(t)){const e=new d.TextFile(t),s=a.join(l.visualText.getVisualTextDirectory("analyzer-templates"),"Bare Minimum","kb","user","hier.kb");if(r.existsSync(s)){const t=new d.TextFile(s);t.getText()!=e.getText()&&(l.visualText.debugMessage("Updating hier.kb file",m.logLineType.UPDATER),e.setText(t.getText()),e.saveFile())}}}outputDirectory(){this.currentTextFile.fsPath.length>2?this.outputDir=n.Uri.file(this.currentTextFile.fsPath+l.visualText.LOG_SUFFIX):this.outputDir=n.Uri.file(a.join(this.analyzerDir.fsPath,"output"))}clearOutputDirectory(){r.lstatSync(this.outputDir.fsPath).isDirectory()&&r.readdir(this.outputDir.fsPath,(e,t)=>{if(e)throw e;for(const e of t)r.unlink(a.join(this.outputDir.fsPath,e),e=>{if(e)throw e})})}treeFile(e){if(this.logDir.fsPath.length){let t=a.join(this.logDir.fsPath,e);return t=t.concat(".log"),n.Uri.file(t)}return n.Uri.file("")}isLoaded(){return this.loaded}setCurrentTextFile(e){this.currentTextFile=e}getAnalyzerDirectory(e=""){return n.Uri.file(a.join(this.analyzerDir.fsPath,e))}getInputDirectory(){return this.inputDir}getSpecDirectory(){return this.specDir}getOutputDirectory(e=""){return e.length?n.Uri.file(a.join(l.visualText.analyzer.getOutputDirectory().fsPath,e)):this.outputDir}getLogDirectory(){return this.logDir}getKBDirectory(){return this.kbDir}getTextPath(){return this.currentTextFile}getPassPath(){return this.currentPassFile}getTreeFile(){return(new d.TextFile).anaFile(this.passNum,p.nlpFileType.TREE)}getName(){return this.name}folderHasTests(e){const t=u.dirfuncs.getFiles(e);for(const e of t)if(e.fsPath.endsWith(l.visualText.TEST_SUFFIX))return!0;return!1}fileHasTests(e){const t=e.fsPath+l.visualText.TEST_SUFFIX;return!!r.existsSync(t)}testFolder(e,t=!1){const s=l.visualText.analyzer.getInputDirectory();let i=e.fsPath.substring(s.fsPath.length+1,e.fsPath.length);t&&(i=a.dirname(i),i=i.substring(0,i.length-4));const r=i+l.visualText.TEST_SUFFIX,o=a.join(s.fsPath,r);return n.Uri.file(o)}setWorkingDir(e){this.analyzerDir=e,r.existsSync(e.fsPath)?(this.name=a.basename(e.fsPath),this.specDir=this.constructDir(e,_.SPEC),this.inputDir=this.constructDir(e,_.INPUT),this.kbDir=this.constructDir(e,_.KB),this.logDir=this.constructDir(e,_.LOGS),this.loaded=!0):this.loaded=!1}constructDir(e,t){return n.Uri.file(a.join(e.fsPath,this.anaSubDirPath(t)))}anaSubDirPath(e){let t="";switch(e){case _.INPUT:t="input";break;case _.KB:t=a.join("kb","user");break;case _.SPEC:t=l.visualText.ANALYZER_SEQUENCE_FOLDER;break;case _.LOGS:t="logs";break;case _.OUTPUT:t="output"}return t}getAnalyzerConverting(){return this.getAnalyzerConverting}}},7805(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AnalyzerView=t.analyzerView=t.AnalyzerTreeDataProvider=t.analyzerItemType=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=i.__importStar(s(857)),l=s(9621),c=s(5720),u=s(6560),d=s(7918),p=s(9679),m=s(6951),h=s(4792),f=s(7781),_=s(6639);var g;!function(e){e[e.ANALYZER=0]="ANALYZER",e[e.FOLDER=1]="FOLDER",e[e.NLP=2]="NLP",e[e.SEQUENCE=3]="SEQUENCE",e[e.ECL=4]="ECL",e[e.MANIFEST=5]="MANIFEST",e[e.FILE=6]="FILE",e[e.README=7]="README"}(g||(t.analyzerItemType=g={}));class y{refresh(){this._onDidChangeTreeData.fire()}constructor(){this._onDidChangeTreeData=new n.EventEmitter,this.onDidChangeTreeData=this._onDidChangeTreeData.event}getChildren(e){return i.__awaiter(this,void 0,void 0,function*(){return l.visualText.getAnalyzers(!1),e?this.getKeepers(e.uri):l.visualText.hasWorkspaceFolder()&&l.visualText.hasAnalyzers()?this.getKeepers(l.visualText.getWorkspaceFolder()):[]})}getMovement(e){e.moveDown=!1,e.moveUp=!1;const t=e.uri.fsPath;a.dirname(t)!=l.visualText.getAnalyzerDir().fsPath&&(e.moveUp=!0),e.type==g.FOLDER?c.dirfuncs.parentHasOtherDirs(e.uri)&&(e.moveDown=!0):c.dirfuncs.parentHasOtherDirs(n.Uri.file(t))&&(e.moveDown=!0)}getTreeItem(e){const t=new n.TreeItem(e.uri,l.visualText.isAnalyzerDirectory(e.uri)?n.TreeItemCollapsibleState.None:n.TreeItemCollapsibleState.Collapsed);this.getMovement(e);let s=e.moveDown?"moveDown":"";e.moveUp&&(s+="moveUp"),e.hasReadme&&(s+="readMe");const i=this.fileIconFromType(e.type);if(t.iconPath={light:n.Uri.file(a.join(__filename,"..","..","resources","light",i)),dark:n.Uri.file(a.join(__filename,"..","..","resources","dark",i))},e.type===g.ANALYZER){t.command={command:"analyzerView.openAnalyzer",title:"Open Analyzer",arguments:[e]};const i=t.contextValue=e.hasLogs?"hasLogs":"";t.contextValue=s+i+"isAnalyzer",t.tooltip=e.uri.fsPath}else e.type===g.FOLDER?(t.contextValue=s+"isFolder",t.tooltip=e.uri.fsPath,t.command={command:"analyzerView.openAnalyzer",title:"Open Analyzer",arguments:[e]}):e.type===g.NLP?(t.tooltip=e.uri.fsPath,t.collapsibleState=0,t.command={command:"analyzerView.openFile",title:"Open File",arguments:[e]}):(e.uri.fsPath.endsWith(".ecl")?s+="isECL":e.uri.fsPath.endsWith(".md")&&(s+="isReadMe"),t.contextValue=s+"isFile",t.tooltip=e.uri.fsPath,t.collapsibleState=0,t.command={command:"analyzerView.openFile",title:"Open File",arguments:[e]});return t}getKeepers(e){const t=Array(),s=c.dirfuncs.getDirectoryTypes(e);let i=g.ANALYZER;for(const e of s)if(e.type==n.FileType.Directory){i=l.visualText.isAnalyzerDirectory(e.uri)?g.ANALYZER:g.FOLDER;const s=c.dirfuncs.analyzerHasLogFiles(e.uri),n=c.dirfuncs.hasFile(e.uri,"README.md");t.push({uri:e.uri,type:i,hasLogs:s,hasPats:!1,hasReadme:n,moveUp:!1,moveDown:!1})}else e.type==n.FileType.File&&(i=this.typeFromExtension(e.uri),t.push({uri:e.uri,type:i,hasLogs:!1,hasPats:!1,hasReadme:!1,moveUp:!1,moveDown:!1}));const a=c.dirfuncs.hasLogDirs(l.visualText.getWorkspaceFolder(),!0);return n.commands.executeCommand("setContext","analyzers.hasLogs",a),t}typeFromExtension(e){let t=g.FILE;const s=e.fsPath;return s.endsWith(".nlp")?t=g.NLP:s.endsWith(".seq")?t=g.SEQUENCE:s.endsWith(".ecl")?t=g.ECL:s.endsWith(".manifest")?t=g.MANIFEST:s.endsWith(".md")&&(t=g.README),t}fileIconFromType(e){let t="file.svg";return e==g.ANALYZER?t="gear.svg":e==g.FOLDER?t="folder.svg":e==g.NLP?t="nlp.svg":e==g.SEQUENCE?t="seq-circle.svg":e==g.ECL?t="ecl.svg":e==g.MANIFEST?t="manifest.svg":e==g.README&&(t="readme.svg"),t}}t.AnalyzerTreeDataProvider=y;class v{constructor(e){this.sequenceFile=new p.SequenceFile;const t=new y;this.analyzerView=n.window.createTreeView("analyzerView",{treeDataProvider:t}),n.commands.registerCommand("analyzerView.refreshAll",()=>t.refresh()),n.commands.registerCommand("analyzerView.newAnalyzer",e=>this.newAnalyzer(e)),n.commands.registerCommand("analyzerView.deleteAnalyzer",e=>this.deleteAnalyzer(e)),n.commands.registerCommand("analyzerView.deleteFile",e=>this.deleteFile(e)),n.commands.registerCommand("analyzerView.deleteFolder",e=>this.deleteFolder(e)),n.commands.registerCommand("analyzerView.loadExampleAnalyzers",e=>this.loadExampleAnalyzers()),n.commands.registerCommand("analyzerView.openAnalyzer",e=>this.openAnalyzer(e)),n.commands.registerCommand("analyzerView.deleteAnalyzerLogs",e=>this.deleteAnalyzerLogs(e)),n.commands.registerCommand("analyzerView.deleteAllAnalyzerLogs",()=>this.deleteAllAnalyzerLogs()),n.commands.registerCommand("analyzerView.updateTitle",e=>this.updateTitle(e)),n.commands.registerCommand("analyzerView.copyAnalyzer",e=>this.copyAnalyzer(e)),n.commands.registerCommand("analyzerView.dupeAnalyzer",e=>this.dupeAnalyzer(e)),n.commands.registerCommand("analyzerView.explore",e=>this.explore(e)),n.commands.registerCommand("analyzerView.newFolder",e=>this.newFolder(e)),n.commands.registerCommand("analyzerView.moveToFolder",e=>this.moveToFolder(e)),n.commands.registerCommand("analyzerView.moveUp",e=>this.moveUp(e)),n.commands.registerCommand("analyzerView.readMe",e=>this.readMe(e)),n.commands.registerCommand("analyzerView.createReadMe",e=>this.editReadMe(e)),n.commands.registerCommand("analyzerView.editReadMe",e=>this.editReadMe(e)),n.commands.registerCommand("analyzerView.deleteReadMe",e=>this.deleteReadMe(e)),n.commands.registerCommand("analyzerView.moveDownFolder",e=>this.moveDownFolder(e)),n.commands.registerCommand("analyzerView.moveToParent",e=>this.moveToParent(e)),n.commands.registerCommand("analyzerView.renameAnalyzer",e=>this.renameAnalyzer(e)),n.commands.registerCommand("analyzerView.renameFile",e=>this.renameFile(e)),n.commands.registerCommand("analyzerView.renameFolder",e=>this.renameFolder(e)),n.commands.registerCommand("analyzerView.openFile",e=>this.openFile(e)),n.commands.registerCommand("analyzerView.importAnalyzers",e=>this.importAnalyzers(e)),n.commands.registerCommand("analyzerView.manifestGenerate",e=>this.manifestGenerate(e)),n.commands.registerCommand("analyzerView.newECLFile",e=>this.newECLFile(e)),n.commands.registerCommand("analyzerView.exploreAll",()=>this.exploreAll()),n.commands.registerCommand("analyzerView.copyAll",()=>this.copyAll()),n.commands.registerCommand("analyzerView.updateColorizer",()=>this.updateColorizer()),n.commands.registerCommand("analyzerView.video",()=>this.video()),n.commands.registerCommand("analyzerView.copyPath",()=>this.copyPath()),n.commands.registerCommand("analyzerView.compileAnalyzer",e=>this.compileAnalyzer(e)),n.commands.registerCommand("analyzerView.compileAnalyzerOnly",e=>this.compileAnalyzerOnly(e)),n.commands.registerCommand("analyzerView.deployCompiledAnalyzer",e=>this.deployCompiledAnalyzer(e)),n.commands.registerCommand("analyzerView.runRegressionTest",e=>this.runRegressionTest(e)),n.commands.registerCommand("analyzerView.blessRegression",e=>this.blessRegression(e)),l.visualText.colorizeAnalyzer(),this.folderUri=void 0,this.converting=!1}static attach(e){return t.analyzerView||(t.analyzerView=new v(e)),t.analyzerView}copyPath(){const e=l.visualText.getAnalyzerDir();n.env.clipboard.writeText(e.fsPath)}checkForECLAnalyzersDir(){const e=l.visualText.analyzerList("analyzers");return 0==e.length?(n.window.showWarningMessage("You must have an 'analyzers' folder containing your NLP analyzers when using the ECL Plugin in order to create an ECL Manifest file."),[]):e}newECLFile(e){l.visualText.hasWorkspaceFolder()&&this.checkForECLAnalyzersDir().length>0&&n.window.showInputBox({value:"filename",prompt:"Enter ECL file name"}).then(e=>{if(e){const t=l.visualText.getWorkspaceFolder().fsPath;this.createNewECLFile(t,e)}})}createNewECLFile(e,t){const s=[],i=a.join(l.visualText.getVisualTextDirectory("ecl"));if(c.dirfuncs.isDir(i)){const r=c.dirfuncs.getFiles(n.Uri.file(i)),o=new m.TextFile;for(const e of r){let t=o.readFirstLine(e.fsPath).trim();t=t.replace("// ",""),s.push({label:a.basename(e.fsPath),description:" "+t})}n.window.showQuickPick(s,{title:"Creating New ECL File",canPickMany:!1,placeHolder:"Choose ecl block"}).then(s=>{if(!s)return!1;const r=a.join(i,s.label);return o.setFile(n.Uri.file(r)),this.saveECLFile(e,t,o.getText()),!0})}else this.saveECLFile(e,t,"a := 'Hello world!';\noutput(a);");return!1}saveECLFile(e,t,s){let i=a.join(e,t+".ecl");a.extname(t)&&(i=a.join(e,t)),c.dirfuncs.writeFile(i,s),n.commands.executeCommand("analyzerView.refreshAll"),n.window.showTextDocument(n.Uri.file(i))}manifestGenerate(e){const t=this.checkForECLAnalyzersDir();0!=t.length&&n.window.showQuickPick(t,{title:"Generate HPCC Manifest File",canPickMany:!0,placeHolder:"Choose Analyzers to Manifest"}).then(t=>{if(!t)return;const s=[],i=l.visualText.getAnalyzerDir().fsPath.length;for(const e of t){const t=e.description;if(t){const e=this.getAnalyzerManifestFiles(t);for(const t of e)s.push(this.cleanPath(t,i));const a=l.visualText.analyzer.constructDir(n.Uri.file(t),h.anaSubDir.KB),r=c.dirfuncs.getFiles(a,[".dict",".kbb",".kb"]);for(const e of r)s.push(this.cleanPath(e.fsPath,i))}}const o=a.parse(e.uri.fsPath),u=this.getManifestFilePath(o.name),d=r.createWriteStream(u,{flags:"w"});d.write("\n");for(const e of s)d.write(' \n');d.write(""),d.close(),n.commands.executeCommand("analyzerView.refreshAll"),n.window.showTextDocument(n.Uri.file(u))})}cleanPath(e,t){let s=e.substring(t);return s=s.replace(new RegExp("\\\\","g"),"/"),s=s.substring(1),s}getManifestFilePath(e){return a.join(l.visualText.getAnalyzerDir().fsPath,e+".manifest")}getAnalyzerManifestFiles(e){const t=[],s=a.join(e,l.visualText.ANALYZER_SEQUENCE_FOLDER);this.sequenceFile.setSpecDir(s),this.sequenceFile.getPassFiles(s),t.push(a.join(s,l.visualText.ANALYZER_SEQUENCE_FILE));for(const e of this.sequenceFile.getPassItems()){const s=e.uri.fsPath;s.length>2&&r.existsSync(s)&&t.push(e.uri.fsPath)}return t}copyDataFolder(){const e=[],t=a.join(l.visualText.getAnalyzerDir().fsPath,"data","rfb",l.visualText.ANALYZER_SEQUENCE_FOLDER);if(!r.existsSync(t)){const e=a.join(l.visualText.engineDirectory().fsPath,"data","rfb",l.visualText.ANALYZER_SEQUENCE_FOLDER);l.visualText.fileOps.addFileOperation(n.Uri.file(e),n.Uri.file(t),[d.fileOpRefresh.ANALYZERS],d.fileOperation.COPY),l.visualText.fileOps.startFileOps()}const s=c.dirfuncs.getFiles(n.Uri.file(t));for(const t of s)e.push(t.fsPath);return e}openFile(e){e.type==g.README?n.commands.executeCommand("markdown.showPreview",e.uri):n.window.showTextDocument(e.uri)}video(){n.commands.executeCommand("vscode.open",n.Uri.parse("http://vscodeanaviewer.visualtext.org"))}renameAnalyzer(e){l.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:a.basename(e.uri.fsPath),prompt:"Enter new Analyzer name"}).then(t=>{if(t){e.uri,0==a.extname(t).length&&(t+=a.extname(e.uri.fsPath));const s=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t));l.visualText.fileOps.addFileOperation(e.uri,s,[d.fileOpRefresh.ANALYZERS],d.fileOperation.RENAME),l.visualText.fileOps.startFileOps()}})}renameFile(e){l.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:a.basename(e.uri.fsPath),prompt:"Enter new file name"}).then(t=>{if(t){e.uri,0==a.extname(t).length&&(t+=a.extname(e.uri.fsPath));const s=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t));l.visualText.fileOps.addFileOperation(e.uri,s,[d.fileOpRefresh.ANALYZERS],d.fileOperation.RENAME),l.visualText.fileOps.startFileOps()}})}renameFolder(e){l.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:a.basename(e.uri.fsPath),prompt:"Enter new folder name"}).then(t=>{if(t){e.uri;const s=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t));l.visualText.fileOps.addFileOperation(e.uri,s,[d.fileOpRefresh.ANALYZERS],d.fileOperation.RENAME),l.visualText.fileOps.startFileOps()}})}moveDownFolder(e){this.openFolder(e.uri)}moveToParent(e){const t=n.Uri.file(a.dirname(a.dirname(e.uri.fsPath)));this.openFolder(t)}openFolder(e){n.commands.executeCommand("vscode.openFolder",e),n.commands.executeCommand("workbench.action.openPanel")}updateColorizer(){l.visualText.colorizeAnalyzer(!0)}importAnalyzers(e){if(l.visualText.hasWorkspaceFolder()){const t={canSelectFiles:!1,canSelectFolders:!0,canSelectMany:!0,openLabel:"Import Analyzer(s)",defaultUri:l.visualText.analyzer.seqFile.getSpecDirectory()};n.window.showOpenDialog(t).then(t=>{if(!t)return;let s=!1,i="";void 0===e?i=l.visualText.analyzer.getAnalyzerDirectory().fsPath:(i=e.uri.fsPath,l.visualText.isAnalyzerDirectory(e.uri)&&(i=a.dirname(i)));for(const e of t)if(l.visualText.isAnalyzerDirectory(e)){const t=a.basename(e.fsPath);l.visualText.fileOps.addFileOperation(e,n.Uri.file(a.join(i,t)),[d.fileOpRefresh.ANALYZERS],d.fileOperation.COPY),s=!0}s?l.visualText.fileOps.startFileOps():n.window.showWarningMessage("No analyzers were selected")})}}newFolder(e){l.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:"dirname",prompt:"Enter folder name"}).then(t=>{if(t){let s="";s=e?e.type==g.FOLDER?e.uri.fsPath:a.dirname(e.uri.fsPath):l.visualText.getAnalyzerDir().fsPath,c.dirfuncs.makeDir(a.join(s,t)),n.commands.executeCommand("analyzerView.refreshAll")}})}moveToFolder(e){if(this.folderUri){const t=a.join(this.folderUri.fsPath,a.basename(e.uri.fsPath));c.dirfuncs.rename(e.uri.fsPath,t),n.commands.executeCommand("analyzerView.refreshAll")}else n.window.showInformationMessage("No folder selected")}deleteReadMe(e){const t=n.Uri.file(a.join(e.uri.fsPath,"README.md"));if(r.existsSync(t.fsPath)){const e=[];e.push({label:"Yes",description:"Delete README.md?"}),e.push({label:"No",description:"Do not delete README.md"}),n.window.showQuickPick(e,{title:"README.md File",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(e=>{e&&"No"!=e.label&&(c.dirfuncs.delFile(t.fsPath),n.commands.executeCommand("analyzerView.refreshAll"))})}else n.window.showWarningMessage("README.md does not exist")}editReadMe(e){let t=e.uri.fsPath;c.dirfuncs.isDir(t)||(t=a.dirname(e.uri.fsPath));const s=a.join(t,"README.md");if(!r.existsSync(s)){const e="# TITLE\n\nDescription here.";c.dirfuncs.writeFile(s,e)}n.window.showTextDocument(n.Uri.file(s)),n.commands.executeCommand("analyzerView.refreshAll")}readMe(e){const t=n.Uri.file(a.join(e.uri.fsPath,"README.md"));r.existsSync(t.fsPath)&&n.commands.executeCommand("markdown.showPreview",t)}moveUp(e){let t=a.dirname(e.uri.fsPath);if(t!=l.visualText.getAnalyzerDir().fsPath){t=a.dirname(t);const s=a.join(t,a.basename(e.uri.fsPath));c.dirfuncs.rename(e.uri.fsPath,s),n.commands.executeCommand("analyzerView.refreshAll")}else n.window.showInformationMessage("Already at the top")}explore(e){r.existsSync(e.uri.fsPath)&&l.visualText.openFileManager(e.uri.fsPath)}exploreAll(){const e=l.visualText.getAnalyzerDir();r.existsSync(e.fsPath)&&l.visualText.openFileManager(e.fsPath)}copyAll(){if(l.visualText.hasWorkspaceFolder()){const e={canSelectMany:!1,openLabel:"Analyzers to here",defaultUri:l.visualText.getWorkspaceFolder(),canSelectFiles:!1,canSelectFolders:!0};n.window.showOpenDialog(e).then(e=>{if(!e)return;const t=l.visualText.getAnalyzers(!1),s=n.Uri.file(e[0].fsPath);for(const e of t){const t=a.basename(e.fsPath);l.visualText.fileOps.addFileOperation(e,n.Uri.file(a.join(s.fsPath,t)),[d.fileOpRefresh.UNKNOWN],d.fileOperation.COPY)}l.visualText.fileOps.startFileOps()})}}copyAnalyzer(e){if(l.visualText.hasWorkspaceFolder()){const t={canSelectMany:!1,openLabel:"Folder to copy to",defaultUri:l.visualText.getWorkspaceFolder(),canSelectFiles:!1,canSelectFolders:!0};n.window.showOpenDialog(t).then(t=>{if(!t)return;const s=a.basename(e.uri.fsPath);l.visualText.fileOps.addFileOperation(e.uri,n.Uri.file(a.join(t[0].fsPath,s)),[d.fileOpRefresh.UNKNOWN],d.fileOperation.COPY),l.visualText.fileOps.startFileOps()})}}dupeAnalyzer(e){l.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:a.basename(e.uri.fsPath),prompt:"Enter duplicate analyzer name"}).then(t=>{if(t){const s=a.dirname(e.uri.fsPath);l.visualText.fileOps.addFileOperation(e.uri,n.Uri.file(a.join(s,t)),[d.fileOpRefresh.ANALYZERS],d.fileOperation.COPY),l.visualText.fileOps.startFileOps(),n.commands.executeCommand("analyzerView.refreshAll"),n.commands.executeCommand("sequenceView.refreshAll")}})}updateTitle(e){if(e.fsPath.length>0){this.chosen=e;const t=a.basename(e.fsPath);t.length&&(this.analyzerView.title=`ANALYZERS (${t})`)}else this.chosen=void 0,this.analyzerView.title="ANALYZERS";n.commands.executeCommand("sequenceView.updateTitle")}openAnalyzer(e){l.visualText.colorizeAnalyzer(),e.type==g.ANALYZER?(l.visualText.loadAnalyzer(e.uri),this.folderUri=void 0):this.folderUri=e.uri}deleteAnalyzer(e){if(l.visualText.hasWorkspaceFolder()){const t=[];let s="";s=s.concat("Delete '",a.basename(e.uri.fsPath),"' Analyzer"),t.push({label:"Yes",description:s}),t.push({label:"No",description:"Do not delete analyzer"}),n.window.showQuickPick(t,{title:"Delete Analyzer",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(t=>{t&&"No"!=t.label&&(l.visualText.fileOps.addFileOperation(e.uri,e.uri,[d.fileOpRefresh.TEXT,d.fileOpRefresh.KB,d.fileOpRefresh.ANALYZERS,d.fileOpRefresh.ANALYZER],d.fileOperation.DELETE),l.visualText.fileOps.startFileOps())})}}deleteFile(e){if(l.visualText.hasWorkspaceFolder()){const t=[];let s="";s=s.concat("Delete file '",a.basename(e.uri.fsPath)),t.push({label:"Yes",description:s}),t.push({label:"No",description:"Do not delete file"}),n.window.showQuickPick(t,{title:"Delete File",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(t=>{t&&"No"!=t.label&&(l.visualText.fileOps.addFileOperation(e.uri,e.uri,[d.fileOpRefresh.ANALYZERS],d.fileOperation.DELETE),l.visualText.fileOps.startFileOps())})}}deleteFolder(e){if(l.visualText.hasWorkspaceFolder()){const t=r.readdirSync(e.uri.fsPath).length;let s="",i="",o="Choose Yes of No";s=s.concat("Delete empty folder '",a.basename(e.uri.fsPath),"'"),i="Do not delete empty folder",0!=r.readdirSync(e.uri.fsPath).length&&(s=`FOLDER NOT EMPTY: Delete folder and its ${t} items?`,i="Do not delete folder and all its contents",o="FOLDER NOT EMPTY: choose yes or no");const c=[];c.push({label:"Yes",description:s}),c.push({label:"No",description:i}),n.window.showQuickPick(c,{title:"Delete Folder",canPickMany:!1,placeHolder:o}).then(t=>{t&&"No"!=t.label&&(l.visualText.fileOps.addFileOperation(e.uri,e.uri,[d.fileOpRefresh.ANALYZERS],d.fileOperation.DELETE),l.visualText.fileOps.startFileOps())})}}loadExampleAnalyzers(){this.openFolder(l.visualText.getBlockAnalyzersPath())}newAnalyzer(e){let t;null==e?t=l.visualText.getAnalyzerDir():(t=e.uri,e.type==g.ANALYZER&&(t=n.Uri.file(a.dirname(t.fsPath)))),l.visualText.analyzer.newAnalyzer(t)}compileAnalyzer(e){return i.__awaiter(this,void 0,void 0,function*(){let t;if(e&&e.uri)t=c.dirfuncs.isDir(e.uri.fsPath)?e.uri:n.Uri.file(a.dirname(e.uri.fsPath));else{if(!l.visualText.analyzer.isLoaded())return void n.window.showWarningMessage("No analyzer loaded. Open an analyzer first.");t=l.visualText.analyzer.getAnalyzerDirectory()}const s=f.NLPCompile.attach();yield s.compileAnalyzer(t)})}compileAnalyzerOnly(e){return i.__awaiter(this,void 0,void 0,function*(){let t;if(e&&e.uri)t=c.dirfuncs.isDir(e.uri.fsPath)?e.uri:n.Uri.file(a.dirname(e.uri.fsPath));else{if(!l.visualText.analyzer.isLoaded())return void n.window.showWarningMessage("No analyzer loaded. Open an analyzer first.");t=l.visualText.analyzer.getAnalyzerDirectory()}const s=f.NLPCompile.attach();yield s.compileAnalyzerOnly(t)})}deployCompiledAnalyzer(e){return i.__awaiter(this,void 0,void 0,function*(){let t;if(e&&e.uri)t=c.dirfuncs.isDir(e.uri.fsPath)?e.uri:n.Uri.file(a.dirname(e.uri.fsPath));else{if(!l.visualText.analyzer.isLoaded())return void n.window.showWarningMessage("No analyzer loaded. Open an analyzer first.");t=l.visualText.analyzer.getAnalyzerDirectory()}const s=f.NLPCompile.attach();yield s.deployCompiledAnalyzer(t)})}runRegress(e,t){const s=this.resolveRegressAnalyzerDir(e);s?n.workspace.getConfiguration("analyzer").get("regressionTerminal",!1)?this.runRegressTerminal(s,t):"bless"===t?_.regressionRunner.bless(s):_.regressionRunner.test(s):n.window.showWarningMessage("No analyzer loaded. Open an analyzer first.")}runRegressTerminal(e,t){const s=a.join(l.visualText.getVisualTextDirectory("python"),"nlp_regress.py");if(!r.existsSync(s))return void n.window.showErrorMessage("Regression script not found: "+s);const i=l.visualText.engineDirectory().fsPath,c=`${"win32"===o.platform()?"python":"python3"} "${s}" ${t} "${e.fsPath}" --cli --engine "${i}"`,u="NLP++ Regression";let d=n.window.terminals.find(e=>e.name===u);d||(d=n.window.createTerminal(u)),d.show(!0),d.sendText(c)}runRegressionTest(e){this.runRegress(e,"test")}blessRegression(e){const t=this.resolveRegressAnalyzerDir(e);t?_.regressionRunner.goldensExist(t)?n.window.showWarningMessage("Bless will OVERWRITE the existing regression goldens (test/expected/) with the analyzer's CURRENT output. Only do this after confirming the current output is correct. Continue?",{modal:!0},"Bless").then(t=>{"Bless"===t&&this.runRegress(e,"bless")}):this.runRegress(e,"bless"):n.window.showWarningMessage("No analyzer loaded. Open an analyzer first.")}resolveRegressAnalyzerDir(e){return e&&e.uri?c.dirfuncs.isDir(e.uri.fsPath)?e.uri:n.Uri.file(a.dirname(e.uri.fsPath)):l.visualText.analyzer.isLoaded()?l.visualText.analyzer.getAnalyzerDirectory():void 0}deleteAllAnalyzerLogs(){if(l.visualText.hasWorkspaceFolder()){const e=[];let t="";t=t.concat("Delete log directories for all analyzers?"),e.push({label:"Yes",description:t}),e.push({label:"No",description:"Do not delete analyzers log files"}),n.window.showQuickPick(e,{title:"Delete ALL Analyzer Logs",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(e=>{e&&"No"!=e.label&&(this.deleteAllAnalyzerLogDirs(),l.visualText.fileOps.startFileOps())})}}deleteAnalyzerLogs(e){if(l.visualText.hasWorkspaceFolder()){const t=[];let s="";const i=a.basename(e.uri.fsPath);s=s.concat("Delete log directories for '",i,"'?"),t.push({label:"Yes",description:s}),t.push({label:"No",description:"Do not delete analyzer log files"}),n.window.showQuickPick(t,{title:"Delete Analyzer",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(t=>{t&&"No"!=t.label&&(u.textView.deleteFolderLogs(e.uri),l.visualText.fileOps.startFileOps())})}}deleteLogDirs(e){const t=n.Uri.file(a.join(e.fsPath,"output"));this.deleteDirFiles(t);const s=n.Uri.file(a.join(e.fsPath,"logs"));this.deleteDirFiles(s)}deleteDirFiles(e){const t=c.dirfuncs.getFiles(e);for(const e of t)l.visualText.fileOps.addFileOperation(e,e,[d.fileOpRefresh.ANALYZERS],d.fileOperation.DELETE)}deleteAllAnalyzerLogDirs(){if(n.workspace.workspaceFolders){const e=l.visualText.getAnalyzers(!0);for(const t of e)a.basename(t.fsPath),u.textView.deleteFolderLogs(t)}}}t.AnalyzerView=v},8525(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NLPCommands=t.nlpCommands=void 0;const i=s(1635).__importStar(s(1398)),n=s(5348),a=s(9070),r=s(6951);class o{constructor(e){this._ctx=e,e.subscriptions.push(i.commands.registerCommand("nlp.analyze",this.analyze)),e.subscriptions.push(i.commands.registerCommand("nlp.analyzeDir",this.analyzeDir)),e.subscriptions.push(i.commands.registerCommand("nlp.reformatRule",this.reformatRule)),e.subscriptions.push(i.commands.registerCommand("nlp.reformatOneLine",this.reformatOneLine)),e.subscriptions.push(i.commands.registerCommand("nlp.reformatParens",this.reformatParens)),e.subscriptions.push(i.commands.registerCommand("nlp.searchWord",this.searchWord)),e.subscriptions.push(i.commands.registerCommand("nlp.goToFunction",this.goToFunction)),e.subscriptions.push(i.commands.registerCommand("nlp.ruleFired",this.ruleFired)),e.subscriptions.push(i.commands.registerCommand("nlp.openSelTree",this.openSelTree)),e.subscriptions.push(i.commands.registerCommand("nlp.generateRule",this.generateRule)),e.subscriptions.push(i.commands.registerCommand("nlp.generateExactRule",this.generateExactRule)),e.subscriptions.push(i.commands.registerCommand("nlp.copyContext",this.copyContext)),e.subscriptions.push(i.commands.registerCommand("nlp.openPassFile",this.openPassFile)),e.subscriptions.push(i.commands.registerCommand("nlp.duplicateLine",this.duplicateLine)),e.subscriptions.push(i.commands.registerCommand("nlp.commentLines",this.commentLines)),e.subscriptions.push(i.commands.registerCommand("nlp.selectSequence",this.selectSequence)),e.subscriptions.push(i.commands.registerCommand("nlp.passTree",this.passTree)),e.subscriptions.push(i.commands.registerCommand("nlp.displayMatchedRules",this.displayMatchedRulesNLP)),e.subscriptions.push(i.commands.registerCommand("nlp.sortText",this.sortText)),e.subscriptions.push(i.commands.registerCommand("nlp.lowerCase",this.lowerCase)),e.subscriptions.push(i.commands.registerCommand("nlp.removeAccents",this.removeAccents)),e.subscriptions.push(i.commands.registerCommand("nlp.runPython",this.runPython)),e.subscriptions.push(i.commands.registerCommand("log.foldAll",this.foldAll)),e.subscriptions.push(i.commands.registerCommand("log.unfoldAll",this.unfoldAll)),e.subscriptions.push(i.commands.registerCommand("log.foldRecursively",this.foldRecursively)),e.subscriptions.push(i.commands.registerCommand("log.unfoldRecursively",this.unfoldRecursively)),e.subscriptions.push(i.commands.registerCommand("log.highlightText",this.highlightText)),e.subscriptions.push(i.commands.registerCommand("log.ruleFired",this.ruleFiredLog)),e.subscriptions.push(i.commands.registerCommand("log.generatePath",this.generatePath)),e.subscriptions.push(i.commands.registerCommand("log.openPassFile",this.openPassFile)),e.subscriptions.push(i.commands.registerCommand("log.displayMatchedRules",this.displayMatchedRulesNLP)),e.subscriptions.push(i.commands.registerCommand("nlp.video",this.video))}static attach(e){return t.nlpCommands||(t.nlpCommands=new o(e)),t.nlpCommands}video(){i.commands.executeCommand("vscode.open",i.Uri.parse("http://vscode2.visualtext.org"))}sortText(){if(i.window.activeTextEditor){const e=i.window.activeTextEditor;if(e){const t=new r.TextFile(e.document.uri.fsPath,!0,e.document.getText()),s=!e.selection.isEmpty;if(s&&t.getSelectedLines(e),t.sortLines(s),t.rollupLines(s),t.linesToText(e,s),!s){const s=e.document.lineAt(0),n=e.document.lineAt(e.document.lineCount-1),a=new i.Range(s.range.start,n.range.end);e.edit(function(e){e.replace(a,t.getText())})}}}}lowerCase(){if(i.window.activeTextEditor){const e=i.window.activeTextEditor;if(e){const t=new i.Range(e.selection.start,e.selection.end),s=e.document.getText(t),n=new i.SnippetString(s.toLowerCase());e.insertSnippet(n,t)}}}removeAccents(){if(i.window.activeTextEditor){const e=i.window.activeTextEditor;if(e){const t=e.document.getText().normalize("NFD").replace(/[\u0300-\u036f]/g,""),s=new i.Range(e.document.lineAt(0).range.start,e.document.lineAt(e.document.lineCount-1).range.end),n=new i.SnippetString(t);e.insertSnippet(n,s)}}}runPython(){if(i.window.activeTextEditor){const e=i.window.activeTextEditor;e&&new r.TextFile(e.document.uri.fsPath).runPython(e)}}passTree(){i.window.activeTextEditor&&(new a.NLPFile).passTree(i.window.activeTextEditor)}displayMatchedRulesNLP(){i.window.activeTextEditor&&(new a.NLPFile).openRuleMatchesText(i.window.activeTextEditor)}selectSequence(){i.window.activeTextEditor&&(new a.NLPFile).selectSequence(i.window.activeTextEditor)}commentLines(){i.window.activeTextEditor&&(new a.NLPFile).commentLines(i.window.activeTextEditor)}duplicateLine(){i.window.activeTextEditor&&(new a.NLPFile).duplicateLine(i.window.activeTextEditor)}searchWord(){i.window.activeTextEditor&&(new a.NLPFile).searchWord(i.window.activeTextEditor)}goToFunction(){i.window.activeTextEditor&&(new a.NLPFile).searchWord(i.window.activeTextEditor,!0)}reformatRule(){i.window.activeTextEditor&&(new a.NLPFile).reformatRule(i.window.activeTextEditor,a.reformatType.NORMAL)}reformatOneLine(){i.window.activeTextEditor&&(new a.NLPFile).reformatRule(i.window.activeTextEditor,a.reformatType.ONELINE)}reformatParens(){i.window.activeTextEditor&&(new a.NLPFile).reformatRule(i.window.activeTextEditor,a.reformatType.PARENS)}ruleFired(){i.window.activeTextEditor&&(new n.TreeFile).findRule(i.window.activeTextEditor)}openSelTree(){i.window.activeTextEditor&&(new n.TreeFile).findSelectedTree(i.window.activeTextEditor)}copyContext(){i.window.activeTextEditor&&(new a.NLPFile).copyContext(i.window.activeTextEditor)}generateRule(){i.window.activeTextEditor&&(new n.TreeFile).generateRule(i.window.activeTextEditor,n.generateType.GENERAL)}generateExactRule(){i.window.activeTextEditor&&(new n.TreeFile).generateRule(i.window.activeTextEditor,n.generateType.EXACT)}analyze(){if(i.window.activeTextEditor){const e=new a.NLPFile,t=i.window.activeTextEditor.document.uri;e.analyze(t)}}analyzeDir(){if(i.window.activeTextEditor){const e=new a.NLPFile,t=i.window.activeTextEditor.document.uri;e.analyze(t)}}foldAll(){i.window.activeTextEditor&&i.commands.executeCommand("editor.foldAll")}unfoldAll(){i.window.activeTextEditor&&i.commands.executeCommand("editor.unfoldAll")}foldRecursively(){i.window.activeTextEditor&&i.commands.executeCommand("editor.foldRecursively")}unfoldRecursively(){i.window.activeTextEditor&&i.commands.executeCommand("editor.unfoldRecursively")}highlightText(){i.window.activeTextEditor&&(new n.TreeFile).highlightText(i.window.activeTextEditor)}ruleFiredLog(){i.window.activeTextEditor&&(new n.TreeFile).ruleFired(i.window.activeTextEditor)}generatePath(){i.window.activeTextEditor&&(new n.TreeFile).generatePath(i.window.activeTextEditor)}openPassFile(){i.window.activeTextEditor&&(new a.NLPFile).openPassFile(i.window.activeTextEditor)}}t.NLPCommands=o},7781(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NLPCompile=t.nlpCompile=t.compileTarget=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=i.__importStar(s(857)),l=s(9621),c=s(5603),u=s(7141);var d;!function(e){e[e.ANALYZER=0]="ANALYZER",e[e.KB_ONLY=1]="KB_ONLY",e[e.ANALYZER_ONLY=2]="ANALYZER_ONLY"}(d||(t.compileTarget=d={}));class p{constructor(){}static attach(){return t.nlpCompile||(t.nlpCompile=new p),t.nlpCompile}compileAnalyzer(e){return i.__awaiter(this,void 0,void 0,function*(){yield this.runCompile(e,d.ANALYZER)})}compileKBOnly(e){return i.__awaiter(this,void 0,void 0,function*(){yield this.runCompile(e,d.KB_ONLY)})}compileAnalyzerOnly(e){return i.__awaiter(this,void 0,void 0,function*(){yield this.runCompile(e,d.ANALYZER_ONLY)})}deployCompiledAnalyzer(e){return i.__awaiter(this,void 0,void 0,function*(){var t,s;const i=e.fsPath,o=a.basename(i.replace(/[\\/]+$/,"")),l=this.sharedLibraryExt(),u=a.join(i,`${o}${l}`);if(!r.existsSync(u))return void("Compile Analyzer and KB"===(yield n.window.showErrorMessage(`No compiled library found (${o}${l}). Run "Compile Analyzer and KB to C++ Library" first, then deploy.`,"Compile Analyzer and KB"))&&(yield this.compileAnalyzer(e)));const d=a.join(i,"kb","user"),p=this.findFullKBFiles(d),m=yield n.window.showOpenDialog({canSelectFolders:!0,canSelectFiles:!1,canSelectMany:!1,openLabel:"Select deployment location",title:`Deploy compiled analyzer "${o}" into…`});if(!m||0===m.length)return;const h=m[0].fsPath,f=a.join(h,o);if(a.resolve(f)!==a.resolve(i)){if(r.existsSync(f)){if("Replace"!==(yield n.window.showWarningMessage(`"${f}" already exists. Replace it?`,{modal:!0},"Replace")))return;try{r.rmSync(f,{recursive:!0,force:!0})}catch(e){return void n.window.showErrorMessage(`Could not remove existing folder: ${null!==(t=null==e?void 0:e.message)&&void 0!==t?t:e}`)}}try{r.mkdirSync(f,{recursive:!0}),r.copyFileSync(u,a.join(f,`${o}${l}`));const t=a.join(f,"bin");r.mkdirSync(t,{recursive:!0});for(const e of["run","runu","kb","kbu"])r.copyFileSync(u,a.join(t,`${e}${l}`));const s=a.join(f,"kb","user");r.mkdirSync(s,{recursive:!0});for(const e of p)r.copyFileSync(e,a.join(s,a.basename(e)));const d=this.findSpecPyFiles(i);if(d.length){const e=a.join(f,"spec");r.mkdirSync(e,{recursive:!0});for(const t of d)r.copyFileSync(t,a.join(e,a.basename(t)))}const m=a.join(i,"python"),h=r.existsSync(m)&&r.statSync(m).isDirectory();h&&r.cpSync(m,a.join(f,"python"),{recursive:!0});for(const e of["input","output","logs","tmp"])r.mkdirSync(a.join(f,e),{recursive:!0});const _=p.length?`${p.length} lazy file(s): ${p.map(e=>a.basename(e)).join(", ")}`:"no *full.dict/*full.kbb files found (KB is fully compiled into the library)",g=d.length?`; ${d.length} python script(s): ${d.map(e=>a.basename(e)).join(", ")}${h?" + python/":""}`:"";c.logView.addMessage(`Deployed compiled analyzer to ${f} (${o}${l} + bin/${["run","runu","kb","kbu"].map(e=>e+l).join(", ")}; ${_}${g}).`,c.logLineType.ANALYER_OUTPUT,e),n.window.showInformationMessage(`Deployed compiled analyzer "${o}". Run it with: nlp.exe -ANA "${f}" -WORK "" -COMPILED "". Requires an installed NLP engine (nlp.exe + its data/rfb) of the same architecture as the compiled library.`,"Reveal in Explorer").then(e=>{"Reveal in Explorer"===e&&n.commands.executeCommand("revealFileInOS",n.Uri.file(f))})}catch(t){const i=null!==(s=null==t?void 0:t.message)&&void 0!==s?s:String(t);c.logView.addMessage(`Deploy failed: ${i}`,c.logLineType.ANALYER_OUTPUT,e),n.window.showErrorMessage(`Deploy compiled analyzer failed: ${i}`)}}else n.window.showErrorMessage("Deployment target cannot be the analyzer folder itself. Choose a different location.")})}runCompile(e,t){return i.__awaiter(this,void 0,void 0,function*(){const s=t===d.KB_ONLY?"KB":t===d.ANALYZER_ONLY?"Analyzer":"Analyzer and KB",p=t===d.KB_ONLY?"-COMPILEKB":t===d.ANALYZER_ONLY?"-COMPILEANA":"-COMPILE",m=l.visualText.exePath().fsPath;if(m.length&&r.existsSync(m)){if(t===d.KB_ONLY&&0===this.findKBSourceFiles(e.fsPath).length){const t=`No .kbb or .dict files found under ${a.basename(e.fsPath.replace(/[\\/]+$/,""))}/kb/user. Add KB sources before compiling the KB.`;return c.logView.addMessage(t,c.logLineType.ANALYER_OUTPUT,e),void n.window.showWarningMessage(t)}if(t===d.ANALYZER_ONLY&&0===this.findGeneratedCppFiles(e.fsPath,!0).length){const t=`No generated KB C++ found under ${a.basename(e.fsPath.replace(/[\\/]+$/,""))}/kb/. Run "Compile Analyzer and KB" (or "Compile KB") once before "Compile Analyzer Only".`;return c.logView.addMessage(t,c.logLineType.ANALYER_OUTPUT,e),void n.window.showWarningMessage(t)}n.window.withProgress({location:n.ProgressLocation.Window,title:`Compile ${s}`,cancellable:!1},l=>i.__awaiter(this,void 0,void 0,function*(){var i,h;l.report({increment:10,message:"Generating C++ code..."}),c.logView.addMessage(`Compiling ${s}: ${a.basename(e.fsPath)}`,c.logLineType.ANALYER_OUTPUT,e),n.commands.executeCommand("logView.refreshAll");const f=a.dirname(m),_=e.fsPath,g=a.join(_,"run");r.existsSync(g)||r.mkdirSync(g,{recursive:!0});const y=yield this.runNlpCompile(m,_,f,p);if(0===this.findGeneratedCppFiles(_).length){const t=(null===(i=y.stderr)||void 0===i?void 0:i.trim())||(null===(h=y.stdout)||void 0===h?void 0:h.trim())||"No diagnostics returned by nlp.exe.",a=`C++ generation failed for ${s}: ${t}`;return c.logView.addMessage(a,c.logLineType.ANALYER_OUTPUT,e),n.window.showErrorMessage(a),void l.report({increment:100,message:"C++ generation failed."})}y.ok||c.logView.addMessage("nlp.exe reported post-generation build errors, but generated C++ files were found. Continuing with extension compiler step.",c.logLineType.ANALYER_OUTPUT,e);const v=t===d.KB_ONLY,x=t===d.KB_ONLY?"kb":t===d.ANALYZER_ONLY?"analyzer":a.basename(_);let w=!1;if("cloud"===(n.workspace.getConfiguration("compile").get("mode")||"cloud").toLowerCase())l.report({increment:30,message:"Submitting to compile service..."}),w=yield this.compileCppOnCloud(_,x,v,l);else{l.report({increment:30,message:"Checking CMake and NLP-engine compile libraries..."}),"win32"===o.platform()&&(yield this.ensureIcuImportLibs(f,_));const e=yield this.resolveCompileSupport(_);if(!e)return void n.commands.executeCommand("logView.refreshAll");l.report({increment:20,message:"Compiling C++ library..."}),w=yield this.compileCppWithCMake(_,e,x,v)}if(w){const t=this.sharedLibraryName(x),i=a.join(e.fsPath,t);c.logView.addMessage(`Compile ${s} succeeded: ${t}`,c.logLineType.ANALYER_OUTPUT,e),n.window.showInformationMessage(`Compile ${s} succeeded: ${t}`,"Reveal in Explorer").then(e=>{"Reveal in Explorer"===e&&n.commands.executeCommand("revealFileInOS",n.Uri.file(i))})}else c.logView.addMessage(`Compile ${s} failed. Check the output for details.`,c.logLineType.ANALYER_OUTPUT,e),n.window.showErrorMessage(`Compile ${s} failed. See the NLP output panel for details.`,"Open Output").then(e=>{"Open Output"===e&&(n.commands.executeCommand("workbench.view.extension.vtOutput"),n.commands.executeCommand("logView.focus"))});n.commands.executeCommand("logView.refreshAll"),n.commands.executeCommand("analyzerView.refreshAll"),n.commands.executeCommand("kbView.refreshAll"),(0,u.refreshEngineDiagnostics)(),l.report({increment:40,message:w?"Done.":"Failed."})}))}else n.window.showErrorMessage("NLP Engine missing","Download Now").then(e=>{l.visualText.startUpdater()})})}runNlpCompile(e,t,i,a="-COMPILE"){const r=s(5317),l=this.pathForNlpExe(t),u=this.pathForNlpExe(i),d=[a,"-ANA",l,"-WORK",u];if(c.logView.addMessage(`Running: ${e} ${d.join(" ")}`,c.logLineType.ANALYER_OUTPUT,n.Uri.file(t)),"win32"===o.platform()){const s=this.findVsDevCmdScript();if(s)return this.runNlpCompileWithVsDevCmd(s,e,d,t,a)}return new Promise(s=>{r.execFile(e,d,(e,i,r)=>{const o=i?i.trim():"",l=r?r.trim():"";i&&c.logView.addMessage("nlp.exe stdout: "+o,c.logLineType.ANALYER_OUTPUT,n.Uri.file(t)),r&&c.logView.addMessage("nlp.exe stderr: "+l,c.logLineType.ANALYER_OUTPUT,n.Uri.file(t)),e?(c.logView.addMessage(`nlp.exe ${a} error: `+e.message,c.logLineType.ANALYER_OUTPUT,n.Uri.file(t)),n.window.showErrorMessage("C++ code generation failed: "+e.message),s({ok:!1,stdout:o,stderr:l.length?l:e.message})):s({ok:!0,stdout:o,stderr:l})})})}runNlpCompileWithVsDevCmd(e,t,i,a,r="-COMPILE"){const o=s(5317),l=`call "${e}" -arch=x64 -host_arch=x64 >nul && ${this.formatCmdArg((i.length,t))} ${i.map(e=>this.formatCmdArg(e)).join(" ")}`;return new Promise(e=>{o.exec(l,{shell:"cmd.exe"},(t,s,i)=>{const o=s?s.trim():"",l=i?i.trim():"";s&&c.logView.addMessage("nlp.exe stdout: "+o,c.logLineType.ANALYER_OUTPUT,n.Uri.file(a)),i&&c.logView.addMessage("nlp.exe stderr: "+l,c.logLineType.ANALYER_OUTPUT,n.Uri.file(a)),t?(c.logView.addMessage(`nlp.exe ${r} error: `+t.message,c.logLineType.ANALYER_OUTPUT,n.Uri.file(a)),e({ok:!1,stdout:o,stderr:l.length?l:t.message})):e({ok:!0,stdout:o,stderr:l})})})}resolveCompileSupport(e){return i.__awaiter(this,void 0,void 0,function*(){if(!(yield this.hasCMake()))return(yield n.window.showErrorMessage("CMake is required to compile analyzers/KB. Install CMake and retry.","Open CMake Download"))&&n.commands.executeCommand("vscode.open",n.Uri.parse("https://cmake.org/download/")),void c.logView.addMessage("Compile failed: CMake not found in PATH.",c.logLineType.ANALYER_OUTPUT,n.Uri.file(e));const t=this.locateEngineCompileSupport();if(!t||t.missingLibraries.length>0||t.missingHeaders.length>0||0===t.includeDirs.length){const s=[];(null==t?void 0:t.missingLibraries.length)&&s.push(`libs: ${t.missingLibraries.join(", ")}`),(null==t?void 0:t.missingHeaders.length)&&s.push(`headers: ${t.missingHeaders.join(", ")}`),t&&0===t.includeDirs.length&&s.push("include roots: none found");const i=`NLP-engine compile asset is incomplete.${s.length?` Missing ${s.join("; ")}.`:""} Expected headers under include/Api/{prim,kbm,consh} and compile libraries under lib/. Run updater after publishing those assets from nlp-engine.`;return(yield n.window.showErrorMessage(i,"Run Updater"))&&l.visualText.startUpdater(!1),void c.logView.addMessage(i,c.logLineType.ANALYER_OUTPUT,n.Uri.file(e))}return t})}hasCMake(){return i.__awaiter(this,void 0,void 0,function*(){return(yield this.execCommand("cmake",["--version"])).ok})}locateEngineCompileSupport(){const e=l.visualText.engineDirectory().fsPath;if(!e.length||!r.existsSync(e))return;const t=["prim","kbm","consh","words","lite"],s="win32"===o.platform()?["icuuc78","icudt78","icuin78"]:[],i=["prim/libprim.h","prim/prim.h","prim/str.h","kbm/libkbm.h","kbm/con_.h","kbm/con_s.h","kbm/ptr.h","kbm/ptr_s.h","kbm/st.h","kbm/sym.h","kbm/sym_s.h","consh/libconsh.h","consh/cg.h"],n=new Set,c=[],u=[];for(const t of i){const s=this.findEngineHeader(e,t);s?(c.push(s),n.add(a.dirname(a.dirname(s)))):u.push(t)}const d=this.collectIncludeDirectories(e,[...n]),p=[],m=[];for(const s of t){const t=this.findEngineLibrary(e,s);t?p.push(t):m.push(s)}for(const t of s){const s=this.findEngineLibrary(e,t);s&&p.push(s)}return{engineRoot:e,includeDirs:d,libraryFiles:p,headerFiles:c,missingHeaders:u,missingLibraries:m}}collectIncludeDirectories(e,t=[]){const s=[a.join(e,"include"),a.join(e,"include","Api"),a.join(e,"include","include"),a.join(e,"include","include","Api"),a.join(e,"include","cs-include"),a.join(e,"include","Api","lite"),a.join(e,"cs","include"),a.join(e,"compile","include"),a.join(e,"lite"),...t].filter(e=>r.existsSync(e)&&r.statSync(e).isDirectory());return[...new Set(s)]}findEngineHeader(e,t){const s=t.split("/").join(a.sep),i=[a.join(e,"include"),a.join(e,"include","Api"),a.join(e,"include","include"),a.join(e,"include","include","Api"),a.join(e,"include","cs-include"),a.join(e,"cs","include"),a.join(e,"compile","include")];for(const e of i){const t=a.join(e,s);if(r.existsSync(t)&&r.statSync(t).isFile())return t}}findEngineLibrary(e,t){const s=o.platform(),i=this.expectedLibraryNames(t,s),n=[a.join(e,"lib"),a.join(e,"build","lib"),a.join(e,"build","Release"),a.join(e,"build","Debug"),a.join(e,"compile","lib")];for(const e of n){const t=this.findFileByName(e,i,4);if(t)return t}return this.findFileByName(e,i,5)}expectedLibraryNames(e,t){return"win32"===t?[`${e}.lib`]:"darwin"===t?[`lib${e}.a`,`${e}.a`,`lib${e}.dylib`,`${e}.dylib`]:[`lib${e}.a`,`${e}.a`,`lib${e}.so`,`${e}.so`]}findFileByName(e,t,s){if(!r.existsSync(e)||!r.statSync(e).isDirectory())return;const i=new Set(t.map(e=>e.toLowerCase())),n=[{dir:e,depth:0}];for(;n.length;){const e=n.shift();if(!e)continue;if(e.depth>s)continue;let t=[];try{t=r.readdirSync(e.dir,{withFileTypes:!0})}catch(e){continue}for(const s of t){const t=a.join(e.dir,s.name);if(s.isFile()){if(i.has(s.name.toLowerCase()))return t}else s.isDirectory()&&n.push({dir:t,depth:e.depth+1})}}}compileCppWithCMake(e,t,s){return i.__awaiter(this,arguments,void 0,function*(e,t,s,i=!1){if(0===this.findGeneratedCppFiles(e,i).length){const t=i?`${e}\\kb`:e;return n.window.showErrorMessage(`No generated C++ source files found under ${t}.`),!1}const l=s&&s.length?s:a.basename(e),u=a.join(e,this.sharedLibraryName(l)),d=a.join(e,".nlp-compile"),p=a.join(d,"src"),m=a.join(d,"build"),h=a.join(p,"CMakeLists.txt");r.mkdirSync(p,{recursive:!0});const f=a.join(m,"CMakeCache.txt");if(r.existsSync(f))try{r.rmSync(m,{recursive:!0,force:!0})}catch(e){}const _=a.join(p,"StdAfx.h");r.writeFileSync(_,'// Auto-generated stub. Engine-generated .cpp files include "StdAfx.h" by convention.\n#pragma once\n#ifdef _WIN32\n// Reduce footprint before pulling it in. consh/cg.h references HINSTANCE\n// (and other Windows types) without including itself.\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif\n#ifndef NOMINMAX\n#define NOMINMAX\n#endif\n#include \n// defines _TCHAR (mapped to char or wchar_t based on _UNICODE). The engine\n// header prim/str.h uses _TCHAR but does not include itself.\n#include \n#endif\n// Pull in my_tchar.h for the engine\'s _t_* stream/cstring aliases.\n#include "my_tchar.h"\n',{encoding:"utf8"});const g=this.generateCompileCMakeLists(e,l,t,p,i);r.writeFileSync(h,g,{encoding:"utf8"});const y=n.window.createOutputChannel("NLP++ Compile");y.show(!0),y.appendLine("Configuring CMake build for analyzer/KB library...");const v="win32"===o.platform()?this.findVsDevCmdScript():void 0,x=["-S",p,"-B",m],w=v?yield this.execCmakeWithVsDevCmd(v,x,e):yield this.execCommand("cmake",x,e);if(this.appendCommandOutput(y,"cmake configure",w),!w.ok)return c.logView.addMessage("CMake configure failed.",c.logLineType.ANALYER_OUTPUT,n.Uri.file(e)),n.window.showErrorMessage('CMake configure failed. See "NLP++ Compile" output panel for details.'),!1;const b=["--build",m];"win32"===o.platform()&&b.push("--config","Release");const T=v?yield this.execCmakeWithVsDevCmd(v,b,e):yield this.execCommand("cmake",b,e);if(this.appendCommandOutput(y,"cmake build",T),!T.ok&&!r.existsSync(u))return c.logView.addMessage("CMake build failed.",c.logLineType.ANALYER_OUTPUT,n.Uri.file(e)),n.window.showErrorMessage('CMake build failed. See "NLP++ Compile" output panel for details.'),!1;if(!r.existsSync(u)){const t=`CMake build finished but expected output library was not found: ${u}`;return y.appendLine(t),c.logView.addMessage(t,c.logLineType.ANALYER_OUTPUT,n.Uri.file(e)),n.window.showErrorMessage(t),!1}return y.appendLine(`Compile output: ${u}`),!0})}generateCompileCMakeLists(e,t,s,i,n=!1){const a=e=>e.replace(/\\/g,"/"),r=a(i),o=s.includeDirs.map(e=>` "${a(e)}"`).join("\n"),l=s.libraryFiles.map(e=>` "${a(e)}"`).join("\n"),c=a(e);return`cmake_minimum_required(VERSION 3.16)\nproject(nlp_generated_library LANGUAGES CXX)\n\nset(CMAKE_CXX_STANDARD 17)\nset(CMAKE_CXX_STANDARD_REQUIRED ON)\nset(CMAKE_POSITION_INDEPENDENT_CODE ON)\n\nset(ANALYZER_DIR "${c}")\nset(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${c}")\nset(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${c}")\nset(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${c}")\nforeach(OUTPUTCONFIG \${CMAKE_CONFIGURATION_TYPES})\n string(TOUPPER \${OUTPUTCONFIG} OUTPUTCONFIG_UPPER)\n set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_\${OUTPUTCONFIG_UPPER} "${c}")\n set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_\${OUTPUTCONFIG_UPPER} "${c}")\n set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_\${OUTPUTCONFIG_UPPER} "${c}")\nendforeach()\n\nfile(GLOB GENERATED_CPP ${n?`"${c}/kb/*.cpp"`:`"${c}/run/*.cpp" "${c}/kb/*.cpp"`})\nif(NOT GENERATED_CPP)\n message(FATAL_ERROR "No generated C++ sources found in ${n?"kb/":"run/ or kb/"}.")\nendif()\n\nadd_library(nlp_generated SHARED \${GENERATED_CPP})\nset_target_properties(nlp_generated PROPERTIES OUTPUT_NAME "${t}")\n\ntarget_include_directories(nlp_generated PRIVATE\n "${r}"\n "${c}"\n "${c}/run"\n "${c}/kb"\n${o}\n)\n\nset(NLP_ENGINE_LIBRARIES\n${l}\n)\n\ntarget_link_libraries(nlp_generated PRIVATE \${NLP_ENGINE_LIBRARIES})\n\nif(WIN32)\n target_compile_definitions(nlp_generated PRIVATE _CRT_SECURE_NO_WARNINGS)\n if(MSVC)\n target_compile_options(nlp_generated PRIVATE /wd4005 /FI"StdAfx.h")\n endif()\nelse()\n target_compile_options(nlp_generated PRIVATE -include StdAfx.h)\n find_library(DL_LIBRARY dl)\n if(DL_LIBRARY)\n target_link_libraries(nlp_generated PRIVATE \${DL_LIBRARY})\n endif()\nendif()\n`}appendCommandOutput(e,t,s){e.appendLine(`--- ${t} ---`),s.stdout.trim().length&&e.appendLine(s.stdout.trim()),s.stderr.trim().length&&e.appendLine(s.stderr.trim()),s.errorMessage&&e.appendLine(s.errorMessage)}execCommand(e,t,i){const n=s(5317);return new Promise(s=>{n.execFile(e,t,{cwd:i,maxBuffer:41943040},(e,t,i)=>{s(e?{ok:!1,stdout:t?t.toString():"",stderr:i?i.toString():"",errorMessage:e.message}:{ok:!0,stdout:t?t.toString():"",stderr:i?i.toString():""})})})}formatCmdArg(e){return e.includes(" ")||e.includes('"')?`"${e.replace(/"/g,'""')}"`:e}pathForNlpExe(e){return"win32"!==o.platform()?e:e.includes(" ")&&this.getWindowsShortPath(e)||e}getWindowsShortPath(e){var t;const i=s(5317),n=`for %I in ("${e.replace(/"/g,'""')}") do @echo %~sI`;try{const e=null===(t=i.execSync(`cmd.exe /d /c "${n}"`,{encoding:"utf8"}).trim().split(/\r?\n/).map(e=>e.trim()).find(e=>e.length>0))||void 0===t?void 0:t.replace(/^"(.*)"$/,"$1");if(!e||!e.length)return;if(e.includes('"'))return;return e}catch(e){return}}findGeneratedCppFiles(e,t=!1){const s=t?["kb"]:["run","kb"],i=[];for(const t of s){const s=a.join(e,t);if(!r.existsSync(s)||!r.statSync(s).isDirectory())continue;const n=r.readdirSync(s).filter(e=>e.toLowerCase().endsWith(".cpp")).map(e=>a.join(s,e));i.push(...n)}return i}findKBSourceFiles(e){const t=a.join(e,"kb","user");return r.existsSync(t)&&r.statSync(t).isDirectory()?r.readdirSync(t).filter(e=>{const t=e.toLowerCase();return t.endsWith(".kbb")||t.endsWith(".dict")}).map(e=>a.join(t,e)):[]}ensureIcuImportLibs(e,t){return i.__awaiter(this,void 0,void 0,function*(){const s=a.join(e,"lib");if(!r.existsSync(s))try{r.mkdirSync(s,{recursive:!0})}catch(e){return}const i=["icuuc78","icudt78","icuin78"].filter(e=>!r.existsSync(a.join(s,`${e}.lib`)));if(0===i.length)return;const o=this.findVsDevCmdScript();if(!o)return void c.logView.addMessage("Cannot generate ICU import libraries: VsDevCmd.bat not found. Install Visual Studio Build Tools (Desktop C++).",c.logLineType.ANALYER_OUTPUT,n.Uri.file(t));const l="arm64"===process.arch?"ARM64":"X64";for(const u of i){const i=a.join(e,`${u}.dll`);if(!r.existsSync(i)){c.logView.addMessage(`Cannot generate ${u}.lib: ${i} not found.`,c.logLineType.ANALYER_OUTPUT,n.Uri.file(t));continue}const d=a.join(s,`${u}.lib`),p=a.join(s,`${u}.def`);c.logView.addMessage(`Generating ${u}.lib from ${u}.dll (one-time per install)...`,c.logLineType.ANALYER_OUTPUT,n.Uri.file(t));const m=yield this.runDumpbinExports(o,i);if(0===m.length){c.logView.addMessage(`Failed to enumerate exports of ${u}.dll via dumpbin.`,c.logLineType.ANALYER_OUTPUT,n.Uri.file(t));continue}const h=`LIBRARY ${u}\nEXPORTS\n`+m.map(e=>` ${e}`).join("\n")+"\n";try{r.writeFileSync(p,h,{encoding:"utf8"})}catch(e){c.logView.addMessage(`Failed to write ${p}: ${e&&e.message?e.message:String(e)}`,c.logLineType.ANALYER_OUTPUT,n.Uri.file(t));continue}(yield this.runLibFromDef(o,p,d,l))?c.logView.addMessage(`Generated ${d}`,c.logLineType.ANALYER_OUTPUT,n.Uri.file(t)):c.logView.addMessage(`lib.exe failed to produce ${d}.`,c.logLineType.ANALYER_OUTPUT,n.Uri.file(t))}})}runDumpbinExports(e,t){const i=s(5317),n=`call "${e}" -arch=x64 -host_arch=x64 >nul && dumpbin /exports ${this.formatCmdArg(t)}`;return new Promise(e=>{i.exec(n,{shell:"cmd.exe",maxBuffer:41943040},(t,s)=>{e(t?[]:this.parseDumpbinExports(s||""))})})}parseDumpbinExports(e){const t=e.split(/\r?\n/),s=[];let i=!1;for(const e of t){const t=e.replace(/\s+$/g,"");if(!t.length){if(i&&s.length>0)break;continue}if(!i){/^\s+ordinal\b/i.test(t)&&/\bname\b/i.test(t)&&(i=!0);continue}const n=t.match(/^\s*\d+\s+[0-9A-Fa-f]+\s+[0-9A-Fa-f]+\s+(\S+)/);if(!n)break;s.push(n[1])}return s}execCmakeWithVsDevCmd(e,t,i){const n=s(5317),a=`call "${e}" -arch=x64 -host_arch=x64 >nul && cmake ${t.map(e=>this.formatCmdArg(e)).join(" ")}`;return new Promise(e=>{n.exec(a,{cwd:i,shell:"cmd.exe",maxBuffer:41943040},(t,s,i)=>{const n=s?s.toString():"",a=i?i.toString():"";e(t?{ok:!1,stdout:n,stderr:a,errorMessage:t.message}:{ok:!0,stdout:n,stderr:a})})})}runLibFromDef(e,t,i,n){const a=s(5317),o=`call "${e}" -arch=x64 -host_arch=x64 >nul && lib ${[`/def:${t}`,`/machine:${n}`,`/out:${i}`].map(e=>this.formatCmdArg(e)).join(" ")}`;return new Promise(e=>{a.exec(o,{shell:"cmd.exe",maxBuffer:41943040},t=>{e(!t&&r.existsSync(i))})})}findVsDevCmdScript(){if("win32"!==o.platform())return;const e=s(5317),t=process.env["ProgramFiles(x86)"]||"C:\\Program Files (x86)",i=a.join(t,"Microsoft Visual Studio","Installer","vswhere.exe");try{if(r.existsSync(i)){const t=e.execFileSync(i,["-latest","-prerelease","-products","*","-requires","Microsoft.VisualStudio.Component.VC.Tools.x86.x64","-property","installationPath"],{encoding:"utf8"}).trim();if(t.length){const e=a.join(t,"Common7","Tools","VsDevCmd.bat");if(r.existsSync(e))return e}}}catch(e){}const n=["BuildTools","Community","Professional","Enterprise"],l=["18","2022","2019","17","16"],c=[a.join(process.env.ProgramFiles||"C:\\Program Files","Microsoft Visual Studio"),a.join(t,"Microsoft Visual Studio")];for(const e of c)for(const t of l)for(const s of n){const i=a.join(e,t,s,"Common7","Tools","VsDevCmd.bat");if(r.existsSync(i))return i}}sharedLibraryName(e){return e+this.sharedLibraryExt()}sharedLibraryExt(){const e=o.platform();return"win32"===e?".dll":"darwin"===e?".dylib":".so"}findFullKBFiles(e){return r.existsSync(e)&&r.statSync(e).isDirectory()?r.readdirSync(e).filter(e=>{const t=e.toLowerCase();if(!t.endsWith(".dict")&&!t.endsWith(".kbb"))return!1;const s=e.substring(0,e.lastIndexOf("."));return this.stemEndsWithFull(s)}).map(t=>a.join(e,t)):[]}findSpecPyFiles(e){const t=a.join(e,"spec");return r.existsSync(t)&&r.statSync(t).isDirectory()?r.readdirSync(t).filter(e=>e.toLowerCase().endsWith(".py")).map(e=>a.join(t,e)):[]}stemEndsWithFull(e){const t=e.toLowerCase();if(!t.endsWith("full"))return!1;if(4===t.length)return!0;const s=t.charAt(t.length-5);return"-"===s||"_"===s}compileCppOnCloud(e,t,s,u){return i.__awaiter(this,void 0,void 0,function*(){var i,d;const p=(n.workspace.getConfiguration("compile").get("dispatcherUrl")||"https://nlp-compile-dispatcher.dehilster.workers.dev").replace(/\/$/,"");if(!p)return n.window.showErrorMessage('compile.dispatcherUrl is not set. Configure the compile service URL or switch compile.mode to "local".'),!1;const m=(l.visualText.exeEngineVersion||l.visualText.repoEngineVersion||"").trim();if(!m)return n.window.showErrorMessage("Unable to determine engine version. Run the updater to refresh nlp.exe before using cloud compile."),!1;const h=m.startsWith("v")?m:`v${m}`,f=this.cloudPlatformKey();if(!f)return n.window.showErrorMessage(`Cloud compile not supported on platform: ${o.platform()}/${process.arch}.`),!1;if(u.report({message:`Verifying engine release ${h}...`}),!(yield this.verifyEngineReleaseExists(h)))return n.window.showErrorMessage(`Engine release ${h} not found on GitHub (VisualText/nlp-engine). The cloud compile service can only build against published engine releases. Update your installed nlp.exe to a published release, or switch compile.mode to "local".`),!1;const _=n.Uri.file(e),g=r.mkdtempSync(a.join(o.tmpdir(),"nlp-cloud-compile-"));try{this.stageCloudPayload(e,g,s),u.report({message:"Packaging sources..."});const i=a.join(g,"_payload.tar.gz");yield this.tarGzDirectory(g,i);const o=yield this.sha256File(i),d={schemaVersion:1,engineVersion:h,platform:f,analyzerName:t,kbOnly:s,sourcesHash:`sha256:${o}`,extensionVersion:l.visualText.version};u.report({message:"Uploading to compile service..."});const m=new FormData;m.append("manifest",JSON.stringify(d));const y=r.readFileSync(i);m.append("payload",new Blob([y],{type:"application/gzip"}),"payload.tar.gz");const v=yield fetch(`${p}/build`,{method:"POST",body:m});if(!v.ok){const e=yield v.text();return n.window.showErrorMessage(`Compile service rejected request: ${v.status} ${e}`),!1}const x=yield v.json();let w=x.artifactUrl;if(!x.cached){const t=`Building on ${f}...`,s=Date.now();u.report({message:t});const i=setInterval(()=>{const e=Math.floor((Date.now()-s)/1e3),i=Math.floor(e/60),n=e%60;u.report({message:`${t} ${i}:${n.toString().padStart(2,"0")}`})},1e3);try{const t=yield this.pollCloudJob(p,x.jobId,e);if("done"!==t.status||!t.artifactUrl)return!1;w=t.artifactUrl}finally{clearInterval(i)}}u.report({message:"Downloading library..."});const b=this.sharedLibraryName(t),T=a.join(e,b);return yield this.downloadToFile(w,T),c.logView.addMessage(`Cloud compile output: ${T}`,c.logLineType.ANALYER_OUTPUT,_),!0}catch(e){return c.logView.addMessage(`Cloud compile failed: ${null!==(i=null==e?void 0:e.message)&&void 0!==i?i:e}`,c.logLineType.ANALYER_OUTPUT,_),n.window.showErrorMessage(`Cloud compile failed: ${null!==(d=null==e?void 0:e.message)&&void 0!==d?d:e}`),!1}finally{try{r.rmSync(g,{recursive:!0,force:!0})}catch(e){}}})}verifyEngineReleaseExists(e){return i.__awaiter(this,void 0,void 0,function*(){const t=`https://api.github.com/repos/VisualText/nlp-engine/releases/tags/${encodeURIComponent(e)}`,s=yield fetch(t,{headers:{Accept:"application/vnd.github+json"}});if(404===s.status)return!1;if(!s.ok)throw new Error(`GitHub release lookup returned ${s.status}`);return!0})}cloudPlatformKey(){switch(o.platform()){case"win32":return"windows";case"darwin":return"arm64"===process.arch?"macos-arm64":"macos-x86_64";case"linux":return this.linuxCloudPlatformKey();default:return}}linuxCloudPlatformKey(){try{const e=r.readFileSync("/etc/os-release","utf8").match(/^VERSION_ID="?([^"\n]+)"?/m);if(e){if("20.04"===e[1])return"linux-20.04";if("22.04"===e[1])return"linux-22.04"}}catch(e){}return"linux-latest"}stageCloudPayload(e,t,s){const i=s?["kb"]:["run","kb"];for(const s of i){const i=a.join(e,s);if(!r.existsSync(i))continue;const n=a.join(t,s);r.mkdirSync(n,{recursive:!0});for(const e of r.readdirSync(i)){const t=e.toLowerCase();(t.endsWith(".cpp")||t.endsWith(".h"))&&r.copyFileSync(a.join(i,e),a.join(n,e))}}r.writeFileSync(a.join(t,"StdAfx.h"),'#pragma once\n#ifdef _WIN32\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif\n#ifndef NOMINMAX\n#define NOMINMAX\n#endif\n#include \n#include \n#endif\n#include "my_tchar.h"\n',{encoding:"utf8"})}tarGzDirectory(e,t){const i=s(5317);return new Promise((s,n)=>{const a=i.spawn("tar",["-czf",t,"-C",e,"."],{stdio:"inherit"});a.on("error",n),a.on("exit",e=>0===e?s():n(new Error(`tar exited ${e}`)))})}sha256File(e){const t=s(6982);return new Promise((s,i)=>{const n=t.createHash("sha256"),a=r.createReadStream(e);a.on("data",e=>n.update(e)),a.on("end",()=>s(n.digest("hex"))),a.on("error",i)})}pollCloudJob(e,t,s){return i.__awaiter(this,void 0,void 0,function*(){var i,a;const r=n.Uri.file(s),o=Date.now()+18e5;let l=2e3;for(;Date.now()setTimeout(e,l)),l=Math.min(l+1e3,8e3);const s=yield fetch(`${e}/jobs/${encodeURIComponent(t)}`);if(!s.ok)continue;const o=yield s.json();if("done"===o.status||"failed"===o.status){if("failed"===o.status){if(null===(i=o.errors)||void 0===i?void 0:i.length)for(const e of o.errors){const t=e.nlpSourceFile?`${e.nlpSourceFile}:${e.nlpSourceLine}`:`${e.file}:${e.line}${e.column?":"+e.column:""}`;c.logView.addMessage(`${e.severity} ${t}: ${e.message}`,c.logLineType.ANALYER_OUTPUT,r)}o.buildLogUrl&&c.logView.addMessage(`Build log: ${o.buildLogUrl}`,c.logLineType.ANALYER_OUTPUT,r),n.window.showErrorMessage((null===(a=o.errors)||void 0===a?void 0:a.length)?`Cloud compile failed with ${o.errors.length} error(s). See output.`:"Cloud compile failed. See output for build log link.")}return o}}return n.window.showErrorMessage("Cloud compile timed out."),{status:"timeout"}})}downloadToFile(e,t){return i.__awaiter(this,void 0,void 0,function*(){const s=yield fetch(e);if(!s.ok||!s.body)throw new Error(`download ${e} -> ${s.status}`);const i=Buffer.from(yield s.arrayBuffer());r.mkdirSync(a.dirname(t),{recursive:!0}),r.writeFileSync(t,i)})}}t.NLPCompile=p},5720(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dirfuncs=t.getFileTypes=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=s(4328),l=s(9621),c=s(4792);var u,d;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.FILES=1]="FILES",e[e.FILES_DIRS=2]="FILES_DIRS",e[e.DIRS=3]="DIRS"}(u||(t.getFileTypes=u={})),function(e){function t(t){const s=new Array;if(e.isDir(t.fsPath)){const e=r.readdirSync(t.fsPath);for(const i of e)if(!i.startsWith(".")){const e=a.join(t.fsPath,i);try{r.statSync(e).isDirectory()&&s.push(n.Uri.file(e))}catch(e){console.error(e)}}}return s}function i(e){try{return r.mkdirSync(e),!0}catch(t){n.window.showInformationMessage("Error creating folder "+e+": "+t.message)}return!1}function d(e){try{return r.unlinkSync(e),!0}catch(t){n.window.showInformationMessage("Error deleting file "+e+": "+t.message)}return!1}e.copyDirectory=function(e,t){const n=s(5206);return!(!r.existsSync(t)&&!i(t)||(n(e,t,function(e){if(e)return!1}),0))},e.copyFile=function(e,t){if(!r.existsSync(e))return n.window.showInformationMessage("copyFile from does not exist: "+e),!1;try{if(r.statSync(e).isFile())return r.copyFileSync(e,t),!0}catch(s){n.window.showInformationMessage("Could not copy file "+e+" to "+t+" - "+s.message)}return!1},e.changeMod=function(e,t){try{return r.chmodSync(e,t),!0}catch(t){n.window.showInformationMessage("Could not chmod on "+e+" - "+t.message)}return!1},e.sameParentDirectory=function(e,t){return 0==a.dirname(e.fsPath).localeCompare(a.dirname(t.fsPath))},e.isDir=function(e){if(e.length<=1)return!1;try{if(r.statSync(e).isDirectory())return!0}catch(e){}return!1},e.rename=function(e,t){try{return r.renameSync(e,t),!0}catch(s){n.window.showInformationMessage("Could not rename file "+e+" to "+t+" - "+s.message)}return!1},e.findFolder=function e(s,i){const r=a.dirname(s.fsPath);if(0==a.basename(r).localeCompare(i))return n.Uri.file(r);if(r&&(null==r?void 0:r.length)>1){const t=e(n.Uri.file(r),i);if(t.fsPath.length>2)return t}const o=t(s);for(const e of o)if(0==a.basename(e.fsPath).localeCompare(i))return e;return n.Uri.file("")},e.analyzerFolderCount=function(e){let s=0;const i=t(e);for(const e of i){const i=t(e);for(const e of i)if(0==a.basename(e.fsPath).localeCompare(l.visualText.ANALYZER_SEQUENCE_FOLDER)){const t=a.join(e.fsPath,l.visualText.ANALYZER_SEQUENCE_FILE);r.existsSync(t)&&s++}}return s},e.getDirectories=t,e.getDirectoryTypes=function(e){const t=Array();if(!r.existsSync(e.fsPath))return t;const s=r.readdirSync(e.fsPath);for(const i of s)if(!i.startsWith(".")){const s=a.join(e.fsPath,i);try{const e=r.statSync(s).isDirectory()?n.FileType.Directory:n.FileType.File;t.push({uri:n.Uri.file(s),type:e,hasLogs:!1})}catch(e){console.error(e)}}return t},e.fileCount=function t(s){const i=r.readdirSync(s.fsPath,{withFileTypes:!0});let o=0;for(const r of i)r.isFile()?o++:r.isDirectory()&&!e.directoryIsLog(r.name)&&(o+=t(n.Uri.file(a.join(s.fsPath,r.name))));return o},e.getFiles=function e(t,s=[],i=u.FILES,o=!1){const l=new Array;if(!r.existsSync(t.fsPath))return l;const c=r.readdirSync(t.fsPath);for(const d of c)if(!d.startsWith(".")){const c=a.join(t.fsPath,d),p=a.extname(c),m=r.statSync(c);if((i==u.DIRS&&m.isDirectory()||0==s.length||s.includes(p))&&l.push(n.Uri.file(c)),m.isDirectory()&&o){const t=e(n.Uri.file(d),s,i,o);for(const e of t)l.push(e)}}return l},e.makeDir=i,e.writeFile=function(e,t){const s=a.dirname(e);if(!r.existsSync(s))try{r.mkdirSync(s)}catch(e){return n.window.showInformationMessage("Error creating directory "+s+": "+e.message),!1}try{return r.writeFileSync(e,t,"utf-8"),!0}catch(t){n.window.showInformationMessage("Error writing file "+e+": "+t.message)}return!1},e.getDirPath=function(e){try{const t=r.statSync(e);if(t.isDirectory())return e;if(t.isFile())return a.dirname(e)}catch(t){n.window.showInformationMessage("Error reading file stats on "+e+": "+t.message)}return""},e.delFile=d,e.delDir=function(e){if(!r.existsSync(e)||e.length<=2)return!1;try{return(0,o.deleteSync)(e,{force:!0}),!0}catch(t){n.window.showInformationMessage("Error deleting folder "+e+": "+t.message)}return!1},e.deleteFiles=function(e,t=[]){const s=new Array,i=r.readdirSync(e.fsPath);for(const s of i)if(!s.startsWith(".")){const i=a.join(e.fsPath,s),n=a.extname(i);r.statSync(i).isDirectory()||0!=t.length&&!t.includes(n)||d(i)}return s},e.emptyDir=function(e){if(!r.existsSync(e)||e.length<=2)return!1;try{return(0,o.deleteSync)(e,{force:!0}),r.mkdirSync(e),!0}catch(t){n.window.showInformationMessage("Error emptying folder "+e+": "+t.message)}return!1},e.analyzerHasLogFiles=function(t){const s=l.visualText.analyzer.constructDir(t,c.anaSubDir.OUTPUT);if(r.existsSync(s.fsPath)&&e.directoryHasFiles(s))return!0;const i=l.visualText.analyzer.constructDir(t,c.anaSubDir.LOGS);if(r.existsSync(i.fsPath)&&e.directoryHasFiles(i))return!0;const n=l.visualText.analyzer.constructDir(t,c.anaSubDir.INPUT);return!!r.existsSync(n.fsPath)&&e.hasLogDirs(n,!1)},e.directoryHasFiles=function(e){return!!r.readdirSync(e.fsPath).length},e.hasLogDirs=function(t,s){if(!e.isDir(t.fsPath))return e.fileHasLog(t.fsPath);{const s=e.getDirectoryTypes(t);for(const t of s)if(t.type==n.FileType.Directory){if(l.visualText.isAnalyzerDirectory(t.uri)&&e.analyzerHasLogFiles(t.uri))return!0;if(e.directoryIsLog(t.uri.fsPath))return!0;if(e.hasLogDirs(t.uri,!1))return!0}}return!1},e.hasFile=function(t,s){if(e.isDir(t.fsPath)){const e=r.readdirSync(t.fsPath,{withFileTypes:!0});for(const t of e)if(t.name==s)return!0}return!1},e.hasFiles=function(t){if(e.isDir(t.fsPath)){const e=r.readdirSync(t.fsPath,{withFileTypes:!0});if(e&&e.length>0)return!0}return!1},e.hasDirs=function(t){if(e.isDir(t.fsPath)){const s=e.getDirectoryTypes(t);for(const e of s)if(e.type==n.FileType.Directory&&!l.visualText.isAnalyzerDirectory(e.uri))return!0}return!1},e.parentHasOtherDirs=function(t){const s=a.dirname(t.fsPath),i=a.basename(t.fsPath);if(s.length){const t=e.getDirectoryTypes(n.Uri.file(s));for(const s of t)if(s.type==n.FileType.Directory&&a.basename(s.uri.fsPath)!=i&&!l.visualText.isAnalyzerDirectory(s.uri)&&!s.uri.fsPath.endsWith(l.visualText.TEST_SUFFIX)&&!e.directoryIsLog(s.uri.fsPath))return!0}return!1},e.directoryIsLog=function(e){return e.endsWith(l.visualText.LOG_SUFFIX)},e.fileHasLog=function(t){return e.isDir(t+l.visualText.LOG_SUFFIX)},e.needToCopy=function(e,t){if(!r.existsSync(t))return!0;try{return r.readFileSync(e,"utf-8")!==r.readFileSync(t,"utf-8")}catch(e){return console.error("Error reading files:",e),!1}}}(d||(t.dirfuncs=d={}))},7918(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FileOps=t.fileOps=t.fileOneOff=t.fileOpRefresh=t.fileOpType=t.fileOpStatus=t.fileOperation=t.fileQueueStatus=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(9896)),r=i.__importStar(s(6928)),o=s(9621),l=s(5720),c=s(5603),u=s(7805);var d,p,m,h,f,_;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.RUNNING=1]="RUNNING",e[e.DONE=2]="DONE"}(d||(t.fileQueueStatus=d={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.COPY=1]="COPY",e[e.DELETE=2]="DELETE",e[e.RENAME=3]="RENAME",e[e.BREAK=4]="BREAK",e[e.MKDIR=5]="MKDIR",e[e.NEWFILE=6]="NEWFILE",e[e.APPEND=7]="APPEND",e[e.ANASEL=8]="ANASEL",e[e.ANALOAD=9]="ANALOAD",e[e.ANAFOLDER=10]="ANAFOLDER",e[e.ANAFILE=11]="ANAFILE",e[e.DONE=12]="DONE"}(p||(t.fileOperation=p={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.RUNNING=1]="RUNNING",e[e.FAILED=2]="FAILED",e[e.DONE=3]="DONE"}(m||(t.fileOpStatus=m={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.FILE=1]="FILE",e[e.DIRECTORY=2]="DIRECTORY"}(h||(t.fileOpType=h={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TEXT=1]="TEXT",e[e.ANALYZER=2]="ANALYZER",e[e.KB=3]="KB",e[e.OUTPUT=4]="OUTPUT",e[e.ANALYZERS=5]="ANALYZERS"}(f||(t.fileOpRefresh=f={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.PAT_TO_NLP=1]="PAT_TO_NLP"}(_||(t.fileOneOff=_={})),t.FileOps=class{constructor(){this.stopAllFlag=!1,this.queueStrs=["UNKNOWN","RUNNING","DONE"],this.opStrs=["UNKNOWN","COPY","DELETE","RENAME","BREAK","MKDIR","NEWFILE","APPEND","ANASEL","ANALOAD","ANAFOLDER","ANAFILE","DONE"],this.opStatusStrs=["UNKNOWN","RUNNING","FAILED","DONE"],this.timerStatus=d.UNKNOWN,this.opsQueue=new Array,this.refreshQueue=new Array,this.timerCounter=0,this.timerID=0,this.fileOpTypeStrs=["UNKNOWN","FILE","DIRECTORY"],this.seqRow=0}startFileOps(e=100){0==this.timerID&&(c.logView.clearLogs(!1),this.timerCounter=0,o.visualText.debugMessage("Starting file operations...",c.logLineType.FILE_OP),this.timerID=+setInterval(this.fileTimer,e))}stopAll(){o.visualText.fileOps.stopAllFlag=!0}addFileOperation(e,t,s,i,o="",c=""){let u=h.UNKNOWN;if(l.dirfuncs.isDir(e.fsPath)?u=h.DIRECTORY:a.existsSync(e.fsPath)&&(u=h.FILE),u!=h.DIRECTORY||i!=p.RENAME&&i!=p.BREAK&&i!=p.APPEND)this.opsQueue.push({uriFile1:e,uriFile2:t,operation:i,status:m.UNKNOWN,type:u,oneOff:_.UNKNOWN,extension1:o,extension2:c,refreshes:s,display:!0});else{const a=l.dirfuncs.getFiles(e);if(i==p.RENAME)if(o.length&&c.length){for(const i of a)if(o.length&&c.length&&!i.fsPath.endsWith(c)&&i.fsPath.endsWith(o)){const a=n.Uri.file(r.join(e.fsPath,r.basename(i.fsPath))),o=n.Uri.file(r.join(t.fsPath,r.parse(i.fsPath).name+"."+c));this.opsQueue.push({uriFile1:a,uriFile2:o,operation:p.RENAME,status:m.UNKNOWN,type:h.DIRECTORY,oneOff:_.UNKNOWN,extension1:"",extension2:"",refreshes:s,display:!0})}}else this.opsQueue.push({uriFile1:e,uriFile2:t,operation:p.RENAME,status:m.UNKNOWN,type:h.DIRECTORY,oneOff:_.UNKNOWN,extension1:"",extension2:"",refreshes:s,display:!0});else if(i==p.BREAK){const i=+o,l=Math.ceil(a.length/i),c=l.toString().length,u=r.basename(e.fsPath);let d=0;for(let o=0;o=a.length);e++){const e=a[d++],t=r.basename(e.fsPath),i=r.join(l,t);this.opsQueue.push({uriFile1:e,uriFile2:n.Uri.file(i),operation:p.RENAME,status:m.UNKNOWN,type:h.FILE,oneOff:_.UNKNOWN,extension1:"",extension2:"",refreshes:s,display:!1})}}}else if(i==p.APPEND){const i=l.dirfuncs.getFiles(e);for(const e of i)e.fsPath==t.fsPath?l.dirfuncs.delDir(t.fsPath):e.fsPath.endsWith(o)&&this.opsQueue.push({uriFile1:e,uriFile2:t,operation:p.APPEND,status:m.UNKNOWN,type:h.FILE,oneOff:_.UNKNOWN,extension1:o,extension2:c,refreshes:s,display:!0})}}return this.opsQueue[this.opsQueue.length-1]}zeroStr(e,t){const s=e.toString();let i=s;const n=t-s.length;if(n>0)for(let e=0;e{t&&(e.status=m.FAILED,e.display&&o.visualText.debugMessage("DIRECTORY COPY FAILED: "+e.uriFile2.fsPath,c.logLineType.FILE_OP)),o.visualText.fileOps.doneRefresh(e),e.display&&o.visualText.debugMessage("DIRECTORY COPIED TO: "+e.uriFile2.fsPath,c.logLineType.FILE_OP)})):l.dirfuncs.copyFile(e.uriFile1.fsPath,e.uriFile2.fsPath)?(o.visualText.fileOps.doneRefresh(e),e.display&&o.visualText.debugMessage("FILE COPIED TO: "+e.uriFile2.fsPath,c.logLineType.FILE_OP)):(e.status=m.FAILED,e.display&&o.visualText.debugMessage("FILE COPY FAILED: "+e.uriFile2.fsPath,c.logLineType.FILE_OP)));break;case p.DELETE:e.status==m.UNKNOWN&&(e.type==h.DIRECTORY?l.dirfuncs.delDir(e.uriFile1.fsPath)?(o.visualText.fileOps.doneRefresh(e),e.display&&o.visualText.debugMessage("DIRECTORY DELETED: "+e.uriFile1.fsPath,c.logLineType.FILE_OP)):(e.status=m.FAILED,e.display&&o.visualText.debugMessage("DIRECTORY DELETE FAILED: "+e.uriFile2.fsPath,c.logLineType.FILE_OP)):l.dirfuncs.delFile(e.uriFile1.fsPath)?(o.visualText.fileOps.doneRefresh(e),e.display&&o.visualText.debugMessage("FILE DELETED: "+e.uriFile1.fsPath,c.logLineType.FILE_OP)):(e.status=m.FAILED,e.display&&o.visualText.debugMessage("FILE DELETE FAILED: "+e.uriFile2.fsPath,c.logLineType.FILE_OP)));break;case p.RENAME:a.renameSync(e.uriFile1.fsPath,e.uriFile2.fsPath),o.visualText.fileOps.doneRefresh(e),e.display&&o.visualText.debugMessage("RENAMED: "+e.uriFile1.fsPath+" to "+e.uriFile2.fsPath,c.logLineType.FILE_OP);break;case p.MKDIR:a.mkdirSync(e.uriFile1.fsPath),o.visualText.fileOps.doneRefresh(e),e.display&&o.visualText.debugMessage("NEW DIR: "+e.uriFile1.fsPath,c.logLineType.FILE_OP);break;case p.NEWFILE:a.writeFileSync(e.uriFile1.fsPath,e.extension1),o.visualText.fileOps.doneRefresh(e),e.display&&o.visualText.debugMessage("NEW FILE: "+e.uriFile1.fsPath,c.logLineType.FILE_OP);break;case p.APPEND:{const t=a.readFileSync(e.uriFile1.fsPath,"utf8");a.appendFileSync(e.uriFile2.fsPath,t),o.visualText.fileOps.doneRefresh(e),e.display&&o.visualText.debugMessage("APPEND: "+e.uriFile1.fsPath+" => "+e.uriFile2.fsPath,c.logLineType.FILE_OP);break}case p.ANASEL:o.visualText.analyzer.seqFile.getPassFiles(e.uriFile1.fsPath,!0),o.visualText.fileOps.seqRow=Number(e.extension1),o.visualText.fileOps.doneRefresh(e);break;case p.ANALOAD:o.visualText.analyzer.setWorkingDir(e.uriFile2),o.visualText.analyzer.seqFile.getPassFiles(e.uriFile2.fsPath,!0),o.visualText.fileOps.seqRow=o.visualText.analyzer.seqFile.getLastItem().row,o.visualText.fileOps.doneRefresh(e);break;case p.ANAFILE:o.visualText.fileOps.seqRow=o.visualText.analyzer.seqFile.insertPass(o.visualText.fileOps.seqRow,e.uriFile2),o.visualText.fileOps.doneRefresh(e);break;case p.ANAFOLDER:"folder"==e.extension2?o.visualText.analyzer.seqFile.getPassFiles(e.uriFile2.fsPath,!0):o.visualText.analyzer.seqFile.renumberPasses(),o.visualText.fileOps.seqRow,o.visualText.fileOps.seqRow=o.visualText.analyzer.seqFile.insertNewFolderPass(o.visualText.fileOps.seqRow,e.extension1,e.extension2),o.visualText.fileOps.doneRefresh(e)}break;case d.DONE:clearInterval(o.visualText.fileOps.timerID),o.visualText.fileOps.timerID=0,o.visualText.fileOps.opsQueue=[],c.logView.updateTitle(""),o.visualText.fileOps.stopAllFlag?o.visualText.debugMessage("FILE PROCESSING CANCELED BY USER",c.logLineType.FILE_OP):o.visualText.debugMessage("FILE PROCESSING COMPLETE",c.logLineType.FILE_OP);for(const e of o.visualText.fileOps.refreshQueue)e==f.TEXT&&n.commands.executeCommand("textView.refreshAll"),e==f.ANALYZERS&&n.commands.executeCommand("analyzerView.refreshAll"),e==f.ANALYZER&&n.commands.executeCommand("sequenceView.refreshAll"),e==f.KB&&n.commands.executeCommand("kbView.refreshAll"),e==f.OUTPUT&&n.commands.executeCommand("outputView.refreshAll");e.oneOff===_.PAT_TO_NLP&&(u.analyzerView.converting=!1)}}doneRefresh(e){e.status=m.DONE;for(const t of e.refreshes)this.refreshQueue.includes(t)||this.refreshQueue.push(t)}}},4987(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FindFile=t.findFiles=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=s(6951),o=s(5720),l=s(9621);t.FindFile=class{constructor(){this.textFile=new r.TextFile,this.finds=[],this.dirPath=""}getMatches(){return this.finds}searchSequenceFiles(e,t){this.finds=[];const s=l.visualText.analyzer.seqFile.getPassFileUris(t),i=this.escapeRegExp(e);for(const t of s)this.searchFile(t,e,i,60,!1);return!1}searchFiles(e,t,s=[],i=0,r=!1,l=!0){0==i&&(this.finds=[]);const c=o.dirfuncs.getFiles(e),u=this.escapeRegExp(t);for(const i of c){if(!r&&o.dirfuncs.directoryIsLog(i.fsPath)||r&&i.fsPath.toLowerCase().indexOf("func")<0)continue;if(s.length){let e=!1;for(const t of s)if(i.fsPath.endsWith(t)){e=!0;break}if(!e)continue}const c=a.basename(i.fsPath),d=n.Uri.file(a.join(e.fsPath,c));this.searchFile(d,t,u,60,l)}const d=o.dirfuncs.getDirectories(e);for(const e of d)o.dirfuncs.directoryIsLog(e.fsPath)||this.searchFiles(e,t,s,i+1);return!!this.finds.length}searchFile(e,t,s,i,r=!0){if(o.dirfuncs.isDir(e.fsPath))return;this.textFile.setFile(e);const c=a.basename(e.fsPath),u=n.workspace.getConfiguration("nlp"),d=u.get("findCaseSensitive",!1),p=u.get("findWholeWord",!1),m=new RegExp(p?"\\b"+s+"\\b":s,d?"":"i"),h=t.length,f=l.visualText.analyzer.seqFile,_=a.parse(c).name,g=f.getPasses().find(e=>e.passNum>0&&e.name==_);let y="";if(g?y=(g.active?"":"I ")+`${g.passNum} `:a.dirname(e.fsPath)==f.getSpecDirectory().fsPath&&/\.(nlp|rec|pat)$/i.test(c)&&(y="O "),this.textFile.getText().search(m)>=0){let t=0;for(let s of this.textFile.getLines()){const n=s.search(m);if(n>=0){if(s.length+h>i){const e=i/2;s=s.length-ne?s.substring(n-e,i+h):s.substring(0,i)}let o=s;r&&(o=s.replace(m,e=>` <<${e}>> `));const l=`${y}${c} [${t} ${n}] ${s}`,u=`${y}${a.basename(e.fsPath)} ${o}`;this.finds.push({uri:e,label:l,line:s,lineNum:t,pos:Number.parseInt(n),highlighted:u})}t++}}}escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}}},2564(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FindView=t.findView=t.FindTreeDataProvider=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=s(9621);class o{refresh(){this._onDidChangeTreeData.fire()}constructor(){this._onDidChangeTreeData=new n.EventEmitter,this.onDidChangeTreeData=this._onDidChangeTreeData.event}getTreeItem(e){let t="file.svg";return(e.uri.fsPath.endsWith(".nlp")||e.uri.fsPath.endsWith(".pat"))&&(t="gear.svg"),{label:e.highlighted,resourceUri:e.uri,collapsibleState:void 0,command:{command:"findView.openFile",arguments:[e],title:"Open Found File"},iconPath:{light:n.Uri.file(a.join(__filename,"..","..","resources","light",t)),dark:n.Uri.file(a.join(__filename,"..","..","resources","dark",t))}}}getChildren(e){return t.findView.getFinds()}}t.FindTreeDataProvider=o;class l{constructor(e){this.filepath=n.Uri.file(""),this.line=0,this.pos=-1,this.text="",this.findItems=[],this.searchWord="";const t=new o;this.findView=n.window.createTreeView("findView",{treeDataProvider:t}),n.commands.registerCommand("findView.refreshAll",()=>t.refresh()),n.commands.registerCommand("findView.openFile",e=>this.openFile(e)),n.commands.registerCommand("findView.updateTitle",()=>this.updateTitle()),n.commands.registerCommand("findView.clearAll",()=>this.clearAll())}static attach(e){return t.findView||(t.findView=new l(e)),t.findView}getFinds(){return this.findItems}clearAll(){this.findItems=[],this.setSearchWord(""),this.updateTitle(),n.commands.executeCommand("findView.refreshAll")}updateTitle(){if(this.searchWord){const e=this.searchWord;this.findView.title=`FIND RESULTS: (${e})`}else this.findView.title="FIND RESULTS"}setSearchWord(e){this.searchWord=e}loadFinds(e,t){this.findItems=t,0==t.length?t.push({uri:n.Uri.file(""),label:"NOT FOUND: "+e,line:"",lineNum:0,pos:0,highlighted:""}):1==t.length&&this.openFile(t[0]),this.searchWord=e}openFile(e){r.visualText.colorizeAnalyzer(),n.window.showTextDocument(e.uri).then(t=>{const s=new n.Position(e.lineNum,e.pos),i=new n.Position(e.lineNum,e.pos+this.searchWord.length);t.selections=[new n.Selection(s,i)];const a=new n.Range(s,s);t.revealRange(a)})}}t.FindView=l},2441(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatCodeRegion=function(e,t){const s=t.eol,c=function(e){const t=[];let s="",n=[];for(const r of e)r.kind!==i.TokenKind.Newline?(s+=r.text,a(r)||n.push(r)):(t.push({text:s,nonTrivial:n}),s="",n=[]);return t.push({text:s,nonTrivial:n}),t}((0,n.tokenize)(e)),u=[];let d=0,p=!1;for(const e of c){const s=e.nonTrivial;if(0===s.length){u.push("");continue}let n=0;for(;n1&&h.endsWith("{")){const e=h.slice(0,-1).replace(/[ \t]+$/,"");u.push(o(m,t)+e),u.push(o(m,t)+"{")}else u.push(o(m,t)+h);for(const e of s)l(e,"{")?d++:l(e,"}")&&(d=Math.max(0,d-1));const _=s[0],g=s.some(e=>l(e,"{")),y=f.kind===i.TokenKind.Punct&&";"===f.text;_.kind!==i.TokenKind.Word||!r.has(_.text)||g||y||(p=!0)}return u.join(s)};const i=s(3907),n=s(9539);function a(e){return e.kind===i.TokenKind.Whitespace||e.kind===i.TokenKind.Newline}const r=new Set(["if","else","while"]);function o(e,t){return e<=0?"":t.useTabs?"\t".repeat(e):" ".repeat(e*t.tabSize)}function l(e,t){return e.kind===i.TokenKind.Punct&&e.text===t}},566(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.registerFormatter=function(e){e.subscriptions.push(n.languages.registerDocumentFormattingEditProvider("nlp",l),n.languages.registerDocumentRangeFormattingEditProvider("nlp",c))};const i=s(1635),n=i.__importStar(s(1398)),a=s(1340),r=i.__importStar(s(4675));function o(e,t){const s=n.workspace.getConfiguration("nlp.format",e.uri),i=s.get("indentStyle","tabs"),a=s.get("braceStyle","allman");let r=!0,o=s.get("tabSize",4);return"spaces"===i?r=!1:"editor"===i?(r=!t.insertSpaces,o=t.tabSize):r=!0,{useTabs:r,tabSize:o,braceAllman:"keep"!==a,eol:e.eol===n.EndOfLine.CRLF?"\r\n":"\n"}}const l={provideDocumentFormattingEdits:(e,t)=>function(e,t){if(!n.workspace.getConfiguration("nlp.format",e.uri).get("enable",!0))return[];const s=e.getText();let i;try{i=(0,a.formatDocument)(s,o(e,t))}catch(e){return r.sendError("format.error","document",{bytes:s.length}),[]}if(r.sendEvent("format.document",void 0,{bytes:s.length,changed:i===s?0:1}),i===s)return[];const l=new n.Range(e.positionAt(0),e.positionAt(s.length));return[n.TextEdit.replace(l,i)]}(e,t)},c={provideDocumentRangeFormattingEdits:(e,t,s)=>function(e,t,s){if(!n.workspace.getConfiguration("nlp.format",e.uri).get("enable",!0))return[];const i=e.getText(),l=e.offsetAt(t.start),c=e.offsetAt(t.end);let u;try{u=(0,a.formatRegionsInRange)(i,l,c,o(e,s))}catch(e){return r.sendError("format.error","selection",{bytes:c-l}),[]}return r.sendEvent("format.selection",void 0,{bytes:c-l,edits:u.length}),u.map(t=>n.TextEdit.replace(new n.Range(e.positionAt(t.start),e.positionAt(t.end)),t.newText))}(e,t,s)}},1340(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.detectEol=u,t.formatDocument=function(e,t){const s=c(e,t);let i="";for(const t of(0,n.splitRegions)(e))i+=l(t,s);return i},t.formatRegionsInRange=function(e,t,s,i){const a=c(e,i),r=[];for(const i of(0,n.splitRegions)(e)){if(!(t===s?i.start<=t&&t<=i.end:i.startt))continue;const e=l(i,a);e!==i.text&&r.push({start:i.start,end:i.end,newText:e})}return r};const i=s(3907),n=s(1408),a=s(2117),r=s(2441);function o(e,t,s){const i=e(t,s);return i===e(i,s)?i:t}function l(e,t){switch(e.kind){case i.RegionKind.Rules:return o(a.formatRulesRegion,e.text,t);case i.RegionKind.Code:return o(r.formatCodeRegion,e.text,t);default:return e.text}}function c(e,t){return Object.assign(Object.assign(Object.assign({},i.DEFAULT_OPTIONS),{eol:u(e)}),t)}function u(e){return(e.match(/\r\n/g)||[]).length>(e.match(/(?1&&s[0].kind===i.RegionKind.Preamble&&0===s[0].text.length&&s.shift(),s};const i=s(3907),n=s(9539);function a(e){switch(e.replace(/^@+/,"").toUpperCase()){case"DECL":case"CODE":case"PRE":case"POST":case"CHECK":return i.RegionKind.Code;case"RULES":case"MULTI":case"SELECT":case"RECURSE":return i.RegionKind.Rules;default:return i.RegionKind.Other}}function r(e,t){for(let s=t-1;s>=0;s--){const t=e[s];if(t.kind===i.TokenKind.Newline)return!0;if(t.kind!==i.TokenKind.Whitespace)return!1}return!0}},2117(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatRulesRegion=function(e,t){const s=t.eol,i=e.split(/\r\n|\r|\n/),n=[];let r=0;for(;rv&&(v=e.rule.length);const x=Math.floor(v/4);let w=1,b="",T=!1;for(const e of r){if("@@"==e.rule)b=t==i.ReformatType.ONELINE?"@@":"\t@@",T=!0;else if(e.suggested.length)b=e.suggested+" <-";else{const s=c(e.rule.length,4,x);b=t==i.ReformatType.ONELINE?e.rule:"\t"+e.rule+s+"### ("+w.toString()+")"+(e.comment.length?" "+e.comment:""),w++}o.push(b)}T||o.push("\t@@");const L=t==i.ReformatType.ONELINE?"":s;return a=o.join(L),a}function c(e,t,s){const i=s-Math.floor(e)/t+1;let n="\t";for(let e=1;e=0;e--)if(t[e].startsWith("#")){n=e;break}let a="";n{t.push({kind:s,text:e.slice(i,n),start:i,end:n})};for(;ls&&(t=s),c(i.TokenKind.String,l,t),l=t;continue}if("@"===t){const t="@"===u;let a=t?l+2:l+1;const r=a;for(;al)break;t+=1}}t===l&&(t=l+1),c(i.TokenKind.Word,l,t),l=t}else c(i.TokenKind.Arrow,l,l+2),l+=2}else c(i.TokenKind.Newline,l,l+1),l+=1}return t},t.detokenize=function(e){let t="";for(const s of e)t+=s.text;return t};const i=s(3907),n=new Set(i.REGION_KEYWORDS),a=new Set(["(",")","[","]","{","}",";",","]);function r(e){return" "===e||"\t"===e||"\f"===e||"\v"===e}function o(e){return"\n"===e||"\r"===e||r(e)||'"'===e||a.has(e)}},3907(e,t){"use strict";var s,i,n;Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_OPTIONS=t.RegionKind=t.REGION_KEYWORDS=t.TokenKind=t.ReformatType=void 0,function(e){e[e.NORMAL=0]="NORMAL",e[e.ONELINE=1]="ONELINE",e[e.PARENS=2]="PARENS"}(s||(t.ReformatType=s={})),function(e){e[e.Whitespace=0]="Whitespace",e[e.Newline=1]="Newline",e[e.LineComment=2]="LineComment",e[e.BlockComment=3]="BlockComment",e[e.String=4]="String",e[e.Arrow=5]="Arrow",e[e.AtAt=6]="AtAt",e[e.Directive=7]="Directive",e[e.Punct=8]="Punct",e[e.Word=9]="Word"}(i||(t.TokenKind=i={})),t.REGION_KEYWORDS=["CHECK","CODE","DECL","MULTI","NODES","PATH","POST","PRE","RULES","SELECT","RECURSE","GROUP","ARR","END"],function(e){e[e.Preamble=0]="Preamble",e[e.Code=1]="Code",e[e.Rules=2]="Rules",e[e.Other=3]="Other"}(n||(t.RegionKind=n={})),t.DEFAULT_OPTIONS={useTabs:!0,tabSize:4,braceAllman:!0,eol:"\n"}},4220(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HelpView=t.helpView=t.HelpTreeDataProvider=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(9896)),r=i.__importStar(s(6928)),o=i.__importStar(s(857)),l=s(9621);class c{constructor(){this._onDidChangeTreeData=new n.EventEmitter,this.onDidChangeTreeData=this._onDidChangeTreeData.event}refresh(){this._onDidChangeTreeData.fire()}getTreeItem(e){const s=e.collapsible?e.expanded?n.TreeItemCollapsibleState.Expanded:n.TreeItemCollapsibleState.Collapsed:n.TreeItemCollapsibleState.None,i=new n.TreeItem(e.label,s);i.iconPath=new n.ThemeIcon(e.icon),e.tooltip&&(i.tooltip=new n.MarkdownString(e.tooltip)),e.cmd?i.command={command:e.cmd,title:e.label}:e.promptFile?i.command={command:"helpView.openPrompt",title:e.label,arguments:[e]}:e.url?i.command={command:"helpView.openLink",title:e.label,arguments:[e]}:e.collapsible||e.isVersionRoot||!e.page||(i.command={command:"helpView.openVscodeHelp",title:"Open Help",arguments:[e]});const r=t.helpView.helpFilePath(e);return r&&a.existsSync(r)&&(i.contextValue="helpFile"),i}getChildren(e){return e?e.isVersionRoot?t.helpView.listVersionNotes().map(e=>({label:e,page:"vscode/versions/"+e,icon:"tag"})):e.isAnnounceRoot?t.helpView.listAnnouncements().map(e=>({label:e,page:"vscode/announcements/"+e,icon:"megaphone"})):e.isPromptRoot?t.helpView.listPrompts().map(e=>({label:e.title,page:"",icon:"sparkle",promptFile:e.file,tooltip:e.description||e.title})):e.isLinksRoot?t.helpView.listLinks().map(e=>({label:e.title,page:"",icon:"link-external",url:e.url,tooltip:e.description||e.url})):e.children?e.children:[]:[{label:"Home",page:"vscode/home",icon:"home"},{label:"NLP++ Textbook",page:"NLP++_Textbook",icon:"book"},{label:"Quick Start",page:"vscode/quickstart",icon:"rocket"},{label:"LLM Prompts",page:"",icon:"comment-discussion",isPromptRoot:!0,collapsible:!0},{label:"Regression Testing",page:"vscode/testing",icon:"beaker"},{label:"Compiling Analyzers",page:"vscode/compiling",icon:"gear"},{label:"Lazy Loading",page:"vscode/lazyload",icon:"symbol-array"},{label:"NLP++",page:"",icon:"symbol-namespace",collapsible:!0,children:[{label:"About NLP++",page:"NLP_PP_Stuff/About_NLP++",icon:"book"},{label:"Variables",page:"NLP_PP_Stuff/About_NLP++_Variables",icon:"symbol-variable"},{label:"Tokens",page:"NLP_PP_Stuff/Tokens",icon:"symbol-key"},{label:"String Functions",page:"Table_of_String_Functions",icon:"symbol-string"},{label:"Node / Parse Tree Functions",page:"Table_of_Parse_Tree_Functions",icon:"list-tree"},{label:"Knowledge Base Functions",page:"Table_of_Knowledge_Base_Functions",icon:"database"},{label:"Math Functions",page:"Table_of_Math_Functions",icon:"symbol-operator"},{label:"Array Functions",page:"Table_of_Array_Functions",icon:"symbol-array"},{label:"Formatting & I/O Functions",page:"Table_of_Formatting_and_I_O_Functions",icon:"output"},{label:"Special Functions",page:"Table_of_Special_Functions",icon:"symbol-misc"}]},{label:"Helpful Links",page:"",icon:"link",isLinksRoot:!0,collapsible:!0},{label:"Announcements",page:"",icon:"megaphone",isAnnounceRoot:!0,collapsible:!0,expanded:!0},{label:"Version Notes",page:"",icon:"history",isVersionRoot:!0,collapsible:!0,expanded:!0}]}}t.HelpTreeDataProvider=c;class u{constructor(e){this.context=e,n.commands.registerCommand("helpView.lookup",e=>this.lookup(e)),n.commands.registerCommand("helpView.windowCHMHelp",e=>this.windowCHMHelp(e)),n.commands.registerCommand("helpView.openHelpIndex",()=>this.openHelpIndex()),n.commands.registerCommand("helpView.openFunctionHelp",()=>this.openFunctionHelp()),n.commands.registerCommand("helpView.openFunctionPage",e=>this.openFunctionPage(e)),n.commands.registerCommand("helpView.openVariableHelp",()=>this.openVariableHelp()),n.commands.registerCommand("helpView.openHome",()=>this.openHome()),n.commands.registerCommand("helpView.openVscodeHelp",e=>this.openVscodeHelp(e)),n.commands.registerCommand("helpView.refreshHelp",()=>this.helpTreeProvider.refresh()),n.commands.registerCommand("helpView.createClaudePrompt",()=>this.createClaudePrompt()),n.commands.registerCommand("helpView.openPrompt",e=>this.openPrompt(e)),n.commands.registerCommand("helpView.openLink",e=>this.openLink(e)),n.commands.registerCommand("helpView.showLatestAnnouncement",()=>this.showLatestAnnouncement()),n.commands.registerCommand("helpView.copyPath",e=>this.copyHelpPath(e)),this.exists=!1,this.ctx=e,this.panel=void 0,this.helpTreeProvider=new c,this.helpTree=n.window.createTreeView("helpView",{treeDataProvider:this.helpTreeProvider})}static attach(e){return t.helpView||(t.helpView=new u(e)),t.helpView}lookup(e){const t=n.window.activeTextEditor;if(t){const e=t.selection.start,s=t.document.getWordRangeAtPosition(e);if(s){const e=this.getTerm(t,s);l.visualText.displayHelpFile(e,e)}}}getTerm(e,t){let s=e.document.getText(t);if(t.start.character>0){const i=new n.Position(t.start.line,t.start.character-1),a=new n.Position(t.end.line,t.end.character),r=new n.Range(i,a),o=e.document.getText(r);"$"==o[0]&&(s=o)}return s}getWebviewContent(e){const t=r.join(l.visualText.getVisualTextDirectory("Help"),"helps"),s=r.join(t,e+".htm");return a.existsSync(s)?a.readFileSync(s,"utf8")+"


":"Not found: "+e}windowCHMHelp(e){if("win32"==o.platform()){const e=r.join(l.visualText.getVisualTextDirectory("Help"),"Help.chm");a.existsSync(e)?s(5317).exec(`"${e}"`,(e,t,s)=>{if(e)return console.error("Error opening help file:",e),void n.window.showErrorMessage(`Failed to open help file: ${e.message}`);console.log("stdout: "+t),console.log("stderr: "+s)}):n.window.showErrorMessage(`File does not exist: ${e}`)}else n.window.showInformationMessage("Couldn't open Windows help file")}openHelpIndex(){this.displayMarkdownHelp("index")}openFunctionHelp(){this.displayMarkdownHelp(r.join("NLP_PP_Stuff","Functions"))}openFunctionPage(e){if("string"==typeof e&&e.length){if(this.helpExists(e))return void this.displayMarkdownHelp(e);const t=e.toLowerCase();if(t!==e&&this.helpExists(t))return void this.displayMarkdownHelp(t)}this.openFunctionHelp()}openVariableHelp(){this.displayMarkdownHelp(r.join("NLP_PP_Stuff","About_NLP++_Variables"))}displayMarkdownHelp(e){const t=r.join(l.visualText.getVisualTextDirectory("Help"),"markdown",e+".md");a.existsSync(t)?n.commands.executeCommand("markdown.showPreview",n.Uri.file(t)):n.window.showErrorMessage(`Help file does not exist: ${t}`)}openHome(){this.displayMarkdownHelp("vscode/home")}openVscodeHelp(e){e&&e.page&&this.displayMarkdownHelp(e.page)}linksFile(){return r.join(l.visualText.getVisualTextDirectory("Help"),"markdown","vscode","helpful-links.txt")}listLinks(){const e=this.linksFile();if(!a.existsSync(e))return[];const t=[];for(const s of a.readFileSync(e,"utf8").split(/\r?\n/)){const e=s.trim();if(!e||e.startsWith("#"))continue;const i=e.split("|").map(e=>e.trim());i.length>=2&&i[1]&&t.push({title:i[0]||i[1],url:i[1],description:i[2]||void 0})}return t}openLink(e){e&&e.url&&n.env.openExternal(n.Uri.parse(e.url))}helpFilePath(e){if(e)return e.promptFile?r.join(this.promptsDir(),e.promptFile):e.page?r.join(l.visualText.getVisualTextDirectory("Help"),"markdown",e.page+".md"):void 0}copyHelpPath(e){return i.__awaiter(this,void 0,void 0,function*(){const t=this.helpFilePath(e);t&&a.existsSync(t)?(yield n.env.clipboard.writeText(t),n.window.showInformationMessage(`Copied path: ${t}`)):n.window.showErrorMessage("This help item has no local file to copy.")})}promptsDir(){return r.join(l.visualText.getVisualTextDirectory("Help"),"markdown","vscode","prompts")}promptVariables(){const e=l.visualText.engineDirectory().fsPath,t="win32"===o.platform()?"nlp.exe":"nlp",s=l.visualText.getCurrentAnalyzer();return{engineExe:r.join(e,t),engineDir:e,visualTextDir:l.visualText.getVisualTextDirectory(),analyzersDir:l.visualText.getBlockAnalyzersPath().fsPath,templatesDir:l.visualText.getVisualTextDirectory("analyzer-templates"),languagesDir:l.visualText.getVisualTextDirectory("languages"),miscDir:l.visualText.getVisualTextDirectory("misc"),currentAnalyzer:s&&s.fsPath&&s.fsPath.length>1?s.fsPath:"(no analyzer loaded)"}}fillPromptVariables(e){const t=this.promptVariables();return e.replace(/\{\{(\w+)\}\}/g,(e,s)=>void 0!==t[s]?t[s]:e)}listPrompts(){const e=this.promptsDir();return a.existsSync(e)?a.readdirSync(e).filter(e=>e.toLowerCase().endsWith(".md")).sort().map(t=>{const s=a.readFileSync(r.join(e,t),"utf8"),i=(s.split(/\r?\n/)[0]||"").replace(/^#+\s*/,"").trim(),n=s.match(//i);return{file:t,title:i||t.replace(/\.md$/i,""),description:n?n[1].trim():void 0}}):[]}copyPromptToClipboard(e){return i.__awaiter(this,void 0,void 0,function*(){yield n.env.clipboard.writeText(e),n.window.showInformationMessage("LLM prompt copied to clipboard — paste it into your LLM.")})}openPromptByFile(e){return i.__awaiter(this,void 0,void 0,function*(){const t=r.join(this.promptsDir(),e);if(!a.existsSync(t))return void n.window.showErrorMessage(`Prompt file not found: ${t}`);const s=a.readFileSync(t,"utf8"),i=s.indexOf("\n");let o=i>=0?s.slice(i+1):"";o=o.replace(/\s*/i,"");const l=this.fillPromptVariables(o).replace(/^\s+/,""),c=yield n.workspace.openTextDocument({content:l,language:"markdown"});yield n.window.showTextDocument(c),yield this.copyPromptToClipboard(l)})}openPrompt(e){e&&e.promptFile&&this.previewPromptByFile(e.promptFile)}previewPromptByFile(e){return i.__awaiter(this,void 0,void 0,function*(){const t=r.join(this.promptsDir(),e);if(!a.existsSync(t))return void n.window.showErrorMessage(`Prompt file not found: ${t}`);const s=a.readFileSync(t,"utf8").replace(/\s*/i,""),i=this.fillPromptVariables(s).replace(/^\s+/,""),l=r.join(o.tmpdir(),"visualtext-prompts");a.existsSync(l)||a.mkdirSync(l,{recursive:!0});const c=r.join(l,e);a.writeFileSync(c,i,"utf8"),n.commands.executeCommand("markdown.showPreview",n.Uri.file(c));const u=s.indexOf("\n"),d=this.fillPromptVariables(u>=0?s.slice(u+1):s).replace(/^\s+/,"");yield this.copyPromptToClipboard(d)})}createClaudePrompt(){return i.__awaiter(this,void 0,void 0,function*(){const e=this.listPrompts();if(e.length)return void(yield this.openPromptByFile(e[0].file));const t=this.promptVariables(),s=`I want you to help me write a prototype NLP++ analyzer. NLP++ is a rule-based programming language for natural language processing, run by the NLP engine. Everything you need is already installed on this machine at the paths below:\n\n- NLP engine executable (run analyzers with this): ${t.engineExe}\n- Example analyzers (study these for patterns and the pass sequence): ${t.analyzersDir}\n- Analyzer templates (good starting points for a new analyzer): ${t.templatesDir}\n- VisualText support files: ${t.visualTextDir}\n - Library functions and language dictionaries / knowledge bases: ${t.languagesDir}\n - Misc library functions: ${t.miscDir}\n\nAn NLP++ analyzer is a folder containing: spec/ (the .nlp passes plus analyzer.seq, the ordered pass sequence), input/ (text files to analyze), and kb/ (the knowledge base). Before writing anything, read several of the example and template analyzers above to learn the analyzer.seq format, the pass structure, and the library functions and KB conventions available in the languages and misc directories. Run an analyzer by invoking the engine executable above on an input file.\n\nCreate a folder of text files from the internet that (FILL IN YOUR DESCRIPTION) and create an analyzer that does (FILL IN YOUR DESCRIPTION OF THE ANALYZER).`,i=yield n.workspace.openTextDocument({content:s,language:"markdown"});yield n.window.showTextDocument(i)})}helpExists(e){return a.existsSync(r.join(l.visualText.getVisualTextDirectory("Help"),"markdown",e+".md"))}listVersionNotes(){const e=r.join(l.visualText.getVisualTextDirectory("Help"),"markdown","vscode","versions");return a.existsSync(e)?a.readdirSync(e).filter(e=>e.toLowerCase().endsWith(".md")).map(e=>e.replace(/\.md$/i,"")).sort((e,t)=>this.compareVersions(t,e)):[]}listAnnouncements(){const e=r.join(l.visualText.getVisualTextDirectory("Help"),"markdown","vscode","announcements");return a.existsSync(e)?a.readdirSync(e).filter(e=>e.toLowerCase().endsWith(".md")).map(e=>e.replace(/\.md$/i,"")).sort((e,t)=>t.localeCompare(e)):[]}compareVersions(e,t){const s=e.split(".").map(e=>parseInt(e,10)||0),i=t.split(".").map(e=>parseInt(e,10)||0),n=Math.max(s.length,i.length);for(let e=0;e0){const i=this.listVersionNotes().find(e=>this.compareVersions(e,s)>0&&this.compareVersions(e,t)<=0);if(this.ctx.globalState.update(e,t),i)return this.displayMarkdownHelp("vscode/versions/"+i),!0}return!1}showLatestAnnouncement(){const e=this.listAnnouncements();0!==e.length?this.displayMarkdownHelp("vscode/announcements/"+e[0]):n.window.showInformationMessage("No announcements found.")}checkAnnouncements(){var e;const t="nlp.helpSeenAnnouncements",s=this.listAnnouncements();if(0===s.length)return!1;const i=null!==(e=this.ctx.globalState.get(t))&&void 0!==e?e:[],n=s.find(e=>!i.includes(e));return this.ctx.globalState.update(t,s),!!n&&(this.displayMarkdownHelp("vscode/announcements/"+n),!0)}}t.HelpView=u},8999(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JsonState=t.jsonState=void 0;const i=s(1635),n=i.__importStar(s(6928)),a=i.__importStar(s(9896)),r=s(9621);t.JsonState=class{constructor(){this.json=void 0,this.jsonStr="",this.dirPath="",this.filePath="",this.tabSize=4,this.exists=!1}setFilePath(e,t){return this.exists=!1,this.dirPath=n.join(e,".vscode"),this.filePath=n.join(this.dirPath,t+".json"),a.existsSync(this.filePath)&&(this.exists=!0),this.exists}fileExists(){return this.exists}getFilePath(){return this.filePath}jsonParse(e,t){if(this.setFilePath(e.fsPath,t)&&(this.jsonStr=a.readFileSync(this.filePath,"utf8"),this.jsonStr.length))try{return this.json=JSON.parse(this.jsonStr),!0}catch(e){return r.visualText.debugMessage("Jason file error: "+this.filePath+" -- "+e),!1}return!1}saveFile(e,t,s){return this.json=s,this.setFilePath(e,t),this.writeFile(),!0}writeFile(){const e=JSON.stringify(this.json,null,this.tabSize);if(!a.existsSync(this.dirPath))try{a.mkdirSync(this.dirPath)}catch(e){console.log("Error creating .vscode folder: "+e.message)}try{a.writeFileSync(this.filePath,e,{flag:"w"})}catch(e){console.log("Error writing file "+this.filePath+": "+e.message)}}}},3946(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KBView=t.kbView=t.FileSystemProvider=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=s(9621),o=s(4987),l=s(2564),c=s(6514),u=s(5720),d=s(6951),p=s(7918),m=i.__importStar(s(9896)),h=i.__importStar(s(857)),f=s(4792),_=s(7781);class g{refresh(){this._onDidChangeTreeData.fire()}constructor(){this.EMPTY_TEXT=">> right click for libs <<",this._onDidChangeTreeData=new n.EventEmitter,this.onDidChangeTreeData=this._onDidChangeTreeData.event}getChildren(e){return i.__awaiter(this,void 0,void 0,function*(){return e?this.getKBFiles(e.uri):r.visualText.hasWorkspaceFolder()&&r.visualText.hasAnalyzers()&&r.visualText.analyzer.isLoaded()?this.getKBFiles(r.visualText.analyzer.getKBDirectory()):[]})}getTreeItem(e){const t=new n.TreeItem(e.uri,e.type===n.FileType.Directory?n.TreeItemCollapsibleState.Collapsed:n.TreeItemCollapsibleState.None);if(t.label!=this.EMPTY_TEXT){const s=a.basename(e.uri.fsPath),i=s.endsWith(".dll")||s.endsWith(".so")||s.endsWith(".dylib");i||(t.command={command:"kbView.openFile",title:"Open File",arguments:[e]}),t.contextValue="kb";const o=r.visualText.fileIconFromExt(e.uri.fsPath);if(t.iconPath={light:n.Uri.file(a.join(__filename,"..","..","resources","light",o)),dark:n.Uri.file(a.join(__filename,"..","..","resources","dark",o))},i){t.contextValue="compiledLib";try{const s=m.statSync(e.uri.fsPath);t.description=s.mtime.toLocaleString()}catch(e){}return t.tooltip=e.uri.fsPath,t}(s.endsWith(".kbb")||s.endsWith(".dict")||s.endsWith(".kbbb")||s.endsWith(".dictt"))&&(t.contextValue="toggle"),s.endsWith(".kb")?t.contextValue="old":s.endsWith(".nlm")?t.contextValue=t.contextValue+"mod":t.contextValue=t.contextValue+"nomo",/full\.(dict|kbb)$/.test(s)&&(t.contextValue=t.contextValue+"bytesort")}else t.contextValue="empty";return t}getKBFiles(e){const t=Array(),s=u.dirfuncs.getDirectoryTypes(e);r.visualText.mod.clear(),r.visualText.modFiles=[];const i=[".dict",".dictt",".kbb",".kbbb",".nlm",".json",".test",".txt"];for(const e of i)for(const i of s)i.type!=n.FileType.Directory&&i.uri.fsPath.endsWith(e)&&(t.push({uri:i.uri,type:i.type}),i.uri.fsPath.endsWith(".nlm")&&r.visualText.modFiles.push(i.uri));if(r.visualText.analyzer.isLoaded()&&e.fsPath===r.visualText.analyzer.getKBDirectory().fsPath){const e=r.visualText.analyzer.getAnalyzerDirectory().fsPath,s="win32"===h.platform()?".dll":"darwin"===h.platform()?".dylib":".so",i=a.basename(e.replace(/[\\/]+$/,"")),o=[a.join(e,"kb"+s),a.join(e,"analyzer"+s),a.join(e,i+s)];for(const e of[...new Set(o)])m.existsSync(e)&&t.push({uri:n.Uri.file(e),type:n.FileType.File})}return 0==t.length&&t.push({uri:this.EMPTY_TEXT,type:n.FileType.Unknown}),t}dirHasNonText(e){const t=u.dirfuncs.getFiles(e);for(const e of t)if(!e.fsPath.endsWith(".txt"))return!0;return!1}existingFile(e){if(r.visualText.hasWorkspaceFolder()){const t={canSelectMany:!0,openLabel:"Add Existing File(s)",defaultUri:r.visualText.getWorkspaceFolder(),canSelectFiles:!0,canSelectFolders:!1,filters:{"Text files":["txt","xml","html","csv"],"All files":["*"]}};n.window.showOpenDialog(t).then(t=>{if(t){for(const s of t){const t=a.basename(s.fsPath);let i=r.visualText.analyzer.getInputDirectory().fsPath;if(e)i=a.dirname(e.uri.fsPath);else if(r.visualText.analyzer.getTextPath()){const e=r.visualText.analyzer.getTextPath().fsPath;i=m.existsSync(e)?a.dirname(e):r.visualText.analyzer.getInputDirectory().fsPath}const o=n.Uri.file(a.join(i,t));r.visualText.fileOps.addFileOperation(s,o,[p.fileOpRefresh.KB],p.fileOperation.COPY)}r.visualText.fileOps.startFileOps()}})}}existingFolder(e){if(r.visualText.hasWorkspaceFolder()){const t={canSelectMany:!0,openLabel:"Add Existing Folder(s)",defaultUri:r.visualText.getWorkspaceFolder(),canSelectFiles:!1,canSelectFolders:!0};n.window.showOpenDialog(t).then(t=>{if(t){for(const s of t){const t=a.basename(s.fsPath);let i=r.visualText.analyzer.getInputDirectory().fsPath;e&&(i=a.dirname(e.uri.fsPath));const o=n.Uri.file(a.join(i,t));r.visualText.fileOps.addFileOperation(s,o,[p.fileOpRefresh.KB],p.fileOperation.COPY)}r.visualText.fileOps.startFileOps()}})}}rename(e){r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:a.basename(e.uri.fsPath),prompt:"Enter new name for file"}).then(t=>{if(t){const s=e.uri;0==a.extname(t).length&&(t+=a.extname(e.uri.fsPath));const i=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t));u.dirfuncs.rename(s.fsPath,i.fsPath);const o=n.Uri.file(a.join(s.fsPath+r.visualText.LOG_SUFFIX));if(u.dirfuncs.isDir(o.fsPath)){const s=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t+r.visualText.LOG_SUFFIX));u.dirfuncs.rename(o.fsPath,s.fsPath)}n.commands.executeCommand("kbView.refreshAll")}})}renameDir(e){r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:a.basename(e.uri.fsPath),prompt:"Enter new name for directory"}).then(t=>{if(t){const s=e.uri,i=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t));u.dirfuncs.rename(s.fsPath,i.fsPath),n.commands.executeCommand("kbView.refreshAll")}})}}t.FileSystemProvider=g;class y{constructor(e){this.findFile=new o.FindFile,this.textFile=new d.TextFile;const t=new g;this.kbView=n.window.createTreeView("kbView",{treeDataProvider:t}),n.commands.registerCommand("kbView.refreshAll",()=>t.refresh()),n.commands.registerCommand("kbView.existingFile",e=>t.existingFile(e)),n.commands.registerCommand("kbView.existingFolder",e=>t.existingFolder(e)),n.commands.registerCommand("kbView.rename",e=>t.rename(e)),n.commands.registerCommand("kbView.renameDir",e=>t.renameDir(e)),n.commands.registerCommand("kbView.openFile",e=>this.openKBFile(e)),n.commands.registerCommand("kbView.openText",()=>this.openText()),n.commands.registerCommand("kbView.search",()=>this.search()),n.commands.registerCommand("kbView.newKBBFile",e=>this.newKBBFile(e,!1)),n.commands.registerCommand("kbView.newDictFile",e=>this.newDictFile(e,!1)),n.commands.registerCommand("kbView.deleteFile",e=>this.deleteFile(e)),n.commands.registerCommand("kbView.deleteDir",e=>this.deleteFile(e)),n.commands.registerCommand("kbView.updateTitle",e=>this.updateTitle(e)),n.commands.registerCommand("kbView.generateMain",()=>this.generateMain()),n.commands.registerCommand("kbView.mergeDicts",()=>this.mergeDicts()),n.commands.registerCommand("kbView.byteSort",e=>this.byteSort(e)),n.commands.registerCommand("kbView.explore",()=>this.explore()),n.commands.registerCommand("kbView.existingFiles",()=>this.existingFiles()),n.commands.registerCommand("kbView.toggleActive",e=>this.toggleActive(e)),n.commands.registerCommand("kbView.copyToAnalyzer",e=>this.copyToAnalyzer(e)),n.commands.registerCommand("kbView.cleanFiles",()=>this.cleanFiles()),n.commands.registerCommand("kbView.video",()=>this.video()),n.commands.registerCommand("kbView.modAdd",e=>this.modAdd(e)),n.commands.registerCommand("kbView.modCreate",()=>this.modCreate()),n.commands.registerCommand("kbView.modLoad",e=>this.modLoad(e)),n.commands.registerCommand("kbView.langLibs",e=>this.langLibs()),n.commands.registerCommand("kbView.miscLibs",()=>this.miscLibs()),n.commands.registerCommand("kbView.compileKB",e=>this.compileKB(e))}static attach(e){return t.kbView||(t.kbView=new y(e)),t.kbView}langLibs(){const e=a.join(r.visualText.getVisualTextDirectory(),"languages"),t=[],s=[];s.push(".dict"),s.push(".kbb");const i=u.dirfuncs.getFiles(n.Uri.file(e),s,u.getFileTypes.DIRS);for(const e of i){const s=a.basename(e.fsPath);t.push({label:s,description:`${s} language dictionaries, knowledge bases, mod files`})}0!=t.length?n.window.showQuickPick(t,{title:"Choose Language",canPickMany:!1,placeHolder:"Choose Language to see dictionaries and KB"}).then(e=>{e&&e.label&&this.chooseLibFiles("Dictionaries & Knowledge Bases","languages",e.label,[".dict",".kbb",".nlm"])}):n.window.showWarningMessage("Not created yet and you can help!")}miscLibs(){this.chooseLibFiles("Choose File","misc","",[".dict",".kbb",".nlm"])}modLoad(e){r.visualText.mod.load(e.uri)}modCreate(){const e=r.visualText.analyzer.getKBDirectory();r.visualText.analyzer.modCreate(e)}modAdd(e){r.visualText.mod.addFile(e.uri,!0)}video(){n.commands.executeCommand("vscode.open",n.Uri.parse("http://vscodekbviewer.visualtext.org"))}byteSort(e){var t;if(!e||!e.uri)return;const s=e.uri.fsPath,i=a.basename(s);if(/full\.(dict|kbb)$/.test(i))try{const e=m.readFileSync(s,"utf8"),t=e.includes("\r\n")?"\r\n":"\n",a=e.split(/\r?\n/).filter(e=>e.length>0),r=(e,t)=>Buffer.from(e,"utf8").compare(Buffer.from(t,"utf8"));let o,l;if(i.endsWith(".dict")){const e=[],t=[];let s=!1,i=[];for(const n of a)n.startsWith("#")?s?i.push(n):e.push(n):(s=!0,t.push({key:n.split(" ",1)[0],block:i.concat([n])}),i=[]);t.sort((e,t)=>r(e.key,t.key)),o=e.slice();for(const e of t)o.push(...e.block);l=t.length}else{const e=[],t=[];let s=null,i=!1,n=[];for(const r of a){const a=r.trim();"dictionary"!==a?r.startsWith("#")?i?n.push(r):e.push(r):/^ {2}\S.*:$/.test(r)&&!r.startsWith(" ")?(s={key:a.slice(0,-1),block:n.concat([r])},t.push(s),n=[]):s&&s.block.push(r):i=!0}t.sort((e,t)=>r(e.key,t.key)),o=e.slice(),o.push("dictionary");for(const e of t)o.push(...e.block);l=t.length}m.writeFileSync(s,o.join(t)+t),n.window.showInformationMessage(`Byte-sorted ${i} (${l} entries, UTF-8 order).`),n.commands.executeCommand("kbView.refreshAll")}catch(e){n.window.showErrorMessage(`Byte-sort failed for ${i}: ${null!==(t=e.message)&&void 0!==t?t:e}`)}else n.window.showWarningMessage(`Byte-sort only applies to *full.dict / *full.kbb files (not ${i}).`)}cleanFiles(){const e=r.visualText.analyzer.getKBDirectory().fsPath,t=[],s=[],i="ALL FILES BELOW",o="ALL BUT VALID KB FILES";if(0==u.dirfuncs.getFiles(n.Uri.file(e),[],u.getFileTypes.FILES).length)return void n.window.showWarningMessage("No KB files to delete");t.push({label:i,description:"All the files listed below (non .KB files)"}),t.push({label:o,description:"All files except .KB, .KBB, and .DICT files"});const l=u.dirfuncs.getFiles(n.Uri.file(e),[],u.getFileTypes.FILES);for(const e of l)".kb"!=a.extname(e.fsPath)&&(t.push({label:a.basename(e.fsPath),description:e.fsPath}),s.push(e));t.length<=1?n.window.showWarningMessage("No files to clean"):n.window.showQuickPick(t,{title:"Clean Dictionary",canPickMany:!0,placeHolder:"Choose files to delete"}).then(e=>{if(!e)return;let t=!1;if(e[0].label==i)for(const e of s)t=!0,r.visualText.fileOps.addFileOperation(e,e,[p.fileOpRefresh.KB],p.fileOperation.DELETE);else if(e[0].label==o)for(const e of s){const s=a.extname(e.fsPath);".kb"!=s&&".kbb"!=s&&".dict"!=s&&(t=!0,r.visualText.fileOps.addFileOperation(e,e,[p.fileOpRefresh.KB],p.fileOperation.DELETE))}else for(const s of e)if(s.description){const e=n.Uri.file(s.description);t=!0,r.visualText.fileOps.addFileOperation(e,e,[p.fileOpRefresh.KB],p.fileOperation.DELETE)}t?r.visualText.fileOps.startFileOps():n.window.showWarningMessage("No files to clean")})}chooseLibFiles(e,t,s,o){return i.__awaiter(this,void 0,void 0,function*(){const i=yield r.visualText.chooseLibFiles(e,t,s,o);for(const e of i)if(".nlm"==o[0]){const i=a.join(r.visualText.getVisualTextDirectory(),t,s,e.label);r.visualText.mod.load(n.Uri.file(i))}else this.insertLibraryFile(a.join(t,s),e.label)})}insertLibraryFile(e,t){const s=a.join(r.visualText.getVisualTextDirectory(),e,t),i=a.join(r.visualText.analyzer.getKBDirectory().fsPath,t);m.existsSync(s)?(r.visualText.fileOps.addFileOperation(n.Uri.file(s),n.Uri.file(i),[p.fileOpRefresh.KB],p.fileOperation.COPY),r.visualText.fileOps.startFileOps()):n.window.showWarningMessage("Not created yet and YOU can help: "+t)}copyToAnalyzer(e){const t=r.visualText.analyzer.anaSubDirPath(f.anaSubDir.KB);c.outputView.copyFileToAnalyzer(e.uri,t,"Copy file to another analyzer","Copy file to the KB directory of:")}toggleActive(e){const t=e.uri.fsPath;if(e&&t.length){const s=a.basename(t),i=a.parse(s);let o=".kbb";s.endsWith(".kbb")?o=".kbbb":s.endsWith(".kbbb")?o=".kbb":s.endsWith(".dict")?o=".dictt":s.endsWith(".dictt")&&(o=".dict");const l=a.join(a.dirname(t),i.name+o);r.visualText.fileOps.addFileOperation(e.uri,n.Uri.file(l),[p.fileOpRefresh.KB],p.fileOperation.RENAME),r.visualText.fileOps.startFileOps()}this.kbView.title="KB"}existingFiles(){if(r.visualText.hasWorkspaceFolder()){const e={canSelectMany:!0,openLabel:"Import Existing File(s)",defaultUri:r.visualText.getWorkspaceFolder(),canSelectFiles:!0,canSelectFolders:!1,filters:{"KB files":["dict","kb","kbb","nlm"],"All files":["*"]}};n.window.showOpenDialog(e).then(e=>{if(!e)return;const t=r.visualText.analyzer.getKBDirectory().fsPath;for(const s of e){const e=a.basename(s.fsPath),i=n.Uri.file(a.join(t,e));r.visualText.fileOps.addFileOperation(s,i,[p.fileOpRefresh.KB],p.fileOperation.COPY)}r.visualText.fileOps.startFileOps()})}}explore(){const e=r.visualText.analyzer.getKBDirectory().fsPath;u.dirfuncs.isDir(e)&&r.visualText.openFileManager(e)}search(){r.visualText.hasWorkspaceFolder()&&r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:"searchword",prompt:"Enter term to search"}).then(e=>{e&&(this.findFile.searchFiles(r.visualText.analyzer.getKBDirectory(),e,[".kb",".kbb",".dict",".nlm"]),l.findView.loadFinds(e,this.findFile.getMatches()),l.findView.setSearchWord(e),n.commands.executeCommand("findView.updateTitle"),n.commands.executeCommand("findView.refreshAll"))})}openText(){r.visualText.analyzer.hasText()&&r.visualText.colorizeAnalyzer(),n.window.showTextDocument(r.visualText.analyzer.getTextPath()),n.commands.executeCommand("status.update")}updateTitle(e){const t=e.fsPath;if(e&&t.length){const t=a.basename(e.fsPath);if(t.length)return void(this.kbView.title=`KB (${t})`)}this.kbView.title="KB"}mergeDicts(){if(r.visualText.hasWorkspaceFolder()){const e=[];e.push({label:"Yes",description:"Merge all the dictionary files into all.dict?"}),e.push({label:"No",description:"Do not merge dictionary files"}),n.window.showQuickPick(e,{title:"Dict Files Merge",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(e=>{if(!e||"No"==e.label)return;const t=r.visualText.analyzer.getKBDirectory(),s=n.Uri.file(a.join(r.visualText.analyzer.getKBDirectory().fsPath,"all.dict"));r.visualText.fileOps.addFileOperation(t,s,[p.fileOpRefresh.KB],p.fileOperation.APPEND,".dict",""),r.visualText.fileOps.startFileOps()})}}generateMain(){if(r.visualText.hasWorkspaceFolder()){const e=[];let t="";t=t.concat("Generate main.kb file"),e.push({label:"Yes",description:t}),e.push({label:"No",description:"Do not generate main.kb"}),n.window.showQuickPick(e,{title:"Generate main.kb",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(e=>{if(!e||"No"==e.label)return;const t=r.visualText.analyzer.getKBDirectory(),s=a.join(t.fsPath,"main.kb"),i=u.dirfuncs.getFiles(t);let n="",o="";for(const e of i){const t=a.basename(e.fsPath);t.startsWith("attr")?n+='take "kb/user/'+t+'"\n':t.startsWith("word")&&(o+='take "kb/user/'+t+'"\n')}let l="";l+='take "kb/user/hier.kb"\nbind sys\n',l+=o,l+='take "kb/user/phr.kb"\n',l+=n,l+="quit\n",u.dirfuncs.writeFile(s,l),r.visualText.debugMessage("main.kb generated")})}}compileKB(e){return i.__awaiter(this,void 0,void 0,function*(){let t;if(e&&e.uri)t=u.dirfuncs.isDir(e.uri.fsPath)?e.uri:n.Uri.file(a.dirname(e.uri.fsPath));else{if(!r.visualText.analyzer.isLoaded())return void n.window.showWarningMessage("No analyzer loaded. Open an analyzer first.");t=r.visualText.analyzer.getAnalyzerDirectory()}const s=_.NLPCompile.attach();yield s.compileKBOnly(t)})}openKBFile(e){e.uri.fsPath.endsWith(".nlm")&&r.visualText.setModFile(e.uri),this.openFile(e.uri)}openFile(e){this.updateTitle(e),r.visualText.colorizeAnalyzer(),n.window.showTextDocument(e),r.visualText.analyzer.saveCurrentFile(e),n.commands.executeCommand("status.update")}deleteFile(e){if(r.visualText.hasWorkspaceFolder()){const t=[];let s="";const i=a.basename(e.uri.fsPath);s=s.concat("Delete '",i,"'?"),t.push({label:"Yes",description:s}),t.push({label:"No",description:"Do not delete "+i}),n.window.showQuickPick(t,{title:"Delete File",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(t=>{t&&"No"!=t.label&&(r.visualText.fileOps.addFileOperation(e.uri,e.uri,[p.fileOpRefresh.KB],p.fileOperation.DELETE),r.visualText.fileOps.startFileOps())})}}newKBBFile(e,t){r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:"filename",prompt:"Enter KBB file name"}).then(s=>{if(s){let i=r.visualText.analyzer.getKBDirectory().fsPath;e&&!t&&(i=u.dirfuncs.getDirPath(e.uri.fsPath));let o=a.join(i,s+".kbb");a.extname(s)&&(o=a.join(i,s)),u.dirfuncs.writeFile(o,"topconcept\n child: attr=[value,value2]\n grandchild one\n grandchild two\n"),this.openFile(n.Uri.file(o)),n.commands.executeCommand("kbView.refreshAll")}})}newDictFile(e,t){r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:"filename",prompt:"Enter Dictionary file name"}).then(s=>{if(s){let i=r.visualText.analyzer.getKBDirectory().fsPath;e&&!t&&(i=u.dirfuncs.getDirPath(e.uri.fsPath));let o=a.join(i,s+".dict");a.extname(s)&&(o=a.join(i,s)),u.dirfuncs.writeFile(o,"word s=suggestedNode attr=value"),this.openFile(n.Uri.file(o)),n.commands.executeCommand("kbView.refreshAll")}})}}t.KBView=y},5905(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RegionKind=void 0,t.regionKindAt=function(e,t){const s=(0,i.splitRegions)(e);for(const e of s)if(t>=e.start&&t=0?"warning":"error";if(t.endsWith(".dict]")){const e=t.split(/[\t \]]/);return{kind:"dict",passNum:i,lineNum:i,dictFile:e[e.length-2],message:t,severity:a}}return{kind:"pass",passNum:i,lineNum:n,message:t,severity:a}}Object.defineProperty(t,"__esModule",{value:!0}),t.parseEngineErrorLine=s,t.parseEngineErrors=function(e){const t=[];for(const i of e.split(/\r?\n/)){const e=s(i);e&&t.push(e)}return t}},9454(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.foldingRanges=function(e){const t=[],s=(s,i)=>{const a=n(e,s),r=n(e,Math.max(s,i-1));r>a&&t.push({start:a,end:r})};for(const t of(0,i.analyzeSymbols)(e)){s(t.start,t.end);for(const e of t.children)"rule"===e.kind&&s(e.start,e.end)}return t};const i=s(5202);function n(e,t){let s=0;const i=Math.min(t,e.length);for(let t=0;t=0,o=/^\d+$/.test(i);if(i.length&&!r&&!o){const e=s+n;t.push({name:i,start:e,end:e+i.length})}}s+=i.length+1}return t}},6406(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KEYWORD_SET=t.BUILTIN_SET=t.BUILTIN_FUNCTIONS=t.LETTER_FUNCTIONS=t.RULE_KEYWORDS=t.KEYWORDS=t.REGION_MARKERS=void 0,t.REGION_MARKERS={DECL:"Function & variable declarations for this pass.",CODE:"Imperative NLP++ code run once for the pass.",PRE:"Code run before the pass rules are applied.",POST:"Code run after the pass rules are applied.",CHECK:"Post-match check code that can fail a rule.",RULES:"Pattern rules matched against the parse tree.",MULTI:"Rules where every match fires (multi-pass).",SELECT:"Rules where the best/longest match is selected.",RECURSE:"Rules applied recursively over the region.",NODES:"Node list declaration.",PATH:"Context @PATH constraint for the rules below.",GROUP:"Grouping directive."},t.KEYWORDS=["cap","cout","else","gp","group","if","inc","return","while"],t.RULE_KEYWORDS=["attr","attrs","da","deacc","deaccent","except","excepts","fail","fails","gp","group","layer","layers","look","lookahead","match","matches","max","min","nest","o","one","opt","option","optional","pass","passes","plus","recurse","ren","rename","s","singlet","star","t","tree","trig","trigger","unsealed"],t.LETTER_FUNCTIONS={N:'N("attr") — numeric attribute value of the matched node.',S:'S("attr") — string attribute value of the matched node.',X:'X("attr") — value from the single (X) node.',G:'G("var") — global variable value.',L:'L("var") — local variable value.'},t.BUILTIN_FUNCTIONS=["abs","addarg","addattr","addcnode","addconcept","addconval","addnode","addnumval","addstmt","addstrs","addstrval","addsval","addword","arraylength","attrchange","attrexists","attrname","attrtype","attrvals","attrwithval","batchstart","cap","cbuf","ceiling","closefile","conceptname","conceptpath","conval","cout","coutreset","dballocstmt","dbbindcol","dbclose","dbexec","dbexecstmt","dbfetch","dbfreestmt","dbopen","deaccent","debug","dictfindword","dictfirst","dictgetword","dictnext","down","else","eltnode","excise","exitpass","exittopopup","factorial","fail","fileout","findana","findattr","findattrs","findconcept","findhierconcept","findnode","findphrase","findroot","findvals","findwordpath","firstnode","floor","flt","fltval","fncallstart","fprintgvar","fprintnvar","fprintxvar","fprintvar","gdump","getconcept","getconval","getnumval","getpopupdata","getstrval","getsval","ginc","gp","group","gtolower","guniq","hitconf","if","inc","inheritval","inputrange","inputrangetofile","interactive","kbdumptree","lasteltnode","lastnode","length","lengthr","levenshtein","lextagger","listadd","listnode","LJ","lj","log","logten","lookup","lowercase","makeconcept","makeparentconcept","makephrase","makestmt","merge","merger","mkdir","mod","movecleft","movecright","movesem","ndump","next","nextattr","nextval","ninc","nodeconcept","nodeowner","noop","num","numrange","numval","openfile","or","pathconcept","percentstr","permuten","phraselength","phraseraw","phrasetext","pncopyvars","pndown","pninsert","pnmakevar","pnname","pnnext","pnprev","pnreplaceval","pnroot","pnsingletdown","pnup","pnvar","pnvarnames","pow","pranchor","prchild","preaction","printvar","pndeletechilds","pnrename","prev","print","printr","prlit","prrange","prtree","prunephrases","prxtree","randomint","regexp","regexpi","renameattr","renamechild","renameconcept","renamenode","replaceval","resolveurl","return","returnstmt","rfaaction","rfaactions","rfaarg","rfaargtolist","rfacode","rfaelement","rfaelt","rfaexpr","rfalist","rfalitelt","rfalittoaction","rfalittopair","rfaname","rfanodes","rfanonlit","rfanonlitelt","rfanum","rfaop","rfapair","rfapairs","rfapostunary","rfapres","rfarange","rfarecurse","rfarecurses","rfaregion","rfaregions","rfarule","rfarulelts","rfarulemark","rfarules","rfarulesfile","rfaselect","rfastr","rfasugg","rfaunary","rfavar","rfbarg","rfbdecl","rfbdecls","rightjustifynum","rmattr","rmattrs","rmattrval","rmchild","rmchildren","rmconcept","rmcphrase","rmnode","rmphrase","rmval","rmvals","rmword","round","sdump","setbase","setlookahead","setunsealed","single","singler","singlex","singlezap","sortconsbyattr","sortchilds","sorthier","sortphrase","sortvals","spellcandidates","spellcorrect","spellword","splice","split","sqlstr","sqrt","startout","stem","stopout","str","strchar","strchr","strchrcount","strclean","strcontains","strcontainsnocase","strendswith","strequal","strequalnocase","strescape","strunescape","strgreaterthan","strisalpha","strisdigit","strislower","strisupper","strlength","strlessthan","strnotequal","strnotequalnocase","strpiece","strrchr","strspellcandidate","strspellcompare","strstartswith","strsubst","strtolower","strtotitle","strtoupper","strtrim","strval","strwrap","succeed","suffix","system","take","today","topdir","truncate","unknown","unpackdirs","up","uppercase","urlbase","urltofile","var","vareq","varfn","varfnarray","varinlist","varne","varstrs","varz","wninit","wnsensestoconcept","wnhypnymstoconcept","while","whilestmt","wordindex","wordpath","writekb","xaddlen","xaddnvar","xdump","xinc","xmlstr","xrename"],t.BUILTIN_SET=new Set(t.BUILTIN_FUNCTIONS.map(e=>e.toLowerCase())),t.KEYWORD_SET=new Set(t.KEYWORDS.map(e=>e.toLowerCase()))},5229(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.semanticLegend=void 0,t.registerLanguageFeatures=function(e){e.subscriptions.push(n.languages.registerDocumentSymbolProvider(f,g),n.languages.registerHoverProvider(f,y),n.languages.registerDefinitionProvider(f,v),n.languages.registerWorkspaceSymbolProvider(x),n.languages.registerReferenceProvider(f,w),n.languages.registerDocumentHighlightProvider(f,T),n.languages.registerRenameProvider(f,b),n.languages.registerCompletionItemProvider(f,P,"@"),n.languages.registerSignatureHelpProvider(f,A,"(",","),n.languages.registerFoldingRangeProvider(f,F),n.languages.registerDocumentSemanticTokensProvider(f,N,t.semanticLegend),n.languages.registerCodeActionsProvider(f,j,{providedCodeActionKinds:[n.CodeActionKind.QuickFix]}));const s=n.workspace.createFileSystemWatcher("**/*.{nlp,pat,kbb}");e.subscriptions.push(s,s.onDidDelete(e=>o.nlpWorkspaceIndex.removeFile(e)),s.onDidCreate(e=>{o.nlpWorkspaceIndex.indexUri(e)}),n.workspace.onDidSaveTextDocument(e=>{"nlp"!==e.languageId&&"kbb"!==e.languageId||o.nlpWorkspaceIndex.indexText(e.uri,e.getText())}));const i=n.languages.createDiagnosticCollection("nlp++");e.subscriptions.push(i);const a=new Map;n.window.activeTextEditor&&I(n.window.activeTextEditor.document,i),e.subscriptions.push(n.workspace.onDidOpenTextDocument(e=>I(e,i)),n.workspace.onDidChangeTextDocument(e=>(e=>{const t=e.uri.toString(),s=a.get(t);s&&clearTimeout(s),a.set(t,setTimeout(()=>{a.delete(t),I(e,i)},300))})(e.document)),n.workspace.onDidCloseTextDocument(e=>i.delete(e.uri)))};const i=s(1635),n=i.__importStar(s(1398)),a=s(5202),r=s(1771),o=s(5688),l=s(5905),c=s(7729),u=s(9454),d=s(4309),p=s(8481),m=s(6406);function h(){const e=new Set,t=new Set,s=new Set;for(const i of o.nlpWorkspaceIndex.search(""))"function"===i.kind?e.add(i.name):"concept"===i.kind?t.add(i.name):"rule"===i.kind&&s.add(i.name);return{letters:new Set(Object.keys(m.LETTER_FUNCTIONS)),userFuncs:e,concepts:t,rules:s,builtins:m.BUILTIN_SET}}const f={language:"nlp"};function _(e,t){const s=new n.Range(e.positionAt(t.start),e.positionAt(t.end)),i=new n.Range(e.positionAt(t.selStart),e.positionAt(t.selEnd)),a=s.contains(i)?i:new n.Range(s.start,s.start),r=new n.DocumentSymbol(t.name,t.detail,function(e){switch(e.kind){case"region":return n.SymbolKind.Namespace;case"rule":return n.SymbolKind.Function;case"function":return n.SymbolKind.Method}}(t),s,a);return r.children=t.children.map(t=>_(e,t)),r}const g={provideDocumentSymbols(e){try{return(0,a.analyzeSymbols)(e.getText()).map(t=>_(e,t))}catch(e){return[]}}},y={provideHover(e,t){const s=function(e,t){const s=e.lineAt(t.line).text,i=/@@?([A-Za-z]+)/g;let n;for(;null!==(n=i.exec(s));)if(t.character>=n.index&&t.character<=n.index+n[0].length)return n[1].toUpperCase()}(e,t);if(s&&m.REGION_MARKERS[s])return new n.Hover(new n.MarkdownString(`**@${s}** — region\n\n${m.REGION_MARKERS[s]}`));const i=e.getWordRangeAtPosition(t);if(!i)return;const a=e.getText(i),r=a.toLowerCase();if(m.LETTER_FUNCTIONS[a])return new n.Hover(new n.MarkdownString(`**${a}** — node accessor\n\n${m.LETTER_FUNCTIONS[a]}`),i);if(m.BUILTIN_SET.has(r)){const e=encodeURIComponent(JSON.stringify([a])),t=new n.MarkdownString(`**${a}** — NLP++ built-in function\n\n[Open help for \`${a}\`](command:helpView.openFunctionPage?${e})`);return t.isTrusted=!0,new n.Hover(t,i)}return m.KEYWORD_SET.has(r)?new n.Hover(new n.MarkdownString(`**${a}** — NLP++ keyword`),i):void 0}},v={provideDefinition(e,t){return i.__awaiter(this,void 0,void 0,function*(){const s=e.getWordRangeAtPosition(t);if(!s)return;const i=e.getText(s),r=[];try{for(const t of(0,a.declaredSymbols)(e.getText()))t.name===i&&r.push(new n.Location(e.uri,new n.Range(e.positionAt(t.selStart),e.positionAt(t.selEnd))))}catch(e){}yield o.nlpWorkspaceIndex.ensureBuilt();const l=e.uri.toString();for(const e of o.nlpWorkspaceIndex.lookup(i))e.uri.toString()!==l&&r.push(new n.Location(e.uri,e.range));return r})}},x={provideWorkspaceSymbols(e){return i.__awaiter(this,void 0,void 0,function*(){return yield o.nlpWorkspaceIndex.ensureBuilt(),o.nlpWorkspaceIndex.search(e).map(e=>{return new n.SymbolInformation(e.name,"concept"===(t=e).kind?n.SymbolKind.Class:"function"===t.kind?n.SymbolKind.Method:n.SymbolKind.Function,"",new n.Location(e.uri,e.range));var t})})}},w={provideReferences(e,t,s){return i.__awaiter(this,void 0,void 0,function*(){const i=e.getWordRangeAtPosition(t);if(!i)return[];const a=e.getText(i);yield o.nlpWorkspaceIndex.ensureBuilt();const r=o.nlpWorkspaceIndex.references(a).map(e=>new n.Location(e.uri,e.range));if(s.includeDeclaration)for(const e of o.nlpWorkspaceIndex.lookup(a))r.push(new n.Location(e.uri,e.range));return r})}},b={prepareRename(e,t){return i.__awaiter(this,void 0,void 0,function*(){const s=e.getWordRangeAtPosition(t);if(!s)throw new Error("You cannot rename this element.");const i=e.getText(s),n=i.toLowerCase();if(m.BUILTIN_SET.has(n)||m.KEYWORD_SET.has(n))throw new Error("Cannot rename an NLP++ built-in or keyword.");if(yield o.nlpWorkspaceIndex.ensureBuilt(),o.nlpWorkspaceIndex.indexText(e.uri,e.getText()),0===o.nlpWorkspaceIndex.lookup(i).length)throw new Error(`"${i}" is not a declared rule, function, or concept.`);return s})},provideRenameEdits(e,t,s){return i.__awaiter(this,void 0,void 0,function*(){const i=e.getWordRangeAtPosition(t);if(!i)return;const a=e.getText(i);yield o.nlpWorkspaceIndex.ensureBuilt(),o.nlpWorkspaceIndex.indexText(e.uri,e.getText());const r=new n.WorkspaceEdit,l=new Set,c=(e,t)=>{const i=`${e.toString()}:${t.start.line}:${t.start.character}`;l.has(i)||(l.add(i),r.replace(e,t,s))};for(const e of o.nlpWorkspaceIndex.references(a))c(e.uri,e.range);for(const e of o.nlpWorkspaceIndex.lookup(a))c(e.uri,e.range);return r})}},T={provideDocumentHighlights(e,t){const s=e.getWordRangeAtPosition(t);if(!s)return[];const i=e.getText(s),a=e.uri.toString(),r=[];for(const e of o.nlpWorkspaceIndex.references(i))e.uri.toString()===a&&r.push(new n.DocumentHighlight(e.range));return r}};function L(e,t,s,i){const a=new n.CompletionItem(e,t);return a.detail=s,i&&(a.documentation=new n.MarkdownString(i)),a}const M=m.BUILTIN_FUNCTIONS.map(e=>L(e,n.CompletionItemKind.Function,"NLP++ built-in function")),k=m.KEYWORDS.map(e=>L(e,n.CompletionItemKind.Keyword,"NLP++ keyword")),D=m.RULE_KEYWORDS.map(e=>L(e,n.CompletionItemKind.Keyword,"rule-element modifier")),S=Object.entries(m.LETTER_FUNCTIONS).map(([e,t])=>L(e,n.CompletionItemKind.Function,"node accessor",t)),E=Object.entries(m.REGION_MARKERS).map(([e,t])=>L(e,n.CompletionItemKind.Keyword,"@region marker",t));function Y(e){const t=new Set,s=[];for(const i of o.nlpWorkspaceIndex.search("")){if(!e.has(i.kind)||t.has(i.name))continue;t.add(i.name);const a="concept"===i.kind?n.CompletionItemKind.Class:"function"===i.kind?n.CompletionItemKind.Method:n.CompletionItemKind.Function;s.push(L(i.name,a,`NLP++ ${i.kind}`))}return s}const P={provideCompletionItems(e,t){return i.__awaiter(this,void 0,void 0,function*(){const s=e.lineAt(t.line).text.slice(0,t.character);return/@@?\w*$/.test(s)?E:(yield o.nlpWorkspaceIndex.ensureBuilt(),(0,l.regionKindAt)(e.getText(),e.offsetAt(t))===l.RegionKind.Rules?[...D,...Y(new Set(["concept","rule"]))]:[...M,...k,...S,...Y(new Set(["function"]))])})}},F={provideFoldingRanges(e){try{return(0,u.foldingRanges)(e.getText()).map(e=>new n.FoldingRange(e.start,e.end,n.FoldingRangeKind.Region))}catch(e){return[]}}},A={provideSignatureHelp(e,t){return i.__awaiter(this,void 0,void 0,function*(){var s;const i=(0,c.findEnclosingCall)(e.getText(),e.offsetAt(t));if(!i)return;yield o.nlpWorkspaceIndex.ensureBuilt();const a=o.nlpWorkspaceIndex.lookup(i.name).find(e=>"function"===e.kind&&void 0!==e.signature);let r;if(a){const e=function(e){if(!e.trim())return[];const t=[];let s=0,i="";for(const n of e)"("===n||"["===n||"{"===n?s++:")"!==n&&"]"!==n&&"}"!==n||s--,","===n&&0===s?(t.push(i.trim()),i=""):i+=n;return i.trim()&&t.push(i.trim()),t}(null!==(s=a.signature)&&void 0!==s?s:"");r=new n.SignatureInformation(`${i.name}(${e.join(", ")})`),r.parameters=e.map(e=>new n.ParameterInformation(e)),r.documentation=new n.MarkdownString("NLP++ user function")}else{if(!m.BUILTIN_SET.has(i.name.toLowerCase()))return;r=new n.SignatureInformation(`${i.name}( … )`),r.documentation=new n.MarkdownString("NLP++ built-in function")}const l=new n.SignatureHelp;return l.signatures=[r],l.activeSignature=0,l.activeParameter=Math.min(i.activeParam,Math.max(0,r.parameters.length-1)),l})}},O=["function","method","class","type","macro"];t.semanticLegend=new n.SemanticTokensLegend(O);const C=new Map(O.map((e,t)=>[e,t])),N={provideDocumentSemanticTokens(e){return i.__awaiter(this,void 0,void 0,function*(){yield o.nlpWorkspaceIndex.ensureBuilt();const s=new n.SemanticTokensBuilder(t.semanticLegend),i=e.getText();try{for(const t of(0,d.classifyTokens)(i,h())){const i=e.positionAt(t.start);s.push(i.line,i.character,t.length,C.get(t.type),0)}}catch(e){}return s.build()})}},R="nlp.unknown-function",j={provideCodeActions(e,t,s){const i=[];for(const t of s.diagnostics){if(t.code!==R)continue;const s=/did you mean '([^']+)'/.exec(t.message);if(!s)continue;const a=new n.CodeAction(`Replace with '${s[1]}'`,n.CodeActionKind.QuickFix);a.edit=new n.WorkspaceEdit,a.edit.replace(e.uri,t.range,s[1]),a.diagnostics=[t],a.isPreferred=!0,i.push(a)}return i}};function I(e,t){return i.__awaiter(this,void 0,void 0,function*(){if("nlp"!==e.languageId)return;const s=e.getText();let i;try{i=(0,r.computeProblems)(s)}catch(e){return}const a=i.map(t=>{const s=new n.Diagnostic(new n.Range(e.positionAt(t.start),e.positionAt(t.end)),t.message,"error"===t.severity?n.DiagnosticSeverity.Error:n.DiagnosticSeverity.Warning);return s.source="nlp++",s.code=t.code,s});try{yield o.nlpWorkspaceIndex.ensureBuilt();const{names:t,isKnown:i}=(l=h(),{names:[...m.BUILTIN_FUNCTIONS,...l.userFuncs],isKnown:e=>l.builtins.has(e.toLowerCase())||m.KEYWORD_SET.has(e.toLowerCase())||l.letters.has(e)||l.userFuncs.has(e)||l.concepts.has(e)||l.rules.has(e)});for(const r of(0,p.findUnknownCalls)(s,i,t)){const t=new n.Diagnostic(new n.Range(e.positionAt(r.start),e.positionAt(r.start+r.length)),`Unknown function '${r.word}' — did you mean '${r.suggestion}'?`,n.DiagnosticSeverity.Warning);t.source="nlp++",t.code=R,a.push(t)}}catch(e){}var l;t.set(e.uri,a)})}},8481(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.levenshtein=o,t.findUnknownCalls=function(e,t,s,o=2){const c=function(e){return(0,a.splitRegions)(e).filter(e=>e.kind===r.RegionKind.Code).map(e=>({start:e.start,end:e.end}))}(e);if(!c.length)return[];const u=e=>c.some(t=>e>=t.start&&es)continue;const t=o(e,a);t=0;e--){const t=s[e];if(t.kind===n.TokenKind.Punct)if(")"===t.text||"]"===t.text||"}"===t.text)r++;else if("["===t.text||"{"===t.text)r>0&&r--;else if("("===t.text){if(0===r){o=e;break}r--}}if(o<0)return;let l="";for(let e=o-1;e>=0;e--){const t=s[e];if(t.kind!==n.TokenKind.Whitespace&&t.kind!==n.TokenKind.Newline){t.kind===n.TokenKind.Word&&(l=t.text);break}}if(!l)return;let c=0,u=0;for(let e=o+1;e<=a;e++){const i=s[e];if(i.start>=t)break;i.kind===n.TokenKind.Punct&&("("===i.text||"["===i.text||"{"===i.text?u++:")"===i.text||"]"===i.text||"}"===i.text?u--:","===i.text&&0===u&&c++)}return{name:l,activeParam:c}};const i=s(9539),n=s(3907)},5202(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.analyzeSymbols=u,t.declaredSymbols=function(e){const t=[],s=e=>{for(const i of e)"region"!==i.kind&&t.push(i),s(i.children)};return s(u(e)),t};const i=s(1408),n=s(3907),a=s(6406),r=/([_\w]+)\s*(?:\[[^\]]*\])*\s*<-/g,o=/(^|\n)[ \t]*([A-Za-z_][\w]*)\s*\(([^;{}]*)\)\s*\{/g;function l(e,t){const s=[];let i;for(r.lastIndex=0;null!==(i=r.exec(e));){const n=i[1],a=i[0].indexOf(n),r=t+i.index+a,o=e.indexOf("@@",i.index),l=t+(o>=0?o+2:e.length);s.push({name:n,detail:"rule",kind:"rule",start:r,end:l,selStart:r,selEnd:r+n.length,children:[]})}return s}function c(e,t){const s=[];let i;for(o.lastIndex=0;null!==(i=o.exec(e));){const e=i[2];if(a.KEYWORD_SET.has(e.toLowerCase()))continue;const n=t+i.index+i[0].indexOf(e);s.push({name:e,detail:"function",kind:"function",start:n,end:t+o.lastIndex,selStart:n,selEnd:n+e.length,children:[],signature:i[3].trim()})}return s}function u(e){const t=(0,i.splitRegions)(e),s=[];for(const e of t){if(e.kind===n.RegionKind.Preamble)continue;if(e.marker.startsWith("@@"))continue;const t=e.marker||"(region)",i={name:t,detail:"",kind:"region",start:e.start,end:e.end,selStart:e.start,selEnd:e.start+t.length,children:[]};e.kind===n.RegionKind.Rules?i.children=l(e.text,e.start):e.kind===n.RegionKind.Code&&(i.children=c(e.text,e.start)),i.detail=i.children.length?`${i.children.length} ${e.kind===n.RegionKind.Rules?"rules":"items"}`:"",s.push(i)}return s}},5688(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nlpWorkspaceIndex=t.NlpWorkspaceIndex=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=s(5202),r=s(2139),o=s(9539),l=s(3907),c=/^_?[A-Za-z][\w]*$/;function u(e,t){let s=0,i=0;for(let n=0;ne.uri.toString()!==t);i.length?this.byName.set(e.name,i):this.byName.delete(e.name)}this.byFile.delete(t)}const i=this.refsByFile.get(t);if(i){for(const e of i){const s=this.refsByName.get(e.name);if(!s)continue;const i=s.filter(e=>e.uri.toString()!==t);i.length?this.refsByName.set(e.name,i):this.refsByName.delete(e.name)}this.refsByFile.delete(t)}}lookup(e){var t;return null!==(t=this.byName.get(e))&&void 0!==t?t:[]}references(e){var t;return null!==(t=this.refsByName.get(e))&&void 0!==t?t:[]}search(e){const t=e.toLowerCase(),s=[];for(const e of this.byName.values())for(const i of e)t.length&&!i.name.toLowerCase().includes(t)||s.push(i);return s}}t.NlpWorkspaceIndex=d,t.nlpWorkspaceIndex=new d},5603(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LogView=t.logView=t.OutputTreeDataProvider=t.logLineType=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(9896)),r=i.__importStar(s(6928)),o=s(9621),l=s(6951),c=s(5720);var u;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.INFO=1]="INFO",e[e.UPDATER=2]="UPDATER",e[e.FILE_OP=3]="FILE_OP",e[e.ANALYER_OUTPUT=4]="ANALYER_OUTPUT",e[e.LOGFILE=5]="LOGFILE",e[e.SEQUENCE=6]="SEQUENCE",e[e.SYNTAX_ERROR=7]="SYNTAX_ERROR",e[e.DOWNLOAD_ERROR=8]="DOWNLOAD_ERROR",e[e.OPEN_PATH=9]="OPEN_PATH",e[e.UPDATER_TIMEOUT=10]="UPDATER_TIMEOUT",e[e.JSON_ERROR=11]="JSON_ERROR",e[e.WARNING=12]="WARNING",e[e.FAILURE=13]="FAILURE"}(u||(t.logLineType=u={}));class d{refresh(){this._onDidChangeTreeData.fire()}constructor(){this._onDidChangeTreeData=new n.EventEmitter,this.onDidChangeTreeData=this._onDidChangeTreeData.event}getTreeItem(e){return{label:e.label,resourceUri:e.uri,collapsibleState:void 0,command:{command:"logView.openFile",arguments:[e],title:"Open File with Error"},iconPath:{light:n.Uri.file(r.join(__filename,"..","..","resources","dark",e.icon)),dark:n.Uri.file(r.join(__filename,"..","..","resources","dark",e.icon))}}}getChildren(e){return o.visualText.hasWorkspaceFolder()?t.logView.getLogs():[]}getParent(e){}}t.OutputTreeDataProvider=d;class p{constructor(e){this.logs=new Array;const t=new d;this.logView=n.window.createTreeView("logView",{treeDataProvider:t}),n.commands.registerCommand("logView.refreshAll",()=>{t.refresh(),this.revealLast()}),n.commands.registerCommand("logView.openFile",e=>this.openFile(e)),n.commands.registerCommand("logView.addMessage",(e,t,s)=>this.addMessage(e,t,s)),n.commands.registerCommand("logView.conceptualGrammar",()=>this.loadCGLog()),n.commands.registerCommand("logView.timing",()=>this.loadTimingLog()),n.commands.registerCommand("logView.makeAna",()=>this.makeAna()),n.commands.registerCommand("logView.clear",()=>this.clearLogs()),n.commands.registerCommand("logView.stopFileOps",()=>this.stopFileOps()),n.commands.registerCommand("logView.stopUpdater",()=>this.stopUpdater()),n.commands.registerCommand("logView.exploreEngineDir",()=>this.exploreEngineDir()),n.commands.registerCommand("logView.downloadHelp",()=>this.downloadHelp()),n.commands.registerCommand("logView.updaterHelp",()=>this.updaterHelp()),n.commands.registerCommand("logView.checkUpdates",()=>this.checkUpdates()),n.commands.registerCommand("logView.updateDebug",()=>this.updateDebug()),n.commands.registerCommand("logView.toggleAutoUpdate",()=>this.toggleAutoUpdate()),n.commands.registerCommand("logView.analyzerOuts",()=>this.loadAnalyzerOuts()),n.commands.registerCommand("logView.analyzeSummary",()=>this.loadAnalyzeSummary()),n.commands.registerCommand("logView.enginePath",()=>this.enginePath()),this.exists=!1,this.ctx=e,this.panel=void 0}static attach(e){return t.logView||(t.logView=new p(e)),t.logView}revealLast(){if(!this.logView||0===this.logs.length)return;const e=this.logs[this.logs.length-1];try{this.logView.reveal(e,{select:!1,focus:!1})}catch(e){}}enginePath(){const e=o.visualText.engineDirectory();n.env.clipboard.writeText(e.fsPath)}updateDebug(){const e=[],t="Turn ON update debugging";e.push({label:t,description:"display extra details of updating for debugging purposes"}),e.push({label:"Turn OFF update debugging",description:"do not display debugging info for updating"}),n.window.showQuickPick(e,{title:"Debugging Output",canPickMany:!1,placeHolder:"Choose ON or Off"}).then(e=>{e&&(o.visualText.debug=e.label===t)})}toggleAutoUpdate(){const e=[],t="Turn ON auto update",s=o.visualText.getAutoUpdate()?" (currently ON)":" (currently OFF)";e.push({label:t,description:"automatically update the engine and VisualText files on load/reload"}),e.push({label:"Turn OFF auto update",description:"do not auto update on load/reload"}),n.window.showQuickPick(e,{title:"Auto Update"+s,canPickMany:!1,placeHolder:"Choose ON or Off"}).then(e=>{if(!e)return;const s=e.label===t;o.visualText.setAutoUpdate(s),n.window.showInformationMessage("Auto update is now "+(s?"ON":"OFF"))})}stopUpdater(){o.visualText.stopUpdater()}checkUpdates(){o.visualText.startUpdater(!1)}downloadHelp(){o.visualText.displayHelpFile("Download Help","DOWNLOADHELP.html")}updaterHelp(){o.visualText.displayHelpFile("Updater Help","UPDATERHELP.html")}loadAnalyzerOuts(e=!0){e&&this.clearLogs();const t=r.join(o.visualText.getCurrentAnalyzer().fsPath,"output"),s=n.Uri.file(r.join(t,"stdout.log")),i=n.Uri.file(r.join(t,"stderr.log"));this.addMessage("STD OUT FILE: "+i.fsPath,u.ANALYER_OUTPUT,i),this.addLogFile(s,u.ANALYER_OUTPUT," ",!1,!e),this.addMessage("ERROR FILE: "+i.fsPath,u.ANALYER_OUTPUT,i),this.addLogFile(i,u.ANALYER_OUTPUT," ",!1,!e)}loadAnalyzeSummary(){this.clearLogs(),this.addLogFile(o.visualText.analyzer.getOutputDirectory("analyze.log"),u.LOGFILE,"",!1,!0)}loadTimingLog(){this.clearLogs();const e=o.visualText.analyzer.getOutputDirectory("dbg.log");this.addLogFile(e,u.LOGFILE)}loadCGLog(){this.clearLogs(),this.addLogFile(o.visualText.analyzer.treeFile("cgerr"),u.LOGFILE)}makeAna(e=!0){e&&this.clearLogs();let s=!1;return t.logView.syntaxErrorsLog("cgerr")&&(s=t.logView.addLogFile(o.visualText.analyzer.treeFile("cgerr"),u.LOGFILE,"",!0,!e)),s||this.loadMakeAna(e)}loadMakeAna(e=!0){const t=o.visualText.analyzer.getOutputDirectory("err.log"),s=this.addLogFile(t,u.LOGFILE,"",!1,!e),i=this.addLogFile(o.visualText.analyzer.treeFile("make_ana"),u.LOGFILE,"",!0,!0);return s||i}syntaxErrorsOutput(e){const t=o.visualText.analyzer.getOutputDirectory(e);return this.syntaxErrors(t)}syntaxErrorsLog(e){const t=o.visualText.analyzer.treeFile(e);return this.syntaxErrors(t)}syntaxErrors(e){const t=new l.TextFile(e.fsPath);for(const e of t.getLines())if(this.parseLogLine(e,u.INFO,void 0).type==u.SYNTAX_ERROR)return!0;return!1}clearLogs(e=!0){const t=n.workspace.getConfiguration("logs").get("clear");(e||t)&&(this.logs=[],n.commands.executeCommand("logView.refreshAll"))}addMessage(e,t=u.INFO,s){this.logs.push(this.parseLogLine(e,t,s))}addLogFile(e,t,s="",i=!1,n=!1){if(a.existsSync(e.fsPath)){n||this.clearLogs(!1);const a=new l.TextFile(e.fsPath);for(let e of a.getLines())if(e=e.substring(0,e.length),e.length){const n=this.parseLogLine(s+e,t,void 0);i&&n.type!=u.SYNTAX_ERROR||this.logs.push(n)}return!0}return!1}getLogs(){return this.logs}parseLogLine(e,t=u.UNKNOWN,s){let i=0,l=-1,c=this.typeIcon(t),d=!1;s&&t==u.UNKNOWN&&(t=u.OPEN_PATH);const p=e.trim();p.startsWith("[")&&p.endsWith("]")&&(e=(e=e.replace("[","")).replace("]",""));let m=p.split(/[\t\s]/,5);if(m.length>=2&&(i=+m[0],l=+m[1],!isNaN(i)&&0!=l&&i>=0&&(d=!0)),e.length)if(d)if(p.endsWith(".dict]")){m=e.split(/[\t\s\]]/);const a=m[m.length-2],d=r.join(o.visualText.analyzer.getKBDirectory().fsPath,a);s=n.Uri.file(d),l=i,t=u.SYNTAX_ERROR,c=this.typeIcon(u.SYNTAX_ERROR)}else o.visualText.analyzer.isLoaded()&&(s=o.visualText.analyzer.seqFile.getUriByPassNumber(i),p.toLocaleLowerCase().indexOf("ignor")>=0?(t=u.WARNING,c=this.typeIcon(u.WARNING)):(t=u.SYNTAX_ERROR,c=this.typeIcon(u.SYNTAX_ERROR)));else e.startsWith("FAILED download")?t=u.DOWNLOAD_ERROR:e.startsWith("Jason file error:")?t=u.JSON_ERROR:e.startsWith("Updater timed out")?t=u.UPDATER_TIMEOUT:e.indexOf("Unhandled")>=0&&(t=u.SYNTAX_ERROR);if(!s){const i=e.lastIndexOf(" ");if(i>=0){const r=e.substring(i+1,e.length);a.existsSync(r)&&(t=u.OPEN_PATH,s=n.Uri.file(r))}}return(e.indexOf("Warning")>=0||e.indexOf("Unhandled")>=0||t==u.WARNING)&&(c="yield.svg"),{label:e,uri:s,passNum:i,line:l,icon:c,type:t}}typeIcon(e){let t="dot.svg";switch(e){case u.UPDATER:t="update.svg";break;case u.ANALYER_OUTPUT:t="gear.svg";break;case u.SEQUENCE:t="dna.svg";break;case u.LOGFILE:t="log.svg";break;case u.FILE_OP:t="file.svg";break;case u.JSON_ERROR:case u.SYNTAX_ERROR:case u.DOWNLOAD_ERROR:t="error.svg"}return t}openFile(e){const t=e.label;switch(o.visualText.colorizeAnalyzer(),e.type){case u.SYNTAX_ERROR:o.visualText.analyzer.seqFile,e.uri&&n.window.showTextDocument(e.uri).then(t=>{const s=new n.Position(e.line-1,0);t.selections=[new n.Selection(s,s)];const i=new n.Range(s,s);t.revealRange(i)});break;case u.UPDATER_TIMEOUT:this.updaterHelp();break;case u.DOWNLOAD_ERROR:this.downloadHelp();break;case u.OPEN_PATH:e.uri&&(c.dirfuncs.isDir(e.uri.fsPath)?o.visualText.openFileManager(e.uri.fsPath):a.existsSync(e.uri.fsPath)&&n.window.showTextDocument(e.uri));break;case u.JSON_ERROR:const s=t.indexOf(".json"),i=t.substring(18,s+5),r="Json error(s) in file: "+i;n.window.showErrorMessage(r,"Click to fix file").then(e=>{n.window.showTextDocument(n.Uri.file(i))});break;default:e.uri&&n.window.showTextDocument(e.uri)}}updateTitle(e){e.length?this.logView.title=`LOGGING (${e})`:this.logView.title="LOGGING"}stopFileOps(){o.visualText.stopFileOps()}exploreEngineDir(){const e=o.visualText.engineDirectory();o.visualText.openFileManager(e.fsPath)}}t.LogView=p},6290(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModFile=t.modFile=t.modType=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=s(9621),l=s(6951),c=s(9679),u=s(5603),d=s(4792);var p;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.INPUT=1]="INPUT",e[e.SPEC=2]="SPEC",e[e.KB=3]="KB"}(p||(t.modType=p={}));class m extends l.TextFile{constructor(){super(),this.MODFILE_HEADER="i.__awaiter(this,void 0,void 0,function*(){e=!(void 0===typeof t||!t||"Abort"==t.label)&&(yield o.visualText.analyzer.modCreate(o.visualText.analyzer.getKBDirectory()))}))}else{const t=o.visualText.modFileList();yield n.window.showQuickPick(t,{title:"Add to Mod File",canPickMany:!1,placeHolder:"choose mod file"}).then(t=>{if(!t||!t.description)return!1;const s=n.Uri.file(t.description);o.visualText.setModFile(s),e=!0})}return e})}addFile(e,t=!1){o.visualText.mod.getMod().then(s=>{s&&(o.visualText.mod.appendFile(e),t&&n.window.showTextDocument(this.getUri()))})}load(e){return i.__awaiter(this,void 0,void 0,function*(){this.setFile(e),this.seqInsertPoint="";let t=!1,s=!1,i=!1;if(this.parseFiles(e)){if(yield this.selectInsertPoint(e),"abort"==this.seqInsertPoint)return;const a=new l.TextFile;for(const e of this.files)if(a.setFile(e.uri),a.setText(e.content),a.saveFile(),e.type==p.INPUT&&(i=!0),e.type==p.KB&&(t=!0),e.type==p.SPEC&&(s=!0),e.type==p.SPEC){const t=o.visualText.analyzer.seqFile.findPassFromUri(this.seqInsertPoint);o.visualText.analyzer.seqFile.insertPass(t.passNum,e.uri)}i&&n.commands.executeCommand("textView.refreshAll"),s&&n.commands.executeCommand("sequenceView.refreshAll"),t&&n.commands.executeCommand("kbView.refreshAll")}})}saveSection(e,t){const s=new l.TextFile,i=n.Uri.file(e);if(s.setFile(i),s.setText(t),s.saveFile(),e.includes("\\spec\\")){const t=o.visualText.analyzer.seqFile.findPassFromUri(e);o.visualText.analyzer.seqFile.insertPass(t.passNum,i)}}clearMod(e){e.uri=n.Uri.file(""),e.parentDir="",e.filename="",e.type=p.UNKNOWN,e.content="",e.exists=!1}parseFiles(e){this.setFile(e);let t=!0,s="",i=!1;n.Uri.file(""),p.UNKNOWN,this.files=[];for(const e of this.getLines())if(0==e.indexOf(this.MODFILE_HEADER)){i=!0,s.length>0&&(this.files[this.files.length-1].content=s),s="";const n=e.split(/[\<\t\s\>]/)[2],r=this.getModItem(n);this.files.push(r),r.exists&&(u.logView.addMessage("Mod exists: "+a.join(r.parentDir,r.filename),u.logLineType.WARNING,r.uri),t=!1)}else i&&(s=s+e+"\n");return s.length>0&&(this.files[this.files.length-1].content=s),t||n.commands.executeCommand("logView.refreshAll"),t}getModItem(e){const t=a.join(o.visualText.analyzer.getAnalyzerDirectory().fsPath,e);let s=p.UNKNOWN;const i=a.basename(t),l=a.dirname(e);return t.includes(this.MODFILE_KB)?s=p.KB:t.includes(this.MODFILE_SPEC)?s=p.SPEC:t.includes(this.MODFILE_INPUT)&&(s=p.INPUT),{uri:n.Uri.file(t),parentDir:l,filename:i,type:s,content:"",exists:r.existsSync(t)}}selectInsertPoint(e){return i.__awaiter(this,void 0,void 0,function*(){this.setFile(e);let t="";for(const e of this.getLines())if(0==e.indexOf(this.MODFILE_HEADER)){const s=e.split(/[\<\t\s\>]/)[2];if(t=a.join(o.visualText.getAnalyzerDir().fsPath,s),t.includes(this.MODFILE_SPEC)){const e=[];(new c.SequenceFile).choicePasses(o.visualText.analyzer.getSpecDirectory().fsPath,e,""),yield n.window.showQuickPick(e,{title:"Choose Pass",canPickMany:!1,placeHolder:"Choose pass to insert after"}).then(e=>{this.seqInsertPoint=void 0!==typeof e&&e?e.description:"abort"})}}return""})}appendFile(e){const t=r.readFileSync(e.fsPath,"utf8");this.appendText(this.headerLine(e)),this.appendText(t),this.saveFile()}headerLine(e){let t="";const s=e.fsPath;let i="";a.win32.normalize(s),s.includes(this.MODFILE_KB)?i=o.visualText.analyzer.anaSubDirPath(d.anaSubDir.KB):s.includes(this.MODFILE_SPEC)?i=o.visualText.analyzer.anaSubDirPath(d.anaSubDir.SPEC):s.includes(this.MODFILE_INPUT)&&(i=o.visualText.analyzer.anaSubDirPath(d.anaSubDir.INPUT));const n=a.basename(e.fsPath),r=a.join(i,n);return t="\n"+this.MODFILE_HEADER+" "+r+">\n",t}}t.ModFile=m},9070(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NLPFile=t.nlpFile=t.reformatType=t.analyzerType=t.analyzerOperation=t.analyzerStatus=t.anaQueueStatus=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=i.__importStar(s(857)),l=s(5720),c=s(6951),u=s(9621),d=s(5603),p=s(9679),m=s(766),h=s(4624),f=s(6514),_=s(3907);Object.defineProperty(t,"reformatType",{enumerable:!0,get:function(){return _.ReformatType}});const g=s(2117),y=s(7141),v=i.__importStar(s(4675));var x,w,b,T;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.RUNNING=1]="RUNNING",e[e.DONE=2]="DONE",e[e.FAILED=3]="FAILED"}(x||(t.anaQueueStatus=x={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ANALYZING=1]="ANALYZING",e[e.DONE=2]="DONE",e[e.FAILED=3]="FAILED"}(w||(t.analyzerStatus=w={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.RUN=1]="RUN",e[e.STOP=2]="STOP"}(b||(t.analyzerOperation=b={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.FILE=1]="FILE",e[e.DIRECTORY=2]="DIRECTORY"}(T||(t.analyzerType=T={}));class L extends c.TextFile{constructor(e="",t=!0,s=""){super(),this.anaQueue=new Array,this.timerStatus=x.UNKNOWN,this.timerID=0,this.stopAllFlag=!1,s.length?this.setText(s,t):e.length&&this.setFile(n.Uri.file(e),t)}analyze(e){u.visualText.processID?n.window.showWarningMessage("Analyzer already running"):n.window.withProgress({location:n.ProgressLocation.Notification,title:"Analyzer",cancellable:!0},(t,o)=>i.__awaiter(this,void 0,void 0,function*(){o.onCancellationRequested(()=>{h.nlpStatusBar.analyzerButton(),u.visualText.nlp.stopAll(),console.log("User canceled analyzer")});const i=u.visualText.exePath().fsPath;i.length&&r.existsSync(i)||n.window.showErrorMessage("NLP Engine missing","Download Now").then(e=>{u.visualText.startUpdater()});const c=a.dirname(i);u.visualText.readState(),n.commands.executeCommand("workbench.action.files.saveAll"),t.report({increment:10,message:"Running..."}),l.dirfuncs.emptyDir(u.visualText.analyzer.getOutputDirectory().fsPath),l.dirfuncs.emptyDir(u.visualText.analyzer.getLogDirectory().fsPath);const p=e.fsPath;u.visualText.analyzer.setCurrentTextFile(e),u.visualText.analyzer.saveAnalyzerState();const m=a.basename(e.fsPath),_=l.dirfuncs.isDir(e.fsPath)?"directory":"file",g=Date.now();d.logView.clearLogs(),d.logView.addMessage("Analyzing "+_+": "+m,d.logLineType.ANALYER_OUTPUT,e),n.commands.executeCommand("logView.refreshAll"),f.outputView.setType(f.outputFileType.ALL);const x=p.search("input"),b=p.substring(0,x),T=h.nlpStatusBar.getDevMode(),L=T==h.DevMode.DEV?"-DEV":T==h.DevMode.SILENT?"-SILENT":"",M=h.nlpStatusBar.getRunMode(),k=M===h.RunMode.COMPILED||M===h.RunMode.COMPILED_KB||M===h.RunMode.COMPILED_ANALYZER;if(v.sendEvent("analyzer.run",{mode:k?"compiled":"interpreted"}),k&&!u.visualText.nlp.stageCompiledAnalyzer(b,c,e,M))return u.visualText.nlp.setAnalyzerStatus(e,w.FAILED),void n.commands.executeCommand("logView.refreshAll");const D=["-ANA",'"'+b+'"',"-WORK",'"'+c+'"'];M!==h.RunMode.COMPILED&&M!==h.RunMode.COMPILED_ANALYZER||D.push("-COMPILED"),D.push('"'+p+'"',L),u.visualText.nlp.setAnalyzerStatus(e,w.ANALYZING);const S=s(5317);return new Promise(t=>{h.nlpStatusBar.analyzerButton(!1);const s=Date.now();u.visualText.processID=S.execFile(i,D,(i,r,o)=>{const c=Date.now()-s,f=a.join(u.visualText.getCurrentAnalyzer().fsPath,"output"),v=n.Uri.file(a.join(f,"stdout.log")),x=n.Uri.file(a.join(f,"stderr.log"));l.dirfuncs.writeFile(v.fsPath,r),l.dirfuncs.writeFile(x.fsPath,o),console.log("stdout: "+r),console.log("stderr: "+o);let b=d.logView.syntaxErrorsOutput("err.log");if(b||(b=d.logView.syntaxErrorsLog("make_ana")),(0,y.refreshEngineDiagnostics)(),i||b)i&&d.logView.addMessage(i.message,d.logLineType.ANALYER_OUTPUT,n.Uri.file(p)),u.visualText.nlp.setAnalyzerStatus(e,w.FAILED),h.nlpStatusBar.resetAnalyzerButton(),b?d.logView.loadMakeAna(!1):d.logView.makeAna(!1)||d.logView.loadAnalyzerOuts(!1),n.commands.executeCommand("outputView.refreshAll"),n.commands.executeCommand("logView.refreshAll"),t("Failed");else{const i=(r||"")+"\n"+(o||""),f=e=>Math.round(100*e)/100,y=(Date.now()-g)/1e3,v=(s-g)/1e3,x=y-v-c/1e3,b=i.match(/Loaded knowledge base:\s*([0-9.]+)/),T=i.match(/Loaded (compiled analyzer|analyzer):\s*([0-9.]+)/),L=i.match(/Exec analyzer time\s*=\s*([0-9.]+)/),M=[],k=/Lazy-loading words from ([^\r\n\]]+)/gi;let D;for(;null!==(D=k.exec(i));)M.push(D[1].trim());const S=i.match(/READ kbb files time\s*=\s*([0-9.]+)/),E=i.match(/READ dict files time\s*=\s*([0-9.]+)/),Y=b?parseFloat(b[1]):0,P=T?parseFloat(T[2]):0,F=L?parseFloat(L[1]):0,A=f(y),O=f(v),C=f(Y),N=f(P),R=f(F),j=f(x),I=f(A-O-C-N-R-j),H=A.toFixed(2),z=["Analyzing "+_+": "+m];z.push("Setup (extension): "+O.toFixed(2)+" sec"),z.push("Engine startup: "+I.toFixed(2)+" sec"),b&&z.push("Loaded knowledge base: "+C.toFixed(2)+" sec");const U=new Set;for(const e of M){const t=/\.dict$/i.test(e),s=t?E:S,i=t?"dict":"kbb";let n="";s&&!U.has(i)?(n=": "+f(parseFloat(s[1])).toFixed(2)+" sec",U.add(i)):s&&(n=" (incl. above)"),z.push((b?" ":"")+"Lazy-loaded "+a.basename(e)+n)}T&&z.push("Loaded "+T[1]+": "+N.toFixed(2)+" sec"),L&&z.push("Exec analyzer time: "+R.toFixed(2)+" sec"),z.push("Post-processing (extension): "+j.toFixed(2)+" sec"),z.push("Done analyzing "+_+": "+m+" ("+H+" sec)"),l.dirfuncs.writeFile(u.visualText.analyzer.getOutputDirectory("analyze.log").fsPath,z.join("\n")+"\n");for(const e of z.slice(1))d.logView.addMessage(e,d.logLineType.ANALYER_OUTPUT,n.Uri.file(p));u.visualText.analyzer.saveCurrentFile(e),n.commands.executeCommand("textView.refreshAll"),n.commands.executeCommand("outputView.refreshAll"),n.commands.executeCommand("sequenceView.refreshAll"),n.commands.executeCommand("analyzerView.refreshAll"),n.commands.executeCommand("kbView.refreshAll"),n.commands.executeCommand("logView.refreshAll"),u.visualText.nlp.setAnalyzerStatus(e,w.DONE),h.nlpStatusBar.resetAnalyzerButton(),t("Processed")}}).pid})}))}stopAll(){u.visualText.nlp.stopAllFlag=!0}stageCompiledAnalyzer(e,t,s,i=h.RunMode.COMPILED){const l=a.basename(e.replace(/[\\/]+$/,"")),c=o.platform(),u="win32"===c?".dll":"darwin"===c?".dylib":".so",p=`${i===h.RunMode.COMPILED_KB?"kb":i===h.RunMode.COMPILED_ANALYZER?"analyzer":l}${u}`,m=a.join(e,p);if(!r.existsSync(m)){d.logView.addMessage(`Compiled library not found: ${m}`,d.logLineType.ANALYER_OUTPUT,s);const e=i===h.RunMode.COMPILED_KB?"Compile KB":i===h.RunMode.COMPILED_ANALYZER?"Compile Analyzer Only":"Compile Analyzer and KB";return n.window.showErrorMessage(`Compiled library not found: ${p}. ${e} first, or switch the run mode back to Interpreted.`,e).then(e=>{"Compile Analyzer and KB"===e?n.commands.executeCommand("analyzerView.compileAnalyzer"):"Compile Analyzer Only"===e?n.commands.executeCommand("analyzerView.compileAnalyzerOnly"):"Compile KB"===e&&n.commands.executeCommand("kbView.compileKB")}),!1}try{const t=a.join(e,"bin");if(r.existsSync(t)||r.mkdirSync(t,{recursive:!0}),i===h.RunMode.COMPILED_KB)r.copyFileSync(m,a.join(t,`kb${u}`)),r.copyFileSync(m,a.join(t,`kbu${u}`)),d.logView.addMessage(`Staged ${p} as ${a.join(t,`kb${u}`)} (and kbu${u})`,d.logLineType.ANALYER_OUTPUT,s);else if(i===h.RunMode.COMPILED_ANALYZER){r.copyFileSync(m,a.join(t,`run${u}`)),r.copyFileSync(m,a.join(t,`runu${u}`));for(const e of[`kb${u}`,`kbu${u}`]){const s=a.join(t,e);r.existsSync(s)&&r.unlinkSync(s)}d.logView.addMessage(`Staged ${p} as ${a.join(t,`run${u}`)} (and runu${u}); KB interpreted`,d.logLineType.ANALYER_OUTPUT,s)}else r.copyFileSync(m,a.join(t,`run${u}`)),r.copyFileSync(m,a.join(t,`runu${u}`)),r.copyFileSync(m,a.join(t,`kb${u}`)),r.copyFileSync(m,a.join(t,`kbu${u}`)),d.logView.addMessage(`Staged ${p} as ${a.join(t,`run${u}`)}, runu${u}, kb${u}, kbu${u}`,d.logLineType.ANALYER_OUTPUT,s);return!0}catch(e){const t=e&&e.message?e.message:String(e);return d.logView.addMessage(`Failed to stage compiled analyzer library: ${t}`,d.logLineType.ANALYER_OUTPUT,s),n.window.showErrorMessage(`Failed to stage compiled analyzer library: ${t}`),!1}}setAnalyzerStatus(e,t){for(const s of u.visualText.nlp.anaQueue)if(s.uri.fsPath==e.fsPath){s.status=t;break}}addAnalyzer(e,t){t==T.FILE?this.anaQueue.push({uri:e,operation:b.RUN,status:w.UNKNOWN,type:t}):this.addDirsRecursive(e,t)}addDirsRecursive(e,t){l.dirfuncs.getFiles(e).length>0&&!l.dirfuncs.directoryIsLog(e.fsPath)&&this.anaQueue.push({uri:e,operation:b.RUN,status:w.UNKNOWN,type:t});const s=l.dirfuncs.getDirectories(e);for(const e of s)this.addDirsRecursive(e,t)}startAnalyzer(e=100){0==u.visualText.nlp.timerID&&(d.logView.clearLogs(!1),n.commands.executeCommand("logView.clear"),u.visualText.debugMessage("Analyzing...",d.logLineType.ANALYER_OUTPUT),u.visualText.nlp.timerID=+setInterval(this.analyzerTimer,e))}analyzerTimer(){let e=u.visualText.nlp.anaQueue[0];u.visualText.nlp.anaQueue.length;let t=!0;if(u.visualText.nlp.stopAllFlag)u.visualText.nlp.shutDown();else{for(const s of u.visualText.nlp.anaQueue){if(s.status==w.UNKNOWN||s.status==w.ANALYZING){e=s,t=!1;break}s.status!=w.FAILED&&s.status!=w.DONE&&(t=!1)}switch(t?(n.commands.executeCommand("setContext","anaOps.running",!1),u.visualText.nlp.stopAllFlag=!1,u.visualText.nlp.timerStatus=x.DONE):(n.commands.executeCommand("setContext","anaOps.running",!0),u.visualText.nlp.timerStatus=x.RUNNING),u.visualText.nlp.timerStatus){case x.RUNNING:e.status==w.UNKNOWN&&e.operation===b.RUN&&(e.status=w.ANALYZING,u.visualText.nlp.analyze(e.uri));break;case x.DONE:u.visualText.nlp.shutDown()}}}shutDown(){clearInterval(u.visualText.nlp.timerID),u.visualText.debugMessage("Analyzing done",d.logLineType.ANALYER_OUTPUT),u.visualText.nlp.stopAllFlag=!1,u.visualText.nlp.timerID=0,u.visualText.nlp.anaQueue=[]}insertRule(e){u.visualText.colorizeAnalyzer(),n.window.showTextDocument(this.getUri(),{viewColumn:n.ViewColumn.Beside}).then(t=>{const s=this.getText().length,i=t.document.positionAt(s);t.edit(t=>{t.insert(i,e)})})}replaceContext(e,t=!0){u.visualText.colorizeAnalyzer(),t?n.window.showTextDocument(this.getUri(),{viewColumn:n.ViewColumn.Beside}).then(t=>{this.replaceContextLine(e,t)}):n.window.showTextDocument(this.getUri()).then(t=>{this.replaceContextLine(e,t)})}replaceContextLine(e,t){const s=this.findLineSelection(e);if(!s.isEmpty){const i=new n.SnippetString(e);t.insertSnippet(i,s)}}findLineSelection(e){let t=this.findLineStartsWith("@NODES");return t.isEmpty&&(t=this.findLineStartsWith("@PATH")),t.isEmpty&&(t=this.findLineStartsWith("@MULTI")),t}replaceContextLineInFile(e){const t=this.findLineSelection(e).start.line;this.replaceLineNumber(t,e),this.saveFileLines()}searchWord(e,t=!1){if(this.setDocument(e),this.getFileType()==c.nlpFileType.NLP){const s=e.selection.start,i=e.document.getWordRangeAtPosition(s),n=e.document.getText(i);m.sequenceView.search(n,t)}}selectSequence(e){this.setDocument(e),this.getFileType()==c.nlpFileType.NLP&&m.sequenceView.reveal(e.document.fileName)}passTree(e){if(this.setDocument(e),this.getFileType()==c.nlpFileType.NLP)m.sequenceView.passTree(e.document.fileName);else if(this.getFileType()==c.nlpFileType.TXXT){const t=this.passNumberFromAna(e.document.uri.fsPath);m.sequenceView.openTreeFile(t)}}openRuleMatchesText(e){if(this.setDocument(e),this.getFileType()==c.nlpFileType.NLP)m.sequenceView.openTreeFileFromPath(e.document.fileName);else if(this.getFileType()==c.nlpFileType.TREE){const t=this.passNumberFromAna(e.document.uri.fsPath);m.sequenceView.openRuleMatchFile(t)}}passNumberFromAna(e){return parseInt(e.substring(e.length-8,e.length-5))}openPassFile(e){if(this.setDocument(e),this.getFileType()==c.nlpFileType.TREE||this.getFileType()==c.nlpFileType.TXXT){const t=this.passNumberFromAna(e.document.uri.fsPath),s=new p.SequenceFile;s.init();const i=s.getUriByPassNumber(t);r.existsSync(i.fsPath)?(u.visualText.colorizeAnalyzer(),n.window.showTextDocument(i)):n.window.showWarningMessage("No pass file "+a.basename(i.fsPath))}}commentLines(e){if(this.setDocument(e),this.getFileType()==c.nlpFileType.NLP){const t=e.selection.start,s=e.selection.end;let i=t.line,a="",r=0;const o=this.getSelectedLines(e);if(o.length){let l=!1;for(let e of o){i==t.line&&(l="#"!=e.charAt(0));const s="#"==e.charAt(0);l&&!s&&e.length&&(e="#"+e),!l&&s&&(e=e.substring(1)),a&&(a+=this.getSeparator()),a+=e,r=e.length,i++}if(a.length){const i=new n.Position(t.line,0),o=new n.Position(s.line,r+1),l=new n.Range(i,o);a=a.replace(/\\/g,"\\\\").replace(/\$/g,"\\$");const c=new n.SnippetString(a);e.insertSnippet(c,l)}}}}reformatRule(e,t){if(this.setDocument(e),this.getFileType()==c.nlpFileType.NLP){const s=this.findRuleText(e);if(s[0].length){const i=this.formatRule(s[0],t),a=new n.Selection(s[1].start,s[1].end),r=new n.SnippetString(i);e.insertSnippet(r,a)}}}duplicateLine(e){if(this.setDocument(e),this.getFileType()==c.nlpFileType.NLP||this.getFileType()==c.nlpFileType.DICT||this.getFileType()==c.nlpFileType.KBB){const t=e.selection.active;let s=this.getLines(!0)[t.line];const i=new n.Position(t.line+1,0),a=new n.Selection(i,i),r=(new n.SnippetString).appendText(s);e.insertSnippet(r,a),e.selection=a}}findRuleText(e){let t="";const s=e.selection.active;let i=s.line,a=s.character,r=s.line,o=s.character;const l=this.getLines(!0);let c=l[i],u=c,d=!1,p=!1,m=!1,h=0;for(;(h=c.search("<-"))<0;)t=c+t,u=c,c=l[--i],d=!0,p=!0;t=c+t,a=it.refresh()),n.commands.registerCommand("outputView.copytoKB",e=>this.copytoKB(e)),n.commands.registerCommand("outputView.copytoText",e=>this.copytoText(e)),n.commands.registerCommand("outputView.deleteOutput",e=>this.deleteOutput(e)),n.commands.registerCommand("outputView.openFile",e=>this.openFile(e)),n.commands.registerCommand("outputView.addTest",e=>this.addTest(e)),n.commands.registerCommand("outputView.runTest",e=>this.runTest(e)),n.commands.registerCommand("outputView.deleteTest",e=>this.deleteTest(e)),n.commands.registerCommand("outputView.editTest",e=>this.editTest(e)),n.commands.registerCommand("outputView.rename",e=>this.rename(e)),n.commands.registerCommand("outputView.kb",()=>this.loadKB()),n.commands.registerCommand("outputView.matches",()=>this.loadTxxt()),n.commands.registerCommand("outputView.trees",()=>this.loadTrees()),n.commands.registerCommand("outputView.all",()=>this.loadAll()),n.commands.registerCommand("outputView.orphanPasses",()=>this.loadOrphans()),n.commands.registerCommand("outputView.deleteOrphans",()=>this.deleteOrphans()),n.commands.registerCommand("outputView.explore",()=>this.explore()),n.commands.registerCommand("outputView.video",()=>this.video()),this.outputFiles=[],this.logDirectory=n.Uri.file(""),this.testDirectory=n.Uri.file(""),this.type=p.ALL}static attach(e){return t.outputView||(t.outputView=new h(e)),t.outputView}rename(e){o.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:a.basename(e.uri.fsPath),prompt:"Enter new name for file"}).then(t=>{if(t){const s=e.uri;0==a.extname(t).length&&(t+=a.extname(e.uri.fsPath));const i=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t));c.dirfuncs.rename(s.fsPath,i.fsPath),n.window.showTextDocument(i);const r=n.Uri.file(a.join(s.fsPath+o.visualText.LOG_SUFFIX));if(c.dirfuncs.isDir(r.fsPath)){const s=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t+o.visualText.LOG_SUFFIX));c.dirfuncs.rename(r.fsPath,s.fsPath)}n.commands.executeCommand("outputView.refreshAll")}})}editTest(e){o.visualText.getWorkspaceFolder()&&o.visualText.editTestFiles(e.uri,!0)}deleteTest(e){const t=[];t.push({label:"Yes",description:"Delete all the test files associated with this test"}),t.push({label:"No",description:"Do not delete the test files"}),n.window.showQuickPick(t,{title:"Delete Test Files",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(t=>{if(!t||"No"==t.label)return;const s=o.visualText.analyzer.testFolder(e.uri,!0);o.visualText.fileOps.addFileOperation(s,s,[u.fileOpRefresh.TEXT,u.fileOpRefresh.OUTPUT],u.fileOperation.DELETE),o.visualText.fileOps.startFileOps()})}runTest(e){const t=a.dirname(e.uri.fsPath);let s=a.basename(t);s=s.substring(0,s.length-o.visualText.LOG_SUFFIX.length);const i=a.join(a.dirname(t),s);r.existsSync(i)&&(o.visualText.testInit(),c.dirfuncs.delFile(o.visualText.regressionTestFile()),o.visualText.runTest(n.Uri.file(i)),o.visualText.closeTest(),n.window.showTextDocument(n.Uri.file(o.visualText.regressionTestFile())),n.commands.executeCommand("kbView.refreshAll"))}addTest(e){let t=!0;const s=a.basename(a.dirname(e.uri.fsPath)),i=(s.substring(0,s.length-4),o.visualText.analyzer.testFolder(e.uri,!0));r.existsSync(i.fsPath)||(this.testDirectory=i,c.dirfuncs.makeDir(i.fsPath),t=!1);const l=n.Uri.file(a.join(i.fsPath,a.basename(e.uri.fsPath)));if(t&&r.existsSync(e.uri.fsPath)){const t=[];t.push({label:"Yes",description:"Overwrite the current test file?"}),t.push({label:"No",description:"Do not overwrite"}),n.window.showQuickPick(t,{title:"Add Test File",placeHolder:"Choose response"}).then(t=>{t&&"No"!=t.label&&(o.visualText.fileOps.addFileOperation(e.uri,l,[u.fileOpRefresh.OUTPUT,u.fileOpRefresh.TEXT],u.fileOperation.COPY),o.visualText.fileOps.startFileOps())})}else o.visualText.fileOps.addFileOperation(e.uri,l,[u.fileOpRefresh.OUTPUT,u.fileOpRefresh.TEXT],u.fileOperation.COPY),o.visualText.fileOps.startFileOps()}video(){n.commands.executeCommand("vscode.open",n.Uri.parse("http://vscodeoutviewer.visualtext.org"))}explore(){const e=o.visualText.analyzer.getOutputDirectory();o.visualText.openFileManager(e.fsPath)}deleteOrphans(){if(o.visualText.hasWorkspaceFolder()){const e=[],t=c.dirfuncs.getFiles(o.visualText.analyzer.getSpecDirectory(),[".pat",".nlp",".py"]);for(const s of t)1==o.visualText.analyzer.seqFile.isOrphan(a.parse(s.fsPath).name)&&e.push(s);const s=e.length,i=[];i.push({label:"Yes",description:"Delete all orphan passes"}),i.push({label:"No",description:"Do not delete file"}),n.window.showQuickPick(i,{title:"Delete Orphan Files",placeHolder:"Delete all "+s.toString()+" file(s)"}).then(t=>{if(t&&"No"!=t.label){for(const t of e)o.visualText.fileOps.addFileOperation(t,t,[u.fileOpRefresh.OUTPUT],u.fileOperation.DELETE);o.visualText.fileOps.startFileOps()}})}}setType(e){this.type=e}getType(){return this.type}loadAll(){this.clearOutput(p.ALL)}loadTxxt(){this.clearOutput(p.TXXT)}loadTrees(){this.clearOutput(p.TREE)}loadKB(){this.clearOutput(p.KB)}loadOrphans(){this.clearOutput(p.NLP)}clearOutput(e){this.type=e,this.outputFiles=[],n.commands.executeCommand("outputView.refreshAll")}fileHasLog(e){if(this.logDirectory=n.Uri.file(""),0==e.length)return!1;if(this.logDirectory=n.Uri.file(e+o.visualText.LOG_SUFFIX),!r.existsSync(this.logDirectory.fsPath))return!1;const t=r.lstatSync(this.logDirectory.fsPath);return!!t&&t.isDirectory()}fileHasTest(e){if(this.testDirectory=n.Uri.file(""),0==e.length)return!1;if(this.logDirectory=n.Uri.file(e+o.visualText.TEST_SUFFIX),!r.existsSync(this.testDirectory.fsPath))return!1;const t=r.lstatSync(this.testDirectory.fsPath);return!!t&&t.isDirectory()}getOutputFiles(){if(this.outputFiles=[],o.visualText.analyzer.hasText())if(this.type==p.KB){this.outputFiles=c.dirfuncs.getFiles(o.visualText.analyzer.getAnalyzerDirectory("kb"),[".kb"]);const e=c.dirfuncs.getFiles(o.visualText.analyzer.getOutputDirectory(),[".kbb"]);this.outputFiles=this.outputFiles.concat(e)}else if(this.type==p.NLP){const e=c.dirfuncs.getFiles(o.visualText.analyzer.getSpecDirectory(),[".pat",".nlp",".py"]);for(const t of e)1==o.visualText.analyzer.seqFile.isOrphan(a.parse(t.fsPath).name)&&this.outputFiles.push(t)}else if(this.type==p.TXXT){const e=c.dirfuncs.getFiles(this.logDirectory,[".txxt"]);this.outputFiles=this.outputFiles.concat(e)}else if(this.type==p.TREE){const e=n.Uri.file(a.join(this.logDirectory.fsPath,"final.tree"));r.existsSync(e.fsPath)&&this.outputFiles.push(e);const t=c.dirfuncs.getFiles(this.logDirectory,[".tree"]);this.outputFiles=this.outputFiles.concat(t)}else{const e=o.visualText.analyzer.getTextPath().fsPath;if(this.outputFiles=[],e.length&&this.fileHasLog(e)){const e=n.Uri.file(a.join(this.logDirectory.fsPath,"final.tree"));r.existsSync(e.fsPath)&&this.outputFiles.push(e);const t=c.dirfuncs.getFiles(this.logDirectory);for(const e of t){const t=a.parse(e.fsPath).ext;0!=t.localeCompare(".tree")&&0!=t.localeCompare(".txxt")&&this.outputFiles.push(e)}}}return this.outputFiles}openFile(e){new l.TextFile(e.fsPath).cleanZeroZero(),o.visualText.colorizeAnalyzer(),n.window.showTextDocument(e)}deleteOutput(e){if(o.visualText.hasWorkspaceFolder()){const t=[];let s="";s=s.concat("Delete '",a.basename(e.uri.fsPath),"'"),t.push({label:"Yes",description:s}),t.push({label:"No",description:"Do not delete file"}),n.window.showQuickPick(t,{title:"Delete File",placeHolder:"Select Yes or No?"}).then(t=>{t&&"No"!=t.label&&(o.visualText.fileOps.addFileOperation(e.uri,e.uri,[u.fileOpRefresh.OUTPUT],u.fileOperation.DELETE),o.visualText.fileOps.startFileOps())})}}copytoKB(e){const t=o.visualText.analyzer.anaSubDirPath(d.anaSubDir.KB);this.copyFileToAnalyzer(e.uri,t,"Copy file to another analyzer","Copy file to the KB directory of:")}copytoText(e){const t=o.visualText.analyzer.anaSubDirPath(d.anaSubDir.INPUT);this.copyFileToAnalyzer(e.uri,t,"Copy file to another analyzer","Copy file to input directory of:")}copyFileToAnalyzer(e,t,s,i){if(o.visualText.getWorkspaceFolder()){const r=o.visualText.analyzerFolderList();n.window.showQuickPick(r,{title:s,canPickMany:!1,placeHolder:i}).then(s=>{if(!s||!s.description)return;if(s.description.startsWith("(FOLDER"))return void n.window.showWarningMessage("You must select an analyzer directory not a folder");const i=n.Uri.file(a.join(s.description,t,a.basename(e.fsPath)));o.visualText.fileOps.addFileOperation(e,i,[u.fileOpRefresh.KB,u.fileOpRefresh.TEXT],u.fileOperation.COPY),o.visualText.fileOps.startFileOps()})}}}t.OutputView=h},6639(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.regressionRunner=t.RegressionRunner=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=i.__importStar(s(857)),l=i.__importStar(s(5317)),c=s(9621),u=s(5603),d="_log",p=new Set(["sources.md","readme.md"]),m=new Set([".json"]),h=["id"];class f{test(e,t){return i.__awaiter(this,void 0,void 0,function*(){yield this.run(e,"test",t)})}bless(e,t){return i.__awaiter(this,void 0,void 0,function*(){yield this.run(e,"bless",t)})}goldensExist(e,t){const s=a.join(e.fsPath,"test","expected"),i=a.join(e.fsPath,"input");if(t&&this.isFile(t.fsPath)){const e=a.relative(i,t.fsPath);return r.existsSync(a.join(s,e+".json"))}const n=t?a.join(s,a.relative(i,t.fsPath)):s;return this.dirHasJson(n)}run(e,t,s){return i.__awaiter(this,void 0,void 0,function*(){const i=e.fsPath,o=a.basename(i.replace(/[\\/]+$/,"")),l=this.enginePath();if(!l||!r.existsSync(l))return this.log(`Regression: NLP engine not found (${l||"nlp.exe"})`,e),void n.window.showErrorMessage("NLP engine not found. Download it first.");const d=c.visualText.engineDirectory().fsPath,p=this.loadConfig(i),m=a.join(i,"input");let h,f="";if(s&&this.isFile(s.fsPath)?(h=[s.fsPath],f=` (file: ${a.relative(m,s.fsPath)})`):(h=this.findInputs(i,p,null==s?void 0:s.fsPath),f=s?` (folder: ${a.relative(m,s.fsPath)||"input"})`:""),0===h.length)return this.log(`${o}: no input files found under input/${f}`,e),void n.window.showWarningMessage(`${o}: no input files found under input/${f}`);const _=new Set(p.ignoreFields);n.commands.executeCommand("workbench.view.extension.vtOutput"),n.commands.executeCommand("logView.focus"),u.logView.clearLogs(),this.log(`engine: ${l}`,e),this.log(`${o}: ${"bless"===t?"blessing":"testing"} ${h.length} input file(s)${f}`,e),this.refresh();let g=0,y=0,v=0,x=0;for(const e of h){const s=a.relative(a.join(i,"input"),e),o=n.Uri.file(e),c=yield this.analyze(l,d,i,e),u=this.canon(c,_),p=this.goldenPath(i,e);if("bless"===t){r.mkdirSync(a.dirname(p),{recursive:!0}),r.writeFileSync(p,this.serialize(u)+"\n","utf8"),x++,this.log(` blessed ${s}`,o),this.refresh();continue}if(!r.existsSync(p)){v++,this.log(` MISSING ${s} (no golden - run 'bless')`,o),this.refresh();continue}const m=JSON.parse(r.readFileSync(p,"utf8"));if(this.deepEqual(m,u)){g++,this.log(` PASS ${s}`,o),this.refresh();continue}y++,this.log(` FAIL ${s}`,o);const{removed:h,added:f}=this.diffRecords(m,u,_);for(const e of h)this.log(` - ${e}`,o);for(const e of f)this.log(` + ${e}`,o);0===h.length&&0===f.length&&this.log(" (output structure changed; see test/expected/ vs run)",o),this.refresh()}if("bless"===t){const t=`${o}: blessed ${x} golden(s) under test/expected/`;this.log(t,e),n.window.showInformationMessage(t)}else{const t=0===y&&0===v?"OK":"REGRESSION",s=`${o}: ${g}/${g+y+v} passed`+(y?`, ${y} failed`:"")+(v?`, ${v} missing`:"")+` [${t}]`;this.log(` ${s}`,e),"OK"===t?n.window.showInformationMessage(s):n.window.showWarningMessage(s)}n.commands.executeCommand("logView.refreshAll")})}enginePath(){const e=c.visualText.engineDirectory().fsPath;if(!e)return"";const t="win32"===o.platform()?"nlp.exe":"nlp";return a.join(e,t)}analyze(e,t,s,i){const n=i+d;this.rmrf(n);const o=["-ANA",s,"-WORK",t,i];return new Promise(t=>{l.execFile(e,o,{maxBuffer:67108864},()=>{let e={};try{const t=a.join(n,"output.json");r.existsSync(t)&&(e=JSON.parse(r.readFileSync(t,"utf8")))}catch(t){e={}}this.rmrf(n),t(e||{})})})}findInputs(e,t,s){const i=a.join(e,"input"),n=null!=s?s:i;if(!this.isDir(n))return[];const o=[],l=e=>{for(const s of r.readdirSync(e,{withFileTypes:!0})){const n=a.join(e,s.name);if(s.isDirectory()){l(n);continue}if(!s.isFile())continue;const r=a.relative(i,n);if(r.split(/[\\/]/).some(e=>e.endsWith(d)))continue;if(p.has(s.name.toLowerCase()))continue;if(m.has(a.extname(s.name).toLowerCase()))continue;const c=r.split(a.sep).join("/");t.include.length&&!t.include.some(e=>this.globMatch(c,e))||t.exclude.some(e=>this.globMatch(c,e))||o.push(n)}};return l(n),o.sort(),o}dirHasJson(e){if(!this.isDir(e))return!1;for(const t of r.readdirSync(e,{withFileTypes:!0})){const s=a.join(e,t.name);if(t.isDirectory()){if(this.dirHasJson(s))return!0}else if(t.name.endsWith(".json"))return!0}return!1}loadConfig(e){var t;const s={include:[],exclude:[],ignoreFields:[...h]},i=a.join(e,"test","regress.json");if(r.existsSync(i))try{const e=JSON.parse(r.readFileSync(i,"utf8"));Array.isArray(e.include)&&(s.include=e.include),Array.isArray(e.exclude)&&(s.exclude=e.exclude),Array.isArray(e.ignore_fields)&&(s.ignoreFields=e.ignore_fields)}catch(e){this.log(`Regression: could not read ${i}: ${null!==(t=null==e?void 0:e.message)&&void 0!==t?t:e}`,n.Uri.file(i))}return s}goldenPath(e,t){const s=a.relative(a.join(e,"input"),t);return a.join(e,"test","expected",s+".json")}canon(e,t){if(Array.isArray(e)){const s=e.map(e=>this.canon(e,t));return s.length&&s.every(e=>null!==e&&"object"==typeof e)&&s.sort((e,t)=>{const s=this.stable(e),i=this.stable(t);return si?1:0}),s}if(null!==e&&"object"==typeof e){const s={};for(const i of Object.keys(e))t.has(i)||(s[i]=this.canon(e[i],t));return s}return e}records(e){const t=[];if(Array.isArray(e))if(e.length&&e.every(e=>null!==e&&"object"==typeof e&&!Array.isArray(e)))t.push(...e);else for(const s of e)t.push(...this.records(s));else if(null!==e&&"object"==typeof e)for(const s of Object.values(e))t.push(...this.records(s));return t}diffRecords(e,t,s){var i,n;const a=e=>{var t;const i=new Map;for(const n of this.records(e)){const e={};for(const t of Object.keys(n))s.has(t)||(e[t]=n[t]);const a=this.stable(e);i.set(a,(null!==(t=i.get(a))&&void 0!==t?t:0)+1)}return i},r=a(e),o=a(t),l=[],c=[];for(const[e,t]of r)for(let s=0;sthis.sortKeys(e));if(null!==e&&"object"==typeof e){const t={};for(const s of Object.keys(e).sort())t[s]=this.sortKeys(e[s]);return t}return e}deepEqual(e,t){return this.stable(e)===this.stable(t)}globMatch(e,t){const s="^"+t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,"\0").replace(/\*/g,"[^/]*").replace(/\0/g,".*").replace(/\?/g,".")+"$";return new RegExp(s).test(e)}isDir(e){try{return r.statSync(e).isDirectory()}catch(e){return!1}}isFile(e){try{return r.statSync(e).isFile()}catch(e){return!1}}rmrf(e){try{r.rmSync(e,{recursive:!0,force:!0})}catch(e){}}log(e,t){u.logView.addMessage(e,u.logLineType.ANALYER_OUTPUT,t)}refresh(){n.commands.executeCommand("logView.refreshAll")}}t.RegressionRunner=f,t.regressionRunner=new f},9679(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SequenceFile=t.PassItem=t.newPassType=t.moveDirection=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=s(6951),l=s(9621),c=s(5720),u=s(5348),d=s(9070);var p,m;!function(e){e[e.UP=0]="UP",e[e.DOWN=1]="DOWN"}(p||(t.moveDirection=p={})),function(e){e[e.RULES=0]="RULES",e[e.CODE=1]="CODE",e[e.DECL=2]="DECL"}(m||(t.newPassType=m={}));class h{constructor(){this.uri=n.Uri.file(""),this.library=n.Uri.file(""),this.text="",this.name="",this.comment="",this.passNum=0,this.row=0,this.tokenizer=!1,this.typeStr="",this.inFolder=!1,this.empty=!0,this.active=!0,this.tokenizers=["tokenize","tok","token","cmltokenize","cmltok","dicttok","dicttokz","chartok"],this.tokenizerTooltips=["separate alphanumerics, numerics, and special","separate alphanumerics, numerics, and special","separate alphanumerics, numerics, and special","cml tokenizer (rarely used)","cml tokenizer (rarely used)","dictionary lookup","dictionary lookup no whitespace","separate all into characters"]}isTokenizer(){return this.tokenizers.includes(this.typeStr.toLowerCase())}fetchTooltip(){const e=this.tokenizers.indexOf(this.typeStr);return this.tokenizerTooltips[e]}isRuleFile(){return 0==this.typeStr.localeCompare("nlp")||0==this.typeStr.localeCompare("rec")}isPython(){const e=this.typeStr.toLowerCase();return"python"==e||"pythonpre"==e||"pypre"==e}isFolder(){return 0==this.typeStr.localeCompare("folder")}isStub(){return 0==this.typeStr.localeCompare("stub")}isEnd(e){return 0==this.typeStr.localeCompare("end")&&0==this.name.localeCompare(e)}fileExists(){return!!r.existsSync(this.uri.fsPath)}exists(){return!this.empty}isEmpty(){return this.empty}clear(){this.uri=n.Uri.file(""),this.text="",this.name="",this.comment="",this.passNum=0,this.row=0,this.typeStr="",this.inFolder=!1,this.empty=!0,this.active=!0}}t.PassItem=h;class f extends o.TextFile{constructor(){super(),this.specDir=n.Uri.file(""),this.passItems=new Array,this.cleanpasses=new Array,this.newcontent=""}init(){l.visualText.analyzer.isLoaded()&&(this.specDir=l.visualText.analyzer.getSpecDirectory(),this.getPassFiles(this.specDir.fsPath))}setSpecDir(e){this.specDir=n.Uri.file(e)}libraryFileCheck(){for(const e of this.passItems)e.library=n.Uri.file(this.getLibraryFile(e.uri.fsPath)),e.library.fsPath.length}getPassFiles(e,t=!1){e=t?a.join(e,l.visualText.ANALYZER_SEQUENCE_FOLDER):e,t&&this.setSpecDir(e);const s=a.join(e,l.visualText.ANALYZER_SEQUENCE_FILE);if(!r.existsSync(s))return this.passItems=[],void n.window.showWarningMessage("Analyzer sequence file missing: "+s);super.setFile(n.Uri.file(s),!0);let i=1;this.passItems=[];let o="",c=0;for(const t of this.getLines()){const s=this.setPass(t,i);"folder"==s.typeStr||"stub"==s.typeStr?o=s.name:o.length?"end"==s.typeStr&&0==s.name.localeCompare(o)?o="":(s.inFolder=!0,i++):s.exists()&&i++,s.text.length&&(s.row=c++,s.isPython()||(s.uri=n.Uri.file(a.join(e,s.name+".nlp"))),s.library=n.Uri.file(this.getLibraryFile(s.uri.fsPath)),this.passItems.push(s))}}getPassItemFiles(){const e=new Array;for(const t of this.passItems)e.push(t.uri);return e}getPassItems(){return this.passItems}getLastItem(){return this.passItems[this.passItems.length-1]}getLastItemInFolder(e){const t=this.passItems[e];for(let s=e;s=3){if(s.text=e,s.passNum=t,0==i[0].localeCompare("#"))s.comment=this.tokenStr(i,2),s.typeStr="#";else{const e=i[0].replace("/","");e.length=0){let s=new Array;s.push(t);let i=!1;const n=l.visualText.analyzer.getSpecDirectory().fsPath;n.localeCompare(a.dirname(t.fsPath))&&(c.dirfuncs.isDir(t.fsPath)&&(s=[],s=c.dirfuncs.getFiles(t)),i=!0);let o=this.passItems[0];for(const t of s){const s=a.join(n,a.basename(t.fsPath));i&&r.copyFileSync(t.fsPath,s),this.findPassByFilename(a.basename(t.fsPath))||(o=this.createPassItemFromFile(s),e++,this.passItems.splice(e,0,o))}this.saveFile(),this.renumberPasses()}return e}findPassByFilename(e){const t=this.getPasses(),s=a.parse(e).name;for(const e of t)if(e.name==s)return e.passNum;return 0}insertNewPass(e,t,s){if(this.passItems.length&&t.length){const i=this.findPass(e.type,e.name);if(i){const e=this.createNewPassFile(t,s),n=this.createPassItemFromFile(e);this.passItems.splice(i.row+1,0,n),this.saveFile()}}}insertNewPassEnd(e,t){if(this.passItems.length&&e.length){const s=this.createNewPassFile(e,t),i=this.createPassItemFromFile(s);this.passItems.push(i),this.saveFile()}}insertNewPythonPass(e,t,s=!1){if(this.passItems.length&&t.length){const i=this.findPass(e.type,e.name),n=this.createPythonPassItem(t);i?this.passItems.splice(s?i.row:i.row+1,0,n):this.passItems.push(n),this.saveFile()}}createPythonPassItem(e){const t=this.createNewPythonFile(e),s=new h;return s.uri=n.Uri.file(t),s.name=e,s.typeStr="python",s.comment="# python pass",s.text=this.passString(s),s.empty=!1,s}createNewPythonFile(e){const t=a.join(l.visualText.analyzer.getSpecDirectory().fsPath,e.concat(".py"));return r.existsSync(t)||r.writeFileSync(t,this.newPythonContent(e),{flag:"w+"}),t}newPythonContent(e){let t="# NLP++ python pass: "+e+"\n";return t=t.concat('# Invoked as: python "/spec/',e,'.py" "" "" \n'),t=t.concat("# The pass runs wherever it sits in the sequence. The engine passes\n"),t=t.concat('# "pre" when it is placed before the tokenizer (raw text), or\n'),t=t.concat('# "post" when it is placed after the tokenizer.\n'),t=t.concat("import sys, io, os\n\n"),t=t.concat('appdir = sys.argv[1] if len(sys.argv) > 1 else "."\n'),t=t.concat('inputfile = sys.argv[2] if len(sys.argv) > 2 else ""\n'),t=t.concat('phase = sys.argv[3] if len(sys.argv) > 3 else "post"\n\n'),t=t.concat("# TODO: your pass logic here\n"),t}insertNewFolderPass(e,t,s){const i=this.getPassByRow(e);if(t.length&&i){const n=this.createPassItemFolder(s,t);return n.row=e+1,n.passNum=i.passNum,this.passItems.splice(n.row,0,n),this.saveFile(),n.row}return e}insertNewFolder(e,t){if(this.passItems.length&&t.length){let s=this.findPass(e.type,e.name);if(s){s.isFolder()&&(s=this.moveToFolderEnd(s));let e=this.createPassItemFolder("end",t);this.passItems.splice(s.row+1,0,e),e=this.createPassItemFolder("folder",t),this.passItems.splice(s.row+1,0,e),this.saveFile()}}}moveToFolderEnd(e){const t=this.getFolderPasses(e.typeStr,e.name,!0);return t[t.length-1]}insertNewFolderEnd(e){if(this.passItems.length&&e.length){let t=this.createPassItemFolder("folder",e);this.passItems.push(t),t=this.createPassItemFolder("end",e),this.passItems.push(t),this.saveFile()}}createPassItemFolder(e,t){const s=new h;return s.typeStr=e,s.name=t,s.comment="# new folder",s}deletePass(e){const t=this.findPass(e.type,e.name);t.isFolder()?this.deleteFolder(t):this.deletePassInSeqFile(t.typeStr,t.name),this.saveFile()}deleteFolder(e,t=!1){const s=this.getFolderPasses(e.typeStr,e.name,!0);if(t){const e=s.length,t=s[0],i=s[e-1];this.deletePassInSeqFile(i.typeStr,i.name),this.deletePassInSeqFile(t.typeStr,t.name)}else this.passItems.splice(s[0].row,s.length)}deletePassInSeqFile(e,t){const s=this.findPass(e,t);s&&this.passItems.splice(s.row,1)}createNewPassFile(e,t){const s=a.join(l.visualText.analyzer.getSpecDirectory().fsPath,e.concat(".nlp"));return r.writeFileSync(s,this.newPassContent(e,t),{flag:"w+"}),s}todayDate(){const e=new Date;return e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getDate()+" "+e.getHours()+":"+e.getMinutes()+":"+e.getSeconds()}newPassContent(e,t){let s=n.workspace.getConfiguration("user").get("name");0==(null==s?void 0:s.length)&&(s="Your Name");let i="###############################################\n";switch(i=i.concat("# FILE: ",e,"\n"),i=i.concat("# SUBJ: comment\n"),i=i.concat(`# AUTH: ${s}\n`),i=i.concat("# CREATED: ",this.todayDate(),"\n"),i=i.concat("# MODIFIED:\n"),i=i.concat("###############################################\n\n"),t){case m.RULES:i=i.concat("@NODES _ROOT\n\n"),i=i.concat("@RULES\n"),i=i.concat("_xNIL <-\n"),i=i.concat("\t_xNIL\t### (1)\n"),i=i.concat("\t@@\n");break;case m.CODE:i=i.concat("@CODE\n\n"),i=i.concat('G("kb") = getconcept(findroot(),"kb");\n'),i=i.concat('SaveKB("mykb.kbb",G("kb"),2);\n'),i=i.concat("\n@@CODE");break;case m.DECL:i=i.concat("@DECL\n\n"),i=i.concat('MyFunction(L("let")) {\n'),i=i.concat("\n"),i=i.concat("}\n"),i=i.concat("\n@@DECL")}return i}createPassItemFromFile(e){const t=new h;return t.uri=n.Uri.file(e),t.name=this.base(e),t.typeStr=a.extname(e).substring(1),t.comment="# comment",t.text=this.passString(t),t.empty=!1,t}passFileName(e){return e.concat(".nlp")}getFolderPasses(e,t,s=!1){const i=Array();let n="";for(const a of this.getPasses())if(0==n.length&&0==a.typeStr.localeCompare(e)&&0==a.name.localeCompare(t))n=a.name,s&&i.push(a);else if(n.length){if(0==a.typeStr.localeCompare("end")&&0==a.name.localeCompare(n)){s&&i.push(a);break}i.push(a)}return i}getPasses(){return 0==this.passItems.length&&this.init(),l.visualText.findFilesWithExtension(".nlp"),this.libraryFileCheck(),this.passItems}getPassFileUris(e){const t=new Array;let s=!1;for(const i of this.getPasses())e&&("folder"==i.typeStr?s=!0:"end"==i.typeStr&&(s=!1)),!s&&("nlp"==i.typeStr||"rec"==i.typeStr)&&i.uri&&i.uri.fsPath.length>4&&t.push(i.uri);return t}getSequenceFile(){let e=l.visualText.analyzer.getSpecDirectory();return e.fsPath.length&&(e=n.Uri.file(a.join(l.visualText.analyzer.getSpecDirectory().fsPath,l.visualText.ANALYZER_SEQUENCE_FILE))),e}getLibraryDirectory(){return n.Uri.file(l.visualText.getVisualTextDirectory(l.visualText.ANALYZER_SEQUENCE_FOLDER))}getSpecDirectory(){return l.visualText.analyzer.getSpecDirectory()}saveType(e,t){const s=this.findPass(e.type,e.name);s.exists()&&(s.typeStr=t,s.active=!0,this.saveFile())}saveActive(e,t){const s=this.findPass(e.type,e.name);if("folder"==s.typeStr){const e=this.getFolderPasses(s.typeStr,s.name);for(const s of e)s.active=t;s.active=t;let i=e[e.length-1];i=this.nextPass(i),i.active=t,this.saveFile()}else s.exists()&&(s.active=t,this.saveFile())}saveFile(){this.newcontent="";for(const e of this.passItems)this.newcontent.length&&(this.newcontent=this.newcontent.concat("\n")),this.newcontent=this.newcontent.concat(this.passString(e));r.writeFileSync(a.join(this.specDir.fsPath,l.visualText.ANALYZER_SEQUENCE_FILE),this.newcontent,{flag:"w+"})}movePass(e,t){const s=this.findPass(e.type,e.name);let i=s.row;if(s.isRuleFile())if(t==p.UP){const e=this.passItems[i-1];this.swapItems(s,e)}else{const e=this.passItems[i+1];this.swapItems(s,e)}else{const n=this.nextTop(s),a=this.prevTop(s);if(t==p.DOWN&&n.isFolder()){const t=this.getFolderPasses(e.type,e.name,!0),s=this.getFolderPasses(n.typeStr,n.name,!0),i=t.length+s.length-1;let a=0;const r=t[0].row;for(a=0;a1&&(s=i[0]);for(const e of l.visualText.analyzer.seqFile.getPassItems())e.name!==s&&e.name.startsWith(s)&&t.push({label:a.basename(e.uri.fsPath),description:e.uri.fsPath});return t}hasSisterFile(e){const t=this.getPassItems();for(const s of t){const t=s.name;if(t!==e&&(this.compareSisters(t,e)||this.compareSisters(e,t)))return!0}return!1}compareSisters(e,t){return t.length>e.length&&t.startsWith(e+"_")}getLibraryFile(e){const t=a.basename(e);l.visualText.getLibraryFiles().length;for(const e of l.visualText.getLibraryFiles())if(a.basename(e)===t)return e;return""}}t.SequenceFile=f},766(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SequenceView=t.sequenceView=t.PassTree=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=s(9621),l=s(9679),c=s(6951),u=s(9070),d=s(5348),p=s(4987),m=s(7918),h=s(2564),f=s(7805),_=s(5720),g=s(5603),y=s(9679),v=s(4792);class x{refresh(){this._onDidChangeTreeData.fire()}constructor(){this._onDidChangeTreeData=new n.EventEmitter,this.onDidChangeTreeData=this._onDidChangeTreeData.event}getChildren(e){return i.__awaiter(this,void 0,void 0,function*(){const t=o.visualText.analyzer.seqFile;return e?this.getPasses(t.getFolderPasses(e.type,e.name)):o.visualText.hasWorkspaceFolder()&&o.visualText.hasAnalyzers()?(t.init(),this.getPasses(t.getPasses())):[]})}getPasses(e){const t=e.length,s=new Array;if(0==t)return s;const i=o.visualText.analyzer.seqFile,a=new d.TreeFile,r=n.TreeItemCollapsibleState.None,l=i.inFolder(e[0]),u=!!_.dirfuncs.getFiles(o.visualText.analyzer.getSpecDirectory(),[".pat"]).length;n.commands.executeCommand("setContext","sequence.hasPat",u);let p=0,m=0,h="";for(const o of e){let e=o.passNum.toString()+" "+o.name;m=o.row;let u="";const d=i.inFolder(o);if((p>1||d)&&(u+="mvup"),(p2&&(u+="library"),o.isEnd(o.name)||d&&!l);else if(o.isFolder()){u+="foldernotok",e=o.name;const t=i.getFolderPasses(o.typeStr,o.name);let a=!1;for(const e of t)if(e.active){a=!0;break}a||(o.active=!1),s.push({uri:o.uri,label:e,name:o.name,tooltip:o.uri.fsPath,contextValue:u,inFolder:o.inFolder,type:o.typeStr,passNum:o.passNum,library:o.library,row:m,collapsibleState:n.TreeItemCollapsibleState.Collapsed,active:o.active})}else o.isEnd(o.name)||(o.isRuleFile()?(u+="filenotok",a.hasFileType(o.uri,o.passNum,c.nlpFileType.TREE)&&(u+="hasLog"),a.hasFileType(o.uri,o.passNum,c.nlpFileType.KBB)&&(u+="hasKB"),h=m.toString()+" "+h,o.fileExists()?s.push({uri:o.uri,label:e,name:o.name,tooltip:o.uri.fsPath,contextValue:u,inFolder:o.inFolder,type:o.typeStr,passNum:o.passNum,library:o.library,row:m,collapsibleState:r,active:o.active}):s.push({uri:o.uri,label:e,name:o.name,tooltip:"MISSING",contextValue:"missing",inFolder:o.inFolder,type:"missing",passNum:o.passNum,library:o.library,row:m,collapsibleState:r,active:o.active})):o.isPython()?(u+="pythonfile",e=o.name,h=o.uri.fsPath,o.fileExists()?s.push({uri:o.uri,label:e,name:o.name,tooltip:h,contextValue:u,inFolder:o.inFolder,type:o.typeStr,passNum:o.passNum,library:o.library,row:m,collapsibleState:r,active:o.active}):s.push({uri:o.uri,label:e,name:o.name,tooltip:"MISSING",contextValue:"missing",inFolder:o.inFolder,type:"missing",passNum:o.passNum,library:o.library,row:m,collapsibleState:r,active:o.active})):(h=o.uri.fsPath,o.tokenizer?(e="1 "+o.typeStr,h=o.fetchTooltip(),u+="tokenizehasLog",u=u.replace("mvdown","")):(e=o.name,u+="stub"),s.push({uri:o.uri,label:e,name:o.name,tooltip:h,contextValue:u,inFolder:o.inFolder,type:o.typeStr,passNum:o.passNum,library:o.library,row:m,collapsibleState:r,active:o.active})))}o.visualText.analyzer.getSpecDirectory();const g=o.visualText.getCurrentAnalyzerName();if(u&&0==f.analyzerView.converting&&g.length){const e="Convert to .nlp";n.window.showInformationMessage("Analyzer "+g+" sequence has .pat extensions",e).then(t=>{e===t&&(f.analyzerView.converting=!0,f.analyzerView.chosen&&o.visualText.convertPatFiles(f.analyzerView.chosen))})}return s}getTreeItem(e){let t=e.active?"dna.svg":"dna-grayed.svg",s=n.TreeItemCollapsibleState.None;return e.library.fsPath.length>2?t=e.active?"dna-lib.svg":"dna-lib-grayed.svg":0==e.type.localeCompare("rec")?t=e.active?"dnar.svg":"dnar-grayed.svg":0==e.type.localeCompare("folder")?(t=e.active?"folder.svg":"folder-inactive.svg",s=n.TreeItemCollapsibleState.Collapsed):0==e.type.localeCompare("python")||0==e.type.localeCompare("pythonpre")||0==e.type.localeCompare("pypre")?t="python.svg":e.type.localeCompare("nlp")&&(t="seq-circle.svg"),{resourceUri:e.uri,tooltip:e.tooltip,label:e.label,contextValue:e.contextValue,collapsibleState:s,iconPath:{light:n.Uri.file(a.join(__filename,"..","..","resources","light",t)),dark:n.Uri.file(a.join(__filename,"..","..","resources","dark",t))},command:{command:"sequenceView.openPass",arguments:[e],title:"Open Pass"}}}moveUp(e){this.moveSequence(e,l.moveDirection.UP)}moveDown(e){this.moveSequence(e,l.moveDirection.DOWN)}moveSequence(e,t){if(o.visualText.hasWorkspaceFolder()){const s=o.visualText.analyzer.seqFile,i=s.findPass(e.type,e.name),a=i.row;0==e.type.localeCompare("tokenize")||0==e.type.localeCompare("dicttokz")||0==e.type.localeCompare("chartok")?n.window.showWarningMessage("Cannot move the tokenizer"):1==a&&t==l.moveDirection.UP?n.window.showWarningMessage("Tokenizer must be first"):0==a&&t==l.moveDirection.UP?n.window.showWarningMessage("Item cannot move up"):0==e.type.localeCompare("folder")&&t==l.moveDirection.DOWN&&s.atBottom(i)||a+1==s.passCount()&&t==l.moveDirection.DOWN?n.window.showWarningMessage("Item cannot move down"):(s.movePass(e,t),s.saveFile(),n.commands.executeCommand("sequenceView.refreshAll"))}}deleteFolder(e){if(o.visualText.hasWorkspaceFolder()){const t=o.visualText.analyzer.seqFile,s=[];s.push({label:"DELETE FOLDER",description:"Delete "+e.name+" Folder and ALL ITS PASSES"}),s.push({label:"Delete folder only",description:"Delete "+e.name+" Folder ONLY and keep all the passes"}),s.push({label:"Abort",description:"Do not delete folder"}),n.window.showQuickPick(s,{title:"Delete Folder",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(s=>{if(0==e.type.localeCompare("missing"))t.deletePassInSeqFile(e.type,e.name);else{if(!s||"Abort"==s.label)return;if("Delete folder only"==s.label){const s=t.findPass(e.type,e.name);t.deleteFolder(s,!0)}else t.deletePass(e);t.saveFile()}n.commands.executeCommand("sequenceView.refreshAll")})}}deletePass(e){if(o.visualText.hasWorkspaceFolder()){const t=o.visualText.analyzer.seqFile,s=[];let i="";i=i.concat("Delete '",e.name,"' pass"),s.push({label:"Yes",description:i}),s.push({label:"No",description:"Do not delete pass"}),n.window.showQuickPick(s,{title:"Delete File",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(s=>{if(0==e.type.localeCompare("missing"))t.deletePassInSeqFile(e.type,e.name);else{if(!s||"No"==s.label)return;t.deletePass(e),this.refresh()}n.commands.executeCommand("sequenceView.refreshAll")})}}libraryUtilFuncs(e){this.insertLibraryFile(e,"","UtilFuncs.nlp")}libraryKBFuncs(e){this.insertLibraryFile(e,"","KBFuncs.nlp")}libraryTreeFuncs(e){this.insertLibraryFile(e,"","TreeFuncs.nlp")}libraryLines(e){this.insertLibraryFile(e,"Formatting","Lines.nlp")}libraryLinesDictTokZ(e){this.insertLibraryFile(e,"Formatting","LinesDictTokZ.nlp")}libraryWhiteSpaces(e){this.insertLibraryFile(e,"Formatting","RemoveWhiteSpace.nlp")}insertLibraryFile(e,t,s){const i=a.join(o.visualText.getVisualTextDirectory(o.visualText.ANALYZER_SEQUENCE_FOLDER),t,s),r=n.Uri.file(i),l=o.visualText.analyzer.seqFile;if(l.findPassByFilename(s)){const e=n.Uri.file(a.join(o.visualText.analyzer.getSpecDirectory().fsPath,s));o.visualText.fileOps.addFileOperation(e,e,[m.fileOpRefresh.ANALYZER],m.fileOperation.DELETE),o.visualText.fileOps.addFileOperation(r,e,[m.fileOpRefresh.ANALYZER],m.fileOperation.COPY),o.visualText.fileOps.startFileOps()}else l.insertPass(e.row,r);n.commands.executeCommand("sequenceView.refreshAll")}insertLibraryPass(e){if(o.visualText.hasWorkspaceFolder()){const t=o.visualText.analyzer.seqFile,s={canSelectMany:!0,openLabel:"Open",defaultUri:t.getLibraryDirectory(),canSelectFiles:!0,canSelectFolders:!1,filters:{"Text files":["pat","nlp"],"All files":["*"]}};n.window.showOpenDialog(s).then(s=>{if(s){for(const i of s.reverse()){const s=n.Uri.file(i.fsPath);t.insertPass(e.row,s)}n.commands.executeCommand("sequenceView.refreshAll")}})}}insertPass(e){if(o.visualText.hasWorkspaceFolder()){const s=[];(new y.SequenceFile).choicePasses(o.visualText.analyzer.seqFile.getSpecDirectory().fsPath,s,"",!1),t.sequenceView.insertChosenPasses(e,s)}}insertSisterPass(e){if(o.visualText.getWorkspaceFolder()){const s=o.visualText.analyzerFolderList(!0);t.sequenceView.insertChosenPasses(e,s)}}insertCode(e){this.insertNew(e,l.newPassType.CODE)}insertDecl(e){this.insertNew(e,l.newPassType.DECL)}insertRules(e){this.insertNew(e,l.newPassType.RULES)}insertNew(e,t){if(o.visualText.hasWorkspaceFolder()){const s=o.visualText.analyzer.seqFile;let i="newpass";t==l.newPassType.DECL?i="funcs":t==l.newPassType.CODE&&(i="init"),n.window.showInputBox({title:"Insert Pass",value:i,prompt:"Enter new pass name"}).then(i=>{i&&(e&&(e.uri||s.getPasses().length>1)?s.insertNewPass(e,i,t):s.insertNewPassEnd(i,t),n.commands.executeCommand("sequenceView.refreshAll"))})}}insertPython(e,t=!1){if(o.visualText.hasWorkspaceFolder()){const s=o.visualText.analyzer.seqFile,i=t?"Insert Python Pass Before Tokenizer":"Insert Python Pass";n.window.showInputBox({title:i,value:"pyfiller",prompt:"Enter python pass name"}).then(i=>{i&&(s.insertNewPythonPass(e,i,t),n.commands.executeCommand("sequenceView.refreshAll"))})}}insertPythonLibrary(e,t=!1){if(!o.visualText.hasWorkspaceFolder())return;const s=o.visualText.getVisualTextDirectory("python");if(!_.dirfuncs.isDir(s))return void n.window.showWarningMessage("No python library folder found: "+s);const i=this.listLibraryPython(s);if(!i.length)return void n.window.showWarningMessage("No python scripts found in "+s);const l=i.map(e=>({label:e.name,description:e.desc})),c=t?"Insert Python Library Pass Before Tokenizer":"Insert Python Library Pass";n.window.showQuickPick(l,{title:c,placeHolder:"Choose a python script to insert as a pass"}).then(i=>{if(!i)return;const l=a.join(s,i.label+".py"),c=a.join(o.visualText.analyzer.getSpecDirectory().fsPath,i.label+".py");try{r.copyFileSync(l,c)}catch(e){return void n.window.showErrorMessage("Could not copy python script: "+e.message)}o.visualText.analyzer.seqFile.insertNewPythonPass(e,i.label,t),n.commands.executeCommand("sequenceView.refreshAll")})}listLibraryPython(e){const t=[];for(const s of r.readdirSync(e)){if(!s.toLowerCase().endsWith(".py"))continue;const i=r.readFileSync(a.join(e,s),"utf8");let n="";for(const e of i.split(/\r?\n/).slice(0,15)){const t=e.match(/^#\s*DESC:\s*(.*)$/i);if(t){n=t[1].trim();break}}t.push({name:a.parse(s).name,desc:n})}return t.sort((e,t)=>e.name.localeCompare(t.name))}renameTopComment(e){const t=new c.TextFile;t.setFile(e);const s=t.getLines(),i=a.parse(e.fsPath).name;if(s.length>=7){s[1];const e="# FILE: "+i;s[1]=e,t.saveFileLines()}}renamePass(e){if(o.visualText.hasWorkspaceFolder()){const t=o.visualText.analyzer.seqFile;n.window.showInputBox({title:"Rename Pass",value:e.name,prompt:"Enter new name for pass"}).then(s=>{const i=e.uri;if(s){const o=a.join(a.dirname(e.uri.fsPath),s+".nlp");if(r.existsSync(o)&&o.toLowerCase()!==i.fsPath.toLowerCase())n.window.showWarningMessage("This pass name already exists: "+s),n.commands.executeCommand("sequenceView.rename",e);else{if(t.renamePass(e,s),0==e.type.localeCompare("nlp")||0==e.type.localeCompare("rec")){const e=n.Uri.file(a.join(t.getSpecDirectory().fsPath,s.concat(a.extname(i.fsPath))));_.dirfuncs.rename(i.fsPath,e.fsPath),this.renameTopComment(e),n.window.showTextDocument(e)}n.commands.executeCommand("sequenceView.refreshAll")}}})}}renameFolder(e){if(o.visualText.hasWorkspaceFolder()){const t=o.visualText.analyzer.seqFile;n.window.showInputBox({title:"Rename Folder",value:e.name,prompt:"Enter new name for folder"}).then(s=>{e.uri,s&&(t.findPass("folder",s).name.length?(n.window.showWarningMessage("This folder name already exists: "+s),n.commands.executeCommand("sequenceView.rename",e)):(t.renamePass(e,s),n.commands.executeCommand("sequenceView.refreshAll")))})}}duplicatePass(e){if(o.visualText.hasWorkspaceFolder()){const t=o.visualText.analyzer.seqFile,s=this.incrementEndNumber(e.name);n.window.showInputBox({title:"Duplicate Pass",value:s,prompt:"Enter name for duplicate pass"}).then(s=>{s&&(t.duplicatePass(e,s),n.commands.executeCommand("sequenceView.refreshAll"))})}}incrementEndNumber(e){let t=e;const s=e.split(/([0-9]+)/);return s.length>1?t=s[0]+(Number(s[1])+1).toString():t+="1",t}newFolder(e){if(o.visualText.hasWorkspaceFolder()){const t=o.visualText.analyzer.seqFile;n.window.showInputBox({title:"Create New Folder",value:"newpass",prompt:"Enter new folder name"}).then(s=>{s&&(0==e.row||"folder"==e.type||e&&e.uri?t.insertNewFolder(e,s):t.insertNewFolderEnd(s),n.commands.executeCommand("sequenceView.refreshAll"))})}}typePat(e){o.visualText.analyzer.seqFile.saveType(e,"nlp"),n.commands.executeCommand("sequenceView.refreshAll")}typeRec(e){o.visualText.analyzer.seqFile.saveType(e,"rec"),n.commands.executeCommand("sequenceView.refreshAll")}typeOn(e){o.visualText.analyzer.seqFile.saveActive(e,!0),n.commands.executeCommand("sequenceView.refreshAll")}typeOff(e){o.visualText.analyzer.seqFile.saveActive(e,!1),n.commands.executeCommand("sequenceView.refreshAll")}tokenize(e){this.renameToken(e,"tokenize")}dicttok(e){this.renameToken(e,"dicttok")}dicttokz(e){this.renameToken(e,"dicttokz")}chartok(e){this.renameToken(e,"chartok")}cmltok(e){this.renameToken(e,"cmltok")}renameToken(e,t){o.visualText.analyzer.seqFile.saveType(e,t),n.commands.executeCommand("sequenceView.refreshAll")}}t.PassTree=x;class w{static attach(e){return t.sequenceView||(t.sequenceView=new w(e)),t.sequenceView}constructor(e){this.textFile=new c.TextFile,this.treeFile=new d.TreeFile,this.findFile=new p.FindFile;const t=new x;this.sequenceView=n.window.createTreeView("sequenceView",{treeDataProvider:t}),n.commands.registerCommand("sequenceView.openPass",e=>this.openPass(e)),n.commands.registerCommand("sequenceView.openTree",e=>this.openTree(e)),n.commands.registerCommand("sequenceView.displayMatchedRules",e=>this.displayMatchedRules(e)),n.commands.registerCommand("sequenceView.openKB",e=>this.openKB(e)),n.commands.registerCommand("sequenceView.search",()=>this.search()),n.commands.registerCommand("sequenceView.searchTop",()=>this.searchTop()),n.commands.registerCommand("sequenceView.finalTree",()=>this.finalTree()),n.commands.registerCommand("sequenceView.convert",()=>this.convertPatToNLP()),n.commands.registerCommand("sequenceView.moveUp",e=>t.moveUp(e)),n.commands.registerCommand("sequenceView.moveDown",e=>t.moveDown(e)),n.commands.registerCommand("sequenceView.refreshAll",()=>t.refresh()),n.commands.registerCommand("sequenceView.insert",e=>t.insertPass(e)),n.commands.registerCommand("sequenceView.insertSister",e=>t.insertSisterPass(e)),n.commands.registerCommand("sequenceView.insertNew",e=>t.insertRules(e)),n.commands.registerCommand("sequenceView.insertCode",e=>t.insertCode(e)),n.commands.registerCommand("sequenceView.insertDecl",e=>t.insertDecl(e)),n.commands.registerCommand("sequenceView.insertPython",e=>t.insertPython(e)),n.commands.registerCommand("sequenceView.insertPythonBeforeTokenize",e=>t.insertPython(e,!0)),n.commands.registerCommand("sequenceView.insertPythonLibrary",e=>t.insertPythonLibrary(e)),n.commands.registerCommand("sequenceView.insertPythonLibraryBeforeTokenize",e=>t.insertPythonLibrary(e,!0)),n.commands.registerCommand("sequenceView.insertLibrary",e=>t.insertLibraryPass(e)),n.commands.registerCommand("sequenceView.libraryKBFuncs",e=>t.libraryKBFuncs(e)),n.commands.registerCommand("sequenceView.libraryTreeFuncs",e=>t.libraryTreeFuncs(e)),n.commands.registerCommand("sequenceView.libraryUtilFuncs",e=>t.libraryUtilFuncs(e)),n.commands.registerCommand("sequenceView.libraryLines",e=>t.libraryLines(e)),n.commands.registerCommand("sequenceView.libraryLinesDictTokZ",e=>t.libraryLinesDictTokZ(e)),n.commands.registerCommand("sequenceView.libraryWhiteSpaces",e=>t.libraryWhiteSpaces(e)),n.commands.registerCommand("sequenceView.delete",e=>t.deletePass(e)),n.commands.registerCommand("sequenceView.deleteFolder",e=>t.deleteFolder(e)),n.commands.registerCommand("sequenceView.duplicate",e=>t.duplicatePass(e)),n.commands.registerCommand("sequenceView.rename",e=>t.renamePass(e)),n.commands.registerCommand("sequenceView.renameFolder",e=>t.renameFolder(e)),n.commands.registerCommand("sequenceView.typePat",e=>t.typePat(e)),n.commands.registerCommand("sequenceView.typeRec",e=>t.typeRec(e)),n.commands.registerCommand("sequenceView.typeOff",e=>t.typeOff(e)),n.commands.registerCommand("sequenceView.typeOn",e=>t.typeOn(e)),n.commands.registerCommand("sequenceView.newFolder",e=>t.newFolder(e)),n.commands.registerCommand("sequenceView.tokenize",e=>t.tokenize(e)),n.commands.registerCommand("sequenceView.dicttok",e=>t.dicttok(e)),n.commands.registerCommand("sequenceView.dicttokz",e=>t.dicttokz(e)),n.commands.registerCommand("sequenceView.chartok",e=>t.chartok(e)),n.commands.registerCommand("sequenceView.cmltok",e=>t.cmltok(e)),n.commands.registerCommand("sequenceView.explore",()=>this.explore()),n.commands.registerCommand("sequenceView.insertOrphan",e=>this.insertOrphan(e)),n.commands.registerCommand("sequenceView.toggleActive",e=>this.toggleActive(e)),n.commands.registerCommand("sequenceView.modAdd",()=>this.modAdd()),n.commands.registerCommand("sequenceView.video",()=>this.video()),n.commands.registerCommand("sequenceView.compareSisters",e=>this.compareSisters(e)),n.commands.registerCommand("sequenceView.copyContext",e=>this.copyContext(e)),n.commands.registerCommand("sequenceView.compareLibrary",e=>this.compareLibrary(e)),n.commands.registerCommand("sequenceView.updateTitle",()=>this.updateTitle())}copyContext(e){if(e){const t=new u.NLPFile,s=t.getContextLine(e.uri);if(!s)return void n.window.showWarningMessage("No context line found");let i=[];(new y.SequenceFile).choiceRulePasses(o.visualText.analyzer.seqFile.getSpecDirectory().fsPath,i),i=i.filter(t=>t.description!==e.uri.fsPath);const a="Copy Context to Pass(es)",r="Choose NLP files to insert";n.window.showQuickPick(i,{title:a,canPickMany:!0,placeHolder:r}).then(e=>{if(e)for(const i of e)i.description&&(t.setFile(n.Uri.file(i.description)),t.replaceContextLineInFile(s))})}}compareLibrary(e){o.visualText.getWorkspaceFolder()&&e.library.fsPath.length>2&&n.commands.executeCommand("vscode.diff",e.library,e.uri)}searchFilesRecursively(e,t){const s=[];return function e(i){const n=r.readdirSync(i,{withFileTypes:!0});for(const r of n){const n=a.join(i,r.name),o=a.parse(n);r.isDirectory()?e(n):o.name==t&&s.push({label:t,description:n})}}(e),s}compareSisters(e){if(o.visualText.getWorkspaceFolder()){const t=o.visualText.analyzer.seqFile.getSisterFiles(e.uri.fsPath);1==t.length&&t[0].description?n.commands.executeCommand("vscode.diff",e.uri,n.Uri.file(t[0].description)):n.window.showQuickPick(t,{title:"Choose file to compare",canPickMany:!1,placeHolder:"Choose sister file to compare"}).then(t=>!(!t||!t.description||(n.commands.executeCommand("vscode.diff",e.uri,n.Uri.file(t.description)),n.commands.executeCommand("sequenceView.refreshAll"),0)))}}insertAnalyzerBlock(e,s,i){const r=a.join(e,i,o.visualText.ANALYZER_SEQUENCE_FOLDER),l=this.makeAbbrevFolderName(i);o.visualText.fileOps.addFileOperation(n.Uri.file(r),n.Uri.file(s),[m.fileOpRefresh.ANALYZER],m.fileOperation.ANAFOLDER,l,"folder");const c=new y.SequenceFile;c.getPassFiles(r);for(const e of c.getPassItems())if(e.uri.path.length>2&&"nil"!=e.name){const i=a.basename(e.uri.path);let c=n.Uri.file(a.join(s,o.visualText.ANALYZER_SEQUENCE_FOLDER,i));const u=n.Uri.file(a.join(r,i));_.dirfuncs.needToCopy(u.fsPath,c.fsPath)&&(c=n.Uri.file(t.sequenceView.safeBlockFilename(a.join(s,o.visualText.ANALYZER_SEQUENCE_FOLDER,i),l)),o.visualText.fileOps.addFileOperation(u,c,[m.fileOpRefresh.ANALYZER],m.fileOperation.COPY),o.visualText.fileOps.addFileOperation(u,c,[m.fileOpRefresh.ANALYZER],m.fileOperation.ANAFILE,i))}o.visualText.fileOps.addFileOperation(n.Uri.file(""),n.Uri.file(""),[m.fileOpRefresh.ANALYZER],m.fileOperation.ANAFOLDER,l,"end");const u=o.visualText.analyzer.constructDir(n.Uri.file(a.join(e,i)),v.anaSubDir.KB),d=o.visualText.analyzer.constructDir(n.Uri.file(s),v.anaSubDir.KB),p=_.dirfuncs.getFiles(u,[".dict",".kbb"]);for(const e of p){const s=a.join(d.fsPath,a.basename(e.fsPath));_.dirfuncs.needToCopy(e.fsPath,s)&&o.visualText.fileOps.addFileOperation(e,n.Uri.file(t.sequenceView.safeBlockFilename(s,l)),[m.fileOpRefresh.KB],m.fileOperation.COPY)}}makeAbbrevFolderName(e,t=4){let s="";const i=e.split(" ");for(const e of i){let i=e.substring(0,Math.min(e.length,t));i=i.charAt(0).toUpperCase()+i.substring(1).toLowerCase(),s=s.concat(i)}return s}modAdd(){0!=o.visualText.modFiles.length?o.visualText.mod.getMod().then(e=>{if(!e)return;const t=[];(new y.SequenceFile).choicePasses(o.visualText.analyzer.getSpecDirectory().fsPath,t,"",!1),n.window.showQuickPick(t,{title:"Choose Pass",canPickMany:!0,placeHolder:"Choose pass to insert after"}).then(e=>{if(e){for(const t of e)t.description&&o.visualText.mod.appendFile(n.Uri.file(t.description));n.window.showTextDocument(o.visualText.mod.getUri())}})}):n.window.showWarningMessage("No modfiles exist. Please create one in the KB view")}toggleActive(e){e&&(o.visualText.analyzer.seqFile.saveActive(e,!e.active),n.commands.executeCommand("sequenceView.refreshAll"))}insertOrphan(e){if(o.visualText.getWorkspaceFolder()){_.dirfuncs.getDirectories(o.visualText.getWorkspaceFolder());const t=[],s=_.dirfuncs.getFiles(o.visualText.analyzer.getSpecDirectory(),[".pat",".nlp"]);for(const e of s)1==o.visualText.analyzer.seqFile.isOrphan(a.basename(e.fsPath,".nlp"))&&1==o.visualText.analyzer.seqFile.isOrphan(a.basename(e.fsPath,".pat"))&&t.push({label:a.basename(e.fsPath),description:e.fsPath});if(0==t.length)return void n.window.showWarningMessage("No orphan files for this analyzer");this.insertChosenPasses(e,t,!0)}}insertChosenPasses(e,t,s=!1){if(o.visualText.getWorkspaceFolder()){const i="Insert NLP files",r="Choose NLP files to insert";n.window.showQuickPick(t,{title:i,canPickMany:!0,placeHolder:r}).then(t=>{var i;if(!t)return;let r=!1,l="";l=-1!=(null===(i=e.contextValue)||void 0===i?void 0:i.indexOf("tokenize"))?o.visualText.analyzer.getSpecDirectory().fsPath:a.dirname(e.uri.fsPath);const c=o.visualText.analyzer.seqFile;for(const i of t.reverse())if(i.description){const t=n.Uri.file(i.description);if(_.dirfuncs.isDir(i.description)){const i=_.dirfuncs.getFiles(t,[".nlp",".pat"]);for(const u of i){const i=n.Uri.file(this.safeFilename(a.join(l,a.basename(u.fsPath)),s)),d=n.Uri.file(a.join(t.fsPath,a.basename(u.fsPath)));c.insertPass(e.row,i),o.visualText.fileOps.addFileOperation(d,i,[m.fileOpRefresh.ANALYZER],m.fileOperation.COPY),r=!0}}else{const i=n.Uri.file(this.safeFilename(a.join(l,a.basename(t.fsPath)),s));c.insertPass(e.row,i),o.visualText.fileOps.addFileOperation(t,i,[m.fileOpRefresh.ANALYZER],m.fileOperation.COPY),r=!0}}r&&o.visualText.fileOps.startFileOps()})}}safeBlockFilename(e,t){let s=e;if(r.existsSync(e)||o.visualText.analyzer.seqFile.findPassByFilename(e)){const i=e.lastIndexOf(".");s=-1===i?e+"_"+t:e.substring(0,i)+"_"+t+e.substring(i)}return s}safeFilename(e,t=!1){let s=e;if(r.existsSync(e)&&!t){const t=a.basename(e),i=/([a-zA-Z]+)(\d+)\.([a-zA-Z]+)/,n=e.match(i);let o="",l=1,c=t.split(".")[0];const u=t.split(".")[1];if(n){c=n[1];const e=n[2];l=Number(e)+1}for(o=`${c}${l}.${u}`,s=a.join(a.dirname(e),o);r.existsSync(s);)l++,o=`${c}${l}.${u}`,s=a.join(a.dirname(e),o)}return s}video(){n.commands.executeCommand("vscode.open",n.Uri.parse("http://vscodeanaseq.visualtext.org"))}explore(){const e=o.visualText.analyzer.getSpecDirectory();o.visualText.openFileManager(e.fsPath)}passTree(e){const t=this.passItemFromPath(e);this.openTreeFile(t.passNum)}passItemFromPath(e){const t=o.visualText.analyzer.seqFile;let s=a.basename(e,".pat");s=a.basename(s,".nlp");const i=t.findPass("nlp",s);return i.passNum?g.logView.addMessage(s+": "+i.passNum.toString(),g.logLineType.SEQUENCE,i.uri):g.logView.addMessage(s+": could not find this file in the sequence",g.logLineType.SEQUENCE,n.Uri.file(e)),i}reveal(e){this.passItemFromPath(e),n.commands.executeCommand("logView.refreshAll")}replaceContext(e){const t=this.passItemFromPath(e),s=o.visualText.analyzer.seqFile.prevNLP(t).uri,i=new u.NLPFile,n=i.getContextLine(s);n.length&&(i.setFile(t.uri),i.replaceContext(n,!1))}convertPatToNLP(){if(o.visualText.hasWorkspaceFolder()){const e=[];e.push({label:"Yes",description:"Convert all the .pat files to .nlp"}),e.push({label:"No",description:"Do not convert"}),n.window.showQuickPick(e,{title:"Convert PAT Files",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(e=>{e&&"No"!=e.label&&o.visualText.convertPatFiles(o.visualText.analyzer.getAnalyzerDirectory())})}}finalTree(){const e=o.visualText.analyzer.getOutputDirectory(),t=a.join(e.fsPath,"final.tree");r.existsSync(t)?(n.window.showTextDocument(n.Uri.file(t)),setTimeout(()=>o.visualText.colorizeAnalyzer(),0)):n.window.showInformationMessage("No final tree found")}search(e="",t=!1){o.visualText.hasWorkspaceFolder()&&(0==e.length?n.window.showInputBox({title:"Find in Passes",value:"searchword",prompt:"Enter term to search"}).then(e=>{(null==e?void 0:e.length)&&this.findWord(e,t)}):this.findWord(e,t))}searchTop(e="",t=!1){o.visualText.hasWorkspaceFolder()&&(0==e.length?n.window.showInputBox({title:"Find in Top Level Passes",value:"searchword",prompt:"Enter term to search at the top level"}).then(e=>{(null==e?void 0:e.length)&&this.findWord(e,t,!0)}):this.findWord(e,t,!0))}findWord(e,t=!1,s=!1){if(e.length){if(t){this.findFile.searchFiles(o.visualText.analyzer.getSpecDirectory(),e,[".nlp",".pat"],0,!0);const t=this.findFile.getMatches(),s=[];for(const i of t)this.matchFunctionLine(e,i.line)&&s.push(i);s.length>=1&&(h.findView.openFile(s[0]),h.findView.loadFinds(e,s))}else this.findFile.searchSequenceFiles(e,s),h.findView.loadFinds(e,this.findFile.getMatches());h.findView.setSearchWord(e),n.commands.executeCommand("findView.updateTitle"),n.commands.executeCommand("findView.refreshAll")}}matchFunctionLine(e,t){const s=t.split("(");return s.length>1&&0==s[0].localeCompare(e)}notMissing(e){return 0!=e.type.localeCompare("missing")||(n.window.showInformationMessage("File is missing: "+e.name),!1)}isPythonItem(e){return"python"==e.type||"pythonpre"==e.type||"pypre"==e.type}openPass(e){if(this.notMissing(e)&&e.type.localeCompare("folder")&&e.type.localeCompare("stub")){if(1!=e.passNum||this.isPythonItem(e)||(e.uri=o.visualText.analyzer.seqFile.getSequenceFile()),this.textFile.setFile(e.uri),1!=e.passNum&&!this.textFile.isFileType(c.nlpFileType.NLP))return void n.window.showWarningMessage("Not editable");o.visualText.analyzer.saveCurrentPass(e.uri,e.passNum),n.window.showTextDocument(e.uri),setTimeout(()=>o.visualText.colorizeAnalyzer(),0)}}openTree(e){if(this.notMissing(e))if(1!=e.passNum||this.isPythonItem(e)){if(this.textFile.setFileType(e.uri.fsPath),!this.textFile.isFileType(c.nlpFileType.NLP))return void n.window.showWarningMessage("Not editable");r.existsSync(o.visualText.analyzer.getOutputDirectory().fsPath)&&this.openTreeFile(e.passNum)}else this.openTreeFile(e.passNum)}openTreeFileFromPath(e){const t=this.passItemFromPath(e);this.openRuleMatchFile(t.passNum)}openTreeFile(e){const t=this.treeFile.anaFile(e,c.nlpFileType.TREE);r.existsSync(t.fsPath)?(n.commands.executeCommand("vscode.open",n.Uri.file(t.fsPath)),setTimeout(()=>o.visualText.colorizeAnalyzer(),0)):n.window.showWarningMessage("No tree file "+a.basename(t.fsPath))}openRuleMatchFile(e){const t=this.treeFile.firedFile(e);r.existsSync(t.fsPath)?(n.window.showTextDocument(t),setTimeout(()=>o.visualText.colorizeAnalyzer(),0)):n.window.showWarningMessage("No rule matches file with this pass")}displayMatchedRules(e){if(this.notMissing(e))if(1!=e.passNum||this.isPythonItem(e)){if(this.textFile.setFile(e.uri),!this.textFile.isFileType(c.nlpFileType.NLP))return void n.window.showWarningMessage("Not editable");r.existsSync(o.visualText.analyzer.getOutputDirectory().fsPath)&&this.openRuleMatchFile(e.passNum)}else this.openRuleMatchFile(e.passNum)}openKB(e){if(this.notMissing(e)){if(this.textFile.setFile(e.uri),!this.textFile.isFileType(c.nlpFileType.NLP))return void n.window.showWarningMessage("Not editable");if(r.existsSync(o.visualText.analyzer.getOutputDirectory().fsPath)){const t=this.treeFile.anaFile(e.passNum,c.nlpFileType.KBB);r.existsSync(t.fsPath)?(o.visualText.colorizeAnalyzer(),n.window.showTextDocument(t)):n.window.showWarningMessage("No KB file for this pass")}}}updateTitle(){const e=o.visualText.getCurrentAnalyzerName();e.length>0?this.sequenceView.title=`ANALYZER (${e})`:this.sequenceView.title="ANALYZER"}}t.SequenceView=w},4624(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NLPStatusBar=t.nlpStatusBar=t.RunMode=t.FiredMode=t.DevMode=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=s(9621),o=s(5348),l=s(6951),c=i.__importStar(s(857)),u=i.__importStar(s(9896));let d,p,m,h,f,_,g,y,v;var x,w,b;!function(e){e[e.NORMAL=0]="NORMAL",e[e.DEV=1]="DEV",e[e.SILENT=2]="SILENT"}(x||(t.DevMode=x={})),function(e){e[e.BUILT=0]="BUILT",e[e.FIRED=1]="FIRED"}(w||(t.FiredMode=w={})),function(e){e[e.INTERPRETED=0]="INTERPRETED",e[e.COMPILED=1]="COMPILED",e[e.COMPILED_KB=2]="COMPILED_KB",e[e.COMPILED_ANALYZER=3]="COMPILED_ANALYZER"}(b||(t.RunMode=b={}));class T{constructor(e){this.logFile=new o.TreeFile,this._ctx=e,this.devMode=x.DEV,this.firedMode=w.FIRED,this.runMode=this.readRunModeConfig(),d=n.window.createStatusBarItem(n.StatusBarAlignment.Left,20),d.text="$(run)",d.tooltip="Analyze the text",d.command="status.clickedAnalyzerButton",d.show(),p=n.window.createStatusBarItem(n.StatusBarAlignment.Left,19),p.tooltip="Current text to analyze",p.command="textView.openText",p.show(),m=n.window.createStatusBarItem(n.StatusBarAlignment.Left,18),m.tooltip="Development settings",m.command="status.chooseDev",m.show(),h=n.window.createStatusBarItem(n.StatusBarAlignment.Left,17),h.tooltip="Fired settings",h.command="status.chooseFired",h.show(),f=n.window.createStatusBarItem(n.StatusBarAlignment.Left,16),f.tooltip="Toggle interpreted vs compiled analyzer run",f.command="status.toggleRunMode",f.show(),_=n.window.createStatusBarItem(n.StatusBarAlignment.Right,Number.MIN_VALUE-1),_.tooltip="NLP Engine Version",_.command="status.openEngineVersionSettings",_.show(),g=n.window.createStatusBarItem(n.StatusBarAlignment.Right,Number.MIN_VALUE-2),g.tooltip="VisualText Version",g.command="status.openVisualTextVersionSettings",g.show(),v=n.window.createStatusBarItem(n.StatusBarAlignment.Right,Number.MIN_VALUE-3),v.tooltip="Analyzers Version",v.command="status.openAnalyzerVersionSettings",v.show(),y=n.window.createStatusBarItem(n.StatusBarAlignment.Right,Number.MIN_VALUE-4),y.tooltip="VisualText Files Version",y.command="status.openFilesVersionSettings",y.show(),this.update(),n.commands.registerCommand("status.update",()=>this.update()),n.commands.registerCommand("status.chooseDev",()=>this.chooseDev()),n.commands.registerCommand("status.chooseFired",()=>this.chooseFired()),n.commands.registerCommand("status.toggleRunMode",()=>this.toggleRunMode()),n.commands.registerCommand("status.openEngineVersionSettings",()=>this.openEngineVersionSettings()),n.commands.registerCommand("status.openVisualTextVersionSettings",()=>this.openVisualTextVersionSettings()),n.commands.registerCommand("status.openFilesVersionSettings",()=>this.openFilesVersionSettings()),n.commands.registerCommand("status.openAnalyzerVersionSettings",()=>this.openAnalyzersVersionSettings()),n.commands.registerCommand("status.clickedAnalyzerButton",()=>this.clickedAnalyzerButton())}static attach(e){return t.nlpStatusBar||(t.nlpStatusBar=new T(e)),t.nlpStatusBar}clickedAnalyzerButton(){this.analyzerButton(!0)}resetAnalyzerButton(){d.text="$(run)",d.tooltip="Analyze the text",r.visualText.processID=0}analyzerButton(e=!0){if(r.visualText.processID){let e="";const t=r.visualText.NLP_EXE;e="win32"===c.platform()?`taskkill /IM "${t}" /F`:`pkill -f "${t}"`,s(5317).exec(e),this.resetAnalyzerButton()}else d.text="$(chrome-close)",d.tooltip="Stop analyzer",e&&n.commands.executeCommand("textView.analyzerCurrent")}openVisualTextVersionSettings(){const e=a.join(r.visualText.extensionDirectory().fsPath,"CHANGELOG.md");if(u.existsSync(e))n.commands.executeCommand("markdown.showPreview",n.Uri.file(e));else{const e="https://github.com/VisualText/vscode-nlp/blob/master/CHANGELOG.md";n.commands.executeCommand("vscode.open",n.Uri.parse(e))}}openFilesVersionSettings(){n.commands.executeCommand("vscode.open",n.Uri.parse("https://github.com/VisualText/visualtext-files/pulls?q=is%3Apr+is%3Aclosed")),r.visualText.checkVTFilesVersion(r.visualText.emptyOp())}openAnalyzersVersionSettings(){n.commands.executeCommand("vscode.open",n.Uri.parse("https://github.com/VisualText/analyzers/pulls?q=is%3Apr+is%3Aclosed")),r.visualText.checkAnalyzersVersion(r.visualText.emptyOp())}openEngineVersionSettings(){n.commands.executeCommand("vscode.open",n.Uri.parse("https://github.com/VisualText/nlp-engine/pulls?q=is%3Apr+is%3Aclosed")),r.visualText.startUpdater()}chooseDev(){const e=[];e.push({label:"All logging on",description:"generate all log files when analyzing"}),e.push({label:"Final logs only",description:"generate the final log files when analyzing"}),e.push({label:"All logging off",description:"do not generate any log files when analyzing"}),n.window.showQuickPick(e,{title:"Log Files Mode",canPickMany:!1,placeHolder:"Choose a mode"}).then(e=>{if(!e)return;let s=x.NORMAL;s="All logging on"===e.label?x.DEV:"Final logs only"===e.label?x.NORMAL:x.SILENT,t.nlpStatusBar.setDevState(s)})}chooseFired(){const e=[];e.push({label:"Display Built Only",description:"Display only built rules matched"}),e.push({label:"Display All Matches",description:"Display all fired rules matched"}),n.window.showQuickPick(e,{title:"Display Type",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(e=>{if(!e)return;const s="Display Built Only"===e.label?w.BUILT:w.FIRED;t.nlpStatusBar.setFiredState(s)})}getDevMode(){return this.devMode}setDevState(e){this.devMode=e,this.updateDevState()}updateDevState(){this.devMode==x.DEV?m.text="Logs All On":this.devMode==x.SILENT?m.text="Logs All Off":m.text="Logs Final Only"}getFiredMode(){return this.firedMode}setFiredState(e){this.firedMode,this.firedMode=e,this.updateFiredState(),this.logFile.updateTxxtFiles(l.nlpFileType.TXXT),n.commands.executeCommand("sequenceView.refreshAll")}updateFiredState(){this.firedMode==w.BUILT?h.text="Display Built Only":h.text="Display All Fired"}getRunMode(){return this.runMode}setRunMode(e){this.runMode=e,this.writeRunModeConfig(e),this.updateRunModeState()}toggleRunMode(){this.setRunMode(this.nextRunMode(this.runMode))}nextRunMode(e){switch(e){case b.INTERPRETED:return b.COMPILED;case b.COMPILED:return b.COMPILED_KB;case b.COMPILED_KB:return b.COMPILED_ANALYZER;default:return b.INTERPRETED}}currentAnalyzerName(){const e=r.visualText.getCurrentAnalyzer();if(e&&e.fsPath.length)return a.basename(e.fsPath.replace(/[\\/]+$/,""))}compiledLibPath(e=b.COMPILED){const t=r.visualText.getCurrentAnalyzer();if(!t||!t.fsPath.length)return;const s="win32"===c.platform()?".dll":"darwin"===c.platform()?".dylib":".so";if(e===b.COMPILED_KB)return a.join(t.fsPath,"kb"+s);if(e===b.COMPILED_ANALYZER)return a.join(t.fsPath,"analyzer"+s);const i=this.currentAnalyzerName();return i?a.join(t.fsPath,i+s):void 0}hasCompiledLib(e=b.COMPILED){const t=this.compiledLibPath(e);return!!t&&u.existsSync(t)}updateRunModeState(){this.runMode===b.COMPILED?f.text="$(symbol-method) Run: Compiled":this.runMode===b.COMPILED_ANALYZER?f.text="$(symbol-class) Run: Compiled Analyzer":this.runMode===b.COMPILED_KB?f.text="$(symbol-namespace) Run: Compiled KB":f.text="$(symbol-keyword) Run: Interpreted"}readRunModeConfig(){try{const e=r.visualText.getWorkspaceFolder(),t=(e.fsPath.length?n.workspace.getConfiguration("analyzer",e):n.workspace.getConfiguration("analyzer")).get("runMode");return"compiled"===t?b.COMPILED:"compiled-analyzer"===t?b.COMPILED_ANALYZER:"compiled-kb"===t?b.COMPILED_KB:b.INTERPRETED}catch(e){return b.INTERPRETED}}writeRunModeConfig(e){try{const t=r.visualText.getWorkspaceFolder(),s=e===b.COMPILED?"compiled":e===b.COMPILED_ANALYZER?"compiled-analyzer":e===b.COMPILED_KB?"compiled-kb":"interpreted";t.fsPath.length?n.workspace.getConfiguration("analyzer",t).update("runMode",s,n.ConfigurationTarget.WorkspaceFolder):n.workspace.getConfiguration("analyzer").update("runMode",s,n.ConfigurationTarget.Global)}catch(e){}}update(){if(r.visualText.analyzer.hasText()){const e=r.visualText.analyzer.getTextPath().fsPath,t=a.basename(e);p.text=t,p.show(),this.updateDevState(),this.updateFiredState(),this.updateRunModeState(),m.show(),f.show()}this.updateEngineVersion(""),this.updateVisualTextVersion(""),this.updateFilesVersion(""),this.updateAnalyzerssVersion("")}updateEngineVersion(e){null!=e&&e.length?_.text=e:r.visualText.exeEngineVersion.length?_.text=r.visualText.exeEngineVersion:_.text=""}updateVisualTextVersion(e){null!=e&&e.length?g.text=e:r.visualText.version.length?g.text=r.visualText.version:g.text=""}updateFilesVersion(e){null!=e&&e.length?y.text=e:r.visualText.repoVTFilesVersion.length?y.text=r.visualText.repoVTFilesVersion:y.text=""}updateAnalyzerssVersion(e){null!=e&&e.length?v.text=e:r.visualText.repoAnalyzersVersion.length?v.text=r.visualText.repoAnalyzersVersion:v.text=""}}t.NLPStatusBar=T},4675(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.activate=function(e){var t,s,i;n=null!==(i=null===(s=null===(t=e.extension)||void 0===t?void 0:t.packageJSON)||void 0===s?void 0:s.version)&&void 0!==i?i:"",a("extension.activated")},t.sendEvent=a,t.sendError=function(e,t,s){r(e,!0,t?{reason:t}:void 0,s)};const i=s(1635).__importStar(s(1398));let n="";function a(e,t,s){r(e,!1,t,s)}function r(e,t,s,a){if(!i.env.isTelemetryEnabled||!i.workspace.getConfiguration("nlp").get("telemetry.enable",!0))return;const r={event:e,error:t||void 0,v:n,vscode:i.version,platform:process.platform,id:i.env.machineId,session:i.env.sessionId,props:s,metrics:a};try{fetch("https://nlp-telemetry.dehilster.workers.dev",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(r)}).catch(()=>{})}catch(e){}}},6951(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TextFile=t.nlpFileType=t.separatorType=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=s(5317),l=s(9621),c=s(5720);var u,d;!function(e){e[e.SEP_UNKNOWN=0]="SEP_UNKNOWN",e[e.SEP_R=1]="SEP_R",e[e.SEP_RN=2]="SEP_RN",e[e.SEP_N=3]="SEP_N"}(u||(t.separatorType=u={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.SEQ=1]="SEQ",e[e.TXT=2]="TXT",e[e.NLP=3]="NLP",e[e.TXXT=4]="TXXT",e[e.TREE=5]="TREE",e[e.LOG=6]="LOG",e[e.KB=7]="KB",e[e.KBB=8]="KBB",e[e.DICT=9]="DICT",e[e.NLM=10]="NLM"}(d||(t.nlpFileType=d={})),t.TextFile=class{constructor(e="",t=!0,s=""){this.uri=n.Uri.file(""),this.filepath="",this.text="",this.textNormalized="",this.sepNormalized="\n",this.sepType=u.SEP_UNKNOWN,this.sep="",this.lines=new Array,this.linesNormalized=new Array,this.filetype=d.UNKNOWN,this.basename="",this.nlpFileExts=new Array("unknown","seq","txt","nlp","txxt","tree","log","kb","kbb","dict","nlm"),this.exists=!1,this.selLines=[],this.selStartLine=0,this.selEndLine=0,s.length?this.setText(s,t):e.length&&this.setFile(n.Uri.file(e),t)}runPython(e){if(n.window.activeTextEditor){const e=n.window.activeTextEditor;e&&this.choosePythonScript(e)}}choosePythonScript(e){const t=l.visualText.getVisualTextDirectory("python");if(!r.existsSync(t))return void n.window.showWarningMessage("No library Python scripts available");const s=[],i=c.dirfuncs.getFiles(n.Uri.file(t),[".py"]);for(const e of i){let t="";const i=this.readFirstLine(e.fsPath);"#"==i[0]&&(t=i.substring(1));const r=l.visualText.fileIconFromExt(e.fsPath),o=a.basename(e.fsPath);n.Uri.file(a.join(l.visualText.getExtensionPath().fsPath,"resources","light",r)),n.Uri.file(a.join(l.visualText.getExtensionPath().fsPath,"resources","dark",r)),s.push({label:o,description:t,detail:e.fsPath})}if(0==s.length)return void n.window.showWarningMessage("Not created yet and you can help!");const o="Python Script";n.window.showQuickPick(s,{title:"Choose "+o,placeHolder:"Choose "+o+" to insert"}).then(t=>{t&&t.detail&&this.runPythonCode(e,t.detail)})}runPythonCode(e,t){const s=`python "${t}" "${e.document.uri.fsPath}"`;(0,o.exec)(s,(t,s,i)=>{if(t)return void console.error(`Error executing the Python script: ${t.message}`);if(i)return void console.error(`Python script STDERR: ${i}`);const a=new n.Range(e.document.lineAt(0).range.start,e.document.lineAt(e.document.lineCount-1).range.end),r=new n.SnippetString(s);e.insertSnippet(r,a)})}appendText(e){this.text=this.text.concat(e)}saveFile(){r.writeFileSync(this.uri.fsPath,this.getText(),{flag:"w+"})}saveFileLines(){let e="";for(const t of this.lines)e.length&&(e+=this.sep),e+=t;r.writeFileSync(this.uri.fsPath,e,{flag:"w+"})}linesToText(e,t=!1){if(t){if(this.selLines.length){let t="";for(const e of this.selLines)t.length&&(t+=this.sep),t+=e;const s=e.selection.active,i=e.selection.end,a=new n.Selection(s,i),r=new n.SnippetString(t);e.insertSnippet(r,a);const o=new n.Position(this.selStartLine+this.selLines.length-1,this.selLines[this.selLines.length-1].length),l=new n.Selection(s,o);e.selection=l}}else if(this.lines.length){this.text="";for(const e of this.lines)this.text+=e+this.sep}}sortLines(e=!1){e?this.selLines.sort(function(e,t){return e.toLowerCase().localeCompare(t.toLowerCase())}):this.lines.sort(function(e,t){return e.toLowerCase().localeCompare(t.toLowerCase())})}rollupLines(e=!1){let t="";const s=new Array;let i=0;if(e){for(const e of this.selLines)e!=t&&0!=e.length||s.push(i),t=e,i++;for(const e of s.reverse())this.selLines.splice(e,1)}else{for(const e of this.lines)e!=t&&0!=e.length||s.push(i),t=e,i++;for(const e of s.reverse())this.lines.splice(e,1)}}positionAt(e){let t=0,s=0,i=0;for(const n of this.lines){if(i+n.length>=e){s=e-i+1;break}i+=n.length+1,t++}return new n.Position(t,s)}getSelectedLines(e){this.selLines=[];const t=e.selection.start;this.selStartLine=t.line;const s=e.selection.end;this.selEndLine=s.line;let i=0;for(i=t.line;i<=s.line;i++)this.selLines.push(this.lines[i]);return this.selLines}cleanZeroZero(){if(this.text.length&&this.text.indexOf("\0")>=0){this.text=this.text.replace(/\x00/g,"");try{return r.writeFileSync(this.uri.fsPath,this.text,{flag:"w"}),!0}catch(e){return console.log("Error writing file "+this.uri.fsPath+": "+e.message),!1}}return!1}getExtension(e){return this.nlpFileExts[e]}setStr(e,t=!0){this.text=e,this.separation(t)}setFile(e,t=!0){return this.exists=!1,this.clear(),this.uri=e,this.filepath=e.fsPath,this.setFileType(this.filepath),e.fsPath.length&&r.existsSync(e.fsPath)&&(this.text=r.readFileSync(this.filepath,"utf8"),this.text.length&&this.separation(t),this.exists=!0),this.exists}isEmpty(){return!(this.filepath.length>0)}setText(e,t=!0){e.length&&(this.text=e,this.separation(t),this.exists=!0)}setDocument(e,t=!0){this.clear(),this.uri=e.document.uri,this.filepath=e.document.uri.fsPath;const s=e.document.lineAt(0),i=e.document.lineAt(e.document.lineCount-1),a=new n.Range(s.range.start,i.range.end);this.text=e.document.getText(a),this.setFileType(this.filepath),this.separation(t)}setFileType(e){this.basename=a.basename(e,".nlp"),this.filetype=d.NLP,".seq"==a.extname(e)?this.filetype=d.SEQ:".txt"==a.extname(e)?this.filetype=d.TXT:".txxt"==a.extname(e)?this.filetype=d.TXXT:".kb"==a.extname(e)?this.filetype=d.KB:".kbb"==a.extname(e)?this.filetype=d.KBB:".tree"==a.extname(e)?this.filetype=d.TREE:".log"==a.extname(e)?this.filetype=d.LOG:".dict"==a.extname(e)?this.filetype=d.DICT:".nlm"==a.extname(e)&&(this.filetype=d.NLM)}fileExists(){return this.exists}isFileType(e){return e==this.filetype}getFileType(){return this.filetype}getUri(){return this.uri}getBasename(){return this.basename}clear(){this.uri=n.Uri.file(""),this.filepath="",this.text="",this.sepType=u.SEP_UNKNOWN,this.sep="",this.lines=[]}separation(e=!0){if(0==this.text.length&&this.setFile(this.uri,e),this.text.length){const t=this.text.split("\r\n"),s=this.text.split("\r"),i=this.text.split("\n");this.sepType=u.SEP_UNKNOWN,this.sep="",t.length>1?(this.sepType=u.SEP_RN,this.sep="\r\n"):s.length>1?(this.sepType=u.SEP_R,this.sep="\r"):i.length>1&&(this.sepType=u.SEP_N,this.sep="\n"),e&&this.separateLines()}}normalizeText(){if(this.sepType==u.SEP_RN){const e=new RegExp(this.sep,"g");this.textNormalized=this.text.replace(e,this.sepNormalized)}else this.textNormalized=this.text;return this.textNormalized}unnormalizeText(e){if(this.sepType==u.SEP_RN){const t=new RegExp(this.sepNormalized,"g");this.textNormalized=e.replace(t,this.sep)}else this.textNormalized=e;return this.textNormalized}separateLines(){this.lines=[],this.sepType!=u.SEP_UNKNOWN&&this.text.length?this.lines=this.text.split(this.sep):this.text.length&&this.lines.push(this.text)}getText(e=!1){return e?(0==this.textNormalized.length&&this.normalizeText(),this.textNormalized):this.text}numberOfLines(){return this.lines.length}getLines(e=!1){if(e){if(0==this.linesNormalized.length)for(const e of this.lines)this.linesNormalized.push(e.concat(this.sepNormalized));return this.linesNormalized}return this.lines}getLine(e){return this.lines[e]}findLineStartsWith(e){const t=this.getLines();let s=0;for(const i of t){if(i.startsWith(e)){const e=new n.Position(s,0),t=new n.Position(s,i.length);return new n.Selection(e,t)}s++}const i=new n.Position(0,0);return new n.Selection(i,i)}getSeparatorLength(){return this.sep.length}getSeparator(){return this.sep}getSeparatorNormalized(){return this.sep}getStartLine(){return this.selStartLine}anaFile(e,t=d.TREE){let s="ana";return e>0?(e<10?s+="00":e<100&&(s+="0"),s=s+e.toString()+"."+this.getExtension(t)):s="final.tree",l.visualText.analyzer.getOutputDirectory(s)}hasFileType(e,t,s=d.TREE){if(!r.existsSync(e.fsPath))return!1;const i=this.anaFile(t,s);return s==d.TREE?!!this.fileHasNLines(i.fsPath,6):r.existsSync(i.fsPath)}fileHasNLines(e,t){if(!r.existsSync(e))return!1;const i=new(s(6416))(e);let n,a=0,o=!1;for(;n=i.next();)if(a++>=t){o=!0;break}return i.next()&&i.close(),o}readFirstLine(e){if(!r.existsSync(e))return"";const t=new(s(6416))(e);let i="";return i=t.next(),t.next()&&t.close(),i.toString().trim()}replaceLineNumber(e,t){this.lines[e]=t}}},6560(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TextView=t.textView=t.FileSystemProvider=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=s(9621),o=s(9070),l=s(4987),c=s(2564),u=s(5720),d=s(4624),p=s(7918),m=s(4792),h=s(6639),f=i.__importStar(s(9896)),_=i.__importDefault(s(5093));s(3395);class g{refresh(){this._onDidChangeTreeData.fire()}constructor(){this._onDidChangeTreeData=new n.EventEmitter,this.onDidChangeTreeData=this._onDidChangeTreeData.event}getChildren(e){return i.__awaiter(this,void 0,void 0,function*(){return e?this.getKeepers(e.uri):r.visualText.hasWorkspaceFolder()&&r.visualText.hasAnalyzers()&&r.visualText.analyzer.isLoaded()?this.getKeepers(r.visualText.analyzer.getInputDirectory()):[]})}getMovement(e){e.moveDown=!1,e.moveUp=!1;const t=e.uri.fsPath;a.dirname(t)!=r.visualText.analyzer.getInputDirectory().fsPath&&(e.moveUp=!0),e.type==n.FileType.Directory?u.dirfuncs.parentHasOtherDirs(e.uri)&&(e.moveDown=!0):u.dirfuncs.parentHasOtherDirs(n.Uri.file(t))&&(e.moveDown=!0)}getTreeItem(e){const t=new n.TreeItem(e.uri,e.type===n.FileType.Directory?n.TreeItemCollapsibleState.Collapsed:n.TreeItemCollapsibleState.None);r.visualText.getTextFastLoad()||this.getMovement(e);let s=e.moveDown?"moveDown":"";e.moveUp&&(s+="moveUp");const i=e.hasLogs?"HasLogs":"";let o="";if(e.type===n.FileType.File){const l=r.visualText.analyzer.testFolder(e.uri).fsPath;f.existsSync(l)&&(o="test"),t.command={command:"textView.openFile",title:"Open File",arguments:[e]},t.contextValue="file"+s+i+o,e.uri.fsPath.endsWith(".py")?t.iconPath={light:n.Uri.file(a.join(__filename,"..","..","resources","light","python.svg")),dark:n.Uri.file(a.join(__filename,"..","..","resources","dark","python.svg"))}:t.iconPath={light:n.Uri.file(e.hasLogs?o?a.join(__filename,"..","..","resources","light","document-test.svg"):a.join(__filename,"..","..","resources","light","document.svg"):o?a.join(__filename,"..","..","resources","light","file-test.svg"):a.join(__filename,"..","..","resources","light","file.svg")),dark:n.Uri.file(e.hasLogs?o?a.join(__filename,"..","..","resources","dark","document-test.svg"):a.join(__filename,"..","..","resources","dark","document.svg"):o?a.join(__filename,"..","..","resources","dark","file-test.svg"):a.join(__filename,"..","..","resources","dark","file.svg"))}}else{r.visualText.getAutoUpdate()||r.visualText.analyzer.folderHasTests(e.uri)&&(o="test");const l=e.hasNonText?"HasNonText":"";t.command={command:"textView.openFile",title:"Open File",arguments:[e]},t.contextValue="dir"+s+l+i+o,t.iconPath={light:n.Uri.file(o?a.join(__filename,"..","..","resources","dark","folder-test.svg"):a.join(__filename,"..","..","resources","dark","folder.svg")),dark:n.Uri.file(o?a.join(__filename,"..","..","resources","dark","folder-test.svg"):a.join(__filename,"..","..","resources","dark","folder.svg"))}}return t}getKeepers(e){let t=Array();const s=u.dirfuncs.getDirectoryTypes(e),i=(0,_.default)();for(const e of s)if(!(e.uri.fsPath.endsWith(r.visualText.TEST_SUFFIX)||e.type==n.FileType.Directory&&u.dirfuncs.directoryIsLog(e.uri.fsPath))){let s=!1,i=!1;r.visualText.getTextFastLoad()||(s=u.dirfuncs.hasLogDirs(e.uri,!1),i=!(e.type!=n.FileType.Directory||!this.dirHasNonText(e.uri))),t.push({uri:e.uri,type:e.type,hasLogs:s,hasNonText:i,moveUp:!1,moveDown:!1})}if(e.fsPath==r.visualText.analyzer.getInputDirectory().fsPath){let t=!1;r.visualText.getTextFastLoad()||(t=u.dirfuncs.hasLogDirs(e,!0)),n.commands.executeCommand("setContext","text.hasLogs",t)}if(r.visualText.getTextFastLoad()){const e=(0,_.default)(),t=_.default.duration(e.diff(i),"milliseconds").format("mm:ss:SS");r.visualText.debugMessage(`TextView loading: ${t} (m:s:ms)`)}return t}checkFileCount(e){const t=u.dirfuncs.fileCount(r.visualText.analyzer.getInputDirectory());if(!r.visualText.fastAnswered&&t>100&&!r.visualText.getTextFastLoad()){const e=[],t="Turn On Fast Text Load";e.push({label:t,description:"files will not have attributes such as 'has log files'"}),e.push({label:"Leave Fast Load Off",description:"please generate all the file attributes"}),n.window.showQuickPick(e,{title:"Fast Load Toggle",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(e=>{null!=e&&"Turn On Fast Text Load"==e.label&&r.visualText.setTextFastLoad(!0)}),r.visualText.fastAnswered=!0}}dirHasNonText(e){const t=u.dirfuncs.getFiles(e);for(const e of t)if(!e.fsPath.endsWith(".txt"))return!0;return!1}importFiles(e){if(r.visualText.hasWorkspaceFolder()){const t={canSelectMany:!0,openLabel:"Import Existing File(s)",defaultUri:r.visualText.getWorkspaceFolder(),canSelectFiles:!0,canSelectFolders:!1,filters:{"Text files":["txt","xml","html","csv"],"All files":["*"]}};n.window.showOpenDialog(t).then(t=>{if(!t)return;let s=r.visualText.analyzer.getInputDirectory().fsPath;e&&(s=e.uri.fsPath,e.type==n.FileType.File&&(s=a.dirname(e.uri.fsPath)));for(const e of t){const t=a.basename(e.fsPath),i=n.Uri.file(a.join(s,t));r.visualText.fileOps.addFileOperation(e,i,[p.fileOpRefresh.TEXT],p.fileOperation.COPY)}r.visualText.fileOps.startFileOps()})}}existingFolder(e){if(r.visualText.hasWorkspaceFolder()){const t={canSelectMany:!0,openLabel:"Add Existing Folder(s)",defaultUri:r.visualText.getWorkspaceFolder(),canSelectFiles:!1,canSelectFolders:!0};n.window.showOpenDialog(t).then(t=>{if(t){for(const s of t){const t=a.basename(s.fsPath);let i=r.visualText.analyzer.getInputDirectory().fsPath;e&&(i=a.dirname(e.uri.fsPath));const o=n.Uri.file(a.join(i,t));r.visualText.fileOps.addFileOperation(s,o,[p.fileOpRefresh.TEXT],p.fileOperation.COPY)}r.visualText.fileOps.startFileOps()}})}}rename(e){r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:a.basename(e.uri.fsPath),prompt:"Enter new name for file"}).then(t=>{if(t){const s=e.uri;0==a.extname(t).length&&(t+=a.extname(e.uri.fsPath));const i=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t));u.dirfuncs.rename(s.fsPath,i.fsPath),n.window.showTextDocument(i,{viewColumn:n.ViewColumn.Beside});const o=n.Uri.file(a.join(s.fsPath+r.visualText.LOG_SUFFIX));if(u.dirfuncs.isDir(o.fsPath)){const s=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t+r.visualText.LOG_SUFFIX));u.dirfuncs.rename(o.fsPath,s.fsPath)}n.commands.executeCommand("textView.refreshAll")}})}renameDir(e){r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:a.basename(e.uri.fsPath),prompt:"Enter new name for directory"}).then(t=>{if(t){const s=e.uri,i=n.Uri.file(a.join(a.dirname(e.uri.fsPath),t));u.dirfuncs.rename(s.fsPath,i.fsPath),n.commands.executeCommand("textView.refreshAll")}})}convert(e){r.visualText.hasWorkspaceFolder()&&(r.visualText.fileOps.addFileOperation(e.uri,e.uri,[p.fileOpRefresh.TEXT],p.fileOperation.RENAME,"","txt"),r.visualText.fileOps.startFileOps(100))}}t.FileSystemProvider=g;class y{constructor(e){this.findFile=new l.FindFile;const t=new g;this.textView=n.window.createTreeView("textView",{treeDataProvider:t,showCollapseAll:!0,canSelectMany:!0}),n.commands.registerCommand("textView.refreshAll",()=>t.refresh()),n.commands.registerCommand("textView.importFiles",e=>t.importFiles(e)),n.commands.registerCommand("textView.existingFolder",e=>t.existingFolder(e)),n.commands.registerCommand("textView.rename",e=>t.rename(e)),n.commands.registerCommand("textView.renameDir",e=>t.renameDir(e)),n.commands.registerCommand("textView.convert",e=>t.convert(e)),n.commands.registerCommand("textView.openFile",e=>this.openFile(e)),n.commands.registerCommand("textView.analyzerCurrent",()=>this.analyzerCurrent()),n.commands.registerCommand("textView.analyze",e=>this.analyze(e)),n.commands.registerCommand("textView.analyzeDir",e=>this.analyzeDir(e)),n.commands.registerCommand("textView.runRegressionItem",e=>this.runRegressionItem(e)),n.commands.registerCommand("textView.blessRegressionItem",e=>this.blessRegressionItem(e)),n.commands.registerCommand("textView.openText",()=>this.openText()),n.commands.registerCommand("textView.search",()=>this.search()),n.commands.registerCommand("textView.fastLoad",()=>this.fastLoad(!0)),n.commands.registerCommand("textView.fastLoadOff",()=>this.fastLoad(!1)),n.commands.registerCommand("textView.newTextTop",e=>this.newText(e,!0)),n.commands.registerCommand("textView.newText",e=>this.newText(e,!1)),n.commands.registerCommand("textView.newDirTop",e=>this.newDir(e,!0)),n.commands.registerCommand("textView.newDir",e=>this.newDir(e,!1)),n.commands.registerCommand("textView.deleteFile",(e,t)=>this.deleteFile(e,t)),n.commands.registerCommand("textView.deleteDir",(e,t)=>this.deleteFile(e,t)),n.commands.registerCommand("textView.deleteFileLogs",e=>this.deleteFileLogs(e)),n.commands.registerCommand("textView.deleteAnalyzerLogs",()=>this.deleteAnalyzerLogs()),n.commands.registerCommand("textView.splitDir",e=>this.splitDir(e)),n.commands.registerCommand("textView.updateTitle",e=>this.updateTitle(e)),n.commands.registerCommand("textView.propertiesFile",e=>this.propertiesFile(e)),n.commands.registerCommand("textView.propertiesFolder",e=>this.propertiesFolder(e)),n.commands.registerCommand("textView.explore",e=>this.explore(e)),n.commands.registerCommand("textView.exploreAll",e=>this.exploreAll(e)),n.commands.registerCommand("textView.moveToFolder",e=>this.moveToFolder(e)),n.commands.registerCommand("textView.moveUp",e=>this.moveUp(e)),n.commands.registerCommand("textView.copyToAnalyzer",e=>this.copyToAnalyzer(e)),n.commands.registerCommand("textView.modAdd",e=>this.modAdd(e)),n.commands.registerCommand("textView.runTest",e=>this.runTest(e)),n.commands.registerCommand("textView.deleteTest",e=>this.deleteTest(e)),n.commands.registerCommand("textView.editTest",e=>this.editTest(e)),n.commands.registerCommand("textView.python",e=>this.python(e)),this.folderUri=void 0}static attach(e){return t.textView||(t.textView=new y(e)),t.textView}python(e){return i.__awaiter(this,void 0,void 0,function*(){if(r.visualText.hasWorkspaceFolder()){const t=a.dirname(e.uri.fsPath),s=yield r.visualText.chooseLibFiles("Choose python scripts","python","",[".py"]);for(const e of s)if(e.description){const s=n.Uri.file(a.join(e.description,e.label)),i=n.Uri.file(a.join(t,e.label));r.visualText.fileOps.addFileOperation(s,i,[p.fileOpRefresh.TEXT],p.fileOperation.COPY)}r.visualText.fileOps.startFileOps()}})}fastLoad(e=!1){r.visualText.setTextFastLoad(e),n.commands.executeCommand("setContext","textView.fastload",e)}editTest(e){r.visualText.getWorkspaceFolder()&&r.visualText.editTestFiles(e.uri)}deleteTest(e){const t=[];t.push({label:"Yes",description:"Delete all the test files associated with this test"}),t.push({label:"No",description:"Do not delete the test files"}),n.window.showQuickPick(t,{title:"Delete Test Files",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(t=>{if(!t||"No"==t.label)return;const s=r.visualText.analyzer.testFolder(e.uri);r.visualText.fileOps.addFileOperation(s,s,[p.fileOpRefresh.TEXT,p.fileOpRefresh.OUTPUT],p.fileOperation.DELETE),r.visualText.fileOps.startFileOps()})}runTest(e){if(r.visualText.testInit(),u.dirfuncs.isDir(e.uri.fsPath)){const t=u.dirfuncs.getFiles(e.uri);t.length&&u.dirfuncs.delFile(r.visualText.regressionTestFile());for(const e of t)r.visualText.analyzer.fileHasTests(e)&&r.visualText.runTest(e)}else u.dirfuncs.delFile(r.visualText.regressionTestFile()),r.visualText.runTest(e.uri);r.visualText.closeTest(),n.window.showTextDocument(n.Uri.file(r.visualText.regressionTestFile())),n.commands.executeCommand("kbView.refreshAll")}modAdd(e){r.visualText.mod.addFile(e.uri,!0)}copyToAnalyzer(e){if(r.visualText.getWorkspaceFolder()){u.dirfuncs.getDirectories(r.visualText.getWorkspaceFolder());const t=r.visualText.analyzerFolderList(),s="Copy to Analyzer",i="Choose analyzer to copy to";n.window.showQuickPick(t,{title:s,canPickMany:!1,placeHolder:i}).then(t=>{if(!t||!t.description)return;if(t.description.startsWith("(FOLDER"))return void n.window.showWarningMessage("You must select an analyzer directory not a folder");const s=r.visualText.analyzer.anaSubDirPath(m.anaSubDir.INPUT);if(u.dirfuncs.isDir(e.uri.fsPath)){const i=n.Uri.file(a.join(t.description,s,a.basename(e.uri.fsPath)));r.visualText.fileOps.addFileOperation(e.uri,i,[p.fileOpRefresh.TEXT],p.fileOperation.COPY)}else{const i=n.Uri.file(a.join(t.description,s,a.basename(e.uri.fsPath)));r.visualText.fileOps.addFileOperation(e.uri,i,[p.fileOpRefresh.TEXT],p.fileOperation.COPY)}r.visualText.fileOps.startFileOps()})}}moveToFolder(e){if(this.folderUri){const t=a.join(this.folderUri.fsPath,a.basename(e.uri.fsPath));this.moveFileWithFolders(e.uri.fsPath,t),n.commands.executeCommand("textView.refreshAll")}else n.window.showInformationMessage("No folder selected")}moveUp(e){let t=a.dirname(e.uri.fsPath);if(t!=r.visualText.analyzer.getInputDirectory().fsPath){t=a.dirname(t);const s=a.join(t,a.basename(e.uri.fsPath));this.moveFileWithFolders(e.uri.fsPath,s),n.commands.executeCommand("textView.refreshAll")}else n.window.showInformationMessage("Already at the top")}moveFileWithFolders(e,t){if(u.dirfuncs.rename(e,t),!u.dirfuncs.isDir(e)){const s=e+r.visualText.LOG_SUFFIX;if(f.existsSync(s)){const e=t+r.visualText.LOG_SUFFIX;u.dirfuncs.rename(s,e)}const i=e+r.visualText.TEST_SUFFIX;if(f.existsSync(i)){const e=t+r.visualText.TEST_SUFFIX;u.dirfuncs.rename(i,e)}}}explore(e){if(e.uri.fsPath.length){let t=e.uri.fsPath;u.dirfuncs.isDir(t)||(t=a.dirname(t)),r.visualText.openFileManager(t)}}exploreAll(e){const t=r.visualText.analyzer.getInputDirectory().fsPath;f.existsSync(t)&&r.visualText.openFileManager(t)}analyze(e){e.uri.fsPath.length&&(new o.NLPFile).analyze(e.uri)}analyzerCurrent(){if(r.visualText.analyzer.hasText()){const e=r.visualText.analyzer.getTextPath();this.openFile({uri:e,type:n.FileType.File,hasLogs:!1,hasNonText:!1,moveUp:!1,moveDown:!1}),(new o.NLPFile).analyze(e)}}propertiesFile(e){f.stat(e.uri.fsPath,(t,s)=>{if(t)n.window.showInformationMessage("File read error: "+t);else{const t=this.humanFileSize(s.size,!0,1),i=a.basename(e.uri.fsPath);let r="";try{const t=f.readFileSync(e.uri.fsPath,"utf8");r=" ("+(t.length?t.split(/\r\n|\r|\n/).length:0)+" lines, "+(t.match(/\S+/g)||[]).length+" words)"}catch(e){}n.window.showInformationMessage(i+": "+t+r)}})}propertiesFolder(e){const t=u.dirfuncs.getFiles(e.uri).length,s=a.basename(e.uri.fsPath);n.window.showInformationMessage(s+": "+t+" files")}humanFileSize(e,t,s){const i=t?1e3:1024;if(Math.abs(e)=i&&a10){const i=[],a="Turn Off Logs";i.push({label:a,description:s+" files will be analyzed, each will generate logs"}),i.push({label:"Leave Logs On",description:"please generate all the logs"}),n.window.showQuickPick(i,{title:"Logs Toggle",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(s=>{s?(d.nlpStatusBar.setDevState(s.label==a?d.DevMode.NORMAL:d.DevMode.DEV),d.nlpStatusBar.updateFiredState(),t.textView.askAnalyzeFolder(e)):t.textView.askAnalyzeFolder(e)})}else t.textView.askAnalyzeFolder(e)}else t.textView.askAnalyzeFolder(e)}}askAnalyzeFolder(e){const t=[],s=a.basename(e.uri.fsPath);let i="";i=i.concat("Analyze all files in folder '",s,"'?"),t.push({label:"Yes",description:i}),t.push({label:"No",description:"Do not analyze folder '"+s+"'"}),n.window.showQuickPick(t,{title:"Analyzer Folders",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(t=>{t&&"No"!=t.label&&(r.visualText.nlp.addAnalyzer(e.uri,o.analyzerType.DIRECTORY),r.visualText.nlp.startAnalyzer())})}search(){r.visualText.hasWorkspaceFolder()&&r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:"searchword",prompt:"Enter term to search"}).then(e=>{e&&(this.findFile.searchFiles(r.visualText.analyzer.getInputDirectory(),e,[]),c.findView.loadFinds(e,this.findFile.getMatches()),n.commands.executeCommand("findView.updateTitle"),n.commands.executeCommand("findView.refreshAll"))})}openText(){r.visualText.analyzer.hasText()&&(n.window.showTextDocument(r.visualText.analyzer.getTextPath()),n.commands.executeCommand("status.update"))}updateTitle(e){const t=e.fsPath;if(e&&t.length){const t=a.basename(e.fsPath);if(t.length)return void(this.textView.title=`TEXT (${t})`)}this.textView.title="TEXT"}openFile(e){this.updateTitle(e.uri),r.visualText.colorizeAnalyzer(),e.type==n.FileType.File?(this.folderUri=void 0,n.window.showTextDocument(e.uri),r.visualText.analyzer.saveCurrentFile(e.uri),n.commands.executeCommand("outputView.refreshAll"),n.commands.executeCommand("status.update")):this.folderUri=e.uri}deleteFile(e,t){if(r.visualText.hasWorkspaceFolder()){let s=t&&t.length?t:e?[e]:[];if(e&&!s.some(t=>t.uri.fsPath==e.uri.fsPath)&&(s=[e,...s]),0==s.length)return;const i=[];let o;if(s.length>1)o="Delete Items",i.push({label:"Yes",description:"Delete "+s.length+" selected items?"}),i.push({label:"No",description:"Do not delete the selected items"});else{const e=u.dirfuncs.isDir(s[0].uri.fsPath),t=e?"directory":"file",n=a.basename(s[0].uri.fsPath);o=e?"Delete Directory":"Delete File",i.push({label:"Yes",description:"Delete "+t+" '"+n+"'?"}),i.push({label:"No",description:"Do not delete "+n})}n.window.showQuickPick(i,{title:o,canPickMany:!1,placeHolder:"Choose Yes or No"}).then(e=>{if(e&&"No"!=e.label){for(const e of s)r.visualText.fileOps.addFileOperation(e.uri,e.uri,[p.fileOpRefresh.TEXT],p.fileOperation.DELETE);r.visualText.fileOps.startFileOps()}})}}deleteFileOrFolderLogs(e){r.visualText.hasWorkspaceFolder()&&(u.dirfuncs.isDir(e.uri.fsPath)?this.deleteFolderLogs(e.uri):this.deleteFileLogDir(e.uri.fsPath))}runRegressionItem(e){const t=this.regressionAnalyzerDir(e);t&&h.regressionRunner.test(t,e.uri)}blessRegressionItem(e){const t=this.regressionAnalyzerDir(e);if(!t)return;if(!h.regressionRunner.goldensExist(t,e.uri))return void h.regressionRunner.bless(t,e.uri);const s=a.basename(e.uri.fsPath);n.window.showWarningMessage(`Bless will OVERWRITE the existing regression goldens for '${s}' with the analyzer's CURRENT output. Continue?`,{modal:!0},"Bless").then(s=>{"Bless"===s&&h.regressionRunner.bless(t,e.uri)})}regressionAnalyzerDir(e){if(e&&e.uri&&f.existsSync(e.uri.fsPath)){if(r.visualText.analyzer.isLoaded())return r.visualText.analyzer.getAnalyzerDirectory();n.window.showWarningMessage("No analyzer loaded. Open an analyzer first.")}else n.window.showWarningMessage("Select an input file or folder to run a regression test.")}deleteFileLogs(e){if(r.visualText.hasWorkspaceFolder()){const t=[];let s="";const i=a.basename(e.uri.fsPath),o=u.dirfuncs.isDir(e.uri.fsPath)?"directory":"file";s=s.concat("Delete logs for ",o," '",i,"'?"),t.push({label:"Yes",description:s}),t.push({label:"No",description:"Do not delete logs for "+i}),n.window.showQuickPick(t,{title:"Delete File Logs",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(t=>{t&&"No"!=t.label&&(this.deleteFileOrFolderLogs(e),r.visualText.fileOps.startFileOps())})}}deleteFolderFileLogs(e){if(r.visualText.hasWorkspaceFolder()){const t=[];let s="";const i=a.basename(e.uri.fsPath);s=s.concat("Delete logs for '",i,"'?"),t.push({label:"Yes",description:s}),t.push({label:"No",description:"Do not delete logs for "+i}),n.window.showQuickPick(t,{title:"Delete Folder File Logs",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(t=>{t&&"No"!=t.label&&(this.deleteFolderLogs(e.uri),r.visualText.fileOps.startFileOps())})}}deleteFolderLogs(e){a.basename(e.fsPath);const s=Array();if(t.textView.getLogDirs(e,s,!1),s.length)for(const e of s)r.visualText.fileOps.addFileOperation(e.uri,e.uri,[p.fileOpRefresh.TEXT,p.fileOpRefresh.ANALYZER,p.fileOpRefresh.ANALYZERS,p.fileOpRefresh.OUTPUT],p.fileOperation.DELETE)}deleteFileLogDir(e){const t=n.Uri.file(e+r.visualText.LOG_SUFFIX);r.visualText.fileOps.addFileOperation(t,t,[p.fileOpRefresh.TEXT,p.fileOpRefresh.ANALYZER,p.fileOpRefresh.ANALYZERS,p.fileOpRefresh.OUTPUT],p.fileOperation.DELETE)}deleteAnalyzerLogs(){if(r.visualText.hasWorkspaceFolder()&&r.visualText.analyzer.hasText()){const e=[];let t="";t=t.concat("Delete all logs for this Analyzer?"),e.push({label:"Yes",description:t}),e.push({label:"No",description:"Do not delete all logs for this Analyzer"}),n.window.showQuickPick(e,{title:"Delete Analyzer Logs",canPickMany:!1,placeHolder:"Choose Yes or No"}).then(e=>{if(!e||"No"==e.label)return;const t=r.visualText.analyzer.getInputDirectory();t.fsPath.length&&(this.deleteFolderLogs(t),r.visualText.fileOps.startFileOps())})}}splitDir(e){r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:"3000",prompt:"Enter number of files per directory"}).then(t=>{t&&(r.visualText.fileOps.addFileOperation(e.uri,n.Uri.file(""),[p.fileOpRefresh.TEXT],p.fileOperation.BREAK,t.toString()),r.visualText.fileOps.startFileOps(0))})}getLogDirs(e,t,s){const i=s?r.visualText.analyzer.getInputDirectory():e,o=u.dirfuncs.getDirectoryTypes(i);for(const e of o)if(e.type==n.FileType.Directory){const s=a.basename(e.uri.fsPath);u.dirfuncs.directoryIsLog(e.uri.fsPath)||"logs"==s||"output"==s?t.push({uri:e.uri,type:e.type,hasLogs:!1,hasNonText:!1,moveUp:!1,moveDown:!1}):this.getLogDirs(e.uri,t,!1)}}newDir(e,t){r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:"dirname",prompt:"Enter directory name"}).then(s=>{if(s){let i=r.visualText.analyzer.getInputDirectory().fsPath;e&&!t&&(i=u.dirfuncs.getDirPath(e.uri.fsPath)),i=a.join(i,s),u.dirfuncs.makeDir(i),n.commands.executeCommand("textView.refreshAll")}})}newText(e,t){r.visualText.hasWorkspaceFolder()&&n.window.showInputBox({value:"filename",prompt:"Enter text file name"}).then(s=>{if(s){let i=r.visualText.analyzer.getInputDirectory().fsPath;e&&!t&&(i=u.dirfuncs.getDirPath(e.uri.fsPath));let o=a.join(i,s+".txt");a.extname(s)&&(o=a.join(i,s)),u.dirfuncs.writeFile(o,"Hello world!"),n.commands.executeCommand("textView.refreshAll")}})}}t.TextView=y},5348(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TreeFile=t.treeFile=t.generateType=void 0;const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(6928)),r=i.__importStar(s(9896)),o=s(9621),l=s(6951),c=s(9070),u=s(4624),d=s(9679),p=s(4987),m=s(2564),h=s(5720),f=i.__importStar(s(857));var _;!function(e){e[e.GENERAL=0]="GENERAL",e[e.EXACT=1]="EXACT"}(_||(t.generateType=_={}));class g extends l.TextFile{constructor(){super(),this.fireds=[],this.Highlight=[],this.selectedTreeStr="",this.selStart=-1,this.selEnd=-1,this.treeFile="",this.HighlightFile="",this.inputFile="",this.selectedLines=[],this.findFile=new p.FindFile}ruleFired(e){if(o.visualText.analyzer.hasText()&&(this.setFile(e.document.uri),this.parseTreeLines(e),this.selStart>=0)){const e=this.selectedLines[0],t=e.passNum;if(t){const e=new d.SequenceFile;e.init();const s=e.getUriByPassNumber(t);o.visualText.colorizeAnalyzer(),n.window.showTextDocument(s,{viewColumn:n.ViewColumn.Beside}).then(e=>{const t=new n.Position(this.selectedLines[0].ruleLine-1,0),s=new n.Range(t,t);e.selections=[new n.Selection(t,t)],e.revealRange(s)})}else 0==e.ruleLine&&this.searchInDictionaries(e.node)}}searchInDictionaries(e){const t=[];let s=e.toLowerCase(),i=s;s.startsWith("_")&&(s=e.substring(1),i=this.gatherChildrenText(),s="phrase"==s?i:"s="+e.substring(1)),this.findFile.searchFiles(o.visualText.analyzer.getKBDirectory(),s,[".dict"],0,!1,!1);const a=this.findFile.getMatches();for(const e of a)this.matchDictLine(i,e.highlighted)&&t.push(e);t.length>=1&&(m.findView.openFile(t[0]),m.findView.loadFinds(s,t),m.findView.setSearchWord(s),n.commands.executeCommand("findView.updateTitle"),n.commands.executeCommand("findView.refreshAll"))}matchDictLine(e,t){const s=t.split("=");if(s.length>1){s[0].split("s");const t=s[0].lastIndexOf(" ");return 0==s[0].substring(0,t).localeCompare(e,void 0,{sensitivity:"base"})}return!1}gatherChildrenText(){let e="";const t=this.getLines();if(t.length>this.selStartLine){let s=this.selStartLine+1;const i=this.selectedLines[0].indent;for(;si))break;e+=" "+a.node}}return e=e.toLocaleLowerCase().trim(),e}highlightText(e){o.visualText.analyzer.hasText()&&(this.setFile(e.document.uri),this.parseTreeLines(e),this.selStart>=0&&(o.visualText.colorizeAnalyzer(),n.window.showTextDocument(o.visualText.analyzer.getTextPath(),{viewColumn:n.ViewColumn.Beside}).then(e=>{const t=new l.TextFile(o.visualText.analyzer.getTextPath().fsPath),s=t.positionAt(this.selStart-1),i=t.positionAt(this.selEnd),a=new n.Range(s,i);e.selections=[new n.Selection(s,i)],e.revealRange(a)})))}generatePath(e){if(o.visualText.analyzer.hasText()){const t=this.getPassFromPath(e);if(t.fsPath.length>2)if(this.setFile(e.document.uri),this.parseTreeLines(e),this.selStart>=0){let e="",s=this.selectedLines[0];if(s){let t=this.getStartLine(),i=s.indent+1;for(;s.indent>0;){const n=this.getLines()[t--];s=this.parseTreeLine(n),s.indentthis.selEnd)&&(this.selEnd=t.uend),this.selectedLines.push(t)}}findRule(e){if(this.setDocument(e),this.getFileType()==l.nlpFileType.TXXT)if(this.setFilesNames(this.getUri().fsPath),this.parseBrackets()){this.parseFireds(this.treeFile);const t=this.lineCharacterToAbsolute(e.selection.active);if(t>=0){const e=this.findMatchByAbsolute(t);if(e>=0){const t=this.getFired(e);if(t.rulenum>0){const e=o.visualText.analyzer.seqFile.getUriByPassNumber(t.rulenum);o.visualText.colorizeAnalyzer(),n.window.showTextDocument(e,{viewColumn:n.ViewColumn.Beside}).then(e=>{const s=new n.Position(t.ruleline-1,0);e.selections=[new n.Selection(s,s)];const i=new n.Range(s,s);e.revealRange(i)})}else this.searchInDictionaries(t.str)}}}else n.window.showInformationMessage("No fired rule found")}getFired(e){const t=this.fireds[e];for(;0==t.rulenum&&e>0&&!(--e<0)&&!(this.fireds[e].toi&&a.indent<=n){e==_.GENERAL?0==a.type.localeCompare("alpha")&&r.charAt(0)===r.charAt(0).toUpperCase()?r="_xCAP":0==a.type.localeCompare("alpha")?r="_xALPHA":0==a.type.localeCompare("white")?r="_xWHITE":0==a.type.localeCompare("num")?r="_xNUM":0!=a.type.localeCompare("punct")&&1!=r.length||(r=`\\${r}`):1==r.length&&(r=`\\${r}`);const i=`\t${r}\t### (${t})`;s.length&&(s+="\n"),s+=i,t++}i=a.end}return s}generateRuleFromStr(e,t){let s="",i="";const n=this.nlpppSplitter(e.toLowerCase());let a=1;for(const e of n){i=e;const n=!isNaN(parseInt(e));t==_.GENERAL?i=n?"_xNUM":" "==e?"_xWHITE":1!=e.length||n?"_xALPHA":"\\"+e:1!=e.length||n||(i="\\"+e);const r=`\t${i}\t### (${a})`;s.length&&(s+="\n"),s+=r,a++}return s}nlpppSplitter(e){const t=e.length;let s=0;const i=[];let n,a="";!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ALPHA=1]="ALPHA",e[e.DIGIT=2]="DIGIT",e[e.SPACE=3]="SPACE",e[e.SPECIAL=4]="SPECIAL"}(n||(n={}));let r=n.UNKNOWN,o=n.UNKNOWN;for(;s="0"&&t<="9"?n.DIGIT:t>="a"&&t<="z"||t>="A"&&t<="Z"?n.ALPHA:" "==t?n.SPACE:n.SPECIAL,r!=o&&o!=n.UNKNOWN&&o!=n.SPACE?(i.push(a),a=r==n.SPACE?"":t,o=n.UNKNOWN):r!=n.SPACE&&(a+=t),o=r}return a.length&&i.push(a),i}parseTreeLine(e){const t={node:"",start:0,end:0,ustart:0,uend:0,passNum:0,ruleLine:0,type:"",fired:!1,built:!1,rest:"",indent:0},s=e.split("[");let i=1;if(s.length>1){e.trim().startsWith("[")?(t.node="[",t.indent=s[0].length,i=2):(t.node=s[0].trim(),t.indent=s[0].search(/\S/)-1);const n=s[i].split(/[,\]]/);n.length>=4&&(t.start=+n[0],t.end=+n[1],t.ustart=+n[2],t.uend=+n[3],t.passNum=+n[4],t.ruleLine=+n[5],t.type=n[6],n.length>7&&n[7].length&&(t.fired=!0),n.length>8&&n[8].length>0&&(t.built=!0))}return t}findSelectedTree(e){if(this.findSelectedTreeStr(e)){const e=this.basename+"-"+this.selStart.toString()+"-"+this.selEnd.toString()+".tree";this.openTemporaryFile(e,this.selectedTreeStr)}else n.window.showInformationMessage("No text selected")}openTemporaryFile(e,t){n.Uri.parse("untitled:"+e);const s=a.resolve(n.workspace.getConfiguration("createtmpfile").get("tmpDir")||f.tmpdir()),i=n.Uri.file(a.join(s,e));r.writeFileSync(i.fsPath,t),n.workspace.openTextDocument(i).then(e=>{o.visualText.colorizeAnalyzer(),n.window.showTextDocument(e,{viewColumn:n.ViewColumn.Beside})})}bracketCount(e,t=0){t&&(e=e.substring(0,t));const s=e.split(/\(\(\(/),i=e.split(/\)\)\)/),n=e.split(/\<\<\\>\>/);return 3*(s.length-1+(i.length-1))+3*(n.length-1+(a.length-1))}getCharacterLength(e){return e.length}absoluteRangeFromSelection(e,t){let s=0,i=0;const n=new l.TextFile(e);let a=0,r=!1;for(const e of n.getLines(!0)){const n=this.getCharacterLength(e);if(r){if(t.end.line==a){i+=t.end.character-this.bracketCount(e,t.end.character)-1;break}i+=n+this.bracketCount(e),0==n&&(i+=1)}else if(t.start.line==a){const o=e.substring(0,t.start.character);if(s+=this.getCharacterLength(o)-this.bracketCount(e,t.start.character),t.end.line==a){const n=e.substring(t.start.character,t.end.character);i=s+n.length-this.bracketCount(n);break}i=s+n-t.start.character-this.bracketCount(e),r=!0}else s+=n-this.bracketCount(e),0==n&&(s+=1);a++}this.selStart=s,this.selEnd=i}findTreeFileLines(){const e=new l.TextFile(this.treeFile),t=e.getSeparatorNormalized();let s=0,i=0,n=!1;this.selectedLines=[],this.selectedTreeStr="";for(const a of e.getLines()){s=0,i=0,n=!1;const e=a.split("[");if(e.length>1){const n=e[1].split(/[,\]]/);n.length>4&&(s=+n[2],i=+n[3],s>=this.selStart&&i<=this.selEnd&&(this.selectedLines.push(this.parseTreeLine(a)),this.selectedTreeStr=this.selectedTreeStr.concat(a,t)))}}}findMatchByAbsolute(e){let t=0;for(const s of this.Highlight){if(s.startb<=e&&e<=s.endb)return t;if(e>>":")))",i=new l.TextFile(this.HighlightFile,!1).getText(!0).split(t);let n=0,a=0,r=0;for(let e of i){if(e=e.replace(/[\n\r]/g,""),n){const t={start:0,end:0,startb:0,endb:0},i=e.split(s);t.start=a,t.end=a+i[0].length-1,t.startb=r,t.endb=r+i[0].length-1,this.Highlight.push(t)}let t=e.replace(/\<\<\\>\>/g,""),t=t.replace(/\(\(\(/g,""),t=t.replace(/\)\)\)/g,""),a+=t.length,n++,r+=e.length+3}return n-1}parseFireds(e){const t=/[\[,\]]/g;this.fireds=[];const s=new l.TextFile(e);let i=0;for(let e=0;e1){const a={str:"",from:0,to:0,ufrom:0,uto:0,rulenum:0,ruleline:0,built:!1},r=n.split(t),o=n.trim().charAt(0);if(/^[\[\],]/i.test(o)&&(r[0]=o,r.splice(1,1)),a.built=r.length>=9&&"blt"===r[9],+r[2]>i&&(a.str=r[0].trim(),a.from=+r[1],a.to=i=+r[2],a.ufrom=+r[3],a.uto=+r[4],a.rulenum=+r[5],a.ruleline=+r[6],(u.nlpStatusBar.getFiredMode()==u.FiredMode.FIRED||a.built)&&this.fireds.push(a),a.str.startsWith("_"))){const t=n.search(/\S/);for(a.str="";t>0;){e++;const i=s.getLine(e);if(i.search(/\S/)<=t)break;const n=i.split(/\s+/)[1].trim();a.str=a.str+" "+n}a.str=a.str.trim(),e--}}}return!!this.fireds.length}firedFile(e,t=!1){const s=this.anaFile(e,l.nlpFileType.TXXT);if(!r.existsSync(s.fsPath)||t){const s=this.anaFile(e);r.existsSync(s.fsPath)&&(this.parseFireds(s.fsPath),this.writeFiredText(s,t))}return s}fileCreateTime(e){if(r.existsSync(e)){const t=r.statSync(e);if(t)return t.ctime}return new Date(1970,1,1)}writeFiredText(e,t=!1){this.setFilesNames(e.fsPath);const s=this.fileCreateTime(e.fsPath),i=this.fileCreateTime(this.inputFile);if(!t&&i>>"):u.nlpStatusBar.getFiredMode()==u.FiredMode.FIRED?o.concat(n,"(((",s,")))"):o.concat(n,s),c=p+1}const e=h.slice(c,h.length),t=(new TextDecoder).decode(e);o=o.concat(t)}else o=a.getText(!0);return r.writeFileSync(this.HighlightFile,a.unnormalizeText(o)),this.fireds=[],n.Uri.file(this.HighlightFile)}updateTxxtFiles(e){const t=new Array("."+this.getExtension(e)),s=h.dirfuncs.getFiles(o.visualText.analyzer.getOutputDirectory(),t);for(const e of s){const t=a.basename(e.fsPath).substring(3,3),s=Number.parseInt(t);this.firedFile(s,!0)}}}t.TreeFile=g},4648(e,t){"use strict";function s(e,t,s){return(e.length*t+s)/2}function i(e,t,i,n){const a=new Map,r=[...e].sort((e,t)=>e.x-t.x),o=[];let l=0;for(const e of r){const r=s(e.label,t,8),c=e.x-r,u=e.x+r;let d=-1;for(let e=0;e=o[e]+i){d=e;break}if(-1===d)if(o.lengthl&&(l=d)}return{rowOf:a,rows:l+1}}function n(e){return 1+e.children.reduce((e,t)=>e+n(t),0)}Object.defineProperty(t,"__esModule",{value:!0}),t.layoutTree=function(e,t={}){var s,n,a,r,o,l,c,u,d,p;const m=null!==(s=t.colWidth)&&void 0!==s?s:90,h=null!==(n=t.rowHeight)&&void 0!==n?n:64,f=null!==(a=t.margin)&&void 0!==a?a:24,_=null!==(r=t.stagger)&&void 0!==r?r:22,g=null!==(o=t.charWidth)&&void 0!==o?o:7.5,y=null!==(l=t.labelGap)&&void 0!==l?l:4,v=null!==(c=t.maxStaggerRows)&&void 0!==c?c:4,x=null!==(u=t.isCollapsed)&&void 0!==u?u:()=>!1;let w=0,b=0;const T=[],L=(e,t)=>{var s;t>b&&(b=t);const i=e.children.length>0,n=i&&x(e.id),a=n?[]:e.children.map(e=>L(e,t+1));let r;0===a.length?(r=f+w*m,w++):r=(a[0].x+a[a.length-1].x)/2;const o={id:e.id,label:e.label,type:e.type,start:e.start,end:e.end,x:r,y:0,hasKids:i,collapsed:n,children:a};return(null!==(s=T[t])&&void 0!==s?s:T[t]=[]).push(o),o},M=L(e,0);let k=f;for(let e=0;e<=b;e++){const t=null!==(d=T[e])&&void 0!==d?d:[],{rowOf:s,rows:n}=_>0?i(t,g,y,v):{rowOf:new Map,rows:1};for(const e of t)e.y=k+(null!==(p=s.get(e))&&void 0!==p?p:0)*_;k+=h+(n-1)*_}const D=Math.max(1,w);return{root:M,width:2*f+(D-1)*m+m,height:k+f,colWidth:m}},t.flatten=function e(t,s=[]){s.push(t);for(const i of t.children)e(i,s);return s},t.countNodes=n,t.findNode=function e(t,s){if(t.id===s)return t;for(const i of t.children){const t=e(i,s);if(t)return t}},t.subtreeIds=function e(t,s=!1,i=[]){s&&!t.children.length||i.push(t.id);for(const n of t.children)e(n,s,i);return i},t.defaultCollapsed=function(e,t=1,s=30,i=60){const a=new Set;if(n(e)<=s)return a;const r=(e,s)=>{e.children.length&&(s>=t||e.children.length>i)&&a.add(e.id),e.children.forEach(e=>r(e,s+1))};return r(e,0),a}},9179(e,t){"use strict";function s(e){const t=e.search(/\S/);return t<0?1/0:t}Object.defineProperty(t,"__esModule",{value:!0}),t.parseTree=function(e,t={}){var s;const i=null===(s=t.skipWhitespace)||void 0===s||s,n=[],a=[];for(const t of e.split(/\r?\n/)){if(!t.trim())continue;const e=t.trim();if(e.startsWith("*")||/^PASS\b/.test(e))continue;const s=t.indexOf("[");if(s<0)continue;let r,o;if(e.startsWith("[")){r="[";const e=t.slice(t.indexOf("[")+1);o=e.slice(e.indexOf("[")+1)}else r=t.slice(0,s).trim(),o=t.slice(s+1);const l=o.split(/[,\]]/),c=parseInt(l[0],10)||0,u=parseInt(l[1],10)||0,d=(l[6]||"").trim();if(i&&"white"===d)continue;const p=t.search(/\S/),m={id:0,label:r,type:d,start:c,end:u,children:[]};for(;a.length&&a[a.length-1].indent>=p;)a.pop();a.length?a[a.length-1].node.children.push(m):n.push(m),a.push({node:m,indent:p})}let r;return 1===n.length?r=n[0]:n.length>1&&(r={id:0,label:"TREE",type:"root",start:0,end:0,children:n}),r&&function(e){let t=0;const s=e=>{e.id=t++,e.children.forEach(s)};s(e)}(r),r},t.subtreeText=function(e,t){const i=e.split(/\r?\n/);if(t<0||t>=i.length)return"";const n=s(i[t]);if(!isFinite(n))return i[t];const a=[i[t]];for(let e=t+1;e`);for(const s of t){const t="node"+(s.hasKids?" internal":" leaf")+(s.collapsed?" collapsed":""),i=Math.min(Math.max(20,e.colWidth-4),Math.max(24,8*s.label.length+16)),r=``,o=s.collapsed?``:"";a.push(``+r+`${n(s.label)}`+o+"")}return`${s.join("")}${a.join("")}`};const i=s(4648);function n(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}},1193(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.registerTreeGraph=function(e){e.subscriptions.push(n.commands.registerCommand("nlp.showTreeGraph",t=>{var s;const i=null!=t?t:null===(s=n.window.activeTextEditor)||void 0===s?void 0:s.document.uri;i?function(e,t){const s=n.workspace.textDocuments.find(e=>e.uri.toString()===t.toString());let i;if(s)i=s.getText();else try{i=a.readFileSync(t.fsPath,"utf8")}catch(e){return void n.window.showErrorMessage("Could not read tree file: "+t.fsPath)}g(e,i,t,"")}(e,i):n.window.showInformationMessage("Open a .tree file to view its parse tree graphic.")}),n.commands.registerCommand("nlp.showTreeGraphSelection",()=>function(e){const t=n.window.activeTextEditor;if(!t||"tree"!==t.document.languageId)return void n.window.showInformationMessage("Select part of a .tree file to graph it.");const s=t.document,i=t.selection;let a,r;if(i.isEmpty)a=(0,o.subtreeText)(s.getText(),i.active.line),r=" (subtree)";else{const e=[];for(let t=i.start.line;t<=i.end.line;t++)e.push(s.lineAt(t).text);a=e.join("\n"),r=" (selection)"}g(e,a,s.uri,r)}(e)))};const i=s(1635),n=i.__importStar(s(1398)),a=i.__importStar(s(9896)),r=i.__importStar(s(6928)),o=s(9179),l=s(4648),c=s(4714);let u,d,p=!1,m=!1;function h(){if(!d)return"";const e=(0,l.layoutTree)(d.root,{colWidth:d.colWidth,isCollapsed:e=>d.collapsed.has(e)});return(0,c.renderTreeSvg)(e)}function f(e){const t=r.dirname(e);if(!/_log$/.test(t))return;const s=t.replace(/_log$/,"");return a.existsSync(s)?s:void 0}function _(){u&&d&&(u.title=d.title,p?u.webview.postMessage({type:"update",svg:h(),reset:!0}):m=!0)}function g(e,t,s,i){!function(e){var t;u||(p=!1,m=!1,u=n.window.createWebviewPanel("nlpTreeGraph","Parse Tree",{viewColumn:n.ViewColumn.Beside,preserveFocus:!0},{enableScripts:!0,retainContextWhenHidden:!0}),u.webview.html=`\n\n\n\n\n\n\n\n
Rendering parse tree…
\n
scroll = zoom · shift+scroll = squeeze/spread · drag = pan · click = open one level · right-click = menu · click a word = reveal in text
\n\n\r\n\r\n`;\r\n}\r\n\r\n// Post the current tree to the webview once it's ready; buffer if it isn't yet.\r\nfunction flush(): void {\r\n\tif (!panel || !state) return;\r\n\tpanel.title = state.title;\r\n\tif (panelReady) {\r\n\t\tpanel.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: true });\r\n\t} else {\r\n\t\tpendingFlush = true; // webview will flush on its \"ready\" message\r\n\t}\r\n}\r\n\r\n// Core: open/refresh the graphic for `text`. The panel is created and revealed\r\n// immediately (so the click feels instant); parsing, layout and SVG generation\r\n// are deferred to the next tick and only sent once the webview signals ready —\r\n// so a large tree never blocks the click, and no message is lost.\r\nfunction openGraph(ctx: vscode.ExtensionContext, text: string, treeUri: vscode.Uri, titleSuffix: string): void {\r\n\tensurePanel(ctx);\r\n\tpanel!.reveal(vscode.ViewColumn.Beside, true);\r\n\r\n\tsetTimeout(() => {\r\n\t\tconst root = parseTree(text);\r\n\t\tif (!root) {\r\n\t\t\tvscode.window.showInformationMessage(\"No parse tree found to graph.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tstate = {\r\n\t\t\troot,\r\n\t\t\tcollapsed: defaultCollapsed(root),\r\n\t\t\tinputFile: inputFileForTree(treeUri.fsPath),\r\n\t\t\ttitle: \"Parse Tree — \" + path.basename(treeUri.fsPath) + titleSuffix,\r\n\t\t\tcolWidth: state?.colWidth ?? DEFAULT_COL_WIDTH, // keep the user's spacing across re-opens\r\n\t\t};\r\n\t\tflush();\r\n\t}, 0);\r\n}\r\n\r\n// Create the reusable webview panel (with an empty shell) and wire its messages,\r\n// once. Subsequent opens reuse it.\r\nfunction ensurePanel(ctx: vscode.ExtensionContext): void {\r\n\tif (panel) return;\r\n\tpanelReady = false;\r\n\tpendingFlush = false;\r\n\tpanel = vscode.window.createWebviewPanel(\r\n\t\t\"nlpTreeGraph\", \"Parse Tree\",\r\n\t\t{ viewColumn: vscode.ViewColumn.Beside, preserveFocus: true }, // don't steal focus when pre-warming\r\n\t\t{ enableScripts: true, retainContextWhenHidden: true },\r\n\t);\r\n\tpanel.webview.html = html(nonce());\r\n\tpanel.onDidDispose(() => { panel = undefined; state = undefined; panelReady = false; }, undefined, ctx.subscriptions);\r\n\tpanel.webview.onDidReceiveMessage((m) => {\r\n\t\tif (m?.type === \"ready\") {\r\n\t\t\tpanelReady = true;\r\n\t\t\tif (pendingFlush) { pendingFlush = false; flush(); }\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!state) return;\r\n\t\tif (m?.type === \"reveal\" && state.inputFile) {\r\n\t\t\trevealSpan(state.inputFile, m.start, m.end);\r\n\t\t} else if (m?.type === \"toggle\") {\r\n\t\t\tif (state.collapsed.has(m.id)) state.collapsed.delete(m.id);\r\n\t\t\telse state.collapsed.add(m.id);\r\n\t\t\tpanel?.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: false });\r\n\t\t} else if (m?.type === \"expandAll\" || m?.type === \"collapseAll\") {\r\n\t\t\tconst node = findNode(state.root, m.id);\r\n\t\t\tif (node) {\r\n\t\t\t\tif (m.type === \"expandAll\") {\r\n\t\t\t\t\t// Reveal the whole subtree: nothing under (or at) this node collapsed.\r\n\t\t\t\t\tsubtreeIds(node, false).forEach((id) => state!.collapsed.delete(id));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Hide the whole subtree: this node and every collapsible descendant.\r\n\t\t\t\t\tsubtreeIds(node, true).forEach((id) => state!.collapsed.add(id));\r\n\t\t\t\t}\r\n\t\t\t\tpanel?.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: false });\r\n\t\t\t}\r\n\t\t} else if (m?.type === \"expandAllTree\") {\r\n\t\t\tstate.collapsed.clear();\r\n\t\t\tpanel?.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: false });\r\n\t\t} else if (m?.type === \"collapseAllTree\") {\r\n\t\t\t// Collapse every internal node except the root, so only the root's\r\n\t\t\t// immediate children show (the compact starting view).\r\n\t\t\tstate.collapsed = new Set(subtreeIds(state.root, true).filter((id) => id !== state!.root.id));\r\n\t\t\tpanel?.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: false });\r\n\t\t} else if (m?.type === \"colWidth\") {\r\n\t\t\tstate.colWidth = Math.max(MIN_COL_WIDTH, Math.min(MAX_COL_WIDTH, state.colWidth + (m.delta || 0)));\r\n\t\t\tpanel?.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: false });\r\n\t\t}\r\n\t}, undefined, ctx.subscriptions);\r\n}\r\n\r\n// Graph the entire tree file.\r\nfunction showTreeGraph(ctx: vscode.ExtensionContext, treeUri: vscode.Uri): void {\r\n\t// Prefer the open document's text (reflects any edits) over a disk read.\r\n\tconst open = vscode.workspace.textDocuments.find((d) => d.uri.toString() === treeUri.toString());\r\n\tlet text: string;\r\n\tif (open) {\r\n\t\ttext = open.getText();\r\n\t} else {\r\n\t\ttry { text = fs.readFileSync(treeUri.fsPath, \"utf8\"); }\r\n\t\tcatch { vscode.window.showErrorMessage(\"Could not read tree file: \" + treeUri.fsPath); return; }\r\n\t}\r\n\topenGraph(ctx, text, treeUri, \"\");\r\n}\r\n\r\n// Graph just the selected portion: the selected lines if there's a selection,\r\n// otherwise the subtree rooted at the cursor's line.\r\nfunction showTreeGraphSelection(ctx: vscode.ExtensionContext): void {\r\n\tconst editor = vscode.window.activeTextEditor;\r\n\tif (!editor || editor.document.languageId !== \"tree\") {\r\n\t\tvscode.window.showInformationMessage(\"Select part of a .tree file to graph it.\");\r\n\t\treturn;\r\n\t}\r\n\tconst doc = editor.document;\r\n\tconst sel = editor.selection;\r\n\tlet text: string;\r\n\tlet suffix: string;\r\n\tif (!sel.isEmpty) {\r\n\t\tconst lines: string[] = [];\r\n\t\tfor (let i = sel.start.line; i <= sel.end.line; i++) lines.push(doc.lineAt(i).text);\r\n\t\ttext = lines.join(\"\\n\");\r\n\t\tsuffix = \" (selection)\";\r\n\t} else {\r\n\t\ttext = subtreeText(doc.getText(), sel.active.line);\r\n\t\tsuffix = \" (subtree)\";\r\n\t}\r\n\topenGraph(ctx, text, doc.uri, suffix);\r\n}\r\n\r\nexport function registerTreeGraph(ctx: vscode.ExtensionContext): void {\r\n\t// The graphic is strictly on-demand: the webview is created only when the\r\n\t// user asks for it (title-bar icon or right-click). Nothing here runs when a\r\n\t// .tree file is merely opened, so opening a tree file is never slowed by it.\r\n\tctx.subscriptions.push(\r\n\t\tvscode.commands.registerCommand(\"nlp.showTreeGraph\", (uri?: vscode.Uri) => {\r\n\t\t\tconst target = uri ?? vscode.window.activeTextEditor?.document.uri;\r\n\t\t\tif (!target) {\r\n\t\t\t\tvscode.window.showInformationMessage(\"Open a .tree file to view its parse tree graphic.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tshowTreeGraph(ctx, target);\r\n\t\t}),\r\n\t\tvscode.commands.registerCommand(\"nlp.showTreeGraphSelection\", () => showTreeGraphSelection(ctx)),\r\n\t);\r\n}\r\n","import * as vscode from 'vscode';\r\nimport * as path from 'path';\r\nimport * as fs from 'fs';\r\nimport * as os from 'os';\r\nimport { Analyzer } from './analyzer';\r\nimport { dirfuncs } from './dirfuncs';\r\nimport { JsonState } from './jsonState';\r\nimport { nlpStatusBar } from './status';\r\nimport { logView, logLineType } from './logView';\r\nimport { FileOps, fileOperation, fileOpRefresh, fileOneOff } from './fileOps';\r\nimport { NLPFile } from './nlp';\r\nimport { ModFile } from './modFile';\r\nimport { SequenceFile } from './sequence';\r\nimport { TextFile } from './textFile';\r\n\r\nexport enum upStat { UNKNOWN, START, RUNNING, CANCEL, FAILED, DONE }\r\nexport enum upOp { UNKNOWN, CHECK_EXISTS, VERSION, DOWNLOAD, UNZIP, DELETE, FAILED, DONE }\r\nexport enum upType { UNKNOWN, VERSION, DOWNLOAD, DELETE, UNZIP }\r\nexport enum upComp { UNKNOWN, ICU1, ICU2, ICU3, NLP_EXE, ENGINE_FILES, ENGINE_COMPILE_FILES, ANALYZER_FILES, VT_FILES }\r\nexport enum upPush { FRONT, BACK }\r\n\r\nexport interface updateOp {\r\n type: upType;\r\n status: upStat;\r\n operation: upOp;\r\n component: upComp;\r\n remote: string;\r\n local: string;\r\n folders: Array;\r\n version: string;\r\n}\r\n\r\ninterface ExtensionItem {\r\n uri: vscode.Uri;\r\n version: string;\r\n latest: boolean;\r\n}\r\n\r\ninterface TestItem {\r\n fileCount: number;\r\n matchFiles: number;\r\n matchLines: number;\r\n misFiles: number;\r\n misLines: number;\r\n}\r\n\r\n// HOW TO CALL IT\r\n//(async() => { await closeFileIfOpen(original); })();\r\nexport async function closeFileIfOpen(file: vscode.Uri): Promise {\r\n const tabs: vscode.Tab[] = vscode.window.tabGroups.all.map(tg => tg.tabs).flat();\r\n const index = tabs.findIndex(tab => tab.input instanceof vscode.TabInputText && tab.input.uri.path === file.path);\r\n if (index !== -1) {\r\n await vscode.window.tabGroups.close(tabs[index]);\r\n }\r\n}\r\n\r\nexport let visualText: VisualText;\r\nexport class VisualText {\r\n _ctx: vscode.ExtensionContext;\r\n public opsQueue: updateOp[] = new Array();\r\n public statusStrs = ['UNKNOWN', 'START', 'RUNNING', 'CANCEL', 'FAILED', 'DONE'];\r\n public opStrs = ['UNKNOWN', 'CHECK_EXISTS', 'VERSION', 'DOWNLOAD', 'UNZIP', 'DELETE', 'FAILED', 'DONE'];\r\n public compStrs = ['UNKNOWN', 'ICU1', 'ICU2', 'ICU3', 'NLP_EXE', 'ENGINE_FILES', 'ENGINE_COMPILE_FILES', 'ANALYZER_FILES', 'VT_FILES'];\r\n\r\n public readonly LOG_SUFFIX = '_log';\r\n public readonly TEST_SUFFIX = '_test';\r\n public readonly EXTENSION_NAME = 'dehilster.nlp';\r\n public readonly NLP_EXE = 'nlp.exe';\r\n public readonly ICU1_WIN = 'icudt78.dll';\r\n public readonly ICU2_WIN = 'icuuc78.dll';\r\n // icuin78 hosts ICU's i18n APIs (Collator, etc.) that lite.lib's find_str_nocase references.\r\n public readonly ICU3_WIN = 'icuin78.dll';\r\n public readonly NLPENGINE_FILES_ASSET = 'nlpengine.zip';\r\n public readonly NLPENGINE_COMPILE_FILES_ASSET = 'nlpengine-compile-libs.zip';\r\n public readonly NLPENGINE_REPO = 'nlp-engine';\r\n public readonly VISUALTEXT_FILES_REPO = 'visualtext-files';\r\n public readonly ANALYZERS_REPO = 'analyzers';\r\n public readonly VISUALTEXT_FILES_ASSET = 'visualtext.zip';\r\n public readonly ANALYZERS_ASSET = 'analyzers.zip';\r\n public readonly ANALYZER_SEQUENCE_FILE = 'analyzer.seq';\r\n public readonly ANALYZER_SEQUENCE_FOLDER = 'spec';\r\n public readonly GITHUB_REPOSITORY = 'https://github.com/VisualText/';\r\n public readonly GITHUB_RELEASE_LATEST = '/releases/latest/';\r\n public readonly GITHUB_RELEASE_LATEST_DOWNLOAD = '/releases/latest/download/';\r\n public readonly GITHUB_ENGINE_LATEST_RELEASE = this.GITHUB_REPOSITORY + this.NLPENGINE_REPO + this.GITHUB_RELEASE_LATEST_DOWNLOAD;\r\n public readonly GITHUB_ENGINE_LATEST_VERSION = this.GITHUB_REPOSITORY + this.NLPENGINE_REPO + this.GITHUB_RELEASE_LATEST;\r\n public readonly GITHUB_VISUALTEXT_FILES_LATEST_VERSION = this.GITHUB_REPOSITORY + this.VISUALTEXT_FILES_REPO + this.GITHUB_RELEASE_LATEST;\r\n public readonly GITHUB_ANALYZERS_LATEST_VERSION = this.GITHUB_REPOSITORY + this.ANALYZERS_REPO + this.GITHUB_RELEASE_LATEST;\r\n\r\n public analyzer = new Analyzer();\r\n public fileOps = new FileOps();\r\n public nlp = new NLPFile();\r\n public mod = new ModFile();\r\n public modFiles: vscode.Uri[] = new Array();\r\n public version: string = '';\r\n public engineVersion: string = '';\r\n public exeEngineVersion: string = '';\r\n public repoEngineVersion: string = '';\r\n public vtFilesVersion: string = '';\r\n public repoVTFilesVersion: string = ''\r\n public analyzersVersion: string = '';;\r\n public repoAnalyzersVersion: string = '';\r\n public engineDir: vscode.Uri = vscode.Uri.file('');\r\n public askModify: boolean = false;\r\n public processID: number = 0;\r\n public stopAll: boolean = false;\r\n public debug: boolean = false;\r\n public fastAnswered: boolean = false;\r\n\r\n private autoUpdateFlag: undefined | boolean = false;\r\n private platform: string = '';\r\n private homeDir: string = '';\r\n private username: string = '';\r\n private jsonState = new JsonState();\r\n private analyzers: vscode.Uri[] = new Array();\r\n private libraryFiles: string[] = new Array();\r\n private extensionDir: vscode.Uri = vscode.Uri.file('');\r\n\r\n private analyzerDir: vscode.Uri = vscode.Uri.file('');\r\n private currentAnalyzer: vscode.Uri = vscode.Uri.file('');\r\n private workspaceFold: vscode.Uri = vscode.Uri.file('');\r\n private modFile: vscode.Uri = vscode.Uri.file('');\r\n\r\n private extensionItems: ExtensionItem[] = new Array();\r\n private latestExtIndex: number = 0;\r\n private lastestEngineIndex: number = 0;\r\n private updaterID: number = 0;\r\n\r\n private testItem: TestItem = { fileCount: 0, matchFiles: 0, matchLines: 0, misFiles: 0, misLines: 0 };\r\n\r\n constructor(ctx: vscode.ExtensionContext) {\r\n this._ctx = ctx;\r\n }\r\n\r\n static attach(ctx: vscode.ExtensionContext): VisualText {\r\n if (!visualText) {\r\n visualText = new VisualText(ctx);\r\n if (vscode.workspace.workspaceFolders) {\r\n visualText.workspaceFold = vscode.workspace.workspaceFolders[0].uri;\r\n }\r\n\r\n visualText.platform = os.platform();\r\n visualText.homeDir = os.homedir();\r\n\r\n visualText.readConfig();\r\n visualText.readState();\r\n visualText.getExtensionDirs();\r\n visualText.initSettings();\r\n }\r\n return visualText;\r\n }\r\n\r\n editTestFiles(uri: vscode.Uri, outputPathFlag: boolean = false) {\r\n if (visualText.getWorkspaceFolder()) {\r\n const testFolder = this.analyzer.testFolder(uri, outputPathFlag);\r\n const files = dirfuncs.getFiles(testFolder);\r\n if (files.length > 1) {\r\n const items: vscode.QuickPickItem[] = [];\r\n for (const file of files) {\r\n items.push({ label: path.basename(file.fsPath), description: file.fsPath });\r\n }\r\n\r\n const title = 'Edit Test Files';\r\n const placeHolder = 'Choose test file to edit';\r\n\r\n vscode.window.showQuickPick(items, { title, canPickMany: false, placeHolder: placeHolder }).then(selection => {\r\n if (!selection || !selection.description)\r\n return;\r\n if (selection.description)\r\n vscode.window.showTextDocument(vscode.Uri.file(selection.description));\r\n });\r\n } else {\r\n vscode.window.showTextDocument(vscode.Uri.file(files[0].fsPath));\r\n }\r\n }\r\n }\r\n\r\n regressionTestFile(): string {\r\n return path.join(visualText.analyzer.getKBDirectory().fsPath, 'regression.test');\r\n }\r\n\r\n testInit() {\r\n this.testItem = { fileCount: 0, matchFiles: 0, matchLines: 0, misFiles: 0, misLines: 0 };\r\n }\r\n\r\n closeTest() {\r\n const regressFile = this.regressionTestFile();\r\n let content = fs.readFileSync(regressFile, 'utf8');\r\n let header = 'Files: ' + this.testItem.fileCount + '\\n';\r\n header += 'File matches: ' + this.testItem.matchFiles + '\\n';\r\n header += 'File mismatches: ' + this.testItem.misFiles + '\\n';\r\n header += 'Total line matches: ' + this.testItem.matchLines + '\\n';\r\n header += 'Total line mismatches: ' + this.testItem.misLines + '\\n';\r\n header += '\\n\\n';\r\n\r\n content = header + content;\r\n fs.writeFileSync(regressFile, content, 'utf8');\r\n }\r\n\r\n runTest(textFile: vscode.Uri) {\r\n const inputDir = visualText.analyzer.getInputDirectory().fsPath;\r\n const relPath = textFile.fsPath.substring(inputDir.length + 1, textFile.fsPath.length);\r\n const outputFolder = path.join(inputDir, relPath + visualText.LOG_SUFFIX);\r\n const testFolder = path.join(inputDir, relPath + visualText.TEST_SUFFIX);\r\n const files = dirfuncs.getFiles(vscode.Uri.file(testFolder));\r\n for (const testFile of files) {\r\n const outputFile = path.join(outputFolder, path.basename(testFile.fsPath));\r\n if (fs.existsSync(outputFile)) {\r\n this.testDiff(path.basename(textFile.fsPath), outputFile, testFile.fsPath);\r\n }\r\n }\r\n // vscode.commands.executeCommand(\"vscode.diff\", testFolder, uri);\r\n }\r\n\r\n testDiff(textFile: string, file: string, testFile: string) {\r\n const testResults = this.regressionTestFile();\r\n const fileText = new TextFile(file);\r\n const testText = new TextFile(testFile);\r\n const numLines = testText.getLines().length;\r\n let match = 0;\r\n let mismatch = 0;\r\n let report = '';\r\n let mismatches = '';\r\n\r\n for (let i = 0; i < numLines; i++) {\r\n const lineFile = fileText.getLines()[i];\r\n const lineTest = testText.getLines()[i];\r\n if (lineFile == lineTest) {\r\n match++;\r\n } else {\r\n mismatch++;\r\n mismatches += lineFile + '\\n' + lineTest + '\\n\\n';\r\n }\r\n }\r\n report = textFile + ' Linesss: ' + numLines + ' ' + 'Matches: ' + match + ' ' + 'Mismatches: ' + mismatch + '\\n';\r\n if (mismatches.length)\r\n report += mismatches + '\\n';\r\n\r\n this.testItem.fileCount++;\r\n this.testItem.matchLines += match;\r\n this.testItem.misLines += mismatch;\r\n if (mismatch) {\r\n this.testItem.misFiles++;\r\n } else {\r\n this.testItem.matchFiles++;\r\n }\r\n fs.appendFileSync(testResults, report);\r\n }\r\n\r\n setModFile(filePath: vscode.Uri) {\r\n this.mod.setFile(filePath);\r\n }\r\n\r\n modExists() {\r\n return this.mod.fileExists();\r\n }\r\n\r\n startUpdater(preInfoFlag: boolean = true) {\r\n if (this.updaterID == 0) {\r\n logView.clearLogs(false);\r\n this.platform = os.platform();\r\n const plat = this.platform == 'darwin' ? 'mac' : this.platform;\r\n this.homeDir = os.homedir();\r\n const rootPath = this.getLatestExtPath(this.extensionParentDirectory());\r\n if (rootPath) this.extensionDir = vscode.Uri.file(rootPath);\r\n this.version = vscode.extensions.getExtension(this.EXTENSION_NAME)?.packageJSON.version;\r\n\r\n if (preInfoFlag) {\r\n this.debugMessage('Platform: ' + plat, logLineType.UPDATER);\r\n this.debugMessage('User profile path: ' + this.homeDir, logLineType.UPDATER);\r\n this.debugMessage('VSCode NLP++ Extension path: ' + this.extensionDir.fsPath, logLineType.UPDATER);\r\n }\r\n\r\n this.debugMessage('Checking for updates or repairs...', logLineType.UPDATER);\r\n this.pushCheckVersions();\r\n this.startTimer();\r\n }\r\n }\r\n\r\n startTimer() {\r\n if (this.updaterID == 0) {\r\n this.updaterID = +setInterval(this.updaterTimer, 1000);\r\n }\r\n }\r\n\r\n stopUpdater() {\r\n this.debugMessage('STOP requested by user', logLineType.UPDATER);\r\n for (const o of visualText.opsQueue) {\r\n if (o.status != upStat.RUNNING) {\r\n o.status = upStat.DONE;\r\n }\r\n }\r\n visualText.stopAll = true;\r\n }\r\n\r\n pushCheckVersions() {\r\n visualText.pushCheckEngineFiles();\r\n visualText.pushCheckVTFiles();\r\n visualText.pushCheckAnalyzerFiles();\r\n }\r\n\r\n pushCheckVTFiles() {\r\n const op = visualText.emptyOp();\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.UNZIP, upStat.START, upOp.CHECK_EXISTS, upComp.VT_FILES);\r\n }\r\n\r\n pushCheckAnalyzerFiles() {\r\n const op = visualText.emptyOp();\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.UNZIP, upStat.START, upOp.CHECK_EXISTS, upComp.ANALYZER_FILES);\r\n }\r\n\r\n pushCheckEngineFiles() {\r\n const op = visualText.emptyOp();\r\n if (visualText.platform == 'win32') {\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.DOWNLOAD, upStat.START, upOp.CHECK_EXISTS, upComp.ICU1);\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.DOWNLOAD, upStat.START, upOp.CHECK_EXISTS, upComp.ICU2);\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.DOWNLOAD, upStat.START, upOp.CHECK_EXISTS, upComp.ICU3);\r\n }\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.DOWNLOAD, upStat.START, upOp.CHECK_EXISTS, upComp.NLP_EXE);\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.UNZIP, upStat.START, upOp.CHECK_EXISTS, upComp.ENGINE_FILES);\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.UNZIP, upStat.START, upOp.CHECK_EXISTS, upComp.ENGINE_COMPILE_FILES);\r\n }\r\n\r\n pushDeleteEngineFiles(op: updateOp, push: upPush) {\r\n if (visualText.platform == 'win32') {\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ICU1);\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ICU2);\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ICU3);\r\n }\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.NLP_EXE);\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ENGINE_FILES);\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ENGINE_COMPILE_FILES);\r\n }\r\n\r\n pushDeleteVTFiles(op: updateOp, push: upPush) {\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.VT_FILES);\r\n }\r\n\r\n pushDeleteAnalyzers(op: updateOp, push: upPush) {\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ANALYZER_FILES);\r\n }\r\n\r\n pushDownloadEngineFiles(op: updateOp, push: upPush) {\r\n visualText.addUpdateOperation(op, push, upType.UNZIP, upStat.START, upOp.DOWNLOAD, upComp.ENGINE_COMPILE_FILES);\r\n visualText.addUpdateOperation(op, push, upType.UNZIP, upStat.START, upOp.DOWNLOAD, upComp.ENGINE_FILES);\r\n visualText.addUpdateOperation(op, push, upType.DOWNLOAD, upStat.START, upOp.DOWNLOAD, upComp.NLP_EXE);\r\n if (visualText.platform == 'win32') {\r\n visualText.addUpdateOperation(op, push, upType.DOWNLOAD, upStat.START, upOp.DOWNLOAD, upComp.ICU3);\r\n visualText.addUpdateOperation(op, push, upType.DOWNLOAD, upStat.START, upOp.DOWNLOAD, upComp.ICU2);\r\n visualText.addUpdateOperation(op, push, upType.DOWNLOAD, upStat.START, upOp.DOWNLOAD, upComp.ICU1);\r\n }\r\n }\r\n\r\n pushDownloadVTFiles(op: updateOp, push: upPush) {\r\n visualText.addUpdateOperation(op, push, upType.UNZIP, upStat.START, upOp.DOWNLOAD, upComp.VT_FILES);\r\n }\r\n\r\n pushDownloadAnalyzers(op: updateOp, push: upPush) {\r\n visualText.addUpdateOperation(op, push, upType.UNZIP, upStat.START, upOp.DOWNLOAD, upComp.ANALYZER_FILES);\r\n }\r\n\r\n addUpdateOperation(opIn: updateOp, push: upPush, type: upType, status: upStat, operation: upOp, component: upComp) {\r\n const op = { type: type, status: status, operation: operation, component: component, remote: '', local: '', folders: [], version: opIn.version };\r\n\r\n switch (component) {\r\n case upComp.ICU1:\r\n case upComp.ICU2:\r\n case upComp.ICU3:\r\n visualText.libFilenames(op);\r\n break;\r\n case upComp.NLP_EXE:\r\n visualText.nlpExe(op);\r\n break;\r\n case upComp.ENGINE_FILES:\r\n visualText.zipFiles(op, visualText.NLPENGINE_REPO, '', visualText.NLPENGINE_FILES_ASSET, ['data']);\r\n break;\r\n case upComp.ENGINE_COMPILE_FILES:\r\n visualText.zipFiles(op, visualText.NLPENGINE_REPO, '', visualText.NLPENGINE_COMPILE_FILES_ASSET, ['include', 'lib']);\r\n break;\r\n case upComp.VT_FILES:\r\n // 'analyzer-templates' replaced the old 'analyzers' folder in the\r\n // visualtext.zip; checking the stale name made VT_FILES look\r\n // permanently missing, so the updater re-downloaded it every cycle.\r\n visualText.zipFiles(op, visualText.VISUALTEXT_FILES_REPO, 'visualText', visualText.VISUALTEXT_FILES_ASSET, [visualText.ANALYZER_SEQUENCE_FOLDER, 'Help', 'analyzer-templates']);\r\n break;\r\n case upComp.ANALYZER_FILES:\r\n visualText.zipFiles(op, visualText.ANALYZERS_REPO, 'analyzers', visualText.ANALYZERS_ASSET, ['']);\r\n break;\r\n }\r\n\r\n if (push == upPush.BACK)\r\n this.opsQueue.push(op);\r\n else\r\n this.opsQueue.unshift(op);\r\n }\r\n\r\n zipFiles(op: updateOp, repo: string, folder: string, download: string, folders: string[]) {\r\n op.remote = visualText.GITHUB_REPOSITORY + repo + visualText.GITHUB_RELEASE_LATEST_DOWNLOAD + download;\r\n const engDir = visualText.engineDirectory().fsPath;\r\n op.local = path.join(engDir, folder, download);\r\n op.folders = [];\r\n for (const f of folders) {\r\n op.folders.push(path.join(folder, f));\r\n }\r\n }\r\n\r\n nlpExe(op: updateOp) {\r\n let exe = '';\r\n switch (visualText.platform) {\r\n case 'win32':\r\n exe = 'nlpw.exe';\r\n break;\r\n case 'darwin':\r\n exe = 'nlpm.exe';\r\n break;\r\n default:\r\n exe = visualText.linuxZipName();\r\n op.type = upType.UNZIP;\r\n }\r\n op.remote = visualText.GITHUB_ENGINE_LATEST_RELEASE + exe;\r\n const engDir = visualText.engineDirectory().fsPath;\r\n op.local = path.join(engDir, visualText.NLP_EXE);\r\n }\r\n\r\n linuxZipName(): string {\r\n try {\r\n const osRelease = fs.readFileSync('/etc/os-release', 'utf8');\r\n const versionMatch = osRelease.match(/^VERSION_ID=\"?([^\"\\n]+)\"?/m);\r\n if (versionMatch) {\r\n const v = versionMatch[1];\r\n if (v === '20.04') return 'ubuntu-20.04.zip';\r\n if (v === '22.04') return 'ubuntu-22.04.zip';\r\n }\r\n } catch (e) {\r\n }\r\n return 'ubuntu-latest.zip';\r\n }\r\n\r\n libFilenames(op: updateOp) {\r\n let libRelease = '';\r\n let lib = '';\r\n if (visualText.platform === 'win32') {\r\n switch (op.component) {\r\n case upComp.ICU1: libRelease = lib = visualText.ICU1_WIN; break;\r\n case upComp.ICU2: libRelease = lib = visualText.ICU2_WIN; break;\r\n case upComp.ICU3: libRelease = lib = visualText.ICU3_WIN; break;\r\n }\r\n }\r\n op.remote = visualText.GITHUB_ENGINE_LATEST_RELEASE + libRelease;\r\n const engDir = visualText.engineDirectory().fsPath;\r\n op.local = path.join(engDir, lib);\r\n }\r\n\r\n getLatestExtPath(dir: vscode.Uri): string {\r\n const files = dirfuncs.getFiles(dir);\r\n for (const file of files.reverse()) {\r\n const filename = path.basename(file.fsPath);\r\n if (filename.startsWith(this.EXTENSION_NAME)) {\r\n this.version = this.versionFromPath(file);\r\n return file.fsPath;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n updaterTimer() {\r\n let op = visualText.opsQueue[0];\r\n const q = visualText.opsQueue;\r\n let allDone = true;\r\n\r\n for (const o of visualText.opsQueue) {\r\n if (visualText.stopAll) {\r\n // Abandon every op, including a RUNNING one. The download/unzip\r\n // async is fire-and-forget and can't be truly cancelled, but the\r\n // updater state -- the timer, the queue, and the \"updating.running\"\r\n // context that shows the stop icon -- MUST reset so Stop actually\r\n // stops. (Previously a RUNNING op kept allDone false forever, so\r\n // the stop icon never went away.) A late-completing async just sets\r\n // status on an op no longer in the queue, which is harmless.\r\n o.status = upStat.CANCEL;\r\n }\r\n else {\r\n if (o.status == upStat.UNKNOWN || o.status == upStat.START || o.status == upStat.RUNNING) {\r\n op = o;\r\n allDone = false;\r\n break;\r\n }\r\n else if (o.status != upStat.FAILED && o.status != upStat.CANCEL && o.status != upStat.DONE) {\r\n allDone = false;\r\n }\r\n }\r\n }\r\n if (allDone) {\r\n vscode.commands.executeCommand('setContext', 'updating.running', false);\r\n visualText.opsQueue = [];\r\n clearInterval(visualText.updaterID);\r\n visualText.updaterID = 0;\r\n if (visualText.stopAll)\r\n visualText.debugMessage('UPDATE STOPPED BY USER', logLineType.UPDATER);\r\n else\r\n visualText.debugMessage('UPDATE CHECK COMPLETE', logLineType.UPDATER);\r\n visualText.stopAll = false;\r\n vscode.commands.executeCommand('status.update');\r\n return;\r\n } else {\r\n vscode.commands.executeCommand('setContext', 'updating.running', true);\r\n }\r\n if (visualText.stopAll)\r\n return;\r\n\r\n if (visualText.debug)\r\n visualText.debugMessage(visualText.statusStrs[op.status] + ' ' + visualText.opStrs[op.operation] + ' ' + visualText.compStrs[op.component], logLineType.UPDATER);\r\n\r\n switch (op.status) {\r\n case upStat.START:\r\n switch (op.operation) {\r\n case upOp.CHECK_EXISTS:\r\n // Use the SAME engine directory the download/unzip target\r\n // (engineDirectory(), based on this.version). getExtensionPath()\r\n // can resolve to a different installed version, so with multiple\r\n // versions installed the check looked in one dir while the download\r\n // populated another -- the update never registered as done and the\r\n // unzip looped. (See #481.)\r\n const endDir = visualText.engineDirectory().fsPath;\r\n if (op.folders.length && endDir) {\r\n let missingOne = false;\r\n for (const folder of op.folders) {\r\n const f = path.join(endDir, folder);\r\n // An empty folder means a prior download/unzip was\r\n // interrupted; treat it as missing so the updater\r\n // re-fetches instead of declaring an incomplete\r\n // install complete (which left \"missing files\").\r\n if (!visualText.pathPopulated(f)) {\r\n missingOne = true;\r\n break;\r\n }\r\n }\r\n if (!missingOne) {\r\n if (visualText.isCompVersion(op))\r\n op.operation = upOp.VERSION;\r\n else\r\n op.status = upStat.DONE;\r\n } else {\r\n op.operation = upOp.DOWNLOAD;\r\n }\r\n } else if (fs.existsSync(op.local)) {\r\n if (visualText.isCompVersion(op))\r\n op.operation = upOp.VERSION;\r\n else\r\n op.status = upStat.DONE;\r\n } else {\r\n op.operation = upOp.DOWNLOAD;\r\n }\r\n break;\r\n\r\n case upOp.DOWNLOAD:\r\n if (fs.existsSync(op.local)) {\r\n if (op.type == upType.UNZIP) {\r\n op.operation = upOp.UNZIP;\r\n } else {\r\n op.status = upStat.DONE;\r\n }\r\n }\r\n else {\r\n op.status = upStat.RUNNING;\r\n visualText.download(op);\r\n }\r\n break;\r\n\r\n case upOp.DELETE:\r\n if (fs.existsSync(op.local)) {\r\n visualText.debugMessage('Deleting: ' + op.local, logLineType.UPDATER);\r\n fs.unlinkSync(op.local);\r\n }\r\n // NOTE: do NOT delete the whole visualText directory here. That\r\n // (#800) left the directory empty if the subsequent download/unzip\r\n // stalled, and the missing files re-triggered the updater, so the\r\n // unzip got stuck in a loop. The unzip overwrites files in place, so\r\n // a fresh download simply refreshes them. (Residual files from an\r\n // older release are tolerated; clearing them safely is future work.)\r\n if (op.folders.length) {\r\n for (const folder of op.folders) {\r\n const f = path.join(path.dirname(op.local), folder);\r\n if (fs.existsSync(f)) {\r\n dirfuncs.delDir(f);\r\n }\r\n }\r\n }\r\n op.status = upStat.DONE;\r\n break;\r\n\r\n case upOp.UNZIP:\r\n op.status = upStat.RUNNING;\r\n visualText.unzip(op);\r\n break;\r\n\r\n case upOp.VERSION:\r\n if (op.version.length) {\r\n visualText.updateVersion(op);\r\n op.status = upStat.DONE;\r\n } else {\r\n switch (op.component) {\r\n case upComp.NLP_EXE:\r\n visualText.checkExeVersion(op);\r\n break;\r\n\r\n case upComp.VT_FILES:\r\n visualText.checkVTFilesVersion(op);\r\n break;\r\n\r\n case upComp.ANALYZER_FILES:\r\n if (visualText.debug) visualText.debugMessage('VERSION CHECK: Analyzers', logLineType.UPDATER);\r\n visualText.checkAnalyzersVersion(op);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n break;\r\n\r\n case upStat.RUNNING:\r\n const donothing = 1;\r\n break;\r\n }\r\n }\r\n\r\n isCompVersion(op: updateOp): boolean {\r\n return op.component == upComp.NLP_EXE || op.component == upComp.VT_FILES || op.component == upComp.ANALYZER_FILES;\r\n }\r\n\r\n emptyOp(): updateOp {\r\n return { type: upType.UNKNOWN, status: upStat.UNKNOWN, operation: upOp.UNKNOWN, component: upComp.UNKNOWN, remote: '', local: '', folders: [], version: '' };\r\n }\r\n\r\n updateVersion(op: updateOp) {\r\n switch (op.component) {\r\n case upComp.NLP_EXE:\r\n nlpStatusBar.updateEngineVersion(op.version);\r\n break;\r\n case upComp.VT_FILES:\r\n nlpStatusBar.updateFilesVersion(op.version);\r\n visualText.setVTFilesVersion(op.version);\r\n break;\r\n case upComp.ANALYZER_FILES:\r\n nlpStatusBar.updateAnalyzerssVersion(op.version);\r\n visualText.setAnalyzersVersion(op.version);\r\n break;\r\n }\r\n }\r\n\r\n checkExeVersion(op: updateOp) {\r\n visualText.fetchExeVersion(op)?.then(version => {\r\n visualText.checkEngineVersionRepo(op)\r\n .then(newerVersion => {\r\n if (newerVersion) {\r\n visualText.pushDownloadEngineFiles(op, upPush.FRONT);\r\n visualText.pushDeleteEngineFiles(op, upPush.FRONT);\r\n }\r\n op.status = upStat.DONE;\r\n visualText.updateVersion(op);\r\n })\r\n })\r\n .catch(error => {\r\n op.status = upStat.FAILED;\r\n });\r\n op.status = upStat.RUNNING;\r\n }\r\n\r\n checkEngineVersionRepo(op: updateOp) {\r\n return new Promise((resolve, reject) => {\r\n\r\n const https = require('follow-redirects').https;\r\n\r\n const request = https.get(this.GITHUB_ENGINE_LATEST_VERSION, function (res) {\r\n res.on('data', function (chunk) {\r\n let newer = false;\r\n if (op.status != upStat.DONE) {\r\n const url = res.responseUrl;\r\n visualText.repoEngineVersion = url.substring(url.lastIndexOf('/') + 1);\r\n const exeVersion = visualText.exeEngineVersion;\r\n const repoVersion = visualText.repoEngineVersion;\r\n op.version = visualText.repoEngineVersion;\r\n if (visualText.debug) visualText.debugMessage('NLP.EXE Versions: ' + exeVersion + ' == ' + repoVersion, logLineType.UPDATER);\r\n\r\n if (exeVersion && repoVersion) {\r\n if (visualText.versionCompare(repoVersion, exeVersion) > 0) {\r\n newer = true;\r\n }\r\n } else if (!fs.existsSync(op.local)) {\r\n // No engine installed yet -> download it. (A present\r\n // exe is handled by the branches above/below.)\r\n newer = true;\r\n } else {\r\n // Exe is present but its version couldn't be read (or\r\n // the repo version is unknown). Do NOT assume \"newer\":\r\n // that re-downloaded the engine on every startup when\r\n // `nlp.exe --version` returned empty (e.g. a transient\r\n // spawn/ICU hiccup), producing an endless update loop.\r\n if (visualText.debug)\r\n visualText.debugMessage('Skipping engine update: version undetermined (exe=[' + exeVersion + '] repo=[' + repoVersion + '])', logLineType.UPDATER);\r\n }\r\n op.status = upStat.DONE;\r\n }\r\n resolve(newer);\r\n });\r\n }).on('error', function (err) {\r\n reject(err);\r\n });\r\n request.end();\r\n });\r\n }\r\n\r\n checkVTFilesVersion(op: updateOp) {\r\n const statusFlag = op.status == upStat.UNKNOWN ? true : false;\r\n visualText.checkVTFilesVersionRepo(op)\r\n .then(newerVersion => {\r\n if (newerVersion) {\r\n visualText.pushDownloadVTFiles(op, upPush.FRONT);\r\n visualText.pushDeleteVTFiles(op, upPush.FRONT);\r\n if (statusFlag) {\r\n op.component = upComp.VT_FILES;\r\n visualText.startTimer();\r\n }\r\n } else if (statusFlag) {\r\n vscode.window.showInformationMessage('VisualText files verion ' + visualText.repoVTFilesVersion + ' is the latest');\r\n }\r\n op.status = upStat.DONE;\r\n visualText.updateVersion(op);\r\n })\r\n }\r\n\r\n checkVTFilesVersionRepo(op: updateOp) {\r\n return new Promise((resolve, reject) => {\r\n\r\n const https = require('follow-redirects').https;\r\n\r\n const request = https.get(this.GITHUB_VISUALTEXT_FILES_LATEST_VERSION, function (res) {\r\n res.on('data', function (chunk) {\r\n let newer = false;\r\n if (op.status != upStat.DONE) {\r\n const url = res.responseUrl;\r\n visualText.repoVTFilesVersion = url.substring(url.lastIndexOf('/') + 1);\r\n op.version = visualText.repoVTFilesVersion;\r\n const currentVersion = visualText.getVTFilesVersion();\r\n if (visualText.debug)\r\n visualText.debugMessage('VisualText Files Versions: ' + currentVersion + ' == ' + visualText.repoVTFilesVersion, logLineType.UPDATER);\r\n\r\n if (currentVersion) {\r\n visualText.vtFilesVersion = currentVersion;\r\n if (visualText.versionCompare(visualText.repoVTFilesVersion, currentVersion) > 0) {\r\n newer = true;\r\n }\r\n }\r\n else {\r\n newer = true;\r\n }\r\n op.status = upStat.DONE;\r\n }\r\n resolve(newer);\r\n });\r\n }).on('error', function (err) {\r\n reject(err);\r\n });\r\n request.end();\r\n });\r\n }\r\n\r\n checkAnalyzersVersion(op: updateOp) {\r\n const statusFlag = op.status == upStat.UNKNOWN ? true : false;\r\n visualText.checkAnalyzersVersionRepo(op)\r\n .then(newerVersion => {\r\n if (newerVersion) {\r\n visualText.setAnalyzersVersion(visualText.repoAnalyzersVersion);\r\n visualText.pushDownloadAnalyzers(op, upPush.FRONT);\r\n visualText.pushDeleteAnalyzers(op, upPush.FRONT);\r\n op.status = upStat.DONE;\r\n visualText.updateVersion(op);\r\n } else if (statusFlag) {\r\n vscode.window.showInformationMessage('Analyzers verion ' + visualText.repoAnalyzersVersion + ' is the latest');\r\n }\r\n op.status = upStat.DONE;\r\n visualText.updateVersion(op);\r\n })\r\n }\r\n\r\n checkAnalyzersVersionRepo(op: updateOp) {\r\n return new Promise((resolve, reject) => {\r\n const https = require('follow-redirects').https;\r\n\r\n const request = https.get(this.GITHUB_ANALYZERS_LATEST_VERSION, function (res) {\r\n res.on('data', function (chunk) {\r\n let newer = false;\r\n if (op.status != upStat.DONE) {\r\n const url = res.responseUrl;\r\n visualText.repoAnalyzersVersion = url.substring(url.lastIndexOf('/') + 1);\r\n op.version = visualText.repoAnalyzersVersion;\r\n const currentVersion = visualText.getAnalyzersVersion();\r\n if (visualText.debug)\r\n visualText.debugMessage('Analyzers Versions: ' + currentVersion + ' == ' + visualText.repoAnalyzersVersion, logLineType.UPDATER);\r\n if (currentVersion) {\r\n visualText.analyzersVersion = currentVersion;\r\n if (visualText.versionCompare(visualText.repoAnalyzersVersion, currentVersion) > 0) {\r\n newer = true;\r\n }\r\n }\r\n else {\r\n newer = true;\r\n }\r\n op.status = upStat.DONE;\r\n }\r\n resolve(newer);\r\n });\r\n }).on('error', function (err) {\r\n reject(err);\r\n });\r\n request.end();\r\n });\r\n }\r\n\r\n download(op: updateOp) {\r\n const Downloader = require('nodejs-file-downloader');\r\n\r\n (async () => {\r\n const dir = path.dirname(op.local);\r\n const filename = (op.component === upComp.NLP_EXE && op.type === upType.UNZIP)\r\n ? path.basename(op.remote)\r\n : path.basename(op.local);\r\n const url = op.remote;\r\n\r\n const downloader = new Downloader({\r\n url: url,\r\n directory: dir,\r\n filename: filename\r\n });\r\n try {\r\n visualText.debugMessage('Downloading: ' + url, logLineType.UPDATER);\r\n await downloader.download();\r\n visualText.debugMessage('DONE DOWNLOAD: ' + url, logLineType.UPDATER);\r\n if (op.type == upType.UNZIP && !visualText.stopAll) {\r\n op.operation = upOp.UNZIP;\r\n op.status = upStat.START;\r\n } else if (visualText.isCompVersion(op)) {\r\n op.operation = upOp.VERSION;\r\n op.status = upStat.START;\r\n } else {\r\n op.status = upStat.DONE;\r\n }\r\n }\r\n catch (error) {\r\n op.status = upStat.FAILED;\r\n visualText.debugMessage('FAILED download: ' + url + '\\n' + error, logLineType.UPDATER);\r\n }\r\n })();\r\n }\r\n\r\n // A path counts as \"populated\" only if it exists AND has content: a\r\n // non-empty directory, or a non-empty file. An empty dir left by an\r\n // interrupted download/unzip is treated as absent so the updater re-fetches.\r\n private pathPopulated(p: string): boolean {\r\n try {\r\n if (!fs.existsSync(p)) return false;\r\n const st = fs.statSync(p);\r\n return st.isDirectory() ? fs.readdirSync(p).length > 0 : st.size > 0;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n // Move a single extracted entry into its final location, replacing any\r\n // existing file/dir. src and dst live on the same volume (the temp dir is a\r\n // child of the engine dir), so renameSync is atomic and fast; the cpSync\r\n // fallback only covers a transient Windows lock on the destination.\r\n private moveIntoPlace(src: string, dst: string) {\r\n if (fs.existsSync(dst)) {\r\n if (fs.statSync(dst).isDirectory()) dirfuncs.delDir(dst);\r\n else fs.unlinkSync(dst);\r\n }\r\n try {\r\n fs.renameSync(src, dst);\r\n } catch (e) {\r\n fs.cpSync(src, dst, { recursive: true });\r\n if (fs.statSync(src).isDirectory()) dirfuncs.delDir(src);\r\n else fs.unlinkSync(src);\r\n }\r\n }\r\n\r\n // Extract a zip into destDir. Prefers the OS-native extractor (bsdtar,\r\n // shipped on Windows 10+/1803 and macOS), which handles large entries\r\n // reliably and fast -- extract-zip has been observed to HANG on big native\r\n // static libs (e.g. a 38 MB words.lib in nlpengine-compile-libs.zip), while\r\n // tar extracts the same 60 MB zip in a fraction of a second. Falls back to\r\n // extract-zip where a zip-capable tar isn't available (e.g. GNU tar on\r\n // Linux). (See #1073.)\r\n private extractArchive(zipPath: string, destDir: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n const useTar = os.platform() === 'win32' || os.platform() === 'darwin';\r\n const tryExtractZip = (why?: string) => {\r\n if (why) this.debugMessage('Native unzip unavailable (' + why + '), using extract-zip', logLineType.UPDATER);\r\n const extract = require('extract-zip');\r\n extract(zipPath, { dir: destDir }).then(() => resolve()).catch(reject);\r\n };\r\n if (!useTar) { tryExtractZip(); return; }\r\n const { execFile } = require('child_process');\r\n const tarExe = os.platform() === 'win32'\r\n ? path.join(process.env.WINDIR || 'C:\\\\Windows', 'System32', 'tar.exe')\r\n : 'tar';\r\n execFile(tarExe, ['-xf', zipPath, '-C', destDir], { windowsHide: true }, (err: any) => {\r\n if (err) tryExtractZip(err.message || String(err));\r\n else resolve();\r\n });\r\n });\r\n }\r\n\r\n unzip(op: updateOp) {\r\n (async () => {\r\n const vtFileDir = path.dirname(op.local);\r\n const isLinuxExeZip = op.component === upComp.NLP_EXE && op.type === upType.UNZIP;\r\n const toPath = isLinuxExeZip\r\n ? path.join(vtFileDir, path.basename(op.remote))\r\n : op.local;\r\n\r\n // Extract into a temp sibling dir first, then move each top-level\r\n // entry into place only after the FULL extraction succeeds. An\r\n // interrupted or partial unzip therefore never lands in the engine\r\n // dir, so it can't masquerade as a complete install and re-trigger\r\n // the download->unzip retry loop that left the updater stuck. The\r\n // source zip is only deleted after everything is moved into place,\r\n // so a re-run always re-extracts cleanly from scratch. (See #1070.)\r\n const tmpDir = path.join(vtFileDir, '.vt-unzip-tmp');\r\n try {\r\n if (fs.existsSync(tmpDir)) dirfuncs.delDir(tmpDir);\r\n fs.mkdirSync(tmpDir, { recursive: true });\r\n\r\n this.debugMessage('Unzipping: ' + toPath, logLineType.UPDATER);\r\n // Watchdog: if extraction never resolves (a hang seen with\r\n // extract-zip on large entries), time out so the op FAILS instead\r\n // of sitting at RUNNING forever and wedging the whole updater.\r\n // FAILED is terminal, so the queue completes and the next run\r\n // retries. (The native tar path normally finishes in well under a\r\n // second, so this only bites a genuine hang.)\r\n const UNZIP_TIMEOUT_MS = 120000;\r\n await Promise.race([\r\n this.extractArchive(toPath, tmpDir),\r\n new Promise((_resolve, reject) =>\r\n setTimeout(() => reject(new Error('unzip timed out after '\r\n + (UNZIP_TIMEOUT_MS / 1000) + 's')), UNZIP_TIMEOUT_MS))\r\n ]);\r\n this.debugMessage('UNZIPPED: ' + toPath, logLineType.UPDATER);\r\n\r\n // exe zips wrap their payload in a single subfolder; flatten it.\r\n let srcRoot = tmpDir;\r\n if (isLinuxExeZip) {\r\n const subfolder = path.join(tmpDir, path.basename(toPath, '.zip'));\r\n if (fs.existsSync(subfolder)) srcRoot = subfolder;\r\n }\r\n for (const f of fs.readdirSync(srcRoot)) {\r\n const dst = (isLinuxExeZip && f === 'nlpl.exe')\r\n ? path.join(vtFileDir, visualText.NLP_EXE)\r\n : path.join(vtFileDir, f);\r\n visualText.moveIntoPlace(path.join(srcRoot, f), dst);\r\n }\r\n\r\n dirfuncs.delDir(tmpDir);\r\n op.status = upStat.DONE;\r\n dirfuncs.delFile(toPath);\r\n }\r\n catch (err) {\r\n this.debugMessage('Could not unzip file: ' + toPath + '\\n' + err, logLineType.UPDATER);\r\n if (fs.existsSync(tmpDir)) dirfuncs.delDir(tmpDir);\r\n op.status = upStat.FAILED;\r\n }\r\n })();\r\n }\r\n\r\n public debugMessage(msg: string, type: logLineType = logLineType.INFO) {\r\n logView.addMessage(msg, type, undefined);\r\n vscode.commands.executeCommand('logView.refreshAll');\r\n }\r\n\r\n readState(): boolean {\r\n if (vscode.workspace.workspaceFolders) {\r\n this.analyzerDir = this.workspaceFold;\r\n this.getAnalyzers(false);\r\n if (this.jsonState.jsonParse(this.analyzerDir, 'state')) {\r\n let saveit = false;\r\n const parse = this.jsonState.json.visualText[0];\r\n let currAnalyzer = parse.currentAnalyzer;\r\n\r\n if (currAnalyzer.length > 0 && !fs.existsSync(currAnalyzer)) {\r\n this.setCurrentAnalyzer(vscode.Uri.file(''));\r\n }\r\n else if (currAnalyzer.length == 0) {\r\n const analyzers = dirfuncs.getDirectories(this.workspaceFold);\r\n currAnalyzer = analyzers[0].fsPath;\r\n saveit = true;\r\n }\r\n\r\n if (currAnalyzer) {\r\n if (fs.existsSync(currAnalyzer))\r\n this.currentAnalyzer = vscode.Uri.file(currAnalyzer);\r\n else\r\n this.currentAnalyzer = vscode.Uri.file(path.join(this.analyzerDir.fsPath, currAnalyzer));\r\n\r\n if (saveit)\r\n this.saveCurrentAnalyzer(this.analyzerDir);\r\n this.loadAnalyzer(this.currentAnalyzer);\r\n return true;\r\n }\r\n } else {\r\n this.saveCurrentAnalyzer(this.analyzerDir);\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n initSettings(): boolean {\r\n const fromDir = path.join(visualText.getExtensionPath().fsPath, '.vscode');\r\n if (fs.existsSync(fromDir)) {\r\n const toDir = path.join(this.analyzerDir.fsPath, '.vscode');\r\n if (!fs.existsSync(toDir)) {\r\n if (!dirfuncs.copyDirectory(fromDir, toDir)) {\r\n vscode.window.showWarningMessage('Copy settings file failed');\r\n return false;\r\n }\r\n return true;\r\n }\r\n this.ensureExists('settings.json', toDir, fromDir);\r\n this.ensureExists('state.json', toDir, fromDir);\r\n }\r\n return false;\r\n }\r\n\r\n ensureExists(fileName: string, toDir: string, fromDir: string) {\r\n const toFile = path.join(toDir, fileName);\r\n if (!fs.existsSync(toFile)) {\r\n const fromFile = path.join(fromDir, fileName);\r\n fs.copyFileSync(fromFile, toFile);\r\n }\r\n }\r\n\r\n readConfig() {\r\n this.configAutoUpdate();\r\n this.configFindUsername();\r\n this.configAnalzyerDirectory();\r\n this.configCurrentAnalzyer();\r\n }\r\n\r\n configCurrentAnalzyer() {\r\n if (vscode.workspace.workspaceFolders) {\r\n const config = vscode.workspace.getConfiguration('analyzer', this.workspaceFold);\r\n const current = config.get('current');\r\n if (!current) {\r\n if (this.analyzers.length) {\r\n this.currentAnalyzer = this.analyzers[0];\r\n config.update('current', this.currentAnalyzer.fsPath, vscode.ConfigurationTarget.WorkspaceFolder);\r\n this.debugMessage('Current analyzer: ' + this.currentAnalyzer.fsPath, logLineType.UPDATER);\r\n }\r\n } else {\r\n this.currentAnalyzer = vscode.Uri.file(current);\r\n }\r\n }\r\n }\r\n\r\n configAnalzyerDirectory() {\r\n const config = vscode.workspace.getConfiguration('analyzer');\r\n let directory: string;\r\n\r\n if (vscode.workspace.workspaceFolders && dirfuncs.analyzerFolderCount(this.workspaceFold)) {\r\n directory = this.workspaceFold.fsPath;\r\n } else {\r\n directory = config.get('directory') || '';\r\n if (!directory) {\r\n directory = path.join(this.engineDir.fsPath, 'analyzers');\r\n }\r\n }\r\n\r\n this.analyzerDir = vscode.Uri.file(directory);\r\n if (directory.length > 1)\r\n config.update('directory', directory, vscode.ConfigurationTarget.Global);\r\n }\r\n\r\n failedWarning() {\r\n vscode.window.showErrorMessage(\"Update failed\", \"Click here to see solutions\").then(response => {\r\n logView.downloadHelp();\r\n });\r\n }\r\n\r\n findExtensionIndex(engDir: string): number {\r\n let index = 0;\r\n for (const ext of this.extensionItems) {\r\n visualText.stopAll\r\n if (engDir.startsWith(ext.uri.fsPath))\r\n break;\r\n index++;\r\n }\r\n return index;\r\n }\r\n\r\n versionFromPath(extDir: vscode.Uri): string {\r\n const dir = extDir.fsPath;\r\n const version = dir.substring(dir.lastIndexOf(this.EXTENSION_NAME) + 1 + this.EXTENSION_NAME.length);\r\n return version;\r\n }\r\n\r\n versionCompare(version1: string, version2: string): number {\r\n if (!version1.length || !version2.length)\r\n return 0;\r\n\r\n const toks1 = version1.split('.');\r\n const toks2 = version2.split('.');\r\n const num = toks1.length > toks2.length ? toks1.length : toks2.length;\r\n for (let i = 0; i < num; i++) {\r\n const v1 = parseInt(visualText.trimV(toks1[i]));\r\n const v2 = parseInt(visualText.trimV(toks2[i]));\r\n if (v1 > v2) return 1;\r\n if (v2 > v1) return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n trimV(version: string): string {\r\n let ret = version;\r\n if (version.substring(0, 1) == 'v') {\r\n ret = version.substring(1, version.length);\r\n }\r\n return ret;\r\n }\r\n\r\n exePath() {\r\n return vscode.Uri.file(path.join(visualText.engineDirectory().fsPath, visualText.NLP_EXE));\r\n }\r\n\r\n engineDirectory() {\r\n return vscode.Uri.file(path.join(this.extensionDirectory().fsPath, this.NLPENGINE_REPO));\r\n }\r\n\r\n extensionDirectory() {\r\n return vscode.Uri.file(path.join(this.extensionParentDirectory().fsPath, this.EXTENSION_NAME + '-' + this.version));\r\n }\r\n\r\n extensionParentDirectory() {\r\n let dir = path.join(this.homeDir, '.vscode', 'extensions');\r\n if (!fs.existsSync(dir)) {\r\n if (this.platform == 'linux') {\r\n dir = path.join(this.homeDir, '.vscode-server', 'extensions');\r\n }\r\n }\r\n return vscode.Uri.file(dir);\r\n }\r\n\r\n visualTextFilesDirectory() {\r\n return vscode.Uri.file(path.join(this.engineDirectory().fsPath, this.VISUALTEXT_FILES_REPO));\r\n }\r\n\r\n fetchExeVersion(op: updateOp, debug: boolean = false) {\r\n dirfuncs.changeMod(op.local, 755);\r\n visualText.exeEngineVersion = '';\r\n const cp = require('child_process');\r\n return new Promise((resolve) => {\r\n let stdout = '';\r\n let settled = false;\r\n // Resolve exactly once, from the FULL accumulated output. Resolving on\r\n // the first stdout chunk (or never, on spawn failure) is what left\r\n // exeEngineVersion empty and drove the perpetual re-download loop.\r\n const finish = () => {\r\n if (settled) return;\r\n settled = true;\r\n // `nlp.exe --version` prints just the version; take the last\r\n // non-empty line and strip CR/LF/whitespace either way.\r\n const lines = stdout.split(/\\r?\\n/).map(s => s.trim()).filter(s => s.length);\r\n visualText.exeEngineVersion = lines.length ? lines[lines.length - 1] : '';\r\n if (debug) visualText.debugMessage('version found: [' + visualText.exeEngineVersion + ']', logLineType.UPDATER);\r\n resolve(visualText.exeEngineVersion);\r\n };\r\n let child;\r\n try {\r\n child = cp.spawn(op.local, ['--version']);\r\n } catch (err) {\r\n visualText.debugMessage('fetchExeVersion spawn threw: ' + err, logLineType.UPDATER);\r\n finish();\r\n return;\r\n }\r\n child.stdout.on('data', (data) => { stdout += data.toString(); });\r\n // --version exits non-zero by design, so key off 'close', not the exit\r\n // code. 'error' fires if the exe can't be spawned at all.\r\n child.on('close', () => finish());\r\n child.on('error', (err) => {\r\n visualText.debugMessage('fetchExeVersion spawn error: ' + err, logLineType.UPDATER);\r\n finish();\r\n });\r\n });\r\n }\r\n\r\n getBlockAnalyzersPath(): vscode.Uri {\r\n return vscode.Uri.file(path.join(visualText.getExtensionPath().fsPath, visualText.NLPENGINE_REPO, visualText.ANALYZERS_REPO));\r\n }\r\n\r\n getExtensionPath(): vscode.Uri {\r\n return this.extensionItems[this.latestExtIndex].uri;\r\n }\r\n\r\n getExtensionDirs() {\r\n const parentDir = this.extensionParentDirectory();\r\n let dirs: vscode.Uri[] = new Array();\r\n this.extensionItems = [];\r\n dirs = dirfuncs.getDirectories(parentDir);\r\n let latestVersion = '';\r\n this.latestExtIndex = -1;\r\n let counter = 0;\r\n\r\n for (const dir of dirs) {\r\n const name = path.basename(dir.fsPath);\r\n if (name.startsWith(this.EXTENSION_NAME)) {\r\n const version = this.versionFromPath(dir);\r\n if (latestVersion.length == 0 || this.versionCompare(version, latestVersion) > 0) {\r\n latestVersion = version;\r\n this.latestExtIndex = counter;\r\n }\r\n this.extensionItems.push({ uri: dir, version: version, latest: false });\r\n counter++;\r\n }\r\n }\r\n\r\n if (this.latestExtIndex >= 0) {\r\n this.extensionItems[this.latestExtIndex].latest = true;\r\n if (!this.version.length) {\r\n this.version = latestVersion;\r\n }\r\n }\r\n }\r\n\r\n setTextFastLoad(fastFlag: boolean) {\r\n this.autoUpdateFlag = fastFlag;\r\n const config = vscode.workspace.getConfiguration('textView');\r\n config.update('fast', fastFlag, vscode.ConfigurationTarget.Global);\r\n vscode.commands.executeCommand('setContext', 'textView.fastload', fastFlag);\r\n }\r\n\r\n getTextFastLoad(): boolean | undefined {\r\n const config = vscode.workspace.getConfiguration('textView');\r\n const version = config.get('visualText');\r\n return config.get('fast');\r\n }\r\n\r\n setAutoUpdate(autoUpdateFlag: boolean) {\r\n this.autoUpdateFlag = autoUpdateFlag;\r\n const config = vscode.workspace.getConfiguration('update');\r\n config.update('auto', autoUpdateFlag, vscode.ConfigurationTarget.Global);\r\n }\r\n\r\n getAutoUpdate(): boolean | undefined {\r\n const config = vscode.workspace.getConfiguration('update');\r\n const version = config.get('visualText');\r\n return config.get('auto');\r\n }\r\n\r\n configAutoUpdate() {\r\n this.autoUpdateFlag = this.getAutoUpdate();\r\n }\r\n\r\n setVTFilesVersion(version: string) {\r\n this.vtFilesVersion = version;\r\n const config = vscode.workspace.getConfiguration('engine');\r\n config.update('visualtext', version, vscode.ConfigurationTarget.Global);\r\n }\r\n\r\n getVTFilesVersion(): string | undefined {\r\n const config = vscode.workspace.getConfiguration('engine');\r\n const version = config.get('visualtext');\r\n return config.get('visualtext');\r\n }\r\n\r\n setAnalyzersVersion(version: string) {\r\n this.vtFilesVersion = version;\r\n const config = vscode.workspace.getConfiguration('engine');\r\n config.update('analyzers', version, vscode.ConfigurationTarget.Global);\r\n }\r\n\r\n getAnalyzersVersion(): string | undefined {\r\n const config = vscode.workspace.getConfiguration('engine');\r\n const version = config.get('analyzers');\r\n return config.get('analyzers');\r\n }\r\n\r\n configFindUsername() {\r\n const config = vscode.workspace.getConfiguration('user');\r\n const username = config.get('name');\r\n if (!username) {\r\n vscode.window.showErrorMessage(\"No user name for comments.\", \"Enter user name\").then(response => {\r\n vscode.window.showInputBox({ value: 'Your Name', prompt: 'Enter author name for comments' }).then(username => {\r\n if (username) {\r\n visualText.username = username;\r\n config.update(\"name\", username, vscode.ConfigurationTarget.Global);\r\n }\r\n });\r\n });\r\n } else {\r\n this.username = username;\r\n }\r\n }\r\n\r\n saveCurrentAnalyzer(currentAnalyzer: vscode.Uri) {\r\n const stateJsonDefault: any = {\r\n \"visualText\": [\r\n {\r\n \"name\": \"Analyzer\",\r\n \"type\": \"state\",\r\n \"currentAnalyzer\": currentAnalyzer.fsPath\r\n }\r\n ]\r\n }\r\n this.jsonState.saveFile(this.analyzerDir.fsPath, 'state', stateJsonDefault);\r\n this.setCurrentAnalyzer(currentAnalyzer);\r\n }\r\n\r\n loadAnalyzer(analyzerDirectory: vscode.Uri) {\r\n this.saveCurrentAnalyzer(analyzerDirectory);\r\n this.analyzer.load(analyzerDirectory);\r\n vscode.commands.executeCommand('textView.refreshAll');\r\n vscode.commands.executeCommand('sequenceView.refreshAll');\r\n vscode.commands.executeCommand('kbView.refreshAll');\r\n vscode.commands.executeCommand('outputView.refreshAll');\r\n }\r\n\r\n setCurrentAnalyzer(currentAnalyzer: vscode.Uri) {\r\n if (this.jsonState.json) {\r\n const parse = this.jsonState.json.visualText[0];\r\n parse.currentAnalyzer = currentAnalyzer.fsPath;\r\n this.jsonState.writeFile();\r\n }\r\n }\r\n\r\n getCurrentAnalyzer(): vscode.Uri {\r\n return this.currentAnalyzer;\r\n }\r\n\r\n getCurrentAnalyzerName(): string {\r\n return this.analyzer.getName();\r\n }\r\n\r\n hasAnalyzers(): boolean {\r\n return this.analyzers.length ? true : false;\r\n }\r\n\r\n getAnalyzerDir(): vscode.Uri {\r\n return this.analyzerDir;\r\n }\r\n\r\n getAnalyzers(testForLogs: boolean): vscode.Uri[] {\r\n if (this.analyzerDir.fsPath.length) {\r\n this.analyzers = [];\r\n this.getAnalyzersRecursive(testForLogs, this.analyzerDir);\r\n }\r\n return this.analyzers;\r\n }\r\n\r\n getAnalyzersRecursive(testForLogs: boolean, dir: vscode.Uri) {\r\n if (dir.fsPath.length) {\r\n let anas: vscode.Uri[] = [];\r\n if (!fs.existsSync(dir.fsPath)) {\r\n dir = this.workspaceFold;\r\n }\r\n anas = dirfuncs.getDirectories(dir);\r\n for (const ana of anas) {\r\n if (visualText.isAnalyzerDirectory(ana)) {\r\n if (!testForLogs || dirfuncs.analyzerHasLogFiles(ana))\r\n this.analyzers.push(ana);\r\n } else {\r\n this.getAnalyzersRecursive(testForLogs, ana);\r\n }\r\n }\r\n }\r\n }\r\n\r\n hasWorkspaceFolder(): boolean {\r\n return this.workspaceFold?.fsPath.length ? true : false;\r\n }\r\n\r\n getWorkspaceFolder(): vscode.Uri {\r\n if (this.workspaceFold) {\r\n return this.workspaceFold;\r\n }\r\n return vscode.Uri.file('');\r\n }\r\n\r\n visualTextDirectoryExists(): boolean {\r\n return fs.existsSync(this.getVisualTextDirectory());\r\n }\r\n\r\n getVisualTextDirectory(dirName: string = ''): string {\r\n let vtDir = '';\r\n const engineDir = this.engineDirectory().fsPath;\r\n const vtDirName = 'visualText';\r\n if (engineDir) {\r\n if (dirName.length)\r\n vtDir = path.join(engineDir, vtDirName, dirName);\r\n else\r\n vtDir = path.join(engineDir, vtDirName);\r\n }\r\n return vtDir;\r\n }\r\n\r\n isAnalyzerDirectory(dirPath: vscode.Uri): boolean {\r\n const dirs = dirfuncs.getDirectories(dirPath);\r\n let spec = false;\r\n let kb = false;\r\n let input = false;\r\n\r\n for (const dir of dirs) {\r\n if (path.basename(dir.fsPath).localeCompare(visualText.ANALYZER_SEQUENCE_FOLDER) == 0) {\r\n spec = true;\r\n }\r\n else if (path.basename(dir.fsPath).localeCompare('kb') == 0) {\r\n kb = true;\r\n }\r\n else if (path.basename(dir.fsPath).localeCompare('input') == 0) {\r\n input = true;\r\n }\r\n }\r\n\r\n return spec && kb && input;\r\n }\r\n\r\n hasLogFiles(dirPath: vscode.Uri): boolean {\r\n const dirs = dirfuncs.getDirectories(dirPath);\r\n let spec = false;\r\n let kb = false;\r\n let input = false;\r\n let output = false;\r\n let logs = false;\r\n\r\n for (const dir of dirs) {\r\n const dirname = path.basename(dir.fsPath);\r\n if (dirname.localeCompare(visualText.ANALYZER_SEQUENCE_FOLDER) == 0) {\r\n spec = true;\r\n }\r\n else if (dirname.localeCompare('kb') == 0) {\r\n kb = true;\r\n }\r\n else if (dirname.localeCompare('input') == 0) {\r\n input = true;\r\n }\r\n else if (dirname == 'output' && dirfuncs.hasFiles(dir)) {\r\n output = true;\r\n }\r\n else if (dirname == 'logs' && dirfuncs.hasFiles(dir)) {\r\n logs = true;\r\n }\r\n }\r\n\r\n return spec && kb && input && output && logs;\r\n }\r\n\r\n setUpdateEngine(): boolean {\r\n const uri = visualText.getExtensionPath();\r\n if (uri) {\r\n this.debugMessage('NLP Engine updating version', logLineType.UPDATER);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n updateEngine() {\r\n visualText.pushDownloadEngineFiles(visualText.emptyOp(), upPush.FRONT);\r\n visualText.pushDeleteEngineFiles(visualText.emptyOp(), upPush.FRONT);\r\n visualText.startUpdater();\r\n }\r\n\r\n updateVTFiles() {\r\n visualText.pushDeleteVTFiles(visualText.emptyOp(), upPush.BACK);\r\n visualText.pushDownloadVTFiles(visualText.emptyOp(), upPush.BACK);\r\n this.startUpdater();\r\n }\r\n\r\n updateAnalyzersFiles() {\r\n visualText.pushDeleteAnalyzers(visualText.emptyOp(), upPush.BACK);\r\n visualText.pushDownloadAnalyzers(visualText.emptyOp(), upPush.BACK);\r\n this.startUpdater();\r\n }\r\n\r\n convertPatFiles(analyzerDir: vscode.Uri) {\r\n const spec = vscode.Uri.file(path.join(analyzerDir.fsPath, visualText.ANALYZER_SEQUENCE_FOLDER));\r\n const op = visualText.fileOps.addFileOperation(spec, spec, [fileOpRefresh.ANALYZER], fileOperation.RENAME, 'pat', 'nlp');\r\n op.oneOff = fileOneOff.PAT_TO_NLP;\r\n visualText.fileOps.startFileOps();\r\n }\r\n\r\n stopFileOps() {\r\n visualText.fileOps.stopAll();\r\n }\r\n\r\n // Ensures the workspace settings carry the NLP token colorization. This is\r\n // called before opening pass/tree/match files, so it must stay cheap: it used\r\n // to re-read and re-parse .vscode/settings.json on EVERY open (and rewrite it\r\n // when the block was missing, which makes VSCode re-apply token colors) —\r\n // visibly delaying the file from coming up. The work only needs doing once per\r\n // session, so repeated calls short-circuit. Pass overwrite=true to force it\r\n // (the \"Update Colorizer\" command).\r\n private colorizeChecked = false;\r\n\r\n colorizeAnalyzer(overwrite: boolean = false) {\r\n if (this.colorizeChecked && !overwrite) return;\r\n this.colorizeChecked = true;\r\n if (vscode.workspace.workspaceFolders) {\r\n let add = false;\r\n const toDir = vscode.workspace.workspaceFolders[0].uri;\r\n const toFile = path.join(toDir.fsPath, '.vscode', 'settings.json');\r\n // Read the colorization template from the running extension (source tree in\r\n // debug, installed .vsix dir in production) rather than the manually-built\r\n // installed path, which only holds the downloaded nlp-engine assets.\r\n const fromDir = this._ctx.extensionUri;\r\n const fromFile = path.join(fromDir.fsPath, '.vscode', 'settings.json');\r\n if (fs.existsSync(toFile)) {\r\n if (this.jsonState.jsonParse(toDir, 'settings')) {\r\n if (!this.jsonState.json.hasOwnProperty('editor.tokenColorCustomizations')) {\r\n const settingsObj1 = this.jsonState.json;\r\n this.jsonState.jsonParse(fromDir, 'settings')\r\n const settingsObj2 = this.jsonState.json;\r\n\r\n const mergedObj = {\r\n ...settingsObj1,\r\n ...settingsObj2\r\n };\r\n this.jsonState.saveFile(toDir.fsPath, \"settings\", mergedObj);\r\n }\r\n }\r\n } else\r\n add = true;\r\n\r\n if (add || overwrite) {\r\n dirfuncs.copyFile(fromFile, toFile);\r\n this.debugMessage('Copying settings file with colorization: ' + fromFile + ' => ' + toFile, logLineType.UPDATER);\r\n }\r\n }\r\n }\r\n\r\n openFileManager(dir: string) {\r\n let platformCmd = '';\r\n if (os.platform() == 'win32') {\r\n platformCmd = 'explorer.exe';\r\n } else if (os.platform() == 'linux') {\r\n platformCmd = 'xdg-open';\r\n } else if (os.platform() == 'darwin') {\r\n platformCmd = 'open';\r\n }\r\n if (platformCmd != '') {\r\n // Quote the path so folders/files with spaces open correctly (#123).\r\n const cmd = platformCmd + ' \"' + dir + '\"';\r\n const cp = require('child_process');\r\n cp.exec(cmd, (err, stdout, stderr) => {\r\n console.log('stdout: ' + stdout);\r\n console.log('stderr: ' + stderr);\r\n });\r\n } else {\r\n vscode.window.showInformationMessage('Couldn\\'t open nlp engine folder');\r\n }\r\n }\r\n\r\n createPanel(title: string): vscode.WebviewPanel {\r\n return vscode.window.createWebviewPanel(\r\n 'logView',\r\n title,\r\n {\r\n viewColumn: vscode.ViewColumn.Beside,\r\n preserveFocus: false\r\n }\r\n );\r\n }\r\n\r\n displayHelpFile(title: string, filename: string) {\r\n const helpDir = visualText.getVisualTextDirectory(\"Help\");\r\n const baseName = path.parse(filename).name;\r\n const mdFile = path.join(helpDir, \"markdown\", baseName + \".md\");\r\n const htmlFile = path.join(helpDir, \"helps\", baseName + \".html\");\r\n if (fs.existsSync(mdFile)) {\r\n vscode.commands.executeCommand('markdown.showPreview', vscode.Uri.file(mdFile));\r\n }\r\n else if (fs.existsSync(htmlFile)) {\r\n this.displayHTML(title, fs.readFileSync(htmlFile, 'utf8'));\r\n }\r\n }\r\n\r\n displayHTML(title: string, html: string) {\r\n const panel = this.createPanel(title);\r\n if (panel) {\r\n panel.webview.html = html;\r\n }\r\n }\r\n\r\n fileIconFromExt(filepath: string): string {\r\n const filename = path.basename(filepath);\r\n\r\n let icon = 'file.svg';\r\n if (filename.endsWith('.tree')) {\r\n icon = 'tree.svg';\r\n } else if (filename.endsWith('.log')) {\r\n icon = 'log.svg';\r\n } else if (filename.endsWith('.nlp') || filename.endsWith('.pat')) {\r\n icon = 'nlp.svg';\r\n } else if (filename.endsWith('.dict')) {\r\n icon = 'dict.svg';\r\n } else if (filename == 'main.kb') {\r\n icon = 'kb-main.svg';\r\n } else if (filename.endsWith('.kbb')) {\r\n icon = 'kbb.svg';\r\n } else if (filename.endsWith('.kb')) {\r\n icon = 'kb.svg';\r\n } else if (filename.endsWith('.txxt')) {\r\n icon = 'symbol-keyword.svg';\r\n } else if (filename.endsWith('.dict')) {\r\n icon = 'dict.svg';\r\n } else if (filename.endsWith('.nlm')) {\r\n icon = 'mod.svg';\r\n } else if (filename.endsWith('.test')) {\r\n icon = 'test.svg';\r\n } else if (filename.endsWith('.py')) {\r\n icon = 'python.svg';\r\n } else if (filename.endsWith('.json')) {\r\n icon = 'json.svg';\r\n } else if (filename.endsWith('.dll') || filename.endsWith('.so') || filename.endsWith('.dylib')) {\r\n icon = 'library.svg';\r\n } else {\r\n icon = 'file.svg';\r\n }\r\n\r\n return icon;\r\n }\r\n\r\n analyzerList(subdir: string): vscode.QuickPickItem[] {\r\n let dirs: vscode.Uri[] = [];\r\n if (subdir.length) {\r\n const pather = path.join(visualText.getWorkspaceFolder().fsPath, subdir);\r\n dirs = dirfuncs.getDirectories(vscode.Uri.file(pather));\r\n } else\r\n dirs = dirfuncs.getDirectories(visualText.getWorkspaceFolder());\r\n const items: vscode.QuickPickItem[] = [];\r\n for (const dir of dirs) {\r\n const filename = path.basename(dir.fsPath);\r\n items.push({ label: filename, description: dir.fsPath });\r\n }\r\n return items;\r\n }\r\n\r\n analyzerFolderList(specFlag: boolean = false): vscode.QuickPickItem[] {\r\n const dirs = dirfuncs.getDirectories(visualText.getWorkspaceFolder());\r\n const items: vscode.QuickPickItem[] = [];\r\n return this.analyzerFolderListRecurse(visualText.getWorkspaceFolder(), items, 0, specFlag);\r\n }\r\n\r\n analyzerFolderListRecurse(dir: vscode.Uri, items: vscode.QuickPickItem[], level: number = 0, specFlag: boolean = false): vscode.QuickPickItem[] {\r\n const dirs = dirfuncs.getDirectories(dir);\r\n let indent = '';\r\n const spacer = ' ';\r\n for (let i = 0; i < level; i++) {\r\n indent = indent + spacer;\r\n }\r\n if (indent.length > 0) indent = '-' + indent;\r\n const seq = new SequenceFile;\r\n for (const dir of dirs) {\r\n const basename = path.basename(dir.fsPath);\r\n const baseUpper = basename.toUpperCase();\r\n if (visualText.isAnalyzerDirectory(dir)) {\r\n if (specFlag) {\r\n items.push({ label: indent + basename, description: '=======================' });\r\n seq.choicePasses(path.join(dir.fsPath, visualText.ANALYZER_SEQUENCE_FOLDER), items, '-' + indent + spacer, false);\r\n } else {\r\n items.push({ label: indent + basename, description: dir.fsPath });\r\n }\r\n } else {\r\n items.push({ label: indent + '(FOLDER) ' + baseUpper, description: '(FOLDER - choose analyzer bloc(s) below)' });\r\n this.analyzerFolderListRecurse(dir, items, level + 1, specFlag);\r\n }\r\n }\r\n return items;\r\n }\r\n\r\n modFileList(): vscode.QuickPickItem[] {\r\n const items: vscode.QuickPickItem[] = [];\r\n for (const uri of this.modFiles) {\r\n const basename = path.basename(uri.fsPath);\r\n items.push({ label: basename, description: uri.fsPath });\r\n }\r\n return items;\r\n }\r\n\r\n findFilesWithExtension(extension: string) {\r\n const protectedFiles = [\r\n 'C:\\\\DumpStack.log.tmp',\r\n 'C:\\\\hiberfil.sys',\r\n 'C:\\\\pagefile.sys',\r\n 'C:\\\\swapfile.sys'\r\n ];\r\n function explore(dir: string) {\r\n try {\r\n const files = fs.readdirSync(dir);\r\n for (const file of files) {\r\n const filePath = path.join(dir, file);\r\n if (protectedFiles.includes(filePath)) {\r\n continue;\r\n }\r\n let stats;\r\n try {\r\n stats = fs.statSync(filePath);\r\n } catch (err: any) {\r\n if (err.code === 'EPERM') {\r\n // Skip protected system files\r\n continue;\r\n } else {\r\n throw err;\r\n }\r\n }\r\n const startsWithNumber = /^\\d+\\_/.test(file);\r\n if (stats.isDirectory()) {\r\n explore(filePath);\r\n } else if (path.extname(file) === extension && !startsWithNumber) {\r\n visualText.libraryFiles.push(filePath);\r\n }\r\n }\r\n } catch (err) {\r\n console.error('An error occurred while reading the directory:', (err as Error).message);\r\n }\r\n }\r\n\r\n if (visualText.libraryFiles.length == 0) {\r\n const filepath = path.join(visualText.getVisualTextDirectory(visualText.ANALYZER_SEQUENCE_FOLDER));\r\n if (fs.existsSync(filepath)) {\r\n explore(filepath)\r\n }\r\n }\r\n }\r\n\r\n getLibraryFiles(): string[] {\r\n return this.libraryFiles;\r\n }\r\n\r\n public async chooseLibFiles(prompt: string, dirName: string, subDir: string, exts: string[]): Promise {\r\n const fileDir = path.join(visualText.getVisualTextDirectory(), dirName, subDir);\r\n const items: vscode.QuickPickItem[] = [];\r\n\r\n const dictFiles = dirfuncs.getFiles(vscode.Uri.file(fileDir), exts);\r\n const textFile = new TextFile();\r\n for (const dictFile of dictFiles) {\r\n let descr = \"\";\r\n\r\n const firstLine = textFile.readFirstLine(dictFile.fsPath);\r\n if (firstLine[0] == '#') {\r\n descr = firstLine.substring(1);\r\n }\r\n const icon = visualText.fileIconFromExt(dictFile.fsPath);\r\n const label = path.basename(dictFile.fsPath);\r\n const light = vscode.Uri.file(path.join(visualText.getExtensionPath().fsPath, \"resources\", \"light\", icon));\r\n const dark = vscode.Uri.file(path.join(visualText.getExtensionPath().fsPath, \"resources\", \"dark\", icon));\r\n items.push({ label: label, description: descr });\r\n }\r\n\r\n if (items.length == 0) {\r\n vscode.window.showWarningMessage('Not created yet and you can help!');\r\n return [];\r\n } else {\r\n const selections = await vscode.window.showQuickPick(items, { title: 'Choose ' + prompt, canPickMany: true, placeHolder: 'Choose ' + prompt + ' to insert' });\r\n if (selections) {\r\n for (const item of selections) {\r\n item.description = fileDir;\r\n }\r\n }\r\n return selections || [];\r\n }\r\n }\r\n\r\n convertUriToStr(uri: vscode.Uri): string {\r\n let pathStr = uri.fsPath;\r\n if (os.platform() === 'win32') {\r\n pathStr = pathStr.replace(/\\\\/g, '\\\\\\\\');\r\n } else {\r\n pathStr = pathStr.replace(/\\\\/g, '/');\r\n }\r\n return pathStr;\r\n }\r\n}\r\n","// Returns a wrapper function that returns a wrapped callback\r\n// The wrapper function should do some stuff, and return a\r\n// presumably different callback function.\r\n// This makes sure that own properties are retained, so that\r\n// decorations and such are not lost along the way.\r\nmodule.exports = wrappy\r\nfunction wrappy (fn, cb) {\r\n if (fn && cb) return wrappy(fn)(cb)\r\n\r\n if (typeof fn !== 'function')\r\n throw new TypeError('need wrapper function')\r\n\r\n Object.keys(fn).forEach(function (k) {\r\n wrapper[k] = fn[k]\r\n })\r\n\r\n return wrapper\r\n\r\n function wrapper() {\r\n var args = new Array(arguments.length)\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i]\r\n }\r\n var ret = fn.apply(this, args)\r\n var cb = args[args.length-1]\r\n if (typeof ret === 'function' && ret !== cb) {\r\n Object.keys(cb).forEach(function (k) {\r\n ret[k] = cb[k]\r\n })\r\n }\r\n return ret\r\n }\r\n}\r\n","var fs = require(\"fs\");\r\nvar zlib = require(\"zlib\");\r\nvar fd_slicer = require(\"fd-slicer\");\r\nvar crc32 = require(\"buffer-crc32\");\r\nvar util = require(\"util\");\r\nvar EventEmitter = require(\"events\").EventEmitter;\r\nvar Transform = require(\"stream\").Transform;\r\nvar PassThrough = require(\"stream\").PassThrough;\r\nvar Writable = require(\"stream\").Writable;\r\n\r\nexports.open = open;\r\nexports.fromFd = fromFd;\r\nexports.fromBuffer = fromBuffer;\r\nexports.fromRandomAccessReader = fromRandomAccessReader;\r\nexports.dosDateTimeToDate = dosDateTimeToDate;\r\nexports.validateFileName = validateFileName;\r\nexports.ZipFile = ZipFile;\r\nexports.Entry = Entry;\r\nexports.RandomAccessReader = RandomAccessReader;\r\n\r\nfunction open(path, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = null;\r\n }\r\n if (options == null) options = {};\r\n if (options.autoClose == null) options.autoClose = true;\r\n if (options.lazyEntries == null) options.lazyEntries = false;\r\n if (options.decodeStrings == null) options.decodeStrings = true;\r\n if (options.validateEntrySizes == null) options.validateEntrySizes = true;\r\n if (options.strictFileNames == null) options.strictFileNames = false;\r\n if (callback == null) callback = defaultCallback;\r\n fs.open(path, \"r\", function(err, fd) {\r\n if (err) return callback(err);\r\n fromFd(fd, options, function(err, zipfile) {\r\n if (err) fs.close(fd, defaultCallback);\r\n callback(err, zipfile);\r\n });\r\n });\r\n}\r\n\r\nfunction fromFd(fd, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = null;\r\n }\r\n if (options == null) options = {};\r\n if (options.autoClose == null) options.autoClose = false;\r\n if (options.lazyEntries == null) options.lazyEntries = false;\r\n if (options.decodeStrings == null) options.decodeStrings = true;\r\n if (options.validateEntrySizes == null) options.validateEntrySizes = true;\r\n if (options.strictFileNames == null) options.strictFileNames = false;\r\n if (callback == null) callback = defaultCallback;\r\n fs.fstat(fd, function(err, stats) {\r\n if (err) return callback(err);\r\n var reader = fd_slicer.createFromFd(fd, {autoClose: true});\r\n fromRandomAccessReader(reader, stats.size, options, callback);\r\n });\r\n}\r\n\r\nfunction fromBuffer(buffer, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = null;\r\n }\r\n if (options == null) options = {};\r\n options.autoClose = false;\r\n if (options.lazyEntries == null) options.lazyEntries = false;\r\n if (options.decodeStrings == null) options.decodeStrings = true;\r\n if (options.validateEntrySizes == null) options.validateEntrySizes = true;\r\n if (options.strictFileNames == null) options.strictFileNames = false;\r\n // limit the max chunk size. see https://github.com/thejoshwolfe/yauzl/issues/87\r\n var reader = fd_slicer.createFromBuffer(buffer, {maxChunkSize: 0x10000});\r\n fromRandomAccessReader(reader, buffer.length, options, callback);\r\n}\r\n\r\nfunction fromRandomAccessReader(reader, totalSize, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = null;\r\n }\r\n if (options == null) options = {};\r\n if (options.autoClose == null) options.autoClose = true;\r\n if (options.lazyEntries == null) options.lazyEntries = false;\r\n if (options.decodeStrings == null) options.decodeStrings = true;\r\n var decodeStrings = !!options.decodeStrings;\r\n if (options.validateEntrySizes == null) options.validateEntrySizes = true;\r\n if (options.strictFileNames == null) options.strictFileNames = false;\r\n if (callback == null) callback = defaultCallback;\r\n if (typeof totalSize !== \"number\") throw new Error(\"expected totalSize parameter to be a number\");\r\n if (totalSize > Number.MAX_SAFE_INTEGER) {\r\n throw new Error(\"zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.\");\r\n }\r\n\r\n // the matching unref() call is in zipfile.close()\r\n reader.ref();\r\n\r\n // eocdr means End of Central Directory Record.\r\n // search backwards for the eocdr signature.\r\n // the last field of the eocdr is a variable-length comment.\r\n // the comment size is encoded in a 2-byte field in the eocdr, which we can't find without trudging backwards through the comment to find it.\r\n // as a consequence of this design decision, it's possible to have ambiguous zip file metadata if a coherent eocdr was in the comment.\r\n // we search backwards for a eocdr signature, and hope that whoever made the zip file was smart enough to forbid the eocdr signature in the comment.\r\n var eocdrWithoutCommentSize = 22;\r\n var maxCommentSize = 0xffff; // 2-byte size\r\n var bufferSize = Math.min(eocdrWithoutCommentSize + maxCommentSize, totalSize);\r\n var buffer = newBuffer(bufferSize);\r\n var bufferReadStart = totalSize - buffer.length;\r\n readAndAssertNoEof(reader, buffer, 0, bufferSize, bufferReadStart, function(err) {\r\n if (err) return callback(err);\r\n for (var i = bufferSize - eocdrWithoutCommentSize; i >= 0; i -= 1) {\r\n if (buffer.readUInt32LE(i) !== 0x06054b50) continue;\r\n // found eocdr\r\n var eocdrBuffer = buffer.slice(i);\r\n\r\n // 0 - End of central directory signature = 0x06054b50\r\n // 4 - Number of this disk\r\n var diskNumber = eocdrBuffer.readUInt16LE(4);\r\n if (diskNumber !== 0) {\r\n return callback(new Error(\"multi-disk zip files are not supported: found disk number: \" + diskNumber));\r\n }\r\n // 6 - Disk where central directory starts\r\n // 8 - Number of central directory records on this disk\r\n // 10 - Total number of central directory records\r\n var entryCount = eocdrBuffer.readUInt16LE(10);\r\n // 12 - Size of central directory (bytes)\r\n // 16 - Offset of start of central directory, relative to start of archive\r\n var centralDirectoryOffset = eocdrBuffer.readUInt32LE(16);\r\n // 20 - Comment length\r\n var commentLength = eocdrBuffer.readUInt16LE(20);\r\n var expectedCommentLength = eocdrBuffer.length - eocdrWithoutCommentSize;\r\n if (commentLength !== expectedCommentLength) {\r\n return callback(new Error(\"invalid comment length. expected: \" + expectedCommentLength + \". found: \" + commentLength));\r\n }\r\n // 22 - Comment\r\n // the encoding is always cp437.\r\n var comment = decodeStrings ? decodeBuffer(eocdrBuffer, 22, eocdrBuffer.length, false)\r\n : eocdrBuffer.slice(22);\r\n\r\n if (!(entryCount === 0xffff || centralDirectoryOffset === 0xffffffff)) {\r\n return callback(null, new ZipFile(reader, centralDirectoryOffset, totalSize, entryCount, comment, options.autoClose, options.lazyEntries, decodeStrings, options.validateEntrySizes, options.strictFileNames));\r\n }\r\n\r\n // ZIP64 format\r\n\r\n // ZIP64 Zip64 end of central directory locator\r\n var zip64EocdlBuffer = newBuffer(20);\r\n var zip64EocdlOffset = bufferReadStart + i - zip64EocdlBuffer.length;\r\n readAndAssertNoEof(reader, zip64EocdlBuffer, 0, zip64EocdlBuffer.length, zip64EocdlOffset, function(err) {\r\n if (err) return callback(err);\r\n\r\n // 0 - zip64 end of central dir locator signature = 0x07064b50\r\n if (zip64EocdlBuffer.readUInt32LE(0) !== 0x07064b50) {\r\n return callback(new Error(\"invalid zip64 end of central directory locator signature\"));\r\n }\r\n // 4 - number of the disk with the start of the zip64 end of central directory\r\n // 8 - relative offset of the zip64 end of central directory record\r\n var zip64EocdrOffset = readUInt64LE(zip64EocdlBuffer, 8);\r\n // 16 - total number of disks\r\n\r\n // ZIP64 end of central directory record\r\n var zip64EocdrBuffer = newBuffer(56);\r\n readAndAssertNoEof(reader, zip64EocdrBuffer, 0, zip64EocdrBuffer.length, zip64EocdrOffset, function(err) {\r\n if (err) return callback(err);\r\n\r\n // 0 - zip64 end of central dir signature 4 bytes (0x06064b50)\r\n if (zip64EocdrBuffer.readUInt32LE(0) !== 0x06064b50) {\r\n return callback(new Error(\"invalid zip64 end of central directory record signature\"));\r\n }\r\n // 4 - size of zip64 end of central directory record 8 bytes\r\n // 12 - version made by 2 bytes\r\n // 14 - version needed to extract 2 bytes\r\n // 16 - number of this disk 4 bytes\r\n // 20 - number of the disk with the start of the central directory 4 bytes\r\n // 24 - total number of entries in the central directory on this disk 8 bytes\r\n // 32 - total number of entries in the central directory 8 bytes\r\n entryCount = readUInt64LE(zip64EocdrBuffer, 32);\r\n // 40 - size of the central directory 8 bytes\r\n // 48 - offset of start of central directory with respect to the starting disk number 8 bytes\r\n centralDirectoryOffset = readUInt64LE(zip64EocdrBuffer, 48);\r\n // 56 - zip64 extensible data sector (variable size)\r\n return callback(null, new ZipFile(reader, centralDirectoryOffset, totalSize, entryCount, comment, options.autoClose, options.lazyEntries, decodeStrings, options.validateEntrySizes, options.strictFileNames));\r\n });\r\n });\r\n return;\r\n }\r\n callback(new Error(\"end of central directory record signature not found\"));\r\n });\r\n}\r\n\r\nutil.inherits(ZipFile, EventEmitter);\r\nfunction ZipFile(reader, centralDirectoryOffset, fileSize, entryCount, comment, autoClose, lazyEntries, decodeStrings, validateEntrySizes, strictFileNames) {\r\n var self = this;\r\n EventEmitter.call(self);\r\n self.reader = reader;\r\n // forward close events\r\n self.reader.on(\"error\", function(err) {\r\n // error closing the fd\r\n emitError(self, err);\r\n });\r\n self.reader.once(\"close\", function() {\r\n self.emit(\"close\");\r\n });\r\n self.readEntryCursor = centralDirectoryOffset;\r\n self.fileSize = fileSize;\r\n self.entryCount = entryCount;\r\n self.comment = comment;\r\n self.entriesRead = 0;\r\n self.autoClose = !!autoClose;\r\n self.lazyEntries = !!lazyEntries;\r\n self.decodeStrings = !!decodeStrings;\r\n self.validateEntrySizes = !!validateEntrySizes;\r\n self.strictFileNames = !!strictFileNames;\r\n self.isOpen = true;\r\n self.emittedError = false;\r\n\r\n if (!self.lazyEntries) self._readEntry();\r\n}\r\nZipFile.prototype.close = function() {\r\n if (!this.isOpen) return;\r\n this.isOpen = false;\r\n this.reader.unref();\r\n};\r\n\r\nfunction emitErrorAndAutoClose(self, err) {\r\n if (self.autoClose) self.close();\r\n emitError(self, err);\r\n}\r\nfunction emitError(self, err) {\r\n if (self.emittedError) return;\r\n self.emittedError = true;\r\n self.emit(\"error\", err);\r\n}\r\n\r\nZipFile.prototype.readEntry = function() {\r\n if (!this.lazyEntries) throw new Error(\"readEntry() called without lazyEntries:true\");\r\n this._readEntry();\r\n};\r\nZipFile.prototype._readEntry = function() {\r\n var self = this;\r\n if (self.entryCount === self.entriesRead) {\r\n // done with metadata\r\n setImmediate(function() {\r\n if (self.autoClose) self.close();\r\n if (self.emittedError) return;\r\n self.emit(\"end\");\r\n });\r\n return;\r\n }\r\n if (self.emittedError) return;\r\n var buffer = newBuffer(46);\r\n readAndAssertNoEof(self.reader, buffer, 0, buffer.length, self.readEntryCursor, function(err) {\r\n if (err) return emitErrorAndAutoClose(self, err);\r\n if (self.emittedError) return;\r\n var entry = new Entry();\r\n // 0 - Central directory file header signature\r\n var signature = buffer.readUInt32LE(0);\r\n if (signature !== 0x02014b50) return emitErrorAndAutoClose(self, new Error(\"invalid central directory file header signature: 0x\" + signature.toString(16)));\r\n // 4 - Version made by\r\n entry.versionMadeBy = buffer.readUInt16LE(4);\r\n // 6 - Version needed to extract (minimum)\r\n entry.versionNeededToExtract = buffer.readUInt16LE(6);\r\n // 8 - General purpose bit flag\r\n entry.generalPurposeBitFlag = buffer.readUInt16LE(8);\r\n // 10 - Compression method\r\n entry.compressionMethod = buffer.readUInt16LE(10);\r\n // 12 - File last modification time\r\n entry.lastModFileTime = buffer.readUInt16LE(12);\r\n // 14 - File last modification date\r\n entry.lastModFileDate = buffer.readUInt16LE(14);\r\n // 16 - CRC-32\r\n entry.crc32 = buffer.readUInt32LE(16);\r\n // 20 - Compressed size\r\n entry.compressedSize = buffer.readUInt32LE(20);\r\n // 24 - Uncompressed size\r\n entry.uncompressedSize = buffer.readUInt32LE(24);\r\n // 28 - File name length (n)\r\n entry.fileNameLength = buffer.readUInt16LE(28);\r\n // 30 - Extra field length (m)\r\n entry.extraFieldLength = buffer.readUInt16LE(30);\r\n // 32 - File comment length (k)\r\n entry.fileCommentLength = buffer.readUInt16LE(32);\r\n // 34 - Disk number where file starts\r\n // 36 - Internal file attributes\r\n entry.internalFileAttributes = buffer.readUInt16LE(36);\r\n // 38 - External file attributes\r\n entry.externalFileAttributes = buffer.readUInt32LE(38);\r\n // 42 - Relative offset of local file header\r\n entry.relativeOffsetOfLocalHeader = buffer.readUInt32LE(42);\r\n\r\n if (entry.generalPurposeBitFlag & 0x40) return emitErrorAndAutoClose(self, new Error(\"strong encryption is not supported\"));\r\n\r\n self.readEntryCursor += 46;\r\n\r\n buffer = newBuffer(entry.fileNameLength + entry.extraFieldLength + entry.fileCommentLength);\r\n readAndAssertNoEof(self.reader, buffer, 0, buffer.length, self.readEntryCursor, function(err) {\r\n if (err) return emitErrorAndAutoClose(self, err);\r\n if (self.emittedError) return;\r\n // 46 - File name\r\n var isUtf8 = (entry.generalPurposeBitFlag & 0x800) !== 0;\r\n entry.fileName = self.decodeStrings ? decodeBuffer(buffer, 0, entry.fileNameLength, isUtf8)\r\n : buffer.slice(0, entry.fileNameLength);\r\n\r\n // 46+n - Extra field\r\n var fileCommentStart = entry.fileNameLength + entry.extraFieldLength;\r\n var extraFieldBuffer = buffer.slice(entry.fileNameLength, fileCommentStart);\r\n entry.extraFields = [];\r\n var i = 0;\r\n while (i < extraFieldBuffer.length - 3) {\r\n var headerId = extraFieldBuffer.readUInt16LE(i + 0);\r\n var dataSize = extraFieldBuffer.readUInt16LE(i + 2);\r\n var dataStart = i + 4;\r\n var dataEnd = dataStart + dataSize;\r\n if (dataEnd > extraFieldBuffer.length) return emitErrorAndAutoClose(self, new Error(\"extra field length exceeds extra field buffer size\"));\r\n var dataBuffer = newBuffer(dataSize);\r\n extraFieldBuffer.copy(dataBuffer, 0, dataStart, dataEnd);\r\n entry.extraFields.push({\r\n id: headerId,\r\n data: dataBuffer,\r\n });\r\n i = dataEnd;\r\n }\r\n\r\n // 46+n+m - File comment\r\n entry.fileComment = self.decodeStrings ? decodeBuffer(buffer, fileCommentStart, fileCommentStart + entry.fileCommentLength, isUtf8)\r\n : buffer.slice(fileCommentStart, fileCommentStart + entry.fileCommentLength);\r\n // compatibility hack for https://github.com/thejoshwolfe/yauzl/issues/47\r\n entry.comment = entry.fileComment;\r\n\r\n self.readEntryCursor += buffer.length;\r\n self.entriesRead += 1;\r\n\r\n if (entry.uncompressedSize === 0xffffffff ||\r\n entry.compressedSize === 0xffffffff ||\r\n entry.relativeOffsetOfLocalHeader === 0xffffffff) {\r\n // ZIP64 format\r\n // find the Zip64 Extended Information Extra Field\r\n var zip64EiefBuffer = null;\r\n for (var i = 0; i < entry.extraFields.length; i++) {\r\n var extraField = entry.extraFields[i];\r\n if (extraField.id === 0x0001) {\r\n zip64EiefBuffer = extraField.data;\r\n break;\r\n }\r\n }\r\n if (zip64EiefBuffer == null) {\r\n return emitErrorAndAutoClose(self, new Error(\"expected zip64 extended information extra field\"));\r\n }\r\n var index = 0;\r\n // 0 - Original Size 8 bytes\r\n if (entry.uncompressedSize === 0xffffffff) {\r\n if (index + 8 > zip64EiefBuffer.length) {\r\n return emitErrorAndAutoClose(self, new Error(\"zip64 extended information extra field does not include uncompressed size\"));\r\n }\r\n entry.uncompressedSize = readUInt64LE(zip64EiefBuffer, index);\r\n index += 8;\r\n }\r\n // 8 - Compressed Size 8 bytes\r\n if (entry.compressedSize === 0xffffffff) {\r\n if (index + 8 > zip64EiefBuffer.length) {\r\n return emitErrorAndAutoClose(self, new Error(\"zip64 extended information extra field does not include compressed size\"));\r\n }\r\n entry.compressedSize = readUInt64LE(zip64EiefBuffer, index);\r\n index += 8;\r\n }\r\n // 16 - Relative Header Offset 8 bytes\r\n if (entry.relativeOffsetOfLocalHeader === 0xffffffff) {\r\n if (index + 8 > zip64EiefBuffer.length) {\r\n return emitErrorAndAutoClose(self, new Error(\"zip64 extended information extra field does not include relative header offset\"));\r\n }\r\n entry.relativeOffsetOfLocalHeader = readUInt64LE(zip64EiefBuffer, index);\r\n index += 8;\r\n }\r\n // 24 - Disk Start Number 4 bytes\r\n }\r\n\r\n // check for Info-ZIP Unicode Path Extra Field (0x7075)\r\n // see https://github.com/thejoshwolfe/yauzl/issues/33\r\n if (self.decodeStrings) {\r\n for (var i = 0; i < entry.extraFields.length; i++) {\r\n var extraField = entry.extraFields[i];\r\n if (extraField.id === 0x7075) {\r\n if (extraField.data.length < 6) {\r\n // too short to be meaningful\r\n continue;\r\n }\r\n // Version 1 byte version of this extra field, currently 1\r\n if (extraField.data.readUInt8(0) !== 1) {\r\n // > Changes may not be backward compatible so this extra\r\n // > field should not be used if the version is not recognized.\r\n continue;\r\n }\r\n // NameCRC32 4 bytes File Name Field CRC32 Checksum\r\n var oldNameCrc32 = extraField.data.readUInt32LE(1);\r\n if (crc32.unsigned(buffer.slice(0, entry.fileNameLength)) !== oldNameCrc32) {\r\n // > If the CRC check fails, this UTF-8 Path Extra Field should be\r\n // > ignored and the File Name field in the header should be used instead.\r\n continue;\r\n }\r\n // UnicodeName Variable UTF-8 version of the entry File Name\r\n entry.fileName = decodeBuffer(extraField.data, 5, extraField.data.length, true);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // validate file size\r\n if (self.validateEntrySizes && entry.compressionMethod === 0) {\r\n var expectedCompressedSize = entry.uncompressedSize;\r\n if (entry.isEncrypted()) {\r\n // traditional encryption prefixes the file data with a header\r\n expectedCompressedSize += 12;\r\n }\r\n if (entry.compressedSize !== expectedCompressedSize) {\r\n var msg = \"compressed/uncompressed size mismatch for stored file: \" + entry.compressedSize + \" != \" + entry.uncompressedSize;\r\n return emitErrorAndAutoClose(self, new Error(msg));\r\n }\r\n }\r\n\r\n if (self.decodeStrings) {\r\n if (!self.strictFileNames) {\r\n // allow backslash\r\n entry.fileName = entry.fileName.replace(/\\\\/g, \"/\");\r\n }\r\n var errorMessage = validateFileName(entry.fileName, self.validateFileNameOptions);\r\n if (errorMessage != null) return emitErrorAndAutoClose(self, new Error(errorMessage));\r\n }\r\n self.emit(\"entry\", entry);\r\n\r\n if (!self.lazyEntries) self._readEntry();\r\n });\r\n });\r\n};\r\n\r\nZipFile.prototype.openReadStream = function(entry, options, callback) {\r\n var self = this;\r\n // parameter validation\r\n var relativeStart = 0;\r\n var relativeEnd = entry.compressedSize;\r\n if (callback == null) {\r\n callback = options;\r\n options = {};\r\n } else {\r\n // validate options that the caller has no excuse to get wrong\r\n if (options.decrypt != null) {\r\n if (!entry.isEncrypted()) {\r\n throw new Error(\"options.decrypt can only be specified for encrypted entries\");\r\n }\r\n if (options.decrypt !== false) throw new Error(\"invalid options.decrypt value: \" + options.decrypt);\r\n if (entry.isCompressed()) {\r\n if (options.decompress !== false) throw new Error(\"entry is encrypted and compressed, and options.decompress !== false\");\r\n }\r\n }\r\n if (options.decompress != null) {\r\n if (!entry.isCompressed()) {\r\n throw new Error(\"options.decompress can only be specified for compressed entries\");\r\n }\r\n if (!(options.decompress === false || options.decompress === true)) {\r\n throw new Error(\"invalid options.decompress value: \" + options.decompress);\r\n }\r\n }\r\n if (options.start != null || options.end != null) {\r\n if (entry.isCompressed() && options.decompress !== false) {\r\n throw new Error(\"start/end range not allowed for compressed entry without options.decompress === false\");\r\n }\r\n if (entry.isEncrypted() && options.decrypt !== false) {\r\n throw new Error(\"start/end range not allowed for encrypted entry without options.decrypt === false\");\r\n }\r\n }\r\n if (options.start != null) {\r\n relativeStart = options.start;\r\n if (relativeStart < 0) throw new Error(\"options.start < 0\");\r\n if (relativeStart > entry.compressedSize) throw new Error(\"options.start > entry.compressedSize\");\r\n }\r\n if (options.end != null) {\r\n relativeEnd = options.end;\r\n if (relativeEnd < 0) throw new Error(\"options.end < 0\");\r\n if (relativeEnd > entry.compressedSize) throw new Error(\"options.end > entry.compressedSize\");\r\n if (relativeEnd < relativeStart) throw new Error(\"options.end < options.start\");\r\n }\r\n }\r\n // any further errors can either be caused by the zipfile,\r\n // or were introduced in a minor version of yauzl,\r\n // so should be passed to the client rather than thrown.\r\n if (!self.isOpen) return callback(new Error(\"closed\"));\r\n if (entry.isEncrypted()) {\r\n if (options.decrypt !== false) return callback(new Error(\"entry is encrypted, and options.decrypt !== false\"));\r\n }\r\n // make sure we don't lose the fd before we open the actual read stream\r\n self.reader.ref();\r\n var buffer = newBuffer(30);\r\n readAndAssertNoEof(self.reader, buffer, 0, buffer.length, entry.relativeOffsetOfLocalHeader, function(err) {\r\n try {\r\n if (err) return callback(err);\r\n // 0 - Local file header signature = 0x04034b50\r\n var signature = buffer.readUInt32LE(0);\r\n if (signature !== 0x04034b50) {\r\n return callback(new Error(\"invalid local file header signature: 0x\" + signature.toString(16)));\r\n }\r\n // all this should be redundant\r\n // 4 - Version needed to extract (minimum)\r\n // 6 - General purpose bit flag\r\n // 8 - Compression method\r\n // 10 - File last modification time\r\n // 12 - File last modification date\r\n // 14 - CRC-32\r\n // 18 - Compressed size\r\n // 22 - Uncompressed size\r\n // 26 - File name length (n)\r\n var fileNameLength = buffer.readUInt16LE(26);\r\n // 28 - Extra field length (m)\r\n var extraFieldLength = buffer.readUInt16LE(28);\r\n // 30 - File name\r\n // 30+n - Extra field\r\n var localFileHeaderEnd = entry.relativeOffsetOfLocalHeader + buffer.length + fileNameLength + extraFieldLength;\r\n var decompress;\r\n if (entry.compressionMethod === 0) {\r\n // 0 - The file is stored (no compression)\r\n decompress = false;\r\n } else if (entry.compressionMethod === 8) {\r\n // 8 - The file is Deflated\r\n decompress = options.decompress != null ? options.decompress : true;\r\n } else {\r\n return callback(new Error(\"unsupported compression method: \" + entry.compressionMethod));\r\n }\r\n var fileDataStart = localFileHeaderEnd;\r\n var fileDataEnd = fileDataStart + entry.compressedSize;\r\n if (entry.compressedSize !== 0) {\r\n // bounds check now, because the read streams will probably not complain loud enough.\r\n // since we're dealing with an unsigned offset plus an unsigned size,\r\n // we only have 1 thing to check for.\r\n if (fileDataEnd > self.fileSize) {\r\n return callback(new Error(\"file data overflows file bounds: \" +\r\n fileDataStart + \" + \" + entry.compressedSize + \" > \" + self.fileSize));\r\n }\r\n }\r\n var readStream = self.reader.createReadStream({\r\n start: fileDataStart + relativeStart,\r\n end: fileDataStart + relativeEnd,\r\n });\r\n var endpointStream = readStream;\r\n if (decompress) {\r\n var destroyed = false;\r\n var inflateFilter = zlib.createInflateRaw();\r\n readStream.on(\"error\", function(err) {\r\n // setImmediate here because errors can be emitted during the first call to pipe()\r\n setImmediate(function() {\r\n if (!destroyed) inflateFilter.emit(\"error\", err);\r\n });\r\n });\r\n readStream.pipe(inflateFilter);\r\n\r\n if (self.validateEntrySizes) {\r\n endpointStream = new AssertByteCountStream(entry.uncompressedSize);\r\n inflateFilter.on(\"error\", function(err) {\r\n // forward zlib errors to the client-visible stream\r\n setImmediate(function() {\r\n if (!destroyed) endpointStream.emit(\"error\", err);\r\n });\r\n });\r\n inflateFilter.pipe(endpointStream);\r\n } else {\r\n // the zlib filter is the client-visible stream\r\n endpointStream = inflateFilter;\r\n }\r\n // this is part of yauzl's API, so implement this function on the client-visible stream\r\n endpointStream.destroy = function() {\r\n destroyed = true;\r\n if (inflateFilter !== endpointStream) inflateFilter.unpipe(endpointStream);\r\n readStream.unpipe(inflateFilter);\r\n // TODO: the inflateFilter may cause a memory leak. see Issue #27.\r\n readStream.destroy();\r\n };\r\n }\r\n callback(null, endpointStream);\r\n } finally {\r\n self.reader.unref();\r\n }\r\n });\r\n};\r\n\r\nfunction Entry() {\r\n}\r\nEntry.prototype.getLastModDate = function() {\r\n return dosDateTimeToDate(this.lastModFileDate, this.lastModFileTime);\r\n};\r\nEntry.prototype.isEncrypted = function() {\r\n return (this.generalPurposeBitFlag & 0x1) !== 0;\r\n};\r\nEntry.prototype.isCompressed = function() {\r\n return this.compressionMethod === 8;\r\n};\r\n\r\nfunction dosDateTimeToDate(date, time) {\r\n var day = date & 0x1f; // 1-31\r\n var month = (date >> 5 & 0xf) - 1; // 1-12, 0-11\r\n var year = (date >> 9 & 0x7f) + 1980; // 0-128, 1980-2108\r\n\r\n var millisecond = 0;\r\n var second = (time & 0x1f) * 2; // 0-29, 0-58 (even numbers)\r\n var minute = time >> 5 & 0x3f; // 0-59\r\n var hour = time >> 11 & 0x1f; // 0-23\r\n\r\n return new Date(year, month, day, hour, minute, second, millisecond);\r\n}\r\n\r\nfunction validateFileName(fileName) {\r\n if (fileName.indexOf(\"\\\\\") !== -1) {\r\n return \"invalid characters in fileName: \" + fileName;\r\n }\r\n if (/^[a-zA-Z]:/.test(fileName) || /^\\//.test(fileName)) {\r\n return \"absolute path: \" + fileName;\r\n }\r\n if (fileName.split(\"/\").indexOf(\"..\") !== -1) {\r\n return \"invalid relative path: \" + fileName;\r\n }\r\n // all good\r\n return null;\r\n}\r\n\r\nfunction readAndAssertNoEof(reader, buffer, offset, length, position, callback) {\r\n if (length === 0) {\r\n // fs.read will throw an out-of-bounds error if you try to read 0 bytes from a 0 byte file\r\n return setImmediate(function() { callback(null, newBuffer(0)); });\r\n }\r\n reader.read(buffer, offset, length, position, function(err, bytesRead) {\r\n if (err) return callback(err);\r\n if (bytesRead < length) {\r\n return callback(new Error(\"unexpected EOF\"));\r\n }\r\n callback();\r\n });\r\n}\r\n\r\nutil.inherits(AssertByteCountStream, Transform);\r\nfunction AssertByteCountStream(byteCount) {\r\n Transform.call(this);\r\n this.actualByteCount = 0;\r\n this.expectedByteCount = byteCount;\r\n}\r\nAssertByteCountStream.prototype._transform = function(chunk, encoding, cb) {\r\n this.actualByteCount += chunk.length;\r\n if (this.actualByteCount > this.expectedByteCount) {\r\n var msg = \"too many bytes in the stream. expected \" + this.expectedByteCount + \". got at least \" + this.actualByteCount;\r\n return cb(new Error(msg));\r\n }\r\n cb(null, chunk);\r\n};\r\nAssertByteCountStream.prototype._flush = function(cb) {\r\n if (this.actualByteCount < this.expectedByteCount) {\r\n var msg = \"not enough bytes in the stream. expected \" + this.expectedByteCount + \". got only \" + this.actualByteCount;\r\n return cb(new Error(msg));\r\n }\r\n cb();\r\n};\r\n\r\nutil.inherits(RandomAccessReader, EventEmitter);\r\nfunction RandomAccessReader() {\r\n EventEmitter.call(this);\r\n this.refCount = 0;\r\n}\r\nRandomAccessReader.prototype.ref = function() {\r\n this.refCount += 1;\r\n};\r\nRandomAccessReader.prototype.unref = function() {\r\n var self = this;\r\n self.refCount -= 1;\r\n\r\n if (self.refCount > 0) return;\r\n if (self.refCount < 0) throw new Error(\"invalid unref\");\r\n\r\n self.close(onCloseDone);\r\n\r\n function onCloseDone(err) {\r\n if (err) return self.emit('error', err);\r\n self.emit('close');\r\n }\r\n};\r\nRandomAccessReader.prototype.createReadStream = function(options) {\r\n var start = options.start;\r\n var end = options.end;\r\n if (start === end) {\r\n var emptyStream = new PassThrough();\r\n setImmediate(function() {\r\n emptyStream.end();\r\n });\r\n return emptyStream;\r\n }\r\n var stream = this._readStreamForRange(start, end);\r\n\r\n var destroyed = false;\r\n var refUnrefFilter = new RefUnrefFilter(this);\r\n stream.on(\"error\", function(err) {\r\n setImmediate(function() {\r\n if (!destroyed) refUnrefFilter.emit(\"error\", err);\r\n });\r\n });\r\n refUnrefFilter.destroy = function() {\r\n stream.unpipe(refUnrefFilter);\r\n refUnrefFilter.unref();\r\n stream.destroy();\r\n };\r\n\r\n var byteCounter = new AssertByteCountStream(end - start);\r\n refUnrefFilter.on(\"error\", function(err) {\r\n setImmediate(function() {\r\n if (!destroyed) byteCounter.emit(\"error\", err);\r\n });\r\n });\r\n byteCounter.destroy = function() {\r\n destroyed = true;\r\n refUnrefFilter.unpipe(byteCounter);\r\n refUnrefFilter.destroy();\r\n };\r\n\r\n return stream.pipe(refUnrefFilter).pipe(byteCounter);\r\n};\r\nRandomAccessReader.prototype._readStreamForRange = function(start, end) {\r\n throw new Error(\"not implemented\");\r\n};\r\nRandomAccessReader.prototype.read = function(buffer, offset, length, position, callback) {\r\n var readStream = this.createReadStream({start: position, end: position + length});\r\n var writeStream = new Writable();\r\n var written = 0;\r\n writeStream._write = function(chunk, encoding, cb) {\r\n chunk.copy(buffer, offset + written, 0, chunk.length);\r\n written += chunk.length;\r\n cb();\r\n };\r\n writeStream.on(\"finish\", callback);\r\n readStream.on(\"error\", function(error) {\r\n callback(error);\r\n });\r\n readStream.pipe(writeStream);\r\n};\r\nRandomAccessReader.prototype.close = function(callback) {\r\n setImmediate(callback);\r\n};\r\n\r\nutil.inherits(RefUnrefFilter, PassThrough);\r\nfunction RefUnrefFilter(context) {\r\n PassThrough.call(this);\r\n this.context = context;\r\n this.context.ref();\r\n this.unreffedYet = false;\r\n}\r\nRefUnrefFilter.prototype._flush = function(cb) {\r\n this.unref();\r\n cb();\r\n};\r\nRefUnrefFilter.prototype.unref = function(cb) {\r\n if (this.unreffedYet) return;\r\n this.unreffedYet = true;\r\n this.context.unref();\r\n};\r\n\r\nvar cp437 = '\\u0000☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&\\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ';\r\nfunction decodeBuffer(buffer, start, end, isUtf8) {\r\n if (isUtf8) {\r\n return buffer.toString(\"utf8\", start, end);\r\n } else {\r\n var result = \"\";\r\n for (var i = start; i < end; i++) {\r\n result += cp437[buffer[i]];\r\n }\r\n return result;\r\n }\r\n}\r\n\r\nfunction readUInt64LE(buffer, offset) {\r\n // there is no native function for this, because we can't actually store 64-bit integers precisely.\r\n // after 53 bits, JavaScript's Number type (IEEE 754 double) can't store individual integers anymore.\r\n // but since 53 bits is a whole lot more than 32 bits, we do our best anyway.\r\n var lower32 = buffer.readUInt32LE(offset);\r\n var upper32 = buffer.readUInt32LE(offset + 4);\r\n // we can't use bitshifting here, because JavaScript bitshifting only works on 32-bit integers.\r\n return upper32 * 0x100000000 + lower32;\r\n // as long as we're bounds checking the result of this function against the total file size,\r\n // we'll catch any overflow errors, because we already made sure the total file size was within reason.\r\n}\r\n\r\n// Node 10 deprecated new Buffer().\r\nvar newBuffer;\r\nif (typeof Buffer.allocUnsafe === \"function\") {\r\n newBuffer = function(len) {\r\n return Buffer.allocUnsafe(len);\r\n };\r\n} else {\r\n newBuffer = function(len) {\r\n return new Buffer(len);\r\n };\r\n}\r\n\r\nfunction defaultCallback(err) {\r\n if (err) throw err;\r\n}\r\n","module.exports = require(\"vscode\");","module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"child_process\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs/promises\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:path\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:process\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:events\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:stream\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:stream/promises\");","import {on, once} from 'node:events';\r\nimport {PassThrough as PassThroughStream} from 'node:stream';\r\nimport {finished} from 'node:stream/promises';\r\n\r\nexport default function mergeStreams(streams) {\r\n\tif (!Array.isArray(streams)) {\r\n\t\tthrow new TypeError(`Expected an array, got \\`${typeof streams}\\`.`);\r\n\t}\r\n\r\n\tfor (const stream of streams) {\r\n\t\tvalidateStream(stream);\r\n\t}\r\n\r\n\tconst objectMode = streams.some(({readableObjectMode}) => readableObjectMode);\r\n\tconst highWaterMark = getHighWaterMark(streams, objectMode);\r\n\tconst passThroughStream = new MergedStream({\r\n\t\tobjectMode,\r\n\t\twritableHighWaterMark: highWaterMark,\r\n\t\treadableHighWaterMark: highWaterMark,\r\n\t});\r\n\r\n\tfor (const stream of streams) {\r\n\t\tpassThroughStream.add(stream);\r\n\t}\r\n\r\n\tif (streams.length === 0) {\r\n\t\tendStream(passThroughStream);\r\n\t}\r\n\r\n\treturn passThroughStream;\r\n}\r\n\r\nconst getHighWaterMark = (streams, objectMode) => {\r\n\tif (streams.length === 0) {\r\n\t\t// @todo Use `node:stream` `getDefaultHighWaterMark(objectMode)` in next major release\r\n\t\treturn 16_384;\r\n\t}\r\n\r\n\tconst highWaterMarks = streams\r\n\t\t.filter(({readableObjectMode}) => readableObjectMode === objectMode)\r\n\t\t.map(({readableHighWaterMark}) => readableHighWaterMark);\r\n\treturn Math.max(...highWaterMarks);\r\n};\r\n\r\nclass MergedStream extends PassThroughStream {\r\n\t#streams = new Set([]);\r\n\t#ended = new Set([]);\r\n\t#aborted = new Set([]);\r\n\t#onFinished;\r\n\r\n\tadd(stream) {\r\n\t\tvalidateStream(stream);\r\n\r\n\t\tif (this.#streams.has(stream)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.#streams.add(stream);\r\n\r\n\t\tthis.#onFinished ??= onMergedStreamFinished(this, this.#streams);\r\n\t\tendWhenStreamsDone({\r\n\t\t\tpassThroughStream: this,\r\n\t\t\tstream,\r\n\t\t\tstreams: this.#streams,\r\n\t\t\tended: this.#ended,\r\n\t\t\taborted: this.#aborted,\r\n\t\t\tonFinished: this.#onFinished,\r\n\t\t});\r\n\r\n\t\tstream.pipe(this, {end: false});\r\n\t}\r\n\r\n\tremove(stream) {\r\n\t\tvalidateStream(stream);\r\n\r\n\t\tif (!this.#streams.has(stream)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tstream.unpipe(this);\r\n\t\treturn true;\r\n\t}\r\n}\r\n\r\nconst onMergedStreamFinished = async (passThroughStream, streams) => {\r\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_COUNT);\r\n\tconst controller = new AbortController();\r\n\r\n\ttry {\r\n\t\tawait Promise.race([\r\n\t\t\tonMergedStreamEnd(passThroughStream, controller),\r\n\t\t\tonInputStreamsUnpipe(passThroughStream, streams, controller),\r\n\t\t]);\r\n\t} finally {\r\n\t\tcontroller.abort();\r\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_COUNT);\r\n\t}\r\n};\r\n\r\nconst onMergedStreamEnd = async (passThroughStream, {signal}) => {\r\n\tawait finished(passThroughStream, {signal, cleanup: true});\r\n};\r\n\r\nconst onInputStreamsUnpipe = async (passThroughStream, streams, {signal}) => {\r\n\tfor await (const [unpipedStream] of on(passThroughStream, 'unpipe', {signal})) {\r\n\t\tif (streams.has(unpipedStream)) {\r\n\t\t\tunpipedStream.emit(unpipeEvent);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst validateStream = stream => {\r\n\tif (typeof stream?.pipe !== 'function') {\r\n\t\tthrow new TypeError(`Expected a readable stream, got: \\`${typeof stream}\\`.`);\r\n\t}\r\n};\r\n\r\nconst endWhenStreamsDone = async ({passThroughStream, stream, streams, ended, aborted, onFinished}) => {\r\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_PER_STREAM);\r\n\tconst controller = new AbortController();\r\n\r\n\ttry {\r\n\t\tawait Promise.race([\r\n\t\t\tafterMergedStreamFinished(onFinished, stream),\r\n\t\t\tonInputStreamEnd({passThroughStream, stream, streams, ended, aborted, controller}),\r\n\t\t\tonInputStreamUnpipe({stream, streams, ended, aborted, controller}),\r\n\t\t]);\r\n\t} finally {\r\n\t\tcontroller.abort();\r\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_PER_STREAM);\r\n\t}\r\n\r\n\tif (streams.size === ended.size + aborted.size) {\r\n\t\tif (ended.size === 0 && aborted.size > 0) {\r\n\t\t\tabortStream(passThroughStream);\r\n\t\t} else {\r\n\t\t\tendStream(passThroughStream);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// This is the error thrown by `finished()` on `stream.destroy()`\r\nconst isAbortError = error => error?.code === 'ERR_STREAM_PREMATURE_CLOSE';\r\n\r\nconst afterMergedStreamFinished = async (onFinished, stream) => {\r\n\ttry {\r\n\t\tawait onFinished;\r\n\t\tabortStream(stream);\r\n\t} catch (error) {\r\n\t\tif (isAbortError(error)) {\r\n\t\t\tabortStream(stream);\r\n\t\t} else {\r\n\t\t\terrorStream(stream, error);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst onInputStreamEnd = async ({passThroughStream, stream, streams, ended, aborted, controller: {signal}}) => {\r\n\ttry {\r\n\t\tawait finished(stream, {signal, cleanup: true, readable: true, writable: false});\r\n\t\tif (streams.has(stream)) {\r\n\t\t\tended.add(stream);\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tif (signal.aborted || !streams.has(stream)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (isAbortError(error)) {\r\n\t\t\taborted.add(stream);\r\n\t\t} else {\r\n\t\t\terrorStream(passThroughStream, error);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst onInputStreamUnpipe = async ({stream, streams, ended, aborted, controller: {signal}}) => {\r\n\tawait once(stream, unpipeEvent, {signal});\r\n\tstreams.delete(stream);\r\n\tended.delete(stream);\r\n\taborted.delete(stream);\r\n};\r\n\r\nconst unpipeEvent = Symbol('unpipe');\r\n\r\nconst endStream = stream => {\r\n\tif (stream.writable) {\r\n\t\tstream.end();\r\n\t}\r\n};\r\n\r\nconst abortStream = stream => {\r\n\tif (stream.readable || stream.writable) {\r\n\t\tstream.destroy();\r\n\t}\r\n};\r\n\r\n// `stream.destroy(error)` crashes the process with `uncaughtException` if no `error` event listener exists on `stream`.\r\n// We take care of error handling on user behalf, so we do not want this to happen.\r\nconst errorStream = (stream, error) => {\r\n\tif (!stream.destroyed) {\r\n\t\tstream.once('error', noop);\r\n\t\tstream.destroy(error);\r\n\t}\r\n};\r\n\r\nconst noop = () => {};\r\n\r\nconst updateMaxListeners = (passThroughStream, increment) => {\r\n\tconst maxListeners = passThroughStream.getMaxListeners();\r\n\tif (maxListeners !== 0 && maxListeners !== Number.POSITIVE_INFINITY) {\r\n\t\tpassThroughStream.setMaxListeners(maxListeners + increment);\r\n\t}\r\n};\r\n\r\n// Number of times `passThroughStream.on()` is called regardless of streams:\r\n// - once due to `finished(passThroughStream)`\r\n// - once due to `on(passThroughStream)`\r\nconst PASSTHROUGH_LISTENERS_COUNT = 2;\r\n\r\n// Number of times `passThroughStream.on()` is called per stream:\r\n// - once due to `stream.pipe(passThroughStream)`\r\nconst PASSTHROUGH_LISTENERS_PER_STREAM = 1;\r\n","import fs from 'node:fs';\r\nimport fsPromises from 'node:fs/promises';\r\n\r\nasync function isType(fsStatType, statsMethodName, filePath) {\r\n\tif (typeof filePath !== 'string') {\r\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst stats = await fsPromises[fsStatType](filePath);\r\n\t\treturn stats[statsMethodName]();\r\n\t} catch (error) {\r\n\t\tif (error.code === 'ENOENT') {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\nfunction isTypeSync(fsStatType, statsMethodName, filePath) {\r\n\tif (typeof filePath !== 'string') {\r\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\r\n\t}\r\n\r\n\ttry {\r\n\t\treturn fs[fsStatType](filePath)[statsMethodName]();\r\n\t} catch (error) {\r\n\t\tif (error.code === 'ENOENT') {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\nexport const isFile = isType.bind(undefined, 'stat', 'isFile');\r\nexport const isDirectory = isType.bind(undefined, 'stat', 'isDirectory');\r\nexport const isSymlink = isType.bind(undefined, 'lstat', 'isSymbolicLink');\r\nexport const isFileSync = isTypeSync.bind(undefined, 'statSync', 'isFile');\r\nexport const isDirectorySync = isTypeSync.bind(undefined, 'statSync', 'isDirectory');\r\nexport const isSymlinkSync = isTypeSync.bind(undefined, 'lstatSync', 'isSymbolicLink');\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:util\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:child_process\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:url\");","import {promisify} from 'node:util';\r\nimport {execFile as execFileCallback, execFileSync as execFileSyncOriginal} from 'node:child_process';\r\nimport path from 'node:path';\r\nimport {fileURLToPath} from 'node:url';\r\n\r\nconst execFileOriginal = promisify(execFileCallback);\r\n\r\nexport function toPath(urlOrPath) {\r\n\treturn urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\r\n}\r\n\r\nexport function rootDirectory(pathInput) {\r\n\treturn path.parse(toPath(pathInput)).root;\r\n}\r\n\r\nexport function traversePathUp(startPath) {\r\n\treturn {\r\n\t\t* [Symbol.iterator]() {\r\n\t\t\tlet currentPath = path.resolve(toPath(startPath));\r\n\t\t\tlet previousPath;\r\n\r\n\t\t\twhile (previousPath !== currentPath) {\r\n\t\t\t\tyield currentPath;\r\n\t\t\t\tpreviousPath = currentPath;\r\n\t\t\t\tcurrentPath = path.resolve(currentPath, '..');\r\n\t\t\t}\r\n\t\t},\r\n\t};\r\n}\r\n\r\nconst TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;\r\n\r\nexport async function execFile(file, arguments_, options = {}) {\r\n\treturn execFileOriginal(file, arguments_, {\r\n\t\tmaxBuffer: TEN_MEGABYTES_IN_BYTES,\r\n\t\t...options,\r\n\t});\r\n}\r\n\r\nexport function execFileSync(file, arguments_ = [], options = {}) {\r\n\treturn execFileSyncOriginal(file, arguments_, {\r\n\t\tmaxBuffer: TEN_MEGABYTES_IN_BYTES,\r\n\t\tencoding: 'utf8',\r\n\t\tstdio: 'pipe',\r\n\t\t...options,\r\n\t});\r\n}\r\n\r\nexport * from './default.js';\r\n","export default function slash(path) {\r\n\tconst isExtendedLengthPath = path.startsWith('\\\\\\\\?\\\\');\r\n\r\n\tif (isExtendedLengthPath) {\r\n\t\treturn path;\r\n\t}\r\n\r\n\treturn path.replace(/\\\\/g, '/');\r\n}\r\n","export const isNegativePattern = pattern => pattern[0] === '!';\r\n","import process from 'node:process';\r\nimport fs from 'node:fs';\r\nimport fsPromises from 'node:fs/promises';\r\nimport path from 'node:path';\r\nimport fastGlob from 'fast-glob';\r\nimport gitIgnore from 'ignore';\r\nimport slash from 'slash';\r\nimport {toPath} from 'unicorn-magic';\r\nimport {isNegativePattern} from './utilities.js';\r\n\r\nconst defaultIgnoredDirectories = [\r\n\t'**/node_modules',\r\n\t'**/flow-typed',\r\n\t'**/coverage',\r\n\t'**/.git',\r\n];\r\nconst ignoreFilesGlobOptions = {\r\n\tabsolute: true,\r\n\tdot: true,\r\n};\r\n\r\nexport const GITIGNORE_FILES_PATTERN = '**/.gitignore';\r\n\r\nconst applyBaseToPattern = (pattern, base) => isNegativePattern(pattern)\r\n\t? '!' + path.posix.join(base, pattern.slice(1))\r\n\t: path.posix.join(base, pattern);\r\n\r\nconst parseIgnoreFile = (file, cwd) => {\r\n\tconst base = slash(path.relative(cwd, path.dirname(file.filePath)));\r\n\r\n\treturn file.content\r\n\t\t.split(/\\r?\\n/)\r\n\t\t.filter(line => line && !line.startsWith('#'))\r\n\t\t.map(pattern => applyBaseToPattern(pattern, base));\r\n};\r\n\r\nconst toRelativePath = (fileOrDirectory, cwd) => {\r\n\tcwd = slash(cwd);\r\n\tif (path.isAbsolute(fileOrDirectory)) {\r\n\t\tif (slash(fileOrDirectory).startsWith(cwd)) {\r\n\t\t\treturn path.relative(cwd, fileOrDirectory);\r\n\t\t}\r\n\r\n\t\tthrow new Error(`Path ${fileOrDirectory} is not in cwd ${cwd}`);\r\n\t}\r\n\r\n\treturn fileOrDirectory;\r\n};\r\n\r\nconst getIsIgnoredPredicate = (files, cwd) => {\r\n\tconst patterns = files.flatMap(file => parseIgnoreFile(file, cwd));\r\n\tconst ignores = gitIgnore().add(patterns);\r\n\r\n\treturn fileOrDirectory => {\r\n\t\tfileOrDirectory = toPath(fileOrDirectory);\r\n\t\tfileOrDirectory = toRelativePath(fileOrDirectory, cwd);\r\n\t\treturn fileOrDirectory ? ignores.ignores(slash(fileOrDirectory)) : false;\r\n\t};\r\n};\r\n\r\nconst normalizeOptions = (options = {}) => ({\r\n\tcwd: toPath(options.cwd) ?? process.cwd(),\r\n\tsuppressErrors: Boolean(options.suppressErrors),\r\n\tdeep: typeof options.deep === 'number' ? options.deep : Number.POSITIVE_INFINITY,\r\n\tignore: [...options.ignore ?? [], ...defaultIgnoredDirectories],\r\n});\r\n\r\nexport const isIgnoredByIgnoreFiles = async (patterns, options) => {\r\n\tconst {cwd, suppressErrors, deep, ignore} = normalizeOptions(options);\r\n\r\n\tconst paths = await fastGlob(patterns, {\r\n\t\tcwd,\r\n\t\tsuppressErrors,\r\n\t\tdeep,\r\n\t\tignore,\r\n\t\t...ignoreFilesGlobOptions,\r\n\t});\r\n\r\n\tconst files = await Promise.all(\r\n\t\tpaths.map(async filePath => ({\r\n\t\t\tfilePath,\r\n\t\t\tcontent: await fsPromises.readFile(filePath, 'utf8'),\r\n\t\t})),\r\n\t);\r\n\r\n\treturn getIsIgnoredPredicate(files, cwd);\r\n};\r\n\r\nexport const isIgnoredByIgnoreFilesSync = (patterns, options) => {\r\n\tconst {cwd, suppressErrors, deep, ignore} = normalizeOptions(options);\r\n\r\n\tconst paths = fastGlob.sync(patterns, {\r\n\t\tcwd,\r\n\t\tsuppressErrors,\r\n\t\tdeep,\r\n\t\tignore,\r\n\t\t...ignoreFilesGlobOptions,\r\n\t});\r\n\r\n\tconst files = paths.map(filePath => ({\r\n\t\tfilePath,\r\n\t\tcontent: fs.readFileSync(filePath, 'utf8'),\r\n\t}));\r\n\r\n\treturn getIsIgnoredPredicate(files, cwd);\r\n};\r\n\r\nexport const isGitIgnored = options => isIgnoredByIgnoreFiles(GITIGNORE_FILES_PATTERN, options);\r\nexport const isGitIgnoredSync = options => isIgnoredByIgnoreFilesSync(GITIGNORE_FILES_PATTERN, options);\r\n","import process from 'node:process';\r\nimport fs from 'node:fs';\r\nimport nodePath from 'node:path';\r\nimport mergeStreams from '@sindresorhus/merge-streams';\r\nimport fastGlob from 'fast-glob';\r\nimport {isDirectory, isDirectorySync} from 'path-type';\r\nimport {toPath} from 'unicorn-magic';\r\nimport {\r\n\tGITIGNORE_FILES_PATTERN,\r\n\tisIgnoredByIgnoreFiles,\r\n\tisIgnoredByIgnoreFilesSync,\r\n} from './ignore.js';\r\nimport {isNegativePattern} from './utilities.js';\r\n\r\nconst assertPatternsInput = patterns => {\r\n\tif (patterns.some(pattern => typeof pattern !== 'string')) {\r\n\t\tthrow new TypeError('Patterns must be a string or an array of strings');\r\n\t}\r\n};\r\n\r\nconst normalizePathForDirectoryGlob = (filePath, cwd) => {\r\n\tconst path = isNegativePattern(filePath) ? filePath.slice(1) : filePath;\r\n\treturn nodePath.isAbsolute(path) ? path : nodePath.join(cwd, path);\r\n};\r\n\r\nconst getDirectoryGlob = ({directoryPath, files, extensions}) => {\r\n\tconst extensionGlob = extensions?.length > 0 ? `.${extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]}` : '';\r\n\treturn files\r\n\t\t? files.map(file => nodePath.posix.join(directoryPath, `**/${nodePath.extname(file) ? file : `${file}${extensionGlob}`}`))\r\n\t\t: [nodePath.posix.join(directoryPath, `**${extensionGlob ? `/*${extensionGlob}` : ''}`)];\r\n};\r\n\r\nconst directoryToGlob = async (directoryPaths, {\r\n\tcwd = process.cwd(),\r\n\tfiles,\r\n\textensions,\r\n} = {}) => {\r\n\tconst globs = await Promise.all(directoryPaths.map(async directoryPath =>\r\n\t\t(await isDirectory(normalizePathForDirectoryGlob(directoryPath, cwd))) ? getDirectoryGlob({directoryPath, files, extensions}) : directoryPath),\r\n\t);\r\n\r\n\treturn globs.flat();\r\n};\r\n\r\nconst directoryToGlobSync = (directoryPaths, {\r\n\tcwd = process.cwd(),\r\n\tfiles,\r\n\textensions,\r\n} = {}) => directoryPaths.flatMap(directoryPath => isDirectorySync(normalizePathForDirectoryGlob(directoryPath, cwd)) ? getDirectoryGlob({directoryPath, files, extensions}) : directoryPath);\r\n\r\nconst toPatternsArray = patterns => {\r\n\tpatterns = [...new Set([patterns].flat())];\r\n\tassertPatternsInput(patterns);\r\n\treturn patterns;\r\n};\r\n\r\nconst checkCwdOption = cwd => {\r\n\tif (!cwd) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet stat;\r\n\ttry {\r\n\t\tstat = fs.statSync(cwd);\r\n\t} catch {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!stat.isDirectory()) {\r\n\t\tthrow new Error('The `cwd` option must be a path to a directory');\r\n\t}\r\n};\r\n\r\nconst normalizeOptions = (options = {}) => {\r\n\toptions = {\r\n\t\t...options,\r\n\t\tignore: options.ignore ?? [],\r\n\t\texpandDirectories: options.expandDirectories ?? true,\r\n\t\tcwd: toPath(options.cwd),\r\n\t};\r\n\r\n\tcheckCwdOption(options.cwd);\r\n\r\n\treturn options;\r\n};\r\n\r\nconst normalizeArguments = function_ => async (patterns, options) => function_(toPatternsArray(patterns), normalizeOptions(options));\r\nconst normalizeArgumentsSync = function_ => (patterns, options) => function_(toPatternsArray(patterns), normalizeOptions(options));\r\n\r\nconst getIgnoreFilesPatterns = options => {\r\n\tconst {ignoreFiles, gitignore} = options;\r\n\r\n\tconst patterns = ignoreFiles ? toPatternsArray(ignoreFiles) : [];\r\n\tif (gitignore) {\r\n\t\tpatterns.push(GITIGNORE_FILES_PATTERN);\r\n\t}\r\n\r\n\treturn patterns;\r\n};\r\n\r\nconst getFilter = async options => {\r\n\tconst ignoreFilesPatterns = getIgnoreFilesPatterns(options);\r\n\treturn createFilterFunction(\r\n\t\tignoreFilesPatterns.length > 0 && await isIgnoredByIgnoreFiles(ignoreFilesPatterns, options),\r\n\t);\r\n};\r\n\r\nconst getFilterSync = options => {\r\n\tconst ignoreFilesPatterns = getIgnoreFilesPatterns(options);\r\n\treturn createFilterFunction(\r\n\t\tignoreFilesPatterns.length > 0 && isIgnoredByIgnoreFilesSync(ignoreFilesPatterns, options),\r\n\t);\r\n};\r\n\r\nconst createFilterFunction = isIgnored => {\r\n\tconst seen = new Set();\r\n\r\n\treturn fastGlobResult => {\r\n\t\tconst pathKey = nodePath.normalize(fastGlobResult.path ?? fastGlobResult);\r\n\r\n\t\tif (seen.has(pathKey) || (isIgnored && isIgnored(pathKey))) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tseen.add(pathKey);\r\n\r\n\t\treturn true;\r\n\t};\r\n};\r\n\r\nconst unionFastGlobResults = (results, filter) => results.flat().filter(fastGlobResult => filter(fastGlobResult));\r\n\r\nconst convertNegativePatterns = (patterns, options) => {\r\n\tconst tasks = [];\r\n\r\n\twhile (patterns.length > 0) {\r\n\t\tconst index = patterns.findIndex(pattern => isNegativePattern(pattern));\r\n\r\n\t\tif (index === -1) {\r\n\t\t\ttasks.push({patterns, options});\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tconst ignorePattern = patterns[index].slice(1);\r\n\r\n\t\tfor (const task of tasks) {\r\n\t\t\ttask.options.ignore.push(ignorePattern);\r\n\t\t}\r\n\r\n\t\tif (index !== 0) {\r\n\t\t\ttasks.push({\r\n\t\t\t\tpatterns: patterns.slice(0, index),\r\n\t\t\t\toptions: {\r\n\t\t\t\t\t...options,\r\n\t\t\t\t\tignore: [\r\n\t\t\t\t\t\t...options.ignore,\r\n\t\t\t\t\t\tignorePattern,\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpatterns = patterns.slice(index + 1);\r\n\t}\r\n\r\n\treturn tasks;\r\n};\r\n\r\nconst normalizeExpandDirectoriesOption = (options, cwd) => ({\r\n\t...(cwd ? {cwd} : {}),\r\n\t...(Array.isArray(options) ? {files: options} : options),\r\n});\r\n\r\nconst generateTasks = async (patterns, options) => {\r\n\tconst globTasks = convertNegativePatterns(patterns, options);\r\n\r\n\tconst {cwd, expandDirectories} = options;\r\n\r\n\tif (!expandDirectories) {\r\n\t\treturn globTasks;\r\n\t}\r\n\r\n\tconst directoryToGlobOptions = normalizeExpandDirectoriesOption(expandDirectories, cwd);\r\n\r\n\treturn Promise.all(\r\n\t\tglobTasks.map(async task => {\r\n\t\t\tlet {patterns, options} = task;\r\n\r\n\t\t\t[\r\n\t\t\t\tpatterns,\r\n\t\t\t\toptions.ignore,\r\n\t\t\t] = await Promise.all([\r\n\t\t\t\tdirectoryToGlob(patterns, directoryToGlobOptions),\r\n\t\t\t\tdirectoryToGlob(options.ignore, {cwd}),\r\n\t\t\t]);\r\n\r\n\t\t\treturn {patterns, options};\r\n\t\t}),\r\n\t);\r\n};\r\n\r\nconst generateTasksSync = (patterns, options) => {\r\n\tconst globTasks = convertNegativePatterns(patterns, options);\r\n\tconst {cwd, expandDirectories} = options;\r\n\r\n\tif (!expandDirectories) {\r\n\t\treturn globTasks;\r\n\t}\r\n\r\n\tconst directoryToGlobSyncOptions = normalizeExpandDirectoriesOption(expandDirectories, cwd);\r\n\r\n\treturn globTasks.map(task => {\r\n\t\tlet {patterns, options} = task;\r\n\t\tpatterns = directoryToGlobSync(patterns, directoryToGlobSyncOptions);\r\n\t\toptions.ignore = directoryToGlobSync(options.ignore, {cwd});\r\n\t\treturn {patterns, options};\r\n\t});\r\n};\r\n\r\nexport const globby = normalizeArguments(async (patterns, options) => {\r\n\tconst [\r\n\t\ttasks,\r\n\t\tfilter,\r\n\t] = await Promise.all([\r\n\t\tgenerateTasks(patterns, options),\r\n\t\tgetFilter(options),\r\n\t]);\r\n\r\n\tconst results = await Promise.all(tasks.map(task => fastGlob(task.patterns, task.options)));\r\n\treturn unionFastGlobResults(results, filter);\r\n});\r\n\r\nexport const globbySync = normalizeArgumentsSync((patterns, options) => {\r\n\tconst tasks = generateTasksSync(patterns, options);\r\n\tconst filter = getFilterSync(options);\r\n\tconst results = tasks.map(task => fastGlob.sync(task.patterns, task.options));\r\n\treturn unionFastGlobResults(results, filter);\r\n});\r\n\r\nexport const globbyStream = normalizeArgumentsSync((patterns, options) => {\r\n\tconst tasks = generateTasksSync(patterns, options);\r\n\tconst filter = getFilterSync(options);\r\n\tconst streams = tasks.map(task => fastGlob.stream(task.patterns, task.options));\r\n\tconst stream = mergeStreams(streams).filter(fastGlobResult => filter(fastGlobResult));\r\n\r\n\t// TODO: Make it return a web stream at some point.\r\n\t// return Readable.toWeb(stream);\r\n\r\n\treturn stream;\r\n});\r\n\r\nexport const isDynamicPattern = normalizeArgumentsSync(\r\n\t(patterns, options) => patterns.some(pattern => fastGlob.isDynamicPattern(pattern, options)),\r\n);\r\n\r\nexport const generateGlobTasks = normalizeArguments(generateTasks);\r\nexport const generateGlobTasksSync = normalizeArgumentsSync(generateTasksSync);\r\n\r\nexport {\r\n\tisGitIgnored,\r\n\tisGitIgnoredSync,\r\n\tisIgnoredByIgnoreFiles,\r\n\tisIgnoredByIgnoreFilesSync,\r\n} from './ignore.js';\r\n\r\nexport const {convertPathToPattern} = fastGlob;\r\n","export default async function pMap(\r\n\titerable,\r\n\tmapper,\r\n\t{\r\n\t\tconcurrency = Number.POSITIVE_INFINITY,\r\n\t\tstopOnError = true,\r\n\t\tsignal,\r\n\t} = {},\r\n) {\r\n\treturn new Promise((resolve_, reject_) => {\r\n\t\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\r\n\t\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\r\n\t\t}\r\n\r\n\t\tif (typeof mapper !== 'function') {\r\n\t\t\tthrow new TypeError('Mapper function is required');\r\n\t\t}\r\n\r\n\t\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\r\n\t\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\r\n\t\t}\r\n\r\n\t\tconst result = [];\r\n\t\tconst errors = [];\r\n\t\tconst skippedIndexesMap = new Map();\r\n\t\tlet isRejected = false;\r\n\t\tlet isResolved = false;\r\n\t\tlet isIterableDone = false;\r\n\t\tlet resolvingCount = 0;\r\n\t\tlet currentIndex = 0;\r\n\t\tconst iterator = iterable[Symbol.iterator] === undefined ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\r\n\r\n\t\tconst signalListener = () => {\r\n\t\t\treject(signal.reason);\r\n\t\t};\r\n\r\n\t\tconst cleanup = () => {\r\n\t\t\tsignal?.removeEventListener('abort', signalListener);\r\n\t\t};\r\n\r\n\t\tconst resolve = value => {\r\n\t\t\tresolve_(value);\r\n\t\t\tcleanup();\r\n\t\t};\r\n\r\n\t\tconst reject = reason => {\r\n\t\t\tisRejected = true;\r\n\t\t\tisResolved = true;\r\n\t\t\treject_(reason);\r\n\t\t\tcleanup();\r\n\t\t};\r\n\r\n\t\tif (signal) {\r\n\t\t\tif (signal.aborted) {\r\n\t\t\t\treject(signal.reason);\r\n\t\t\t}\r\n\r\n\t\t\tsignal.addEventListener('abort', signalListener, {once: true});\r\n\t\t}\r\n\r\n\t\tconst next = async () => {\r\n\t\t\tif (isResolved) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst nextItem = await iterator.next();\r\n\r\n\t\t\tconst index = currentIndex;\r\n\t\t\tcurrentIndex++;\r\n\r\n\t\t\t// Note: `iterator.next()` can be called many times in parallel.\r\n\t\t\t// This can cause multiple calls to this `next()` function to\r\n\t\t\t// receive a `nextItem` with `done === true`.\r\n\t\t\t// The shutdown logic that rejects/resolves must be protected\r\n\t\t\t// so it runs only one time as the `skippedIndex` logic is\r\n\t\t\t// non-idempotent.\r\n\t\t\tif (nextItem.done) {\r\n\t\t\t\tisIterableDone = true;\r\n\r\n\t\t\t\tif (resolvingCount === 0 && !isResolved) {\r\n\t\t\t\t\tif (!stopOnError && errors.length > 0) {\r\n\t\t\t\t\t\treject(new AggregateError(errors)); // eslint-disable-line unicorn/error-message\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tisResolved = true;\r\n\r\n\t\t\t\t\tif (skippedIndexesMap.size === 0) {\r\n\t\t\t\t\t\tresolve(result);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst pureResult = [];\r\n\r\n\t\t\t\t\t// Support multiple `pMapSkip`'s.\r\n\t\t\t\t\tfor (const [index, value] of result.entries()) {\r\n\t\t\t\t\t\tif (skippedIndexesMap.get(index) === pMapSkip) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tpureResult.push(value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresolve(pureResult);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tresolvingCount++;\r\n\r\n\t\t\t// Intentionally detached\r\n\t\t\t(async () => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst element = await nextItem.value;\r\n\r\n\t\t\t\t\tif (isResolved) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst value = await mapper(element, index);\r\n\r\n\t\t\t\t\t// Use Map to stage the index of the element.\r\n\t\t\t\t\tif (value === pMapSkip) {\r\n\t\t\t\t\t\tskippedIndexesMap.set(index, value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresult[index] = value;\r\n\r\n\t\t\t\t\tresolvingCount--;\r\n\t\t\t\t\tawait next();\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\tif (stopOnError) {\r\n\t\t\t\t\t\treject(error);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\terrors.push(error);\r\n\t\t\t\t\t\tresolvingCount--;\r\n\r\n\t\t\t\t\t\t// In that case we can't really continue regardless of `stopOnError` state\r\n\t\t\t\t\t\t// since an iterable is likely to continue throwing after it throws once.\r\n\t\t\t\t\t\t// If we continue calling `next()` indefinitely we will likely end up\r\n\t\t\t\t\t\t// in an infinite loop of failed iteration.\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tawait next();\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\treject(error);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})();\r\n\t\t};\r\n\r\n\t\t// Create the concurrent runners in a detached (non-awaited)\r\n\t\t// promise. We need this so we can await the `next()` calls\r\n\t\t// to stop creating runners before hitting the concurrency limit\r\n\t\t// if the iterable has already been marked as done.\r\n\t\t// NOTE: We *must* do this for async iterators otherwise we'll spin up\r\n\t\t// infinite `next()` calls by default and never start the event loop.\r\n\t\t(async () => {\r\n\t\t\tfor (let index = 0; index < concurrency; index++) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\r\n\t\t\t\t\tawait next();\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\treject(error);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isIterableDone || isRejected) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\t});\r\n}\r\n\r\nexport function pMapIterable(\r\n\titerable,\r\n\tmapper,\r\n\t{\r\n\t\tconcurrency = Number.POSITIVE_INFINITY,\r\n\t\tbackpressure = concurrency,\r\n\t} = {},\r\n) {\r\n\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\r\n\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\r\n\t}\r\n\r\n\tif (typeof mapper !== 'function') {\r\n\t\tthrow new TypeError('Mapper function is required');\r\n\t}\r\n\r\n\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\r\n\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\r\n\t}\r\n\r\n\tif (!((Number.isSafeInteger(backpressure) && backpressure >= concurrency) || backpressure === Number.POSITIVE_INFINITY)) {\r\n\t\tthrow new TypeError(`Expected \\`backpressure\\` to be an integer from \\`concurrency\\` (${concurrency}) and up or \\`Infinity\\`, got \\`${backpressure}\\` (${typeof backpressure})`);\r\n\t}\r\n\r\n\treturn {\r\n\t\tasync * [Symbol.asyncIterator]() {\r\n\t\t\tconst iterator = iterable[Symbol.asyncIterator] === undefined ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();\r\n\r\n\t\t\tconst promises = [];\r\n\t\t\tlet runningMappersCount = 0;\r\n\t\t\tlet isDone = false;\r\n\t\t\tlet index = 0;\r\n\r\n\t\t\tfunction trySpawn() {\r\n\t\t\t\tif (isDone || !(runningMappersCount < concurrency && promises.length < backpressure)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst promise = (async () => {\r\n\t\t\t\t\tconst {done, value} = await iterator.next();\r\n\r\n\t\t\t\t\tif (done) {\r\n\t\t\t\t\t\treturn {done: true};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trunningMappersCount++;\r\n\r\n\t\t\t\t\t// Spawn if still below concurrency and backpressure limit\r\n\t\t\t\t\ttrySpawn();\r\n\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tconst returnValue = await mapper(await value, index++);\r\n\r\n\t\t\t\t\t\trunningMappersCount--;\r\n\r\n\t\t\t\t\t\tif (returnValue === pMapSkip) {\r\n\t\t\t\t\t\t\tconst index = promises.indexOf(promise);\r\n\r\n\t\t\t\t\t\t\tif (index > 0) {\r\n\t\t\t\t\t\t\t\tpromises.splice(index, 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Spawn if still below backpressure limit and just dropped below concurrency limit\r\n\t\t\t\t\t\ttrySpawn();\r\n\r\n\t\t\t\t\t\treturn {done: false, value: returnValue};\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tisDone = true;\r\n\t\t\t\t\t\treturn {error};\r\n\t\t\t\t\t}\r\n\t\t\t\t})();\r\n\r\n\t\t\t\tpromises.push(promise);\r\n\t\t\t}\r\n\r\n\t\t\ttrySpawn();\r\n\r\n\t\t\twhile (promises.length > 0) {\r\n\t\t\t\tconst {error, done, value} = await promises[0]; // eslint-disable-line no-await-in-loop\r\n\r\n\t\t\t\tpromises.shift();\r\n\r\n\t\t\t\tif (error) {\r\n\t\t\t\t\tthrow error;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (done) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Spawn if just dropped below backpressure limit and below the concurrency limit\r\n\t\t\t\ttrySpawn();\r\n\r\n\t\t\t\tif (value === pMapSkip) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tyield value;\r\n\t\t\t}\r\n\t\t},\r\n\t};\r\n}\r\n\r\nexport const pMapSkip = Symbol('skip');\r\n","const {toString} = Object.prototype;\r\nconst isError = value => toString.call(value) === '[object Error]';\r\n\r\nexport class PresentableError extends Error {\r\n\tconstructor(message, {cause} = {}) {\r\n\t\tsuper();\r\n\r\n\t\tif (message instanceof PresentableError) {\r\n\t\t\treturn message; // eslint-disable-line no-constructor-return\r\n\t\t}\r\n\r\n\t\tif (typeof message !== 'string') {\r\n\t\t\tthrow new TypeError('Message required.');\r\n\t\t}\r\n\r\n\t\tthis.name = 'PresentableError';\r\n\t\tthis.message = message;\r\n\t\tthis.cause = cause;\r\n\t}\r\n\r\n\tget isPresentable() {\r\n\t\treturn true;\r\n\t}\r\n}\r\n\r\nexport function isPresentableError(value) {\r\n\treturn value && isError(value) && value.isPresentable === true;\r\n}\r\n\r\nexport function makePresentableError(error) {\r\n\tif (!isError(error)) {\r\n\t\tthrow new TypeError('The value is not an error.');\r\n\t}\r\n\r\n\tif (isPresentableError(error)) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!Object.isExtensible(error)) {\r\n\t\tthrow new Error('The error is non-extensible and cannot be edited.');\r\n\t}\r\n\r\n\tObject.defineProperty(error, 'isPresentable', {value: true});\r\n}\r\n","import fs from 'node:fs';\r\nimport fsPromises from 'node:fs/promises';\r\nimport path from 'node:path';\r\nimport process from 'node:process';\r\nimport {globby, globbySync} from 'globby';\r\nimport isGlob from 'is-glob';\r\nimport isPathCwd from 'is-path-cwd';\r\nimport isPathInside from 'is-path-inside';\r\nimport pMap from 'p-map';\r\nimport slash from 'slash';\r\nimport {PresentableError} from 'presentable-error';\r\n\r\nfunction safeCheck(file, cwd) {\r\n\tif (isPathCwd(file)) {\r\n\t\tthrow new PresentableError('Cannot delete the current working directory. Can be overridden with the `force` option.');\r\n\t}\r\n\r\n\tif (!isPathInside(file, cwd)) {\r\n\t\tthrow new PresentableError('Cannot delete files/directories outside the current working directory. Can be overridden with the `force` option.');\r\n\t}\r\n}\r\n\r\nfunction normalizePatterns(patterns) {\r\n\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\r\n\r\n\tpatterns = patterns.map(pattern => {\r\n\t\tif (process.platform === 'win32' && isGlob(pattern) === false) {\r\n\t\t\treturn slash(pattern);\r\n\t\t}\r\n\r\n\t\treturn pattern;\r\n\t});\r\n\r\n\treturn patterns;\r\n}\r\n\r\nexport async function deleteAsync(patterns, {force, dryRun, cwd = process.cwd(), onProgress = () => {}, ...options} = {}) {\r\n\toptions = {\r\n\t\texpandDirectories: false,\r\n\t\tonlyFiles: false,\r\n\t\tfollowSymbolicLinks: false,\r\n\t\tcwd,\r\n\t\t...options,\r\n\t};\r\n\r\n\tpatterns = normalizePatterns(patterns);\r\n\r\n\tconst paths = await globby(patterns, options);\r\n\tconst files = paths.sort((a, b) => b.localeCompare(a));\r\n\r\n\tif (files.length === 0) {\r\n\t\tonProgress({\r\n\t\t\ttotalCount: 0,\r\n\t\t\tdeletedCount: 0,\r\n\t\t\tpercent: 1,\r\n\t\t});\r\n\t}\r\n\r\n\tlet deletedCount = 0;\r\n\r\n\tconst mapper = async file => {\r\n\t\tfile = path.resolve(cwd, file);\r\n\r\n\t\tif (!force) {\r\n\t\t\tsafeCheck(file, cwd);\r\n\t\t}\r\n\r\n\t\tif (!dryRun) {\r\n\t\t\tawait fsPromises.rm(file, {recursive: true, force: true});\r\n\t\t}\r\n\r\n\t\tdeletedCount += 1;\r\n\r\n\t\tonProgress({\r\n\t\t\ttotalCount: files.length,\r\n\t\t\tdeletedCount,\r\n\t\t\tpercent: deletedCount / files.length,\r\n\t\t\tpath: file,\r\n\t\t});\r\n\r\n\t\treturn file;\r\n\t};\r\n\r\n\tconst removedFiles = await pMap(files, mapper, options);\r\n\r\n\tremovedFiles.sort((a, b) => a.localeCompare(b));\r\n\r\n\treturn removedFiles;\r\n}\r\n\r\nexport function deleteSync(patterns, {force, dryRun, cwd = process.cwd(), ...options} = {}) {\r\n\toptions = {\r\n\t\texpandDirectories: false,\r\n\t\tonlyFiles: false,\r\n\t\tfollowSymbolicLinks: false,\r\n\t\tcwd,\r\n\t\t...options,\r\n\t};\r\n\r\n\tpatterns = normalizePatterns(patterns);\r\n\r\n\tconst files = globbySync(patterns, options)\r\n\t\t.sort((a, b) => b.localeCompare(a));\r\n\r\n\tconst removedFiles = files.map(file => {\r\n\t\tfile = path.resolve(cwd, file);\r\n\r\n\t\tif (!force) {\r\n\t\t\tsafeCheck(file, cwd);\r\n\t\t}\r\n\r\n\t\tif (!dryRun) {\r\n\t\t\tfs.rmSync(file, {recursive: true, force: true});\r\n\t\t}\r\n\r\n\t\treturn file;\r\n\t});\r\n\r\n\tremovedFiles.sort((a, b) => a.localeCompare(b));\r\n\r\n\treturn removedFiles;\r\n}\r\n","import process from 'node:process';\r\nimport path from 'node:path';\r\n\r\nexport default function isPathCwd(path_) {\r\n\tlet cwd = process.cwd();\r\n\r\n\tpath_ = path.resolve(path_);\r\n\r\n\tif (process.platform === 'win32') {\r\n\t\tcwd = cwd.toLowerCase();\r\n\t\tpath_ = path_.toLowerCase();\r\n\t}\r\n\r\n\treturn path_ === cwd;\r\n}\r\n","import path from 'node:path';\r\n\r\nexport default function isPathInside(childPath, parentPath) {\r\n\tconst relation = path.relative(parentPath, childPath);\r\n\r\n\treturn Boolean(\r\n\t\trelation &&\r\n\t\trelation !== '..' &&\r\n\t\t!relation.startsWith(`..${path.sep}`) &&\r\n\t\trelation !== path.resolve(childPath)\r\n\t);\r\n}\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __esDecorate,\r\n __runInitializers,\r\n __propKey,\r\n __setFunctionName,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n __addDisposableResource,\r\n __disposeResources,\r\n __rewriteRelativeImportExtension,\r\n};\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","import * as vscode from \"vscode\";\r\nimport * as path from \"path\";\r\nimport { VisualText } from './visualText';\r\nimport { AnalyzerView } from './analyzerView';\r\nimport { NLPCommands } from \"./command\";\r\nimport { SequenceView } from './sequenceView';\r\nimport { TextView } from './textView';\r\nimport { KBView } from './kbView';\r\nimport { OutputView } from './outputView';\r\nimport { FindView } from './findView';\r\nimport { HelpView } from './helpView';\r\nimport { LogView } from './logView';\r\nimport { NLPStatusBar } from './status';\r\nimport { visualText } from './visualText';\r\nimport { registerFormatter } from './format/formatProvider';\r\nimport { registerLanguageFeatures } from './language/providers';\r\nimport { registerEngineDiagnostics } from './language/engineDiagnostics';\r\nimport { registerTreeGraph } from './treeview/treeGraphView';\r\nimport * as telemetry from './telemetry/telemetry';\r\n\r\nexport function activate(ctx: vscode.ExtensionContext): void {\r\n TextView.attach(ctx);\r\n LogView.attach(ctx);\r\n VisualText.attach(ctx);\r\n AnalyzerView.attach(ctx);\r\n OutputView.attach(ctx);\r\n SequenceView.attach(ctx);\r\n KBView.attach(ctx);\r\n FindView.attach(ctx);\r\n const help = HelpView.attach(ctx);\r\n NLPCommands.attach(ctx);\r\n NLPStatusBar.attach(ctx);\r\n registerFormatter(ctx);\r\n registerLanguageFeatures(ctx); // outline, hover, go-to-definition, structural diagnostics\r\n registerEngineDiagnostics(ctx); // inline squiggles from the engine's err.log\r\n registerTreeGraph(ctx); // linguistic parse-tree graphic for .tree files\r\n telemetry.activate(ctx); // no-op unless a connection string is configured\r\n\r\n // First-run welcome / new-version notes / announcements (guarded; never\r\n // blocks activation). Shows at most one popup, version notes taking priority.\r\n help.showStartupHelp();\r\n\r\n vscode.commands.executeCommand('setContext', 'textView.fastload', visualText.getTextFastLoad());\r\n\r\n // #849: stamp the \"# MODIFIED:\" header line with the current date/time when an\r\n // NLP++ pass file is saved. onWillSaveTextDocument + waitUntil applies the edit\r\n // atomically with the save, so there is no re-save loop and no on-disk conflict.\r\n // Only files that already carry the header line (created from the pass template)\r\n // are touched.\r\n ctx.subscriptions.push(vscode.workspace.onWillSaveTextDocument(e => {\r\n const ext = path.extname(e.document.fileName).toLowerCase();\r\n if (ext !== '.nlp' && ext !== '.rec' && ext !== '.pat')\r\n return;\r\n const now = new Date();\r\n const stamp = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate() +\r\n ' ' + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();\r\n const newLine = '# MODIFIED: ' + stamp;\r\n const max = Math.min(e.document.lineCount, 15);\r\n for (let i = 0; i < max; i++) {\r\n const line = e.document.lineAt(i);\r\n if (/^#\\s*MODIFIED:/i.test(line.text)) {\r\n if (line.text.trimEnd() !== newLine)\r\n e.waitUntil(Promise.resolve([vscode.TextEdit.replace(line.range, newLine)]));\r\n return;\r\n }\r\n }\r\n }));\r\n\r\n if (visualText.getAutoUpdate())\r\n visualText.startUpdater();\r\n else\r\n visualText.debugMessage(\"Auto update on reload is off\");\r\n}\r\n"],"names":["Object","defineProperty","exports","value","createFileSystemAdapter","FILE_SYSTEM_ADAPTER","fs","lstat","stat","lstatSync","statSync","readdir","readdirSync","fsMethods","undefined","assign","IS_SUPPORT_READDIR_WITH_FILE_TYPES","NODE_PROCESS_VERSION_PARTS","process","versions","node","split","Error","MAJOR_VERSION","Number","parseInt","MINOR_VERSION","IS_MATCHED_BY_MAJOR","IS_MATCHED_BY_MAJOR_AND_MINOR","Settings","scandirSync","scandir","async","sync","settings_1","getSettings","settingsOrOptions","default","path","optionsOrSettingsOrCallback","callback","read","optionsOrSettings","settings","readdirWithFileTypes","fsStat","rpl","constants_1","utils","common","directory","withFileTypes","readdirError","dirents","callFailureCallback","entries","map","dirent","name","joinPathSegments","pathSegmentSeparator","followSymbolicLinks","callSuccessCallback","tasks","entry","done","isSymbolicLink","statError","stats","throwErrorOnBrokenSymbolicLink","createDirentFromStats","makeRplTaskEntry","rplError","rplEntries","names","fsStatSettings","error","result","a","b","separator","endsWith","entryPath","constructor","_options","this","_getValue","sep","followSymbolicLink","option","DirentFromStats","isBlockDevice","bind","isCharacterDevice","isDirectory","isFIFO","isFile","isSocket","lstatError","markSymbolicLink","walkStream","walkSync","walk","async_1","stream_1","sync_1","_root","_settings","_reader","_storage","onError","onEntry","push","onEnd","_stream","Readable","objectMode","destroy","isDestroyed","emit","events_1","fsScandir","fastq","reader_1","AsyncReader","super","_scandir","_emitter","EventEmitter","_queue","_worker","concurrency","_isFatalError","_isDestroyed","drain","setImmediate","_pushToQueue","basePath","killAndDrain","on","once","base","queueItem","_handleError","item","fsScandirSettings","_handleEntry","isFatalError","fullpath","isAppliedFilter","entryFilter","_emitEntry","deepFilter","replacePathSegmentSeparator","errorFilter","filter","filepath","join","SyncReader","arguments","Set","_handleQueue","add","values","_handleDirectory","_pushToStorage","POSITIVE_INFINITY","__importDefault","mod","__esModule","debug_1","promisify_1","debug","isSecureEndpoint","stack","some","l","indexOf","createAgent","opts","Agent","_opts","timeout","maxFreeSockets","maxSockets","maxTotalSockets","Infinity","sockets","freeSockets","requests","options","defaultPort","explicitDefaultPort","v","protocol","explicitProtocol","req","fn","addRequest","secureEndpoint","host","port","agent","hostname","_defaultAgent","createConnection","_last","shouldKeepAlive","timedOut","timeoutId","timeoutMs","onerror","err","_hadError","ontimeout","code","callbackError","clearTimeout","onsocket","socket","Boolean","freeSocket","onSocket","method","promisifiedCallback","length","setTimeout","Promise","resolve","then","reject","catch","prototype","module","call","rtn","stringify","compile","expand","parse","braces","input","output","Array","isArray","pattern","create","concat","nodupes","noempty","fill","ast","parent","invalidBlock","isInvalidBrace","invalidNode","invalid","escapeInvalid","prefix","isOpen","isClose","console","log","type","prev","nodes","ranges","args","reduce","range","wrap","toRegex","strictZeros","child","MAX_LENGTH","CHAR_0","CHAR_9","CHAR_UPPERCASE_A","CHAR_LOWERCASE_A","CHAR_UPPERCASE_Z","CHAR_LOWERCASE_Z","CHAR_LEFT_PARENTHESES","CHAR_RIGHT_PARENTHESES","CHAR_ASTERISK","CHAR_AMPERSAND","CHAR_AT","CHAR_BACKSLASH","CHAR_BACKTICK","CHAR_CARRIAGE_RETURN","CHAR_CIRCUMFLEX_ACCENT","CHAR_COLON","CHAR_COMMA","CHAR_DOLLAR","CHAR_DOT","CHAR_DOUBLE_QUOTE","CHAR_EQUAL","CHAR_EXCLAMATION_MARK","CHAR_FORM_FEED","CHAR_FORWARD_SLASH","CHAR_HASH","CHAR_HYPHEN_MINUS","CHAR_LEFT_ANGLE_BRACKET","CHAR_LEFT_CURLY_BRACE","CHAR_LEFT_SQUARE_BRACKET","CHAR_LINE_FEED","CHAR_NO_BREAK_SPACE","CHAR_PERCENT","CHAR_PLUS","CHAR_QUESTION_MARK","CHAR_RIGHT_ANGLE_BRACKET","CHAR_RIGHT_CURLY_BRACE","CHAR_RIGHT_SQUARE_BRACKET","CHAR_SEMICOLON","CHAR_SINGLE_QUOTE","CHAR_SPACE","CHAR_TAB","CHAR_UNDERSCORE","CHAR_VERTICAL_LINE","CHAR_ZERO_WIDTH_NOBREAK_SPACE","append","queue","stash","enclose","flatten","ele","rangeLimit","p","q","dollar","pop","exceedsLimit","step","RangeError","encloseBrace","block","i","TypeError","max","maxLength","Math","min","SyntaxError","brackets","index","depth","advance","next","open","keepQuotes","slice","close","commas","shift","siblings","before","keepEscaping","forEach","splice","isOpenOrClose","isInteger","num","trim","find","limit","escapeNode","n","escaped","acc","flat","arr","Buffer","CRC_TABLE","ensureBuffer","isBuffer","hasNewBufferAPI","alloc","from","_crc32","buf","previous","readUInt32BE","crc","crc32","apply","tmp","writeInt32BE","Int32Array","signed","unsigned","copydir","copydirSync","to","cover","state","filename","statsname","valid","basename","mkdir","rewrite","listDirectory","writeFile","files","copyFromArray","f","readFile","data","mode","chmod","utimes","atime","mtime","mkdirSync","rewriteSync","copyFromArraySync","listDirectorySync","writeFileSync","readFileSync","chmodSync","utimesSync","formatArgs","useColors","namespace","humanize","diff","c","color","lastC","replace","match","save","namespaces","storage","setItem","removeItem","load","r","getItem","env","DEBUG","window","__nwjs","navigator","userAgent","toLowerCase","m","document","documentElement","style","WebkitAppearance","firebug","exception","table","localStorage","localstorage","warned","warn","colors","formatters","j","JSON","message","createDebug","prevTime","namespacesCache","enabledCache","enableOverride","enabled","self","curr","Date","ms","coerce","unshift","format","formatter","val","selectColor","extend","enumerable","configurable","get","set","init","delimiter","newDebug","matchesTemplate","search","template","searchIndex","templateIndex","starIndex","matchIndex","disable","skips","enable","ns","skip","keys","key","hash","charCodeAt","abs","browser","tty","util","inspectOpts","stderr","write","formatWithOptions","colorCode","hideDate","toISOString","isatty","fd","deprecate","supportsColor","level","test","obj","prop","substring","_","k","toUpperCase","o","inspect","str","O","noop","eos","stream","ws","_writableState","rs","_readableState","readable","writable","cancelled","onlegacyfinish","onfinish","onend","onexit","exitCode","onclose","nextTick","onclosenexttick","ended","destroyed","onrequest","setHeader","abort","isRequest","stdio","isChildProcess","removeListener","createWriteStream","promises","getStream","promisify","yauzl","openZip","pipeline","Extractor","zipPath","extract","zipfile","lazyEntries","canceled","readEntry","fileName","startsWith","destDir","dirname","dir","recursive","canonicalDestDir","realpath","relative","includes","extractEntry","dest","externalFileAttributes","symlink","isDir","madeBy","versionMadeBy","isSymlink","procMode","getExtractedMode","mkdirOptions","readStream","openReadStream","link","entryMode","defaultDirMode","defaultFileMode","isAbsolute","isGlob","pathPosixDirname","isWin32","backslash","enclosure","globby","flipBackslashes","taskManager","FastGlob","source","assertPatternsInput","works","getWorks","all","array","_Provider","patterns","generate","provider","every","string","isString","isEmpty","merge","posix","win32","glob","globSync","globStream","generateTasks","isDynamicPattern","escapePath","escape","convertPathToPattern","escapePosixPath","convertPosixPathToPattern","escapeWindowsPath","convertWindowsPathToPattern","convertPatternGroupToTask","convertPatternGroupsToTasks","groupPatternsByBaseDirectory","getNegativePatternsAsPositive","getPositivePatterns","convertPatternsToTasks","processPatterns","braceExpansion","expandPatternsWithBraceExpansion","baseNameMatch","removeDuplicateSlashes","positive","negative","dynamic","patternsOutsideCurrentDirectory","getPatternsOutsideCurrentDirectory","patternsInsideCurrentDirectory","getPatternsInsideCurrentDirectory","outsideCurrentDirectoryGroup","insideCurrentDirectoryGroup","ignore","getNegativePatterns","convertToPositivePattern","collection","getBaseDirectory","convertToNegativePattern","positivePatterns","negativePatterns","staticPatterns","isStaticPattern","dynamicPatterns","staticTasks","dynamicTasks","provider_1","ProviderAsync","task","root","_getRootDirectory","_getReaderOptions","api","transform","static","partial_1","_micromatchOptions","getFilter","matcher","_getMatcher","negativeRe","_getNegativePatternsRe","_filter","affectDepthOfReadingPatterns","isAffectDepthOfReadingPattern","convertPatternsToRe","_isSkippedByDeep","_isSkippedSymbolicLink","removeLeadingDotSegment","_isSkippedByPositivePatterns","_isSkippedByNegativePatterns","deep","_getEntryLevel","entryPathDepth","patternsRe","matchAny","Map","absoluteNegative","relativeNegative","partitionAbsoluteAndRelative","absolute","dot","unique","_isDuplicateEntry","_onlyFileFilter","_onlyDirectoryFilter","isMatched","_isMatchToPatternsSet","_createIndexRecord","has","onlyFiles","onlyDirectories","_isMatchToPatterns","_isMatchToAbsoluteNegative","makeAbsolute","cwd","_isNonFatalError","errno","isEnoentCodeError","suppressErrors","_patterns","_fillStorage","segments","_getPatternSegments","sections","_splitSegmentsIntoSections","complete","getPatternParts","part","patternRe","makeRe","splitWhen","segment","hasGlobStar","matcher_1","PartialMatcher","parts","levels","info","section","deep_1","entry_1","error_1","entry_2","_getMicromatchOptions","entryTransformer","getTransformer","matchBase","nobrace","nocase","caseSensitiveMatch","noext","extglob","noglobstar","globstar","strictSlashes","stream_2","ProviderStream","destination","ProviderSync","_transform","unixify","markDirectories","fsWalk","ReaderAsync","_walkAsync","_readerStream","_fsStatSettings","_getFullEntryPath","_makeEntry","ReaderStream","_walkStream","_stat","filepaths","PassThrough","_write","_enc","_getEntry","end","_getStat","ReaderSync","_walkSync","_statSync","DEFAULT_FILE_SYSTEM_ADAPTER","os","CPU_COUNT","cpus","_getFileSystemMethods","methods","items","predicate","groupIndex","IS_WINDOWS_PLATFORM","platform","POSIX_UNESCAPED_GLOB_SYMBOLS_RE","WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE","DOS_DEVICE_PATH_RE","WINDOWS_BACKSLASHES_RE","charAt","secondCharactery","expandBraceExpansion","endsWithSlashGlobStar","isPatternRelatedToParentDirectory","isPositivePattern","isNegativePattern","globParent","micromatch","COMMON_GLOB_SYMBOLS_RE","REGEX_CHARACTER_CLASS_SYMBOLS_RE","REGEX_GROUP_SYMBOLS_RE","GLOB_EXTENSION_SYMBOLS_RE","BRACE_EXPANSION_SEPARATORS_RE","DOUBLE_SLASH_RE","openingBraceIndex","closingBraceIndex","braceContent","hasBraceExpansion","sort","scan","merge2","propagateCloseEventToSources","streams","mergedStream","reusify","fastqueue","context","worker","_concurrency","cache","Task","queueHead","queueTail","_running","errorHandler","current","release","paused","saturated","worked","pause","running","resume","idle","counter","getQueue","empty","kill","handler","holder","promise","arg","cb","res","pushCb","unshiftCb","drained","previousDrain","Writable","Pend","FdSlicer","pend","refCount","autoClose","ReadStream","ref","start","endOffset","pos","WriteStream","bytesWritten","BufferSlicer","buffer","maxChunkSize","MAX_SAFE_INTEGER","createFromBuffer","createFromFd","inherits","offset","position","go","bytesRead","written","createReadStream","unref","_read","toRead","highWaterMark","encoding","bytes","delta","copy","entireSlice","nextOffset","bufferSlicer","writeStream","toRegexRange","isObject","isValidValue","isNumber","zeros","pad","toNumber","dash","padStart","String","toMaxLen","toRange","isNumbers","fromCharCode","capture","rangeError","invalidRange","strictRanges","descending","startString","endString","stepString","padded","maxLen","negatives","positives","toSequence","fillNumbers","fillLetters","invalidStep","looksLikeNode","looksLikeBrowser","looksLikeV8","url","URL","http","https","assert","isFunction","captureStackTrace","useNativeURL","sensitiveHeaders","preservedUrlFields","events","eventHandlers","event","arg1","arg2","arg3","_redirectable","InvalidUrlError","createErrorType","RedirectionError","TooManyRedirectsError","MaxBodyLengthExceededError","WriteAfterEndError","RedirectableRequest","responseCallback","_sanitizeOptions","_ended","_ending","_redirectCount","_redirects","_requestBodyLength","_requestBodyBuffers","_onNativeResponse","response","_processResponse","cause","_headerFilter","RegExp","escapeRegex","_performRequest","protocols","maxRedirects","maxBodyLength","nativeProtocols","scheme","nativeProtocol","wrappedProtocol","defineProperties","request","spreadUrlObject","parseUrl","validateUrl","equal","wrappedRequest","parsed","href","urlObject","target","spread","pathname","removeMatchingHeaders","regex","headers","lastValue","header","baseClass","CustomError","properties","destroyRequest","_currentRequest","currentRequest","removeHeader","msecs","destroyOnTimeout","addListener","startTimer","_timeout","clearTimer","property","searchPos","agents","_currentUrl","_isRedirect","buffers","writeNext","finished","statusCode","trackRedirects","requestHeaders","location","followRedirects","responseUrl","redirects","beforeRedirect","Host","getHeader","currentHostHeader","currentUrlParts","currentHost","currentUrl","redirectUrl","subdomain","domain","isSubdomain","responseDetails","requestDetails","PassThroughStream","setEncoding","chunks","chunk","getBufferedValue","getBufferedLength","constants","BufferConstants","pump","bufferStream","MaxBufferError","inputStream","maxBuffer","rejectPromise","bufferedData","flag","argv","terminatorPosition","__awaiter","thisArg","_arguments","P","generator","fulfilled","e","rejected","net_1","tls_1","url_1","assert_1","agent_base_1","parse_proxy_response_1","HttpsProxyAgent","proxy","secureProxy","ALPNProtocols","connect","payload","auth","toString","secure","isDefaultPort","Connection","proxyResponsePromise","buffered","servername","ret","omit","fakeSocket","Socket","s","listenerCount","agent_1","createHttpsProxyAgent","buffersLength","firstLine","ondata","makeArray","subject","REGEX_TEST_BLANK_LINE","REGEX_INVALID_TRAILING_BACKSLASH","REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION","REGEX_REPLACE_LEADING_EXCAPED_HASH","REGEX_SPLITALL_CRLF","REGEX_TEST_INVALID_PATH","REGEX_TEST_TRAILING_SLASH","SLASH","TMP_KEY_IGNORE","Symbol","for","KEY_IGNORE","define","object","REGEX_REGEXP_RANGE","RETURN_FALSE","REPLACERS","m1","m2","p1","p2","leadEscape","endEscape","slashes","cleanRangeBackSlash","sanitizeRange","REGEX_REPLACE_TRAILING_WILDCARD","MODE_IGNORE","MODE_CHECK_IGNORE","TRAILING_WILD_CARD_REPLACERS","IgnoreRule","mark","body","ignoreCase","_make","checkRegex","regexPrefix","RuleManager","_ignoreCase","_rules","_add","_added","checkPattern","rule","substr","replacer","makeRegexPrefix","createRule","splitPattern","checkUnignored","matchedRule","ignored","unignored","throwError","Ctor","checkPath","originalPath","doThrow","isNotRelative","convert","Ignore","ignorecase","allowRelativePaths","_strictPathCheck","_initCache","_ignoreCache","_testCache","addPattern","_test","slices","_t","checkIgnore","ignores","createFilter","paths","factory","setupWindows","REGEX_TEST_WINDOWS_PATH_ABSOLUTE","isPathValid","exec","isExtglob","chars","strictCheck","pipeIndex","closeSquareIndex","closeCurlyIndex","closeParenIndex","backSlashIndex","relaxedCheck","check","strict","isFinite","pauseStreams","len","pipe","streamsQueue","merging","doEnd","doPipeError","pipeError","addStream","mergeStream","endStream","pipesCount","endEmitted","setMaxListeners","picomatch","isEmptyString","hasBraces","list","keep","onResult","isMatch","negated","negatedExtglob","matched","delete","matches","failglob","nonull","nullglob","unescape","any","not","contains","matchKeys","isWindows","toPosixSlashes","braceExpand","extensions","types","preference","db","extname","EXTRACT_TYPE_REGEXP","TEXT_TYPE_REGEXP","charset","mime","charsets","lookup","contentType","extension","exts","moment","toLocaleStringWorks","toLocaleStringRoundingWorks","intlNumberFormatWorks","intlNumberFormatRoundingWorks","bubbles","targets","stringIncludes","repeatZero","qty","cachedNumberFormat","locale","cacheKey","Intl","NumberFormat","formatNumber","number","userLocale","integerString","fractionString","exponentString","useToLocaleString","useGrouping","grouping","maximumSignificantDigits","minimumIntegerDigits","fractionDigits","groupingSeparator","decimalSeparator","roundingOptions","localeStringOptions","maximumFractionDigits","minimumFractionDigits","parseFloat","toLocaleString","temp","toPrecision","toFixed","integerLength","fractionLength","digitCount","digits","digitsArray","reverse","carry","stringRound","exponent","group","formattedString","durationLabelCompare","label","engLocale","durationLabelsStandard","S","SS","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","durationLabelsShort","durationTimeTemplates","HMS","HM","MS","durationLabelTypes","durationPluralKey","token","integerValue","decimalValue","each","pluck","compact","_a","intersection","_b","rest","hasOwnProperty","featureTestFormatterRounding","featureTestFormatter","passed","durationsFormat","durations","precision","returnMomentTypes","formattedDurations","dur","outputTypes","largest","durationFormat","defaults","asMilliseconds","asMonths","isValid","isNegative","remainder","duration","remainderMonths","momentTokens","years","months","weeks","days","hours","minutes","seconds","milliseconds","tokenDefs","general","typeMap","tokenizer","stopTrim","localeData","_durationTimeTemplates","useLeftUnits","usePlural","forceLength","trunc","useSignificantDigits","significantDigits","significantDigitsCache","minValue","isMinValue","maxValue","isMaxValue","trimIncludes","rBoth","rAll","trimLarge","trimSmall","trimMid","trimFinal","rawTokens","text","currentToken","tokens","momentTypes","momentType","rawValue","isSmallest","isLargest","as","wholeValue","floor","subtract","tokenLength","truncMethod","round","truncate","places","factor","pow","foundFirst","bubbled","formatValue","formatOptions","formattedValue","formattedValueEn","formattedValueMS","findType","bubble","bubbleMomentType","targetMomentType","outputType","pluralKey","labels","localeDataKey","labelType","labelKey","durationGetLabels","autoLocalized","pluralizedLabels","_durationLabelTypes","out","defaultFormatTemplate","_data","firstType","lastType","findLast","updateLocale","toLocaleStringFormatter","toLocaleStringSupportsLocales","intlNumberFormatFormatter","momentDurationFormatSetup","defineLocale","monthsShort","weekdays","weekdaysShort","weekdaysMin","meridiemParse","isPM","meridiem","isLower","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","dayOfMonthOrdinalParse","ordinal","week","dow","doy","pluralForm","plurals","pluralize","u","withoutSuffix","isFuture","weekdaysParseExact","hour","minute","postformat","symbolMap","preparse","numberMap","suffixes","relativeTimeWithPlural","forms","standalone","isFormat","day","period","lastDigit","last2Digits","meridiemHour","monthsShortRegex","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","mutation","lastNumber","monthsParse","monthsRegex","minWeekdaysParse","weekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","translate","ll","lll","llll","plural","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","month","_monthsNominativeEl","calendarEl","mom","_calendarEl","Function","monthsShortDot","invalidDate","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eras","since","narrow","abbr","until","eraYearOrdinalRegex","eraYearOrdinalParse","now","$0","$1","$2","isUpper","ezafeNumSuffix","eifelerRegelAppliesToNumber","isNaN","units","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","word","numbersNouns","numberNoun","hundred","ten","one","numberAsNoun","time","hm","processHoursFunction","nominative","accusative","genitive","webpackContext","id","webpackContextResolve","__webpack_require__","hookCallback","hooks","hasOwnProp","isObjectEmpty","getOwnPropertyNames","isUndefined","isDate","arrLen","valueOf","createUTC","createLocalOrUTC","utc","getParsingFlags","_pf","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","_isValid","createInvalid","NaN","fun","t","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","msg","suppressDeprecationWarnings","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","func","removeFormattingTokens","formatMoment","expandFormat","makeFormatFunction","replaceLongDateFormatTokens","lastIndex","aliases","D","dates","date","weekday","E","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","millisecond","Q","quarters","quarter","second","gg","weekyears","weekyear","GG","isoweekyears","isoweekyear","W","isoweeks","isoweek","year","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","isoWeekday","dayOfYear","weekYear","isoWeekYear","isoWeek","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","strictRegex","isStrict","getParseRegexForToken","regexEscape","p3","p4","absFloor","ceil","toInt","argumentForCoercion","coercedNumber","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","isLeapYear","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","parseTwoDigitYear","getSetYear","makeGetSet","unit","keepTime","set$1","isUTC","getUTCMilliseconds","getMilliseconds","getUTCSeconds","getSeconds","getUTCMinutes","getMinutes","getUTCHours","getHours","getUTCDate","getDate","getUTCDay","getDay","getUTCMonth","getMonth","getUTCFullYear","getFullYear","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setSeconds","setUTCMinutes","setMinutes","setUTCHours","setHours","setUTCDate","setDate","setUTCFullYear","setFullYear","daysInMonth","x","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","setUTCMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","createUTCDate","UTC","firstWeekOffset","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","_meridiem","pos1","pos2","getSetHour","globalLocale","baseConfig","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","getSetGlobalLocale","getLocale","_config","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","calculateOffset","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","currentDateArray","weekdayOverflow","curWeek","createLocal","_week","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","isPm","meridiemFixWrap","erasConvertYear","prepareConfig","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","configFromObject","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","unitHasDecimal","orderLen","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","utcOffset","sign","offsetFromString","chunkOffset","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","addSubtract","isAdding","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","propertyLen","isMomentInputObject","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","formats","isCalendarSpec","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","inputString","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","priority","getPrioritizedUnits","prioritizedLen","toArray","toObject","toDate","keepOffset","suffix","zone","isLocal","toJSON","unix","creationData","eraName","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","_relativeTime","pastFuture","_eras","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","asSeconds","asMinutes","asHours","asDays","asWeeks","asQuarters","asYears","valueOf$1","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","posNegDuration","relativeTime$1","toIsoString","version","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","msAbs","isPlural","long","fmtShort","file","readChunk","openSync","isStdin","reset","_searchInBuffer","byte","eofReached","linesCache","fdPosition","lastChunkEndedWithCR","lineIsComplete","closeSync","_extractLines","isEof","lines","lineStart","lineEnd","_readChunk","lineLeftovers","totalBytesRead","readBuffer","readSync","bufferData","line","isLast","IncomingMessage","makeRequest","Transform","FileProcessor","deduceFileName","exists","getTempFilePath","isJson","isDataUrl","unlink","rename","bufferToReadableStream","createBufferFromResponseStream","pipeStreams","getStringFromStream","downloadStatusEnum","useSynchronousMode","httpsAgent","cloneFiles","skipExistingFileName","shouldBufferResponse","onResponse","onBeforeSave","onProgress","isCancelled","cancelCb","percentage","fileSize","currentDataSize","originalResponse","_verifyDirectoryExists","_shouldSkipRequest","downloadStatus","filePath","dataStream","_request","_handlePossibleStatusCodeError","finalFileName","originalFileName","_getFileName","finalPath","_save","customError","_createErrorObject","responseString","responseBody","_mimic_RequestForDataUrl","_makeRequest","contentLength","dataUrl","mimeType","base64Data","byteLength","_shouldSkipSaving","_getTempAndFinalPath","tempPath","_saveAccordingToConfig","_saveFromBuffer","_saveFromReadableStream","_handleOnBeforeSave","clientOverideName","_renameTempFileToFinalName","_removeFailedFile","makeRequestIter","cancel","_getProgressStream","remainingFracture","remainingSize","progressStream","final","responseHeaders","fileProcessor","getAvailableFileName","rpur","capitalize","Download","configTypes","mandatory","Downloader","generateTypeError","validateConfig","maxAttempts","_currentDownload","download","_makeUntilSuccessful","asyncFunc","shouldStop","cancelPromiseReject","responsePromiseReject","responsePromise","timeoutPromise","cancelPromise","race","responseIter","asyncIterator","majorNodeVersion","fileExtension","fileNameWithoutExtension","createNewFileNameSync","createNewFileName","pathExistsSync","existsSync","pathExists","access","newFileName","createDelay","mil","sanitize","Fs","removeQueryString","fileNameFromContentDisposition","contentDisposition","getFileNameFromContentDisposition","fileNameFromUrl","cleanUrl","deduceFileNameFromUrl","fileNameFromContentType","removeExtension","getFileNameFromContentType","finalpath","promiseFactory","attempts","delay","newAttempts","onAttempt","promiseWithTimeout","pipelinePromisified","Stream","fullPath","arrayOfStreams","getDataUrlExtension","dataurl","wrappy","called","onceStrict","onceError","pending","listeners","waiting","pendHold","pendGo","cbListener","listener","wait","hold","WIN_SLASH","WIN_NO_SLASH","DOT_LITERAL","SLASH_LITERAL","QMARK","END_ANCHOR","START_ANCHOR","DOTS_SLASH","POSIX_CHARS","PLUS_LITERAL","QMARK_LITERAL","ONE_CHAR","NO_DOT","NO_DOTS","NO_DOT_SLASH","NO_DOTS_SLASH","QMARK_NO_DOT","STAR","WINDOWS_CHARS","DEFAULT_MAX_EXTGLOB_RECURSION","POSIX_REGEX_SOURCE","__proto__","alnum","alpha","ascii","blank","cntrl","digit","graph","lower","print","punct","space","upper","xdigit","REGEX_BACKSLASH","REGEX_NON_SPECIAL_CHARS","REGEX_SPECIAL_CHARS","REGEX_SPECIAL_CHARS_BACKREF","REGEX_SPECIAL_CHARS_GLOBAL","REGEX_REMOVE_BACKSLASH","REPLACEMENTS","CHAR_BACKWARD_SLASH","CHAR_GRAVE_ACCENT","SEP","extglobChars","globChars","expandRange","ex","syntaxError","char","splitTopLevel","bracket","paren","quote","ch","normalizeSimpleBranch","branch","changed","isPlainBranch","parseRepeatedExtglob","requireEnd","getStarExtglobSequenceOutput","branches","repeatedExtglobRecursion","bos","prepend","PLATFORM_CHARS","EXTGLOB_CHARS","nodot","qmarkNoDot","star","bash","noextglob","consumed","backtrack","parens","quotes","removePrefix","extglobs","peek","remaining","consume","negate","count","increment","decrement","isBrace","inner","extglobOpen","conditions","startIndex","tokensIndex","extglobClose","literal","analysis","maxExtglobRecursion","risky","repeat","hasRepeatedCharPrefixOverlap","safeOutput","analyzeRepeatedExtglob","extglobStar","expression","fastpaths","backslashes","esc","first","wrapOutput","idx","lastIndexOf","pre","strictBrackets","nobracket","prevValue","literalBrackets","hasRegexChars","outputIndex","brace","dots","comma","toks","supportsLookbehinds","nonegate","prior","isStart","afterStar","after","escapeLast","slashDot","returnState","fns","arrayMatcher","isState","compileRe","isIgnored","ignoreOpts","onMatch","returnObject","onIgnore","returnOutput","isPathSeparator","isPrefix","isGlobstar","scanToEnd","isBracket","braceEscaped","noparen","removeBackslashes","maxDepth","prevIndex","isRegexChar","segs","windows","lastIdx","ancient","isFn","destroys","reading","writing","closed","isFS","destroyer","queueMicrotask","global","Constructor","head","tail","results","isSync","illegalRe","controlRe","reservedRe","windowsReservedRe","windowsTrailingRe","replacement","sanitized","hasFlag","flagForceColor","getSupportLevel","haveStream","streamIsTTY","sniffFlags","noFlagForceColor","FORCE_COLOR","envForceColor","forceColor","TERM","osRelease","CI_NAME","TEAMCITY_VERSION","COLORTERM","TERM_PROGRAM_VERSION","TERM_PROGRAM","isTTY","hasBasic","has256","has16m","stdout","relaxZeros","shorthand","isPadded","hasPadding","splitToPatterns","neg","onlyNegative","filterPatterns","onlyPositive","intersected","collatePatterns","rangeToPattern","stop","zipped","zip","startDigit","stopDigit","toCharacterClass","nines","countNines","stops","countZeros","compare","splitToRanges","padZeros","toQuantifier","comparison","integer","relax","clearCache","getLength","isHighSurrogate","codePoint","isLowSurrogate","charLength","curByteLength","anaSubDir","seqFile","SequenceFile","jsonState","JsonState","analyzerDir","vscode","Uri","specDir","inputDir","outputDir","kbDir","logDir","currentTextFile","currentPassFile","passNum","loaded","hasLogs","timerCounter","timerID","analyzerCopyUri","readState","jsonParse","json","visualText","currentFile","getInputDirectory","fsPath","getSpecDirectory","commands","executeCommand","outputDirectory","modCreate","uri","created","showInputBox","prompt","newname","showWarningMessage","modUri","modFiles","dirfuncs","setModFile","hasText","newAnalyzer","hasWorkspaceFolder","getBlockAnalyzersPath","getWorkspaceFolder","button","showInformationMessage","askToCreateNewAnalyzer","createNewAnalyzer","zeroAnalyzer","analyzerName","visualTextDirectoryExists","fromDir","getVisualTextDirectory","makeNewAnalyzer","getDirectories","dirMap","readme","descr","tit","title","description","readDescription","picked","showQuickPick","canPickMany","placeHolder","selections","dirName","fileOps","startFileOps","toDir","addFileOperation","fileOpRefresh","ANALYZER","fileOperation","ANASEL","selection","sequenceView","insertAnalyzerBlock","TextFile","getLines","analyzer","makeDir","ANALYZERS","COPY","ANALOAD","createAnaSequenceFile","content","cont","anaFile","ANALYZER_SEQUENCE_FILE","saveStateFile","saveAnalyzerState","stateJsonDefault","saveFile","getCurrentFile","saveCurrentFile","saveCurrentPass","passFile","setWorkingDir","checkHierFile","kbPath","getKBDirectory","hierPath","currHierText","extHierPath","basicHierText","getText","debugMessage","logLineType","UPDATER","setText","LOG_SUFFIX","clearOutputDirectory","treeFile","pather","isLoaded","setCurrentTextFile","getAnalyzerDirectory","subDir","getOutputDirectory","getLogDirectory","getTextPath","getPassPath","getTreeFile","nlpFileType","TREE","getName","folderHasTests","folder","getFiles","testFile","TEST_SUFFIX","fileHasTests","testFolder","outputDirFlag","relPath","folderName","testDir","constructDir","SPEC","INPUT","KB","LOGS","anaSubDirPath","pathStr","ANALYZER_SEQUENCE_FOLDER","OUTPUT","getAnalyzerConverting","analyzerItemType","AnalyzerTreeDataProvider","refresh","_onDidChangeTreeData","fire","onDidChangeTreeData","getChildren","analyzerItem","getAnalyzers","getKeepers","hasAnalyzers","getMovement","moveDown","moveUp","itemPath","getAnalyzerDir","FOLDER","parentHasOtherDirs","getTreeItem","treeItem","TreeItem","isAnalyzerDirectory","TreeItemCollapsibleState","None","Collapsed","conVal","hasReadme","icon","fileIconFromType","iconPath","light","__filename","dark","command","contextValue","tooltip","NLP","collapsibleState","keepers","getDirectoryTypes","FileType","Directory","analyzerHasLogFiles","hasFile","hasPats","File","typeFromExtension","hasAllLogs","hasLogDirs","FILE","dirPath","SEQUENCE","ECL","MANIFEST","README","AnalyzerView","sequenceFile","analyzerViewProvider","analyzerView","createTreeView","treeDataProvider","registerCommand","resource","deleteAnalyzer","deleteFile","deleteFolder","loadExampleAnalyzers","openAnalyzer","deleteAnalyzerLogs","deleteAllAnalyzerLogs","updateTitle","copyAnalyzer","dupeAnalyzer","explore","newFolder","moveToFolder","readMe","editReadMe","deleteReadMe","moveDownFolder","moveToParent","renameAnalyzer","renameFile","renameFolder","openFile","importAnalyzers","manifestGenerate","newECLFile","exploreAll","copyAll","updateColorizer","video","copyPath","compileAnalyzer","compileAnalyzerOnly","deployCompiledAnalyzer","runRegressionTest","blessRegression","colorizeAnalyzer","folderUri","converting","attach","ctx","clipboard","writeText","checkForECLAnalyzersDir","analyzerList","createNewECLFile","textFile","readFirstLine","setFile","saveECLFile","showTextDocument","analyzerPath","analyzerFiles","getAnalyzerManifestFiles","cleanPath","kbFiles","manifestFile","getManifestFilePath","mannie","elcFileName","setSpecDir","getPassFiles","getPassItems","copyDataFolder","dataFolder","engineData","engineDirectory","uris","newfile","RENAME","openFolder","canSelectFiles","canSelectFolders","canSelectMany","openLabel","defaultUri","showOpenDialog","analyzerDirExists","select","newdir","delFile","openFileManager","analyzers","toFolder","UNKNOWN","chosen","anaChosen","loadAnalyzer","deleteDescr","TEXT","DELETE","itemCount","yesDescr","noDescr","placeDescr","NLPCompile","runRegress","resolveRegressAnalyzerDir","workspace","getConfiguration","runRegressTerminal","regressionRunner","bless","script","showErrorMessage","engineDir","cmd","termName","term","terminals","createTerminal","show","sendText","goldensExist","modal","choice","deleteAllAnalyzerLogDirs","textView","deleteFolderLogs","deleteLogDirs","deleteDirFiles","workspaceFolders","analyzerUris","analyzerUri","NLPCommands","_ctx","subscriptions","analyze","analyzeDir","reformatRule","reformatOneLine","reformatParens","searchWord","goToFunction","ruleFired","openSelTree","generateRule","generateExactRule","copyContext","openPassFile","duplicateLine","commentLines","selectSequence","passTree","displayMatchedRulesNLP","sortText","lowerCase","removeAccents","runPython","foldAll","unfoldAll","foldRecursively","unfoldRecursively","highlightText","ruleFiredLog","generatePath","nlpCommands","activeTextEditor","editor","selFlag","getSelectedLines","sortLines","rollupLines","linesToText","lineAt","lastLine","lineCount","textRange","Range","edit","editBuilder","snippet","SnippetString","insertSnippet","textNoAccents","normalize","NLPFile","openRuleMatchesText","reformatType","NORMAL","ONELINE","PARENS","TreeFile","findRule","findSelectedTree","generateType","GENERAL","EXACT","nlp","compileTarget","nlpCompile","runCompile","compileKBOnly","KB_ONLY","ANALYZER_ONLY","anapath","ext","sharedLibraryExt","compiledLib","kbUserDir","fullFiles","findFullKBFiles","destParent","rmSync","force","copyFileSync","binDir","destKbUser","pyFiles","findSpecPyFiles","destSpec","analyzerPyDir","pyDirStaged","cpSync","fullMsg","pyMsg","logView","addMessage","ANALYER_OUTPUT","detail","targetLabel","compileFlag","exe","exePath","findKBSourceFiles","findGeneratedCppFiles","withProgress","ProgressLocation","Window","cancellable","progress","report","runDir","compileResult","runNlpCompile","ok","kbOnly","libBaseName","success","compileCppOnCloud","ensureIcuImportLibs","compileSupport","resolveCompileSupport","compileCppWithCMake","libName","sharedLibraryName","libPath","refreshEngineDiagnostics","startUpdater","cp","compileAnaPath","pathForNlpExe","compileWorkPath","vsDevCmd","findVsDevCmdScript","runNlpCompileWithVsDevCmd","execFile","errOut","setupScript","formatCmdArg","shell","hasCMake","support","locateEngineCompileSupport","missingLibraries","missingHeaders","includeDirs","detailParts","execCommand","engineRoot","requiredLibs","optionalLibs","requiredHeaders","includeRootsFromHeaders","headerFiles","hit","findEngineHeader","collectIncludeDirectories","libraryFiles","libFile","findEngineLibrary","headerRoots","existing","headerRelativePath","normalizedRelative","candidateRoots","baseName","expectedNames","expectedLibraryNames","candidateDirs","findFileByName","expected","where","outputLib","cmakeRoot","sourceDir","buildDir","cmakeFile","cmakeCacheFile","stdAfxStub","cmakeContent","generateCompileCMakeLists","outputChannel","createOutputChannel","appendLine","winVsDevCmd","configureArgs","configureResult","execCmakeWithVsDevCmd","appendCommandOutput","buildArgs","buildResult","missingMessage","stubDir","toCMakePath","stubDirCMake","includeLines","libLines","errorMessage","targetPath","getWindowsShortPath","shortPathCmd","shortPath","execSync","cppFiles","libDir","missing","machine","arch","dll","outLib","defFile","runDumpbinExports","defContent","runLibFromDef","parseDumpbinExports","inExports","raw","programFilesX86","vswhere","installPath","execFileSync","scriptPath","editions","baseRoots","edition","stem","stemEndsWithFull","dispatcherUrl","rawEngineVersion","exeEngineVersion","repoEngineVersion","engineVersion","platformKey","cloudPlatformKey","verifyEngineReleaseExists","logUri","stageDir","mkdtempSync","tmpdir","stageCloudPayload","tarPath","tarGzDirectory","sourcesHash","sha256File","manifest","schemaVersion","extensionVersion","form","FormData","tarBytes","Blob","buildRes","fetch","status","submitted","artifactUrl","cached","baseMsg","tickStart","tick","setInterval","sec","polled","pollCloudJob","jobId","clearInterval","downloadToFile","releaseTag","encodeURIComponent","linuxCloudPlatformKey","dirs","src","dst","srcDir","outPath","spawn","crypto","createHash","update","digest","deadline","job","errors","nlpSourceFile","nlpSourceLine","column","severity","buildLogUrl","arrayBuffer","getFileTypes","dirUris","filenames","unlinkSync","copyDirectory","fromPath","toPath","copyFile","changeMod","sameParentDirectory","dir1","dir2","localeCompare","oldPath","newPath","renameSync","findFolder","folderToFind","parentDir","found","analyzerFolderCount","specCount","subDirs","specfile","dirsAndTypes","fileCount","directoryIsLog","getType","FILES","recurse","fileUris","DIRS","children","getDirPath","delDir","deleteSync","deleteFiles","emptyDir","directoryHasFiles","logsDir","fileHasLog","hasFiles","hasDirs","needToCopy","fileFrom","fileTo","fileQueueStatus","fileOpStatus","fileOpType","fileOneOff","stopAllFlag","queueStrs","opStrs","opStatusStrs","timerStatus","opsQueue","refreshQueue","fileOpTypeStrs","seqRow","mils","clearLogs","FILE_OP","fileTimer","stopAll","uri1","uri2","refreshes","operation","extension1","extension2","DIRECTORY","BREAK","APPEND","uriFile1","uriFile2","oneOff","display","u1","u2","filesPerDir","numDirs","zeroLength","newDir","zeroStr","MKDIR","oldFile","baseFile","newFile","charCount","numStr","retStr","DONE","op","alldone","opNum","RUNNING","FAILED","doneRefresh","NEWFILE","appendFileSync","getLastItem","row","ANAFILE","insertPass","ANAFOLDER","renumberPasses","insertNewFolderPass","PAT_TO_NLP","finds","getMatches","searchSequenceFiles","searchTerm","topFlag","getPassFileUris","escapeRegExp","searchFile","searchFiles","functionFlag","bracketsFlag","findConfig","caseSensitive","wholeWord","rx","termLen","passName","passItem","getPasses","passTag","active","half","newText","lineNum","highlighted","FindTreeDataProvider","findItem","resourceUri","element","findView","getFinds","FindView","findItems","findViewProvider","clearAll","setSearchWord","loadFinds","Position","posEnd","Selection","revealRange","regionText","eol","nonTrivial","kind","TokenKind","Newline","isTrivial","toLines","tokenize","pendingBody","nt","lead","extra","last","braceAllman","indentString","opensBrace","endsSemi","Punct","Word","CONTROL","Whitespace","useTabs","tabSize","languages","registerDocumentFormattingEditProvider","documentProvider","registerDocumentRangeFormattingEditProvider","rangeProvider","resolveOptions","fmt","cfg","indentStyle","braceStyle","insertSpaces","EndOfLine","CRLF","provideDocumentFormattingEdits","original","formatted","formatDocument","telemetry","sendError","sendEvent","fullRange","positionAt","TextEdit","fullDocumentEdit","provideDocumentRangeFormattingEdits","offsetAt","regionEdits","formatRegionsInRange","edits","rangeEdits","region","splitRegions","formatRegion","rangeStart","rangeEnd","safe","RegionKind","Rules","formatRulesRegion","Code","formatCodeRegion","DEFAULT_OPTIONS","detectEol","regions","starts","marker","Directive","directiveAtLineStart","startOff","endOff","Preamble","regionKindFor","Other","RULE_START","formatRuleSafe","ruleSpine","LineComment","BlockComment","ruleText","formatRuleText","ReformatType","ruleStr","formattedRule","rules","rulelinesFinal","currentState","isSpace","lastSpace","backSlash","suggested","cNext","SUGGESTED","comment","ARROW","NODE","NODE_DONE","ATTR","ATTR_END","COMMENT","constructLine","maxLine","tabsMax","nodeNumber","ruleLine","hasAtAt","tabstr","tabString","tabsize","tabsmax","tabs","commentStart","userComment","nextWord","lastWord","parenFlag","trimEnd","c2","isSpaceNotNewline","cj","atat","wordStart","REGION_SET","AtAt","PUNCT","isWordBreak","Arrow","REGION_KEYWORDS","HelpTreeDataProvider","collapse","collapsible","expanded","Expanded","ti","ThemeIcon","MarkdownString","promptFile","isVersionRoot","page","helpView","helpFilePath","listVersionNotes","isAnnounceRoot","listAnnouncements","isPromptRoot","listPrompts","isLinksRoot","listLinks","HelpView","windowCHMHelp","openHelpIndex","openFunctionHelp","openFunctionPage","openVariableHelp","openHome","openVscodeHelp","helpTreeProvider","createClaudePrompt","openPrompt","openLink","showLatestAnnouncement","copyHelpPath","panel","helpTree","cursorPosition","wordRange","getWordRangeAtPosition","getTerm","displayHelpFile","character","startPos","endPos","dollarRange","dollarWord","getWebviewContent","htmlFile","helpPath","displayMarkdownHelp","helpExists","relativeName","mdFile","linksFile","links","openExternal","promptsDir","promptVariables","exeName","cur","getCurrentAnalyzer","engineExe","visualTextDir","analyzersDir","templatesDir","languagesDir","miscDir","currentAnalyzer","fillPromptVariables","vars","copyPromptToClipboard","openPromptByFile","full","nl","doc","openTextDocument","language","previewPromptByFile","tmpDir","tmpFile","compareVersions","pa","pb","packageJSON","showStartupHelp","checkVersionNotes","checkAnnouncements","lastSeen","globalState","present","seen","unseen","jsonStr","setFilePath","fileExists","getFilePath","FileSystemProvider","EMPTY_TEXT","kbItem","getKBFiles","isCompiledLib","fileIconFromExt","clear","order","anaRoot","libExt","compiledLibs","Unknown","dirHasNonText","existingFile","filters","sel","textPath","existingFolder","logFolderOrig","logFolderNew","renameDir","KBView","findFile","FindFile","kbView","KBItem","openKBFile","openText","newKBBFile","newDictFile","generateMain","mergeDicts","byteSort","existingFiles","toggleActive","copyToAnalyzer","cleanFiles","modAdd","modLoad","langLibs","miscLibs","compileKB","fileDir","dictFiles","dictFile","chooseLibFiles","addFile","cmp","started","blocks","seenDict","allStr","allButValidStr","dictFiles2","insertLibraryFile","outputView","copyFileToAnalyzer","newFilename","kbdir","appFile","attrs","top","problems","OPEN_TO_CLOSE","CLOSE_TO_OPEN","createDiagnosticCollection","byFile","sources","parseEngineErrors","resolveTarget","diag","Diagnostic","cleanMessage","DiagnosticSeverity","Warning","diags","getUriByPassNumber","parseEngineErrorLine","trimmed","analyzeSymbols","rawLine","indentLen","trimStart","cut","isAssignment","REGION_MARKERS","DECL","CODE","PRE","POST","CHECK","RULES","MULTI","SELECT","RECURSE","NODES","PATH","GROUP","KEYWORDS","RULE_KEYWORDS","LETTER_FUNCTIONS","N","X","G","BUILTIN_FUNCTIONS","BUILTIN_SET","KEYWORD_SET","registerDocumentSymbolProvider","symbolProvider","registerHoverProvider","hoverProvider","registerDefinitionProvider","definitionProvider","registerWorkspaceSymbolProvider","workspaceSymbolProvider","registerReferenceProvider","referenceProvider","registerDocumentHighlightProvider","highlightProvider","registerRenameProvider","renameProvider","registerCompletionItemProvider","completionProvider","registerSignatureHelpProvider","signatureProvider","registerFoldingRangeProvider","foldingProvider","registerDocumentSemanticTokensProvider","semanticProvider","semanticLegend","registerCodeActionsProvider","codeActionProvider","providedCodeActionKinds","CodeActionKind","QuickFix","watcher","createFileSystemWatcher","onDidDelete","nlpWorkspaceIndex","removeFile","onDidCreate","indexUri","onDidSaveTextDocument","languageId","indexText","diagnostics","timers","refreshDiagnostics","onDidOpenTextDocument","onDidChangeTextDocument","scheduleRefresh","onDidCloseTextDocument","gatherSymbolSets","userFuncs","concepts","letters","builtins","toDocSymbol","sym","selRaw","selStart","selEnd","ds","DocumentSymbol","SymbolKind","Namespace","Method","kindOf","provideDocumentSymbols","provideHover","markerAtPosition","Hover","md","isTrusted","provideDefinition","locations","declaredSymbols","Location","ensureBuilt","here","provideWorkspaceSymbols","query","SymbolInformation","Class","provideReferences","references","includeDeclaration","prepareRename","provideRenameEdits","newName","WorkspaceEdit","provideDocumentHighlights","DocumentHighlight","staticItem","CompletionItem","documentation","BUILTIN_ITEMS","CompletionItemKind","KEYWORD_ITEMS","Keyword","RULE_KEYWORD_ITEMS","LETTER_ITEMS","REGION_ITEMS","indexItems","kinds","provideCompletionItems","linePrefix","regionKindAt","provideFoldingRanges","foldingRanges","FoldingRange","FoldingRangeKind","Region","provideSignatureHelp","findEnclosingCall","decl","signature","sigInfo","params","sig","splitParams","SignatureInformation","parameters","ParameterInformation","help","SignatureHelp","signatures","activeSignature","activeParameter","activeParam","SEM_TYPES","SemanticTokensLegend","SEM_INDEX","provideDocumentSemanticTokens","builder","SemanticTokensBuilder","classifyTokens","build","UNKNOWN_FN_CODE","provideCodeActions","actions","fix","CodeAction","isPreferred","computeProblems","isKnown","sets","findUnknownCalls","suggestion","known","maxDist","spans","codeRegionSpans","inCode","off","closest","levenshtein","cost","best","bestDist","IDENT","openParen","RULE_HEAD","FUNC_DECL","scanRules","nameOffsetInMatch","termIdx","scanFunctions","offsetToPosition","NlpWorkspaceIndex","byName","refsByName","refsByFile","built","building","rebuild","findFiles","isKb","indexKb","indexNlp","addDecl","bucket","syms","indexUsages","parseKbConcepts","refs","decls","kept","OutputTreeDataProvider","logItem","getLogs","getParent","LogView","logs","logViewProvider","revealLast","loadCGLog","loadTimingLog","makeAna","stopFileOps","stopUpdater","exploreEngineDir","downloadHelp","updaterHelp","checkUpdates","updateDebug","toggleAutoUpdate","loadAnalyzerOuts","loadAnalyzeSummary","enginePath","reveal","focus","arfirm","getAutoUpdate","setAutoUpdate","outFile","errFile","addLogFile","LOGFILE","cgFile","errFlag","syntaxErrorsLog","loadMakeAna","errorLog","makeFlag","syntaxErrorsOutput","syntaxErrors","logFile","parseLogLine","INFO","SYNTAX_ERROR","logFileName","spaces","onlySyntax","noClear","typeIcon","firstTwoNumbers","OPEN_PATH","lineTrimmed","WARNING","DOWNLOAD_ERROR","JSON_ERROR","UPDATER_TIMEOUT","modType","ModFile","MODFILE_HEADER","MODFILE_KB","MODFILE_SPEC","MODFILE_INPUT","seqInsertPoint","getMod","retVal","modFileList","showFile","appendFile","getUri","kb","spec","parseFiles","selectInsertPoint","seqItem","findPassFromUri","saveSection","clearMod","modItem","good","relFilePath","getModItem","choicePasses","fileContent","appendText","headerLine","anaQueueStatus","analyzerStatus","analyzerOperation","analyzerType","separateLines","anaQueue","processID","Notification","onCancellationRequested","nlpStatusBar","analyzerButton","filestr","typeStr","analyzeStart","setType","outputFileType","ALL","getDevMode","devFlagStr","DevMode","DEV","SILENT","runMode","getRunMode","usingCompiled","RunMode","COMPILED","COMPILED_KB","COMPILED_ANALYZER","stageCompiledAnalyzer","setAnalyzerStatus","ANALYZING","execStart","procWall","resetAnalyzerButton","engineOut","round2","totalRaw","setupRaw","postRaw","kbMatch","anaMatch","execMatch","lazyFiles","lazyRe","lazyM","kbbReadMatch","dictReadMatch","kbSec","anaSec","execSec","rTotal","rSetup","rKb","rAna","rExec","rPost","rEngine","secs","summary","lazyTimeShown","lazyFile","isDict","readMatch","typeKey","timeStr","pid","compiledLibName","primaryAction","stale","stalePath","addAnalyzer","RUN","addDirsRecursive","subdir","startAnalyzer","analyzerTimer","shutDown","insertRule","viewColumn","ViewColumn","Beside","insert","replaceContext","newContextStr","beside","replaceContextLine","contextSel","findLineSelection","findLineStartsWith","replaceContextLineInFile","replaceLineNumber","saveFileLines","setDocument","getFileType","highlight","TXXT","passNumberFromAna","openTreeFile","openTreeFileFromPath","openRuleMatchFile","passFileUri","startLine","newLineStr","lastLineLength","addingFlag","commented","getSeparator","posStart","rulevars","findRuleText","formatRule","rang","DICT","KBB","rulestr","charStart","charEnd","lastline","multilined","arrowFlag","atSignFlag","firsttime","getContextLine","contextLine","outputItem","getOutputFiles","OutputView","outputViewProvider","copytoKB","copytoText","deleteOutput","addTest","runTest","deleteTest","editTest","loadKB","loadTxxt","loadTrees","loadAll","loadOrphans","deleteOrphans","outputFiles","logDirectory","testDirectory","editTestFiles","textFilePath","testInit","regressionTestFile","closeTest","hasTestFile","testFilePath","nlpFiles","nlpFile","isOrphan","clearOutput","fileHasTest","matchFiles","finalTree","candidates","cand","cleanZeroZero","analyzerFolderList","LOG_DIR_SUFFIX","DEFAULT_EXCLUDE_NAMES","DEFAULT_EXCLUDE_SUFFIXES","DEFAULT_IGNORE_FIELDS","RegressionRunner","scope","run","expectedRoot","inputRoot","rel","dirHasJson","anaPath","loadConfig","inputs","scopeLabel","findInputs","ignoreFields","failed","blessed","inputUri","actual","canon","gp","goldenPath","serialize","deepEqual","removed","added","diffRecords","inputPath","rmrf","outJson","walkDir","relPosix","include","g","globMatch","exclude","cfgPath","ignore_fields","ka","stable","records","bag","stripped","eb","ab","sortKeys","re","moveDirection","newPassType","PassItem","library","inFolder","tokenizers","tokenizerTooltips","isTokenizer","fetchTooltip","isRuleFile","isPython","isFolder","isStub","isEnd","passItems","cleanpasses","newcontent","libraryFileCheck","getLibraryFile","addSpec","passStr","setPass","getPassItemFiles","getLastItemInFolder","folderItem","nlpFileName","tokenStr","clean","passItemUri","passString","passname","getPassByRow","getPassByNumber","passNumber","passCount","atBottom","getFolderPasses","cleanPasses","passes","currentPass","renamePass","newPassName","findPass","duplicatePass","dupePath","dupeItem","createPassItemFromFile","newpass","pi","pass","passPath","findPassByFilename","insertNewPass","newPass","foundItem","createNewPassFile","insertNewPassEnd","insertNewPythonPass","createPythonPassItem","createNewPythonFile","newfilepath","newPythonContent","py","newPassItem","createPassItemFolder","insertNewFolder","moveToFolderEnd","insertNewFolderEnd","deletePass","deletePassInSeqFile","foldersOnly","newPassContent","todayDate","today","username","passFileName","includeStubs","collect","findFilesWithExtension","infolder","getSequenceFile","getLibraryDirectory","saveType","saveActive","nextPass","movePass","UP","swapItems","nextTop","prevTop","DOWN","passesOne","passesTwo","totalPassCount","moveCount","prevNLP","itemOne","itemTwo","copyItem","swapAuxFiles","toItem","fromItem","oneFile","swapFile","twoFile","oneExists","twoExists","indent","includeTokFlag","choiceRulePasses","getSisterFiles","hasSisterFile","seqItems","compareSisters","filename1","filename2","getLibraryFiles","PassTree","openingFolder","hasPat","pnum","oneActive","hasFileType","anaName","getCurrentAnalyzerName","convertPatFiles","moveSequence","libraryUtilFuncs","libraryKBFuncs","libraryTreeFuncs","libraryLines","libraryLinesDictTokZ","libraryWhiteSpaces","insertLibraryPass","insertChosenPasses","insertSisterPass","insertCode","insertNew","insertDecl","insertRules","insertPython","insertPythonLibrary","pyDir","scripts","listLibraryPython","desc","renameTopComment","newLine","seedName","incrementEndNumber","neword","typePat","typeRec","typeOn","typeOff","renameToken","dicttok","dicttokz","chartok","cmltok","SequenceView","openPass","openTree","displayMatchedRules","openKB","searchTop","convertPatToNLP","insertOrphan","compareLibrary","searchFilesRecursively","traverseDirectory","currentDir","fromDirIn","makeAbbrevFolderName","sequence","toUri","fromUri","safeBlockFilename","kbFile","tUri","cuttoff","abbrev","orphanFlag","safeFilename","newFilePath","dotIndex","newNumber","front","nlpFilePath","passItemFromPath","seqName","findWord","finalMatches","matchFunctionLine","notMissing","isPythonItem","isFileType","setFileType","logfile","firefile","firedFile","kbfile","nlpStatusBarRun","nlpStatusBarText","nlpStatusBarDev","nlpStatusBarFired","nlpStatusBarRunMode","nlpStatusBarEngineVersion","nlpStatusBarVisualTextVersion","nlpStatusBarFilesVersion","nlpStatusBarAnalyzersVersion","FiredMode","NLPStatusBar","devMode","firedMode","FIRED","readRunModeConfig","createStatusBarItem","StatusBarAlignment","Left","Right","MIN_VALUE","chooseDev","chooseFired","toggleRunMode","openEngineVersionSettings","openVisualTextVersionSettings","openFilesVersionSettings","openAnalyzersVersionSettings","clickedAnalyzerButton","statusBarClick","taskKill","NLP_EXE","extensionDirectory","checkVTFilesVersion","emptyOp","checkAnalyzersVersion","setDevState","BUILT","setFiredState","updateDevState","getFiredMode","updateFiredState","updateTxxtFiles","setRunMode","writeRunModeConfig","updateRunModeState","nextRunMode","INTERPRETED","currentAnalyzerName","ana","compiledLibPath","hasCompiledLib","ConfigurationTarget","WorkspaceFolder","Global","namepath","updateEngineVersion","updateVisualTextVersion","updateFilesVersion","updateAnalyzerssVersion","repoVTFilesVersion","repoAnalyzersVersion","reason","measurements","post","isError","isTelemetryEnabled","machineId","session","sessionId","props","metrics","separatorType","textNormalized","sepNormalized","sepType","SEP_UNKNOWN","linesNormalized","filetype","nlpFileExts","selLines","selStartLine","selEndLine","choosePythonScript","getExtensionPath","runPythonCode","pythonScriptPath","endLine","newRang","deletes","del","getExtension","setStr","separation","SEQ","TXT","LOG","NLM","getBasename","counts_rn","counts_r","counts_n","SEP_RN","SEP_R","SEP_N","normalizeText","regReplace","unnormalizeText","normalized","numberOfLines","getLine","lineNumber","startsWithStr","getSeparatorLength","getSeparatorNormalized","getStartLine","fileHasNLines","liner","textItem","getTextFastLoad","hasTest","hasNonText","startTime","endTime","timeDiff","checkFileCount","fastAnswered","offMsg","setTextFastLoad","importFiles","TextView","showCollapseAll","analyzerCurrent","runRegressionItem","blessRegressionItem","fastLoad","allItems","deleteFileLogs","splitDir","propertiesFile","propertiesFolder","python","fastFlag","moveFileWithFolders","outputFolder","textUri","sizeStr","humanFileSize","size","counts","si","dp","thresh","foldername","askAnalyzeFolder","deleteFileOrFolderLogs","deleteFileLogDir","regressionAnalyzerDir","itemName","deleteFolderFileLogs","logDirs","getLogDirs","logPath","numFiles","fireds","Highlight","selectedTreeStr","HighlightFile","inputFile","selectedLines","parseTreeLines","tline","searchInDictionaries","gatherChildrenText","matchDictLine","sensitivity","treeLine","parseTreeLine","txt","getPassFromPath","lastIndent","ustart","uend","setFilesNames","parseBrackets","parseFireds","lineCharacterToAbsolute","firedNumber","findMatchByAbsolute","getFired","rulenum","ruleFileUri","ruleline","findSelectedTreeStr","absoluteRangeFromSelection","findTreeFileLines","genType","generateRuleFromStr","ruleStrOutput","passFilePath","ruleFromLines","ruleStrFinal","lastend","newRuleStr","nlpppSplitter","isint","nodeStr","charType","DIGIT","ALPHA","SPACE","SPECIAL","fired","firstTok","openTemporaryFile","tempDir","bracketCount","parens2","angle","angle2","getCharacterLength","textfile","absStart","absEnd","linecount","multiline","beforeStr","selStr","startb","endb","squares","parseBracketsRegex","curlies","startPattern","endPattern","tokencount","lenBracket","refire","lastTo","ufrom","uto","tts","firstChar","nextLine","writeFiredText","fileCreateTime","ctime","logDate","inputDate","textfire","byteText","TextEncoder","encode","hl","TextDecoder","decode","bt","between","tx","fileType","halfWidth","charWidth","assignStaggerRows","labelGap","maxRows","rowOf","sorted","rowRight","maxRow","hw","left","right","rows","countNodes","colWidth","rowHeight","margin","stagger","maxStaggerRows","isCollapsed","nextLeaf","byDepth","place","hasKids","collapsed","laidNode","laid","leaves","width","height","findNode","subtreeIds","internalOnly","openDepth","bigThreshold","maxFanout","indentOf","skipWs","skipWhitespace","roots","br","metaChunk","fields","assignIds","ind","layout","cls","hitW","treeUri","textDocuments","openGraph","showTreeGraph","subtreeText","showTreeGraphSelection","panelReady","pendingFlush","renderSvg","layoutTree","renderTreeSvg","inputFileForTree","treeFsPath","flush","webview","postMessage","svg","titleSuffix","createWebviewPanel","preserveFocus","enableScripts","retainContextWhenHidden","html","random","nonce","onDidDispose","onDidReceiveMessage","One","ed","TextEditorRevealType","InCenter","ensurePanel","parseTree","defaultCollapsed","tabGroups","tg","findIndex","tab","TabInputText","upStat","upOp","upType","upComp","upPush","VisualText","statusStrs","compStrs","EXTENSION_NAME","ICU1_WIN","ICU2_WIN","ICU3_WIN","NLPENGINE_FILES_ASSET","NLPENGINE_COMPILE_FILES_ASSET","NLPENGINE_REPO","VISUALTEXT_FILES_REPO","ANALYZERS_REPO","VISUALTEXT_FILES_ASSET","ANALYZERS_ASSET","GITHUB_REPOSITORY","GITHUB_RELEASE_LATEST","GITHUB_RELEASE_LATEST_DOWNLOAD","GITHUB_ENGINE_LATEST_RELEASE","GITHUB_ENGINE_LATEST_VERSION","GITHUB_VISUALTEXT_FILES_LATEST_VERSION","GITHUB_ANALYZERS_LATEST_VERSION","Analyzer","FileOps","vtFilesVersion","analyzersVersion","askModify","autoUpdateFlag","homeDir","extensionDir","workspaceFold","modFile","extensionItems","latestExtIndex","lastestEngineIndex","updaterID","testItem","matchLines","misFiles","misLines","colorizeChecked","homedir","readConfig","getExtensionDirs","initSettings","outputPathFlag","regressFile","outputFile","testDiff","testResults","fileText","testText","numLines","mismatch","mismatches","lineFile","lineTest","modExists","preInfoFlag","plat","rootPath","getLatestExtPath","extensionParentDirectory","pushCheckVersions","updaterTimer","pushCheckEngineFiles","pushCheckVTFiles","pushCheckAnalyzerFiles","addUpdateOperation","BACK","UNZIP","START","CHECK_EXISTS","VT_FILES","ANALYZER_FILES","DOWNLOAD","ICU1","ICU2","ICU3","ENGINE_FILES","ENGINE_COMPILE_FILES","pushDeleteEngineFiles","pushDeleteVTFiles","pushDeleteAnalyzers","pushDownloadEngineFiles","pushDownloadVTFiles","pushDownloadAnalyzers","opIn","component","remote","folders","libFilenames","nlpExe","zipFiles","repo","engDir","linuxZipName","versionMatch","libRelease","lib","versionFromPath","allDone","CANCEL","endDir","missingOne","pathPopulated","isCompVersion","VERSION","unzip","updateVersion","checkExeVersion","setVTFilesVersion","setAnalyzersVersion","fetchExeVersion","checkEngineVersionRepo","newerVersion","FRONT","newer","exeVersion","repoVersion","versionCompare","statusFlag","checkVTFilesVersionRepo","currentVersion","getVTFilesVersion","checkAnalyzersVersionRepo","getAnalyzersVersion","downloader","st","moveIntoPlace","extractArchive","useTar","tryExtractZip","why","WINDIR","windowsHide","vtFileDir","isLinuxExeZip","UNZIP_TIMEOUT_MS","_resolve","srcRoot","subfolder","saveit","currAnalyzer","setCurrentAnalyzer","saveCurrentAnalyzer","ensureExists","toFile","fromFile","configAutoUpdate","configFindUsername","configAnalzyerDirectory","configCurrentAnalzyer","failedWarning","findExtensionIndex","extDir","version1","version2","toks1","toks2","v1","trimV","v2","visualTextFilesDirectory","settled","finish","latestVersion","latest","analyzerDirectory","testForLogs","getAnalyzersRecursive","anas","vtDir","vtDirName","hasLogFiles","setUpdateEngine","updateEngine","updateVTFiles","updateAnalyzersFiles","overwrite","extensionUri","settingsObj1","settingsObj2","mergedObj","platformCmd","createPanel","helpDir","displayHTML","specFlag","analyzerFolderListRecurse","seq","baseUpper","protectedFiles","startsWithNumber","convertUriToStr","wrapper","newBuffer","zlib","fd_slicer","fromFd","decodeStrings","validateEntrySizes","strictFileNames","defaultCallback","fstat","fromRandomAccessReader","reader","totalSize","bufferSize","eocdrWithoutCommentSize","bufferReadStart","readAndAssertNoEof","readUInt32LE","eocdrBuffer","diskNumber","readUInt16LE","entryCount","centralDirectoryOffset","commentLength","expectedCommentLength","decodeBuffer","ZipFile","zip64EocdlBuffer","zip64EocdlOffset","zip64EocdrOffset","readUInt64LE","zip64EocdrBuffer","emitError","readEntryCursor","entriesRead","emittedError","_readEntry","emitErrorAndAutoClose","Entry","dosDateTimeToDate","validateFileName","AssertByteCountStream","byteCount","actualByteCount","expectedByteCount","RandomAccessReader","RefUnrefFilter","unreffedYet","isUtf8","lower32","fromBuffer","versionNeededToExtract","generalPurposeBitFlag","compressionMethod","lastModFileTime","lastModFileDate","compressedSize","uncompressedSize","fileNameLength","extraFieldLength","fileCommentLength","internalFileAttributes","relativeOffsetOfLocalHeader","fileCommentStart","extraFieldBuffer","extraFields","headerId","dataSize","dataStart","dataEnd","dataBuffer","fileComment","zip64EiefBuffer","extraField","readUInt8","oldNameCrc32","expectedCompressedSize","isEncrypted","validateFileNameOptions","relativeStart","relativeEnd","decrypt","isCompressed","decompress","localFileHeaderEnd","fileDataStart","fileDataEnd","endpointStream","inflateFilter","createInflateRaw","unpipe","getLastModDate","_flush","emptyStream","_readStreamForRange","refUnrefFilter","byteCounter","allocUnsafe","require","MergedStream","validateStream","onMergedStreamFinished","endWhenStreamsDone","passThroughStream","aborted","onFinished","remove","updateMaxListeners","PASSTHROUGH_LISTENERS_COUNT","controller","AbortController","onMergedStreamEnd","onInputStreamsUnpipe","signal","cleanup","unpipedStream","unpipeEvent","PASSTHROUGH_LISTENERS_PER_STREAM","afterMergedStreamFinished","onInputStreamEnd","onInputStreamUnpipe","abortStream","isAbortError","errorStream","maxListeners","getMaxListeners","isType","fsStatType","statsMethodName","isTypeSync","isDirectorySync","urlOrPath","fileURLToPath","slash","defaultIgnoredDirectories","ignoreFilesGlobOptions","getIsIgnoredPredicate","flatMap","applyBaseToPattern","parseIgnoreFile","fileOrDirectory","toRelativePath","normalizeOptions","normalizePathForDirectoryGlob","getDirectoryGlob","directoryPath","extensionGlob","directoryToGlob","directoryPaths","directoryToGlobSync","toPatternsArray","checkCwdOption","expandDirectories","normalizeArguments","function_","normalizeArgumentsSync","getIgnoreFilesPatterns","ignoreFiles","gitignore","ignoreFilesPatterns","createFilterFunction","isIgnoredByIgnoreFiles","getFilterSync","isIgnoredByIgnoreFilesSync","fastGlobResult","pathKey","unionFastGlobResults","convertNegativePatterns","ignorePattern","normalizeExpandDirectoriesOption","globTasks","directoryToGlobOptions","generateTasksSync","directoryToGlobSyncOptions","globbySync","readableObjectMode","highWaterMarks","readableHighWaterMark","getHighWaterMark","writableHighWaterMark","mergeStreams","pMapSkip","PresentableError","isPresentable","safeCheck","path_","isPathCwd","childPath","parentPath","relation","isPathInside","normalizePatterns","deleteAsync","dryRun","totalCount","deletedCount","percent","removedFiles","iterable","mapper","stopOnError","resolve_","reject_","iterator","isSafeInteger","skippedIndexesMap","isRejected","isResolved","isIterableDone","resolvingCount","currentIndex","signalListener","removeEventListener","addEventListener","nextItem","AggregateError","pureResult","pMap","extendStatics","setPrototypeOf","__extends","__","__assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__esDecorate","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","descriptor","addInitializer","__runInitializers","useValue","__propKey","__setFunctionName","__metadata","metadataKey","metadataValue","metadata","__generator","sent","trys","ops","Iterator","verb","__createBinding","k2","__exportStar","__values","__read","ar","__spread","__spreadArrays","il","jl","__spreadArray","pack","__await","__asyncGenerator","AsyncIterator","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__setModuleDefault","ownKeys","__importStar","__classPrivateFieldGet","receiver","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","dispose","asyncDispose","_SuppressedError","SuppressedError","suppressed","__disposeResources","fail","hasError","__rewriteRelativeImportExtension","preserveJsx","tsx","cm","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","definition","toStringTag","nmd","registerFormatter","registerLanguageFeatures","registerEngineDiagnostics","registerTreeGraph","activate","onWillSaveTextDocument","waitUntil"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"extension.js","mappings":"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Y,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAOF,SAASC,EAAanI,GACpB,GAAIiI,EAAOG,SAASpI,GAClB,OAAOA,EAGT,IAAIqI,EACwB,mBAAjBJ,EAAOK,OACS,mBAAhBL,EAAOM,KAElB,GAAqB,iBAAVvI,EACT,OAAOqI,EAAkBJ,EAAOK,MAAMtI,GAAS,IAAIiI,EAAOjI,GAEvD,GAAqB,iBAAVA,EACd,OAAOqI,EAAkBJ,EAAOM,KAAKvI,GAAS,IAAIiI,EAAOjI,GAGzD,MAAM,IAAI3N,MAAM,4DACO2N,EAE3B,CAQA,SAASwI,EAAOC,EAAKC,GACnBD,EAAMN,EAAaM,GACfR,EAAOG,SAASM,KAClBA,EAAWA,EAASC,aAAa,IAGnC,IADA,IAAIC,GAAoB,EAAZF,EACHd,EAAI,EAAGA,EAAIa,EAAIzJ,OAAQ4I,IAC9BgB,EAAMV,EAA2B,KAAhBU,EAAMH,EAAIb,KAAegB,IAAQ,EAEpD,OAAe,EAAPA,CACV,CAEA,SAASC,IACP,OAnBoBtB,EAmBAiB,EAAOM,MAAM,KAAMhO,YAlBnCiO,EAAMZ,EAAa,IACnBa,aAAazB,EAAK,GACfwB,EAHT,IAAsBxB,EAChBwB,CAmBN,CA7C0B,oBAAfE,aACTf,EAAY,IAAIe,WAAWf,IA6C7BW,EAAMK,OAAS,WACb,OAAOV,EAAOM,MAAM,KAAMhO,UAC5B,EACA+N,EAAMM,SAAW,WACf,OAAOX,EAAOM,MAAM,KAAMhO,aAAe,CAC3C,EAEA0E,EAAOvO,QAAU4X,C,cC9GjB,IAAIO,EAAU,EAAQ,MAClBC,EAAc,EAAQ,MAE1BD,EAAQpW,KAAOqW,EAEf7J,EAAOvO,QAAUmY,C,cCLjB,IAAI/X,EAAK,EAAQ,MACbgC,EAAO,EAAQ,MASnB,SAAS+V,EAAQb,EAAMe,EAAIzM,EAAStJ,GACX,mBAAZsJ,IACLtJ,EAMFsJ,EAAU,CACRnC,OAAQmC,IANVtJ,EAAWsJ,EACXA,EAAU,CACRnC,OAAQ,WAAa,OAAO,CAAM,KAQjB,mBAAbnH,IACRA,EAAW,WAAY,QAEG,IAAlBsJ,EAAQ0M,QAChB1M,EAAQ0M,OAAQ,GAElB1M,EAAQnC,OAAmC,mBAAnBmC,EAAQnC,OAAwBmC,EAAQnC,OAAS,SAAS8O,EAAO7O,EAAU8O,GACjG,OAAO5M,EAAQnC,MACjB,EACArJ,EAAGC,MAAMiX,EAAM,SAASpK,EAAKhJ,GAC3B,GAAIgJ,EACF5K,EAAS4K,OACJ,CACL,IAAIuL,EAAYvU,EAAM0B,cAAgB,YACpC1B,EAAM4B,SAAW,OACjB5B,EAAMF,iBAAmB,eACzB,GACE0U,EAAQ9M,EAAQnC,OAAOgP,EAAWnB,EAAMlV,EAAKuW,SAASrB,IACxC,cAAdmB,GAA2C,iBAAdA,EAE5BC,EACDtY,EAAGE,KAAK+X,EAAI,SAASnL,GAChBA,EACe,WAAbA,EAAIG,KACLjN,EAAGwY,MAAMP,EAAI,SAASnL,GACjBA,EACD5K,EAAS4K,IAETtB,EAAQlB,OAASyF,QAAQC,IAAI,MAAQiI,GACrCQ,EAAQR,EAAIzM,EAAS1H,EAAO,SAASgJ,GAChCA,EACD5K,EAAS4K,GAET4L,EAAcxB,EAAMe,EAAIzM,EAAStJ,EAErC,GAEJ,GAEAA,EAAS4K,GAGX2L,EAAQR,EAAIzM,EAAS1H,EAAO,SAASgJ,GAChCA,EACD5K,EAAS4K,GAET4L,EAAcxB,EAAMe,EAAIzM,EAAStJ,EAErC,EAEJ,GAEAA,IAEM4B,EAAM4B,SAEX4S,EACE9M,EAAQ0M,MACTS,EAAUzB,EAAMe,EAAIzM,EAAS1H,EAAO5B,GAEpClC,EAAGE,KAAK+X,EAAI,SAASnL,GAChBA,EACe,WAAbA,EAAIG,KACL0L,EAAUzB,EAAMe,EAAIzM,EAAS1H,EAAO5B,GAEpCA,EAAS4K,GAGX5K,GAEJ,GAGFA,IAGFA,EAAS,IAAIlB,MAAM,kBAAmBkW,GAE1C,CACF,EACF,CAEA,SAASwB,EAAcxB,EAAMe,EAAIzM,EAAStJ,GACxClC,EAAGK,QAAQ6W,EAAM,SAASpK,EAAK8L,GAC1B9L,EACD5K,EAAS4K,GAET+L,EAAcD,EAAO1B,EAAMe,EAAIzM,EAAStJ,EAE5C,EACF,CAEA,SAAS2W,EAAcD,EAAO1B,EAAMe,EAAIzM,EAAStJ,GAC/C,GAAoB,IAAjB0W,EAAMjL,OACPzL,EAAS,UACJ,CACL,IAAI4W,EAAIF,EAAMlD,QACdqC,EAAQ/V,EAAKuH,KAAK2N,EAAM4B,GAAI9W,EAAKuH,KAAK0O,EAAIa,GAAItN,EAAS,SAASsB,GAC3DA,EACD5K,EAAS4K,GAET+L,EAAcD,EAAO1B,EAAMe,EAAIzM,EAAStJ,EAE5C,EACF,CACF,CAkBA,SAASyW,EAAUzB,EAAMe,EAAIzM,EAAS1H,EAAO5B,GAC3ClC,EAAG+Y,SAAS7B,EAAM,SAAU,SAASpK,EAAKkM,GACrClM,EACD5K,EAAS4K,GAET9M,EAAG2Y,UAAUV,EAAIe,EAAM,SAAU,SAASlM,GACrCA,EACD5K,EAAS4K,IAETtB,EAAQlB,OAASyF,QAAQC,IAAI,MAAQiI,GACrCQ,EAAQR,EAAIzM,EAAS1H,EAAO5B,GAEhC,EAEJ,EACF,CAEA,SAASuW,EAAQK,EAAGtN,EAAS1H,EAAO5B,GAC/BsJ,EAAQ0M,MAlCb,SAAeY,EAAGG,EAAM/W,GACnB+W,EACDjZ,EAAGkZ,MAAMJ,EAAGG,EAAM/W,GAElBA,GAEJ,CA6BIgX,CAAMJ,GAAoB,IAAjBtN,EAAQyN,KAAgBnV,EAAMmV,KAAOzN,EAAQyN,KAAM,SAASnM,GAChEA,EACD5K,EAAS4K,GA7BjB,SAAgBgM,EAAGG,EAAM/W,GACpB+W,EACDjZ,EAAGmZ,OAAOL,EAAGG,EAAKG,MAAOH,EAAKI,MAAOnX,GAErCA,GAEJ,CAyBQiX,CAAOL,GAAsB,IAAnBtN,EAAQ2N,OAAkB,CAClCC,MAAOtV,EAAMsV,MACbC,MAAOvV,EAAMuV,OACX7N,EAAQ2N,OAAQjX,EAExB,GAEAA,GAEJ,CAEAiM,EAAOvO,QAAUmY,C,cCpLjB,IAAI/X,EAAK,EAAQ,MACbgC,EAAO,EAAQ,MASnB,SAASgW,EAAYd,EAAMe,EAAIzM,GACN,mBAAZA,IACTA,EAAU,CACRnC,OAAQmC,SAGU,IAAZA,IAAyBA,EAAU,CAAC,QAClB,IAAlBA,EAAQ0M,QAChB1M,EAAQ0M,OAAQ,GAElB1M,EAAQnC,OAAmC,mBAAnBmC,EAAQnC,OAAwBmC,EAAQnC,OAAS,SAAS8O,EAAO7O,EAAU8O,GACjG,OAAO5M,EAAQnC,MACjB,EACA,IAAIvF,EAAQ9D,EAAGG,UAAU+W,GACrBmB,EAAYvU,EAAM0B,cAAgB,YACpC1B,EAAM4B,SAAW,OACjB5B,EAAMF,iBAAmB,eACzB,GACE0U,EAAQ9M,EAAQnC,OAAOgP,EAAWnB,EAAMlV,EAAKuW,SAASrB,IAC1D,GAAkB,cAAdmB,GAA2C,iBAAdA,GAE/B,GAAGC,EAAO,CACR,IACEtY,EAAGI,SAAS6X,EACd,CAAE,MAAMnL,GACN,GAAgB,WAAbA,EAAIG,KAIL,MAAMH,EAHN9M,EAAGsZ,UAAUrB,GACbzM,EAAQlB,OAASyF,QAAQC,IAAI,MAAQiI,EAIzC,CACAsB,EAAYtB,EAAIzM,EAAS1H,GAyB/B,SAA2BoT,EAAMe,EAAIzM,GAEnCgO,EADYxZ,EAAGM,YAAY4W,GACFA,EAAMe,EAAIzM,EACrC,CA3BMiO,CAAkBvC,EAAMe,EAAIzM,EAC9B,MACK,KAAG1H,EAAM4B,SAkBd,MAAM,IAAI1E,MAAM,kBAAmBkW,GAhBnC,GAAGoB,EACD,GAAG9M,EAAQ0M,MACTwB,EAAcxC,EAAMe,EAAIzM,EAAS1H,QAEjC,IACE9D,EAAGI,SAAS6X,EACd,CAAE,MAAMnL,GACN,GAAgB,WAAbA,EAAIG,KAGL,MAAMH,EAFN4M,EAAcxC,EAAMe,EAAIzM,EAAS1H,EAIrC,CAKN,CACF,CAOA,SAAS0V,EAAkBZ,EAAO1B,EAAMe,EAAIzM,GAC1C,GAAoB,IAAjBoN,EAAMjL,OAAc,OAAO,EAC9B,IAAImL,EAAIF,EAAMlD,QACdsC,EAAYhW,EAAKuH,KAAK2N,EAAM4B,GAAI9W,EAAKuH,KAAK0O,EAAIa,GAAItN,GAClDgO,EAAkBZ,EAAO1B,EAAMe,EAAIzM,EACrC,CAEA,SAASkO,EAAcxC,EAAMe,EAAIzM,EAAS1H,GACxC9D,EAAG0Z,cAAczB,EAAIjY,EAAG2Z,aAAazC,EAAM,UAAW,UACtD1L,EAAQlB,OAASyF,QAAQC,IAAI,MAAQiI,GACrCsB,EAAYtB,EAAIzM,EAAS1H,EAC3B,CAEA,SAASyV,EAAYT,EAAGtN,EAAS1H,EAAO5B,GACtC,GAAGsJ,EAAQ0M,MAAO,CAChB,IAAIe,GAAwB,IAAjBzN,EAAQyN,KAAgBnV,EAAMmV,KAAOzN,EAAQyN,KACpDE,GAA4B,IAAnB3N,EAAQ2N,OAAkB,CACrCC,MAAOtV,EAAMsV,MACbC,MAAOvV,EAAMuV,OACX7N,EAAQ2N,OACZF,GAAQjZ,EAAG4Z,UAAUd,EAAGG,GACxBE,GAAUnZ,EAAG6Z,WAAWf,EAAGK,EAAOC,MAAOD,EAAOE,MAClD,CACA,OAAO,CACT,CAEAlL,EAAOvO,QAAUoY,C,cC5FjBpY,EAAQka,WA8IR,SAAoBzJ,GAQnB,GAPAA,EAAK,IAAMtL,KAAKgV,UAAY,KAAO,IAClChV,KAAKiV,WACJjV,KAAKgV,UAAY,MAAQ,KAC1B1J,EAAK,IACJtL,KAAKgV,UAAY,MAAQ,KAC1B,IAAM5L,EAAOvO,QAAQqa,SAASlV,KAAKmV,OAE/BnV,KAAKgV,UACT,OAGD,MAAMI,EAAI,UAAYpV,KAAKqV,MAC3B/J,EAAK0F,OAAO,EAAG,EAAGoE,EAAG,kBAKrB,IAAIlF,EAAQ,EACRoF,EAAQ,EACZhK,EAAK,GAAGiK,QAAQ,cAAeC,IAChB,OAAVA,IAGJtF,IACc,OAAVsF,IAGHF,EAAQpF,MAIV5E,EAAK0F,OAAOsE,EAAO,EAAGF,EACvB,EA9KAva,EAAQ4a,KAgMR,SAAcC,GACb,IACKA,EACH7a,EAAQ8a,QAAQC,QAAQ,QAASF,GAEjC7a,EAAQ8a,QAAQE,WAAW,QAE7B,CAAE,MAAOtW,GAGT,CACD,EA1MA1E,EAAQib,KAkNR,WACC,IAAIC,EACJ,IACCA,EAAIlb,EAAQ8a,QAAQK,QAAQ,UAAYnb,EAAQ8a,QAAQK,QAAQ,QACjE,CAAE,MAAOzW,GAGT,CAOA,OAJKwW,GAAwB,oBAAZla,SAA2B,QAASA,UACpDka,EAAIla,QAAQoa,IAAIC,OAGVH,CACR,EAhOAlb,EAAQma,UAyGR,WAIC,GAAsB,oBAAXmB,QAA0BA,OAAOta,UAAoC,aAAxBsa,OAAOta,QAAQqP,MAAuBiL,OAAOta,QAAQua,QAC5G,OAAO,EAIR,GAAyB,oBAAdC,WAA6BA,UAAUC,WAAaD,UAAUC,UAAUC,cAAcf,MAAM,yBACtG,OAAO,EAGR,IAAIgB,EAKJ,MAA4B,oBAAbC,UAA4BA,SAASC,iBAAmBD,SAASC,gBAAgBC,OAASF,SAASC,gBAAgBC,MAAMC,kBAEpH,oBAAXT,QAA0BA,OAAOnL,UAAYmL,OAAOnL,QAAQ6L,SAAYV,OAAOnL,QAAQ8L,WAAaX,OAAOnL,QAAQ+L,QAGrG,oBAAdV,WAA6BA,UAAUC,YAAcE,EAAIH,UAAUC,UAAUC,cAAcf,MAAM,oBAAsBpZ,SAASoa,EAAE,GAAI,KAAO,IAE/H,oBAAdH,WAA6BA,UAAUC,WAAaD,UAAUC,UAAUC,cAAcf,MAAM,qBACtG,EAlIA3a,EAAQ8a,QA4OR,WACC,IAGC,OAAOqB,YACR,CAAE,MAAOzX,GAGT,CACD,CArPkB0X,GAClBpc,EAAQmH,QAAU,MACjB,IAAIkV,GAAS,EAEb,MAAO,KACDA,IACJA,GAAS,EACTlM,QAAQmM,KAAK,0IAGf,EATiB,GAelBtc,EAAQuc,OAAS,CAChB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAyFDvc,EAAQoQ,IAAMD,QAAQzF,OAASyF,QAAQC,KAAO,MAAS,GAkEvD7B,EAAOvO,QAAU,EAAQ,IAAR,CAAoBA,GAErC,MAAM,WAACwc,GAAcjO,EAAOvO,QAM5Bwc,EAAWC,EAAI,SAAU1Q,GACxB,IACC,OAAO2Q,KAAKhO,UAAU3C,EACvB,CAAE,MAAOrH,GACR,MAAO,+BAAiCA,EAAMiY,OAC/C,CACD,C,aCoBApO,EAAOvO,QA7RP,SAAeob,GAqDd,SAASwB,EAAYxC,GACpB,IAAIyC,EAEAC,EACAC,EAFAC,EAAiB,KAIrB,SAAStS,KAAS+F,GAEjB,IAAK/F,EAAMuS,QACV,OAGD,MAAMC,EAAOxS,EAGPyS,EAAO7b,OAAO,IAAI8b,MAClBC,EAAKF,GAAQN,GAAYM,GAC/BD,EAAK5C,KAAO+C,EACZH,EAAK5M,KAAOuM,EACZK,EAAKC,KAAOA,EACZN,EAAWM,EAEX1M,EAAK,GAAKmM,EAAYU,OAAO7M,EAAK,IAEX,iBAAZA,EAAK,IAEfA,EAAK8M,QAAQ,MAId,IAAIlI,EAAQ,EACZ5E,EAAK,GAAKA,EAAK,GAAGiK,QAAQ,gBAAiB,CAACC,EAAO6C,KAElD,GAAc,OAAV7C,EACH,MAAO,IAERtF,IACA,MAAMoI,EAAYb,EAAYJ,WAAWgB,GACzC,GAAyB,mBAAdC,EAA0B,CACpC,MAAMC,EAAMjN,EAAK4E,GACjBsF,EAAQ8C,EAAUjP,KAAK0O,EAAMQ,GAG7BjN,EAAK0F,OAAOd,EAAO,GACnBA,GACD,CACA,OAAOsF,IAIRiC,EAAY1C,WAAW1L,KAAK0O,EAAMzM,IAEpByM,EAAK9M,KAAOwM,EAAYxM,KAChCyH,MAAMqF,EAAMzM,EACnB,CAgCA,OA9BA/F,EAAM0P,UAAYA,EAClB1P,EAAMyP,UAAYyC,EAAYzC,YAC9BzP,EAAM8P,MAAQoC,EAAYe,YAAYvD,GACtC1P,EAAMkT,OAASA,EACflT,EAAMvD,QAAUyV,EAAYzV,QAE5BrH,OAAOC,eAAe2K,EAAO,UAAW,CACvCmT,YAAY,EACZC,cAAc,EACdC,IAAK,IACmB,OAAnBf,EACIA,GAEJF,IAAoBF,EAAY/B,aACnCiC,EAAkBF,EAAY/B,WAC9BkC,EAAeH,EAAYK,QAAQ7C,IAG7B2C,GAERiB,IAAKjS,IACJiR,EAAiBjR,KAKa,mBAArB6Q,EAAYqB,MACtBrB,EAAYqB,KAAKvT,GAGXA,CACR,CAEA,SAASkT,EAAOxD,EAAW8D,GAC1B,MAAMC,EAAWvB,EAAYzX,KAAKiV,gBAAkC,IAAd8D,EAA4B,IAAMA,GAAa9D,GAErG,OADA+D,EAAS/N,IAAMjL,KAAKiL,IACb+N,CACR,CAuCA,SAASC,EAAgBC,EAAQC,GAChC,IAAIC,EAAc,EACdC,EAAgB,EAChBC,GAAa,EACbC,EAAa,EAEjB,KAAOH,EAAcF,EAAOtQ,QAC3B,GAAIyQ,EAAgBF,EAASvQ,SAAWuQ,EAASE,KAAmBH,EAAOE,IAA4C,MAA5BD,EAASE,IAEnE,MAA5BF,EAASE,IACZC,EAAYD,EACZE,EAAaH,EACbC,MAEAD,IACAC,SAEK,KAAmB,IAAfC,EAMV,OAAO,EAJPD,EAAgBC,EAAY,EAC5BC,IACAH,EAAcG,CAGf,CAID,KAAOF,EAAgBF,EAASvQ,QAAsC,MAA5BuQ,EAASE,IAClDA,IAGD,OAAOA,IAAkBF,EAASvQ,MACnC,CAgEA,OAzRA6O,EAAYlS,MAAQkS,EACpBA,EAAYza,QAAUya,EACtBA,EAAYU,OAsQZ,SAAgBI,GACf,OAAIA,aAAetc,MACXsc,EAAI9S,OAAS8S,EAAIf,QAElBe,CACR,EA1QAd,EAAY+B,QA8NZ,WACC,MAAM9D,EAAa,IACf+B,EAAYpY,SACZoY,EAAYgC,MAAMtb,IAAI8W,GAAa,IAAMA,IAC3CzQ,KAAK,KAEP,OADAiT,EAAYiC,OAAO,IACZhE,CACR,EApOA+B,EAAYiC,OAsJZ,SAAgBhE,GACf+B,EAAYhC,KAAKC,GACjB+B,EAAY/B,WAAaA,EAEzB+B,EAAYpY,MAAQ,GACpBoY,EAAYgC,MAAQ,GAEpB,MAAMzd,GAA+B,iBAAf0Z,EAA0BA,EAAa,IAC3DtE,OACAmE,QAAQ,OAAQ,KAChBvZ,MAAM,KACNsI,OAAOiE,SAET,IAAK,MAAMoR,KAAM3d,EACF,MAAV2d,EAAG,GACNlC,EAAYgC,MAAM9X,KAAKgY,EAAGnJ,MAAM,IAEhCiH,EAAYpY,MAAMsC,KAAKgY,EAG1B,EAzKAlC,EAAYK,QA4OZ,SAAiBzZ,GAChB,IAAK,MAAMub,KAAQnC,EAAYgC,MAC9B,GAAIR,EAAgB5a,EAAMub,GACzB,OAAO,EAIT,IAAK,MAAMD,KAAMlC,EAAYpY,MAC5B,GAAI4Z,EAAgB5a,EAAMsb,GACzB,OAAO,EAIT,OAAO,CACR,EAzPAlC,EAAYvC,SAAW,EAAQ,MAC/BuC,EAAYzV,QA4QZ,WACCgJ,QAAQmM,KAAK,wIACd,EA5QAxc,OAAOkf,KAAK5D,GAAKlF,QAAQ+I,IACxBrC,EAAYqC,GAAO7D,EAAI6D,KAOxBrC,EAAYpY,MAAQ,GACpBoY,EAAYgC,MAAQ,GAOpBhC,EAAYJ,WAAa,CAAC,EAkB1BI,EAAYe,YAVZ,SAAqBvD,GACpB,IAAI8E,EAAO,EAEX,IAAK,IAAIrK,EAAI,EAAGA,EAAIuF,EAAUrM,OAAQ8G,IACrCqK,GAASA,GAAQ,GAAKA,EAAQ9E,EAAU+E,WAAWtK,GACnDqK,GAAQ,EAGT,OAAOtC,EAAYL,OAAOtH,KAAKmK,IAAIF,GAAQtC,EAAYL,OAAOxO,OAC/D,EA6OA6O,EAAYiC,OAAOjC,EAAY3B,QAExB2B,CACR,C,cC5RuB,oBAAZ5b,SAA4C,aAAjBA,QAAQqP,OAA2C,IAApBrP,QAAQqe,SAAoBre,QAAQua,OACxGhN,EAAOvO,QAAU,EAAjB,MAEAuO,EAAOvO,QAAU,EAAjB,K,cCJD,MAAMsf,EAAM,EAAQ,MACdC,EAAO,EAAQ,MAMrBvf,EAAQie,KA2NR,SAAcvT,GACbA,EAAM8U,YAAc,CAAC,EAErB,MAAMR,EAAOlf,OAAOkf,KAAKhf,EAAQwf,aACjC,IAAK,IAAI3K,EAAI,EAAGA,EAAImK,EAAKjR,OAAQ8G,IAChCnK,EAAM8U,YAAYR,EAAKnK,IAAM7U,EAAQwf,YAAYR,EAAKnK,GAExD,EAjOA7U,EAAQoQ,IAoLR,YAAgBK,GACf,OAAOzP,QAAQye,OAAOC,MAAMH,EAAKI,kBAAkB3f,EAAQwf,eAAgB/O,GAAQ,KACpF,EArLAzQ,EAAQka,WAyJR,SAAoBzJ,GACnB,MAAO2J,UAAW5W,EAAI,UAAE2W,GAAahV,KAErC,GAAIgV,EAAW,CACd,MAAMI,EAAIpV,KAAKqV,MACToF,EAAY,OAAcrF,EAAI,EAAIA,EAAI,OAASA,GAC/CvK,EAAS,KAAK4P,OAAepc,SAEnCiN,EAAK,GAAKT,EAASS,EAAK,GAAGtP,MAAM,MAAMwI,KAAK,KAAOqG,GACnDS,EAAK3J,KAAK8Y,EAAY,KAAOrR,EAAOvO,QAAQqa,SAASlV,KAAKmV,MAAQ,OACnE,MACC7J,EAAK,IAKFzQ,EAAQwf,YAAYK,SAChB,IAED,IAAIzC,MAAO0C,cAAgB,KARXtc,EAAO,IAAMiN,EAAK,EAE1C,EArKAzQ,EAAQ4a,KA4LR,SAAcC,GACTA,EACH7Z,QAAQoa,IAAIC,MAAQR,SAIb7Z,QAAQoa,IAAIC,KAErB,EAnMArb,EAAQib,KA4MR,WACC,OAAOja,QAAQoa,IAAIC,KACpB,EA7MArb,EAAQma,UA0IR,WACC,MAAO,WAAYna,EAAQwf,YAC1B9R,QAAQ1N,EAAQwf,YAAYjD,QAC5B+C,EAAIS,OAAO/e,QAAQye,OAAOO,GAC5B,EA7IAhgB,EAAQmH,QAAUoY,EAAKU,UACtB,OACA,yIAODjgB,EAAQuc,OAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAEjC,IAGC,MAAM2D,EAAgB,EAAQ,MAE1BA,IAAkBA,EAAcT,QAAUS,GAAeC,OAAS,IACrEngB,EAAQuc,OAAS,CAChB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGH,CAAE,MAAO7X,GAET,CAQA1E,EAAQwf,YAAc1f,OAAOkf,KAAKhe,QAAQoa,KAAK3R,OAAOwV,GAC9C,WAAWmB,KAAKnB,IACrBvO,OAAO,CAAC2P,EAAKpB,KAEf,MAAMqB,EAAOrB,EACXsB,UAAU,GACV7E,cACAhB,QAAQ,YAAa,CAAC8F,EAAGC,IAClBA,EAAEC,eAIX,IAAIhD,EAAM1c,QAAQoa,IAAI6D,GAYtB,OAVCvB,IADG,2BAA2B0C,KAAK1C,KAEzB,6BAA6B0C,KAAK1C,KAE1B,SAARA,EACJ,KAEApc,OAAOoc,IAGd2C,EAAIC,GAAQ5C,EACL2C,GACL,CAAC,GA2FJ9R,EAAOvO,QAAU,EAAQ,IAAR,CAAoBA,GAErC,MAAM,WAACwc,GAAcjO,EAAOvO,QAM5Bwc,EAAWmE,EAAI,SAAU5U,GAExB,OADA5G,KAAKqa,YAAYjD,OAASpX,KAAKgV,UACxBoF,EAAKqB,QAAQ7U,EAAG5G,KAAKqa,aAC1Bre,MAAM,MACNmC,IAAIud,GAAOA,EAAItK,QACf5M,KAAK,IACR,EAMA6S,EAAWsE,EAAI,SAAU/U,GAExB,OADA5G,KAAKqa,YAAYjD,OAASpX,KAAKgV,UACxBoF,EAAKqB,QAAQ7U,EAAG5G,KAAKqa,YAC7B,C,cCtQA,IAAI9W,EAAO,EAAQ,MAEfqY,EAAO,WAAY,EAUnBC,EAAM,SAASC,EAAQhW,EAAM3I,GAChC,GAAoB,mBAAT2I,EAAqB,OAAO+V,EAAIC,EAAQ,KAAMhW,GACpDA,IAAMA,EAAO,CAAC,GAEnB3I,EAAWoG,EAAKpG,GAAYye,GAE5B,IAAIG,EAAKD,EAAOE,eACZC,EAAKH,EAAOI,eACZC,EAAWrW,EAAKqW,WAA+B,IAAlBrW,EAAKqW,UAAsBL,EAAOK,SAC/DC,EAAWtW,EAAKsW,WAA+B,IAAlBtW,EAAKsW,UAAsBN,EAAOM,SAC/DC,GAAY,EAEZC,EAAiB,WACfR,EAAOM,UAAUG,GACvB,EAEIA,EAAW,WACdH,GAAW,EACND,GAAUhf,EAASkM,KAAKyS,EAC9B,EAEIU,EAAQ,WACXL,GAAW,EACNC,GAAUjf,EAASkM,KAAKyS,EAC9B,EAEIW,EAAS,SAASC,GACrBvf,EAASkM,KAAKyS,EAAQY,EAAW,IAAIzgB,MAAM,2BAA6BygB,GAAY,KACrF,EAEI5U,EAAU,SAASC,GACtB5K,EAASkM,KAAKyS,EAAQ/T,EACvB,EAEI4U,EAAU,WACb9gB,QAAQ+gB,SAASC,EAClB,EAEIA,EAAkB,WACrB,IAAIR,EACJ,QAAIF,GAAcF,GAAOA,EAAGa,QAAUb,EAAGc,cACrCX,GAAcL,GAAOA,EAAGe,QAAUf,EAAGgB,gBAAzC,EAD6D5f,EAASkM,KAAKyS,EAAQ,IAAI7f,MAAM,mBAE9F,EAEI+gB,EAAY,WACflB,EAAO/U,IAAIzD,GAAG,SAAUiZ,EACzB,EAmBA,OAzEe,SAAST,GACxB,OAAOA,EAAOmB,WAAqC,mBAAjBnB,EAAOoB,KAC1C,CAsDKC,CAAUrB,IACbA,EAAOxY,GAAG,WAAYiZ,GACtBT,EAAOxY,GAAG,QAASqZ,GACfb,EAAO/U,IAAKiW,IACXlB,EAAOxY,GAAG,UAAW0Z,IAChBZ,IAAaL,IACvBD,EAAOxY,GAAG,MAAOgZ,GACjBR,EAAOxY,GAAG,QAASgZ,IA3DA,SAASR,GAC7B,OAAOA,EAAOsB,OAAStT,MAAMC,QAAQ+R,EAAOsB,QAAkC,IAAxBtB,EAAOsB,MAAMxU,MACpE,CA4DKyU,CAAevB,IAASA,EAAOxY,GAAG,OAAQmZ,GAE9CX,EAAOxY,GAAG,MAAOkZ,GACjBV,EAAOxY,GAAG,SAAUiZ,IACD,IAAfzW,EAAKvG,OAAiBuc,EAAOxY,GAAG,QAASwE,GAC7CgU,EAAOxY,GAAG,QAASqZ,GAEZ,WACNN,GAAY,EACZP,EAAOwB,eAAe,WAAYf,GAClCT,EAAOwB,eAAe,QAASX,GAC/Bb,EAAOwB,eAAe,UAAWN,GAC7BlB,EAAO/U,KAAK+U,EAAO/U,IAAIuW,eAAe,SAAUf,GACpDT,EAAOwB,eAAe,MAAOhB,GAC7BR,EAAOwB,eAAe,QAAShB,GAC/BR,EAAOwB,eAAe,SAAUf,GAChCT,EAAOwB,eAAe,OAAQb,GAC9BX,EAAOwB,eAAe,MAAOd,GAC7BV,EAAOwB,eAAe,QAASxV,GAC/BgU,EAAOwB,eAAe,QAASX,EAChC,CACD,EAEAvT,EAAOvO,QAAUghB,C,cC7FjB,MAAMtW,EAAQ,EAAQ,KAAR,CAAiB,gBAEzB,kBAAEgY,EAAmBC,SAAUviB,GAAO,EAAQ,MAC9CwiB,EAAY,EAAQ,MACpBxgB,EAAO,EAAQ,OACf,UAAEygB,GAAc,EAAQ,MACxB5B,EAAS,EAAQ,MACjB6B,EAAQ,EAAQ,MAEhBC,EAAUF,EAAUC,EAAMrN,MAC1BuN,EAAWH,EAAU5B,EAAO+B,UAElC,MAAMC,EACJ,WAAAhe,CAAaie,EAASjY,GACpB9F,KAAK+d,QAAUA,EACf/d,KAAK8F,KAAOA,CACd,CAEA,aAAMkY,GAMJ,OALAzY,EAAM,UAAWvF,KAAK+d,QAAS,YAAa/d,KAAK8F,MAEjD9F,KAAKie,cAAgBL,EAAQ5d,KAAK+d,QAAS,CAAEG,aAAa,IAC1Dle,KAAKme,UAAW,EAET,IAAIrV,QAAQ,CAACC,EAASE,KAC3BjJ,KAAKie,QAAQ3a,GAAG,QAASyE,IACvB/H,KAAKme,UAAW,EAChBlV,EAAOlB,KAET/H,KAAKie,QAAQG,YAEbpe,KAAKie,QAAQ3a,GAAG,QAAS,KAClBtD,KAAKme,WACR5Y,EAAM,2BACNwD,OAIJ/I,KAAKie,QAAQ3a,GAAG,QAAS3G,UAEvB,GAAIqD,KAAKme,SAEP,YADA5Y,EAAM,iBAAkB5G,EAAM0f,SAAU,CAAEhC,UAAWrc,KAAKme,WAM5D,GAFA5Y,EAAM,gBAAiB5G,EAAM0f,UAEzB1f,EAAM0f,SAASC,WAAW,aAE5B,YADAte,KAAKie,QAAQG,YAIf,MAAMG,EAAUthB,EAAKuhB,QAAQvhB,EAAKuH,KAAKxE,KAAK8F,KAAK2Y,IAAK9f,EAAM0f,WAE5D,UACQpjB,EAAGwY,MAAM8K,EAAS,CAAEG,WAAW,IAErC,MAAMC,QAAyB1jB,EAAG2jB,SAASL,GAG3C,GAFwBthB,EAAK4hB,SAAS7e,KAAK8F,KAAK2Y,IAAKE,GAEjC3iB,MAAMiB,EAAKiD,KAAK4e,SAAS,MAC3C,MAAM,IAAI7iB,MAAM,sBAAsB0iB,kCAAiDhgB,EAAM0f,kBAGzFre,KAAK+e,aAAapgB,GACxB4G,EAAM,sBAAuB5G,EAAM0f,UACnCre,KAAKie,QAAQG,WACf,CAAE,MAAOrW,GACP/H,KAAKme,UAAW,EAChBne,KAAKie,QAAQxN,QACbxH,EAAOlB,EACT,KAGN,CAEA,kBAAMgX,CAAcpgB,GAElB,GAAIqB,KAAKme,SAEP,YADA5Y,EAAM,4BAA6B5G,EAAM0f,SAAU,CAAEhC,UAAWrc,KAAKme,WAInEne,KAAK8F,KAAKpE,SACZ1B,KAAK8F,KAAKpE,QAAQ/C,EAAOqB,KAAKie,SAGhC,MAAMe,EAAO/hB,EAAKuH,KAAKxE,KAAK8F,KAAK2Y,IAAK9f,EAAM0f,UAGtCnK,EAAQvV,EAAMsgB,wBAA0B,GAAM,MAK9CC,EADQ,QAFD,MAGIhL,GACjB,IAAIiL,EAHU,QADD,MAIAjL,IAGRiL,GAASxgB,EAAM0f,SAASze,SAAS,OACpCuf,GAAQ,GAKV,MAAMC,EAASzgB,EAAM0gB,eAAiB,EACjCF,IAAOA,EAAoB,IAAXC,GAAiD,KAAjCzgB,EAAMsgB,wBAE3C1Z,EAAM,mBAAoB,CAAE8N,SAAU1U,EAAM0f,SAAUc,MAAOA,EAAOG,UAAWJ,IAE/E,MAAMK,EAAgD,IAArCvf,KAAKwf,iBAAiBtL,EAAMiL,GAGvCZ,EAAUY,EAAQH,EAAO/hB,EAAKuhB,QAAQQ,GAEtCS,EAAe,CAAEf,WAAW,GAMlC,GALIS,IACFM,EAAavL,KAAOqL,GAEtBha,EAAM,QAAS,CAAEkZ,IAAKF,KAAYkB,UAC5BxkB,EAAGwY,MAAM8K,EAASkB,GACpBN,EAAO,OAEX5Z,EAAM,sBAAuByZ,GAC7B,MAAMU,QAAmBhC,EAAU1d,KAAKie,QAAQ0B,eAAepf,KAAKP,KAAKie,SAAhDP,CAA0D/e,GAEnF,GAAIugB,EAAS,CACX,MAAMU,QAAanC,EAAUiC,GAC7Bna,EAAM,mBAAoBqa,EAAMZ,SAC1B/jB,EAAGikB,QAAQU,EAAMZ,EACzB,YACQnB,EAAS6B,EAAYnC,EAAkByB,EAAM,CAAE9K,KAAMqL,IAE/D,CAEA,gBAAAC,CAAkBK,EAAWV,GAC3B,IAAIjL,EAAO2L,EAsBX,OApBa,IAAT3L,IACEiL,GACEnf,KAAK8F,KAAKga,iBACZ5L,EAAO9X,SAAS4D,KAAK8F,KAAKga,eAAgB,KAGvC5L,IACHA,EAAO,OAGLlU,KAAK8F,KAAKia,kBACZ7L,EAAO9X,SAAS4D,KAAK8F,KAAKia,gBAAiB,KAGxC7L,IACHA,EAAO,OAKNA,CACT,EAGF9K,EAAOvO,QAAU8B,eAAgBohB,EAASjY,GAGxC,GAFAP,EAAM,4BAA6BO,EAAK2Y,MAEnCxhB,EAAK+iB,WAAWla,EAAK2Y,KACxB,MAAM,IAAIxiB,MAAM,+CAKlB,aAFMhB,EAAGwY,MAAM3N,EAAK2Y,IAAK,CAAEC,WAAW,IACtC5Y,EAAK2Y,UAAYxjB,EAAG2jB,SAAS9Y,EAAK2Y,KAC3B,IAAIX,EAAUC,EAASjY,GAAMkY,SACtC,C,2BC1KA,IAAIiC,EAAS,EAAQ,MACjBC,EAAmB,cAAsB1B,QACzC2B,EAAuC,UAA7B,kBAGVC,EAAY,MACZC,EAAY,kBACZC,EAAS,8BACT7O,EAAU,8BAQdrI,EAAOvO,QAAU,SAAoB6gB,EAAK5V,GAC1BnL,OAAOe,OAAO,CAAE6kB,iBAAiB,GAAQza,GAG3Cya,iBAAmBJ,GAAWzE,EAAI9V,QAhBpC,KAgBqD,IAC7D8V,EAAMA,EAAInG,QAAQ6K,EAjBV,MAqBNC,EAAUpF,KAAKS,KACjBA,GAtBQ,KA0BVA,GAAO,IAGP,GACEA,EAAMwE,EAAiBxE,SAChBuE,EAAOvE,IAAQ4E,EAAOrF,KAAKS,IAGpC,OAAOA,EAAInG,QAAQ9D,EAAS,KAC9B,C,2BCxCA,MAAM+O,EAAc,EAAQ,MACtBtf,EAAU,EAAQ,MAClBC,EAAW,EAAQ,KACnBC,EAAS,EAAQ,MACjBvE,EAAa,EAAQ,MACrBc,EAAQ,EAAQ,MACtBhB,eAAe8jB,EAASC,EAAQja,GAC5Bka,EAAoBD,GACpB,MAAME,EAAQC,EAASH,EAAQxf,EAAQlE,QAASyJ,GAC1CjH,QAAesJ,QAAQgY,IAAIF,GACjC,OAAOjjB,EAAMojB,MAAMjS,QAAQtP,EAC/B,CA2EA,SAASqhB,EAASH,EAAQM,EAAWva,GACjC,MAAMwa,EAAW,GAAG/W,OAAOwW,GACrBpjB,EAAW,IAAIT,EAAWG,QAAQyJ,GAClC/H,EAAQ8hB,EAAYU,SAASD,EAAU3jB,GACvC6jB,EAAW,IAAIH,EAAU1jB,GAC/B,OAAOoB,EAAMP,IAAIgjB,EAAS/jB,KAAM+jB,EACpC,CACA,SAASR,EAAoB/W,GAGzB,IAFe,GAAGM,OAAON,GACIwX,MAAOzd,GAAShG,EAAM0jB,OAAOC,SAAS3d,KAAUhG,EAAM0jB,OAAOE,QAAQ5d,IAE9F,MAAM,IAAIgM,UAAU,+DAE5B,EArFA,SAAW8Q,GAKP,SAAS7jB,EAAK8jB,EAAQja,GAClBka,EAAoBD,GACpB,MAAME,EAAQC,EAASH,EAAQtf,EAAOpE,QAASyJ,GAC/C,OAAO9I,EAAMojB,MAAMjS,QAAQ8R,EAC/B,CAEA,SAAS9E,EAAO4E,EAAQja,GACpBka,EAAoBD,GACpB,MAAME,EAAQC,EAASH,EAAQvf,EAASnE,QAASyJ,GAMjD,OAAO9I,EAAMme,OAAO0F,MAAMZ,EAC9B,CAyBA,IAAIa,EAaAC,EAzDJjB,EAASkB,KAAOlB,EAChBA,EAASmB,SAAWhlB,EACpB6jB,EAASoB,WAAa/F,EACtB2E,EAAS9jB,MAAQ8jB,EAMjBA,EAAS7jB,KAAOA,EAWhB6jB,EAAS3E,OAASA,EAOlB2E,EAASqB,cANT,SAAuBpB,EAAQja,GAC3Bka,EAAoBD,GACpB,MAAMO,EAAW,GAAG/W,OAAOwW,GACrBpjB,EAAW,IAAIT,EAAWG,QAAQyJ,GACxC,OAAO+Z,EAAYU,SAASD,EAAU3jB,EAC1C,EAOAmjB,EAASsB,iBALT,SAA0BrB,EAAQja,GAC9Bka,EAAoBD,GACpB,MAAMpjB,EAAW,IAAIT,EAAWG,QAAQyJ,GACxC,OAAO9I,EAAMqM,QAAQ+X,iBAAiBrB,EAAQpjB,EAClD,EAMAmjB,EAASuB,WAJT,SAAoBtB,GAEhB,OADAC,EAAoBD,GACb/iB,EAAMV,KAAKglB,OAAOvB,EAC7B,EAMAD,EAASyB,qBAJT,SAA8BxB,GAE1B,OADAC,EAAoBD,GACb/iB,EAAMV,KAAKilB,qBAAqBxB,EAC3C,EAGA,SAAWe,GAKPA,EAAMO,WAJN,SAAoBtB,GAEhB,OADAC,EAAoBD,GACb/iB,EAAMV,KAAKklB,gBAAgBzB,EACtC,EAMAe,EAAMS,qBAJN,SAA8BxB,GAE1B,OADAC,EAAoBD,GACb/iB,EAAMV,KAAKmlB,0BAA0B1B,EAChD,CAEH,CAXD,CAWGe,EAAQhB,EAASgB,QAAUhB,EAASgB,MAAQ,CAAC,IAEhD,SAAWC,GAKPA,EAAMM,WAJN,SAAoBtB,GAEhB,OADAC,EAAoBD,GACb/iB,EAAMV,KAAKolB,kBAAkB3B,EACxC,EAMAgB,EAAMQ,qBAJN,SAA8BxB,GAE1B,OADAC,EAAoBD,GACb/iB,EAAMV,KAAKqlB,4BAA4B5B,EAClD,CAEH,CAXD,CAWGgB,EAAQjB,EAASiB,QAAUjB,EAASiB,MAAQ,CAAC,GACnD,CAvED,CAuEGjB,IAAaA,EAAW,CAAC,IAe5BrX,EAAOvO,QAAU4lB,C,2BCpGjB9lB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ0nB,0BAA4B1nB,EAAQ2nB,4BAA8B3nB,EAAQ4nB,6BAA+B5nB,EAAQ6nB,8BAAgC7nB,EAAQ8nB,oBAAsB9nB,EAAQ+nB,uBAAyB/nB,EAAQqmB,cAAgB,EAChP,MAAMvjB,EAAQ,EAAQ,MAatB,SAASklB,EAAgBjZ,EAAOtM,GAC5B,IAAI2jB,EAAWrX,EAyBf,OAjBItM,EAASwlB,iBACT7B,EAAWtjB,EAAMqM,QAAQ+Y,iCAAiC9B,IAU1D3jB,EAAS0lB,gBACT/B,EAAWA,EAAS9iB,IAAK6L,GAAYA,EAAQ8U,SAAS,KAAO9U,EAAU,MAAMA,MAK1EiX,EAAS9iB,IAAK6L,GAAYrM,EAAMqM,QAAQiZ,uBAAuBjZ,GAC1E,CAOA,SAAS4Y,EAAuBM,EAAUC,EAAUC,GAChD,MAAM1kB,EAAQ,GACR2kB,EAAkC1lB,EAAMqM,QAAQsZ,mCAAmCJ,GACnFK,EAAiC5lB,EAAMqM,QAAQwZ,kCAAkCN,GACjFO,EAA+BhB,EAA6BY,GAC5DK,EAA8BjB,EAA6Bc,GAYjE,OAXA7kB,EAAMiD,QAAQ6gB,EAA4BiB,EAA8BN,EAAUC,IAK9E,MAAOM,EACPhlB,EAAMiD,KAAK4gB,EAA0B,IAAKgB,EAAgCJ,EAAUC,IAGpF1kB,EAAMiD,QAAQ6gB,EAA4BkB,EAA6BP,EAAUC,IAE9E1kB,CACX,CAEA,SAASikB,EAAoB1B,GACzB,OAAOtjB,EAAMqM,QAAQ2Y,oBAAoB1B,EAC7C,CAEA,SAASyB,EAA8BzB,EAAU0C,GAG7C,OAFiBhmB,EAAMqM,QAAQ4Z,oBAAoB3C,GAAU/W,OAAOyZ,GAC1CxlB,IAAIR,EAAMqM,QAAQ6Z,yBAEhD,CAEA,SAASpB,EAA6BxB,GAElC,OAAOA,EAAS1V,OAAO,CAACuY,EAAY9Z,KAChC,MAAMxG,EAAO7F,EAAMqM,QAAQ+Z,iBAAiB/Z,GAO5C,OANIxG,KAAQsgB,EACRA,EAAWtgB,GAAM7B,KAAKqI,GAGtB8Z,EAAWtgB,GAAQ,CAACwG,GAEjB8Z,GATG,CAAC,EAWnB,CAEA,SAAStB,EAA4BU,EAAUC,EAAUC,GACrD,OAAOzoB,OAAOkf,KAAKqJ,GAAU/kB,IAAKqF,GACvB+e,EAA0B/e,EAAM0f,EAAS1f,GAAO2f,EAAUC,GAEzE,CAEA,SAASb,EAA0B/e,EAAM0f,EAAUC,EAAUC,GACzD,MAAO,CACHA,UACAF,WACAC,WACA3f,OACAyd,SAAU,GAAG/W,OAAOgZ,EAAUC,EAAShlB,IAAIR,EAAMqM,QAAQga,2BAEjE,CA7FAnpB,EAAQqmB,SAXR,SAAkBtX,EAAOtM,GACrB,MAAM2jB,EAAW4B,EAAgBjZ,EAAOtM,GAClCqmB,EAASd,EAAgBvlB,EAASqmB,OAAQrmB,GAC1C2mB,EAAmBtB,EAAoB1B,GACvCiD,EAAmBxB,EAA8BzB,EAAU0C,GAC3DQ,EAAiBF,EAAiB3f,OAAQ0F,GAAYrM,EAAMqM,QAAQoa,gBAAgBpa,EAAS1M,IAC7F+mB,EAAkBJ,EAAiB3f,OAAQ0F,GAAYrM,EAAMqM,QAAQ+X,iBAAiB/X,EAAS1M,IAC/FgnB,EAAc1B,EAAuBuB,EAAgBD,GAAgC,GACrFK,EAAe3B,EAAuByB,EAAiBH,GAAgC,GAC7F,OAAOI,EAAYpa,OAAOqa,EAC9B,EAuDA1pB,EAAQ+nB,uBAAyBA,EAIjC/nB,EAAQ8nB,oBAAsBA,EAM9B9nB,EAAQ6nB,8BAAgCA,EAcxC7nB,EAAQ4nB,6BAA+BA,EAMvC5nB,EAAQ2nB,4BAA8BA,EAUtC3nB,EAAQ0nB,0BAA4BA,C,2BC5GpC5nB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAMoG,EAAU,EAAQ,MAClBsjB,EAAa,EAAQ,MAC3B,MAAMC,UAAsBD,EAAWxnB,QACnC,WAAA8C,GACI0C,SAASkC,WACT1E,KAAKuB,QAAU,IAAIL,EAAQlE,QAAQgD,KAAKsB,UAC5C,CACA,UAAMlE,CAAKsnB,GACP,MAAMC,EAAO3kB,KAAK4kB,kBAAkBF,GAC9Bje,EAAUzG,KAAK6kB,kBAAkBH,GAEvC,aADsB1kB,KAAK8kB,IAAIH,EAAMD,EAAMje,IAC5BtI,IAAKQ,GAAU8H,EAAQse,UAAUpmB,GACpD,CACA,GAAAmmB,CAAIH,EAAMD,EAAMje,GACZ,OAAIie,EAAKtB,QACEpjB,KAAKuB,QAAQ6hB,QAAQuB,EAAMle,GAE/BzG,KAAKuB,QAAQyjB,OAAON,EAAKzD,SAAUxa,EAC9C,EAEJ5L,EAAA,QAAkB4pB,C,0BCrBlB9pB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAM6C,EAAQ,EAAQ,MAChBsnB,EAAY,EAAQ,MA0D1BpqB,EAAA,QAzDA,MACI,WAAAiF,CAAYwB,EAAW4jB,GACnBllB,KAAKsB,UAAYA,EACjBtB,KAAKklB,mBAAqBA,CAC9B,CACA,SAAAC,CAAU/hB,EAAU8f,EAAUC,GAC1B,MAAMiC,EAAUplB,KAAKqlB,YAAYnC,GAC3BoC,EAAatlB,KAAKulB,uBAAuBpC,GAC/C,OAAQxkB,GAAUqB,KAAKwlB,QAAQpiB,EAAUzE,EAAOymB,EAASE,EAC7D,CACA,WAAAD,CAAYpE,GACR,OAAO,IAAIgE,EAAUjoB,QAAQikB,EAAUjhB,KAAKsB,UAAWtB,KAAKklB,mBAChE,CACA,sBAAAK,CAAuBtE,GACnB,MAAMwE,EAA+BxE,EAAS3c,OAAO3G,EAAMqM,QAAQ0b,+BACnE,OAAO/nB,EAAMqM,QAAQ2b,oBAAoBF,EAA8BzlB,KAAKklB,mBAChF,CACA,OAAAM,CAAQpiB,EAAUzE,EAAOymB,EAASE,GAC9B,GAAItlB,KAAK4lB,iBAAiBxiB,EAAUzE,EAAM1B,MACtC,OAAO,EAEX,GAAI+C,KAAK6lB,uBAAuBlnB,GAC5B,OAAO,EAEX,MAAM4F,EAAW5G,EAAMV,KAAK6oB,wBAAwBnnB,EAAM1B,MAC1D,OAAI+C,KAAK+lB,6BAA6BxhB,EAAU6gB,IAGzCplB,KAAKgmB,6BAA6BzhB,EAAU+gB,EACvD,CACA,gBAAAM,CAAiBxiB,EAAUvD,GAIvB,OAAIG,KAAKsB,UAAU2kB,OAAS5f,KAGrBrG,KAAKkmB,eAAe9iB,EAAUvD,IAAcG,KAAKsB,UAAU2kB,IACtE,CACA,cAAAC,CAAe9iB,EAAUvD,GACrB,MAAMsmB,EAAiBtmB,EAAU7D,MAAM,KAAK4M,OAC5C,MAAiB,KAAbxF,EACO+iB,EAGJA,EADe/iB,EAASpH,MAAM,KAAK4M,MAE9C,CACA,sBAAAid,CAAuBlnB,GACnB,OAAQqB,KAAKsB,UAAU9C,qBAAuBG,EAAMP,OAAOS,gBAC/D,CACA,4BAAAknB,CAA6BlmB,EAAWulB,GACpC,OAAQplB,KAAKsB,UAAU0hB,gBAAkBoC,EAAQ5P,MAAM3V,EAC3D,CACA,4BAAAmmB,CAA6BnmB,EAAWumB,GACpC,OAAQzoB,EAAMqM,QAAQqc,SAASxmB,EAAWumB,EAC9C,E,2BC1DJzrB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAM6C,EAAQ,EAAQ,MAkFtB9C,EAAA,QAjFA,MACI,WAAAiF,CAAYwB,EAAW4jB,GACnBllB,KAAKsB,UAAYA,EACjBtB,KAAKklB,mBAAqBA,EAC1BllB,KAAKkQ,MAAQ,IAAIoW,GACrB,CACA,SAAAnB,CAAUjC,EAAUC,GAChB,MAAOoD,EAAkBC,GAAoB7oB,EAAMqM,QAAQyc,6BAA6BtD,GAClFlC,EAAW,CACbiC,SAAU,CACNpC,IAAKnjB,EAAMqM,QAAQ2b,oBAAoBzC,EAAUljB,KAAKklB,qBAE1D/B,SAAU,CACNuD,SAAU/oB,EAAMqM,QAAQ2b,oBAAoBY,EAAkB5rB,OAAOe,OAAOf,OAAOe,OAAO,CAAC,EAAGsE,KAAKklB,oBAAqB,CAAEyB,KAAK,KAC/H9H,SAAUlhB,EAAMqM,QAAQ2b,oBAAoBa,EAAkB7rB,OAAOe,OAAOf,OAAOe,OAAO,CAAC,EAAGsE,KAAKklB,oBAAqB,CAAEyB,KAAK,OAGvI,OAAQhoB,GAAUqB,KAAKwlB,QAAQ7mB,EAAOsiB,EAC1C,CACA,OAAAuE,CAAQ7mB,EAAOsiB,GACX,MAAM1c,EAAW5G,EAAMV,KAAK6oB,wBAAwBnnB,EAAM1B,MAC1D,GAAI+C,KAAKsB,UAAUslB,QAAU5mB,KAAK6mB,kBAAkBtiB,GAChD,OAAO,EAEX,GAAIvE,KAAK8mB,gBAAgBnoB,IAAUqB,KAAK+mB,qBAAqBpoB,GACzD,OAAO,EAEX,MAAMqoB,EAAYhnB,KAAKinB,sBAAsB1iB,EAAU0c,EAAUtiB,EAAMP,OAAOqC,eAI9E,OAHIT,KAAKsB,UAAUslB,QAAUI,GACzBhnB,KAAKknB,mBAAmB3iB,GAErByiB,CACX,CACA,iBAAAH,CAAkBtiB,GACd,OAAOvE,KAAKkQ,MAAMiX,IAAI5iB,EAC1B,CACA,kBAAA2iB,CAAmB3iB,GACfvE,KAAKkQ,MAAM2I,IAAItU,OAAU9I,EAC7B,CACA,eAAAqrB,CAAgBnoB,GACZ,OAAOqB,KAAKsB,UAAU8lB,YAAczoB,EAAMP,OAAOuC,QACrD,CACA,oBAAAomB,CAAqBpoB,GACjB,OAAOqB,KAAKsB,UAAU+lB,kBAAoB1oB,EAAMP,OAAOqC,aAC3D,CACA,qBAAAwmB,CAAsB1iB,EAAU0c,EAAUxgB,GAEtC,QADkBT,KAAKsnB,mBAAmB/iB,EAAU0c,EAASiC,SAASpC,IAAKrgB,MAIvCT,KAAKsnB,mBAAmB/iB,EAAU0c,EAASkC,SAAStE,SAAUpe,KAI9DT,KAAKunB,2BAA2BhjB,EAAU0c,EAASkC,SAASuD,SAAUjmB,GAK9G,CACA,0BAAA8mB,CAA2BhjB,EAAU6hB,EAAY3lB,GAC7C,GAA0B,IAAtB2lB,EAAWxd,OACX,OAAO,EAEX,MAAM7E,EAAWpG,EAAMV,KAAKuqB,aAAaxnB,KAAKsB,UAAUmmB,IAAKljB,GAC7D,OAAOvE,KAAKsnB,mBAAmBvjB,EAAUqiB,EAAY3lB,EACzD,CACA,kBAAA6mB,CAAmB/iB,EAAU6hB,EAAY3lB,GACrC,GAA0B,IAAtB2lB,EAAWxd,OACX,OAAO,EAGX,MAAMoe,EAAYrpB,EAAMqM,QAAQqc,SAAS9hB,EAAU6hB,GAGnD,OAAKY,GAAavmB,EACP9C,EAAMqM,QAAQqc,SAAS9hB,EAAW,IAAK6hB,GAE3CY,CACX,E,2BCjFJrsB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAM6C,EAAQ,EAAQ,MAYtB9C,EAAA,QAXA,MACI,WAAAiF,CAAYwB,GACRtB,KAAKsB,UAAYA,CACrB,CACA,SAAA6jB,GACI,OAAQ5lB,GAAUS,KAAK0nB,iBAAiBnoB,EAC5C,CACA,gBAAAmoB,CAAiBnoB,GACb,OAAO5B,EAAMgqB,MAAMC,kBAAkBroB,IAAUS,KAAKsB,UAAUumB,cAClE,E,0BCXJltB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAM6C,EAAQ,EAAQ,MA0CtB9C,EAAA,QAzCA,MACI,WAAAiF,CAAYgoB,EAAWxmB,EAAW4jB,GAC9BllB,KAAK8nB,UAAYA,EACjB9nB,KAAKsB,UAAYA,EACjBtB,KAAKklB,mBAAqBA,EAC1BllB,KAAKwB,SAAW,GAChBxB,KAAK+nB,cACT,CACA,YAAAA,GACI,IAAK,MAAM/d,KAAWhK,KAAK8nB,UAAW,CAClC,MAAME,EAAWhoB,KAAKioB,oBAAoBje,GACpCke,EAAWloB,KAAKmoB,2BAA2BH,GACjDhoB,KAAKwB,SAASG,KAAK,CACfymB,SAAUF,EAAStf,QAAU,EAC7BoB,UACAge,WACAE,YAER,CACJ,CACA,mBAAAD,CAAoBje,GAEhB,OADcrM,EAAMqM,QAAQqe,gBAAgBre,EAAShK,KAAKklB,oBAC7C/mB,IAAKmqB,GACE3qB,EAAMqM,QAAQ+X,iBAAiBuG,EAAMtoB,KAAKsB,WAOnD,CACH8hB,SAAS,EACTpZ,QAASse,EACTC,UAAW5qB,EAAMqM,QAAQwe,OAAOF,EAAMtoB,KAAKklB,qBARpC,CACH9B,SAAS,EACTpZ,QAASse,GASzB,CACA,0BAAAH,CAA2BH,GACvB,OAAOrqB,EAAMojB,MAAM0H,UAAUT,EAAWU,GAAYA,EAAQtF,SAAWzlB,EAAMqM,QAAQ2e,YAAYD,EAAQ1e,SAC7G,E,2BCzCJrP,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAM8tB,EAAY,EAAQ,KAC1B,MAAMC,UAAuBD,EAAU5rB,QACnC,KAAAwY,CAAMjR,GACF,MAAMukB,EAAQvkB,EAASvI,MAAM,KACvB+sB,EAASD,EAAMlgB,OACfqY,EAAWjhB,KAAKwB,SAAS8C,OAAQ0kB,IAAUA,EAAKZ,UAAYY,EAAKhB,SAASpf,OAASmgB,GACzF,IAAK,MAAM/e,KAAWiX,EAAU,CAC5B,MAAMgI,EAAUjf,EAAQke,SAAS,GAQjC,IAAKle,EAAQoe,UAAYW,EAASE,EAAQrgB,OACtC,OAAO,EAYX,GAVckgB,EAAM1H,MAAM,CAACkH,EAAMpY,KAC7B,MAAMwY,EAAU1e,EAAQge,SAAS9X,GACjC,SAAIwY,EAAQtF,UAAWsF,EAAQH,UAAUtN,KAAKqN,MAGzCI,EAAQtF,SAAWsF,EAAQ1e,UAAYse,IAM5C,OAAO,CAEf,CACA,OAAO,CACX,EAEJztB,EAAA,QAAkBguB,C,2BCpClBluB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAMmC,EAAO,EAAQ,MACfisB,EAAS,EAAQ,KACjBC,EAAU,EAAQ,MAClBC,EAAU,EAAQ,MAClBC,EAAU,EAAQ,MAyCxBxuB,EAAA,QAxCA,MACI,WAAAiF,CAAYwB,GACRtB,KAAKsB,UAAYA,EACjBtB,KAAKqE,YAAc,IAAI+kB,EAAQpsB,QAAQgD,KAAKsB,WAC5CtB,KAAKiE,YAAc,IAAIklB,EAAQnsB,QAAQgD,KAAKsB,UAAWtB,KAAKspB,yBAC5DtpB,KAAKmE,WAAa,IAAI+kB,EAAOlsB,QAAQgD,KAAKsB,UAAWtB,KAAKspB,yBAC1DtpB,KAAKupB,iBAAmB,IAAIF,EAAQrsB,QAAQgD,KAAKsB,UACrD,CACA,iBAAAsjB,CAAkBF,GACd,OAAOznB,EAAK8L,QAAQ/I,KAAKsB,UAAUmmB,IAAK/C,EAAKlhB,KACjD,CACA,iBAAAqhB,CAAkBH,GACd,MAAMthB,EAAyB,MAAdshB,EAAKlhB,KAAe,GAAKkhB,EAAKlhB,KAC/C,MAAO,CACHJ,WACA7E,qBAAsB,IACtBuE,YAAa9C,KAAKsB,UAAUwB,YAC5BqB,WAAYnE,KAAKmE,WAAWghB,UAAU/hB,EAAUshB,EAAKxB,SAAUwB,EAAKvB,UACpElf,YAAajE,KAAKiE,YAAYkhB,UAAUT,EAAKxB,SAAUwB,EAAKvB,UAC5D9e,YAAarE,KAAKqE,YAAY8gB,YAC9B3mB,oBAAqBwB,KAAKsB,UAAU9C,oBACpCvD,GAAI+E,KAAKsB,UAAUrG,GACnB8D,MAAOiB,KAAKsB,UAAUvC,MACtBC,+BAAgCgB,KAAKsB,UAAUtC,+BAC/C+lB,UAAW/kB,KAAKupB,iBAAiBC,iBAEzC,CACA,qBAAAF,GACI,MAAO,CACH3C,IAAK3mB,KAAKsB,UAAUqlB,IACpB8C,UAAWzpB,KAAKsB,UAAU0hB,cAC1B0G,SAAU1pB,KAAKsB,UAAUwhB,eACzB6G,QAAS3pB,KAAKsB,UAAUsoB,mBACxBC,OAAQ7pB,KAAKsB,UAAUwoB,QACvBC,YAAa/pB,KAAKsB,UAAU0oB,SAC5BvI,OAAO,EACPwI,eAAe,EAEvB,E,0BC5CJtvB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAMqG,EAAW,EAAQ,MACnB+oB,EAAW,EAAQ,KACnB1F,EAAa,EAAQ,MAC3B,MAAM2F,UAAuB3F,EAAWxnB,QACpC,WAAA8C,GACI0C,SAASkC,WACT1E,KAAKuB,QAAU,IAAI2oB,EAASltB,QAAQgD,KAAKsB,UAC7C,CACA,IAAAlE,CAAKsnB,GACD,MAAMC,EAAO3kB,KAAK4kB,kBAAkBF,GAC9Bje,EAAUzG,KAAK6kB,kBAAkBH,GACjChE,EAAS1gB,KAAK8kB,IAAIH,EAAMD,EAAMje,GAC9B2jB,EAAc,IAAIjpB,EAASW,SAAS,CAAEC,YAAY,EAAM3E,KAAM,SAOpE,OANAsjB,EACKnd,KAAK,QAAUhE,GAAU6qB,EAAYloB,KAAK,QAAS3C,IACnD+D,GAAG,OAAS3E,GAAUyrB,EAAYloB,KAAK,OAAQuE,EAAQse,UAAUpmB,KACjE4E,KAAK,MAAO,IAAM6mB,EAAYloB,KAAK,QACxCkoB,EACK7mB,KAAK,QAAS,IAAMmd,EAAO1e,WACzBooB,CACX,CACA,GAAAtF,CAAIH,EAAMD,EAAMje,GACZ,OAAIie,EAAKtB,QACEpjB,KAAKuB,QAAQ6hB,QAAQuB,EAAMle,GAE/BzG,KAAKuB,QAAQyjB,OAAON,EAAKzD,SAAUxa,EAC9C,EAEJ5L,EAAA,QAAkBsvB,C,2BC7BlBxvB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAMsG,EAAS,EAAQ,MACjBojB,EAAa,EAAQ,MAC3B,MAAM6F,UAAqB7F,EAAWxnB,QAClC,WAAA8C,GACI0C,SAASkC,WACT1E,KAAKuB,QAAU,IAAIH,EAAOpE,QAAQgD,KAAKsB,UAC3C,CACA,IAAAlE,CAAKsnB,GACD,MAAMC,EAAO3kB,KAAK4kB,kBAAkBF,GAC9Bje,EAAUzG,KAAK6kB,kBAAkBH,GAEvC,OADgB1kB,KAAK8kB,IAAIH,EAAMD,EAAMje,GACtBtI,IAAIsI,EAAQse,UAC/B,CACA,GAAAD,CAAIH,EAAMD,EAAMje,GACZ,OAAIie,EAAKtB,QACEpjB,KAAKuB,QAAQ6hB,QAAQuB,EAAMle,GAE/BzG,KAAKuB,QAAQyjB,OAAON,EAAKzD,SAAUxa,EAC9C,EAEJ5L,EAAA,QAAkBwvB,C,2BCrBlB1vB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAM6C,EAAQ,EAAQ,MAuBtB9C,EAAA,QAtBA,MACI,WAAAiF,CAAYwB,GACRtB,KAAKsB,UAAYA,CACrB,CACA,cAAAkoB,GACI,OAAQ7qB,GAAUqB,KAAKsqB,WAAW3rB,EACtC,CACA,UAAA2rB,CAAW3rB,GACP,IAAI4F,EAAW5F,EAAM1B,KAQrB,OAPI+C,KAAKsB,UAAUolB,WACfniB,EAAW5G,EAAMV,KAAKuqB,aAAaxnB,KAAKsB,UAAUmmB,IAAKljB,GACvDA,EAAW5G,EAAMV,KAAKstB,QAAQhmB,IAE9BvE,KAAKsB,UAAUkpB,iBAAmB7rB,EAAMP,OAAOqC,gBAC/C8D,GAAY,KAEXvE,KAAKsB,UAAUS,WAGbpH,OAAOe,OAAOf,OAAOe,OAAO,CAAC,EAAGiD,GAAQ,CAAE1B,KAAMsH,IAF5CA,CAGf,E,2BCtBJ5J,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAM2vB,EAAS,EAAQ,KACjBnoB,EAAW,EAAQ,KACnBnB,EAAW,EAAQ,KACzB,MAAMupB,UAAoBpoB,EAAStF,QAC/B,WAAA8C,GACI0C,SAASkC,WACT1E,KAAK2qB,WAAaF,EAAOxpB,KACzBjB,KAAK4qB,cAAgB,IAAIzpB,EAASnE,QAAQgD,KAAKsB,UACnD,CACA,OAAA8hB,CAAQuB,EAAMle,GACV,OAAO,IAAIqC,QAAQ,CAACC,EAASE,KACzBjJ,KAAK2qB,WAAWhG,EAAMle,EAAS,CAAClH,EAAOrB,KACrB,OAAVqB,EACAwJ,EAAQ7K,GAGR+K,EAAO1J,MAIvB,CACA,YAAMylB,CAAO/D,EAAUxa,GACnB,MAAMvI,EAAU,GACV4d,EAAS9b,KAAK4qB,cAAc5F,OAAO/D,EAAUxa,GAEnD,OAAO,IAAIqC,QAAQ,CAACC,EAASE,KACzB6S,EAAOvY,KAAK,QAAS0F,GACrB6S,EAAOxY,GAAG,OAAS3E,GAAUT,EAAQyD,KAAKhD,IAC1Cmd,EAAOvY,KAAK,MAAO,IAAMwF,EAAQ7K,KAEzC,EAEJrD,EAAA,QAAkB6vB,C,0BCjClB/vB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAMmC,EAAO,EAAQ,MACfO,EAAS,EAAQ,MACjBG,EAAQ,EAAQ,MA4BtB9C,EAAA,QA3BA,MACI,WAAAiF,CAAYwB,GACRtB,KAAKsB,UAAYA,EACjBtB,KAAK6qB,gBAAkB,IAAIrtB,EAAOhB,SAAS,CACvC2D,mBAAoBH,KAAKsB,UAAU9C,oBACnCvD,GAAI+E,KAAKsB,UAAUrG,GACnB+D,+BAAgCgB,KAAKsB,UAAU9C,qBAEvD,CACA,iBAAAssB,CAAkBvmB,GACd,OAAOtH,EAAK8L,QAAQ/I,KAAKsB,UAAUmmB,IAAKljB,EAC5C,CACA,UAAAwmB,CAAWhsB,EAAOiL,GACd,MAAMrL,EAAQ,CACVN,KAAM2L,EACN/M,KAAM+M,EACN5L,OAAQT,EAAM1C,GAAGgE,sBAAsB+K,EAASjL,IAKpD,OAHIiB,KAAKsB,UAAUvC,QACfJ,EAAMI,MAAQA,GAEXJ,CACX,CACA,aAAAoE,CAAcxD,GACV,OAAQ5B,EAAMgqB,MAAMC,kBAAkBroB,KAAWS,KAAKsB,UAAUumB,cACpE,E,0BC7BJltB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAMqG,EAAW,EAAQ,MACnB3D,EAAS,EAAQ,MACjBitB,EAAS,EAAQ,KACjBnoB,EAAW,EAAQ,KACzB,MAAM0oB,UAAqB1oB,EAAStF,QAChC,WAAA8C,GACI0C,SAASkC,WACT1E,KAAKirB,YAAcR,EAAO1pB,WAC1Bf,KAAKkrB,MAAQ1tB,EAAOrC,IACxB,CACA,OAAAioB,CAAQuB,EAAMle,GACV,OAAOzG,KAAKirB,YAAYtG,EAAMle,EAClC,CACA,MAAAue,CAAO/D,EAAUxa,GACb,MAAM0kB,EAAYlK,EAAS9iB,IAAI6B,KAAK8qB,kBAAmB9qB,MACjD8b,EAAS,IAAI3a,EAASiqB,YAAY,CAAErpB,YAAY,IACtD+Z,EAAOuP,OAAS,CAACnb,EAAOob,EAAM1sB,IACnBoB,KAAKurB,UAAUJ,EAAUjb,GAAQ+Q,EAAS/Q,GAAQzJ,GACpDuC,KAAMrK,IACO,OAAVA,GAAkB8H,EAAQxC,YAAYtF,IACtCmd,EAAOna,KAAKhD,GAEZuR,IAAUib,EAAUviB,OAAS,GAC7BkT,EAAO0P,MAEX5sB,MAECsK,MAAMtK,GAEf,IAAK,IAAI8Q,EAAI,EAAGA,EAAIyb,EAAUviB,OAAQ8G,IAClCoM,EAAOvB,MAAM7K,GAEjB,OAAOoM,CACX,CACA,SAAAyP,CAAUhnB,EAAUyF,EAASvD,GACzB,OAAOzG,KAAKyrB,SAASlnB,GAChByE,KAAMjK,GAAUiB,KAAK+qB,WAAWhsB,EAAOiL,IACvCd,MAAO3J,IACR,GAAIkH,EAAQpC,YAAY9E,GACpB,OAAO,KAEX,MAAMA,GAEd,CACA,QAAAksB,CAASlnB,GACL,OAAO,IAAIuE,QAAQ,CAACC,EAASE,KACzBjJ,KAAKkrB,MAAM3mB,EAAUvE,KAAK6qB,gBAAiB,CAACtrB,EAAOR,IAC9B,OAAVQ,EAAiBwJ,EAAQhK,GAASkK,EAAO1J,KAG5D,EAEJ1E,EAAA,QAAkBmwB,C,2BCrDlBrwB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAM0C,EAAS,EAAQ,MACjBitB,EAAS,EAAQ,KACjBnoB,EAAW,EAAQ,KACzB,MAAMopB,UAAmBppB,EAAStF,QAC9B,WAAA8C,GACI0C,SAASkC,WACT1E,KAAK2rB,UAAYlB,EAAOzpB,SACxBhB,KAAK4rB,UAAYpuB,EAAOnC,QAC5B,CACA,OAAA+nB,CAAQuB,EAAMle,GACV,OAAOzG,KAAK2rB,UAAUhH,EAAMle,EAChC,CACA,MAAAue,CAAO/D,EAAUxa,GACb,MAAMvI,EAAU,GAChB,IAAK,MAAM8L,KAAWiX,EAAU,CAC5B,MAAM1c,EAAWvE,KAAK8qB,kBAAkB9gB,GAClCrL,EAAQqB,KAAKurB,UAAUhnB,EAAUyF,EAASvD,GAClC,OAAV9H,GAAmB8H,EAAQxC,YAAYtF,IAG3CT,EAAQyD,KAAKhD,EACjB,CACA,OAAOT,CACX,CACA,SAAAqtB,CAAUhnB,EAAUyF,EAASvD,GACzB,IACI,MAAM1H,EAAQiB,KAAKyrB,SAASlnB,GAC5B,OAAOvE,KAAK+qB,WAAWhsB,EAAOiL,EAClC,CACA,MAAOzK,GACH,GAAIkH,EAAQpC,YAAY9E,GACpB,OAAO,KAEX,MAAMA,CACV,CACJ,CACA,QAAAksB,CAASlnB,GACL,OAAOvE,KAAK4rB,UAAUrnB,EAAUvE,KAAK6qB,gBACzC,EAEJhwB,EAAA,QAAkB6wB,C,2BCzClB/wB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgxB,iCAAmC,EAC3C,MAAM5wB,EAAK,EAAQ,MACb6wB,EAAK,EAAQ,KAKbC,EAAYjc,KAAKF,IAAIkc,EAAGE,OAAOpjB,OAAQ,GAC7C/N,EAAQgxB,4BAA8B,CAClC3wB,MAAOD,EAAGC,MACVE,UAAWH,EAAGG,UACdD,KAAMF,EAAGE,KACTE,SAAUJ,EAAGI,SACbC,QAASL,EAAGK,QACZC,YAAaN,EAAGM,aA0CpBV,EAAA,QAxCA,MACI,WAAAiF,CAAYC,EAAW,CAAC,GACpBC,KAAKD,SAAWA,EAChBC,KAAK0mB,SAAW1mB,KAAKC,UAAUD,KAAKD,SAAS2mB,UAAU,GACvD1mB,KAAKgjB,cAAgBhjB,KAAKC,UAAUD,KAAKD,SAASijB,eAAe,GACjEhjB,KAAK8iB,eAAiB9iB,KAAKC,UAAUD,KAAKD,SAAS+iB,gBAAgB,GACnE9iB,KAAK4pB,mBAAqB5pB,KAAKC,UAAUD,KAAKD,SAAS6pB,oBAAoB,GAC3E5pB,KAAK8C,YAAc9C,KAAKC,UAAUD,KAAKD,SAAS+C,YAAaipB,GAC7D/rB,KAAKynB,IAAMznB,KAAKC,UAAUD,KAAKD,SAAS0nB,IAAK5rB,QAAQ4rB,OACrDznB,KAAKimB,KAAOjmB,KAAKC,UAAUD,KAAKD,SAASkmB,KAAM5f,KAC/CrG,KAAK2mB,IAAM3mB,KAAKC,UAAUD,KAAKD,SAAS4mB,KAAK,GAC7C3mB,KAAK8pB,QAAU9pB,KAAKC,UAAUD,KAAKD,SAAS+pB,SAAS,GACrD9pB,KAAKxB,oBAAsBwB,KAAKC,UAAUD,KAAKD,SAASvB,qBAAqB,GAC7EwB,KAAK/E,GAAK+E,KAAKisB,sBAAsBjsB,KAAKD,SAAS9E,IACnD+E,KAAKgqB,SAAWhqB,KAAKC,UAAUD,KAAKD,SAASiqB,UAAU,GACvDhqB,KAAK2jB,OAAS3jB,KAAKC,UAAUD,KAAKD,SAAS4jB,OAAQ,IACnD3jB,KAAKwqB,gBAAkBxqB,KAAKC,UAAUD,KAAKD,SAASyqB,iBAAiB,GACrExqB,KAAK+B,WAAa/B,KAAKC,UAAUD,KAAKD,SAASgC,YAAY,GAC3D/B,KAAKqnB,gBAAkBrnB,KAAKC,UAAUD,KAAKD,SAASsnB,iBAAiB,GACrErnB,KAAKonB,UAAYpnB,KAAKC,UAAUD,KAAKD,SAASqnB,WAAW,GACzDpnB,KAAKjB,MAAQiB,KAAKC,UAAUD,KAAKD,SAAShB,OAAO,GACjDiB,KAAK6nB,eAAiB7nB,KAAKC,UAAUD,KAAKD,SAAS8nB,gBAAgB,GACnE7nB,KAAKhB,+BAAiCgB,KAAKC,UAAUD,KAAKD,SAASf,gCAAgC,GACnGgB,KAAK4mB,OAAS5mB,KAAKC,UAAUD,KAAKD,SAAS6mB,QAAQ,GAC/C5mB,KAAKqnB,kBACLrnB,KAAKonB,WAAY,GAEjBpnB,KAAKjB,QACLiB,KAAK+B,YAAa,GAGtB/B,KAAK2jB,OAAS,GAAGzZ,OAAOlK,KAAK2jB,OACjC,CACA,SAAA1jB,CAAUG,EAAQtF,GACd,YAAkBW,IAAX2E,EAAuBtF,EAAQsF,CAC1C,CACA,qBAAA6rB,CAAsBC,EAAU,CAAC,GAC7B,OAAOvxB,OAAOe,OAAOf,OAAOe,OAAO,CAAC,EAAGb,EAAQgxB,6BAA8BK,EACjF,E,yBCvDJvxB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ4tB,UAAY5tB,EAAQiU,aAAe,EAI3CjU,EAAQiU,QAHR,SAAiBqd,GACb,OAAOA,EAAM5gB,OAAO,CAACuY,EAAYngB,IAAS,GAAGuG,OAAO4Z,EAAYngB,GAAO,GAC3E,EAgBA9I,EAAQ4tB,UAdR,SAAmB0D,EAAOC,GACtB,MAAM5sB,EAAS,CAAC,IAChB,IAAI6sB,EAAa,EACjB,IAAK,MAAM1oB,KAAQwoB,EACXC,EAAUzoB,IACV0oB,IACA7sB,EAAO6sB,GAAc,IAGrB7sB,EAAO6sB,GAAY1qB,KAAKgC,GAGhC,OAAOnE,CACX,C,yBCnBA7E,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ+sB,uBAAyB,EAIjC/sB,EAAQ+sB,kBAHR,SAA2BroB,GACvB,MAAsB,WAAfA,EAAM2I,IACjB,C,yBCJAvN,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQoE,2BAA6B,EACrC,MAAMoB,EACF,WAAAP,CAAYzB,EAAMU,GACdiB,KAAK3B,KAAOA,EACZ2B,KAAKM,cAAgBvB,EAAMuB,cAAcC,KAAKxB,GAC9CiB,KAAKQ,kBAAoBzB,EAAMyB,kBAAkBD,KAAKxB,GACtDiB,KAAKS,YAAc1B,EAAM0B,YAAYF,KAAKxB,GAC1CiB,KAAKU,OAAS3B,EAAM2B,OAAOH,KAAKxB,GAChCiB,KAAKW,OAAS5B,EAAM4B,OAAOJ,KAAKxB,GAChCiB,KAAKY,SAAW7B,EAAM6B,SAASL,KAAKxB,GACpCiB,KAAKnB,eAAiBE,EAAMF,eAAe0B,KAAKxB,EACpD,EAKJlE,EAAQoE,sBAHR,SAA+BZ,EAAMU,GACjC,OAAO,IAAIsB,EAAgBhC,EAAMU,EACrC,C,2BChBApE,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQwmB,OAASxmB,EAAQihB,OAASjhB,EAAQmP,QAAUnP,EAAQoC,KAAOpC,EAAQI,GAAKJ,EAAQ8sB,MAAQ9sB,EAAQkmB,WAAa,EACrH,MAAMA,EAAQ,EAAQ,MACtBlmB,EAAQkmB,MAAQA,EAChB,MAAM4G,EAAQ,EAAQ,MACtB9sB,EAAQ8sB,MAAQA,EAChB,MAAM1sB,EAAK,EAAQ,MACnBJ,EAAQI,GAAKA,EACb,MAAMgC,EAAO,EAAQ,MACrBpC,EAAQoC,KAAOA,EACf,MAAM+M,EAAU,EAAQ,MACxBnP,EAAQmP,QAAUA,EAClB,MAAM8R,EAAS,EAAQ,MACvBjhB,EAAQihB,OAASA,EACjB,MAAMuF,EAAS,EAAQ,MACvBxmB,EAAQwmB,OAASA,C,2BCfjB1mB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQunB,0BAA4BvnB,EAAQynB,4BAA8BznB,EAAQqnB,qBAAuBrnB,EAAQsnB,gBAAkBtnB,EAAQwnB,kBAAoBxnB,EAAQonB,OAASpnB,EAAQirB,wBAA0BjrB,EAAQ2sB,aAAe3sB,EAAQ0vB,aAAe,EAChQ,MAAMuB,EAAK,EAAQ,KACb7uB,EAAO,EAAQ,MACfqvB,EAAwC,UAAlBR,EAAGS,WAOzBC,EAAkC,4DAClCC,EAAoC,mCAKpCC,EAAqB,cAMrBC,EAAyB,sBAyB/B,SAAStK,EAAkBrY,GACvB,OAAOA,EAAQuL,QAAQkX,EAAmC,OAC9D,CAEA,SAAStK,EAAgBnY,GACrB,OAAOA,EAAQuL,QAAQiX,EAAiC,OAC5D,CAGA,SAASlK,EAA4B/d,GACjC,OAAO8d,EAAkB9d,GACpBgR,QAAQmX,EAAoB,QAC5BnX,QAAQoX,EAAwB,IACzC,CAEA,SAASvK,EAA0B7d,GAC/B,OAAO4d,EAAgB5d,EAC3B,CAnCA1J,EAAQ0vB,QAHR,SAAiBhmB,GACb,OAAOA,EAASgR,QAAQ,MAAO,IACnC,EAKA1a,EAAQ2sB,aAHR,SAAsBC,EAAKljB,GACvB,OAAOtH,EAAK8L,QAAQ0e,EAAKljB,EAC7B,EAaA1J,EAAQirB,wBAXR,SAAiCnnB,GAG7B,GAAwB,MAApBA,EAAMiuB,OAAO,GAAY,CACzB,MAAMC,EAAmBluB,EAAMiuB,OAAO,GACtC,GAAyB,MAArBC,GAAiD,OAArBA,EAC5B,OAAOluB,EAAM6R,MApCoB,EAsCzC,CACA,OAAO7R,CACX,EAEA9D,EAAQonB,OAASqK,EAAsBjK,EAAoBF,EAI3DtnB,EAAQwnB,kBAAoBA,EAI5BxnB,EAAQsnB,gBAAkBA,EAC1BtnB,EAAQqnB,qBAAuBoK,EAAsBhK,EAA8BF,EAMnFvnB,EAAQynB,4BAA8BA,EAItCznB,EAAQunB,0BAA4BA,C,2BClEpCznB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQmlB,WAAanlB,EAAQ4rB,6BAA+B5rB,EAAQooB,uBAAyBpoB,EAAQwrB,SAAWxrB,EAAQ8qB,oBAAsB9qB,EAAQ2tB,OAAS3tB,EAAQwtB,gBAAkBxtB,EAAQiyB,qBAAuBjyB,EAAQkoB,iCAAmCloB,EAAQ6qB,8BAAgC7qB,EAAQkyB,sBAAwBlyB,EAAQ8tB,YAAc9tB,EAAQkpB,iBAAmBlpB,EAAQmyB,kCAAoCnyB,EAAQyoB,mCAAqCzoB,EAAQ2oB,kCAAoC3oB,EAAQ8nB,oBAAsB9nB,EAAQ+oB,oBAAsB/oB,EAAQoyB,kBAAoBpyB,EAAQqyB,kBAAoBryB,EAAQmpB,yBAA2BnpB,EAAQgpB,yBAA2BhpB,EAAQknB,iBAAmBlnB,EAAQupB,qBAAuB,EACrvB,MAAMnnB,EAAO,EAAQ,MACfkwB,EAAa,EAAQ,MACrBC,EAAa,EAAQ,KAGrBC,EAAyB,UACzBC,EAAmC,WACnCC,EAAyB,iCACzBC,EAA4B,mBAC5BC,EAAgC,SAKhCC,EAAkB,eACxB,SAAStJ,EAAgBpa,EAASvD,EAAU,CAAC,GACzC,OAAQsb,EAAiB/X,EAASvD,EACtC,CAEA,SAASsb,EAAiB/X,EAASvD,EAAU,CAAC,GAM1C,SAAgB,KAAZuD,KAO+B,IAA/BvD,EAAQmjB,oBAAgC5f,EAAQ8U,SA5BlC,OA+BduO,EAAuBpS,KAAKjR,IAAYsjB,EAAiCrS,KAAKjR,IAAYujB,EAAuBtS,KAAKjR,KAGlG,IAApBvD,EAAQqjB,SAAqB0D,EAA0BvS,KAAKjR,KAGjC,IAA3BvD,EAAQqc,gBAMhB,SAA2B9Y,GACvB,MAAM2jB,EAAoB3jB,EAAQpE,QAAQ,KAC1C,IAA2B,IAAvB+nB,EACA,OAAO,EAEX,MAAMC,EAAoB5jB,EAAQpE,QAAQ,IAAK+nB,EAAoB,GACnE,IAA2B,IAAvBC,EACA,OAAO,EAEX,MAAMC,EAAe7jB,EAAQwG,MAAMmd,EAAmBC,GACtD,OAAOH,EAA8BxS,KAAK4S,EAC9C,CAjB4CC,CAAkB9jB,IAI9D,CAsBA,SAASkjB,EAAkBljB,GACvB,OAAOA,EAAQsU,WAAW,MAAuB,MAAftU,EAAQ,EAC9C,CAEA,SAASijB,EAAkBjjB,GACvB,OAAQkjB,EAAkBljB,EAC9B,CAgCA,SAASgjB,EAAkChjB,GACvC,OAAOA,EAAQsU,WAAW,OAAStU,EAAQsU,WAAW,OAC1D,CAUA,SAASyO,EAAsB/iB,GAC3B,OAAOA,EAAQpK,SAAS,MAC5B,CAaA,SAASktB,EAAqB9iB,GAC1B,MAAMiX,EAAWmM,EAAWzjB,OAAOK,EAAS,CAAEP,QAAQ,EAAMU,SAAS,EAAM2G,cAAc,IASzF,OAJAmQ,EAAS8M,KAAK,CAACtuB,EAAGC,IAAMD,EAAEmJ,OAASlJ,EAAEkJ,QAI9BqY,EAAS3c,OAAQ0F,GAAwB,KAAZA,EACxC,CAsBA,SAASwe,EAAOxe,EAASvD,GACrB,OAAO2mB,EAAW5E,OAAOxe,EAASvD,EACtC,CAgCA,SAASuZ,EAAWhW,GAChB,OAAO/M,EAAK+iB,WAAWhW,EAC3B,CAvLAnP,EAAQupB,gBAAkBA,EA4B1BvpB,EAAQknB,iBAAmBA,EAgB3BlnB,EAAQgpB,yBAHR,SAAkC7Z,GAC9B,OAAOkjB,EAAkBljB,GAAWA,EAAQwG,MAAM,GAAKxG,CAC3D,EAKAnP,EAAQmpB,yBAHR,SAAkCha,GAC9B,MAAO,IAAMA,CACjB,EAKAnP,EAAQqyB,kBAAoBA,EAI5BryB,EAAQoyB,kBAAoBA,EAI5BpyB,EAAQ+oB,oBAHR,SAA6B3C,GACzB,OAAOA,EAAS3c,OAAO4oB,EAC3B,EAKAryB,EAAQ8nB,oBAHR,SAA6B1B,GACzB,OAAOA,EAAS3c,OAAO2oB,EAC3B,EAYApyB,EAAQ2oB,kCAHR,SAA2CvC,GACvC,OAAOA,EAAS3c,OAAQ0F,IAAagjB,EAAkChjB,GAC3E,EAYAnP,EAAQyoB,mCAHR,SAA4CrC,GACxC,OAAOA,EAAS3c,OAAO0oB,EAC3B,EAKAnyB,EAAQmyB,kCAAoCA,EAI5CnyB,EAAQkpB,iBAHR,SAA0B/Z,GACtB,OAAOmjB,EAAWnjB,EAAS,CAAEuW,iBAAiB,GAClD,EAKA1lB,EAAQ8tB,YAHR,SAAqB3e,GACjB,OAAOA,EAAQ8U,SA/GF,KAgHjB,EAKAjkB,EAAQkyB,sBAAwBA,EAKhClyB,EAAQ6qB,8BAJR,SAAuC1b,GACnC,MAAMwJ,EAAWvW,EAAKuW,SAASxJ,GAC/B,OAAO+iB,EAAsB/iB,IAAYoa,EAAgB5Q,EAC7D,EAOA3Y,EAAQkoB,iCALR,SAA0C9B,GACtC,OAAOA,EAAS1V,OAAO,CAACuY,EAAY9Z,IACzB8Z,EAAW5Z,OAAO4iB,EAAqB9iB,IAC/C,GACP,EAcAnP,EAAQiyB,qBAAuBA,EAoB/BjyB,EAAQwtB,gBAnBR,SAAyBre,EAASvD,GAC9B,IAAI,MAAEqiB,GAAUsE,EAAWY,KAAKhkB,EAASrP,OAAOe,OAAOf,OAAOe,OAAO,CAAC,EAAG+K,GAAU,CAAEqiB,OAAO,KAgB5F,OAXqB,IAAjBA,EAAMlgB,SACNkgB,EAAQ,CAAC9e,IAMT8e,EAAM,GAAGxK,WAAW,OACpBwK,EAAM,GAAKA,EAAM,GAAGtY,MAAM,GAC1BsY,EAAM1Q,QAAQ,KAEX0Q,CACX,EAKAjuB,EAAQ2tB,OAASA,EAIjB3tB,EAAQ8qB,oBAHR,SAA6B1E,EAAUxa,GACnC,OAAOwa,EAAS9iB,IAAK6L,GAAYwe,EAAOxe,EAASvD,GACrD,EAKA5L,EAAQwrB,SAHR,SAAkB1nB,EAAOynB,GACrB,OAAOA,EAAW1gB,KAAM6iB,GAAcA,EAAUtN,KAAKtc,GACzD,EASA9D,EAAQooB,uBAHR,SAAgCjZ,GAC5B,OAAOA,EAAQuL,QAAQmY,EAAiB,IAC5C,EAeA7yB,EAAQ4rB,6BAbR,SAAsCxF,GAClC,MAAMyF,EAAW,GACX7H,EAAW,GACjB,IAAK,MAAM7U,KAAWiX,EACdjB,EAAWhW,GACX0c,EAAS/kB,KAAKqI,GAGd6U,EAASld,KAAKqI,GAGtB,MAAO,CAAC0c,EAAU7H,EACtB,EAKAhkB,EAAQmlB,WAAaA,C,2BC5MrBrlB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ2mB,WAAa,EACrB,MAAMyM,EAAS,EAAQ,MAWvB,SAASC,EAA6BC,GAClCA,EAAQpd,QAAS+K,GAAWA,EAAO5Z,KAAK,SAC5C,CAHArH,EAAQ2mB,MATR,SAAe2M,GACX,MAAMC,EAAeH,EAAOE,GAM5B,OALAA,EAAQpd,QAAS+K,IACbA,EAAOvY,KAAK,QAAUhE,GAAU6uB,EAAalsB,KAAK,QAAS3C,MAE/D6uB,EAAa7qB,KAAK,QAAS,IAAM2qB,EAA6BC,IAC9DC,EAAa7qB,KAAK,MAAO,IAAM2qB,EAA6BC,IACrDC,CACX,C,yBCXAzzB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ0mB,QAAU1mB,EAAQymB,cAAgB,EAI1CzmB,EAAQymB,SAHR,SAAkB1X,GACd,MAAwB,iBAAVA,CAClB,EAKA/O,EAAQ0mB,QAHR,SAAiB3X,GACb,MAAiB,KAAVA,CACX,C,2BCLA,IAAIykB,EAAU,EAAQ,MAEtB,SAASC,EAAWC,EAASC,EAAQC,GAOnC,GANuB,mBAAZF,IACTE,EAAeD,EACfA,EAASD,EACTA,EAAU,QAGNE,GAAgB,GACpB,MAAM,IAAIxyB,MAAM,4DAGlB,IAAIyyB,EAAQL,EAAQM,GAChBC,EAAY,KACZC,EAAY,KACZC,EAAW,EACXC,EAAe,KAEfhX,EAAO,CACTpW,KAsFF,SAAe7G,EAAO8D,GACpB,IAAIowB,EAAUN,EAAM9V,MAEpBoW,EAAQT,QAAUA,EAClBS,EAAQC,QAAUA,EAClBD,EAAQl0B,MAAQA,EAChBk0B,EAAQ7xB,SAAWyB,GAAQgd,EAC3BoT,EAAQD,aAAeA,EAEnBD,GAAYL,GAAgB1W,EAAKmX,OAC/BL,GACFA,EAAUxe,KAAO2e,EACjBH,EAAYG,IAEZJ,EAAYI,EACZH,EAAYG,EACZjX,EAAKoX,cAGPL,IACAN,EAAOnlB,KAAKklB,EAASS,EAAQl0B,MAAOk0B,EAAQI,QAEhD,EA3GEnsB,MAAO2Y,EACPuT,UAAWvT,EACXyT,MAqCF,WACEtX,EAAKmX,QAAS,CAChB,EAtCEA,QAAQ,EAER,eAAIpsB,GACF,OAAO2rB,CACT,EACA,eAAI3rB,CAAahI,GACf,KAAMA,GAAS,GACb,MAAM,IAAImB,MAAM,4DAIlB,GAFAwyB,EAAe3zB,GAEXid,EAAKmX,OACT,KAAON,GAAaE,EAAWL,GAC7BK,IACAG,GAEJ,EAEAK,QAcF,WACE,OAAOR,CACT,EAfES,OA6CF,WACE,GAAKxX,EAAKmX,OAAV,CAEA,GADAnX,EAAKmX,QAAS,EACI,OAAdN,EAGF,OAFAE,SACAG,IAGF,KAAOL,GAAaE,EAAWL,GAC7BK,IACAG,GATgB,CAWpB,EAxDEO,KA0DF,WACE,OAAoB,IAAbV,GAAoC,IAAlB/W,EAAKnP,QAChC,EA3DEA,OAmBF,WAIE,IAHA,IAAIomB,EAAUJ,EACVa,EAAU,EAEPT,GACLA,EAAUA,EAAQ3e,KAClBof,IAGF,OAAOA,CACT,EA5BEC,SA8BF,WAIE,IAHA,IAAIV,EAAUJ,EACVlwB,EAAQ,GAELswB,GACLtwB,EAAMiD,KAAKqtB,EAAQl0B,OACnBk0B,EAAUA,EAAQ3e,KAGpB,OAAO3R,CACT,EAvCE0Z,QAmFF,SAAkBtd,EAAO8D,GACvB,IAAIowB,EAAUN,EAAM9V,MAEpBoW,EAAQT,QAAUA,EAClBS,EAAQC,QAAUA,EAClBD,EAAQl0B,MAAQA,EAChBk0B,EAAQ7xB,SAAWyB,GAAQgd,EAC3BoT,EAAQD,aAAeA,EAEnBD,GAAYL,GAAgB1W,EAAKmX,OAC/BN,GACFI,EAAQ3e,KAAOue,EACfA,EAAYI,IAEZJ,EAAYI,EACZH,EAAYG,EACZjX,EAAKoX,cAGPL,IACAN,EAAOnlB,KAAKklB,EAASS,EAAQl0B,MAAOk0B,EAAQI,QAEhD,EAxGEO,MAAO/T,EACPgU,KAiIF,WACEhB,EAAY,KACZC,EAAY,KACZ9W,EAAK9U,MAAQ2Y,CACf,EApIEvY,aAsIF,WACEurB,EAAY,KACZC,EAAY,KACZ9W,EAAK9U,QACL8U,EAAK9U,MAAQ2Y,CACf,EA1IErc,MA4IF,SAAgBswB,GACdd,EAAec,CACjB,GA3IA,OAAO9X,EAoGP,SAASkX,EAASa,GACZA,GACFpB,EAAMO,QAAQa,GAEhB,IAAIzf,EAAOue,EACPve,GAAQye,GAAYL,EACjB1W,EAAKmX,OAWRJ,KAVID,IAAcD,IAChBC,EAAY,MAEdD,EAAYve,EAAKA,KACjBA,EAAKA,KAAO,KACZme,EAAOnlB,KAAKklB,EAASle,EAAKvV,MAAOuV,EAAK+e,QACpB,OAAdP,GACF9W,EAAK4X,SAKe,MAAbb,GACX/W,EAAK9U,OAET,CAkBF,CAEA,SAAS2Y,IAAS,CAElB,SAAS+S,IACP3uB,KAAKlF,MAAQ,KACbkF,KAAK7C,SAAWye,EAChB5b,KAAKqQ,KAAO,KACZrQ,KAAKivB,QAAUrT,EACf5b,KAAKuuB,QAAU,KACfvuB,KAAK+uB,aAAe,KAEpB,IAAIhX,EAAO/X,KAEXA,KAAKovB,OAAS,SAAiBrnB,EAAKvI,GAClC,IAAIrC,EAAW4a,EAAK5a,SAChB4xB,EAAehX,EAAKgX,aACpBxW,EAAMR,EAAKjd,MACfid,EAAKjd,MAAQ,KACbid,EAAK5a,SAAWye,EACZ7D,EAAKgX,cACPA,EAAahnB,EAAKwQ,GAEpBpb,EAASkM,KAAK0O,EAAKwW,QAASxmB,EAAKvI,GACjCuY,EAAKkX,QAAQlX,EACf,CACF,CAqFA3O,EAAOvO,QAAUyzB,EACjBllB,EAAOvO,QAAQk1B,QApFf,SAA0BxB,EAASC,EAAQC,GAClB,mBAAZF,IACTE,EAAeD,EACfA,EAASD,EACTA,EAAU,MAUZ,IAAI5f,EAAQ2f,EAAUC,EAPtB,SAAuByB,EAAKC,GAC1BzB,EAAOnlB,KAAKrJ,KAAMgwB,GACfhnB,KAAK,SAAUknB,GACdD,EAAG,KAAMC,EACX,EAAGD,EACP,EAE6CxB,GAEzC0B,EAASxhB,EAAMhN,KACfyuB,EAAYzhB,EAAMyJ,QAMtB,OAJAzJ,EAAMhN,KAMN,SAAe7G,GACb,IAAImU,EAAI,IAAInG,QAAQ,SAAUC,EAASE,GACrCknB,EAAOr1B,EAAO,SAAUiN,EAAKvI,GACvBuI,EACFkB,EAAOlB,GAGTgB,EAAQvJ,EACV,EACF,GAOA,OAFAyP,EAAE/F,MAAM0S,GAED3M,CACT,EAtBAN,EAAMyJ,QAwBN,SAAkBtd,GAChB,IAAImU,EAAI,IAAInG,QAAQ,SAAUC,EAASE,GACrCmnB,EAAUt1B,EAAO,SAAUiN,EAAKvI,GAC1BuI,EACFkB,EAAOlB,GAGTgB,EAAQvJ,EACV,EACF,GAOA,OAFAyP,EAAE/F,MAAM0S,GAED3M,CACT,EAxCAN,EAAM0hB,QA0CN,WAgBE,OAfQ,IAAIvnB,QAAQ,SAAUC,GAC5BlN,QAAQ+gB,SAAS,WACf,GAAIjO,EAAM6gB,OACRzmB,QACK,CACL,IAAIunB,EAAgB3hB,EAAM1L,MAC1B0L,EAAM1L,MAAQ,WACiB,mBAAlBqtB,GAA8BA,IACzCvnB,IACA4F,EAAM1L,MAAQqtB,CAChB,CACF,CACF,EACF,EAGF,EAzDO3hB,CA0DT,C,cCnTA,IAAI1T,EAAK,EAAQ,MACbmf,EAAO,EAAQ,MACf0B,EAAS,EAAQ,MACjBha,EAAWga,EAAOha,SAClByuB,EAAWzU,EAAOyU,SAClBnF,EAActP,EAAOsP,YACrBoF,EAAO,EAAQ,MACf7tB,EAAe,qBAQnB,SAAS8tB,EAAS5V,EAAIpU,GACpBA,EAAUA,GAAW,CAAC,EACtB9D,EAAa0G,KAAKrJ,MAElBA,KAAK6a,GAAKA,EACV7a,KAAK0wB,KAAO,IAAIF,EAChBxwB,KAAK0wB,KAAK9gB,IAAM,EAChB5P,KAAK2wB,SAAW,EAChB3wB,KAAK4wB,YAAcnqB,EAAQmqB,SAC7B,CAuDA,SAASC,EAAWtC,EAAS9nB,GAC3BA,EAAUA,GAAW,CAAC,EACtB3E,EAASuH,KAAKrJ,KAAMyG,GAEpBzG,KAAKuuB,QAAUA,EACfvuB,KAAKuuB,QAAQuC,MAEb9wB,KAAK+wB,MAAQtqB,EAAQsqB,OAAS,EAC9B/wB,KAAKgxB,UAAYvqB,EAAQ+kB,IACzBxrB,KAAKixB,IAAMjxB,KAAK+wB,MAChB/wB,KAAK+c,WAAY,CACnB,CA4CA,SAASmU,EAAY3C,EAAS9nB,GAC5BA,EAAUA,GAAW,CAAC,EACtB8pB,EAASlnB,KAAKrJ,KAAMyG,GAEpBzG,KAAKuuB,QAAUA,EACfvuB,KAAKuuB,QAAQuC,MAEb9wB,KAAK+wB,MAAQtqB,EAAQsqB,OAAS,EAC9B/wB,KAAKgxB,UAA4B,MAAfvqB,EAAQ+kB,IAAenlB,KAAYI,EAAQ+kB,IAC7DxrB,KAAKmxB,aAAe,EACpBnxB,KAAKixB,IAAMjxB,KAAK+wB,MAChB/wB,KAAK+c,WAAY,EAEjB/c,KAAKsD,GAAG,SAAUtD,KAAKgC,QAAQzB,KAAKP,MACtC,CAsCA,SAASoxB,EAAaC,EAAQ5qB,GAC5B9D,EAAa0G,KAAKrJ,MAElByG,EAAUA,GAAW,CAAC,EACtBzG,KAAK2wB,SAAW,EAChB3wB,KAAKqxB,OAASA,EACdrxB,KAAKsxB,aAAe7qB,EAAQ6qB,cAAgBn1B,OAAOo1B,gBACrD,CAxLA12B,EAAQ22B,iBAwRR,SAA0BH,EAAQ5qB,GAChC,OAAO,IAAI2qB,EAAaC,EAAQ5qB,EAClC,EAzRA5L,EAAQ42B,aA2RR,SAAsB5W,EAAIpU,GACxB,OAAO,IAAIgqB,EAAS5V,EAAIpU,EAC1B,EA5RA5L,EAAQu2B,aAAeA,EACvBv2B,EAAQ41B,SAAWA,EAEnBrW,EAAKsX,SAASjB,EAAU9tB,GAYxB8tB,EAAStnB,UAAU/L,KAAO,SAASi0B,EAAQM,EAAQ/oB,EAAQgpB,EAAUz0B,GACnE,IAAI4a,EAAO/X,KACX+X,EAAK2Y,KAAKmB,GAAG,SAAS5B,GACpBh1B,EAAGmC,KAAK2a,EAAK8C,GAAIwW,EAAQM,EAAQ/oB,EAAQgpB,EAAU,SAAS7pB,EAAK+pB,EAAWT,GAC1EpB,IACA9yB,EAAS4K,EAAK+pB,EAAWT,EAC3B,EACF,EACF,EAEAZ,EAAStnB,UAAUoR,MAAQ,SAAS8W,EAAQM,EAAQ/oB,EAAQgpB,EAAUz0B,GACpE,IAAI4a,EAAO/X,KACX+X,EAAK2Y,KAAKmB,GAAG,SAAS5B,GACpBh1B,EAAGsf,MAAMxC,EAAK8C,GAAIwW,EAAQM,EAAQ/oB,EAAQgpB,EAAU,SAAS7pB,EAAKgqB,EAASV,GACzEpB,IACA9yB,EAAS4K,EAAKgqB,EAASV,EACzB,EACF,EACF,EAEAZ,EAAStnB,UAAU6oB,iBAAmB,SAASvrB,GAC7C,OAAO,IAAIoqB,EAAW7wB,KAAMyG,EAC9B,EAEAgqB,EAAStnB,UAAUoU,kBAAoB,SAAS9W,GAC9C,OAAO,IAAIyqB,EAAYlxB,KAAMyG,EAC/B,EAEAgqB,EAAStnB,UAAU2nB,IAAM,WACvB9wB,KAAK2wB,UAAY,CACnB,EAEAF,EAAStnB,UAAU8oB,MAAQ,WACzB,IAAIla,EAAO/X,KAGX,GAFA+X,EAAK4Y,UAAY,IAEb5Y,EAAK4Y,SAAW,GAApB,CACA,GAAI5Y,EAAK4Y,SAAW,EAAG,MAAM,IAAI10B,MAAM,iBAEnC8b,EAAK6Y,WACP31B,EAAGwV,MAAMsH,EAAK8C,GAGhB,SAAqB9S,GACfA,EACFgQ,EAAK7V,KAAK,QAAS6F,GAEnBgQ,EAAK7V,KAAK,QAEd,EAb6B,CAc/B,EAEAkY,EAAKsX,SAASb,EAAY/uB,GAc1B+uB,EAAW1nB,UAAU+oB,MAAQ,SAAS1gB,GACpC,IAAIuG,EAAO/X,KACX,IAAI+X,EAAKgF,UAAT,CAEA,IAAIoV,EAASriB,KAAKC,IAAIgI,EAAKmE,eAAekW,cAAe5gB,GAIzD,GAHsB,MAAlBuG,EAAKiZ,YACPmB,EAASriB,KAAKC,IAAIoiB,EAAQpa,EAAKiZ,UAAYjZ,EAAKkZ,MAE9CkB,GAAU,EAIZ,OAHApa,EAAKgF,WAAY,EACjBhF,EAAKpW,KAAK,WACVoW,EAAKwW,QAAQ0D,QAGfla,EAAKwW,QAAQmC,KAAKmB,GAAG,SAAS5B,GAC5B,GAAIlY,EAAKgF,UAAW,OAAOkT,IAC3B,IAAIoB,EAAS,IAAIxf,OAAOsgB,GACxBl3B,EAAGmC,KAAK2a,EAAKwW,QAAQ1T,GAAIwW,EAAQ,EAAGc,EAAQpa,EAAKkZ,IAAK,SAASlpB,EAAK+pB,GAC9D/pB,EACFgQ,EAAK/V,QAAQ+F,GACU,IAAd+pB,GACT/Z,EAAKgF,WAAY,EACjBhF,EAAKpW,KAAK,MACVoW,EAAKwW,QAAQ0D,UAEbla,EAAKkZ,KAAOa,EACZ/Z,EAAKpW,KAAK0vB,EAAO7gB,MAAM,EAAGshB,KAE5B7B,GACF,EACF,EA5B0B,CA6B5B,EAEAY,EAAW1nB,UAAUnH,QAAU,SAAS+F,GAClC/H,KAAK+c,YACThV,EAAMA,GAAO,IAAI9L,MAAM,oBACvB+D,KAAK+c,WAAY,EACjB/c,KAAKkC,KAAK,QAAS6F,GACnB/H,KAAKuuB,QAAQ0D,QACf,EAEA7X,EAAKsX,SAASR,EAAaX,GAiB3BW,EAAY/nB,UAAUkiB,OAAS,SAASgG,EAAQgB,EAAUl1B,GACxD,IAAI4a,EAAO/X,KACX,IAAI+X,EAAKgF,UAAT,CAEA,GAAIhF,EAAKkZ,IAAMI,EAAOzoB,OAASmP,EAAKiZ,UAAW,CAC7C,IAAIjpB,EAAM,IAAI9L,MAAM,gCAIpB,OAHA8L,EAAIG,KAAO,UACX6P,EAAK/V,eACL7E,EAAS4K,EAEX,CACAgQ,EAAKwW,QAAQmC,KAAKmB,GAAG,SAAS5B,GAC5B,GAAIlY,EAAKgF,UAAW,OAAOkT,IAC3Bh1B,EAAGsf,MAAMxC,EAAKwW,QAAQ1T,GAAIwW,EAAQ,EAAGA,EAAOzoB,OAAQmP,EAAKkZ,IAAK,SAASlpB,EAAKuqB,GACtEvqB,GACFgQ,EAAK/V,UACLiuB,IACA9yB,EAAS4K,KAETgQ,EAAKoZ,cAAgBmB,EACrBva,EAAKkZ,KAAOqB,EACZva,EAAK7V,KAAK,YACV+tB,IACA9yB,IAEJ,EACF,EAxB0B,CAyB5B,EAEA+zB,EAAY/nB,UAAUnH,QAAU,WAC1BhC,KAAK+c,YACT/c,KAAK+c,WAAY,EACjB/c,KAAKuuB,QAAQ0D,QACf,EAEA7X,EAAKsX,SAASN,EAAczuB,GAU5ByuB,EAAajoB,UAAU/L,KAAO,SAASi0B,EAAQM,EAAQ/oB,EAAQgpB,EAAUz0B,GACvE,IAAIquB,EAAMoG,EAAWhpB,EACjB2pB,EAAQ/G,EAAMxrB,KAAKqxB,OAAOzoB,OAC1BmpB,EAAWQ,EAAQ,EAAKA,EAAQ3pB,EACpC5I,KAAKqxB,OAAOmB,KAAKnB,EAAQM,EAAQC,EAAUpG,GAC3CtoB,aAAa,WACX/F,EAAS,KAAM40B,EACjB,EACF,EAEAX,EAAajoB,UAAUoR,MAAQ,SAAS8W,EAAQM,EAAQ/oB,EAAQgpB,EAAUz0B,GACxEk0B,EAAOmB,KAAKxyB,KAAKqxB,OAAQO,EAAUD,EAAQA,EAAS/oB,GACpD1F,aAAa,WACX/F,EAAS,KAAMyL,EAAQyoB,EACzB,EACF,EAEAD,EAAajoB,UAAU6oB,iBAAmB,SAASvrB,GAEjD,IAAIiZ,EAAa,IAAI0L,EADrB3kB,EAAUA,GAAW,CAAC,GAEtBiZ,EAAW3C,WAAY,EACvB2C,EAAWqR,MAAQtqB,EAAQsqB,OAAS,EACpCrR,EAAWsR,UAAYvqB,EAAQ+kB,IAE/B9L,EAAWuR,IAAMvR,EAAWsR,WAAahxB,KAAKqxB,OAAOzoB,OAKrD,IAFA,IAAI6pB,EAAczyB,KAAKqxB,OAAO7gB,MAAMkP,EAAWqR,MAAOrR,EAAWuR,KAC7DU,EAAS,IACA,CACX,IAAIe,EAAaf,EAAS3xB,KAAKsxB,aAC/B,GAAIoB,GAAcD,EAAY7pB,OAAQ,CAEhC+oB,EAASc,EAAY7pB,QACvB8W,EAAWnF,MAAMkY,EAAYjiB,MAAMmhB,EAAQc,EAAY7pB,SAEzD,KACF,CACA8W,EAAWnF,MAAMkY,EAAYjiB,MAAMmhB,EAAQe,IAC3Cf,EAASe,CACX,CAMA,OAJAhT,EAAW8L,MACX9L,EAAW1d,QAAU,WACnB0d,EAAW3C,WAAY,CACzB,EACO2C,CACT,EAEA0R,EAAajoB,UAAUoU,kBAAoB,SAAS9W,GAClD,IAAIksB,EAAe3yB,KAEf4yB,EAAc,IAAIrC,EADtB9pB,EAAUA,GAAW,CAAC,GA4BtB,OA1BAmsB,EAAY7B,MAAQtqB,EAAQsqB,OAAS,EACrC6B,EAAY5B,UAA4B,MAAfvqB,EAAQ+kB,IAAexrB,KAAKqxB,OAAOzoB,QAAUnC,EAAQ+kB,IAC9EoH,EAAYzB,aAAe,EAC3ByB,EAAY3B,IAAM2B,EAAY7B,MAC9B6B,EAAY7V,WAAY,EACxB6V,EAAYvH,OAAS,SAASgG,EAAQgB,EAAUl1B,GAC9C,IAAIy1B,EAAY7V,UAAhB,CAEA,IAAIyO,EAAMoH,EAAY3B,IAAMI,EAAOzoB,OACnC,GAAI4iB,EAAMoH,EAAY5B,UAAW,CAC/B,IAAIjpB,EAAM,IAAI9L,MAAM,gCAIpB,OAHA8L,EAAIG,KAAO,UACX0qB,EAAY7V,WAAY,OACxB5f,EAAS4K,EAEX,CACAspB,EAAOmB,KAAKG,EAAatB,OAAQuB,EAAY3B,IAAK,EAAGI,EAAOzoB,QAE5DgqB,EAAYzB,cAAgBE,EAAOzoB,OACnCgqB,EAAY3B,IAAMzF,EAClBoH,EAAY1wB,KAAK,YACjB/E,GAfiC,CAgBnC,EACAy1B,EAAY5wB,QAAU,WACpB4wB,EAAY7V,WAAY,CAC1B,EACO6V,CACT,EAEAxB,EAAajoB,UAAU2nB,IAAM,WAC3B9wB,KAAK2wB,UAAY,CACnB,EAEAS,EAAajoB,UAAU8oB,MAAQ,WAG7B,GAFAjyB,KAAK2wB,UAAY,EAEb3wB,KAAK2wB,SAAW,EAClB,MAAM,IAAI10B,MAAM,gBAEpB,C,2BCtRA,MAAMme,EAAO,EAAQ,MACfyY,EAAe,EAAQ,IAEvBC,EAAWva,GAAe,OAARA,GAA+B,iBAARA,IAAqBzO,MAAMC,QAAQwO,GAM5Ewa,EAAej4B,GACK,iBAAVA,GAAwC,iBAAVA,GAAgC,KAAVA,EAG9Dk4B,EAAW7hB,GAAOhV,OAAO+U,WAAWC,GAEpC8hB,EAAQrpB,IACZ,IAAI9O,EAAQ,GAAG8O,IACXsG,GAAS,EAEb,GADiB,MAAbpV,EAAM,KAAYA,EAAQA,EAAM0V,MAAM,IAC5B,MAAV1V,EAAe,OAAO,EAC1B,KAA0B,MAAnBA,IAAQoV,KACf,OAAOA,EAAQ,GAUXgjB,EAAM,CAACtpB,EAAOiG,EAAWsjB,KAC7B,GAAItjB,EAAY,EAAG,CACjB,IAAIujB,EAAoB,MAAbxpB,EAAM,GAAa,IAAM,GAChCwpB,IAAMxpB,EAAQA,EAAM4G,MAAM,IAC9B5G,EAASwpB,EAAOxpB,EAAMypB,SAASD,EAAOvjB,EAAY,EAAIA,EAAW,IACnE,CACA,OAAiB,IAAbsjB,EACKG,OAAO1pB,GAETA,GAGH2pB,EAAW,CAAC3pB,EAAOiG,KACvB,IAAIsT,EAAwB,MAAbvZ,EAAM,GAAa,IAAM,GAKxC,IAJIuZ,IACFvZ,EAAQA,EAAM4G,MAAM,GACpBX,KAEKjG,EAAMhB,OAASiH,GAAWjG,EAAQ,IAAMA,EAC/C,OAAOuZ,EAAY,IAAMvZ,EAASA,GAiC9B4pB,EAAU,CAAC/zB,EAAGC,EAAG+zB,EAAWhtB,KAChC,GAAIgtB,EACF,OAAOZ,EAAapzB,EAAGC,EAAG,CAAE+L,MAAM,KAAUhF,IAG9C,IAAIsqB,EAAQuC,OAAOI,aAAaj0B,GAChC,OAAIA,IAAMC,EAAUqxB,EAGb,IAAIA,KADAuC,OAAOI,aAAah0B,OAI3BgM,EAAU,CAACqlB,EAAOvF,EAAK/kB,KAC3B,GAAIqD,MAAMC,QAAQgnB,GAAQ,CACxB,IAAItlB,GAAwB,IAAjBhF,EAAQgF,KACfZ,EAASpE,EAAQktB,QAAU,GAAK,KACpC,OAAOloB,EAAO,IAAIZ,IAASkmB,EAAMvsB,KAAK,QAAUusB,EAAMvsB,KAAK,IAC7D,CACA,OAAOquB,EAAa9B,EAAOvF,EAAK/kB,IAG5BmtB,EAAa,IAAItoB,IACd,IAAIiE,WAAW,4BAA8B6K,EAAKqB,WAAWnQ,IAGhEuoB,EAAe,CAAC9C,EAAOvF,EAAK/kB,KAChC,IAA6B,IAAzBA,EAAQqtB,aAAuB,MAAMF,EAAW,CAAC7C,EAAOvF,IAC5D,MAAO,IA+FHnhB,EAAO,CAAC0mB,EAAOvF,EAAKlc,EAAM7I,EAAU,CAAC,KACzC,GAAW,MAAP+kB,GAAeuH,EAAahC,GAC9B,MAAO,CAACA,GAGV,IAAKgC,EAAahC,KAAWgC,EAAavH,GACxC,OAAOqI,EAAa9C,EAAOvF,EAAK/kB,GAGlC,GAAoB,mBAAT6I,EACT,OAAOjF,EAAK0mB,EAAOvF,EAAK,EAAG,CAAEzG,UAAWzV,IAG1C,GAAIwjB,EAASxjB,GACX,OAAOjF,EAAK0mB,EAAOvF,EAAK,EAAGlc,GAG7B,IAAIxJ,EAAO,IAAKW,GAIhB,OAHqB,IAAjBX,EAAK6tB,UAAkB7tB,EAAK2F,MAAO,GACvC6D,EAAOA,GAAQxJ,EAAKwJ,MAAQ,EAEvB0jB,EAAS1jB,GAKV0jB,EAASjC,IAAUiC,EAASxH,GA/Gd,EAACuF,EAAOvF,EAAKlc,EAAO,EAAG7I,EAAU,CAAC,KACpD,IAAIhH,EAAItD,OAAO40B,GACXrxB,EAAIvD,OAAOqvB,GAEf,IAAKrvB,OAAO+U,UAAUzR,KAAOtD,OAAO+U,UAAUxR,GAAI,CAChD,IAA6B,IAAzB+G,EAAQqtB,aAAuB,MAAMF,EAAW,CAAC7C,EAAOvF,IAC5D,MAAO,EACT,CAGU,IAAN/rB,IAASA,EAAI,GACP,IAANC,IAASA,EAAI,GAEjB,IAAIq0B,EAAat0B,EAAIC,EACjBs0B,EAAcV,OAAOvC,GACrBkD,EAAYX,OAAO9H,GACnB0I,EAAaZ,OAAOhkB,GACxBA,EAAOQ,KAAKF,IAAIE,KAAKmK,IAAI3K,GAAO,GAEhC,IAAI6kB,EAASlB,EAAMe,IAAgBf,EAAMgB,IAAchB,EAAMiB,GACzDE,EAASD,EAASrkB,KAAKF,IAAIokB,EAAYprB,OAAQqrB,EAAUrrB,OAAQsrB,EAAWtrB,QAAU,EACtFuqB,GAAsB,IAAXgB,IAAuD,IArHtD,EAACpD,EAAOvF,EAAK/kB,IACR,iBAAVsqB,GAAqC,iBAARvF,IAGX,IAAtB/kB,EAAQ8C,UAiHoBA,CAAUwnB,EAAOvF,EAAK/kB,GACrD4R,EAAS5R,EAAQse,WAzILoO,IACTr4B,IAAsB,IAAbq4B,EAAoBh3B,OAAOrB,GAASw4B,OAAOx4B,GAwIzBiqB,CAAUoO,GAE5C,GAAI1sB,EAAQiF,SAAoB,IAAT4D,EACrB,OAAOkkB,EAAQD,EAASxC,EAAOqD,GAASb,EAAS/H,EAAK4I,IAAS,EAAM3tB,GAGvE,IAAIqiB,EAAQ,CAAEuL,UAAW,GAAIC,UAAW,IACpC3yB,EAAOwP,GAAO2X,EAAM3X,EAAM,EAAI,YAAc,aAAaxP,KAAKmO,KAAKmK,IAAI9I,IACvE3F,EAAQ,GACR0E,EAAQ,EAEZ,KAAO6jB,EAAat0B,GAAKC,EAAID,GAAKC,IACR,IAApB+G,EAAQiF,SAAoB4D,EAAO,EACrC3N,EAAKlC,GAEL+L,EAAM7J,KAAKuxB,EAAI7a,EAAO5Y,EAAGyQ,GAAQkkB,EAAQjB,IAE3C1zB,EAAIs0B,EAAat0B,EAAI6P,EAAO7P,EAAI6P,EAChCY,IAGF,OAAwB,IAApBzJ,EAAQiF,QACH4D,EAAO,EA/GC,EAACwZ,EAAOriB,EAAS2tB,KAClCtL,EAAMuL,UAAUtG,KAAK,CAACtuB,EAAGC,IAAMD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAI,GACxDopB,EAAMwL,UAAUvG,KAAK,CAACtuB,EAAGC,IAAMD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAI,GAExD,IAGIF,EAHAqL,EAASpE,EAAQktB,QAAU,GAAK,KAChCW,EAAY,GACZD,EAAY,GAiBhB,OAdIvL,EAAMwL,UAAU1rB,SAClB0rB,EAAYxL,EAAMwL,UAAUn2B,IAAIyI,GAAK2sB,EAASD,OAAO1sB,GAAIwtB,IAAS5vB,KAAK,MAGrEskB,EAAMuL,UAAUzrB,SAClByrB,EAAY,KAAKxpB,IAASie,EAAMuL,UAAUl2B,IAAIyI,GAAK2sB,EAASD,OAAO1sB,GAAIwtB,IAAS5vB,KAAK,SAIrFhF,EADE80B,GAAaD,EACN,GAAGC,KAAaD,IAEhBC,GAAaD,EAGpB5tB,EAAQgF,KACH,IAAIZ,IAASrL,KAGfA,GAqFD+0B,CAAWzL,EAAOriB,EAAS2tB,GAC3B1oB,EAAQF,EAAO,KAAM,CAAEC,MAAM,KAAUhF,IAGtC+E,GA+DEgpB,CAAYzD,EAAOvF,EAAKlc,EAAMxJ,GA5DrB,EAACirB,EAAOvF,EAAKlc,EAAO,EAAG7I,EAAU,CAAC,KACpD,IAAMusB,EAASjC,IAAUA,EAAMnoB,OAAS,IAAQoqB,EAASxH,IAAQA,EAAI5iB,OAAS,EAC5E,OAAOirB,EAAa9C,EAAOvF,EAAK/kB,GAGlC,IAAI4R,EAAS5R,EAAQse,WAAa,CAACxM,GAAO+a,OAAOI,aAAanb,IAC1D9Y,EAAI,GAAGsxB,IAAQ/W,WAAW,GAC1Bta,EAAI,GAAG8rB,IAAMxR,WAAW,GAExB+Z,EAAat0B,EAAIC,EACjBqQ,EAAMD,KAAKC,IAAItQ,EAAGC,GAClBkQ,EAAME,KAAKF,IAAInQ,EAAGC,GAEtB,GAAI+G,EAAQiF,SAAoB,IAAT4D,EACrB,OAAOkkB,EAAQzjB,EAAKH,GAAK,EAAOnJ,GAGlC,IAAI+E,EAAQ,GACR0E,EAAQ,EAEZ,KAAO6jB,EAAat0B,GAAKC,EAAID,GAAKC,GAChC8L,EAAM7J,KAAK0W,EAAO5Y,EAAGyQ,IACrBzQ,EAAIs0B,EAAat0B,EAAI6P,EAAO7P,EAAI6P,EAChCY,IAGF,OAAwB,IAApBzJ,EAAQiF,QACHA,EAAQF,EAAO,KAAM,CAAEC,MAAM,EAAOhF,YAGtC+E,GAiCAipB,CAAY1D,EAAOvF,EAAK1b,KAAKF,IAAIE,KAAKmK,IAAI3K,GAAO,GAAIxJ,GAR9C,MAARwJ,GAAiBwjB,EAASxjB,GACvBjF,EAAK0mB,EAAOvF,EAAK,EAAGlc,GAnHX,EAACA,EAAM7I,KACzB,IAA6B,IAAzBA,EAAQqtB,aACV,MAAM,IAAInkB,UAAU,kBAAkBL,qBAExC,MAAO,IA8GuColB,CAAYplB,EAAMxJ,IAWlEsD,EAAOvO,QAAUwP,C,cCvPjB,IAAI9E,EAEJ6D,EAAOvO,QAAU,WACf,IAAK0K,EAAO,CACV,IAEEA,EAAQ,EAAQ,KAAR,CAAiB,mBAC3B,CACA,MAAOhG,GAAe,CACD,mBAAVgG,IACTA,EAAQ,WAAoB,EAEhC,CACAA,EAAMmN,MAAM,KAAMhO,UACpB,C,aCdA,IAWMiwB,EACAC,EACAC,EAbFC,EAAM,EAAQ,MACdC,EAAMD,EAAIC,IACVC,EAAO,EAAQ,MACfC,EAAQ,EAAQ,MAChB1E,EAAW,iBACX2E,EAAS,EAAQ,MACjB3vB,EAAQ,EAAQ,MAKdovB,EAAmC,oBAAZ94B,QACvB+4B,EAAqC,oBAAXze,QAA8C,oBAAbM,SAC3Doe,EAAcM,EAAWl5B,MAAMm5B,mBAC9BT,IAAkBC,GAAqBC,GAC1C7pB,QAAQmM,KAAK,wEAKjB,IAAIke,GAAe,EACnB,IACEH,EAAO,IAAIH,EAAI,IACjB,CACA,MAAOx1B,GACL81B,EAA8B,oBAAf91B,EAAM2I,IACvB,CAGA,IAAIotB,EAAmB,CACrB,gBACA,sBACA,UAIEC,EAAqB,CACvB,OACA,OACA,WACA,OACA,OACA,WACA,OACA,WACA,QACA,SACA,QAIEC,EAAS,CAAC,QAAS,UAAW,UAAW,QAAS,SAAU,WAC5DC,EAAgB96B,OAAOsP,OAAO,MAClCurB,EAAOzkB,QAAQ,SAAU2kB,GACvBD,EAAcC,GAAS,SAAUC,EAAMC,EAAMC,GAC3C71B,KAAK81B,cAAc5zB,KAAKwzB,EAAOC,EAAMC,EAAMC,EAC7C,CACF,GAGA,IAAIE,EAAkBC,EACpB,kBACA,cACArmB,WAEEsmB,EAAmBD,EACrB,6BACA,6BAEEE,EAAwBF,EAC1B,4BACA,uCACAC,GAEEE,EAA6BH,EAC/B,kCACA,gDAEEI,EAAqBJ,EACvB,6BACA,mBAIEh0B,EAAUuuB,EAASpnB,UAAUnH,SAAW4Z,EAG5C,SAASya,EAAoB5vB,EAAS6vB,GAEpC/F,EAASlnB,KAAKrJ,MACdA,KAAKu2B,iBAAiB9vB,GACtBzG,KAAKD,SAAW0G,EAChBzG,KAAKw2B,QAAS,EACdx2B,KAAKy2B,SAAU,EACfz2B,KAAK02B,eAAiB,EACtB12B,KAAK22B,WAAa,GAClB32B,KAAK42B,mBAAqB,EAC1B52B,KAAK62B,oBAAsB,GAGvBP,GACFt2B,KAAKsD,GAAG,WAAYgzB,GAItB,IAAIve,EAAO/X,KACXA,KAAK82B,kBAAoB,SAAUC,GACjC,IACEhf,EAAKif,iBAAiBD,EACxB,CACA,MAAOE,GACLlf,EAAK7V,KAAK,QAAS+0B,aAAiBhB,EAClCgB,EAAQ,IAAIhB,EAAiB,CAAEgB,MAAOA,IAC1C,CACF,EAGAj3B,KAAKk3B,cAAgB,IAAIC,OAAO,OAC5B7B,EAAiBprB,OAAOzD,EAAQ6uB,kBAAkBn3B,IAAIi5B,GAAa5yB,KAAK,KAC1E,KAAM,KAGRxE,KAAKq3B,iBACP,CAqYA,SAAS5rB,EAAK6rB,GAEZ,IAAIz8B,EAAU,CACZ08B,aAAc,GACdC,cAAe,UAIbC,EAAkB,CAAC,EAqDvB,OApDA98B,OAAOkf,KAAKyd,GAAWvmB,QAAQ,SAAU2mB,GACvC,IAAI7wB,EAAW6wB,EAAS,IACpBC,EAAiBF,EAAgB5wB,GAAYywB,EAAUI,GACvDE,EAAkB/8B,EAAQ68B,GAAU/8B,OAAOsP,OAAO0tB,GA4CtDh9B,OAAOk9B,iBAAiBD,EAAiB,CACvCE,QAAS,CAAEh9B,MA1Cb,SAAiB8O,EAAOnD,EAAStJ,GA8B/B,OA8IG43B,GA1KOnrB,aA0KiBmrB,EAzKzBnrB,EAAQmuB,EAAgBnuB,GAEjB0X,EAAS1X,GAChBA,EAAQmuB,EAAgBC,EAASpuB,KAGjCzM,EAAWsJ,EACXA,EAAUwxB,EAAYruB,GACtBA,EAAQ,CAAE/C,SAAUA,IAElBsuB,EAAW1uB,KACbtJ,EAAWsJ,EACXA,EAAU,OAIZA,EAAU9L,OAAOe,OAAO,CACtB67B,aAAc18B,EAAQ08B,aACtBC,cAAe38B,EAAQ28B,eACtB5tB,EAAOnD,IACFgxB,gBAAkBA,EACrBnW,EAAS7a,EAAQU,OAAUma,EAAS7a,EAAQa,YAC/Cb,EAAQa,SAAW,OAGrB4tB,EAAOgD,MAAMzxB,EAAQI,SAAUA,EAAU,qBACzCtB,EAAM,UAAWkB,GACV,IAAI4vB,EAAoB5vB,EAAStJ,EAC1C,EAW6Bwb,cAAc,EAAMD,YAAY,EAAM0D,UAAU,GAC3ExD,IAAK,CAAE9d,MATT,SAAa8O,EAAOnD,EAAStJ,GAC3B,IAAIg7B,EAAiBP,EAAgBE,QAAQluB,EAAOnD,EAAStJ,GAE7D,OADAg7B,EAAe3M,MACR2M,CACT,EAKqBxf,cAAc,EAAMD,YAAY,EAAM0D,UAAU,IAEvE,GACOvhB,CACT,CAEA,SAAS+gB,IAAqB,CAE9B,SAASoc,EAASpuB,GAChB,IAAIwuB,EAEJ,GAAI/C,EACF+C,EAAS,IAAIrD,EAAInrB,QAKjB,IAAK0X,GADL8W,EAASH,EAAYnD,EAAIprB,MAAME,KACV/C,UACnB,MAAM,IAAIkvB,EAAgB,CAAEnsB,UAGhC,OAAOwuB,CACT,CAOA,SAASH,EAAYruB,GACnB,GAAI,MAAMqR,KAAKrR,EAAMtC,YAAc,oBAAoB2T,KAAKrR,EAAMtC,UAChE,MAAM,IAAIyuB,EAAgB,CAAEnsB,MAAOA,EAAMyuB,MAAQzuB,IAEnD,GAAI,MAAMqR,KAAKrR,EAAMzC,QAAU,2BAA2B8T,KAAKrR,EAAMzC,MACnE,MAAM,IAAI4uB,EAAgB,CAAEnsB,MAAOA,EAAMyuB,MAAQzuB,IAEnD,OAAOA,CACT,CAEA,SAASmuB,EAAgBO,EAAWC,GAClC,IAAIC,EAASD,GAAU,CAAC,EACxB,IAAK,IAAIze,KAAOyb,EACdiD,EAAO1e,GAAOwe,EAAUxe,GAc1B,OAVI0e,EAAOlxB,SAASgX,WAAW,OAC7Bka,EAAOlxB,SAAWkxB,EAAOlxB,SAASkJ,MAAM,GAAI,IAG1B,KAAhBgoB,EAAOpxB,OACToxB,EAAOpxB,KAAOjL,OAAOq8B,EAAOpxB,OAG9BoxB,EAAOv7B,KAAOu7B,EAAOtf,OAASsf,EAAOC,SAAWD,EAAOtf,OAASsf,EAAOC,SAEhED,CACT,CAEA,SAASE,EAAsBC,EAAOC,GACpC,IAAIC,EACJ,IAAK,IAAIC,KAAUF,EACbD,EAAM1d,KAAK6d,KACbD,EAAYD,EAAQE,UACbF,EAAQE,IAGnB,OAAO,MAACD,OACNp9B,EAAY63B,OAAOuF,GAAWznB,MAClC,CAEA,SAAS4kB,EAAgB9tB,EAAMsP,EAASuhB,GAEtC,SAASC,EAAYC,GAEf9D,EAAWl5B,MAAMm5B,oBACnBn5B,MAAMm5B,kBAAkBp1B,KAAMA,KAAKF,aAErCnF,OAAOe,OAAOsE,KAAMi5B,GAAc,CAAC,GACnCj5B,KAAKkI,KAAOA,EACZlI,KAAKwX,QAAUxX,KAAKi3B,MAAQzf,EAAU,KAAOxX,KAAKi3B,MAAMzf,QAAUA,CACpE,CAcA,OAXAwhB,EAAY7vB,UAAY,IAAK4vB,GAAa98B,OAC1CtB,OAAOk9B,iBAAiBmB,EAAY7vB,UAAW,CAC7CrJ,YAAa,CACXhF,MAAOk+B,EACPtgB,YAAY,GAEdra,KAAM,CACJvD,MAAO,UAAYoN,EAAO,IAC1BwQ,YAAY,KAGTsgB,CACT,CAEA,SAASE,EAAepB,EAASv4B,GAC/B,IAAK,IAAIm2B,KAASF,EAChBsC,EAAQxa,eAAeoY,EAAOD,EAAcC,IAE9CoC,EAAQx0B,GAAG,QAASsY,GACpBkc,EAAQ91B,QAAQzC,EAClB,CAYA,SAAS+hB,EAASxmB,GAChB,MAAwB,iBAAVA,GAAsBA,aAAiBw4B,MACvD,CAEA,SAAS6B,EAAWr6B,GAClB,MAAwB,mBAAVA,CAChB,CAUA,SAASs8B,EAAYuB,GACnB,OAAOA,EAAMpjB,QAAQ,kBAAmB,OAC1C,CApkBA8gB,EAAoBltB,UAAYxO,OAAOsP,OAAOsmB,EAASpnB,WAEvDktB,EAAoBltB,UAAU+T,MAAQ,WACpCgc,EAAel5B,KAAKm5B,iBACpBn5B,KAAKm5B,gBAAgBjc,QACrBld,KAAKkC,KAAK,QACZ,EAEAm0B,EAAoBltB,UAAUnH,QAAU,SAAUzC,GAGhD,OAFA25B,EAAel5B,KAAKm5B,gBAAiB55B,GACrCyC,EAAQqH,KAAKrJ,KAAMT,GACZS,IACT,EAGAq2B,EAAoBltB,UAAUoR,MAAQ,SAAUtG,EAAMoe,EAAUl1B,GAE9D,GAAI6C,KAAKy2B,QACP,MAAM,IAAIL,EAIZ,KAAK9U,EAASrN,IAqiBU,iBADRnZ,EApiBiBmZ,IAqiBI,WAAYnZ,GApiB/C,MAAM,IAAI6U,UAAU,iDAmiBxB,IAAkB7U,EAjiBZq6B,EAAW9C,KACbl1B,EAAWk1B,EACXA,EAAW,MAKO,IAAhBpe,EAAKrL,OAOL5I,KAAK42B,mBAAqB3iB,EAAKrL,QAAU5I,KAAKD,SAASy3B,eACzDx3B,KAAK42B,oBAAsB3iB,EAAKrL,OAChC5I,KAAK62B,oBAAoBl1B,KAAK,CAAEsS,KAAMA,EAAMoe,SAAUA,IACtDryB,KAAKm5B,gBAAgB5e,MAAMtG,EAAMoe,EAAUl1B,KAI3C6C,KAAKkC,KAAK,QAAS,IAAIi0B,GACvBn2B,KAAKkd,SAdD/f,GACFA,GAeN,EAGAk5B,EAAoBltB,UAAUqiB,IAAM,SAAUvX,EAAMoe,EAAUl1B,GAY5D,GAVIg4B,EAAWlhB,IACb9W,EAAW8W,EACXA,EAAOoe,EAAW,MAEX8C,EAAW9C,KAClBl1B,EAAWk1B,EACXA,EAAW,MAIRpe,EAIA,CACH,IAAI8D,EAAO/X,KACPo5B,EAAiBp5B,KAAKm5B,gBAC1Bn5B,KAAKua,MAAMtG,EAAMoe,EAAU,WACzBta,EAAKye,QAAS,EACd4C,EAAe5N,IAAI,KAAM,KAAMruB,EACjC,GACA6C,KAAKy2B,SAAU,CACjB,MAXEz2B,KAAKw2B,OAASx2B,KAAKy2B,SAAU,EAC7Bz2B,KAAKm5B,gBAAgB3N,IAAI,KAAM,KAAMruB,EAWzC,EAGAk5B,EAAoBltB,UAAU8T,UAAY,SAAU5e,EAAMvD,GACxDkF,KAAKD,SAAS64B,QAAQv6B,GAAQvD,EAC9BkF,KAAKm5B,gBAAgBlc,UAAU5e,EAAMvD,EACvC,EAGAu7B,EAAoBltB,UAAUkwB,aAAe,SAAUh7B,UAC9C2B,KAAKD,SAAS64B,QAAQv6B,GAC7B2B,KAAKm5B,gBAAgBE,aAAah7B,EACpC,EAGAg4B,EAAoBltB,UAAUN,WAAa,SAAUywB,EAAOn8B,GAC1D,IAAI4a,EAAO/X,KAGX,SAASu5B,EAAiBjxB,GACxBA,EAAOO,WAAWywB,GAClBhxB,EAAOgV,eAAe,UAAWhV,EAAOtG,SACxCsG,EAAOkxB,YAAY,UAAWlxB,EAAOtG,QACvC,CAGA,SAASy3B,EAAWnxB,GACdyP,EAAK2hB,UACPtxB,aAAa2P,EAAK2hB,UAEpB3hB,EAAK2hB,SAAW7wB,WAAW,WACzBkP,EAAK7V,KAAK,WACVy3B,GACF,EAAGL,GACHC,EAAiBjxB,EACnB,CAGA,SAASqxB,IAEH5hB,EAAK2hB,WACPtxB,aAAa2P,EAAK2hB,UAClB3hB,EAAK2hB,SAAW,MAIlB3hB,EAAKuF,eAAe,QAASqc,GAC7B5hB,EAAKuF,eAAe,QAASqc,GAC7B5hB,EAAKuF,eAAe,WAAYqc,GAChC5hB,EAAKuF,eAAe,QAASqc,GACzBx8B,GACF4a,EAAKuF,eAAe,UAAWngB,GAE5B4a,EAAKzP,QACRyP,EAAKohB,gBAAgB7b,eAAe,SAAUmc,EAElD,CAsBA,OAnBIt8B,GACF6C,KAAKsD,GAAG,UAAWnG,GAIjB6C,KAAKsI,OACPmxB,EAAWz5B,KAAKsI,QAGhBtI,KAAKm5B,gBAAgB51B,KAAK,SAAUk2B,GAItCz5B,KAAKsD,GAAG,SAAUi2B,GAClBv5B,KAAKsD,GAAG,QAASq2B,GACjB35B,KAAKsD,GAAG,QAASq2B,GACjB35B,KAAKsD,GAAG,WAAYq2B,GACpB35B,KAAKsD,GAAG,QAASq2B,GAEV35B,IACT,EAGA,CACE,eAAgB,YAChB,aAAc,sBACd+Q,QAAQ,SAAUrI,GAClB2tB,EAAoBltB,UAAUT,GAAU,SAAUjJ,EAAGC,GACnD,OAAOM,KAAKm5B,gBAAgBzwB,GAAQjJ,EAAGC,EACzC,CACF,GAGA,CAAC,UAAW,aAAc,UAAUqR,QAAQ,SAAU6oB,GACpDj/B,OAAOC,eAAey7B,EAAoBltB,UAAWywB,EAAU,CAC7DhhB,IAAK,WAAc,OAAO5Y,KAAKm5B,gBAAgBS,EAAW,GAE9D,GAEAvD,EAAoBltB,UAAUotB,iBAAmB,SAAU9vB,GAqBzD,GAnBKA,EAAQmyB,UACXnyB,EAAQmyB,QAAU,CAAC,GAERnyB,EAAQ6uB,4BA2XGxrB,QA1XtBrD,EAAQ6uB,iBAAmB,IAMzB7uB,EAAQU,OAELV,EAAQa,WACXb,EAAQa,SAAWb,EAAQU,aAEtBV,EAAQU,OAIZV,EAAQgyB,UAAYhyB,EAAQxJ,KAAM,CACrC,IAAI48B,EAAYpzB,EAAQxJ,KAAK2I,QAAQ,KACjCi0B,EAAY,EACdpzB,EAAQgyB,SAAWhyB,EAAQxJ,MAG3BwJ,EAAQgyB,SAAWhyB,EAAQxJ,KAAKme,UAAU,EAAGye,GAC7CpzB,EAAQyS,OAASzS,EAAQxJ,KAAKme,UAAUye,GAE5C,CACF,EAIAxD,EAAoBltB,UAAUkuB,gBAAkB,WAE9C,IAAIxwB,EAAW7G,KAAKD,SAAS8G,SACzB8wB,EAAiB33B,KAAKD,SAAS03B,gBAAgB5wB,GACnD,IAAK8wB,EACH,MAAM,IAAIhoB,UAAU,wBAA0B9I,GAKhD,GAAI7G,KAAKD,SAAS+5B,OAAQ,CACxB,IAAIpC,EAAS7wB,EAAS2J,MAAM,GAAI,GAChCxQ,KAAKD,SAASsH,MAAQrH,KAAKD,SAAS+5B,OAAOpC,EAC7C,CAGA,IAAII,EAAU93B,KAAKm5B,gBACbxB,EAAeG,QAAQ93B,KAAKD,SAAUC,KAAK82B,mBAEjD,IAAK,IAAIpB,KADToC,EAAQhC,cAAgB91B,KACNw1B,GAChBsC,EAAQx0B,GAAGoyB,EAAOD,EAAcC,IAalC,GARA11B,KAAK+5B,YAAc,MAAM9e,KAAKjb,KAAKD,SAAS9C,MAC1C63B,EAAIzc,OAAOrY,KAAKD,UAGhBC,KAAKD,SAAS9C,KAIZ+C,KAAKg6B,YAAa,CAEpB,IAAItqB,EAAI,EACJqI,EAAO/X,KACPi6B,EAAUj6B,KAAK62B,qBAClB,SAASqD,EAAU36B,GAGlB,GAAIu4B,IAAY/f,EAAKohB,gBAGnB,GAAI55B,EACFwY,EAAK7V,KAAK,QAAS3C,QAGhB,GAAImQ,EAAIuqB,EAAQrxB,OAAQ,CAC3B,IAAIyoB,EAAS4I,EAAQvqB,KAEhBooB,EAAQqC,UACXrC,EAAQvd,MAAM8W,EAAOpd,KAAMod,EAAOgB,SAAU6H,EAEhD,MAESniB,EAAKye,QACZsB,EAAQtM,KAGd,CAtBA,EAuBF,CACF,EAGA6K,EAAoBltB,UAAU6tB,iBAAmB,SAAUD,GAEzD,IAAIqD,EAAarD,EAASqD,WACtBp6B,KAAKD,SAASs6B,gBAChBr6B,KAAK22B,WAAWh1B,KAAK,CACnBmzB,IAAK90B,KAAK+5B,YACVnB,QAAS7B,EAAS6B,QAClBwB,WAAYA,IAYhB,IAwBIE,EAxBAC,EAAWxD,EAAS6B,QAAQ2B,SAChC,IAAKA,IAA8C,IAAlCv6B,KAAKD,SAASy6B,iBAC3BJ,EAAa,KAAOA,GAAc,IAOpC,OANArD,EAAS0D,YAAcz6B,KAAK+5B,YAC5BhD,EAAS2D,UAAY16B,KAAK22B,WAC1B32B,KAAKkC,KAAK,WAAY60B,QAGtB/2B,KAAK62B,oBAAsB,IAW7B,GANAqC,EAAel5B,KAAKm5B,iBAEpBpC,EAAS/0B,YAIHhC,KAAK02B,eAAiB12B,KAAKD,SAASw3B,aACxC,MAAM,IAAIrB,EAKZ,IAAIyE,EAAiB36B,KAAKD,SAAS46B,eAC/BA,IACFL,EAAiB3/B,OAAOe,OAAO,CAE7Bk/B,KAAM7D,EAAShwB,IAAI8zB,UAAU,SAC5B76B,KAAKD,SAAS64B,UAOnB,IAAIlwB,EAAS1I,KAAKD,SAAS2I,SACP,MAAf0xB,GAAqC,MAAfA,IAAgD,SAAzBp6B,KAAKD,SAAS2I,QAK5C,MAAf0xB,IAAwB,iBAAiBnf,KAAKjb,KAAKD,SAAS2I,WAC/D1I,KAAKD,SAAS2I,OAAS,MAEvB1I,KAAK62B,oBAAsB,GAC3B6B,EAAsB,aAAc14B,KAAKD,SAAS64B,UAIpD,IA6HkB/Z,EAAUrb,EA7HxBs3B,EAAoBpC,EAAsB,UAAW14B,KAAKD,SAAS64B,SAGnEmC,EAAkB/C,EAASh4B,KAAK+5B,aAChCiB,EAAcF,GAAqBC,EAAgB5zB,KACnD8zB,EAAa,QAAQhgB,KAAKsf,GAAYv6B,KAAK+5B,YAC7CjF,EAAIzc,OAAO1d,OAAOe,OAAOq/B,EAAiB,CAAE5zB,KAAM6zB,KAGhDE,GAoHcrc,EApHW0b,EAoHD/2B,EApHWy3B,EAsHhC5F,EAAe,IAAIN,EAAIlW,EAAUrb,GAAQw0B,EAASlD,EAAI/rB,QAAQvF,EAAMqb,KAvG3E,GAdAtZ,EAAM,iBAAkB21B,EAAY7C,MACpCr4B,KAAKg6B,aAAc,EACnBjC,EAAgBmD,EAAal7B,KAAKD,WAI9Bm7B,EAAYr0B,WAAak0B,EAAgBl0B,UACjB,WAAzBq0B,EAAYr0B,UACZq0B,EAAY/zB,OAAS6zB,IA6L1B,SAAqBG,EAAWC,GAC9BlG,EAAO5T,EAAS6Z,IAAc7Z,EAAS8Z,IACvC,IAAIzU,EAAMwU,EAAUvyB,OAASwyB,EAAOxyB,OAAS,EAC7C,OAAO+d,EAAM,GAAwB,MAAnBwU,EAAUxU,IAAgBwU,EAAUv7B,SAASw7B,EACjE,CAhMMC,CAAYH,EAAY/zB,KAAM6zB,KAChCtC,EAAsB14B,KAAKk3B,cAAel3B,KAAKD,SAAS64B,SAItDzD,EAAWwF,GAAiB,CAC9B,IAAIW,EAAkB,CACpB1C,QAAS7B,EAAS6B,QAClBwB,WAAYA,GAEVmB,EAAiB,CACnBzG,IAAKmG,EACLvyB,OAAQA,EACRkwB,QAAS0B,GAEXK,EAAe36B,KAAKD,SAAUu7B,EAAiBC,GAC/Cv7B,KAAKu2B,iBAAiBv2B,KAAKD,SAC7B,CAGAC,KAAKq3B,iBACP,EAsMAjuB,EAAOvO,QAAU4Q,EAAK,CAAEupB,KAAMA,EAAMC,MAAOA,IAC3C7rB,EAAOvO,QAAQ4Q,KAAOA,C,2BCnsBtB,MAAO2f,YAAaoQ,GAAqB,EAAQ,MAEjDpyB,EAAOvO,QAAU4L,IAChBA,EAAU,IAAIA,GAEd,MAAM,MAACsa,GAASta,EAChB,IAAI,SAAC4rB,GAAY5rB,EACjB,MAAMuL,EAAwB,WAAbqgB,EACjB,IAAItwB,GAAa,EAEbgf,EACHhf,IAAeswB,GAAYrgB,GAE3BqgB,EAAWA,GAAY,OAGpBrgB,IACHqgB,EAAW,MAGZ,MAAMvW,EAAS,IAAI0f,EAAkB,CAACz5B,eAElCswB,GACHvW,EAAO2f,YAAYpJ,GAGpB,IAAIzpB,EAAS,EACb,MAAM8yB,EAAS,GAsBf,OApBA5f,EAAOxY,GAAG,OAAQq4B,IACjBD,EAAO/5B,KAAKg6B,GAER55B,EACH6G,EAAS8yB,EAAO9yB,OAEhBA,GAAU+yB,EAAM/yB,SAIlBkT,EAAO8f,iBAAmB,IACrB7a,EACI2a,EAGD1pB,EAAWH,OAAO3H,OAAOwxB,EAAQ9yB,GAAU8yB,EAAOl3B,KAAK,IAG/DsX,EAAO+f,kBAAoB,IAAMjzB,EAE1BkT,E,2BCjDR,MAAOggB,UAAWC,GAAmB,EAAQ,KACvCC,EAAO,EAAQ,KACfC,EAAe,EAAQ,MAE7B,MAAMC,UAAuBjgC,MAC5B,WAAA6D,GACC0C,MAAM,sBACNxC,KAAK3B,KAAO,gBACb,EAGD1B,eAAe8gB,EAAU0e,EAAa11B,GACrC,IAAK01B,EACJ,OAAOrzB,QAAQG,OAAO,IAAIhN,MAAM,sBAGjCwK,EAAU,CACT21B,UAAW/1B,OACRI,GAGJ,MAAM,UAAC21B,GAAa31B,EAEpB,IAAIqV,EA2BJ,aA1BM,IAAIhT,QAAQ,CAACC,EAASE,KAC3B,MAAMozB,EAAgB98B,IAEjBA,GAASuc,EAAO+f,qBAAuBE,EAAgBlwB,aAC1DtM,EAAM+8B,aAAexgB,EAAO8f,oBAG7B3yB,EAAO1J,IAGRuc,EAASkgB,EAAKG,EAAaF,EAAax1B,GAAUlH,IAC7CA,EACH88B,EAAc98B,GAIfwJ,MAGD+S,EAAOxY,GAAG,OAAQ,KACbwY,EAAO+f,oBAAsBO,GAChCC,EAAc,IAAIH,OAKdpgB,EAAO8f,kBACf,CAEAxyB,EAAOvO,QAAU4iB,EAEjBrU,EAAOvO,QAAP,QAAyB4iB,EACzBrU,EAAOvO,QAAQw2B,OAAS,CAACvV,EAAQrV,IAAYgX,EAAU3B,EAAQ,IAAIrV,EAAS4rB,SAAU,WACtFjpB,EAAOvO,QAAQkmB,MAAQ,CAACjF,EAAQrV,IAAYgX,EAAU3B,EAAQ,IAAIrV,EAASsa,OAAO,IAClF3X,EAAOvO,QAAQqhC,eAAiBA,C,uBCzDhC9yB,EAAOvO,QAAU,CAAC0hC,EAAMC,EAAO3gC,QAAQ2gC,QACtC,MAAM3xB,EAAS0xB,EAAKje,WAAW,KAAO,GAAsB,IAAhBie,EAAK3zB,OAAe,IAAM,KAChEgpB,EAAW4K,EAAK52B,QAAQiF,EAAS0xB,GACjCE,EAAqBD,EAAK52B,QAAQ,MACxC,OAAqB,IAAdgsB,KAA4C,IAAxB6K,GAA6B7K,EAAW6K,G,2BCLpE,IAAIC,EAAa18B,MAAQA,KAAK08B,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAI/zB,UAAU,SAAUC,EAASE,GAC/C,SAAS8zB,EAAUjiC,GAAS,IAAMwU,EAAKwtB,EAAUzsB,KAAKvV,GAAS,CAAE,MAAOkiC,GAAK/zB,EAAO+zB,EAAI,CAAE,CAC1F,SAASC,EAASniC,GAAS,IAAMwU,EAAKwtB,EAAiB,MAAEhiC,GAAS,CAAE,MAAOkiC,GAAK/zB,EAAO+zB,EAAI,CAAE,CAC7F,SAAS1tB,EAAK9P,GAJlB,IAAe1E,EAIa0E,EAAOZ,KAAOmK,EAAQvJ,EAAO1E,QAJ1CA,EAIyD0E,EAAO1E,MAJhDA,aAAiB+hC,EAAI/hC,EAAQ,IAAI+hC,EAAE,SAAU9zB,GAAWA,EAAQjO,EAAQ,IAIjBkO,KAAK+zB,EAAWE,EAAW,CAC7G3tB,GAAMwtB,EAAYA,EAAUpqB,MAAMiqB,EAASC,GAAc,KAAKvsB,OAClE,EACJ,EACInL,EAAmBlF,MAAQA,KAAKkF,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACAxK,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAMoiC,EAAQh4B,EAAgB,EAAQ,OAChCi4B,EAAQj4B,EAAgB,EAAQ,OAChCk4B,EAAQl4B,EAAgB,EAAQ,OAChCm4B,EAAWn4B,EAAgB,EAAQ,OACnCG,EAAUH,EAAgB,EAAQ,OAClCo4B,EAAe,EAAQ,MACvBC,EAAyBr4B,EAAgB,EAAQ,OACjDK,EAAQF,EAAQrI,QAAQ,2BAe9B,MAAMwgC,UAAwBF,EAAav3B,MACvC,WAAAjG,CAAYkG,GACR,IAAIF,EAOJ,GALIA,EADiB,iBAAVE,EACAo3B,EAAMpgC,QAAQ0M,MAAM1D,GAGpBA,GAENF,EACD,MAAM,IAAI7J,MAAM,gEAEpBsJ,EAAM,4CAA6CO,GACnDtD,MAAMsD,GACN,MAAM23B,EAAQ9iC,OAAOe,OAAO,CAAC,EAAGoK,GAiHxC,IAAiBe,EA9GT7G,KAAK09B,YAAc53B,EAAK43B,aA+GD,iBADd72B,EA9GsC42B,EAAM52B,WA+GnB,aAAaoU,KAAKpU,GA7GpD42B,EAAMt2B,KAAOs2B,EAAMn2B,UAAYm2B,EAAMt2B,KACX,iBAAfs2B,EAAMr2B,OACbq2B,EAAMr2B,KAAOhL,SAASqhC,EAAMr2B,KAAM,MAEjCq2B,EAAMr2B,MAAQq2B,EAAMt2B,OACrBs2B,EAAMr2B,KAAOpH,KAAK09B,YAAc,IAAM,IAItC19B,KAAK09B,eAAiB,kBAAmBD,KACzCA,EAAME,cAAgB,CAAC,aAEvBF,EAAMt2B,MAAQs2B,EAAMxgC,cAKbwgC,EAAMxgC,YACNwgC,EAAMhF,UAEjBz4B,KAAKy9B,MAAQA,CACjB,CAOA,QAAAtgC,CAAS4J,EAAKjB,GACV,OAAO42B,EAAU18B,UAAW,OAAQ,EAAG,YACnC,MAAM,MAAEy9B,EAAK,YAAEC,GAAgB19B,KAE/B,IAAIsI,EACAo1B,GACAn4B,EAAM,4BAA6Bk4B,GACnCn1B,EAAS60B,EAAMngC,QAAQ4gC,QAAQH,KAG/Bl4B,EAAM,4BAA6Bk4B,GACnCn1B,EAAS40B,EAAMlgC,QAAQ4gC,QAAQH,IAEnC,MAAM7E,EAAUj+B,OAAOe,OAAO,CAAC,EAAG+hC,EAAM7E,SAExC,IAAIiF,EAAU,WADM/3B,EAAKqB,QAAQrB,EAAKsB,oBAGlCq2B,EAAMK,OACNlF,EAAQ,uBAAyB,SAAS/mB,OAAOM,KAAKsrB,EAAMK,MAAMC,SAAS,aAI/E,IAAI,KAAE52B,EAAI,KAAEC,EAAI,eAAEF,GAAmBpB,GAuDjD,SAAuBsB,EAAM42B,GACzB,OAAOz1B,SAAUy1B,GAAmB,KAAT52B,GAAiB42B,GAAmB,MAAT52B,EAC1D,EAxDiB62B,CAAc72B,EAAMF,KACrBC,GAAQ,IAAIC,KAEhBwxB,EAAQgC,KAAOzzB,EACfyxB,EAAQsF,WAAa,QACrB,IAAK,MAAM7/B,KAAQ1D,OAAOkf,KAAK+e,GAC3BiF,GAAW,GAAGx/B,MAASu6B,EAAQv6B,SAEnC,MAAM8/B,EAAuBZ,EAAuBvgC,QAAQsL,GAC5DA,EAAOiS,MAAM,GAAGsjB,SAChB,MAAM,WAAEzD,EAAU,SAAEgE,SAAmBD,EACvC,GAAmB,MAAf/D,EAAoB,CAEpB,GADArzB,EAAIxD,KAAK,SAAUgsB,GACfzpB,EAAKoB,eAAgB,CAGrB3B,EAAM,sCACN,MAAM84B,EAAav4B,EAAKu4B,YAAcv4B,EAAKqB,KAC3C,OAAOg2B,EAAMngC,QAAQ4gC,QAAQjjC,OAAOe,OAAOf,OAAOe,OAAO,CAAC,EA0C9E,SAAcwf,KAAQrB,GAClB,MAAMykB,EAAM,CAAC,EACb,IAAIxkB,EACJ,IAAKA,KAAOoB,EACHrB,EAAKiF,SAAShF,KACfwkB,EAAIxkB,GAAOoB,EAAIpB,IAGvB,OAAOwkB,CACX,CAnDiFC,CAAKz4B,EAAM,OAAQ,WAAY,OAAQ,SAAU,CAAEwC,SAC5G+1B,eACR,CACA,OAAO/1B,CACX,CAWAA,EAAOtG,UACP,MAAMw8B,EAAa,IAAItB,EAAMlgC,QAAQyhC,OAAO,CAAEriB,UAAU,IAYxD,OAXAoiB,EAAWriB,UAAW,EAEtBpV,EAAIxD,KAAK,SAAWm7B,IAChBn5B,EAAM,6CACN83B,EAASrgC,QAAQ0hC,EAAEC,cAAc,QAAU,GAI3CD,EAAE/8B,KAAKy8B,GACPM,EAAE/8B,KAAK,QAEJ68B,CACX,EACJ,EAGJ,SAASjP,EAAOjnB,GACZA,EAAOinB,QACX,CAHA10B,EAAA,QAAkB2iC,C,2BCxJlB,MAAMoB,GAHiB5+B,MAAQA,KAAKkF,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,GACgC,EAAQ,OACxC,SAAS05B,EAAsB/4B,GAC3B,OAAO,IAAI84B,EAAQ5hC,QAAQ8I,EAC/B,EACA,SAAW+4B,GACPA,EAAsBrB,gBAAkBoB,EAAQ5hC,QAChD6hC,EAAsB11B,UAAYy1B,EAAQ5hC,QAAQmM,SACrD,CAHD,CAGG01B,IAA0BA,EAAwB,CAAC,IACtDz1B,EAAOvO,QAAUgkC,C,2BCXjB,IAAI35B,EAAmBlF,MAAQA,KAAKkF,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACAxK,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MACMyK,EADUL,EAAgB,EAAQ,OAClBlI,QAAQ,0CA0D9BnC,EAAA,QAzDA,SAA4ByN,GACxB,OAAO,IAAIQ,QAAQ,CAACC,EAASE,KAKzB,IAAI61B,EAAgB,EACpB,MAAM7E,EAAU,GAChB,SAAS78B,IACL,MAAMsC,EAAI4I,EAAOlL,OACbsC,EAsBR,SAAgBA,GACZu6B,EAAQt4B,KAAKjC,GACbo/B,GAAiBp/B,EAAEkJ,OACnB,MAAMw1B,EAAWvsB,OAAO3H,OAAO+vB,EAAS6E,GAExC,IAAsB,IADDV,EAASx4B,QAAQ,YAKlC,OAFAL,EAAM,qDACNnI,IAGJ,MAAM2hC,EAAYX,EAASL,SAAS,QAAS,EAAGK,EAASx4B,QAAQ,SAC3Dw0B,GAAc2E,EAAU/iC,MAAM,KAAK,GACzCuJ,EAAM,gCAAiCw5B,GACvCh2B,EAAQ,CACJqxB,aACAgE,YAER,CAvCQY,CAAOt/B,GAEP4I,EAAO/E,KAAK,WAAYnG,EAChC,CAOA,SAASuf,EAAQ5U,GACbxC,EAAM,uBAAwBwC,EAClC,CACA,SAASyU,IACLjX,EAAM,QACV,CAyBA+C,EAAOhF,GAAG,QAxBV,SAASwE,EAAQC,GAXbO,EAAOgV,eAAe,MAAOd,GAC7BlU,EAAOgV,eAAe,QAASxV,GAC/BQ,EAAOgV,eAAe,QAASX,GAC/BrU,EAAOgV,eAAe,WAAYlgB,GAUlCmI,EAAM,aAAcwC,GACpBkB,EAAOlB,EACX,GAqBAO,EAAOhF,GAAG,QAASqZ,GACnBrU,EAAOhF,GAAG,MAAOkZ,GACjBpf,KAER,C,UC9DA,SAAS6hC,EAAWC,GAClB,OAAOp1B,MAAMC,QAAQm1B,GACjBA,EACA,CAACA,EACP,CAEA,MAIMC,EAAwB,QACxBC,EAAmC,iBACnCC,EAA4C,OAC5CC,EAAqC,OACrCC,EAAsB,SAUtBC,EAA0B,uBAE1BC,EAA4B,MAE5BC,EAAQ,IAGd,IAAIC,EAAiB,cAEC,oBAAXC,SACTD,EAAiBC,OAAOC,IAAI,gBAE9B,MAAMC,EAAaH,EAEbI,EAAS,CAACC,EAAQlmB,EAAKhf,KAC3BH,OAAOC,eAAeolC,EAAQlmB,EAAK,CAAChf,UAC7BA,GAGHmlC,EAAqB,mBAErBC,EAAe,KAAM,EA8BrBC,EAAY,CAEhB,CAIE,UACA,IA3EU,IA+EZ,CAKE,wBACA,CAAC9kB,EAAG+kB,EAAIC,IAAOD,GACQ,IAArBC,EAAGz6B,QAAQ,MArFH,IADA,KAgGZ,CACE,YACA,CAACyV,EAAG+kB,KACF,MAAM,OAACx3B,GAAUw3B,EACjB,OAAOA,EAAG5vB,MAAM,EAAG5H,EAASA,EAAS,GAnG7B,MAwHZ,CACE,iBACA4M,GAAS,KAAKA,KAGhB,CAEE,YACA,IAAM,QAIR,CAKE,MACA,IAAM,KAIR,CACE,MACA,IAAM,OAGR,CAOE,mBAGA,IAAM,eAIR,CAIE,YACA,WAEE,MAAQ,UAAUyF,KAAKjb,MAiBnB,IAJA,WAKN,GAIF,CAEE,0BAMA,CAACqb,EAAGnL,EAAOwL,IAAQxL,EAAQ,EAAIwL,EAAI9S,OAO/B,kBAMA,SAIN,CAOE,2BAIA,CAACyS,EAAGilB,EAAIC,IAOCD,EADWC,EAAGhrB,QAAQ,QAAS,YAK1C,CAIE,yBACA,IAjPW,MAoPb,CAEE,QACA,IAvPW,MA0Pb,CAKE,gCACA,CAACC,EAAOgrB,EAAYh1B,EAAOi1B,EAAWhwB,IAhQ3B,OAgQqC+vB,EAE5C,MAAMh1B,IAhNck1B,KAC1B,MAAM,OAAC93B,GAAU83B,EACjB,OAAOA,EAAQlwB,MAAM,EAAG5H,EAASA,EAAS,IA8MtB+3B,CAAoBF,KAAahwB,IACrC,MAAVA,GACEgwB,EAAU73B,OAAS,GAAM,EAIvB,IAhOU4C,IAASA,EAAM+J,QACnC0qB,EACA,CAACzqB,EAAOrD,EAAMe,IAAOf,EAAK6H,WAAW,IAAM9G,EAAG8G,WAAW,GACrDxE,EA7CQ,IA0QEorB,CAAcp1B,KAASi1B,KAI7B,MAIR,CAGE,YAcAjrB,GAAS,MAAMyF,KAAKzF,GAEhB,GAAGA,KAEH,GAAGA,gBAILqrB,EAAkC,iBAClCC,EAAc,QACdC,EAAoB,aAGpBC,EAA+B,CACnC,CAACF,GAAa,CAACzlB,EAAGilB,KACDA,EAOX,GAAGA,SAIH,SAEG,aAGT,CAACS,GAAmB,CAAC1lB,EAAGilB,KAEPA,EAGX,GAAGA,SAIH,SAEG,cAWLhf,EAAW4d,GAA8B,iBAAZA,EAenC,MAAM+B,EACJ,WAAAnhC,CACEkK,EACAk3B,EACAC,EACAC,EACAje,EACAtY,GAEA7K,KAAKgK,QAAUA,EACfhK,KAAKkhC,KAAOA,EACZlhC,KAAKmjB,SAAWA,EAEhB4c,EAAO//B,KAAM,OAAQmhC,GACrBpB,EAAO//B,KAAM,aAAcohC,GAC3BrB,EAAO//B,KAAM,cAAe6K,EAC9B,CAEA,SAAI8tB,GACF,MAAM7e,EA5ES,IA4EUgnB,EAEzB,OAAI9gC,KAAK8Z,GACA9Z,KAAK8Z,GAGP9Z,KAAKqhC,MAAMP,EAAahnB,EACjC,CAEA,cAAIwnB,GACF,MAAMxnB,EAtFS,IAsFUinB,EAEzB,OAAI/gC,KAAK8Z,GACA9Z,KAAK8Z,GAGP9Z,KAAKqhC,MAAMN,EAAmBjnB,EACvC,CAEA,KAAAunB,CAAOntB,EAAM4F,GACX,MAAM4B,EAAM1b,KAAKuhC,YAAYhsB,QAC3BsrB,EAGAG,EAA6B9sB,IAGzBykB,EAAQ34B,KAAKohC,WACf,IAAIjK,OAAOzb,EAAK,KAChB,IAAIyb,OAAOzb,GAEf,OAAOqkB,EAAO//B,KAAM8Z,EAAK6e,EAC3B,EAoCF,MAAM6I,EACJ,WAAA1hC,CAAashC,GACXphC,KAAKyhC,YAAcL,EACnBphC,KAAK0hC,OAAS,EAChB,CAEA,IAAAC,CAAM33B,GAEJ,GAAIA,GAAWA,EAAQ81B,GAGrB,OAFA9/B,KAAK0hC,OAAS1hC,KAAK0hC,OAAOx3B,OAAOF,EAAQ03B,OAAOA,aAChD1hC,KAAK4hC,QAAS,GAUhB,GANItgB,EAAStX,KACXA,EAAU,CACRA,YAnHaA,IAAWA,GAC3BsX,EAAStX,KACRm1B,EAAsBlkB,KAAKjR,KAC3Bo1B,EAAiCnkB,KAAKjR,IAGd,IAAzBA,EAAQpE,QAAQ,KAiHbi8B,CAAa73B,EAAQA,SAAU,CACjC,MAAM83B,EAtDO,GACjB93B,UACAk3B,QACCE,KACD,IAAIje,GAAW,EACXge,EAAOn3B,EAGe,IAAtBm3B,EAAKv7B,QAAQ,OACfud,GAAW,EACXge,EAAOA,EAAKY,OAAO,IAGrBZ,EAAOA,EAGN5rB,QAAQ8pB,EAA2C,KAGnD9pB,QAAQ+pB,EAAoC,KAE7C,MAAMiC,EAhGgBv3B,IAAWm2B,EAAU50B,OAC3C,CAACJ,GAAOia,EAAS4c,KACf72B,EAAKoK,QAAQ6P,EAAS4c,EAASzhC,KAAKyJ,IACtCA,GA6FoBi4B,CAAgBd,GAEpC,OAAO,IAAIF,EACTj3B,EACAk3B,EACAC,EACAC,EACAje,EACAoe,IAyBeW,CAAWl4B,EAAShK,KAAKyhC,aACtCzhC,KAAK4hC,QAAS,EACd5hC,KAAK0hC,OAAO//B,KAAKmgC,EACnB,CACF,CAGA,GAAAj9B,CAAKmF,GASH,OARAhK,KAAK4hC,QAAS,EAEd3C,EACE3d,EAAStX,GA3HMA,IAAWA,EAC/BhO,MAAMujC,GACNj7B,OAAOiE,SA0HE45B,CAAan4B,GACbA,GACJ+G,QAAQ/Q,KAAK2hC,KAAM3hC,MAEdA,KAAK4hC,MACd,CAUA,IAAA3mB,CAAMhe,EAAMmlC,EAAgBluB,GAC1B,IAEImuB,EAFAC,GAAU,EACVC,GAAY,EAGhBviC,KAAK0hC,OAAO3wB,QAAQ+wB,IAClB,MAAM,SAAC3e,GAAY2e,EAcjBS,IAAcpf,GAAYmf,IAAYC,GACnCpf,IAAamf,IAAYC,IAAcH,GAK5BN,EAAK5tB,GAAM+G,KAAKhe,KAMhCqlC,GAAWnf,EACXof,EAAYpf,EAEZkf,EAAclf,OAlhBF1nB,EAohBRqmC,KAGN,MAAMxD,EAAM,CACVgE,UACAC,aAOF,OAJIF,IACF/D,EAAIwD,KAAOO,GAGN/D,CACT,EAGF,MAAMkE,EAAa,CAAChrB,EAASirB,KAC3B,MAAM,IAAIA,EAAKjrB,IAGXkrB,EAAY,CAACzlC,EAAM0lC,EAAcC,IAChCthB,EAASrkB,GAQTA,GAKDylC,EAAUG,cAAc5lC,IAEnB2lC,EACL,0DAA0CD,KAC1CpzB,YARKqzB,EAAQ,yBAA0BjzB,WARlCizB,EACL,oCAAoCD,MACpChzB,WAqBAkzB,EAAgB5lC,GAAQuiC,EAAwBvkB,KAAKhe,GAE3DylC,EAAUG,cAAgBA,EAI1BH,EAAUI,QAAU7zB,GAAKA,EAGzB,MAAM8zB,EACJ,WAAAjjC,EAAa,WACXkjC,GAAa,EAAI,WACjB5B,EAAa4B,EAAU,mBACvBC,GAAqB,GACnB,CAAC,GACHlD,EAAO//B,KAAM8/B,GAAY,GAEzB9/B,KAAK0hC,OAAS,IAAIF,EAAYJ,GAC9BphC,KAAKkjC,kBAAoBD,EACzBjjC,KAAKmjC,YACP,CAEA,UAAAA,GAEEnjC,KAAKojC,aAAezoC,OAAOsP,OAAO,MAGlCjK,KAAKqjC,WAAa1oC,OAAOsP,OAAO,KAClC,CAEA,GAAApF,CAAKmF,GAQH,OAPIhK,KAAK0hC,OAAO78B,IAAImF,IAIlBhK,KAAKmjC,aAGAnjC,IACT,CAGA,UAAAsjC,CAAYt5B,GACV,OAAOhK,KAAK6E,IAAImF,EAClB,CAGA,KAAAu5B,CAAOZ,EAAcjU,EAAO0T,EAAgBoB,GAC1C,MAAMvmC,EAAO0lC,GAERD,EAAUI,QAAQH,GAUvB,OARAD,EACEzlC,EACA0lC,EACA3iC,KAAKkjC,iBACDV,EACAtC,GAGClgC,KAAKyjC,GAAGxmC,EAAMyxB,EAAO0T,EAAgBoB,EAC9C,CAEA,WAAAE,CAAazmC,GAGX,IAAKwiC,EAA0BxkB,KAAKhe,GAClC,OAAO+C,KAAKib,KAAKhe,GAGnB,MAAMumC,EAASvmC,EAAKjB,MAAM0jC,GAAOp7B,OAAOiE,SAGxC,GAFAi7B,EAAOp0B,MAEHo0B,EAAO56B,OAAQ,CACjB,MAAM2B,EAASvK,KAAKyjC,GAClBD,EAAOh/B,KAAKk7B,GAASA,EACrB1/B,KAAKqjC,YACL,EACAG,GAGF,GAAIj5B,EAAO+3B,QACT,OAAO/3B,CAEX,CAEA,OAAOvK,KAAK0hC,OAAOzmB,KAAKhe,GAAM,EAAO8jC,EACvC,CAEA,EAAA0C,CAEExmC,EAGAyxB,EAGA0T,EAGAoB,GAEA,GAAIvmC,KAAQyxB,EACV,OAAOA,EAAMzxB,GAYf,GATKumC,IAGHA,EAASvmC,EAAKjB,MAAM0jC,GAAOp7B,OAAOiE,UAGpCi7B,EAAOp0B,OAGFo0B,EAAO56B,OACV,OAAO8lB,EAAMzxB,GAAQ+C,KAAK0hC,OAAOzmB,KAAKhe,EAAMmlC,EAAgBtB,GAG9D,MAAMv2B,EAASvK,KAAKyjC,GAClBD,EAAOh/B,KAAKk7B,GAASA,EACrBhR,EACA0T,EACAoB,GAIF,OAAO9U,EAAMzxB,GAAQsN,EAAO+3B,QAGxB/3B,EACAvK,KAAK0hC,OAAOzmB,KAAKhe,EAAMmlC,EAAgBtB,EAC7C,CAEA,OAAA6C,CAAS1mC,GACP,OAAO+C,KAAKujC,MAAMtmC,EAAM+C,KAAKojC,cAAc,GAAOd,OACpD,CAEA,YAAAsB,GACE,OAAO3mC,IAAS+C,KAAK2jC,QAAQ1mC,EAC/B,CAEA,MAAAqH,CAAQu/B,GACN,OAAO5E,EAAU4E,GAAOv/B,OAAOtE,KAAK4jC,eACtC,CAGA,IAAA3oB,CAAMhe,GACJ,OAAO+C,KAAKujC,MAAMtmC,EAAM+C,KAAKqjC,YAAY,EAC3C,EAGF,MAAMS,EAAUr9B,GAAW,IAAIs8B,EAAOt8B,GAMhCs9B,EAAe,KAOnBrB,EAAUI,QALQpnB,GAAO,YAAYT,KAAKS,IACvC,wBAAwBT,KAAKS,GAC5BA,EACAA,EAAInG,QAAQ,MAAO,KAMvB,MAAMyuB,EAAmC,aACzCtB,EAAUG,cAAgB5lC,GACxB+mC,EAAiC/oB,KAAKhe,IACnC4lC,EAAc5lC,IASA,oBAAZpB,SACiB,UAArBA,QAAQ0wB,UAEXwX,IAKF36B,EAAOvO,QAAUipC,EAKjBA,EAAQ9mC,QAAU8mC,EAElB16B,EAAOvO,QAAQopC,YA1CKhnC,GAClBylC,EAAUzlC,GAAQylC,EAAUI,QAAQ7lC,GAAOA,EAAMijC,GA4CnDH,EAAO32B,EAAOvO,QAAS+kC,OAAOC,IAAI,gBAAiBkE,E,UCxwBnD36B,EAAOvO,QAAU,SAAmB6gB,GAClC,GAAmB,iBAARA,GAA4B,KAARA,EAC7B,OAAO,EAIT,IADA,IAAIlG,EACIA,EAAQ,yBAAyB0uB,KAAKxoB,IAAO,CACnD,GAAIlG,EAAM,GAAI,OAAO,EACrBkG,EAAMA,EAAIlL,MAAMgF,EAAMtF,MAAQsF,EAAM,GAAG5M,OACzC,CAEA,OAAO,CACT,C,cCZA,IAAIu7B,EAAY,EAAQ,MACpBC,EAAQ,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,KACnCC,EAAc,SAAS3oB,GACzB,GAAe,MAAXA,EAAI,GACN,OAAO,EAQT,IANA,IAAIxL,EAAQ,EACRo0B,GAAa,EACbC,GAAoB,EACpBC,GAAmB,EACnBC,GAAmB,EACnBC,GAAkB,EACfx0B,EAAQwL,EAAI9S,QAAQ,CACzB,GAAmB,MAAf8S,EAAIxL,GACN,OAAO,EAGT,GAAuB,MAAnBwL,EAAIxL,EAAQ,IAAc,UAAU+K,KAAKS,EAAIxL,IAC/C,OAAO,EAGT,IAA0B,IAAtBq0B,GAA0C,MAAf7oB,EAAIxL,IAAqC,MAAnBwL,EAAIxL,EAAQ,KAC3Dq0B,EAAmBr0B,IACrBq0B,EAAmB7oB,EAAI9V,QAAQ,IAAKsK,IAElCq0B,EAAmBr0B,GAAO,CAC5B,IAAwB,IAApBw0B,GAAyBA,EAAiBH,EAC5C,OAAO,EAGT,IAAwB,KADxBG,EAAiBhpB,EAAI9V,QAAQ,KAAMsK,KACNw0B,EAAiBH,EAC5C,OAAO,CAEX,CAGF,IAAyB,IAArBC,GAAyC,MAAf9oB,EAAIxL,IAAqC,MAAnBwL,EAAIxL,EAAQ,KAC9Ds0B,EAAkB9oB,EAAI9V,QAAQ,IAAKsK,IACbA,KAEI,KADxBw0B,EAAiBhpB,EAAI9V,QAAQ,KAAMsK,KACNw0B,EAAiBF,GAC5C,OAAO,EAKb,IAAyB,IAArBC,GAAyC,MAAf/oB,EAAIxL,IAAqC,MAAnBwL,EAAIxL,EAAQ,IAAc,QAAQ+K,KAAKS,EAAIxL,EAAQ,KAA0B,MAAnBwL,EAAIxL,EAAQ,KACxHu0B,EAAkB/oB,EAAI9V,QAAQ,IAAKsK,IACbA,KAEI,KADxBw0B,EAAiBhpB,EAAI9V,QAAQ,KAAMsK,KACNw0B,EAAiBD,GAC5C,OAAO,EAKb,IAAmB,IAAfH,GAAmC,MAAf5oB,EAAIxL,IAAqC,MAAnBwL,EAAIxL,EAAQ,KACpDo0B,EAAYp0B,IACdo0B,EAAY5oB,EAAI9V,QAAQ,IAAKsK,KAEZ,IAAfo0B,GAA2C,MAAvB5oB,EAAI4oB,EAAY,KACtCG,EAAkB/oB,EAAI9V,QAAQ,IAAK0+B,IACbA,KAEI,KADxBI,EAAiBhpB,EAAI9V,QAAQ,KAAM0+B,KACNI,EAAiBD,IAC5C,OAAO,EAMf,GAAmB,OAAf/oB,EAAIxL,GAAiB,CACvB,IAAII,EAAOoL,EAAIxL,EAAQ,GACvBA,GAAS,EACT,IAAIO,EAAQ2zB,EAAM9zB,GAElB,GAAIG,EAAO,CACT,IAAIe,EAAIkK,EAAI9V,QAAQ6K,EAAOP,IAChB,IAAPsB,IACFtB,EAAQsB,EAAI,EAEhB,CAEA,GAAmB,MAAfkK,EAAIxL,GACN,OAAO,CAEX,MACEA,GAEJ,CACA,OAAO,CACT,EAEIy0B,EAAe,SAASjpB,GAC1B,GAAe,MAAXA,EAAI,GACN,OAAO,EAGT,IADA,IAAIxL,EAAQ,EACLA,EAAQwL,EAAI9S,QAAQ,CACzB,GAAI,cAAcqS,KAAKS,EAAIxL,IACzB,OAAO,EAGT,GAAmB,OAAfwL,EAAIxL,GAAiB,CACvB,IAAII,EAAOoL,EAAIxL,EAAQ,GACvBA,GAAS,EACT,IAAIO,EAAQ2zB,EAAM9zB,GAElB,GAAIG,EAAO,CACT,IAAIe,EAAIkK,EAAI9V,QAAQ6K,EAAOP,IAChB,IAAPsB,IACFtB,EAAQsB,EAAI,EAEhB,CAEA,GAAmB,MAAfkK,EAAIxL,GACN,OAAO,CAEX,MACEA,GAEJ,CACA,OAAO,CACT,EAEA9G,EAAOvO,QAAU,SAAgB6gB,EAAKjV,GACpC,GAAmB,iBAARiV,GAA4B,KAARA,EAC7B,OAAO,EAGT,GAAIyoB,EAAUzoB,GACZ,OAAO,EAGT,IAAIkpB,EAAQP,EAOZ,OAJI59B,IAA8B,IAAnBA,EAAQo+B,SACrBD,EAAQD,GAGHC,EAAMlpB,EACf,C,uBC5IAtS,EAAOvO,QAAU,SAASsW,GACxB,MAAmB,iBAARA,EACFA,EAAMA,IAAQ,EAEJ,iBAARA,GAAmC,KAAfA,EAAIC,SAC1BjV,OAAO2oC,SAAW3oC,OAAO2oC,UAAU3zB,GAAO2zB,UAAU3zB,GAG/D,C,2BCTA,MACMia,EADS,EAAQ,MACIA,YACrB5a,EAAQ1G,MAAMX,UAAUqH,MAqH9B,SAASu0B,EAAc5W,EAAS1nB,GAC9B,GAAKqD,MAAMC,QAAQokB,GAUjB,IAAK,IAAIze,EAAI,EAAGs1B,EAAM7W,EAAQvlB,OAAQ8G,EAAIs1B,EAAKt1B,IAC7Cye,EAAQze,GAAKq1B,EAAa5W,EAAQze,GAAIjJ,OAXb,CAK3B,IAHK0nB,EAAQjS,gBAAkBiS,EAAQ8W,OACrC9W,EAAUA,EAAQ8W,KAAK7Z,EAAY3kB,MAEhC0nB,EAAQjS,iBAAmBiS,EAAQkB,QAAUlB,EAAQ8W,KACxD,MAAM,IAAIhpC,MAAM,uCAElBkyB,EAAQkB,OACV,CAKA,OAAOlB,CACT,CAnIA/kB,EAAOvO,QAEP,WACE,MAAMqqC,EAAe,GACf55B,EAAOkF,EAAMnH,KAAK3E,WACxB,IAAIygC,GAAU,EACV1+B,EAAU6E,EAAKA,EAAK1C,OAAS,GAE7BnC,IAAYqD,MAAMC,QAAQtD,IAA4B,MAAhBA,EAAQw+B,KAChD35B,EAAK8D,MAEL3I,EAAU,CAAC,EAGb,MAAM2+B,GAAwB,IAAhB3+B,EAAQ+kB,IAChB6Z,GAAoC,IAAtB5+B,EAAQ6+B,UACF,MAAtB7+B,EAAQ1E,aACV0E,EAAQ1E,YAAa,GAEM,MAAzB0E,EAAQ2rB,gBACV3rB,EAAQ2rB,cAAgB,OAE1B,MAAMhE,EAAehD,EAAY3kB,GAEjC,SAAS8+B,IACP,IAAK,IAAI71B,EAAI,EAAGs1B,EAAMtgC,UAAUkE,OAAQ8G,EAAIs1B,EAAKt1B,IAC/Cw1B,EAAavjC,KAAKojC,EAAargC,UAAUgL,GAAIjJ,IAG/C,OADA++B,IACOxlC,IACT,CAEA,SAASwlC,IACP,GAAIL,EACF,OAEFA,GAAU,EAEV,IAAIhX,EAAU+W,EAAav0B,QAC3B,IAAKwd,EAEH,YADAtyB,QAAQ+gB,SAAS6oB,GAGd37B,MAAMC,QAAQokB,KACjBA,EAAU,CAACA,IAGb,IAAIuX,EAAavX,EAAQvlB,OAAS,EAElC,SAASyH,MACDq1B,EAAa,IAGnBP,GAAU,EACVK,IACF,CAEA,SAASP,EAAMnpB,GACb,SAASU,IACPV,EAAOwB,eAAe,kBAAmBd,GACzCV,EAAOwB,eAAe,MAAOd,GACzB6oB,GACFvpB,EAAOwB,eAAe,QAASxV,GAEjCuI,GACF,CACA,SAASvI,EAASC,GAChBqmB,EAAalsB,KAAK,QAAS6F,EAC7B,CAEA,GAAI+T,EAAOI,eAAeypB,WACxB,OAAOt1B,IAGTyL,EAAOxY,GAAG,kBAAmBkZ,GAC7BV,EAAOxY,GAAG,MAAOkZ,GAEb6oB,GACFvpB,EAAOxY,GAAG,QAASwE,GAGrBgU,EAAOmpB,KAAK7W,EAAc,CAAE5C,KAAK,IAEjC1P,EAAOyT,QACT,CAEA,IAAK,IAAI7f,EAAI,EAAGA,EAAIye,EAAQvlB,OAAQ8G,IAClCu1B,EAAK9W,EAAQze,IAGfW,GACF,CAEA,SAASo1B,IACPN,GAAU,EAEV/W,EAAalsB,KAAK,cACdkjC,GACFhX,EAAa5C,KAEjB,CAWA,OATA4C,EAAawX,gBAAgB,GAC7BxX,EAAavpB,IAAM0gC,EACnBnX,EAAa9qB,GAAG,SAAU,SAAUwY,GAClCA,EAAO5Z,KAAK,kBACd,GAEIoJ,EAAK1C,QACP28B,EAAU7yB,MAAM,KAAMpH,GAEjB8iB,CACT,C,0BC1HA,MAAMhU,EAAO,EAAQ,MACfzQ,EAAS,EAAQ,MACjBk8B,EAAY,EAAQ,MACpBloC,EAAQ,EAAQ,KAEhBmoC,EAAgBl/B,GAAW,KAANA,GAAkB,OAANA,EACjCm/B,EAAYn/B,IAChB,MAAMsJ,EAAQtJ,EAAEhB,QAAQ,KACxB,OAAOsK,GAAS,GAAKtJ,EAAEhB,QAAQ,IAAKsK,IAAU,GAqB1Ckd,EAAa,CAAC4Y,EAAM/kB,EAAUxa,KAClCwa,EAAW,GAAG/W,OAAO+W,GACrB+kB,EAAO,GAAG97B,OAAO87B,GAEjB,IAAIzH,EAAO,IAAI55B,IACXshC,EAAO,IAAIthC,IACXwnB,EAAQ,IAAIxnB,IACZ0vB,EAAY,EAEZ6R,EAAW9yB,IACb+Y,EAAMtnB,IAAIuO,EAAMvJ,QACZpD,GAAWA,EAAQy/B,UACrBz/B,EAAQy/B,SAAS9yB,IAIrB,IAAK,IAAI1D,EAAI,EAAGA,EAAIuR,EAASrY,OAAQ8G,IAAK,CACxC,IAAIy2B,EAAUN,EAAUvS,OAAOrS,EAASvR,IAAK,IAAKjJ,EAASy/B,aAAY,GACnEE,EAAUD,EAAQ/yB,MAAMgzB,SAAWD,EAAQ/yB,MAAMizB,eACjDD,GAAS/R,IAEb,IAAK,IAAI1wB,KAAQqiC,EAAM,CACrB,IAAIM,EAAUH,EAAQxiC,GAAM,IAEhByiC,GAAWE,EAAQH,QAAUG,EAAQH,WAG7CC,EACF7H,EAAK15B,IAAIyhC,EAAQz8B,SAEjB00B,EAAKgI,OAAOD,EAAQz8B,QACpBo8B,EAAKphC,IAAIyhC,EAAQz8B,SAErB,CACF,CAEA,IACI28B,GADSnS,IAAcpT,EAASrY,OAAS,IAAIujB,GAAS,IAAI8Z,IACzC3hC,OAAOX,IAAS46B,EAAKpX,IAAIxjB,IAE9C,GAAI8C,GAA8B,IAAnB+/B,EAAQ59B,OAAc,CACnC,IAAyB,IAArBnC,EAAQggC,SACV,MAAM,IAAIxqC,MAAM,yBAAyBglB,EAASzc,KAAK,UAGzD,IAAuB,IAAnBiC,EAAQigC,SAAwC,IAArBjgC,EAAQkgC,SACrC,OAAOlgC,EAAQmgC,SAAW3lB,EAAS9iB,IAAI8Q,GAAKA,EAAEsG,QAAQ,MAAO,KAAO0L,CAExE,CAEA,OAAOulB,GAOTpZ,EAAW5X,MAAQ4X,EAqBnBA,EAAWhI,QAAU,CAACpb,EAASvD,IAAYo/B,EAAU77B,EAASvD,GAyB9D2mB,EAAWyZ,IANXzZ,EAAW+Y,QAAU,CAACzqB,EAAKuF,EAAUxa,IAAYo/B,EAAU5kB,EAAUxa,EAApBo/B,CAA6BnqB,GAyB9E0R,EAAW0Z,IAAM,CAACd,EAAM/kB,EAAUxa,EAAU,CAAC,KAC3Cwa,EAAW,GAAG/W,OAAO+W,GAAU9iB,IAAIm1B,QACnC,IAAI9zB,EAAS,IAAImF,IACbwnB,EAAQ,GAORqa,EAAU,IAAI7hC,IAAIyoB,EAAW4Y,EAAM/kB,EAAU,IAAKxa,EAASy/B,SALhD9yB,IACT3M,EAAQy/B,UAAUz/B,EAAQy/B,SAAS9yB,GACvC+Y,EAAMxqB,KAAKyR,EAAMvJ,YAKnB,IAAK,IAAIlG,KAAQwoB,EACVqa,EAAQrf,IAAIxjB,IACfnE,EAAOqF,IAAIlB,GAGf,MAAO,IAAInE,IAuBb4tB,EAAW2Z,SAAW,CAACrrB,EAAK1R,EAASvD,KACnC,GAAmB,iBAARiV,EACT,MAAM,IAAI/L,UAAU,uBAAuByK,EAAKqB,QAAQC,OAG1D,GAAI5R,MAAMC,QAAQC,GAChB,OAAOA,EAAQtE,KAAKuJ,GAAKme,EAAW2Z,SAASrrB,EAAKzM,EAAGxI,IAGvD,GAAuB,iBAAZuD,EAAsB,CAC/B,GAAI87B,EAAcpqB,IAAQoqB,EAAc97B,GACtC,OAAO,EAGT,GAAI0R,EAAIoD,SAAS9U,IAAa0R,EAAI4C,WAAW,OAAS5C,EAAIlL,MAAM,GAAGsO,SAAS9U,GAC1E,OAAO,CAEX,CAEA,OAAOojB,EAAW+Y,QAAQzqB,EAAK1R,EAAS,IAAKvD,EAASsgC,UAAU,KAuBlE3Z,EAAW4Z,UAAY,CAAC9rB,EAAK+F,EAAUxa,KACrC,IAAK9I,EAAMm1B,SAAS5X,GAClB,MAAM,IAAIvL,UAAU,+CAEtB,IAAIkK,EAAOuT,EAAWzyB,OAAOkf,KAAKqB,GAAM+F,EAAUxa,GAC9CypB,EAAM,CAAC,EACX,IAAK,IAAIpW,KAAOD,EAAMqW,EAAIpW,GAAOoB,EAAIpB,GACrC,OAAOoW,GAsBT9C,EAAW1nB,KAAO,CAACsgC,EAAM/kB,EAAUxa,KACjC,IAAI0lB,EAAQ,GAAGjiB,OAAO87B,GAEtB,IAAK,IAAIh8B,IAAW,GAAGE,OAAO+W,GAAW,CACvC,IAAIklB,EAAUN,EAAUvS,OAAOtpB,GAAUvD,GACzC,GAAI0lB,EAAMzmB,KAAK/B,GAAQwiC,EAAQxiC,IAC7B,OAAO,CAEX,CACA,OAAO,GA2BTypB,EAAWhM,MAAQ,CAAC4kB,EAAM/kB,EAAUxa,KAClC,IAAI0lB,EAAQ,GAAGjiB,OAAO87B,GAEtB,IAAK,IAAIh8B,IAAW,GAAGE,OAAO+W,GAAW,CACvC,IAAIklB,EAAUN,EAAUvS,OAAOtpB,GAAUvD,GACzC,IAAK0lB,EAAM/K,MAAMzd,GAAQwiC,EAAQxiC,IAC/B,OAAO,CAEX,CACA,OAAO,GA8BTypB,EAAWtM,IAAM,CAACpF,EAAKuF,EAAUxa,KAC/B,GAAmB,iBAARiV,EACT,MAAM,IAAI/L,UAAU,uBAAuByK,EAAKqB,QAAQC,OAG1D,MAAO,GAAGxR,OAAO+W,GAAUG,MAAMnS,GAAK42B,EAAU52B,EAAGxI,EAAbo/B,CAAsBnqB,KAsB9D0R,EAAWuG,QAAU,CAAChS,EAAM/X,EAAOnD,KACjC,IAAIgb,EAAQ9jB,EAAMspC,UAAUxgC,GAExB+O,EADQqwB,EAAUrd,OAAO8K,OAAO3R,GAAO,IAAKlb,EAASktB,SAAS,IAChDuQ,KAAKziB,EAAQ9jB,EAAMupC,eAAet9B,GAASA,GAE7D,GAAI4L,EACF,OAAOA,EAAMhF,MAAM,GAAGrS,IAAIyI,QAAgB,IAAXA,EAAe,GAAKA,IAoBvDwmB,EAAW5E,OAAS,IAAIld,IAASu6B,EAAUrd,UAAUld,GAgBrD8hB,EAAWY,KAAO,IAAI1iB,IAASu6B,EAAU7X,QAAQ1iB,GAgBjD8hB,EAAW1jB,MAAQ,CAACuX,EAAUxa,KAC5B,IAAIypB,EAAM,GACV,IAAK,IAAIlmB,IAAW,GAAGE,OAAO+W,GAAY,IACxC,IAAK,IAAIvF,KAAO/R,EAAO2pB,OAAOtpB,GAAUvD,GACtCypB,EAAIvuB,KAAKkkC,EAAUn8B,MAAMgS,EAAKjV,IAGlC,OAAOypB,GAoBT9C,EAAWzjB,OAAS,CAACK,EAASvD,KAC5B,GAAuB,iBAAZuD,EAAsB,MAAM,IAAI2F,UAAU,qBACrD,OAAKlJ,IAA+B,IAApBA,EAAQijB,UAAsBqc,EAAU/7B,GAC/C,CAACA,GAEHL,EAAOK,EAASvD,IAOzB2mB,EAAW+Z,YAAc,CAACn9B,EAASvD,KACjC,GAAuB,iBAAZuD,EAAsB,MAAM,IAAI2F,UAAU,qBACrD,OAAOyd,EAAWzjB,OAAOK,EAAS,IAAKvD,EAASgD,QAAQ,KAQ1D2jB,EAAW2Y,UAAYA,EACvB38B,EAAOvO,QAAUuyB,C,cC9cjBhkB,EAAOvO,QAAU,EAAjB,K,2BCGA,IA2IuBusC,EAAYC,EAE7BC,EA7IFC,EAAK,EAAQ,MACbC,EAAU,gBAOVC,EAAsB,0BACtBC,EAAmB,WAyBvB,SAASC,EAASz8B,GAChB,IAAKA,GAAwB,iBAATA,EAClB,OAAO,EAIT,IAAIsK,EAAQiyB,EAAoBvD,KAAKh5B,GACjC08B,EAAOpyB,GAAS+xB,EAAG/xB,EAAM,GAAGe,eAEhC,OAAIqxB,GAAQA,EAAKD,QACRC,EAAKD,WAIVnyB,IAASkyB,EAAiBzsB,KAAKzF,EAAM,MAChC,OAIX,CArCA3a,EAAQ8sC,QAAUA,EAClB9sC,EAAQgtC,SAAW,CAAEC,OAAQH,GAC7B9sC,EAAQktC,YA4CR,SAAsBrsB,GAEpB,IAAKA,GAAsB,iBAARA,EACjB,OAAO,EAGT,IAAIksB,GAA6B,IAAtBlsB,EAAI9V,QAAQ,KACnB/K,EAAQitC,OAAOpsB,GACfA,EAEJ,IAAKksB,EACH,OAAO,EAIT,IAAiC,IAA7BA,EAAKhiC,QAAQ,WAAmB,CAClC,IAAI+hC,EAAU9sC,EAAQ8sC,QAAQC,GAC1BD,IAASC,GAAQ,aAAeD,EAAQpxB,cAC9C,CAEA,OAAOqxB,CACT,EAhEA/sC,EAAQmtC,UAyER,SAAoB98B,GAClB,IAAKA,GAAwB,iBAATA,EAClB,OAAO,EAIT,IAAIsK,EAAQiyB,EAAoBvD,KAAKh5B,GAGjC+8B,EAAOzyB,GAAS3a,EAAQusC,WAAW5xB,EAAM,GAAGe,eAEhD,SAAK0xB,IAASA,EAAKr/B,SAIZq/B,EAAK,EACd,EAxFAptC,EAAQusC,WAAazsC,OAAOsP,OAAO,MACnCpP,EAAQitC,OAgGR,SAAiB7qC,GACf,IAAKA,GAAwB,iBAATA,EAClB,OAAO,EAIT,IAAI+qC,EAAYR,EAAQ,KAAOvqC,GAC5BsZ,cACAwrB,OAAO,GAEV,OAAKiG,GAIEntC,EAAQwsC,MAAMW,KAHZ,CAIX,EA9GAntC,EAAQwsC,MAAQ1sC,OAAOsP,OAAO,MAqHPm9B,EAlHVvsC,EAAQusC,WAkHcC,EAlHFxsC,EAAQwsC,MAoHnCC,EAAa,CAAC,QAAS,cAAU7rC,EAAW,QAEhDd,OAAOkf,KAAK0tB,GAAIx2B,QAAQ,SAA0B7F,GAChD,IAAI08B,EAAOL,EAAGr8B,GACV+8B,EAAOL,EAAKR,WAEhB,GAAKa,GAASA,EAAKr/B,OAAnB,CAKAw+B,EAAWl8B,GAAQ+8B,EAGnB,IAAK,IAAIv4B,EAAI,EAAGA,EAAIu4B,EAAKr/B,OAAQ8G,IAAK,CACpC,IAAIs4B,EAAYC,EAAKv4B,GAErB,GAAI23B,EAAMW,GAAY,CACpB,IAAI71B,EAAOm1B,EAAW1hC,QAAQ2hC,EAAGF,EAAMW,IAAYtnB,QAC/CxN,EAAKo0B,EAAW1hC,QAAQgiC,EAAKlnB,QAEjC,GAAyB,6BAArB2mB,EAAMW,KACP71B,EAAOe,GAAOf,IAASe,GAAyC,iBAAnCm0B,EAAMW,GAAWjG,OAAO,EAAG,KAEzD,QAEJ,CAGAsF,EAAMW,GAAa98B,CACrB,CAtBA,CAuBF,E,cC1LF,UAWWyZ,EAAMmf,EAANnf,EAoBR3kB,KApBc8jC,EAoBR,SAAUoE,GAMf,IAAIC,GAAsB,EAOtBC,GAA8B,EAQ9BC,GAAwB,EAQxBC,GAAgC,EAGhCjB,EAAQ,4EAA4ErrC,MAAM,KAE1FusC,EAAU,CACV,CACIr9B,KAAM,UACNs9B,QAAS,CACL,CAAEt9B,KAAM,UAAWpQ,MAAO,IAC1B,CAAEoQ,KAAM,QAASpQ,MAAO,MACxB,CAAEoQ,KAAM,OAAQpQ,MAAO,OACvB,CAAEoQ,KAAM,QAASpQ,MAAO,QACxB,CAAEoQ,KAAM,SAAUpQ,MAAO,SACzB,CAAEoQ,KAAM,QAASpQ,MAAO,WAGhC,CACIoQ,KAAM,UACNs9B,QAAS,CACL,CAAEt9B,KAAM,QAASpQ,MAAO,IACxB,CAAEoQ,KAAM,OAAQpQ,MAAO,MACvB,CAAEoQ,KAAM,QAASpQ,MAAO,OACxB,CAAEoQ,KAAM,SAAUpQ,MAAO,OACzB,CAAEoQ,KAAM,QAASpQ,MAAO,UAGhC,CACIoQ,KAAM,QACNs9B,QAAS,CACL,CAAEt9B,KAAM,OAAQpQ,MAAO,IACvB,CAAEoQ,KAAM,QAASpQ,MAAO,KACxB,CAAEoQ,KAAM,SAAUpQ,MAAO,KACzB,CAAEoQ,KAAM,QAASpQ,MAAO,QAGhC,CACIoQ,KAAM,OACNs9B,QAAS,CACL,CAAEt9B,KAAM,QAASpQ,MAAO,GACxB,CAAEoQ,KAAM,SAAUpQ,MAAO,IACzB,CAAEoQ,KAAM,QAASpQ,MAAO,OAGhC,CACIoQ,KAAM,SACNs9B,QAAS,CACL,CAAEt9B,KAAM,QAASpQ,MAAO,OAMpC,SAAS2tC,EAAe/sB,EAAKxC,GACzB,QAAIA,EAAOtQ,OAAS8S,EAAI9S,UAIQ,IAAzB8S,EAAI9V,QAAQsT,EACvB,CAKA,SAASwvB,EAAWC,GAGhB,IAFA,IAAInpC,EAAS,GAENmpC,GACHnpC,GAAU,IACVmpC,GAAO,EAGX,OAAOnpC,CACX,CAqCA,SAASopC,EAAmBC,EAAQpiC,GAGhC,IAQIqiC,EAAWD,EAAS,IARJ1qC,EAChB0b,EAAKpT,GAASsnB,OACd,SAASjU,GACL,OAAOA,EAAM,IAAMrT,EAAQqT,EAC/B,GACFtV,KAAK,KAWP,OALKokC,EAAmBla,MAAMoa,KAC1BF,EAAmBla,MAAMoa,GAAYC,KAAKC,aAAaH,EAAQpiC,IAI5DmiC,EAAmBla,MAAMoa,EACpC,CAmBA,SAASG,EAAaC,EAAQziC,EAAS0iC,GACnC,IAwDIC,EACAC,EACAC,EA1DAC,EAAoB9iC,EAAQ8iC,kBAC5BC,EAAc/iC,EAAQ+iC,YACtBC,EAAWD,GAAe/iC,EAAQgjC,SAASj5B,QAC3Ck5B,EAA2BjjC,EAAQijC,yBACnCC,EAAuBljC,EAAQkjC,sBAAwB,EACvDC,EAAiBnjC,EAAQmjC,gBAAkB,EAC3CC,EAAoBpjC,EAAQojC,kBAC5BC,EAAmBrjC,EAAQqjC,iBAE/B,GAAIP,GAAqBJ,EAAY,CACjC,IAkBYY,EAlBRC,EAAsB,CACtBL,qBAAsBA,EACtBH,YAAaA,GAcjB,OAXII,IACAI,EAAoBC,sBAAwBL,EAC5CI,EAAoBE,sBAAwBN,GAK5CF,GAA4BR,EAAS,IACrCc,EAAoBN,yBAA2BA,GAG/CrB,GACKC,KACGyB,EAAkBtxB,EAAO,CAAC,EAAGhS,IACjB+iC,aAAc,EAC9BO,EAAgBD,iBAAmB,IACnCZ,EAASiB,WAAWlB,EAAaC,EAAQa,GAAkB,KAGxDnB,EAAmBO,EAAYa,GAAqB3xB,OAAO6wB,KAE7Dd,KACG2B,EAAkBtxB,EAAO,CAAC,EAAGhS,IACjB+iC,aAAc,EAC9BO,EAAgBD,iBAAmB,IACnCZ,EAASiB,WAAWlB,EAAaC,EAAQa,GAAkB,KAGxDb,EAAOkB,eAAejB,EAAYa,GAEjD,CAeA,IAAIK,GAVAX,EACeR,EAAOoB,YAAYZ,EAA2B,GAE9CR,EAAOqB,QAAQX,EAAiB,IAO3B5tC,MAAM,KAE9BstC,EAAiBe,EAAK,IAAM,GAI5BhB,GAFAgB,EAAOA,EAAK,GAAGruC,MAAM,MAEC,IAAM,GAa5B,IAAIwuC,GAZJpB,EAAgBiB,EAAK,IAAM,IAYOzhC,OAC9B6hC,EAAiBpB,EAAezgC,OAChC8hC,EAAaF,EAAgBC,EAC7BE,EAASvB,EAAgBC,GAEzBK,GAA4BgB,IAAgBhB,EAA2B,IAAOA,GAA4Be,IAAoBb,EAAiB,MAE/Ie,EAjKR,SAAqBA,GAKjB,IAJA,IAAIC,EAAcD,EAAO3uC,MAAM,IAAI6uC,UAC/Bn7B,EAAI,EACJo7B,GAAQ,EAELA,GAASp7B,EAAIk7B,EAAYhiC,QACxB8G,EACuB,MAAnBk7B,EAAYl7B,GACZk7B,EAAYl7B,GAAK,KAEjBk7B,EAAYl7B,IAAMtT,SAASwuC,EAAYl7B,GAAI,IAAM,GAAGquB,WACpD+M,GAAQ,IAGR1uC,SAASwuC,EAAYl7B,GAAI,IAAM,IAC/Bo7B,GAAQ,GAGZF,EAAYl7B,GAAK,KAGrBA,GAAK,EAOT,OAJIo7B,GACAF,EAAYjpC,KAAK,KAGdipC,EAAYC,UAAUrmC,KAAK,GACtC,CAoIiBumC,CAAYJ,IAEV/hC,SAAW8hC,EAAa,IAC/BF,GAAgC,GAIhCC,IACAE,EAASA,EAAOn6B,MAAM,GAAI,IAI9B44B,EAAgBuB,EAAOn6B,MAAM,EAAGg6B,GAChCnB,EAAiBsB,EAAOn6B,MAAMg6B,IAK9Bd,IACAL,EAAiBA,EAAe9zB,QAAQ,MAAO,KAInD,IAAIy1B,EAAW5uC,SAASktC,EAAgB,IAEpC0B,EAAW,EACP3B,EAAezgC,QAAUoiC,GAGzB5B,GAFAC,GAAkCX,EAAWsC,EAAW3B,EAAezgC,QAGvEygC,EAAiB,KAEjBD,GAAgCC,EAAe74B,MAAM,EAAGw6B,GACxD3B,EAAiBA,EAAe74B,MAAMw6B,IAEnCA,EAAW,IAClB3B,EAAkBX,EAAW54B,KAAKmK,IAAI+wB,GAAY5B,EAAcxgC,QAAUwgC,EAAgBC,EAE1FD,EAAgB,KAGfM,KAEDL,EAAiBA,EAAe74B,MAAM,EAAGo5B,IAEtBhhC,OAASghC,IACxBP,GAAkCX,EAAWkB,EAAiBP,EAAezgC,SAK7EwgC,EAAcxgC,OAAS+gC,IACvBP,EAAgBV,EAAWiB,EAAuBP,EAAcxgC,QAAUwgC,IAIlF,IAKQ6B,EALJC,EAAkB,GAGtB,GAAI1B,EAIA,IAHAa,EAAOjB,EAGAiB,EAAKzhC,QACJ6gC,EAAS7gC,SACTqiC,EAAQxB,EAAS94B,SAGjBu6B,IACAA,EAAkBrB,EAAoBqB,GAG1CA,EAAkBb,EAAK75B,OAAOy6B,GAASC,EAEvCb,EAAOA,EAAK75B,MAAM,GAAIy6B,QAG1BC,EAAkB9B,EAQtB,OAJIC,IACA6B,EAAkBA,EAAkBpB,EAAmBT,GAGpD6B,CACX,CAGA,SAASC,EAAqB1rC,EAAGC,GAC7B,OAAID,EAAE2rC,MAAMxiC,OAASlJ,EAAE0rC,MAAMxiC,QACjB,EAGRnJ,EAAE2rC,MAAMxiC,OAASlJ,EAAE0rC,MAAMxiC,OAClB,EAIJ,CACX,CA7MAggC,EAAmBla,MAAQ,CAAC,EAkP5B,IAAI2c,EAAY,CACZC,uBAAwB,CACpBC,EAAG,cACHC,GAAI,eACJ9M,EAAG,SACH+M,GAAI,UACJj1B,EAAG,SACHk1B,GAAI,UACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,QACHC,GAAI,SACJC,EAAG,OACHC,GAAI,SAERC,oBAAqB,CACjBd,EAAG,OACHC,GAAI,QACJ9M,EAAG,MACH+M,GAAI,OACJj1B,EAAG,MACHk1B,GAAI,OACJC,EAAG,KACHC,GAAI,MACJC,EAAG,KACHC,GAAI,MACJC,EAAG,KACHC,GAAI,MACJC,EAAG,KACHC,GAAI,MACJC,EAAG,KACHC,GAAI,OAERE,sBAAuB,CACnBC,IAAK,UACLC,GAAI,OACJC,GAAI,QAERC,mBAAoB,CAChB,CAAExhC,KAAM,WAAYmW,OAAQ,MAC5B,CAAEnW,KAAM,QAASmW,OAAQ,MAE7BsrB,kBAvDJ,SAA2BC,EAAOC,EAAcC,GAE5C,OAAqB,IAAjBD,GAAuC,OAAjBC,EACfF,EAGJA,EAAQA,CACnB,GAoDA,SAAS7iC,EAAQgX,GACb,MAAiD,mBAA1CpmB,OAAOwO,UAAU40B,SAAS10B,KAAK0X,EAC1C,CAGA,SAAS+R,EAAS5X,GACd,MAA+C,oBAAxCvgB,OAAOwO,UAAU40B,SAAS10B,KAAK6R,EAC1C,CAYA,SAAS7J,EAAK0P,EAAO5jB,GACjB,IAIIqY,EAJAtF,EAAQ,EAERN,EAAMmR,GAASA,EAAMnY,QAAU,EAWnC,IAPwB,mBAAbzL,IACPqY,EAAQrY,EACRA,EAAW,SAAUwG,GACjB,OAAOA,IAAS6R,CACpB,GAGGtF,EAAQN,GAAK,CAChB,GAAIzS,EAAS4jB,EAAM7Q,IAAW,OAAO6Q,EAAM7Q,GAC3CA,GAAS,CACb,CACJ,CAGA,SAAS68B,EAAKhsB,EAAO5jB,GACjB,IAAI+S,EAAQ,EACRN,EAAMmR,EAAMnY,OAEhB,GAAKmY,GAAUnR,EAEf,KAAOM,EAAQN,GAAK,CAChB,IAAsC,IAAlCzS,EAAS4jB,EAAM7Q,GAAQA,GAAoB,OAC/CA,GAAS,CACb,CACJ,CAGA,SAAS/R,EAAI4iB,EAAO5jB,GAChB,IAAI+S,EAAQ,EACRN,EAAMmR,EAAMnY,OACZ01B,EAAM,GAEV,IAAKvd,IAAUnR,EAAO,OAAO0uB,EAE7B,KAAOpuB,EAAQN,GACX0uB,EAAIpuB,GAAS/S,EAAS4jB,EAAM7Q,GAAQA,GACpCA,GAAS,EAGb,OAAOouB,CACX,CAGA,SAAS0O,EAAMjsB,EAAO5F,GAClB,OAAOhd,EAAI4iB,EAAO,SAAUpd,GACxB,OAAOA,EAAKwX,EAChB,EACJ,CAGA,SAAS8xB,EAAQlsB,GACb,IAAIud,EAAM,GAMV,OAJAyO,EAAKhsB,EAAO,SAAUpd,GACdA,GAAQ26B,EAAI38B,KAAKgC,EACzB,GAEO26B,CACX,CAGA,SAAS1X,EAAO7F,GACZ,IAAIud,EAAM,GAMV,OAJAyO,EAAKhsB,EAAO,SAAUmsB,GACb77B,EAAKitB,EAAK4O,IAAO5O,EAAI38B,KAAKurC,EACnC,GAEO5O,CACX,CAGA,SAAS6O,EAAa1tC,EAAGC,GACrB,IAAI4+B,EAAM,GAQV,OANAyO,EAAKttC,EAAG,SAAUytC,GACdH,EAAKrtC,EAAG,SAAU0tC,GACVF,IAAOE,GAAM9O,EAAI38B,KAAKurC,EAC9B,EACJ,GAEOtmB,EAAO0X,EAClB,CAGA,SAAS+O,EAAKtsB,EAAO5jB,GACjB,IAAImhC,EAAM,GASV,OAPAyO,EAAKhsB,EAAO,SAAUpd,EAAMuM,GACxB,IAAK/S,EAASwG,GAEV,OADA26B,EAAMvd,EAAMvQ,MAAMN,IACX,CAEf,GAEOouB,CACX,CAUA,SAAS7lB,EAAOhZ,EAAGC,GACf,IAAK,IAAIoa,KAAOpa,EACRA,EAAE4tC,eAAexzB,KAAQra,EAAEqa,GAAOpa,EAAEoa,IAG5C,OAAOra,CACX,CAGA,SAASoa,EAAKpa,GACV,IAAI6+B,EAAM,GAEV,IAAK,IAAIxkB,KAAOra,EACRA,EAAE6tC,eAAexzB,IAAQwkB,EAAI38B,KAAKmY,GAG1C,OAAOwkB,CACX,CAGA,SAASuI,EAAI9lB,EAAO5jB,GAChB,IAAI+S,EAAQ,EACRN,EAAMmR,EAAMnY,OAEhB,IAAKmY,IAAUnR,EAAO,OAAO,EAE7B,KAAOM,EAAQN,GAAK,CAChB,IAAsC,IAAlCzS,EAAS4jB,EAAM7Q,GAAQA,GAAmB,OAAO,EACrDA,GAAS,CACb,CAEA,OAAO,CACX,CAuBA,SAASq9B,EAA6Bj1B,GAClC,MAKO,QALAA,EAAU,KAAM,KAAM,CACzBkxB,aAAa,EACbG,qBAAsB,EACtBO,sBAAuB,EACvBD,sBAAuB,GAE/B,CAEA,SAASuD,EAAqBl1B,GAC1B,IAAIm1B,GAAS,EAMb,UADAA,GADAA,GADAA,EAASA,GAA8D,MAApDn1B,EAAU,EAAG,KAAM,CAAEqxB,qBAAsB,MACS,OAApDrxB,EAAU,EAAG,KAAM,CAAEqxB,qBAAsB,MACS,QAApDrxB,EAAU,EAAG,KAAM,CAAEqxB,qBAAsB,OAO9D8D,GADAA,GADAA,GADAA,EAASA,GAA6F,QAAnFn1B,EAAU,MAAO,KAAM,CAAE2xB,sBAAuB,EAAGC,sBAAuB,MACS,UAAnF5xB,EAAU,MAAO,KAAM,CAAE2xB,sBAAuB,EAAGC,sBAAuB,MACS,UAAnF5xB,EAAU,MAAO,KAAM,CAAE2xB,sBAAuB,EAAGC,sBAAuB,MACS,WAAnF5xB,EAAU,MAAO,KAAM,CAAE2xB,sBAAuB,EAAGC,sBAAuB,OAQ7FuD,GADAA,GADAA,GADAA,GADAA,EAASA,GAAsE,QAA5Dn1B,EAAU,MAAO,KAAM,CAAEoxB,yBAA0B,MACS,QAA5DpxB,EAAU,MAAO,KAAM,CAAEoxB,yBAA0B,MACS,QAA5DpxB,EAAU,MAAO,KAAM,CAAEoxB,yBAA0B,MACS,UAA5DpxB,EAAU,MAAO,KAAM,CAAEoxB,yBAA0B,MACS,UAA5DpxB,EAAU,MAAO,KAAM,CAAEoxB,yBAA0B,OAKtE+D,GADAA,EAASA,GAA2D,UAAjDn1B,EAAU,IAAM,KAAM,CAAEkxB,aAAa,MACa,SAAlDlxB,EAAU,IAAM,KAAM,CAAEkxB,aAAa,KAI5D,CAGA,SAASkE,IACL,IAEIC,EAFAriC,EAAO,GAAGkF,MAAMnH,KAAK3E,WACrBpH,EAAW,CAAC,EA4BhB,GAxBAyvC,EAAKzhC,EAAM,SAAU0kB,EAAK9f,GACtB,IAAKA,EAAO,CACR,IAAKnG,EAAQimB,GACT,KAAM,2DAGV2d,EAAY3d,CAChB,CAEmB,iBAARA,GAAmC,mBAARA,EAKnB,iBAARA,EAKP8C,EAAS9C,IACTvX,EAAOnb,EAAU0yB,GALjB1yB,EAASswC,UAAY5d,EALrB1yB,EAAS6b,SAAW6W,CAY5B,IAEK2d,IAAcA,EAAU/kC,OACzB,MAAO,GAGXtL,EAASuwC,mBAAoB,EAE7B,IAjGIvP,EAiGAwP,EAAqB3vC,EAAIwvC,EAAW,SAAUI,GAC9C,OAAOA,EAAI11B,OAAO/a,EACtB,GAGI0wC,EAAcb,EAAa9F,EAAOzgB,EAAOomB,GAtGzC1O,EAAM,GAEVyO,EAoG2De,EApG/C,SAASliC,GACjB0yB,EAAMA,EAAIp0B,OAAO0B,EACrB,GAEO0yB,GAgGyE,UAE5E2P,EAAU3wC,EAAS2wC,QASvB,OAPIA,IACAD,EAAcA,EAAYx9B,MAAM,EAAGy9B,IAGvC3wC,EAASuwC,mBAAoB,EAC7BvwC,EAAS0wC,YAAcA,EAEhB7vC,EAAIwvC,EAAW,SAAUI,GAC5B,OAAOA,EAAI11B,OAAO/a,EACtB,EACJ,CAGA,SAAS4wC,IAEL,IAAI5iC,EAAO,GAAGkF,MAAMnH,KAAK3E,WACrBpH,EAAWmb,EAAO,CAAC,EAAGzY,KAAKqY,OAAO81B,UAKlCC,EAAiBpuC,KAAKouC,iBACtBC,EAAWruC,KAAKquC,WAGQ,mBAAjBruC,KAAKsuC,UAA6C,IAAnBtuC,KAAKsuC,YAC3CF,EAAiB,EACjBC,EAAW,GAGf,IAAIE,EAAaH,EAAiB,EAI9BI,EAAYtG,EAAOuG,SAAS3+B,KAAKmK,IAAIm0B,GAAiB,gBACtDM,EAAkBxG,EAAOuG,SAAS3+B,KAAKmK,IAAIo0B,GAAW,UAG1DtB,EAAKzhC,EAAM,SAAU0kB,GACE,iBAARA,GAAmC,mBAARA,EAKnB,iBAARA,EAKP8C,EAAS9C,IACTvX,EAAOnb,EAAU0yB,GALjB1yB,EAASswC,UAAY5d,EALrB1yB,EAAS6b,SAAW6W,CAY5B,GAEA,IAAI2e,EAAe,CACfC,MAAO,IACPC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,QAAS,IACTC,QAAS,IACTC,aAAc,KAGdC,EAAY,CACZntB,OAAQ,YACR2sB,MAAO,WACPC,OAAQ,QACRC,MAAO,WACPC,KAAM,WACNC,MAAO,WACPC,QAAS,QACTC,QAAS,QACTC,aAAc,QACdE,QAAS,OAIb/xC,EAAS+pC,MAAQA,EAEjB,IAAIiI,EAAU,SAAU1C,GACpB,OAAOv7B,EAAKg2B,EAAO,SAAUn8B,GACzB,OAAOkkC,EAAUlkC,GAAM+P,KAAK2xB,EAChC,EACJ,EAEI2C,EAAY,IAAIpY,OAAOh5B,EAAIkpC,EAAO,SAAUn8B,GAC5C,OAAOkkC,EAAUlkC,GAAMwV,MAC3B,GAAGlc,KAAK,KAAM,KAGdlH,EAASmxC,SAAWzuC,KAGpB,IAAImZ,EAAwC,mBAAtB7b,EAAS6b,SAA0B7b,EAAS6b,SAASzG,MAAMpV,GAAYA,EAAS6b,SAOlG60B,EAAc1wC,EAAS0wC,YAIvBH,EAAoBvwC,EAASuwC,kBAE7BI,EAAU3wC,EAAS2wC,QAGnBuB,EAAW,GAEVxB,IACGjkC,EAAQzM,EAASkyC,YACjBlyC,EAASkyC,SAAWlyC,EAASkyC,SAAShrC,KAAK,KAI3ClH,EAASkyC,UACTzC,EAAKzvC,EAASkyC,SAASh6B,MAAM+5B,GAAY,SAAU3C,GAC/C,IAAI1hC,EAAOokC,EAAQ1C,GAEN,WAAT1hC,GAA8B,YAATA,GAIzBskC,EAAS7tC,KAAKuJ,EAClB,IAKR,IAAIukC,EAAavH,EAAOuH,aAEnBA,IACDA,EAAa,CAAC,GAIlB1C,EAAKlzB,EAAKwxB,GAAY,SAAUvxB,GACE,mBAAnBuxB,EAAUvxB,GAQhB21B,EAAW,IAAM31B,KAClB21B,EAAW,IAAM31B,GAAOuxB,EAAUvxB,IAR7B21B,EAAW31B,KACZ21B,EAAW31B,GAAOuxB,EAAUvxB,GASxC,GAIAizB,EAAKlzB,EAAK41B,EAAWC,wBAAyB,SAAU/rC,GACpDwV,EAAWA,EAAS5D,QAAQ,IAAM5R,EAAO,IAAK8rC,EAAWC,uBAAuB/rC,GACpF,GAGA,IAAIwlC,EAAa7rC,EAAS6rC,YAAcjB,EAAOW,SAE3C8G,EAAeryC,EAASqyC,aACxBC,EAAYtyC,EAASsyC,UACrBhC,EAAYtwC,EAASswC,UACrBiC,EAAcvyC,EAASuyC,YACvBrG,EAAclsC,EAASksC,YACvBsG,EAAQxyC,EAASwyC,MAGjBC,EAAuBzyC,EAASyyC,sBAAwBnC,EAAY,EACpEoC,EAAoBD,EAAuBzyC,EAASswC,UAAY,EAChEqC,EAAyBD,EAEzBE,EAAW5yC,EAAS4yC,SACpBC,GAAa,EAEbC,EAAW9yC,EAAS8yC,SACpBC,GAAa,EAGb9G,EAAoBjsC,EAASisC,kBAC7BM,GAAoBvsC,EAASusC,kBAC7BC,GAAmBxsC,EAASwsC,iBAC5BL,GAAWnsC,EAASmsC,SAExBF,EAAoBA,IAAsBpB,GAAuBE,GAGjE,IAAIj3B,GAAO9T,EAAS8T,KAEhBrH,EAAQqH,MACRA,GAAOA,GAAK5M,KAAK,MAGR,OAAT4M,KAAkB68B,GAAWmC,GAAYL,KACzC3+B,GAAO,OAGE,OAATA,KAA0B,IAATA,IAA0B,SAATA,IAA4B,UAATA,KACrDA,GAAO,UAGE,IAATA,KACAA,GAAO,IAGX,IAAIk/B,GAAe,SAAU3sC,GACzB,OAAOA,EAAKsX,KAAK7J,GACrB,EAIIm/B,GAAQ,OAERC,GAAO,gBAGPC,GAAYxC,EAAU,GAAKpH,EAAI,CAPtB,QAO+B0J,GAAOC,IAAOF,IACtDI,GAAY7J,EAAI,CAPP,QAOgB0J,GAAOC,IAAOF,IACvCK,GAAU9J,EAAI,CANP,MAMc2J,IAAOF,IAC5BM,GAAY/J,EAAI,CALP,QAKgB2J,IAAOF,IAGhCO,GAAY1yC,EAAIgb,EAAS3D,MAAM+5B,GAAY,SAAU3C,EAAO18B,GAC5D,IAAIhF,EAAOokC,EAAQ1C,GAUnB,MAR0B,MAAtBA,EAAMp8B,MAAM,EAAG,KACfo8B,EAAQA,EAAMp8B,MAAM,GAEP,WAATtF,GAA8B,YAATA,GACrBskC,EAAS7tC,KAAKuJ,IAIf,CACHgF,MAAOA,EACPtH,OAAQgkC,EAAMhkC,OACdkoC,KAAM,GAGNlE,MAAiB,WAAT1hC,EAAoB0hC,EAAMr3B,QAAQ65B,EAAUntB,OAAQ,MAAQ2qB,EAGpE1hC,KAAiB,WAATA,GAA8B,YAATA,EAAsB,KAAOA,EAElE,GAGI6lC,GAAe,CACf7gC,MAAO,EACPtH,OAAQ,EACRgkC,MAAO,GACPkE,KAAM,GACN5lC,KAAM,MAGN8lC,GAAS,GAETrB,GACAkB,GAAUhG,UAGdkC,EAAK8D,GAAW,SAAUjE,GACtB,GAAIA,EAAM1hC,KAON,OANI6lC,GAAa7lC,MAAQ6lC,GAAaD,OAClCE,GAAOrvC,KAAKovC,SAGhBA,GAAenE,GAKf+C,EACAoB,GAAaD,KAAOlE,EAAMA,MAAQmE,GAAaD,KAE/CC,GAAaD,MAAQlE,EAAMA,KAEnC,IAEImE,GAAa7lC,MAAQ6lC,GAAaD,OAClCE,GAAOrvC,KAAKovC,IAGZpB,GACAqB,GAAOnG,UAKX,IAAIoG,GAAc9D,EAAa9F,EAAOzgB,EAAOqmB,EAAQD,EAAMgE,GAAQ,WAGnE,IAAKC,GAAYroC,OACb,OAAOokC,EAAMgE,GAAQ,QAAQxsC,KAAK,IAOtCysC,GAAc9yC,EAAI8yC,GAAa,SAAUC,EAAYhhC,GAEjD,IAMIihC,EANAC,EAAelhC,EAAQ,IAAO+gC,GAAYroC,OAG1CyoC,GAAcnhC,EAMdihC,EADe,UAAfD,GAAyC,WAAfA,EACfxC,EAAgB4C,GAAGJ,GAEnB1C,EAAU8C,GAAGJ,GAG5B,IAAIK,EAAazhC,KAAK0hC,MAAML,GACxBrE,EAAeqE,EAAWI,EAE1B3E,EAAQv7B,EAAK2/B,GAAQ,SAAUpE,GAC/B,OAAOsE,IAAetE,EAAM1hC,IAChC,GAmCA,OAjCImmC,GAAajB,GAAYe,EAAWf,IACpCC,GAAa,GAGbe,GAAclB,GAAYpgC,KAAKmK,IAAI3c,EAASmxC,SAAS6C,GAAGJ,IAAehB,IACvEC,GAAa,GAoBbkB,GAA6B,OAAhBxB,GAAwBjD,EAAMhkC,OAAS,IACpDinC,GAAc,GAIlBrB,EAAUiD,SAASF,EAAYL,GAC/BxC,EAAgB+C,SAASF,EAAYL,GAE9B,CACHC,SAAUA,EACVI,WAAYA,EAGZzE,aAAcsE,EAAatE,EAAe,EAC1CsE,WAAYA,EACZC,UAAWA,EACXnmC,KAAMgmC,EAGNQ,YAAa9E,EAAMhkC,OAE3B,GAEA,IA3gBoBzL,GA2gBhBw0C,GAAc7B,EAAQhgC,KAAK0hC,MAAQ1hC,KAAK8hC,MACxCC,GAAW,SAAU/2C,EAAOg3C,GAC5B,IAAIC,EAASjiC,KAAKkiC,IAAI,GAAIF,GAC1B,OAAOH,GAAY72C,EAAQi3C,GAAUA,CACzC,EAEIE,IAAa,EACbC,IAAU,EAEVC,GAAc,SAAUjB,EAAYhhC,GACpC,IAAIkiC,EAAgB,CAChB5I,YAAaA,EACbK,kBAAmBA,GACnBC,iBAAkBA,GAClBL,SAAUA,GACVF,kBAAmBA,GAiGvB,OA9FIwG,IACIC,GAAqB,GACrBkB,EAAWC,SAAW,EACtBD,EAAWK,WAAa,EACxBL,EAAWpE,aAAe,IAE1BsF,EAAc1I,yBAA2BsG,EACzCkB,EAAWlB,kBAAoBA,IAInCK,IAAe6B,KACXhB,EAAWG,WACXH,EAAWK,WAAanB,EACxBc,EAAWpE,aAAe,IAE1BoE,EAAWK,WAAa,EACxBL,EAAWpE,aAAe,IAI9BqD,IAAe+B,KACXhB,EAAWE,YACXF,EAAWK,WAAarB,EACxBgB,EAAWpE,aAAe,IAE1BoE,EAAWK,WAAa,EACxBL,EAAWpE,aAAe,IAI9BoE,EAAWE,YAAcF,EAAWlB,mBAAqBkB,EAAWlB,kBAAoBkB,EAAWK,WAAWxT,WAAWn1B,QAAU,EAE/HglC,EAAY,EACZsD,EAAWp2C,MAAQ+2C,GAASX,EAAWK,WAAY3D,GAC9B,IAAdA,EACPsD,EAAWp2C,MAAQ62C,GAAYT,EAAWK,WAAaL,EAAWpE,cAE9DiD,GAEImB,EAAWp2C,MADXg1C,EACmB+B,GAASX,EAAWC,SAAUnB,EAAoBkB,EAAWK,WAAWxT,WAAWn1B,QAEnFsoC,EAAWC,SAG9BD,EAAWK,aACXvB,GAAqBkB,EAAWK,WAAWxT,WAAWn1B,UAG1DwpC,EAAcxI,eAAiBgE,EAG3BsD,EAAWp2C,MADXg1C,EACmBoB,EAAWK,WAAaM,GAASX,EAAWpE,aAAcc,GAE1DsD,EAAWK,WAAaL,EAAWpE,cAK9DiD,GAAwBmB,EAAWK,YAEnCL,EAAWp2C,MAAQgV,KAAK8hC,MAAMC,GAASX,EAAWK,WAAYL,EAAWlB,kBAAoBkB,EAAWK,WAAWxT,WAAWn1B,SAE9HonC,GAAqBkB,EAAWK,WAAWxT,WAAWn1B,QAEtDsoC,EAAWp2C,MAAQo2C,EAAWK,WAIlCL,EAAWQ,YAAc,IAAM7B,GAAeoC,MAC9CG,EAAczI,qBAAuBuH,EAAWQ,YAE5CQ,IAAWE,EAAc1I,yBAA2BwH,EAAWQ,oBACxDU,EAAc1I,2BAIxBuI,KAAef,EAAWp2C,MAAQ,GAAc,KAATsW,IAAiCC,EAAKm+B,EAAU0B,EAAWhmC,OAASmG,EAAK28B,EAAakD,EAAWhmC,SACzI+mC,IAAa,GAGjBf,EAAWmB,eAAiBpJ,EAAaiI,EAAWp2C,MAAOs3C,EAAejJ,GAE1EiJ,EAAc5I,aAAc,EAC5B4I,EAActI,iBAAmB,IACjCoH,EAAWoB,iBAAmBrJ,EAAaiI,EAAWp2C,MAAOs3C,EAAe,MAE7C,IAA3BlB,EAAWQ,aAAyC,iBAApBR,EAAWhmC,OAC3CgmC,EAAWqB,iBAAmBtJ,EAAaiI,EAAWp2C,MAAO,CACzD6uC,qBAAsB,EACtBH,aAAa,GACd,MAAMh5B,MAAM,EAAG,IAGf0gC,CACX,EAOA,IAHAD,GAAchE,EADdgE,GAAc9yC,EAAI8yC,GAAakB,MAIfvpC,OAAS,EAAG,CACxB,IAAI4pC,GAAW,SAAUtnC,GACrB,OAAOmG,EAAK4/B,GAAa,SAAUC,GAC/B,OAAOA,EAAWhmC,OAASA,CAC/B,EACJ,EA6BA6hC,EAAKxE,EA3Ba,SAAUkK,GACxB,IAAIC,EAAmBF,GAASC,EAAOvnC,MAElCwnC,GAIL3F,EAAK0F,EAAOjK,QAAS,SAAUjQ,GAC3B,IAAIoa,EAAmBH,GAASja,EAAOrtB,MAElCynC,GAIDv2C,SAASs2C,EAAiBJ,iBAAkB,MAAQ/Z,EAAOz9B,QAC3D43C,EAAiBvB,SAAW,EAC5BuB,EAAiBnB,WAAa,EAC9BmB,EAAiB5F,aAAe,EAChC6F,EAAiBxB,UAAY,EAC7BwB,EAAiBpB,YAAc,EAC/BoB,EAAiB7F,aAAe,EAChC6F,EAAiBL,iBAAmBK,EAAiBpB,WAAWxT,WAChEmU,IAAU,EAElB,EACJ,EAGJ,CAqEA,OAlEIA,KACAD,IAAa,EACbjC,EAAoBC,EAEpBgB,GAAchE,EADdgE,GAAc9yC,EAAI8yC,GAAakB,OAI/BnE,GAAiBqC,IAAe/yC,EAAS8T,MAcrCq/B,KACAQ,GAAc5D,EAAK4D,GAAa,SAAUC,GAKtC,OAAQA,EAAWE,aAAeF,EAAWK,aAAelgC,EAAKm+B,EAAU0B,EAAWhmC,KAC1F,IAIA+iC,GAAWgD,GAAYroC,SACvBqoC,GAAcA,GAAYzgC,MAAM,EAAGy9B,IAInCyC,IAAaO,GAAYroC,OAAS,IA9sBtBzL,GA+sBuB,SAAU+zC,GAKzC,OAAQA,EAAWK,aAAelgC,EAAKm+B,EAAU0B,EAAWhmC,QAAUgmC,EAAWG,SACrF,EANAJ,GA5sBD5D,EA4sBuB4D,GA9sBTzgC,QAAQq6B,UAEP1tC,IAAU0tC,WAstBxB8F,KASAM,GAAchE,EARdgE,GAAc9yC,EAAI8yC,GAAa,SAAUC,EAAYhhC,GACjD,OAAIA,EAAQ,GAAKA,EAAQ+gC,GAAYroC,OAAS,IAAMsoC,EAAWK,WACpD,KAGJL,CACX,MAMAN,IAAoC,IAAvBK,GAAYroC,QAAiBqoC,GAAY,GAAGM,aAAiBzB,GAASmB,GAAY,GAAGG,YAAcH,GAAY,GAAGE,SAAWjB,IAC1Ie,GAAc,KA5ClBA,GAAchE,EAVdgE,GAAc9yC,EAAI8yC,GAAa,SAAUC,GACrC,OAAI7/B,EAAK28B,EAAa,SAAU4E,GAC5B,OAAO1B,EAAWhmC,OAAS0nC,CAC/B,GACW1B,EAGJ,IACX,IAkDArD,EACOoD,IAIXlE,EAAKiE,GAAQ,SAAUpE,GACnB,IAAI9yB,EAAM60B,EAAa/B,EAAM1hC,MAEzBgmC,EAAa7/B,EAAK4/B,GAAa,SAAUC,GACzC,OAAOA,EAAWhmC,OAAS0hC,EAAM1hC,IACrC,GAEA,GAAK4O,GAAQo3B,EAAb,CAIA,IAAIpsC,EAASosC,EAAWoB,iBAAiBt2C,MAAM,KAE/C8I,EAAO,GAAK1I,SAAS0I,EAAO,GAAI,IAE5BA,EAAO,GACPA,EAAO,GAAKqlC,WAAW,KAAOrlC,EAAO,GAAI,IAEzCA,EAAO,GAAK,KAGhB,IAAI+tC,EAAYpD,EAAW9C,kBAAkB7yB,EAAKhV,EAAO,GAAIA,EAAO,IAEhEguC,EAx9BZ,SAA2BlG,EAAO6C,GAC9B,IAAIqD,EAAS,GAoBb,OAlBA/F,EAAKlzB,EAAK41B,GAAa,SAAUsD,GAC7B,GAAmC,oBAA/BA,EAAcviC,MAAM,EAAG,IAA3B,CAIA,IAAIwiC,EAAYD,EAAcviC,MAAM,IAAI+F,cAExCw2B,EAAKlzB,EAAK41B,EAAWsD,IAAiB,SAAUE,GACxCA,EAASziC,MAAM,EAAG,KAAOo8B,GACzBkG,EAAOnxC,KAAK,CACRuJ,KAAM8nC,EACNl5B,IAAKm5B,EACL7H,MAAOqE,EAAWsD,GAAeE,IAG7C,EAZA,CAaJ,GAEOH,CACX,CAk8BqBI,CAAkBp5B,EAAK21B,GAEhC0D,GAAgB,EAEhBC,EAAmB,CAAC,EAGxBrG,EAAK0C,EAAW4D,oBAAqB,SAAUL,GAC3C,IAAI5H,EAAQ/5B,EAAKyhC,EAAQ,SAAU1H,GAC/B,OAAOA,EAAMlgC,OAAS8nC,EAAU9nC,MAAQkgC,EAAMtxB,MAAQ+4B,CAC1D,GAEIzH,IACAgI,EAAiBhI,EAAMlgC,MAAQkgC,EAAMA,MAEjC3C,EAAemE,EAAMkE,KAAMkC,EAAU3xB,UACrCurB,EAAMkE,KAAOlE,EAAMkE,KAAKv7B,QAAQy9B,EAAU3xB,OAAQ+pB,EAAMA,OACxD+H,GAAgB,GAG5B,GAGIvD,IAAcuD,IACdL,EAAO/kB,KAAKod,GAEZ4B,EAAK+F,EAAQ,SAAU1H,GACnB,OAAIgI,EAAiBhI,EAAMlgC,QAAUkgC,EAAMA,OACnC3C,EAAemE,EAAMkE,KAAM1F,EAAMA,aAQrC,EAGA3C,EAAemE,EAAMkE,KAAM1F,EAAMA,QAEjCwB,EAAMkE,KAAOlE,EAAMkE,KAAKv7B,QAAQ61B,EAAMA,MAAOgI,EAAiBhI,EAAMlgC,QAC7D,QAHX,CAKJ,GA1DJ,CA4DJ,IAGA8lC,GAAS7yC,EAAI6yC,GAAQ,SAAUpE,GAC3B,IAAKA,EAAM1hC,KACP,OAAO0hC,EAAMkE,KAGjB,IAAII,EAAa7/B,EAAK4/B,GAAa,SAAUC,GACzC,OAAOA,EAAWhmC,OAAS0hC,EAAM1hC,IACrC,GAEA,IAAKgmC,EACD,MAAO,GAGX,IAAIoC,EAAM,GAiCV,OA/BI3D,IACA2D,GAAO1G,EAAMkE,OAGbvC,GAAc8B,IAAe9B,GAAc4B,KAC3CmD,GAAO,KACPjD,GAAa,EACbF,GAAa,IAGb5B,GAAc4B,IAAe5B,GAAc8B,KAC3CiD,GAAO,KACPjD,GAAa,EACbF,GAAa,GAGb5B,IAAe2C,EAAWp2C,MAAQ,GAAc,KAATsW,IAAeC,EAAKm+B,EAAU0B,EAAWhmC,OAASmG,EAAK28B,EAAakD,EAAWhmC,SACtHooC,GAAO,IACP/E,GAAa,GAGE,iBAAf3B,EAAM1hC,MAA2BgmC,EAAWqB,iBAC5Ce,GAAOpC,EAAWqB,iBAElBe,GAAOpC,EAAWmB,eAGjB1C,IACD2D,GAAO1G,EAAMkE,MAGVwC,CACX,IAGc9uC,KAAK,IAAI+Q,QAAQ,eAAgB,IAAIA,QAAQ,eAAgB,IAC/E,CAGA,SAASg+B,IACL,IAAIxF,EAAM/tC,KAAKyuC,SAEX+D,EAAW,SAAkBtnC,GAC7B,OAAO6iC,EAAIyF,MAAMtoC,EACrB,EAEIuoC,EAAYpiC,EAAKrR,KAAKqnC,MAAOmL,GAE7BkB,EA1+BR,SAAkB3yB,EAAO5jB,GAGrB,IAFA,IAAI+S,EAAQ6Q,EAAMnY,OAEXsH,GAAS,GACZ,GAAI/S,EAAS4jB,EAAM7Q,IAAW,OAAO6Q,EAAM7Q,EAEnD,CAo+BmByjC,CAAS3zC,KAAKqnC,MAAOmL,GAGpC,OAAQiB,GACJ,IAAK,eACD,MAAO,OACX,IAAK,UACL,IAAK,UACD,MAAO,QACX,IAAK,QACD,MAAO,QACX,IAAK,OACD,GAAIA,IAAcC,EACd,MAAO,OAEf,IAAK,QACD,OAAID,IAAcC,EACP,QAGO,OAAd1zC,KAAKoR,OACLpR,KAAKoR,KAAO,QAGT,oBACX,IAAK,SACD,GAAIqiC,IAAcC,EACd,MAAO,OAEf,IAAK,QACD,OAAID,IAAcC,EACP,QAGO,OAAd1zC,KAAKoR,OACLpR,KAAKoR,KAAO,QAGT,oBACX,QAKI,OAJkB,OAAdpR,KAAKoR,OACLpR,KAAKoR,KAAO,QAGT,+BAEnB,CAGA,SAAS0H,EAAKyV,GACV,IAAKA,EACD,KAAM,2DAGVA,EAAQkgB,SAASp2B,OAASq1B,EAC1Bnf,EAAQkgB,SAASznC,GAAGqR,OAAS61B,EAE7B3f,EAAQkgB,SAASznC,GAAGqR,OAAO81B,SAAW,CA0BlC/8B,KAAM,KAQNo+B,SAAU,KAOVvB,QAAS,KAMTmC,SAAU,KAMVF,SAAU,KAQVtC,UAAW,EAMXkC,OAAO,EAKPD,YAAa,KAQb1G,WAAY,KAYZyG,WAAW,EAWXD,cAAc,EAIdnG,aAAa,EAQbuG,sBAAsB,EAStB52B,SAAUo6B,EAMVhK,mBAAmB,EAWnBM,kBAAmB,IAKnBC,iBAAkB,IAQlBL,SAAU,CAAC,IAGflb,EAAQqlB,aAAa,KAAMvI,EAC/B,CAGA,IAAIwI,EAA0B,SAAS3K,EAAQL,EAAQpiC,GACnD,OAAOyiC,EAAOkB,eAAevB,EAAQpiC,EACzC,EAEA0hC,EAjiCA,WAEI,KADa,GAEFiC,eAAe,IAC1B,CAAE,MAAOpN,GACL,MAAkB,eAAXA,EAAE3+B,IACb,CACA,OAAO,CACX,CAyhCsBy1C,IAAmCtG,EAAqBqG,GAC9EzL,EAA8BD,GAAuBoF,EAA6BsG,GAGlF,IAAIE,EAA4B,SAAS7K,EAAQL,EAAQpiC,GACrD,GAAsB,oBAAX0P,QAA0BA,QAAUA,OAAO4yB,MAAQ5yB,OAAO4yB,KAAKC,aACtE,OAAO7yB,OAAO4yB,KAAKC,aAAaH,EAAQpiC,GAAS4R,OAAO6wB,EAEhE,EAUA,OARAb,EAAwBmF,EAAqBuG,GAC7CzL,EAAgCD,GAAyBkF,EAA6BwG,GAGtFj7B,EAAKovB,GAIEpvB,CACX,EA1rDQ,EAAO,CAAC,cAAkB,0BAAP,EAAF,GAAS,+BAa1B6L,IAEAA,EAAKqvB,0BAA4BrvB,EAAKujB,OAASpE,EAAQnf,EAAKujB,QAAUpE,E,eCpBtE,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,8FAA8F7yC,MAClG,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,4DAA4Dn4C,MAClE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs4C,cAAe,SACfC,KAAM,SAAU3qC,GACZ,MAAO,QAAQqR,KAAKrR,EACxB,EACA4qC,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACDyF,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,EACAC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,eACTC,SAAU,eACVC,QAAS,iBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,YACNhX,EAAG,mBACH+M,GAAI,cACJj1B,EAAG,YACHk1B,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,SACJG,EAAG,WACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WAERuJ,uBAAwB,kBACxBC,QAAS,SAAU1M,GACf,OACIA,GACY,IAAXA,GAA2B,IAAXA,GAAgBA,GAAU,GAAK,MAAQ,KAEhE,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA3EyCjS,CAAQ,EAAQ,M,eCOlD,SAAWoE,GAAU,aAIzB,IAAI8N,EAAa,SAAUxkC,GACnB,OAAa,IAANA,EACD,EACM,IAANA,EACE,EACM,IAANA,EACE,EACAA,EAAI,KAAO,GAAKA,EAAI,KAAO,GACzB,EACAA,EAAI,KAAO,GACT,EACA,CAClB,EACAykC,EAAU,CACNvX,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,UACA,WACA,YAEJloB,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,WACA,WACA,YAEJm1B,EAAG,CACC,cACA,aACA,CAAC,SAAU,UACX,WACA,UACA,WAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,WACA,UAEJI,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,UACA,UAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,WACA,WACA,WAGR+J,EAAY,SAAUC,GAClB,OAAO,SAAUjN,EAAQkN,EAAe/0B,EAAQg1B,GAC5C,IAAItiC,EAAIiiC,EAAW9M,GACfxtB,EAAMu6B,EAAQE,GAAGH,EAAW9M,IAIhC,OAHU,IAANn1B,IACA2H,EAAMA,EAAI06B,EAAgB,EAAI,IAE3B16B,EAAInG,QAAQ,MAAO2zB,EAC9B,CACJ,EACA2F,EAAS,CACL,QACA,QACA,OACA,QACA,MACA,OACA,SACA,MACA,SACA,SACA,SACA,UAGG3G,EAAO+L,aAAa,QAAS,CACpCpF,OAAQA,EACRqF,YAAarF,EACbsF,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,wCAAwCp4C,MAAM,KAC7Dq4C,YAAa,gBAAgBr4C,MAAM,KACnCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVV,cAAe,MACfC,KAAM,SAAU3qC,GACZ,MAAO,MAAQA,CACnB,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,IAEA,GAEf,EACAtB,SAAU,CACNC,QAAS,wBACTC,QAAS,uBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNhX,EAAGwX,EAAU,KACbzK,GAAIyK,EAAU,KACd1/B,EAAG0/B,EAAU,KACbxK,GAAIwK,EAAU,KACdvK,EAAGuK,EAAU,KACbtK,GAAIsK,EAAU,KACdrK,EAAGqK,EAAU,KACbpK,GAAIoK,EAAU,KACdjK,EAAGiK,EAAU,KACbhK,GAAIgK,EAAU,KACd/J,EAAG+J,EAAU,KACb9J,GAAI8J,EAAU,MAElBO,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,KAAM,IAChC,EACAsgC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA5JyCjS,CAAQ,EAAQ,M,eCDlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wEAAwE7yC,MAC5E,KAEJk4C,YACI,wEAAwEl4C,MACpE,KAERm4C,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,wCAAwCp4C,MAAM,KAC7Dq4C,YAAa,gBAAgBr4C,MAAM,KACnCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,wBACTC,QAAS,sBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,OACH+M,GAAI,WACJj1B,EAAG,QACHk1B,GAAI,WACJC,EAAG,OACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJG,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,YAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,KAMhB,CA3DyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPV,EAAa,SAAUxkC,GACnB,OAAa,IAANA,EACD,EACM,IAANA,EACE,EACM,IAANA,EACE,EACAA,EAAI,KAAO,GAAKA,EAAI,KAAO,GACzB,EACAA,EAAI,KAAO,GACT,EACA,CAClB,EACAykC,EAAU,CACNvX,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,UACA,WACA,YAEJloB,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,WACA,WACA,YAEJm1B,EAAG,CACC,cACA,aACA,CAAC,SAAU,UACX,WACA,UACA,WAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,WACA,UAEJI,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,UACA,UAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,WACA,WACA,WAGR+J,EAAY,SAAUC,GAClB,OAAO,SAAUjN,EAAQkN,EAAe/0B,EAAQg1B,GAC5C,IAAItiC,EAAIiiC,EAAW9M,GACfxtB,EAAMu6B,EAAQE,GAAGH,EAAW9M,IAIhC,OAHU,IAANn1B,IACA2H,EAAMA,EAAI06B,EAAgB,EAAI,IAE3B16B,EAAInG,QAAQ,MAAO2zB,EAC9B,CACJ,EACA2F,EAAS,CACL,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,SACA,UAGG3G,EAAO+L,aAAa,QAAS,CACpCpF,OAAQA,EACRqF,YAAarF,EACbsF,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,wCAAwCp4C,MAAM,KAC7Dq4C,YAAa,gBAAgBr4C,MAAM,KACnCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVV,cAAe,MACfC,KAAM,SAAU3qC,GACZ,MAAO,MAAQA,CACnB,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,IAEA,GAEf,EACAtB,SAAU,CACNC,QAAS,wBACTC,QAAS,uBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNhX,EAAGwX,EAAU,KACbzK,GAAIyK,EAAU,KACd1/B,EAAG0/B,EAAU,KACbxK,GAAIwK,EAAU,KACdvK,EAAGuK,EAAU,KACbtK,GAAIsK,EAAU,KACdrK,EAAGqK,EAAU,KACbpK,GAAIoK,EAAU,KACdjK,EAAGiK,EAAU,KACbhK,GAAIgK,EAAU,KACd/J,EAAG+J,EAAU,KACb9J,GAAI8J,EAAU,MAElBS,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,KAAM,IAChC,EACAkhC,WAAY,SAAUp1B,GAClB,OAAOA,EACF9L,QAAQ,MAAO,SAAUC,GACtB,OAAOkhC,EAAUlhC,EACrB,GACCD,QAAQ,KAAM,IACvB,EACAsgC,KAAM,CACFC,IAAK,EACLC,IAAK,KAMhB,CA/KyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wEAAwE7yC,MAC5E,KAEJk4C,YACI,wEAAwEl4C,MACpE,KAERm4C,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,wCAAwCp4C,MAAM,KAC7Dq4C,YAAa,gBAAgBr4C,MAAM,KACnCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,wBACTC,QAAS,sBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,OACH+M,GAAI,WACJj1B,EAAG,QACHk1B,GAAI,WACJC,EAAG,OACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJG,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,YAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA3DyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGF1O,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,iGAAiG7yC,MACrG,KAEJk4C,YACI,0DAA0Dl4C,MAAM,KACpEm4C,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,wCAAwCp4C,MAAM,KAC7Dq4C,YAAa,gBAAgBr4C,MAAM,KACnCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVV,cAAe,MACfC,KAAM,SAAU3qC,GACZ,MAAO,MAAQA,CACnB,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,IAEA,GAEf,EACAtB,SAAU,CACNC,QAAS,wBACTC,QAAS,sBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,OACH+M,GAAI,WACJj1B,EAAG,QACHk1B,GAAI,WACJC,EAAG,OACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJG,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,YAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EACF9L,QAAQ,cAAe,SAAUC,GAC9B,OAAOohC,EAAUphC,EACrB,GACCxZ,MAAM,IACN6uC,UACArmC,KAAK,IACL+Q,QAAQ,0BAA2B,SAAUC,GAC1C,OAAOohC,EAAUphC,EACrB,GACCxZ,MAAM,IACN6uC,UACArmC,KAAK,IACL+Q,QAAQ,KAAM,IACvB,EACAkhC,WAAY,SAAUp1B,GAClB,OAAOA,EACF9L,QAAQ,MAAO,SAAUC,GACtB,OAAOkhC,EAAUlhC,EACrB,GACCD,QAAQ,KAAM,IACvB,EACAsgC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CApHyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGF1O,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,6EAA6E7yC,MACjF,KAEJk4C,YACI,6EAA6El4C,MACzE,KAERm4C,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,wCAAwCp4C,MAAM,KAC7Dq4C,YAAa,gBAAgBr4C,MAAM,KACnCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVV,cAAe,MACfC,KAAM,SAAU3qC,GACZ,MAAO,MAAQA,CACnB,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,IAEA,GAEf,EACAtB,SAAU,CACNC,QAAS,wBACTC,QAAS,sBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,OACH+M,GAAI,WACJj1B,EAAG,QACHk1B,GAAI,WACJC,EAAG,OACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJG,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,YAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EACF9L,QAAQ,gBAAiB,SAAUC,GAChC,OAAOohC,EAAUphC,EACrB,GACCD,QAAQ,KAAM,IACvB,EACAkhC,WAAY,SAAUp1B,GAClB,OAAOA,EACF9L,QAAQ,MAAO,SAAUC,GACtB,OAAOkhC,EAAUlhC,EACrB,GACCD,QAAQ,KAAM,IACvB,EACAsgC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7GyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,yEAAyE7yC,MAC7E,KAEJk4C,YACI,yEAAyEl4C,MACrE,KAERm4C,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,wCAAwCp4C,MAAM,KAC7Dq4C,YAAa,gBAAgBr4C,MAAM,KACnCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,wBACTC,QAAS,sBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,OACH+M,GAAI,WACJj1B,EAAG,QACHk1B,GAAI,WACJC,EAAG,OACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJG,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,YAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA3DyCjS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAETZ,EAAa,SAAUxkC,GACnB,OAAa,IAANA,EACD,EACM,IAANA,EACE,EACM,IAANA,EACE,EACAA,EAAI,KAAO,GAAKA,EAAI,KAAO,GACzB,EACAA,EAAI,KAAO,GACT,EACA,CAClB,EACAykC,EAAU,CACNvX,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,UACA,WACA,YAEJloB,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,WACA,WACA,YAEJm1B,EAAG,CACC,cACA,aACA,CAAC,SAAU,UACX,WACA,UACA,WAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,WACA,UAEJI,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,UACA,UAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,WACA,WACA,WAGR+J,EAAY,SAAUC,GAClB,OAAO,SAAUjN,EAAQkN,EAAe/0B,EAAQg1B,GAC5C,IAAItiC,EAAIiiC,EAAW9M,GACfxtB,EAAMu6B,EAAQE,GAAGH,EAAW9M,IAIhC,OAHU,IAANn1B,IACA2H,EAAMA,EAAI06B,EAAgB,EAAI,IAE3B16B,EAAInG,QAAQ,MAAO2zB,EAC9B,CACJ,EACA2F,EAAS,CACL,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,SACA,UAGC3G,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQA,EACRqF,YAAarF,EACbsF,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,wCAAwCp4C,MAAM,KAC7Dq4C,YAAa,gBAAgBr4C,MAAM,KACnCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVV,cAAe,MACfC,KAAM,SAAU3qC,GACZ,MAAO,MAAQA,CACnB,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,IAEA,GAEf,EACAtB,SAAU,CACNC,QAAS,wBACTC,QAAS,uBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNhX,EAAGwX,EAAU,KACbzK,GAAIyK,EAAU,KACd1/B,EAAG0/B,EAAU,KACbxK,GAAIwK,EAAU,KACdvK,EAAGuK,EAAU,KACbtK,GAAIsK,EAAU,KACdrK,EAAGqK,EAAU,KACbpK,GAAIoK,EAAU,KACdjK,EAAGiK,EAAU,KACbhK,GAAIgK,EAAU,KACd/J,EAAG+J,EAAU,KACb9J,GAAI8J,EAAU,MAElBS,SAAU,SAAUt1B,GAChB,OAAOA,EACF9L,QAAQ,gBAAiB,SAAUC,GAChC,OAAOohC,EAAUphC,EACrB,GACCD,QAAQ,KAAM,IACvB,EACAkhC,WAAY,SAAUp1B,GAClB,OAAOA,EACF9L,QAAQ,MAAO,SAAUC,GACtB,OAAOkhC,EAAUlhC,EACrB,GACCD,QAAQ,KAAM,IACvB,EACAsgC,KAAM,CACFC,IAAK,EACLC,IAAK,KAMhB,CA/LyCjS,CAAQ,EAAQ,M,eCClD,SAAWoE,GAAU,aAIzB,IAAI2O,EAAW,CACX,EAAG,QACH,EAAG,QACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,EAAG,OACH,EAAG,OACH,GAAI,OACJ,GAAI,OACJ,EAAG,QACH,EAAG,QACH,IAAK,QACL,EAAG,OACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,SAGC3O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,+EAA+E7yC,MACnF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,qEAAqEn4C,MACjE,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,kBACTC,SAAU,+BACVC,QAAS,aACTC,SAAU,+BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNhX,EAAG,kBACH+M,GAAI,YACJj1B,EAAG,aACHk1B,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJG,EAAG,SACHC,GAAI,QACJC,EAAG,SACHC,GAAI,SAERkI,cAAe,0BACfC,KAAM,SAAU3qC,GACZ,MAAO,mBAAmBqR,KAAKrR,EACnC,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,OACAA,EAAO,GACP,QACAA,EAAO,GACP,SAEA,OAEf,EACAZ,uBAAwB,wCACxBC,QAAS,SAAU1M,GACf,GAAe,IAAXA,EAEA,OAAOA,EAAS,QAEpB,IAAIzpC,EAAIypC,EAAS,GAGjB,OAAOA,GAAU2N,EAASp3C,IAAMo3C,EAFvB3N,EAAS,IAAOzpC,IAEsBo3C,EADvC3N,GAAU,IAAM,IAAM,MAElC,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA1GyCjS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAYzB,SAAS4O,EAAuB5N,EAAQkN,EAAet8B,GASnD,MAAY,MAARA,EACOs8B,EAAgB,UAAY,UACpB,MAARt8B,EACAs8B,EAAgB,UAAY,UAE5BlN,EAAS,KAtBF/3B,GAsB6B+3B,EArB3C6N,EAQS,CACTtL,GAAI2K,EAAgB,yBAA2B,yBAC/C1K,GAAI0K,EAAgB,yBAA2B,yBAC/CxK,GAAIwK,EAAgB,yBAA2B,yBAC/CtK,GAAI,iBACJI,GAAI,uBACJE,GAAI,kBAOgCtyB,GArBvB9d,MAAM,KAChBmV,EAAM,IAAO,GAAKA,EAAM,KAAQ,GACjC4lC,EAAM,GACN5lC,EAAM,IAAM,GAAKA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,KAAO,IAChE4lC,EAAM,GACNA,EAAM,IANlB,IAAsB5lC,EACd4lC,CAuBR,CAES7O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,CACJx2B,OAAQ,uGAAuGrc,MAC3G,KAEJg7C,WACI,qGAAqGh7C,MACjG,MAGZk4C,YACI,0DAA0Dl4C,MAAM,KACpEm4C,SAAU,CACN97B,OAAQ,0DAA0Drc,MAC9D,KAEJg7C,WACI,0DAA0Dh7C,MACtD,KAERi7C,SAAU,+CAEd7C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,iBACJC,IAAK,wBACLC,KAAM,+BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,gBACTE,QAAS,eACTD,SAAU,WACN,MAAO,iBACX,EACAE,SAAU,WACN,OAAQt1C,KAAKk3C,OACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,0BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,yBAEnB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,UACNhX,EAAG,kBACHloB,EAAGsgC,EACHpL,GAAIoL,EACJnL,EAAGmL,EACHlL,GAAIkL,EACJjL,EAAG,QACHC,GAAIgL,EACJ7K,EAAG,QACHC,GAAI4K,EACJ3K,EAAG,MACHC,GAAI0K,GAERxC,cAAe,yBACfC,KAAM,SAAU3qC,GACZ,MAAO,iBAAiBqR,KAAKrR,EACjC,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,OACAA,EAAO,GACP,SACAA,EAAO,GACP,MAEA,QAEf,EACAZ,uBAAwB,mBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACL,IAAK,IACD,OAAQjO,EAAS,IAAO,GAAKA,EAAS,IAAO,GACzCA,EAAS,KAAQ,IACjBA,EAAS,KAAQ,GAEfA,EAAS,KADTA,EAAS,KAEnB,IAAK,IACD,OAAOA,EAAS,MACpB,QACI,OAAOA,EAEnB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhJyCjS,CAAQ,EAAQ,M,eCClD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,oFAAoF7yC,MACxF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,yDAAyDn4C,MAC/D,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,YACHC,GAAI,cACJC,IAAK,mBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,cACVC,QAAS,eACTC,SAAU,WACN,OAAQt1C,KAAKk3C,OACT,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,yBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,wBAEnB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNhX,EAAG,kBACH+M,GAAI,aACJj1B,EAAG,SACHk1B,GAAI,YACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,UACJC,EAAG,UACHC,GAAI,aACJC,EAAG,QACHC,GAAI,YACJC,EAAG,SACHC,GAAI,aAERuJ,uBAAwB,8BACxBC,QAAS,SAAU1M,GACf,IAAIkO,EAAYlO,EAAS,GACrBmO,EAAcnO,EAAS,IAC3B,OAAe,IAAXA,EACOA,EAAS,MACO,IAAhBmO,EACAnO,EAAS,MACTmO,EAAc,IAAMA,EAAc,GAClCnO,EAAS,MACK,IAAdkO,EACAlO,EAAS,MACK,IAAdkO,EACAlO,EAAS,MACK,IAAdkO,GAAiC,IAAdA,EACnBlO,EAAS,MAETA,EAAS,KAExB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA3FyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,8IAA8I7yC,MAClJ,KAEJk4C,YAAa,iDAAiDl4C,MAAM,KACpEm4C,SAAU,+CAA+Cn4C,MAAM,KAC/Do4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,2BACJC,IAAK,wCACLC,KAAM,8CAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,iBACTC,SAAU,qBACVC,QAAS,iBACTC,SAAU,yBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,aACNhX,EAAG,kBACH+M,GAAI,aACJj1B,EAAG,eACHk1B,GAAI,YACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJG,EAAG,aACHC,GAAI,UACJC,EAAG,YACHC,GAAI,UAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAvDyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGF1O,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,0FAA0F7yC,MAC9F,KAEJk4C,YACI,mEAAmEl4C,MAC/D,KAERm4C,SAAU,4DAA4Dn4C,MAClE,KAEJo4C,cAAe,uCAAuCp4C,MAAM,KAC5Dq4C,YAAa,kCAAkCr4C,MAAM,KACrD04C,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,UACTC,QAAS,gBACTC,SAAU,WACVC,QAAS,aACTC,SAAU,gBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNhX,EAAG,eACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,SACJG,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EAEA8+B,cAAe,uCACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,QAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,QAAb/B,GAEa,SAAbA,EADA+B,EAGa,UAAb/B,EACA+B,GAAQ,EAAIA,EAAOA,EAAO,GACb,UAAb/B,GAEa,YAAbA,EADA+B,EAAO,QACX,CAGX,EAEA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,MACAA,EAAO,EACP,MACAA,EAAO,GACP,OACAA,EAAO,GACP,QACAA,EAAO,GACP,QACAA,EAAO,GACP,UAEA,KAEf,EACAV,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CArIyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJ1O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,0FAA0F7yC,MAC9F,KAEJk4C,YACI,mEAAmEl4C,MAC/D,KAERm4C,SAAU,4DAA4Dn4C,MAClE,KAEJo4C,cAAe,uCAAuCp4C,MAAM,KAC5Dq4C,YAAa,kCAAkCr4C,MAAM,KACrD04C,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,UACTC,QAAS,gBACTC,SAAU,WACVC,QAAS,aACTC,SAAU,gBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNhX,EAAG,eACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,SACJG,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EACA8+B,cAAe,2BACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAGO,QAAb/B,GAAsB+B,GAAQ,GACjB,UAAb/B,GAAwB+B,EAAO,GACnB,UAAb/B,EAEO+B,EAAO,GAEPA,CAEf,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,MACAA,EAAO,GACP,OACAA,EAAO,GACP,QACAA,EAAO,GACP,QAEA,KAEf,EACAV,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA3HyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJ1O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,qJAAqJ7yC,MACzJ,KAEJk4C,YACI,iEAAiEl4C,MAC7D,KAERu7C,iBAAkB,gBAClBC,kBAAkB,EAClBrD,SACI,gFAAgFn4C,MAC5E,KAERo4C,cAAe,oDAAoDp4C,MAC/D,KAEJq4C,YAAa,6BAA6Br4C,MAAM,KAChD04C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,wBACVC,QAAS,YACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNhX,EAAG,QACH+M,GAAI,YACJj1B,EAAG,aACHk1B,GAAI,WACJC,EAAG,cACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJG,EAAG,YACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EACA8+B,cAAe,wCACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAGO,WAAb/B,GAAyB+B,GAAQ,GACpB,YAAb/B,GAA0B+B,EAAO,GACrB,YAAb/B,EAEO+B,EAAO,GAEPA,CAEf,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,SACAA,EAAO,GACP,UACAA,EAAO,GACP,UACAA,EAAO,GACP,UAEA,QAEf,EACAV,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhIyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,SAASuP,EAAyBvO,EAAQkN,EAAet8B,GAMrD,OAAOovB,EAAS,IAoBpB,SAAkB4H,EAAM5H,GACpB,OAAe,IAAXA,EAKR,SAAsB4H,GAClB,IAAI4G,EAAgB,CAChBlhC,EAAG,IACH9W,EAAG,IACHmsC,EAAG,KAEP,YAAsCpwC,IAAlCi8C,EAAc5G,EAAKlkB,OAAO,IACnBkkB,EAEJ4G,EAAc5G,EAAKlkB,OAAO,IAAMkkB,EAAK11B,UAAU,EAC1D,CAdeu8B,CAAa7G,GAEjBA,CACX,CAzB0B8G,CALT,CACTlM,GAAI,WACJQ,GAAI,MACJJ,GAAI,UAE8BhyB,GAAMovB,EAChD,CAaA,SAAS2O,EAAW3O,GAChB,OAAIA,EAAS,EACF2O,EAAW3O,EAAS,IAExBA,CACX,CAmBA,IAAI4O,EAAc,CACV,QACA,cACA,QACA,QACA,QACA,cACA,QACA,QACA,QACA,QACA,OACA,SAEJC,EACI,6IAuBJC,EAAmB,CACf,OACA,OACA,eACA,QACA,OACA,OACA,QAGC9P,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,gFAAgF7yC,MACpF,KAEJk4C,YAAa,mDAAmDl4C,MAAM,KACtEm4C,SAAU,6CAA6Cn4C,MAAM,KAC7Do4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,wBAAwBr4C,MAAM,KAC3Ci8C,cAAeD,EACfE,kBArCoB,CAChB,QACA,QACA,WACA,iBACA,SACA,WACA,YA+BJC,mBA7BqB,CACjB,QACA,QACA,QACA,QACA,QACA,QACA,SAuBJH,iBAAkBA,EAElBD,YAAaA,EACbR,iBAAkBQ,EAClBK,kBA9CI,wFA+CJC,uBA7CI,2DA8CJP,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAElBpD,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sBACJC,IAAK,4BACLC,KAAM,mCAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,qBACTC,SAAU,eACVC,QAAS,gBACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,SACNhX,EAAG,wBACH+M,GAAI,YACJj1B,EAAG,cACHk1B,GAAI+L,EACJ9L,EAAG,SACHC,GAAI,SACJC,EAAG,YACHC,GAAI2L,EACJxL,EAAG,SACHC,GAAIuL,EACJtL,EAAG,WACHC,GAvIR,SAAiClD,GAC7B,OAAQ2O,EAAW3O,IACf,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,OAAOA,EAAS,SACpB,QACI,OAAOA,EAAS,SAE5B,GA8HIyM,uBAAwB,kBACxBC,QAAS,SAAU1M,GAEf,OAAOA,GADiB,IAAXA,EAAe,KAAO,MAEvC,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,GAETzB,cAAe,YACfC,KAAM,SAAU3H,GACZ,MAAiB,SAAVA,CACX,EACA4H,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAO8B,EAAO,GAAK,OAAS,MAChC,GAKP,CA5KyCzS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAezB,SAASsQ,EAAUtP,EAAQkN,EAAet8B,GACtC,IAAIta,EAAS0pC,EAAS,IACtB,OAAQpvB,GACJ,IAAK,KAQD,OANIta,GADW,IAAX0pC,EACU,UACQ,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC7B,UAEA,WAGlB,IAAK,KAQD,OANI1pC,GADW,IAAX0pC,EACU,SACQ,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC7B,SAEA,UAGlB,IAAK,IACD,MAAuB,YAC3B,IAAK,KAQD,OANI1pC,GADW,IAAX0pC,EACU,MACQ,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC7B,OAEA,QAGlB,IAAK,KAMD,OAJI1pC,GADW,IAAX0pC,EACU,MAEA,QAGlB,IAAK,KAQD,OANI1pC,GADW,IAAX0pC,EACU,SACQ,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC7B,UAEA,WAGlB,IAAK,KAQD,OANI1pC,GADW,IAAX0pC,EACU,SACQ,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC7B,SAEA,UAI1B,CAEShB,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,qFAAqF7yC,MACzF,KAEJk4C,YACI,8DAA8Dl4C,MAC1D,KAERw7C,kBAAkB,EAClBrD,SAAU,4DAA4Dn4C,MAClE,KAEJo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,WACN,OAAQp1C,KAAKk3C,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,kBAEnB,EACA7B,QAAS,eACTC,SAAU,WACN,OAAQt1C,KAAKk3C,OACT,KAAK,EACL,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,2BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,uBAEnB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNhX,EAAG,cACH+M,GAAI+M,EACJhiC,EAtIR,SAA6B0yB,EAAQkN,EAAet8B,EAAKu8B,GACrD,GACS,MADDv8B,EAEA,OAAOs8B,EACD,eACAC,EACE,eACA,cAEpB,EA8HQ3K,GAAI8M,EACJ7M,EAAG6M,EACH5M,GAAI4M,EACJ3M,EAAG,MACHC,GAAI0M,EACJvM,EAAG,SACHC,GAAIsM,EACJrM,EAAG,SACHC,GAAIoM,GAER7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAlKyCjS,CAAQ,EAAQ,M,eCClD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,CACJmI,WACI,oFAAoFh7C,MAChF,KAERqc,OAAQ,qHAAqHrc,MACzH,KAEJi7C,SAAU,mBAEd/C,YACI,8DAA8Dl4C,MAC1D,KAERw7C,kBAAkB,EAClBrD,SACI,8DAA8Dn4C,MAC1D,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,mBACJ2D,GAAI,aACJ1D,IAAK,gCACL2D,IAAK,mBACL1D,KAAM,qCACN2D,KAAM,wBAEV1D,SAAU,CACNC,QAAS,WACL,MAAO,YAA+B,IAAjBl1C,KAAKgvC,QAAgB,MAAQ,MAAQ,MAC9D,EACAmG,QAAS,WACL,MAAO,YAA+B,IAAjBn1C,KAAKgvC,QAAgB,MAAQ,MAAQ,MAC9D,EACAoG,SAAU,WACN,MAAO,YAA+B,IAAjBp1C,KAAKgvC,QAAgB,MAAQ,MAAQ,MAC9D,EACAqG,QAAS,WACL,MAAO,YAA+B,IAAjBr1C,KAAKgvC,QAAgB,MAAQ,MAAQ,MAC9D,EACAsG,SAAU,WACN,MACI,wBACkB,IAAjBt1C,KAAKgvC,QAAgB,MAAQ,MAC9B,MAER,EACAuG,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,QACNhX,EAAG,aACH+M,GAAI,YACJj1B,EAAG,WACHk1B,GAAI,YACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJG,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERuJ,uBAAwB,qBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,IAAIttC,EACW,IAAXq/B,EACM,IACW,IAAXA,EACE,IACW,IAAXA,EACE,IACW,IAAXA,EACE,IACA,IAIhB,MAHe,MAAXiO,GAA6B,MAAXA,IAClBttC,EAAS,KAENq/B,EAASr/B,CACpB,EACAgsC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxGyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAI2G,EAAS,CACLmI,WACI,oFAAoFh7C,MAChF,KAERqc,OAAQ,sFAAsFrc,MAC1F,KAEJi7C,SAAU,kCAEd/C,EAAc,kDAAkDl4C,MAAM,KACtE87C,EAAc,CACV,QACA,QACA,QACA,QACA,QACA,yBACA,4BACA,QACA,QACA,QACA,QACA,SAIJC,EACI,wJAER,SAASa,EAAOpnC,GACZ,OAAOA,EAAI,GAAKA,EAAI,GAAoB,MAAZA,EAAI,GACpC,CACA,SAASgnC,EAAUtP,EAAQkN,EAAet8B,EAAKu8B,GAC3C,IAAI72C,EAAS0pC,EAAS,IACtB,OAAQpvB,GACJ,IAAK,IACD,OAAOs8B,GAAiBC,EAAW,aAAe,gBACtD,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,UAAY,UAEvC1pC,EAAS,YAExB,IAAK,IACD,OAAO42C,EAAgB,SAAWC,EAAW,SAAW,UAC5D,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,SAAW,SAEtC1pC,EAAS,WAExB,IAAK,IACD,OAAO42C,EAAgB,SAAWC,EAAW,SAAW,UAC5D,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,SAAW,SAEtC1pC,EAAS,WAExB,IAAK,IACD,OAAO42C,GAAiBC,EAAW,MAAQ,OAC/C,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,MAAQ,OAEnC1pC,EAAS,MAExB,IAAK,IACD,OAAO42C,GAAiBC,EAAW,QAAU,UACjD,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,SAAW,UAEtC1pC,EAAS,SAExB,IAAK,IACD,OAAO42C,GAAiBC,EAAW,MAAQ,QAC/C,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,OAAS,OAEpC1pC,EAAS,OAGhC,CAES0oC,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQA,EACRqF,YAAaA,EACb6D,YAAaA,EACbR,iBAAkBQ,EAGlBK,kBACI,uKACJC,uBACI,sDACJP,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAClB3D,SAAU,mDAAmDn4C,MAAM,KACnEo4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,yBACNrvC,EAAG,cAEPsvC,SAAU,CACNC,QAAS,cACTC,QAAS,eACTC,SAAU,WACN,OAAQp1C,KAAKk3C,OACT,KAAK,EACD,MAAO,kBACX,KAAK,EACL,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,mBACX,KAAK,EACD,MAAO,oBACX,KAAK,EACD,MAAO,iBACX,KAAK,EACD,MAAO,kBAEnB,EACA7B,QAAS,eACTC,SAAU,WACN,OAAQt1C,KAAKk3C,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACL,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,wBACX,KAAK,EACL,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,wBAEnB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNhX,EAAG8Z,EACH/M,GAAI+M,EACJhiC,EAAGgiC,EACH9M,GAAI8M,EACJ7M,EAAG6M,EACH5M,GAAI4M,EACJ3M,EAAG2M,EACH1M,GAAI0M,EACJvM,EAAGuM,EACHtM,GAAIsM,EACJrM,EAAGqM,EACHpM,GAAIoM,GAER7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzLyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,gEAAgE7yC,MACpE,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,oEAAoEn4C,MAChE,KAERo4C,cAAe,6BAA6Bp4C,MAAM,KAClDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sCACJC,IAAK,6CACLC,KAAM,oDAEVC,SAAU,CACNC,QAAS,sBACTC,QAAS,sBACTE,QAAS,sBACTD,SAAU,4BACVE,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SAAU5rC,GAMd,OAAOA,GALK,UAAUq6B,KAAKr6B,GACrB,MACA,QAAQq6B,KAAKr6B,GACX,MACA,MAEZ,EACA6rC,KAAM,YACNhX,EAAG,iBACH+M,GAAI,aACJj1B,EAAG,YACHk1B,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJG,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UAERuJ,uBAAwB,cACxBC,QAAS,SACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAnEyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,yFAAyF7yC,MAC7F,KAEJk4C,YAAa,qDAAqDl4C,MAC9D,KAEJm4C,SACI,+EAA+En4C,MAC3E,KAERo4C,cAAe,+BAA+Bp4C,MAAM,KACpDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EAEpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNhX,EAAG,mBACH+M,GAAI,YACJj1B,EAAG,QACHk1B,GAAI,WACJC,EAAG,MACHC,GAAI,SACJC,EAAG,UACHC,GAAI,aACJG,EAAG,MACHC,GAAI,SACJC,EAAG,WACHC,GAAI,cAERuJ,uBAAwB,mCAExBC,QAAS,SAAU1M,GACf,IACIr/B,EAAS,GAiCb,OAlCQq/B,EAyBA,GAEAr/B,EADM,KA1BNq/B,GA0BkB,KA1BlBA,GA0B8B,KA1B9BA,GA0B0C,KA1B1CA,GA0BsD,MA1BtDA,EA2BS,MAEA,MA7BTA,EA+BO,IACXr/B,EA9BS,CACL,GACA,KACA,KACA,MACA,MACA,KACA,KACA,KACA,MACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,OAvBAq/B,IAkCDA,EAASr/B,CACpB,EACAgsC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CArGyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,sFAAsF7yC,MAC1F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,qDAAqDn4C,MAAM,KACrEo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,sCAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,oBACTC,SAAU,mBACVC,QAAS,iBACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNhX,EAAG,cACH+M,GAAI,cACJj1B,EAAG,WACHk1B,GAAI,cACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJG,EAAG,WACHC,GAAI,aACJC,EAAG,QACHC,GAAI,SAERuJ,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzDyCjS,CAAQ,EAAQ,M,eCMlD,SAAWoE,GAAU,aAIzB,SAAS2Q,EAAoB3P,EAAQkN,EAAet8B,EAAKu8B,GACrD,IAAIh+B,EAAS,CACT7B,EAAG,CAAC,cAAe,gBACnBm1B,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,UAAW,aACfC,GAAI,CAAC5C,EAAS,QAASA,EAAS,UAChC6C,EAAG,CAAC,aAAc,eAClBE,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAChD,EAAS,UAAWA,EAAS,YAClCiD,EAAG,CAAC,WAAY,cAChBC,GAAI,CAAClD,EAAS,SAAUA,EAAS,YAErC,OAAOkN,EAAgB/9B,EAAOyB,GAAK,GAAKzB,EAAOyB,GAAK,EACxD,CAEWouB,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,qFAAqF7yC,MACzF,KAEJk4C,YACI,6DAA6Dl4C,MAAM,KACvEw7C,kBAAkB,EAClBrD,SACI,8DAA8Dn4C,MAC1D,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,sBACTK,SAAU,IACVJ,QAAS,uBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,gCAEdE,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,oBACH+M,GAAI,cACJj1B,EAAGqiC,EACHnN,GAAI,aACJC,EAAGkN,EACHjN,GAAI,aACJC,EAAGgN,EACH/M,GAAI+M,EACJ9M,EAAG8M,EACH7M,GAAI,YACJC,EAAG4M,EACH3M,GAAI2M,EACJ1M,EAAG0M,EACHzM,GAAIyM,GAERlD,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhFyCjS,CAAQ,EAAQ,M,eCAlD,SAAWoE,GAAU,aAIzB,SAAS2Q,EAAoB3P,EAAQkN,EAAet8B,EAAKu8B,GACrD,IAAIh+B,EAAS,CACT7B,EAAG,CAAC,cAAe,gBACnBm1B,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,UAAW,aACfC,GAAI,CAAC5C,EAAS,QAASA,EAAS,UAChC6C,EAAG,CAAC,aAAc,eAClBE,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAChD,EAAS,UAAWA,EAAS,YAClCiD,EAAG,CAAC,WAAY,cAChBC,GAAI,CAAClD,EAAS,SAAUA,EAAS,YAErC,OAAOkN,EAAgB/9B,EAAOyB,GAAK,GAAKzB,EAAOyB,GAAK,EACxD,CAEWouB,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,qFAAqF7yC,MACzF,KAEJk4C,YACI,6DAA6Dl4C,MAAM,KACvEw7C,kBAAkB,EAClBrD,SACI,8DAA8Dn4C,MAC1D,KAERo4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,sBACTK,SAAU,IACVJ,QAAS,uBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,gCAEdE,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,oBACH+M,GAAI,cACJj1B,EAAGqiC,EACHnN,GAAI,aACJC,EAAGkN,EACHjN,GAAI,aACJC,EAAGgN,EACH/M,GAAI+M,EACJ9M,EAAG8M,EACH7M,GAAI,YACJC,EAAG4M,EACH3M,GAAI2M,EACJ1M,EAAG0M,EACHzM,GAAIyM,GAERlD,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhFyCjS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAIzB,SAAS2Q,EAAoB3P,EAAQkN,EAAet8B,EAAKu8B,GACrD,IAAIh+B,EAAS,CACT7B,EAAG,CAAC,cAAe,gBACnBm1B,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,UAAW,aACfC,GAAI,CAAC5C,EAAS,QAASA,EAAS,UAChC6C,EAAG,CAAC,aAAc,eAClBE,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAChD,EAAS,UAAWA,EAAS,YAClCiD,EAAG,CAAC,WAAY,cAChBC,GAAI,CAAClD,EAAS,SAAUA,EAAS,YAErC,OAAOkN,EAAgB/9B,EAAOyB,GAAK,GAAKzB,EAAOyB,GAAK,EACxD,CAESouB,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,qFAAqF7yC,MACzF,KAEJk4C,YACI,6DAA6Dl4C,MAAM,KACvEw7C,kBAAkB,EAClBrD,SACI,8DAA8Dn4C,MAC1D,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,sBACTK,SAAU,IACVJ,QAAS,uBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,gCAEdE,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,oBACH+M,GAAI,cACJj1B,EAAGqiC,EACHnN,GAAI,aACJC,EAAGkN,EACHjN,GAAI,aACJC,EAAGgN,EACH/M,GAAI+M,EACJ9M,EAAG8M,EACH7M,GAAI,YACJC,EAAG4M,EACH3M,GAAI2M,EACJ1M,EAAG0M,EACHzM,GAAIyM,GAERlD,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhFyCjS,CAAQ,EAAQ,M,cCClD,SAAWoE,GAAU,aAIzB,IAAI2G,EAAS,CACL,WACA,aACA,SACA,WACA,KACA,OACA,SACA,WACA,eACA,aACA,aACA,cAEJsF,EAAW,CACP,WACA,OACA,WACA,OACA,aACA,SACA,YAGCjM,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQA,EACRqF,YAAarF,EACbsF,SAAUA,EACVC,cAAeD,EACfE,YAAa,qCAAqCr4C,MAAM,KACxD04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,WACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVV,cAAe,QACfC,KAAM,SAAU3qC,GACZ,MAAO,OAASA,CACpB,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,KAEA,IAEf,EACAtB,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,UACVC,QAAS,cACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,cACRC,KAAM,YACNhX,EAAG,iBACH+M,GAAI,cACJj1B,EAAG,WACHk1B,GAAI,YACJC,EAAG,aACHC,GAAI,cACJC,EAAG,WACHC,GAAI,YACJG,EAAG,SACHC,GAAI,UACJC,EAAG,WACHC,GAAI,aAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,KAAM,IAChC,EACAkhC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,KAAM,IAChC,EACAsgC,KAAM,CACFC,IAAK,EACLC,IAAK,KAMhB,CA9FyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAWhBA,EAAO+L,aAAa,KAAM,CAC/B6E,mBACI,qHAAqH98C,MACjH,KAER+8C,iBACI,qHAAqH/8C,MACjH,KAER6yC,OAAQ,SAAUmK,EAAgB3gC,GAC9B,OAAK2gC,EAGiB,iBAAX3gC,GACP,IAAI4C,KAAK5C,EAAO+C,UAAU,EAAG/C,EAAOzS,QAAQ,UAGrC5F,KAAKi5C,kBAAkBD,EAAeE,SAEtCl5C,KAAKm5C,oBAAoBH,EAAeE,SARxCl5C,KAAKm5C,mBAUpB,EACAjF,YAAa,oDAAoDl4C,MAAM,KACvEm4C,SAAU,yDAAyDn4C,MAC/D,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cw4C,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACDyF,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,EACAF,KAAM,SAAU3qC,GACZ,MAAyC,OAAjCA,EAAQ,IAAI2M,cAAc,EACtC,EACA+9B,cAAe,gBACfI,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVoE,WAAY,CACRlE,QAAS,iBACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,WACN,OACS,IADDt1C,KAAKk3C,MAEE,gCAEA,gCAEnB,EACA3B,SAAU,KAEdN,SAAU,SAAUn7B,EAAKu/B,GACrB,IAtEYzvC,EAsERC,EAAS7J,KAAKs5C,YAAYx/B,GAC1Bk1B,EAAQqK,GAAOA,EAAIrK,QAIvB,OA3EYplC,EAwEGC,GAtEM,oBAAb0vC,UAA4B3vC,aAAiB2vC,UACX,sBAA1C5+C,OAAOwO,UAAU40B,SAAS10B,KAAKO,MAsE3BC,EAASA,EAAO6I,MAAM2mC,IAEnBxvC,EAAO0L,QAAQ,KAAMy5B,EAAQ,IAAO,EAAI,MAAQ,OAC3D,EACAwG,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNhX,EAAG,oBACH+M,GAAI,kBACJj1B,EAAG,YACHk1B,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,WACHC,GAAI,WACJG,EAAG,aACHC,GAAI,WACJC,EAAG,cACHC,GAAI,aAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9GyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJG,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERuJ,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,EACAm2C,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxEyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,eACJC,IAAK,sBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJG,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERuJ,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,GAKP,CApEyCokC,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJG,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERuJ,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,EACAm2C,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxEyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJG,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERuJ,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,EACAm2C,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxEyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJG,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERuJ,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,GAKP,CApEyCokC,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJG,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERuJ,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,EACAm2C,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxEyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJG,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERuJ,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,EACAm2C,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxEyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJG,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERuJ,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,EACAm2C,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxEyCjS,CAAQ,EAAQ,M,eCMlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,6FAA6F7yC,MACjG,KAEJk4C,YAAa,oDAAoDl4C,MAAM,KACvEm4C,SAAU,qDAAqDn4C,MAAM,KACrEo4C,cAAe,gCAAgCp4C,MAAM,KACrDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,4BACJC,IAAK,kCACLC,KAAM,2CACN2D,KAAM,uCAEVrE,cAAe,cACfC,KAAM,SAAU3qC,GACZ,MAAyC,MAAlCA,EAAMgjB,OAAO,GAAGrW,aAC3B,EACAi+B,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACDyF,EAAU,SAAW,SAErBA,EAAU,SAAW,QAEpC,EACAQ,SAAU,CACNC,QAAS,iBACTC,QAAS,iBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNhX,EAAG,kBACH+M,GAAI,cACJj1B,EAAG,aACHk1B,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,WACHC,GAAI,WACJG,EAAG,aACHC,GAAI,aACJC,EAAG,WACHC,GAAI,YAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CArEyCjS,CAAQ,EAAQ,M,cCDlD,SAAWoE,GAAU,aAIzB,IAAIsR,EACI,8DAA8Dx9C,MAC1D,KAERk4C,EAAc,kDAAkDl4C,MAAM,KACtE87C,EAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,EACI,mLAEG7P,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,2FAA2F7yC,MAC/F,KAEJk4C,YAAa,SAAU19B,EAAG6B,GACtB,OAAK7B,EAEM,QAAQyE,KAAK5C,GACb67B,EAAY19B,EAAE0iC,SAEdM,EAAehjC,EAAE0iC,SAJjBM,CAMf,EACAzB,YAAaA,EACbR,iBAAkBQ,EAClBK,kBACI,+FACJC,uBACI,0FACJP,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAClB3D,SAAU,uDAAuDn4C,MAAM,KACvEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,+BACLC,KAAM,sCAEVC,SAAU,CACNC,QAAS,WACL,MAAO,aAAgC,IAAjBl1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC3D,EACAmG,QAAS,WACL,MAAO,gBAAmC,IAAjBn1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC9D,EACAoG,SAAU,WACN,MAAO,cAAiC,IAAjBp1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC5D,EACAqG,QAAS,WACL,MAAO,cAAiC,IAAjBr1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC5D,EACAsG,SAAU,WACN,MACI,0BACkB,IAAjBt1C,KAAKgvC,QAAgB,IAAM,IAC5B,MAER,EACAuG,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNhX,EAAG,gBACH+M,GAAI,cACJj1B,EAAG,YACHk1B,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,aACHC,GAAI,aACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAjHyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIzB,IAAIsR,EACI,8DAA8Dx9C,MAC1D,KAERk4C,EAAc,kDAAkDl4C,MAAM,KACtE87C,EAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,EACI,mLAEG7P,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,2FAA2F7yC,MAC/F,KAEJk4C,YAAa,SAAU19B,EAAG6B,GACtB,OAAK7B,EAEM,QAAQyE,KAAK5C,GACb67B,EAAY19B,EAAE0iC,SAEdM,EAAehjC,EAAE0iC,SAJjBM,CAMf,EACAzB,YAAaA,EACbR,iBAAkBQ,EAClBK,kBACI,+FACJC,uBACI,0FACJP,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAClB3D,SAAU,uDAAuDn4C,MAAM,KACvEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,6BACLC,KAAM,oCAEVC,SAAU,CACNC,QAAS,WACL,MAAO,aAAgC,IAAjBl1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC3D,EACAmG,QAAS,WACL,MAAO,gBAAmC,IAAjBn1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC9D,EACAoG,SAAU,WACN,MAAO,cAAiC,IAAjBp1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC5D,EACAqG,QAAS,WACL,MAAO,cAAiC,IAAjBr1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC5D,EACAsG,SAAU,WACN,MACI,0BACkB,IAAjBt1C,KAAKgvC,QAAgB,IAAM,IAC5B,MAER,EACAuG,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNhX,EAAG,gBACH+M,GAAI,cACJj1B,EAAG,YACHk1B,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,aACHC,GAAI,aACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,GAET0D,YAAa,kBAKpB,CAlHyC3V,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIzB,IAAIsR,EACI,8DAA8Dx9C,MAC1D,KAERk4C,EAAc,kDAAkDl4C,MAAM,KACtE87C,EAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,EACI,mLAEG7P,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,2FAA2F7yC,MAC/F,KAEJk4C,YAAa,SAAU19B,EAAG6B,GACtB,OAAK7B,EAEM,QAAQyE,KAAK5C,GACb67B,EAAY19B,EAAE0iC,SAEdM,EAAehjC,EAAE0iC,SAJjBM,CAMf,EACAzB,YAAaA,EACbR,iBAAkBQ,EAClBK,kBACI,+FACJC,uBACI,0FACJP,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAClB3D,SAAU,uDAAuDn4C,MAAM,KACvEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,+BACLC,KAAM,sCAEVC,SAAU,CACNC,QAAS,WACL,MAAO,aAAgC,IAAjBl1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC3D,EACAmG,QAAS,WACL,MAAO,gBAAmC,IAAjBn1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC9D,EACAoG,SAAU,WACN,MAAO,cAAiC,IAAjBp1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC5D,EACAqG,QAAS,WACL,MAAO,cAAiC,IAAjBr1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC5D,EACAsG,SAAU,WACN,MACI,0BACkB,IAAjBt1C,KAAKgvC,QAAgB,IAAM,IAC5B,MAER,EACAuG,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNhX,EAAG,gBACH+M,GAAI,cACJj1B,EAAG,YACHk1B,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,aACHC,GAAI,aACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAjHyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIzB,IAAIsR,EACI,8DAA8Dx9C,MAC1D,KAERk4C,EAAc,kDAAkDl4C,MAAM,KACtE87C,EAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,EACI,mLAEC7P,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,2FAA2F7yC,MAC/F,KAEJk4C,YAAa,SAAU19B,EAAG6B,GACtB,OAAK7B,EAEM,QAAQyE,KAAK5C,GACb67B,EAAY19B,EAAE0iC,SAEdM,EAAehjC,EAAE0iC,SAJjBM,CAMf,EACAzB,YAAaA,EACbR,iBAAkBQ,EAClBK,kBACI,+FACJC,uBACI,0FACJP,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAClB3D,SAAU,uDAAuDn4C,MAAM,KACvEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,6BACLC,KAAM,oCAEVC,SAAU,CACNC,QAAS,WACL,MAAO,aAAgC,IAAjBl1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC3D,EACAmG,QAAS,WACL,MAAO,gBAAmC,IAAjBn1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC9D,EACAoG,SAAU,WACN,MAAO,cAAiC,IAAjBp1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC5D,EACAqG,QAAS,WACL,MAAO,cAAiC,IAAjBr1C,KAAKgvC,QAAgB,IAAM,IAAM,MAC5D,EACAsG,SAAU,WACN,MACI,0BACkB,IAAjBt1C,KAAKgvC,QAAgB,IAAM,IAC5B,MAER,EACAuG,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNhX,EAAG,gBACH+M,GAAI,cACJj1B,EAAG,YACHk1B,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,aACHC,GAAI,aACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,GAET0D,YAAa,kBAKpB,CAlHyC3V,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIzB,SAAS2Q,EAAoB3P,EAAQkN,EAAet8B,EAAKu8B,GACrD,IAAIh+B,EAAS,CACTqmB,EAAG,CAAC,eAAgB,cAAe,iBACnC+M,GAAI,CAACvC,EAAS,UAAWA,EAAS,YAClC1yB,EAAG,CAAC,aAAc,aAClBk1B,GAAI,CAACxC,EAAS,UAAWA,EAAS,YAClCyC,EAAG,CAAC,YAAa,YAAa,YAC9BC,GAAI,CAAC1C,EAAS,SAAUA,EAAS,UACjC2C,EAAG,CAAC,YAAa,YACjBI,EAAG,CAAC,UAAW,WAAY,WAC3BC,GAAI,CAAChD,EAAS,OAAQA,EAAS,SAC/BiD,EAAG,CAAC,YAAa,QAAS,aAC1BC,GAAI,CAAClD,EAAS,SAAUA,EAAS,YAErC,OAAIkN,EACO/9B,EAAOyB,GAAK,GAAKzB,EAAOyB,GAAK,GAAKzB,EAAOyB,GAAK,GAElDu8B,EAAWh+B,EAAOyB,GAAK,GAAKzB,EAAOyB,GAAK,EACnD,CAESouB,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,6FAA6F7yC,MACjG,KAEJk4C,YACI,6DAA6Dl4C,MAAM,KACvEm4C,SACI,iEAAiEn4C,MAC7D,KAERo4C,cAAe,gBAAgBp4C,MAAM,KACrCq4C,YAAa,gBAAgBr4C,MAAM,KACnC04C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,aACTC,QAAS,cACTC,SAAU,qBACVC,QAAS,aACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,YACNhX,EAAGma,EACHpN,GAAIoN,EACJriC,EAAGqiC,EACHnN,GAAImN,EACJlN,EAAGkN,EACHjN,GAAIiN,EACJhN,EAAGgN,EACH/M,GAAI,WACJG,EAAG4M,EACH3M,GAAI2M,EACJ1M,EAAG0M,EACHzM,GAAIyM,GAERlD,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAjFyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,+FAA+F7yC,MACnG,KAEJk4C,YACI,8DAA8Dl4C,MAC1D,KAERw7C,kBAAkB,EAClBrD,SACI,sEAAsEn4C,MAClE,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,0BACJC,IAAK,gCACLC,KAAM,sCACNrvC,EAAG,WACH8yC,GAAI,oBACJC,IAAK,0BACLC,KAAM,gCAEV1D,SAAU,CACNC,QAAS,kBACTC,QAAS,mBACTC,SAAU,gBACVC,QAAS,kBACTC,SAAU,0BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNhX,EAAG,iBACH+M,GAAI,aACJj1B,EAAG,aACHk1B,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJG,EAAG,eACHC,GAAI,cACJC,EAAG,WACHC,GAAI,WAERuJ,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CArEyCjS,CAAQ,EAAQ,M,cCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJ1O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,wEAAwE7yC,MAC5E,KAEJk4C,YACI,wEAAwEl4C,MACpE,KAERm4C,SACI,qDAAoEn4C,MAChE,KAERo4C,cACI,qDAAoEp4C,MAChE,KAERq4C,YAAa,gBAAgBr4C,MAAM,KACnCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVV,cAAe,wBACfC,KAAM,SAAU3qC,GACZ,MAAO,aAAaqR,KAAKrR,EAC7B,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,aAEA,YAEf,EACAtB,SAAU,CACNC,QAAS,kBACTC,QAAS,iBACTC,SAAU,iBACVC,QAAS,kBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,YACH+M,GAAI,WACJj1B,EAAG,WACHk1B,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,SACHC,GAAI,SACJG,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EACF9L,QAAQ,SAAU,SAAUC,GACzB,OAAOohC,EAAUphC,EACrB,GACCD,QAAQ,KAAM,IACvB,EACAkhC,WAAY,SAAUp1B,GAClB,OAAOA,EACF9L,QAAQ,MAAO,SAAUC,GACtB,OAAOkhC,EAAUlhC,EACrB,GACCD,QAAQ,KAAM,IACvB,EACAogC,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,KAMhB,CArHyCjS,CAAQ,EAAQ,M,cCGlD,SAAWoE,GAAU,aAIzB,IAAIwR,EACI,wEAAwE19C,MACpE,KAER29C,EAAgB,CACZ,QACA,QACA,SACA,SACA,SACA,SACA,SACAD,EAAY,GACZA,EAAY,GACZA,EAAY,IAEpB,SAASlB,EAAUtP,EAAQkN,EAAet8B,EAAKu8B,GAC3C,IAAI72C,EAAS,GACb,OAAQsa,GACJ,IAAK,IACD,OAAOu8B,EAAW,oBAAsB,kBAC5C,IAAK,KACD72C,EAAS62C,EAAW,WAAa,WACjC,MACJ,IAAK,IACD,OAAOA,EAAW,WAAa,WACnC,IAAK,KACD72C,EAAS62C,EAAW,WAAa,YACjC,MACJ,IAAK,IACD,OAAOA,EAAW,SAAW,QACjC,IAAK,KACD72C,EAAS62C,EAAW,SAAW,SAC/B,MACJ,IAAK,IACD,OAAOA,EAAW,SAAW,QACjC,IAAK,KACD72C,EAAS62C,EAAW,SAAW,SAC/B,MACJ,IAAK,IACD,OAAOA,EAAW,YAAc,WACpC,IAAK,KACD72C,EAAS62C,EAAW,YAAc,YAClC,MACJ,IAAK,IACD,OAAOA,EAAW,SAAW,QACjC,IAAK,KACD72C,EAAS62C,EAAW,SAAW,SAIvC,OAEJ,SAAsBnN,EAAQmN,GAC1B,OAAOnN,EAAS,GACVmN,EACIsD,EAAczQ,GACdwQ,EAAYxQ,GAChBA,CACV,CATa0Q,CAAa1Q,EAAQmN,GAAY,IAAM72C,CAEpD,CASS0oC,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,2GAA2G7yC,MAC/G,KAEJk4C,YACI,uEAAuEl4C,MACnE,KAERm4C,SACI,qEAAqEn4C,MACjE,KAERo4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,mBACJC,IAAK,gCACLC,KAAM,sCACNrvC,EAAG,WACH8yC,GAAI,cACJC,IAAK,2BACLC,KAAM,iCAEV1D,SAAU,CACNC,QAAS,oBACTC,QAAS,sBACTC,SAAU,gBACVC,QAAS,mBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,YACNhX,EAAG8Z,EACH/M,GAAI+M,EACJhiC,EAAGgiC,EACH9M,GAAI8M,EACJ7M,EAAG6M,EACH5M,GAAI4M,EACJ3M,EAAG2M,EACH1M,GAAI0M,EACJvM,EAAGuM,EACHtM,GAAIsM,EACJrM,EAAGqM,EACHpM,GAAIoM,GAER7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhIyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIfA,EAAO+L,aAAa,MAAO,CACjCpF,OAAQ,0FAA0F7yC,MAC9F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,yDAAyDn4C,MAC/D,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,wBAAwBr4C,MAAM,KAC3C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,YACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,oBACTC,QAAS,gBACTC,SAAU,0BACVC,QAAS,eACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,mBACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,eACHk1B,GAAI,YACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJG,EAAG,cACHC,GAAI,WACJC,EAAG,aACHC,GAAI,WAERuJ,uBAAwB,UACxBC,QAAS,SAAU1M,GACf,OAAOA,CACX,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7DyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,qFAAqF7yC,MACzF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,4EAA4En4C,MACxE,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,oBACTC,SAAU,gBACVC,QAAS,kBACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,YACNhX,EAAG,YACH+M,GAAI,cACJj1B,EAAG,eACHk1B,GAAI,cACJC,EAAG,WACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJG,EAAG,cACHC,GAAI,aACJC,EAAG,UACHC,GAAI,SAERuJ,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA5DyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,uFAAuF7yC,MAC3F,KAEJk4C,YACI,iEAAiEl4C,MAC7D,KAERw7C,kBAAkB,EAClBrD,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,qBACTC,QAAS,gBACTC,SAAU,cACVC,QAAS,cACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,YACNhX,EAAG,oBACH+M,GAAI,cACJj1B,EAAG,aACHk1B,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJG,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAERuJ,uBAAwB,gBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GAEJ,QACA,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACD,OAAOjO,GAAqB,IAAXA,EAAe,KAAO,KAG3C,IAAK,IACL,IAAK,IACD,OAAOA,GAAqB,IAAXA,EAAe,KAAO,KAEnD,GAKP,CA1EyCpF,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,uFAAuF7yC,MAC3F,KAEJk4C,YACI,iEAAiEl4C,MAC7D,KAERw7C,kBAAkB,EAClBrD,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,qBACTC,QAAS,gBACTC,SAAU,cACVC,QAAS,cACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,YACNhX,EAAG,oBACH+M,GAAI,cACJj1B,EAAG,aACHk1B,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJG,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAERuJ,uBAAwB,gBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GAEJ,QACA,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACD,OAAOjO,GAAqB,IAAXA,EAAe,KAAO,KAG3C,IAAK,IACL,IAAK,IACD,OAAOA,GAAqB,IAAXA,EAAe,KAAO,KAEnD,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9EyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAII6P,EACI,yKACJD,EAAc,CACV,SACA,SACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,SAGC5P,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,uFAAuF7yC,MAC3F,KAEJk4C,YACI,iEAAiEl4C,MAC7D,KAER+7C,YAAaA,EACbR,iBAAkBQ,EAClBK,kBA9BI,2FA+BJC,uBA7BI,oFA8BJP,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAClB3D,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,qBACTC,QAAS,gBACTC,SAAU,cACVC,QAAS,cACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,YACNhX,EAAG,oBACH+M,GAAI,cACJj1B,EAAG,aACHk1B,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJC,EAAG,cACHC,GAAI,cACJC,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAERuJ,uBAAwB,eACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GAIJ,IAAK,IACD,OAAOjO,GAAqB,IAAXA,EAAe,KAAO,IAG3C,QACA,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACD,OAAOA,GAAqB,IAAXA,EAAe,KAAO,KAG3C,IAAK,IACL,IAAK,IACD,OAAOA,GAAqB,IAAXA,EAAe,KAAO,KAEnD,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhHyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAI2R,EACI,6DAA6D79C,MAAM,KACvE89C,EACI,kDAAkD99C,MAAM,KAEvDksC,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,iGAAiG7yC,MACrG,KAEJk4C,YAAa,SAAU19B,EAAG6B,GACtB,OAAK7B,EAEM,QAAQyE,KAAK5C,GACbyhC,EAAuBtjC,EAAE0iC,SAEzBW,EAAoBrjC,EAAE0iC,SAJtBW,CAMf,EACArC,kBAAkB,EAClBrD,SAAU,wDAAwDn4C,MAC9D,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,iBACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNhX,EAAG,mBACH+M,GAAI,cACJj1B,EAAG,YACHk1B,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJG,EAAG,aACHC,GAAI,aACJC,EAAG,WACHC,GAAI,cAERuJ,uBAAwB,kBACxBC,QAAS,SAAU1M,GACf,OACIA,GACY,IAAXA,GAA2B,IAAXA,GAAgBA,GAAU,GAAK,MAAQ,KAEhE,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA/EyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aA4ChBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAzCS,CACL,SACA,UACA,QACA,UACA,YACA,YACA,OACA,SACA,eACA,mBACA,UACA,WA8BJqF,YA5Bc,CACV,MACA,QACA,OACA,MACA,OACA,QACA,OACA,MACA,OACA,OACA,OACA,QAiBJsD,kBAAkB,EAClBrD,SAhBW,CACP,eACA,WACA,WACA,cACA,YACA,YACA,eAUJC,cARgB,CAAC,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,QASnEC,YARc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,MASlDK,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,kBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,OACRC,KAAM,YACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,UACHk1B,GAAI,aACJC,EAAG,iBACHC,GAAI,oBACJC,EAAG,KACHC,GAAI,QACJG,EAAG,KACHC,GAAI,YACJC,EAAG,SACHC,GAAI,aAERuJ,uBAAwB,mBACxBC,QAAS,SAAU1M,GAEf,OAAOA,GADiB,IAAXA,EAAe,IAAMA,EAAS,IAAO,EAAI,KAAO,KAEjE,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAnGyCjS,CAAQ,EAAQ,M,cCGlD,SAAWoE,GAAU,aA4ChBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAzCS,CACL,gBACA,aACA,UACA,aACA,aACA,eACA,cACA,cACA,eACA,aACA,eACA,gBA8BJqF,YA5Bc,CACV,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,QAiBJsD,kBAAkB,EAClBrD,SAhBW,CACP,cACA,UACA,UACA,YACA,YACA,WACA,eAUJC,cARgB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAS3DC,YARc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MASnDK,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,oBACTC,QAAS,sBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,gBACNhX,EAAG,gBACH+M,GAAI,YACJj1B,EAAG,UACHk1B,GAAI,gBACJC,EAAG,OACHC,GAAI,aACJC,EAAG,QACHC,GAAI,WACJG,EAAG,OACHC,GAAI,YACJC,EAAG,WACHC,GAAI,eAERuJ,uBAAwB,mBACxBC,QAAS,SAAU1M,GAEf,OAAOA,GADiB,IAAXA,EAAe,IAAMA,EAAS,IAAO,EAAI,KAAO,KAEjE,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAnGyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,yFAAyF7yC,MAC7F,KAEJk4C,YACI,8DAA8Dl4C,MAC1D,KAERw7C,kBAAkB,EAClBrD,SAAU,mDAAmDn4C,MAAM,KACnEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,6BACLC,KAAM,oCAEVC,SAAU,CACNC,QAAS,WACL,MAAO,UAA6B,IAAjBl1C,KAAKgvC,QAAgB,KAAO,KAAO,MAC1D,EACAmG,QAAS,WACL,MAAO,UAA6B,IAAjBn1C,KAAKgvC,QAAgB,KAAO,KAAO,MAC1D,EACAoG,SAAU,WACN,MAAO,UAA6B,IAAjBp1C,KAAKgvC,QAAgB,KAAO,KAAO,MAC1D,EACAqG,QAAS,WACL,MAAO,UAA6B,IAAjBr1C,KAAKgvC,QAAgB,IAAM,KAAO,MACzD,EACAsG,SAAU,WACN,MACI,qBAAwC,IAAjBt1C,KAAKgvC,QAAgB,KAAO,KAAO,MAElE,EACAuG,SAAU,KAEdC,aAAc,CACVC,OAAQ,SAAU/5B,GACd,OAA0B,IAAtBA,EAAI9V,QAAQ,MACL,IAAM8V,EAEV,MAAQA,CACnB,EACAg6B,KAAM,SACNhX,EAAG,eACH+M,GAAI,cACJj1B,EAAG,YACHk1B,GAAI,aACJC,EAAG,YACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJG,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA/EyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,SAAS2Q,EAAoB3P,EAAQkN,EAAet8B,EAAKu8B,GACrD,IAAIh+B,EAAS,CACTqmB,EAAG,CAAC,kBAAmB,cACvB+M,GAAI,CAACvC,EAAS,aAAcA,EAAS,UACrC1yB,EAAG,CAAC,aAAc,YAClBk1B,GAAI,CAACxC,EAAS,YAAaA,EAAS,WACpCyC,EAAG,CAAC,WAAY,SAChBC,GAAI,CAAC1C,EAAS,UAAWA,EAAS,SAClC2C,EAAG,CAAC,YAAa,UACjBC,GAAI,CAAC5C,EAAS,WAAYA,EAAS,QACnC+C,EAAG,CAAC,gBAAiB,aACrBC,GAAI,CAAChD,EAAS,cAAeA,EAAS,WACtCiD,EAAG,CAAC,aAAc,WAClBC,GAAI,CAAClD,EAAS,YAAaA,EAAS,YAExC,OAAOmN,EAAWh+B,EAAOyB,GAAK,GAAKzB,EAAOyB,GAAK,EACnD,CAEcouB,EAAO+L,aAAa,WAAY,CAC1CpF,OAAQ,CACJmI,WACI,wFAAwFh7C,MACpF,KAERqc,OAAQ,mJAAmJrc,MACvJ,KAEJi7C,SAAU,mBAEd/C,YACI,4EAA4El4C,MACxE,KAERw7C,kBAAkB,EAClBrD,SAAU,qDAAqDn4C,MAAM,KACrEo4C,cAAe,4CAA4Cp4C,MAAM,KACjEq4C,YAAa,wBAAwBr4C,MAAM,KAC3Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,kBACJC,IAAK,qBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,8BACLC,KAAM,uCACN2D,KAAM,oCAEV1D,SAAU,CACNC,QAAS,WACTC,QAAS,eACTC,SAAU,qBACVC,QAAS,WACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,KACRC,KAAM,UACNhX,EAAGma,EACHpN,GAAIoN,EACJriC,EAAGqiC,EACHnN,GAAImN,EACJlN,EAAGkN,EACHjN,GAAIiN,EACJhN,EAAGgN,EACH/M,GAAI+M,EACJ5M,EAAG4M,EACH3M,GAAI2M,EACJ1M,EAAG0M,EACHzM,GAAIyM,GAERlD,uBAAwB,eACxBC,QAAS,SAAU1M,EAAQiO,GACvB,MAES,MAFDA,EAGOjO,EAAS,MAQTA,CAEnB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,GAETzB,cAAe,4BACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,SAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,WAAb/B,EACA+B,EACa,YAAb/B,EACA+B,EAAO,GAAKA,EAAOA,EAAO,GACb,UAAb/B,EACA+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,OACAA,EAAO,GACP,SACAA,EAAO,GACP,UACAA,EAAO,GACP,QAEA,MAEf,GAKP,CAlIyCzS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,SAAS2Q,EAAoB3P,EAAQkN,EAAet8B,EAAKu8B,GACrD,IAAIh+B,EAAS,CACTqmB,EAAG,CAAC,qBAAsB,iBAC1B+M,GAAI,CAACvC,EAAS,cAAeA,EAAS,WACtC1yB,EAAG,CAAC,aAAc,YAClBk1B,GAAI,CAACxC,EAAS,YAAaA,EAAS,WACpCyC,EAAG,CAAC,YAAa,UACjBC,GAAI,CAAC1C,EAAS,WAAYA,EAAS,UACnC2C,EAAG,CAAC,YAAa,UACjBC,GAAI,CAAC5C,EAAS,WAAYA,EAAS,QACnC+C,EAAG,CAAC,eAAgB,aACpBC,GAAI,CAAChD,EAAS,cAAeA,EAAS,WACtCiD,EAAG,CAAC,aAAc,YAClBC,GAAI,CAAClD,EAAS,YAAaA,EAAS,YAExC,OAAOmN,EAAWh+B,EAAOyB,GAAK,GAAKzB,EAAOyB,GAAK,EACnD,CAEcouB,EAAO+L,aAAa,WAAY,CAC1CpF,OAAQ,CACJmI,WACI,4EAA4Eh7C,MACxE,KAERqc,OAAQ,wIAAwIrc,MAC5I,KAEJi7C,SAAU,mBAEd/C,YACI,4DAA4Dl4C,MAAM,KACtEw7C,kBAAkB,EAClBrD,SAAU,uDAAuDn4C,MAAM,KACvEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,iBACJC,IAAK,oBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,6BACLC,KAAM,sCACN2D,KAAM,mCAEV1D,SAAU,CACNC,QAAS,WACTC,QAAS,cACTC,SAAU,sBACVC,QAAS,WACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,KACRC,KAAM,UACNhX,EAAGma,EACHpN,GAAIoN,EACJriC,EAAGqiC,EACHnN,GAAImN,EACJlN,EAAGkN,EACHjN,GAAIiN,EACJhN,EAAGgN,EACH/M,GAAI+M,EACJ5M,EAAG4M,EACH3M,GAAI2M,EACJ1M,EAAG0M,EACHzM,GAAIyM,GAERlD,uBAAwB,cACxBC,QAAS,SAAU1M,EAAQiO,GACvB,MAES,MAFDA,EAGOjO,EAAS,KAQTA,CAEnB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,GAETzB,cAAe,+BACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,SAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,aAAb/B,EACA+B,EACa,aAAb/B,EACA+B,EAAO,GAAKA,EAAOA,EAAO,GACb,UAAb/B,EACA+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,OACAA,EAAO,GACP,WACAA,EAAO,GACP,WACAA,EAAO,GACP,QAEA,MAEf,GAKP,CAhIyCzS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJ1O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,yFAAyF7yC,MAC7F,KAEJk4C,YACI,yEAAyEl4C,MACrE,KAERw7C,kBAAkB,EAClBrD,SAAU,wDAAwDn4C,MAC9D,KAEJo4C,cAAe,mCAAmCp4C,MAAM,KACxDq4C,YAAa,qBAAqBr4C,MAAM,KACxC04C,eAAgB,CACZC,GAAI,gBACJC,IAAK,mBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,6BACLC,KAAM,oCAEVC,SAAU,CACNC,QAAS,UACTC,QAAS,YACTC,SAAU,WACVC,QAAS,cACTC,SAAU,mBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNhX,EAAG,WACH+M,GAAI,WACJj1B,EAAG,WACHk1B,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UACJG,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EAGA8+B,cAAe,qBACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,QAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,SAAb/B,EACA+B,EACa,SAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,SAAb/B,EACA+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,MACAA,EAAO,GACP,OACAA,EAAO,GACP,OACAA,EAAO,GACP,OAEA,KAEf,EACAV,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9HyCjS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,0EAA0E7yC,MAC9E,KAEJk4C,YACI,4DAA4Dl4C,MAAM,KACtEm4C,SAAU,uCAAuCn4C,MAAM,KACvDo4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,gBAAgBr4C,MAAM,KACnC04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,iBACJC,IAAK,uBACLC,KAAM,6BACNrvC,EAAG,WACH8yC,GAAI,aACJC,IAAK,mBACLC,KAAM,yBAEV1D,SAAU,CACNC,QAAS,cACTC,QAAS,aACTC,SAAU,iBACVC,QAAS,eACTC,SAAU,+BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,UACNhX,EAAG,aACH+M,GAAI,WACJj1B,EAAG,MACHk1B,GAAI,UACJC,EAAG,MACHC,GAAI,SAAU1C,GACV,OAAe,IAAXA,EACO,SAEJA,EAAS,OACpB,EACA2C,EAAG,MACHC,GAAI,SAAU5C,GACV,OAAe,IAAXA,EACO,SAEJA,EAAS,OACpB,EACA+C,EAAG,OACHC,GAAI,SAAUhD,GACV,OAAe,IAAXA,EACO,UAEJA,EAAS,SACpB,EACAiD,EAAG,MACHC,GAAI,SAAUlD,GACV,OAAe,IAAXA,EACO,SACAA,EAAS,IAAO,GAAgB,KAAXA,EACrBA,EAAS,OAEbA,EAAS,OACpB,GAEJoL,cACI,gEACJC,KAAM,SAAU3qC,GACZ,MAAO,8BAA8BqR,KAAKrR,EAC9C,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,aACAA,EAAO,GACP,QACAA,EAAO,GACP9B,EAAU,SAAW,eACrB8B,EAAO,GACP9B,EAAU,QAAU,eAEpB,MAEf,GAKP,CAhGyC3Q,CAAQ,EAAQ,M,eCClD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAETkB,EAAc,CACV,OACA,WACA,UACA,UACA,OACA,QACA,QACA,OACA,aACA,UACA,WACA,cAiBC5P,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,CACJx2B,OAAQ,8EAA8Erc,MAClF,KAEJg7C,WACI,0EAA0Eh7C,MACtE,MAGZk4C,YACI,6DAA6Dl4C,MAAM,KACvEm4C,SAAU,uDAAuDn4C,MAAM,KACvEo4C,cAAe,kCAAkCp4C,MAAM,KACvDq4C,YAAa,qBAAqBr4C,MAAM,KACxC04C,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,iCAGV8C,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAzCmB,CACf,OACA,QACA,UACA,UACA,OACA,QACA,QACA,OACA,QACA,UACA,OACA,SA+BJR,YACI,+KAEJR,iBACI,+KAEJa,kBACI,uIAEJC,uBACI,sFAEJpD,SAAU,CACNC,QAAS,UACTC,QAAS,UACTC,SAAU,WACVC,QAAS,UACTC,SAAU,mBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,UACNhX,EAAG,cACH+M,GAAI,WACJj1B,EAAG,UACHk1B,GAAI,UACJC,EAAG,UACHC,GAAI,UACJC,EAAG,SACHC,GAAI,SACJG,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EAGA8+B,cAAe,qBACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,QAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,SAAb/B,EACA+B,EACa,UAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,QAAb/B,EACA+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,MACAA,EAAO,GACP,OACAA,EAAO,GACP,QACAA,EAAO,GACP,MAEA,KAEf,EACAV,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA5KyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,SAASsQ,EAAUtP,EAAQkN,EAAet8B,GACtC,IAAIta,EAAS0pC,EAAS,IACtB,OAAQpvB,GACJ,IAAK,KAQD,OANIta,GADW,IAAX0pC,EACU,UACQ,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC7B,UAEA,WAGlB,IAAK,IACD,OAAOkN,EAAgB,eAAiB,eAC5C,IAAK,KAQD,OANI52C,GADW,IAAX0pC,EACU,SACQ,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC7B,SAEA,UAGlB,IAAK,IACD,OAAOkN,EAAgB,YAAc,cACzC,IAAK,KAQD,OANI52C,GADW,IAAX0pC,EACU,MACQ,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC7B,OAEA,QAGlB,IAAK,KAMD,OAJI1pC,GADW,IAAX0pC,EACU,MAEA,QAGlB,IAAK,KAQD,OANI1pC,GADW,IAAX0pC,EACU,SACQ,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC7B,UAEA,WAGlB,IAAK,KAQD,OANI1pC,GADW,IAAX0pC,EACU,SACQ,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC7B,SAEA,UAI1B,CAEShB,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,CACJx2B,OAAQ,oGAAoGrc,MACxG,KAEJg7C,WACI,gGAAgGh7C,MAC5F,MAGZk4C,YACI,+DAA+Dl4C,MAC3D,KAERw7C,kBAAkB,EAClBrD,SAAU,4DAA4Dn4C,MAClE,KAEJo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,WACN,OAAQp1C,KAAKk3C,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,kBAEnB,EACA7B,QAAS,eACTC,SAAU,WACN,OAAQt1C,KAAKk3C,OACT,KAAK,EACD,MAAO,6BACX,KAAK,EACD,MAAO,4BACX,KAAK,EACD,MAAO,2BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,uBAEnB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNhX,EAAG,cACH+M,GAAI+M,EACJhiC,EAAGgiC,EACH9M,GAAI8M,EACJ7M,EAAG6M,EACH5M,GAAI4M,EACJ3M,EAAG,MACHC,GAAI0M,EACJvM,EAAG,SACHC,GAAIsM,EACJrM,EAAG,SACHC,GAAIoM,GAER7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhKyCjS,CAAQ,EAAQ,M,cCIlD,SAAWoE,GAAU,aAIzB,IAAI6R,EACA,gEAAgE/9C,MAAM,KAC1E,SAASw8C,EAAUtP,EAAQkN,EAAet8B,EAAKu8B,GAC3C,IAAIllC,EAAM+3B,EACV,OAAQpvB,GACJ,IAAK,IACD,OAAOu8B,GAAYD,EACb,mBACA,oBACV,IAAK,KACD,OAAOjlC,GAAOklC,GAAYD,GACpB,aACA,cACV,IAAK,IACD,MAAO,OAASC,GAAYD,EAAgB,QAAU,UAC1D,IAAK,KACD,OAAOjlC,GAAOklC,GAAYD,EAAgB,QAAU,UACxD,IAAK,IACD,MAAO,OAASC,GAAYD,EAAgB,OAAS,UACzD,IAAK,KACD,OAAOjlC,GAAOklC,GAAYD,EAAgB,OAAS,UACvD,IAAK,IACD,MAAO,OAASC,GAAYD,EAAgB,OAAS,UACzD,IAAK,KACD,OAAOjlC,GAAOklC,GAAYD,EAAgB,OAAS,UACvD,IAAK,IACD,MAAO,OAASC,GAAYD,EAAgB,SAAW,YAC3D,IAAK,KACD,OAAOjlC,GAAOklC,GAAYD,EAAgB,SAAW,YACzD,IAAK,IACD,MAAO,OAASC,GAAYD,EAAgB,MAAQ,QACxD,IAAK,KACD,OAAOjlC,GAAOklC,GAAYD,EAAgB,MAAQ,QAE1D,MAAO,EACX,CACA,SAASP,EAAKQ,GACV,OACKA,EAAW,GAAK,WACjB,IACA0D,EAAY/5C,KAAKk3C,OACjB,YAER,CAEShP,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,oGAAoG7yC,MACxG,KAEJk4C,YACI,iEAAiEl4C,MAC7D,KAERw7C,kBAAkB,EAClBrD,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,gCAAgCp4C,MAAM,KACrDq4C,YAAa,qBAAqBr4C,MAAM,KACxC04C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,qBACLC,KAAM,4BAEVV,cAAe,SACfC,KAAM,SAAU3qC,GACZ,MAAyC,MAAlCA,EAAMgjB,OAAO,GAAGrW,aAC3B,EACAi+B,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,IACW,IAAZyF,EAAmB,KAAO,MAEd,IAAZA,EAAmB,KAAO,IAEzC,EACAQ,SAAU,CACNC,QAAS,gBACTC,QAAS,oBACTC,SAAU,WACN,OAAOS,EAAKxsC,KAAKrJ,MAAM,EAC3B,EACAq1C,QAAS,oBACTC,SAAU,WACN,OAAOO,EAAKxsC,KAAKrJ,MAAM,EAC3B,EACAu1C,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,KACNhX,EACA+M,GAAI+M,EACJhiC,EAAGgiC,EACH9M,GAAI8M,EACJ7M,EAAG6M,EACH5M,GAAI4M,EACJ3M,EAAG2M,EACH1M,GAAI0M,EACJvM,EAAGuM,EACHtM,GAAIsM,EACJrM,EAAGqM,EACHpM,GAAIoM,GAER7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzHyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,CACJx2B,OAAQ,4GAA4Grc,MAChH,KAEJg7C,WACI,gGAAgGh7C,MAC5F,MAGZk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,gEAAgEn4C,MAC5D,KAERo4C,cAAe,+BAA+Bp4C,MAAM,KACpDq4C,YAAa,+BAA+Br4C,MAAM,KAClD04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,iBACJC,IAAK,wBACLC,KAAM,+BAEVC,SAAU,CACNC,QAAS,aACTC,QAAS,YACTE,QAAS,YACTD,SAAU,WACN,MAAO,oBACX,EACAE,SAAU,WACN,MAAO,4BACX,EACAC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,UACNhX,EAAG,mBACH+M,GAAI,cACJj1B,EAAG,OACHk1B,GAAI,UACJC,EAAG,MACHC,GAAI,SACJC,EAAG,KACHC,GAAI,QACJG,EAAG,OACHC,GAAI,UACJC,EAAG,OACHC,GAAI,WAERkI,cAAe,oCACfC,KAAM,SAAU3qC,GACZ,MAAO,uBAAuBqR,KAAKrR,EACvC,EACA4qC,SAAU,SAAU+B,GAChB,OAAIA,EAAO,EACA,UACAA,EAAO,GACP,WACAA,EAAO,GACP,UAEA,UAEf,EACAZ,uBAAwB,0BACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,MACL,IAAK,IACL,IAAK,IACL,IAAK,OACD,OAAe,IAAXjO,EACOA,EAAS,MAEbA,EAAS,MACpB,QACI,OAAOA,EAEnB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAlGyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,yFAAyF7yC,MAC7F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,6CAA6Cn4C,MAAM,KAC7Do4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEVV,cAAe,wBACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,SAAb/B,EACO+B,EACa,UAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,SAAb/B,GAAoC,UAAbA,EACvB+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACD,OACAA,EAAQ,GACR,QACAA,EAAQ,GACR,OAEA,OAEf,EACAiG,SAAU,CACNC,QAAS,sBACTC,QAAS,mBACTC,SAAU,kBACVC,QAAS,qBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,eACNhX,EAAG,iBACH+M,GAAI,WACJj1B,EAAG,UACHk1B,GAAI,WACJC,EAAG,QACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UACJG,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA/EyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIzB,SAAS0Q,EAAOpnC,GACZ,OAAIA,EAAI,KAAQ,IAELA,EAAI,IAAO,CAI1B,CACA,SAASgnC,EAAUtP,EAAQkN,EAAet8B,EAAKu8B,GAC3C,IAAI72C,EAAS0pC,EAAS,IACtB,OAAQpvB,GACJ,IAAK,IACD,OAAOs8B,GAAiBC,EAClB,mBACA,mBACV,IAAK,KACD,OAAIuC,EAAO1P,GAEH1pC,GACC42C,GAAiBC,EAAW,WAAa,YAG3C72C,EAAS,UACpB,IAAK,IACD,OAAO42C,EAAgB,SAAW,SACtC,IAAK,KACD,OAAIwC,EAAO1P,GAEH1pC,GAAU42C,GAAiBC,EAAW,UAAY,WAE/CD,EACA52C,EAAS,SAEbA,EAAS,SACpB,IAAK,KACD,OAAIo5C,EAAO1P,GAEH1pC,GACC42C,GAAiBC,EACZ,gBACA,iBAGP72C,EAAS,cACpB,IAAK,IACD,OAAI42C,EACO,QAEJC,EAAW,MAAQ,OAC9B,IAAK,KACD,OAAIuC,EAAO1P,GACHkN,EACO52C,EAAS,QAEbA,GAAU62C,EAAW,OAAS,SAC9BD,EACA52C,EAAS,QAEbA,GAAU62C,EAAW,MAAQ,QACxC,IAAK,IACD,OAAID,EACO,UAEJC,EAAW,QAAU,SAChC,IAAK,KACD,OAAIuC,EAAO1P,GACHkN,EACO52C,EAAS,UAEbA,GAAU62C,EAAW,SAAW,WAChCD,EACA52C,EAAS,UAEbA,GAAU62C,EAAW,QAAU,UAC1C,IAAK,IACD,OAAOD,GAAiBC,EAAW,KAAO,MAC9C,IAAK,KACD,OAAIuC,EAAO1P,GACA1pC,GAAU42C,GAAiBC,EAAW,KAAO,QAEjD72C,GAAU42C,GAAiBC,EAAW,KAAO,OAEhE,CAESnO,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,oFAAoF7yC,MACxF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,mFAAmFn4C,MAC/E,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,oBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,0BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,iBACNhX,EACA+M,GAAI+M,EACJhiC,EAAGgiC,EACH9M,GAAI8M,EACJ7M,EAAG,cACHC,GAAI4M,EACJ3M,EAAG2M,EACH1M,GAAI0M,EACJvM,EAAGuM,EACHtM,GAAIsM,EACJrM,EAAGqM,EACHpM,GAAIoM,GAER7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhJyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,gGAAgG7yC,MACpG,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,mBACTC,SAAU,iBACVC,QAAS,iBACTC,SAAU,WACN,OACS,IADDt1C,KAAKk3C,MAEE,6BAEA,4BAEnB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,SAAU/W,GACd,OAAQ,YAAYzjB,KAAKyjB,GAAK,MAAQ,MAAQ,IAAMA,CACxD,EACAgX,KAAM,QACNhX,EAAG,iBACH+M,GAAI,aACJj1B,EAAG,YACHk1B,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,YACHC,GAAI,YACJG,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CApEyCjS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,gGAAgG7yC,MACpG,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,WACL,MACI,WACCl1C,KAAKgvC,QAAU,EAAI,OAA0B,IAAjBhvC,KAAKgvC,QAAgB,IAAM,OACxD,KAER,EACAmG,QAAS,WACL,MACI,aACCn1C,KAAKgvC,QAAU,EAAI,OAA0B,IAAjBhvC,KAAKgvC,QAAgB,IAAM,OACxD,KAER,EACAoG,SAAU,WACN,MACI,WACCp1C,KAAKgvC,QAAU,EAAI,OAA0B,IAAjBhvC,KAAKgvC,QAAgB,IAAM,OACxD,KAER,EACAqG,QAAS,WACL,MACI,WACCr1C,KAAKgvC,QAAU,EAAI,OAA0B,IAAjBhvC,KAAKgvC,QAAgB,IAAM,OACxD,KAER,EACAsG,SAAU,WACN,OACS,IADDt1C,KAAKk3C,MAGD,uBACCl3C,KAAKgvC,QAAU,EACV,OACiB,IAAjBhvC,KAAKgvC,QACH,IACA,OACR,MAIA,uBACChvC,KAAKgvC,QAAU,EACV,OACiB,IAAjBhvC,KAAKgvC,QACH,IACA,OACR,KAGhB,EACAuG,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,QACNhX,EAAG,iBACH+M,GAAI,aACJj1B,EAAG,YACHk1B,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,YACHC,GAAI,YACJC,EAAG,gBACHC,GAAI,eACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA5GyCjS,CAAQ,EAAQ,M,eCClD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/B+F,KAAM,CACF,CACIC,MAAO,aACPtoB,OAAQ,EACRtzB,KAAM,KACN67C,OAAQ,IACRC,KAAM,KAEV,CACIF,MAAO,aACPG,MAAO,aACPzoB,OAAQ,EACRtzB,KAAM,KACN67C,OAAQ,IACRC,KAAM,KAEV,CACIF,MAAO,aACPG,MAAO,aACPzoB,OAAQ,EACRtzB,KAAM,KACN67C,OAAQ,IACRC,KAAM,KAEV,CACIF,MAAO,aACPG,MAAO,aACPzoB,OAAQ,EACRtzB,KAAM,KACN67C,OAAQ,IACRC,KAAM,KAEV,CACIF,MAAO,aACPG,MAAO,aACPzoB,OAAQ,EACRtzB,KAAM,KACN67C,OAAQ,IACRC,KAAM,KAEV,CACIF,MAAO,aACPG,MAAO,aACPzoB,OAAQ,EACRtzB,KAAM,KACN67C,OAAQ,KACRC,KAAM,MAEV,CACIF,MAAO,aACPG,OAAO,IACPzoB,OAAQ,EACRtzB,KAAM,MACN67C,OAAQ,KACRC,KAAM,OAGdE,oBAAqB,WACrBC,oBAAqB,SAAU1wC,EAAO4L,GAClC,MAAoB,MAAbA,EAAM,GAAa,EAAIpZ,SAASoZ,EAAM,IAAM5L,EAAO,GAC9D,EACAilC,OAAQ,yCAAyC7yC,MAAM,KACvDk4C,YAAa,yCAAyCl4C,MAClD,KAEJm4C,SAAU,8BAA8Bn4C,MAAM,KAC9Co4C,cAAe,gBAAgBp4C,MAAM,KACrCq4C,YAAa,gBAAgBr4C,MAAM,KACnC04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJC,IAAK,kBACLC,KAAM,uBACNrvC,EAAG,aACH8yC,GAAI,YACJC,IAAK,kBACLC,KAAM,wBAEVrE,cAAe,SACfC,KAAM,SAAU3qC,GACZ,MAAiB,OAAVA,CACX,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,KAEA,IAEf,EACAtB,SAAU,CACNC,QAAS,UACTC,QAAS,UACTC,SAAU,SAAUmF,GAChB,OAAIA,EAAI1E,SAAW71C,KAAK61C,OACb,cAEA,SAEf,EACAR,QAAS,UACTC,SAAU,SAAUiF,GAChB,OAAIv6C,KAAK61C,SAAW0E,EAAI1E,OACb,cAEA,SAEf,EACAN,SAAU,KAEdI,uBAAwB,WACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACD,OAAkB,IAAXjO,EAAe,KAAOA,EAAS,IAC1C,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOA,EAAS,IACpB,QACI,OAAOA,EAEnB,EACAsM,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNhX,EAAG,KACH+M,GAAI,MACJj1B,EAAG,KACHk1B,GAAI,MACJC,EAAG,MACHC,GAAI,OACJC,EAAG,KACHC,GAAI,MACJG,EAAG,MACHC,GAAI,OACJC,EAAG,KACHC,GAAI,QAMf,CAxJyCtI,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,yFAAyF7yC,MAC7F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,+CAA+Cn4C,MAAM,KAC/Do4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEVV,cAAe,6BACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,WAAb/B,EACO+B,EACa,WAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,WAAb/B,GAAsC,UAAbA,EACzB+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACD,SACAA,EAAQ,GACR,SACAA,EAAQ,GACR,SAEA,OAEf,EACAiG,SAAU,CACNC,QAAS,2BACTC,QAAS,sBACTC,SAAU,kBACVC,QAAS,wBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,uBACNhX,EAAG,kBACH+M,GAAI,WACJj1B,EAAG,kBACHk1B,GAAI,WACJC,EAAG,gBACHC,GAAI,SACJC,EAAG,WACHC,GAAI,YACJG,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA/EyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,qGAAqG7yC,MACzG,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,CACN6C,WACI,gEAAgEh7C,MAC5D,KAERqc,OAAQ,iEAAiErc,MACrE,KAEJi7C,SAAU,iBAEd7C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,iBACTE,QAAS,kBACTD,SAAU,wBACVE,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SAAU/W,GACd,OAAOA,EAAEnpB,QACL,gCACA,SAAUilC,EAAIC,EAAIC,GACd,MAAc,MAAPA,EAAaD,EAAK,KAAOA,EAAKC,EAAK,IAC9C,EAER,EACAhF,KAAM,SAAUhX,GACZ,MAAI,4BAA4BzjB,KAAKyjB,GAC1BA,EAAEnpB,QAAQ,SAAU,UAE3B,OAAO0F,KAAKyjB,GACLA,EAAEnpB,QAAQ,QAAS,YAEvBmpB,CACX,EACAA,EAAG,iBACH+M,GAAI,UACJj1B,EAAG,OACHk1B,GAAI,UACJC,EAAG,QACHC,GAAI,WACJC,EAAG,MACHC,GAAI,SACJG,EAAG,MACHC,GAAI,SACJC,EAAG,OACHC,GAAI,WAERuJ,uBAAwB,8BACxBC,QAAS,SAAU1M,GACf,OAAe,IAAXA,EACOA,EAEI,IAAXA,EACOA,EAAS,MAGhBA,EAAS,IACRA,GAAU,KAAOA,EAAS,IAAO,GAClCA,EAAS,KAAQ,EAEV,MAAQA,EAEZA,EAAS,IACpB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhGyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAI2O,EAAW,CACX,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,IAAK,OAGA3O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,qFAAqF7yC,MACzF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,0DAA0Dn4C,MAChE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,mBACTC,QAAS,mBACTC,SAAU,kBACVC,QAAS,kBACTC,SAAU,kCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,WACNhX,EAAG,iBACH+M,GAAI,YACJj1B,EAAG,YACHk1B,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJG,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERuJ,uBAAwB,kBACxBC,QAAS,SAAU1M,GAGf,OAAOA,GAAU2N,EAAS3N,IAAW2N,EAF7B3N,EAAS,KAEmC2N,EAD5C3N,GAAU,IAAM,IAAM,MAElC,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAtFyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJ1O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,yEAAyE7yC,MAC7E,KAEJk4C,YACI,yEAAyEl4C,MACrE,KAERm4C,SAAU,iDAAiDn4C,MAAM,KACjEo4C,cAAe,oBAAoBp4C,MAAM,KACzCq4C,YAAa,oBAAoBr4C,MAAM,KACvCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVV,cAAe,cACfC,KAAM,SAAU3qC,GACZ,MAAiB,UAAVA,CACX,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,QAEA,OAEf,EACAtB,SAAU,CACNC,QAAS,oBACTC,QAAS,kBACTC,SAAU,iBACVC,QAAS,qBACTC,SAAU,8BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,QACNhX,EAAG,iBACH+M,GAAI,YACJj1B,EAAG,UACHk1B,GAAI,UACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UACJG,EAAG,QACHC,GAAI,QACJC,EAAG,WACHC,GAAI,YAERuJ,uBAAwB,YACxBC,QAAS,OACTe,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EACAqgC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA3GyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJ1O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,6FAA6F7yC,MACjG,KAEJk4C,YACI,2EAA2El4C,MACvE,KAERw7C,kBAAkB,EAClBrD,SAAU,0DAA0Dn4C,MAChE,KAEJo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,wBAAwBr4C,MAAM,KAC3C04C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,YACTC,QAAS,YACTC,SAAU,WACVC,QAAS,cACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNhX,EAAG,gBACH+M,GAAI,gBACJj1B,EAAG,aACHk1B,GAAI,WACJC,EAAG,YACHC,GAAI,UACJC,EAAG,WACHC,GAAI,SACJG,EAAG,cACHC,GAAI,YACJC,EAAG,YACHC,GAAI,WAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EACA8+B,cAAe,gCACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,WAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,aAAb/B,EACA+B,EACa,aAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,SAAb/B,EACA+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,SACAA,EAAO,GACP,WACAA,EAAO,GACP,WACAA,EAAO,GACP,OAEA,QAEf,EACAZ,uBAAwB,eACxBC,QAAS,SAAU1M,GACf,OAAOA,EAAS,KACpB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhIyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,yCAAyC7yC,MAAM,KACvDk4C,YAAa,yCAAyCl4C,MAClD,KAEJm4C,SAAU,8BAA8Bn4C,MAAM,KAC9Co4C,cAAe,gBAAgBp4C,MAAM,KACrCq4C,YAAa,gBAAgBr4C,MAAM,KACnC04C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,uBACLC,KAAM,4BACNrvC,EAAG,cACH8yC,GAAI,gBACJC,IAAK,uBACLC,KAAM,6BAEV1D,SAAU,CACNC,QAAS,QACTC,QAAS,QACTC,SAAU,UACVC,QAAS,QACTC,SAAU,cACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,OACRC,KAAM,OACNhX,EAAG,MACH+M,GAAI,MACJj1B,EAAG,KACHk1B,GAAI,MACJC,EAAG,OACHC,GAAI,OACJC,EAAG,KACHC,GAAI,MACJG,EAAG,MACHC,GAAI,MACJC,EAAG,MACHC,GAAI,OAERuJ,uBAAwB,iBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOjO,EAAS,IACpB,IAAK,IACD,OAAOA,EAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,IACpB,QACI,OAAOA,EAEnB,EACAoL,cAAe,QACfC,KAAM,SAAU3H,GACZ,MAAiB,OAAVA,CACX,EACA4H,SAAU,SAAU+B,EAAMC,EAAQmE,GAC9B,OAAOpE,EAAO,GAAK,KAAO,IAC9B,GAKP,CA9EyCzS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIzB,SAAS2Q,EAAoB1nC,EAAKilC,EAAet8B,EAAKu8B,GAClD,IAAIh+B,EAAS,CACTqmB,EAAG,CAAC,cAAe,kBACnB+M,GAAI,CAACt6B,EAAM,UAAWA,EAAM,cAC5BqF,EAAG,CAAC,YAAa,cACjBk1B,GAAI,CAACv6B,EAAM,UAAWA,EAAM,cAC5Bw6B,EAAG,CAAC,SAAU,WACdC,GAAI,CAACz6B,EAAM,QAASA,EAAM,WAC1B06B,EAAG,CAAC,QAAS,UACbC,GAAI,CAAC36B,EAAM,OAAQA,EAAM,UACzB46B,EAAG,CAAC,WAAY,aAChBC,GAAI,CAAC76B,EAAM,SAAUA,EAAM,aAC3B86B,EAAG,CAAC,QAAS,UACbC,GAAI,CAAC/6B,EAAM,OAAQA,EAAM,UACzBg7B,EAAG,CAAC,QAAS,UACbC,GAAI,CAACj7B,EAAM,OAAQA,EAAM,WAE7B,OAAOilC,EAAgB/9B,EAAOyB,GAAK,GAAKzB,EAAOyB,GAAK,EACxD,CAqBYouB,EAAO+L,aAAa,SAAU,CAItCpF,OAAQ,oFAAoF7yC,MACxF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEw7C,kBAAkB,EAClBrD,SAAU,4CAA4Cn4C,MAAM,KAC5Do4C,cAAe,2BAA2Bp4C,MAAM,KAChDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cw4C,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACDyF,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,EACAH,cAAe,cACfI,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sBACJC,IAAK,4BACLC,KAAM,kCACNyD,GAAI,qBACJC,IAAK,2BACLC,KAAM,oCAEV1D,SAAU,CACNC,QAAS,wBACTC,QAAS,yBACTC,SAAU,yBACVC,QAAS,wBACTC,SAAU,+BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,UACNhX,EAAGma,EACHpN,GAAIoN,EACJriC,EAAGqiC,EACHnN,GAAImN,EACJlN,EAAGkN,EACHjN,GAAIiN,EACJhN,EAAGgN,EACH/M,GAAI+M,EACJ9M,EAAG8M,EACH7M,GAAI6M,EACJ5M,EAAG4M,EACH3M,GAAI2M,EACJ1M,EAAG0M,EACHzM,GAAIyM,GAERlD,uBAAwB,qBACxBC,QAAS,SAAUzkC,EAAKgmC,GACpB,IAAIloC,EAAIkoC,EAAO5gC,cACf,OAAItH,EAAE6P,SAAS,MAAQ7P,EAAE6P,SAAS,KAAa3N,EAAM,IAE9CA,EA1Ef,SAAwBA,GAEpB,IAAIxL,GADJwL,EAAM,GAAKA,GACCiK,UAAUjK,EAAIvI,OAAS,GAC/B6vC,EAAKtnC,EAAIvI,OAAS,EAAIuI,EAAIiK,UAAUjK,EAAIvI,OAAS,GAAK,GAC1D,OACY,IAAN6vC,GAAkB,IAANA,GACR,KAAL9yC,GAAiB,KAALA,GAAkB,MAAN8yC,GAAmB,MAAL9yC,GAAkB,MAALA,EAGjD,IADI,IAEf,CAgEqBi1C,CAAezpC,EAChC,EACA0kC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAtHyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAET/H,EAAS,CACL,eACA,QACA,QACA,QACA,QACA,WACA,SACA,MACA,UACA,eACA,eACA,gBAGC3G,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQA,EACRqF,YAAarF,EACbsF,SACI,0EAA0En4C,MACtE,KAERo4C,cACI,2DAA2Dp4C,MAAM,KACrEq4C,YAAa,gBAAgBr4C,MAAM,KACnCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVV,cAAe,kBACfC,KAAM,SAAU3qC,GACZ,MAAO,UAAUqR,KAAKrR,EAC1B,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,UAEA,SAEf,EACAtB,SAAU,CACNC,QAAS,sBACTC,QAAS,uBACTC,SAAU,oBACVC,QAAS,qBACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,KACNhX,EAAG,kBACH+M,GAAI,WACJj1B,EAAG,cACHk1B,GAAI,YACJC,EAAG,eACHC,GAAI,aACJC,EAAG,WACHC,GAAI,SACJG,EAAG,YACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EACF9L,QAAQ,gBAAiB,SAAUC,GAChC,OAAOohC,EAAUphC,EACrB,GACCD,QAAQ,KAAM,IACvB,EACAkhC,WAAY,SAAUp1B,GAClB,OAAOA,EACF9L,QAAQ,MAAO,SAAUC,GACtB,OAAOkhC,EAAUlhC,EACrB,GACCD,QAAQ,KAAM,IACvB,EACAsgC,KAAM,CACFC,IAAK,EACLC,IAAK,KAMhB,CA1HyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAI2O,EAAW,CACX,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,IAAK,OAGA3O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,kFAAkF7yC,MACtF,KAEJk4C,YAAa,qDAAqDl4C,MAC9D,KAEJm4C,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,kBACTC,SAAU,iBACVC,QAAS,kBACTC,SAAU,wCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,WACNhX,EAAG,iBACH+M,GAAI,YACJj1B,EAAG,YACHk1B,GAAI,WACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJG,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERuJ,uBAAwB,wBACxBC,QAAS,SAAU1M,GAGf,OAAOA,GAAU2N,EAAS3N,IAAW2N,EAF7B3N,EAAS,KAEmC2N,EAD5C3N,GAAU,IAAM,IAAM,MAElC,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxFyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIzB,SAAS2Q,EAAoB3P,EAAQkN,EAAet8B,EAAKu8B,GACrD,IAAIh+B,EAAS,CACT7B,EAAG,CAAC,aAAc,gBAClBm1B,EAAG,CAAC,YAAa,eACjBE,EAAG,CAAC,UAAW,aACfI,EAAG,CAAC,WAAY,eAChBE,EAAG,CAAC,UAAW,eAEnB,OAAOiK,EAAgB/9B,EAAOyB,GAAK,GAAKzB,EAAOyB,GAAK,EACxD,CAsBA,SAAS+gC,EAA4B3R,GAEjC,GADAA,EAAS9sC,SAAS8sC,EAAQ,IACtB4R,MAAM5R,GACN,OAAO,EAEX,GAAIA,EAAS,EAET,OAAO,EACJ,GAAIA,EAAS,GAEhB,OAAI,GAAKA,GAAUA,GAAU,EAI1B,GAAIA,EAAS,IAAK,CAErB,IAAIkO,EAAYlO,EAAS,GAEzB,OACW2R,EADO,IAAdzD,EADalO,EAAS,GAISkO,EACvC,CAAO,GAAIlO,EAAS,IAAO,CAEvB,KAAOA,GAAU,IACbA,GAAkB,GAEtB,OAAO2R,EAA4B3R,EACvC,CAGI,OAAO2R,EADP3R,GAAkB,IAG1B,CAEShB,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,uFAAuF7yC,MAC3F,KAEJk4C,YACI,+DAA+Dl4C,MAC3D,KAERw7C,kBAAkB,EAClBrD,SACI,mEAAmEn4C,MAC/D,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,cACJC,IAAK,iBACLC,EAAG,aACHC,GAAI,eACJC,IAAK,2BACLC,KAAM,kCAEVC,SAAU,CACNC,QAAS,eACTK,SAAU,IACVJ,QAAS,eACTC,SAAU,eACVC,QAAS,mBACTC,SAAU,WAEN,OAAQt1C,KAAKk3C,OACT,KAAK,EACL,KAAK,EACD,MAAO,0BACX,QACI,MAAO,yBAEnB,GAEJ1B,aAAc,CACVC,OAlGR,SAA2Bp0B,GAEvB,OAAIw5B,EADSx5B,EAAO0gB,OAAO,EAAG1gB,EAAOzb,QAAQ,OAElC,KAAOyb,EAEX,MAAQA,CACnB,EA6FQq0B,KA5FR,SAAyBr0B,GAErB,OAAIw5B,EADSx5B,EAAO0gB,OAAO,EAAG1gB,EAAOzb,QAAQ,OAElC,QAAUyb,EAEd,SAAWA,CACtB,EAuFQqd,EAAG,kBACH+M,GAAI,cACJj1B,EAAGqiC,EACHnN,GAAI,cACJC,EAAGkN,EACHjN,GAAI,aACJC,EAAGgN,EACH/M,GAAI,UACJG,EAAG4M,EACH3M,GAAI,WACJC,EAAG0M,EACHzM,GAAI,WAERuJ,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA5IyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,6EAA6E7yC,MACjF,KAEJk4C,YACI,6EAA6El4C,MACzE,KAERm4C,SAAU,sCAAsCn4C,MAAM,KACtDo4C,cAAe,oCAAoCp4C,MAAM,KACzDq4C,YAAa,mBAAmBr4C,MAAM,KACtCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,6BAEVV,cAAe,kBACfC,KAAM,SAAU3qC,GACZ,MAAiB,WAAVA,CACX,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,WAEA,QAEf,EACAtB,SAAU,CACNC,QAAS,kBACTC,QAAS,mBACTC,SAAU,wBACVC,QAAS,qBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNhX,EAAG,mBACH+M,GAAI,YACJj1B,EAAG,SACHk1B,GAAI,UACJC,EAAG,YACHC,GAAI,aACJC,EAAG,QACHC,GAAI,SACJG,EAAG,UACHC,GAAI,WACJC,EAAG,OACHC,GAAI,SAERuJ,uBAAwB,eACxBC,QAAS,SAAU1M,GACf,MAAO,MAAQA,CACnB,GAKP,CAtEyCpF,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAI6S,EAAQ,CACRtP,GAAI,6BACJj1B,EAAG,wBACHk1B,GAAI,0BACJC,EAAG,2BACHC,GAAI,4BACJC,EAAG,qBACHC,GAAI,sBACJG,EAAG,uBACHC,GAAI,4BACJC,EAAG,mBACHC,GAAI,oBASR,SAAS4O,EAAkB9R,EAAQkN,EAAet8B,EAAKu8B,GACnD,OAAOD,EACDW,EAAMj9B,GAAK,GACXu8B,EACEU,EAAMj9B,GAAK,GACXi9B,EAAMj9B,GAAK,EACvB,CACA,SAASmhC,EAAQ/R,GACb,OAAOA,EAAS,IAAO,GAAMA,EAAS,IAAMA,EAAS,EACzD,CACA,SAAS6N,EAAMj9B,GACX,OAAOihC,EAAMjhC,GAAK9d,MAAM,IAC5B,CACA,SAASw8C,EAAUtP,EAAQkN,EAAet8B,EAAKu8B,GAC3C,IAAI72C,EAAS0pC,EAAS,IACtB,OAAe,IAAXA,EAEI1pC,EAASw7C,EAAkB9R,EAAQkN,EAAet8B,EAAI,GAAIu8B,GAEvDD,EACA52C,GAAUy7C,EAAQ/R,GAAU6N,EAAMj9B,GAAK,GAAKi9B,EAAMj9B,GAAK,IAE1Du8B,EACO72C,EAASu3C,EAAMj9B,GAAK,GAEpBta,GAAUy7C,EAAQ/R,GAAU6N,EAAMj9B,GAAK,GAAKi9B,EAAMj9B,GAAK,GAG1E,CACSouB,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,CACJx2B,OAAQ,oGAAoGrc,MACxG,KAEJg7C,WACI,kGAAkGh7C,MAC9F,KAERi7C,SAAU,+DAEd/C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,CACN97B,OAAQ,oFAAoFrc,MACxF,KAEJg7C,WACI,2FAA2Fh7C,MACvF,KAERi7C,SAAU,cAEd7C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,iBAAiBr4C,MAAM,KACpCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,sCACLC,KAAM,4CACNrvC,EAAG,aACH8yC,GAAI,wBACJC,IAAK,sCACLC,KAAM,4CAEV1D,SAAU,CACNC,QAAS,gBACTC,QAAS,aACTC,SAAU,UACVC,QAAS,aACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNhX,EApFR,SAA0BwK,EAAQkN,EAAet8B,EAAKu8B,GAClD,OAAID,EACO,kBAEAC,EAAW,kBAAoB,iBAE9C,EA+EQ5K,GAAI+M,EACJhiC,EAAGwkC,EACHtP,GAAI8M,EACJ7M,EAAGqP,EACHpP,GAAI4M,EACJ3M,EAAGmP,EACHlP,GAAI0M,EACJvM,EAAG+O,EACH9O,GAAIsM,EACJrM,EAAG6O,EACH5O,GAAIoM,GAER7C,uBAAwB,cACxBC,QAAS,SAAU1M,GACf,OAAOA,EAAS,MACpB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAjIyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIzB,IAAI6S,EAAQ,CACRtP,GAAI,qCAAqCzvC,MAAM,KAC/Cwa,EAAG,iCAAiCxa,MAAM,KAC1C0vC,GAAI,iCAAiC1vC,MAAM,KAC3C2vC,EAAG,iCAAiC3vC,MAAM,KAC1C4vC,GAAI,iCAAiC5vC,MAAM,KAC3C6vC,EAAG,6BAA6B7vC,MAAM,KACtC8vC,GAAI,6BAA6B9vC,MAAM,KACvCiwC,EAAG,iCAAiCjwC,MAAM,KAC1CkwC,GAAI,iCAAiClwC,MAAM,KAC3CmwC,EAAG,wBAAwBnwC,MAAM,KACjCowC,GAAI,wBAAwBpwC,MAAM,MAKtC,SAASqc,EAAO0+B,EAAO7N,EAAQkN,GAC3B,OAAIA,EAEOlN,EAAS,IAAO,GAAKA,EAAS,KAAQ,GAAK6N,EAAM,GAAKA,EAAM,GAI5D7N,EAAS,IAAO,GAAKA,EAAS,KAAQ,GAAK6N,EAAM,GAAKA,EAAM,EAE3E,CACA,SAASD,EAAuB5N,EAAQkN,EAAet8B,GACnD,OAAOovB,EAAS,IAAM7wB,EAAO0iC,EAAMjhC,GAAMovB,EAAQkN,EACrD,CACA,SAAS8E,EAAyBhS,EAAQkN,EAAet8B,GACrD,OAAOzB,EAAO0iC,EAAMjhC,GAAMovB,EAAQkN,EACtC,CAKSlO,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,uGAAuG7yC,MAC3G,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,0EAA0En4C,MACtE,KAERo4C,cAAe,kBAAkBp4C,MAAM,KACvCq4C,YAAa,kBAAkBr4C,MAAM,KACrCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,cACHC,GAAI,uBACJC,IAAK,8BACLC,KAAM,qCAEVC,SAAU,CACNC,QAAS,uBACTC,QAAS,oBACTC,SAAU,qBACVC,QAAS,sBACTC,SAAU,gCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNhX,EAnCR,SAAyBwK,EAAQkN,GAC7B,OAAOA,EAAgB,iBAAmB,gBAC9C,EAkCQ3K,GAAIqL,EACJtgC,EAAG0kC,EACHxP,GAAIoL,EACJnL,EAAGuP,EACHtP,GAAIkL,EACJjL,EAAGqP,EACHpP,GAAIgL,EACJ7K,EAAGiP,EACHhP,GAAI4K,EACJ3K,EAAG+O,EACH9O,GAAI0K,GAERnB,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAjGyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIzB,IAAIiT,EAAa,CACbC,MAAO,CAEH3P,GAAI,CAAC,SAAU,UAAW,WAC1Bj1B,EAAG,CAAC,cAAe,iBACnBk1B,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBE,GAAI,CAAC,MAAO,OAAQ,QACpBI,GAAI,CAAC,SAAU,UAAW,WAC1BE,GAAI,CAAC,SAAU,SAAU,WAE7BiP,uBAAwB,SAAUnS,EAAQoS,GACtC,OAAkB,IAAXpS,EACDoS,EAAQ,GACRpS,GAAU,GAAKA,GAAU,EACvBoS,EAAQ,GACRA,EAAQ,EACpB,EACA9C,UAAW,SAAUtP,EAAQkN,EAAet8B,GACxC,IAAIwhC,EAAUH,EAAWC,MAAMthC,GAC/B,OAAmB,IAAfA,EAAIlR,OACGwtC,EAAgBkF,EAAQ,GAAKA,EAAQ,GAGxCpS,EACA,IACAiS,EAAWE,uBAAuBnS,EAAQoS,EAGtD,GAGKpT,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,mFAAmF7yC,MACvF,KAEJk4C,YACI,2DAA2Dl4C,MAAM,KACrEw7C,kBAAkB,EAClBrD,SAAU,4DAA4Dn4C,MAClE,KAEJo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,gBAETC,SAAU,WACN,OAAQp1C,KAAKk3C,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,kBAEnB,EACA7B,QAAS,cACTC,SAAU,WAUN,MATmB,CACf,6BACA,iCACA,4BACA,4BACA,8BACA,2BACA,4BAEgBt1C,KAAKk3C,MAC7B,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNhX,EAAG,mBACH+M,GAAI0P,EAAW3C,UACfhiC,EAAG2kC,EAAW3C,UACd9M,GAAIyP,EAAW3C,UACf7M,EAAGwP,EAAW3C,UACd5M,GAAIuP,EAAW3C,UACf3M,EAAG,MACHC,GAAIqP,EAAW3C,UACfvM,EAAG,SACHC,GAAIiP,EAAW3C,UACfrM,EAAG,SACHC,GAAI+O,EAAW3C,WAEnB7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzHyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,8IAA8I7yC,MAClJ,KAEJk4C,YACI,iEAAiEl4C,MAC7D,KAER+7C,YAAa,yCACbK,kBAAmB,yCACnBb,iBAAkB,yCAClBc,uBAAwB,yCACxBlE,SAAU,kDAAkDn4C,MAAM,KAClEo4C,cAAe,wBAAwBp4C,MAAM,KAC7Cq4C,YAAa,wBAAwBr4C,MAAM,KAC3C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,wBACLC,KAAM,+BAEVC,SAAU,CACNC,QAAS,wBACTC,QAAS,eACTC,SAAU,cACVC,QAAS,iBACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,cACRC,KAAM,WACNhX,EAAG,mBACH+M,GAAI,YACJj1B,EAAG,YACHk1B,GAAI,YACJC,EAAG,WACHC,GAAI,WACJC,EAAG,QACHC,GAAI,QACJG,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,UAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhEyCjS,CAAQ,EAAQ,M,cCIlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,uFAAuF7yC,MAC3F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,wDAAwDn4C,MAC9D,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,YACHC,GAAI,cACJC,IAAK,mBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,eACTC,SAAU,oBACVC,QAAS,gBACTC,SAAU,WACN,OAAQt1C,KAAKk3C,OACT,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,4BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,4BAEnB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNhX,EAAG,kBACH+M,GAAI,aACJj1B,EAAG,cACHk1B,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJG,EAAG,aACHC,GAAI,YACJC,EAAG,cACHC,GAAI,aAERuJ,uBAAwB,8BACxBC,QAAS,SAAU1M,GACf,IAAIkO,EAAYlO,EAAS,GACrBmO,EAAcnO,EAAS,IAC3B,OAAe,IAAXA,EACOA,EAAS,MACO,IAAhBmO,EACAnO,EAAS,MACTmO,EAAc,IAAMA,EAAc,GAClCnO,EAAS,MACK,IAAdkO,EACAlO,EAAS,MACK,IAAdkO,EACAlO,EAAS,MACK,IAAdkO,GAAiC,IAAdA,EACnBlO,EAAS,MAETA,EAAS,KAExB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzFyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,yFAAyF7yC,MAC7F,KAEJk4C,YACI,yEAAyEl4C,MACrE,KAERw7C,kBAAkB,EAClBrD,SACI,wEAAwEn4C,MACpE,KAERo4C,cAAe,2CAA2Cp4C,MAAM,KAChEq4C,YAAa,wBAAwBr4C,MAAM,KAC3C04C,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,aACTC,QAAS,YACTC,SAAU,WACVC,QAAS,cACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,aACRC,KAAM,WACNhX,EAAG,gBACH+M,GAAI,cACJj1B,EAAG,eACHk1B,GAAI,cACJC,EAAG,eACHC,GAAI,cACJC,EAAG,YACHC,GAAI,WACJG,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,WAERkI,cAAe,gDACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAGO,WAAb/B,GAAyB+B,GAAQ,GACrB,iBAAb/B,GACa,eAAbA,EAEO+B,EAAO,GAEPA,CAEf,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,SACAA,EAAO,GACP,SACAA,EAAO,GACP,eACAA,EAAO,GACP,aAEA,QAEf,GAKP,CAtFyCzS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,SAASsQ,EAAUtP,EAAQkN,EAAet8B,EAAKu8B,GAC3C,OAAQv8B,GACJ,IAAK,IACD,OAAOs8B,EAAgB,gBAAkB,kBAC7C,IAAK,KACD,OAAOlN,GAAUkN,EAAgB,UAAY,aACjD,IAAK,IACL,IAAK,KACD,OAAOlN,GAAUkN,EAAgB,SAAW,YAChD,IAAK,IACL,IAAK,KACD,OAAOlN,GAAUkN,EAAgB,OAAS,WAC9C,IAAK,IACL,IAAK,KACD,OAAOlN,GAAUkN,EAAgB,QAAU,WAC/C,IAAK,IACL,IAAK,KACD,OAAOlN,GAAUkN,EAAgB,OAAS,UAC9C,IAAK,IACL,IAAK,KACD,OAAOlN,GAAUkN,EAAgB,OAAS,WAC9C,QACI,OAAOlN,EAEnB,CAEShB,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,+LAA+L7yC,MACnM,KAEJk4C,YACI,6EAA6El4C,MACzE,KAERw7C,kBAAkB,EAClBrD,SAAU,6CAA6Cn4C,MAAM,KAC7Do4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,oBACJC,IAAK,0BACLC,KAAM,iCAEVV,cAAe,SACfC,KAAM,SAAU3qC,GACZ,MAAiB,OAAVA,CACX,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,KAEA,IAEf,EACAtB,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,iBACVC,QAAS,eACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,UACNhX,EAAG8Z,EACH/M,GAAI+M,EACJhiC,EAAGgiC,EACH9M,GAAI8M,EACJ7M,EAAG6M,EACH5M,GAAI4M,EACJ3M,EAAG2M,EACH1M,GAAI0M,EACJvM,EAAGuM,EACHtM,GAAIsM,EACJrM,EAAGqM,EACHpM,GAAIoM,GAER7C,uBAAwB,eACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOjO,EAAS,QACpB,QACI,OAAOA,EAEnB,GAKP,CAxGyCpF,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGb,SAAS2E,EAAerS,EAAQkN,EAAe/0B,EAAQg1B,GACnD,IAAIxsC,EAAS,GACb,GAAIusC,EACA,OAAQ/0B,GACJ,IAAK,IACDxX,EAAS,aACT,MACJ,IAAK,KACDA,EAAS,WACT,MACJ,IAAK,IACDA,EAAS,WACT,MACJ,IAAK,KACDA,EAAS,YACT,MACJ,IAAK,IACDA,EAAS,SACT,MACJ,IAAK,KACDA,EAAS,SACT,MACJ,IAAK,IACDA,EAAS,UACT,MACJ,IAAK,KACDA,EAAS,UACT,MACJ,IAAK,IACDA,EAAS,WACT,MACJ,IAAK,KACDA,EAAS,WACT,MACJ,IAAK,IACDA,EAAS,UACT,MACJ,IAAK,KACDA,EAAS,gBAIjB,OAAQwX,GACJ,IAAK,IACDxX,EAAS,eACT,MACJ,IAAK,KACDA,EAAS,aACT,MACJ,IAAK,IACDA,EAAS,aACT,MACJ,IAAK,KACDA,EAAS,aACT,MACJ,IAAK,IACDA,EAAS,WACT,MACJ,IAAK,KACDA,EAAS,WACT,MACJ,IAAK,IACDA,EAAS,YACT,MACJ,IAAK,KACDA,EAAS,YACT,MACJ,IAAK,IACDA,EAAS,cACT,MACJ,IAAK,KACDA,EAAS,cACT,MACJ,IAAK,IACDA,EAAS,YACT,MACJ,IAAK,KACDA,EAAS,YAIrB,OAAOA,EAAO0L,QAAQ,MAAO2zB,EACjC,CAEShB,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YACI,gFAAgFl4C,MAC5E,KAERw7C,kBAAkB,EAClBrD,SAAU,uDAAuDn4C,MAAM,KACvEo4C,cAAe,kCAAkCp4C,MAAM,KACvDq4C,YAAa,qBAAqBr4C,MAAM,KACxC04C,eAAgB,CACZC,GAAI,eACJC,IAAK,kBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEVC,SAAU,CACNC,QAAS,UACTC,QAAS,aACTC,SAAU,WACVC,QAAS,WACTC,SAAU,mBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNhX,EAAG6c,EACH9P,GAAI8P,EACJ/kC,EAAG+kC,EACH7P,GAAI6P,EACJ5P,EAAG4P,EACH3P,GAAI2P,EACJ1P,EAAG0P,EACHzP,GAAIyP,EACJtP,EAAGsP,EACHrP,GAAIqP,EACJpP,EAAGoP,EACHnP,GAAImP,GAER5E,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EACA8+B,cAAe,qCACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,UAAb/B,GAAqC,UAAbA,EACjB+B,EAEM,WAAb/B,GACa,aAAbA,GACa,WAAbA,EAEO+B,GAAQ,GAAKA,EAAOA,EAAO,QAL/B,CAOX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,GAAQ,GAAKA,EAAO,EACb,QACAA,EAAO,GACP,QACAA,EAAO,GACP,SACAA,EAAO,GACP,WAEA,QAEf,EACAV,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9MyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,oFAAoF7yC,MACxF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,6CAA6Cn4C,MAAM,KAC7Do4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEVV,cAAe,8BACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,SAAb/B,EACO+B,EACa,cAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,WAAb/B,GAAsC,UAAbA,EACzB+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACD,OACAA,EAAQ,GACR,YACAA,EAAQ,GACR,SAEA,OAEf,EACAiG,SAAU,CACNC,QAAS,sBACTC,QAAS,kBACTC,SAAU,kBACVC,QAAS,sBACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,gBACNhX,EAAG,gBACH+M,GAAI,UACJj1B,EAAG,UACHk1B,GAAI,WACJC,EAAG,QACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UACJG,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA/EyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,oFAAoF7yC,MACxF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,6CAA6Cn4C,MAAM,KAC7Do4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEVV,cAAe,8BACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,SAAb/B,EACO+B,EACa,cAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,WAAb/B,GAAsC,UAAbA,EACzB+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACD,OACAA,EAAQ,GACR,YACAA,EAAQ,GACR,SAEA,OAEf,EACAiG,SAAU,CACNC,QAAS,sBACTC,QAAS,kBACTC,SAAU,kBACVC,QAAS,sBACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,gBACNhX,EAAG,gBACH+M,GAAI,UACJj1B,EAAG,UACHk1B,GAAI,WACJC,EAAG,QACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UACJG,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA/EyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,iEAAiEn4C,MAC7D,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,iBACTC,SAAU,gBACVC,QAAS,qBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,eACH+M,GAAI,aACJj1B,EAAG,SACHk1B,GAAI,YACJC,EAAG,SACHC,GAAI,aACJC,EAAG,UACHC,GAAI,YACJG,EAAG,QACHC,GAAI,UACJC,EAAG,OACHC,GAAI,UAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA5DyCjS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJ1O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,2FAA2F7yC,MAC/F,KAEJk4C,YAAa,mDAAmDl4C,MAAM,KACtEm4C,SAAU,wDAAwDn4C,MAC9D,KAEJo4C,cAAe,2BAA2Bp4C,MAAM,KAChDq4C,YAAa,2BAA2Br4C,MAAM,KAE9C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,sBACTC,SAAU,gBACVC,QAAS,mBACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,kBACNhX,EAAG,kBACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,SACHC,GAAI,SACJG,EAAG,OACHC,GAAI,OACJC,EAAG,UACHC,GAAI,WAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EACAqgC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7FyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,qFAAqF7yC,MACzF,KAEJk4C,YACI,6DAA6Dl4C,MAAM,KACvEw7C,kBAAkB,EAClBrD,SAAU,qDAAqDn4C,MAAM,KACrEo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,2BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,oBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,0BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNhX,EAAG,gBACH+M,GAAI,cACJj1B,EAAG,aACHk1B,GAAI,cACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,WACHC,GAAI,aACJC,EAAG,SACHC,GAAI,SAERuJ,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9DyCjS,CAAQ,EAAQ,M,eCClD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJ1O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,uFAAuF7yC,MAC3F,KAEJk4C,YACI,uEAAuEl4C,MACnE,KAERw7C,kBAAkB,EAClBrD,SAAU,wDAAwDn4C,MAC9D,KAEJo4C,cAAe,0CAA0Cp4C,MAAM,KAC/Dq4C,YAAa,4BAA4Br4C,MAAM,KAC/Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,eACJC,IAAK,kBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEV2B,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EACA8+B,cAAe,yBACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,SAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,UAAb/B,EACA+B,EACa,WAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,SAAb/B,EACA+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,OACAA,EAAO,GACP,QACAA,EAAO,GACP,SACAA,EAAO,GACP,OAEA,MAEf,EACAtB,SAAU,CACNC,QAAS,UACTC,QAAS,YACTC,SAAU,qBACVC,QAAS,YACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,OACRC,KAAM,WACNhX,EAAG,YACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,SACJG,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7HyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIzB,IAAI2R,EACI,6DAA6D79C,MAAM,KACvE89C,EACI,kDAAkD99C,MAAM,KAC5D87C,EAAc,CACV,QACA,QACA,oBACA,QACA,SACA,cACA,cACA,QACA,QACA,QACA,QACA,SAEJC,EACI,qKAEG7P,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,0FAA0F7yC,MAC9F,KAEJk4C,YAAa,SAAU19B,EAAG6B,GACtB,OAAK7B,EAEM,QAAQyE,KAAK5C,GACbyhC,EAAuBtjC,EAAE0iC,SAEzBW,EAAoBrjC,EAAE0iC,SAJtBW,CAMf,EAEA9B,YAAaA,EACbR,iBAAkBQ,EAClBK,kBACI,4FACJC,uBACI,mFAEJP,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAElB3D,SACI,6DAA6Dn4C,MAAM,KACvEo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,mBACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,aACNhX,EAAG,oBACH+M,GAAI,cACJj1B,EAAG,aACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,WACJG,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WAERuJ,uBAAwB,kBACxBC,QAAS,SAAU1M,GACf,OACIA,GACY,IAAXA,GAA2B,IAAXA,GAAgBA,GAAU,GAAK,MAAQ,KAEhE,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzGyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAI2R,EACI,6DAA6D79C,MAAM,KACvE89C,EACI,kDAAkD99C,MAAM,KAC5D87C,EAAc,CACV,QACA,QACA,oBACA,QACA,SACA,cACA,cACA,QACA,QACA,QACA,QACA,SAEJC,EACI,qKAEC7P,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,0FAA0F7yC,MAC9F,KAEJk4C,YAAa,SAAU19B,EAAG6B,GACtB,OAAK7B,EAEM,QAAQyE,KAAK5C,GACbyhC,EAAuBtjC,EAAE0iC,SAEzBW,EAAoBrjC,EAAE0iC,SAJtBW,CAMf,EAEA9B,YAAaA,EACbR,iBAAkBQ,EAClBK,kBACI,4FACJC,uBACI,mFAEJP,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAElB3D,SACI,6DAA6Dn4C,MAAM,KACvEo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,mBACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,aACNhX,EAAG,oBACH+M,GAAI,cACJj1B,EAAG,aACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WAERuJ,uBAAwB,kBACxBC,QAAS,SAAU1M,GACf,OACIA,GACY,IAAXA,GAA2B,IAAXA,GAAgBA,GAAU,GAAK,MAAQ,KAEhE,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA3GyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,qFAAqF7yC,MACzF,KAEJk4C,YACI,6DAA6Dl4C,MAAM,KACvEw7C,kBAAkB,EAClBrD,SAAU,qDAAqDn4C,MAAM,KACrEo4C,cAAe,+BAA+Bp4C,MAAM,KACpDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,oBACTC,QAAS,uBACTC,SAAU,mBACVC,QAAS,oBACTC,SAAU,gCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNhX,EAAG,eACH+M,GAAI,YACJj1B,EAAG,aACHk1B,GAAI,YACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJC,EAAG,YACHC,GAAI,aACJC,EAAG,SACHC,GAAI,SAERuJ,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9DyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIbA,EAAO+L,aAAa,SAAU,CACtCpF,OAAQ,CACJmI,WACI,qFAAqFh7C,MACjF,KAERqc,OAAQ,sHAAsHrc,MAC1H,KAEJi7C,SAAU,mBAEd/C,YACI,+DAA+Dl4C,MAC3D,KAERw7C,kBAAkB,EAClBrD,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,mBACJ2D,GAAI,aACJ1D,IAAK,4BACL2D,IAAK,mBACL1D,KAAM,iCACN2D,KAAM,wBAEV1D,SAAU,CACNC,QAAS,aACTC,QAAS,eACTC,SAAU,cACVC,QAAS,aACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,QACNhX,EAAG,gBACH+M,GAAI,cACJj1B,EAAG,aACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJG,EAAG,SACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UAERuJ,uBAAwB,qBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,IAAIttC,EACW,IAAXq/B,EACM,IACW,IAAXA,EACE,IACW,IAAXA,EACE,IACW,IAAXA,EACE,IACA,IAIhB,MAHe,MAAXiO,GAA6B,MAAXA,IAClBttC,EAAS,KAENq/B,EAASr/B,CACpB,EACAgsC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzFyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGF1O,EAAO+L,aAAa,QAAS,CAEpCpF,OAAQ,sEAAsE7yC,MAC1E,KAEJk4C,YACI,sEAAsEl4C,MAClE,KAERm4C,SAAU,yDAAyDn4C,MAC/D,KAEJo4C,cAAe,iCAAiCp4C,MAAM,KACtDq4C,YAAa,iCAAiCr4C,MAAM,KACpD04C,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,UACTC,QAAS,UACTC,SAAU,kBACVC,QAAS,UACTC,SAAU,mBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNhX,EAAG,YACH+M,GAAI,WACJj1B,EAAG,UACHk1B,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJG,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EAGA8+B,cAAe,uBACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,QAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,SAAb/B,EACA+B,EACa,WAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,SAAb/B,EACA+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,MACAA,EAAO,GACP,OACAA,EAAO,GACP,SACAA,EAAO,GACP,OAEA,KAEf,EACAV,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9HyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIsT,EACI,mGAAmGx/C,MAC/F,KAERy/C,EACI,qGAAqGz/C,MACjG,KAER87C,EAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAER,SAASc,EAAOpnC,GACZ,OAAOA,EAAI,GAAK,GAAKA,EAAI,GAAK,MAAQA,EAAI,IAAM,IAAO,CAC3D,CACA,SAASgnC,EAAUtP,EAAQkN,EAAet8B,GACtC,IAAIta,EAAS0pC,EAAS,IACtB,OAAQpvB,GACJ,IAAK,KACD,OAAOta,GAAUo5C,EAAO1P,GAAU,UAAY,UAClD,IAAK,IACD,OAAOkN,EAAgB,SAAW,SACtC,IAAK,KACD,OAAO52C,GAAUo5C,EAAO1P,GAAU,SAAW,SACjD,IAAK,IACD,OAAOkN,EAAgB,UAAY,UACvC,IAAK,KACD,OAAO52C,GAAUo5C,EAAO1P,GAAU,UAAY,UAClD,IAAK,KACD,OAAO1pC,GAAUo5C,EAAO1P,GAAU,WAAa,WACnD,IAAK,KACD,OAAO1pC,GAAUo5C,EAAO1P,GAAU,WAAa,YACnD,IAAK,KACD,OAAO1pC,GAAUo5C,EAAO1P,GAAU,OAAS,OAEvD,CAEShB,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,SAAUmK,EAAgB3gC,GAC9B,OAAK2gC,EAEM,SAAS/9B,KAAK5C,GACdojC,EAAiBzC,EAAeE,SAEhCsC,EAAiBxC,EAAeE,SAJhCsC,CAMf,EACAtH,YAAa,kDAAkDl4C,MAAM,KACrE87C,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAClB3D,SACI,6DAA6Dn4C,MAAM,KACvEo4C,cAAe,2BAA2Bp4C,MAAM,KAChDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,eACTC,SAAU,WACN,OAAQp1C,KAAKk3C,OACT,KAAK,EACD,MAAO,qBAEX,KAAK,EACD,MAAO,mBAEX,KAAK,EACD,MAAO,iBAEX,KAAK,EACD,MAAO,kBAEX,QACI,MAAO,kBAEnB,EACA7B,QAAS,iBACTC,SAAU,WACN,OAAQt1C,KAAKk3C,OACT,KAAK,EACD,MAAO,4BACX,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,yBACX,QACI,MAAO,yBAEnB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNhX,EAAG,eACH+M,GAAI+M,EACJhiC,EAAGgiC,EACH9M,GAAI8M,EACJ7M,EAAG6M,EACH5M,GAAI4M,EACJ3M,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAIwM,EACJvM,EAAG,UACHC,GAAIsM,EACJrM,EAAG,MACHC,GAAIoM,GAER7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhJyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,2FAA2F7yC,MAC/F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,iFAAiFn4C,MAC7E,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,mCACLC,KAAM,0CAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,gBACTC,SAAU,WACN,OAAsB,IAAft1C,KAAKk3C,OAA8B,IAAfl3C,KAAKk3C,MAC1B,wBACA,uBACV,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,QACNhX,EAAG,kBACH+M,GAAI,cACJj1B,EAAG,YACHk1B,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJG,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERuJ,uBAAwB,WACxBC,QAAS,MACT6D,YAAa,iBAKpB,CA9DyC3V,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,2FAA2F7yC,MAC/F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,iFAAiFn4C,MAC7E,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,8BACLC,KAAM,qCAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,gBACTC,SAAU,WACN,OAAsB,IAAft1C,KAAKk3C,OAA8B,IAAfl3C,KAAKk3C,MAC1B,wBACA,uBACV,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,QACNhX,EAAG,WACH+M,GAAI,cACJj1B,EAAG,YACHk1B,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,aACHC,GAAI,aACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERuJ,uBAAwB,WACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAnEyCjS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAIzB,SAAS4O,EAAuB5N,EAAQkN,EAAet8B,GACnD,IASIna,EAAY,IAIhB,OAHIupC,EAAS,KAAO,IAAOA,GAAU,KAAOA,EAAS,KAAQ,KACzDvpC,EAAY,QAETupC,EAASvpC,EAbH,CACL8rC,GAAI,UACJC,GAAI,SACJE,GAAI,MACJE,GAAI,OACJE,GAAI,YACJE,GAAI,OACJE,GAAI,OAMuBtyB,EACvC,CAESouB,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,oGAAoG7yC,MACxG,KAEJk4C,YACI,+DAA+Dl4C,MAC3D,KAERw7C,kBAAkB,EAClBrD,SAAU,kDAAkDn4C,MAAM,KAClEo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,cACJC,IAAK,mBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,aACNhX,EAAG,iBACH+M,GAAIqL,EACJtgC,EAAG,WACHk1B,GAAIoL,EACJnL,EAAG,QACHC,GAAIkL,EACJjL,EAAG,OACHC,GAAIgL,EACJ/K,EAAG,cACHC,GAAI8K,EACJ7K,EAAG,SACHC,GAAI4K,EACJ3K,EAAG,QACHC,GAAI0K,GAERjB,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9EyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAYzB,SAAS4O,EAAuB5N,EAAQkN,EAAet8B,GAUnD,MAAY,MAARA,EACOs8B,EAAgB,SAAW,SAE3BlN,EAAS,KArBF/3B,GAqB6B+3B,EApB3C6N,EAQS,CACTtL,GAAI2K,EAAgB,yBAA2B,yBAC/C1K,GAAI0K,EAAgB,sBAAwB,sBAC5CxK,GAAI,iBACJE,GAAI,gBACJE,GAAI,uBACJE,GAAI,uBACJE,GAAI,gBAKgCtyB,GApBvB9d,MAAM,KAChBmV,EAAM,IAAO,GAAKA,EAAM,KAAQ,GACjC4lC,EAAM,GACN5lC,EAAM,IAAM,GAAKA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,KAAO,IAChE4lC,EAAM,GACNA,EAAM,IANlB,IAAsB5lC,EACd4lC,CAsBR,CACA,IAAIe,EAAc,CACd,QACA,QACA,QACA,QACA,WACA,QACA,QACA,QACA,QACA,QACA,QACA,SAMK5P,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,CACJx2B,OAAQ,oFAAoFrc,MACxF,KAEJg7C,WACI,kFAAkFh7C,MAC9E,MAGZk4C,YAAa,CAET77B,OAAQ,gEAAgErc,MACpE,KAEJg7C,WACI,gEAAgEh7C,MAC5D,MAGZm4C,SAAU,CACN6C,WACI,gEAAgEh7C,MAC5D,KAERqc,OAAQ,gEAAgErc,MACpE,KAEJi7C,SAAU,iDAEd7C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,uBAAuBr4C,MAAM,KAC1C87C,YAAaA,EACbQ,gBAAiBR,EACjBS,iBAAkBT,EAGlBC,YACI,2MAGJR,iBACI,2MAGJa,kBACI,wHAGJC,uBACI,6FACJ3D,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,iBACJC,IAAK,uBACLC,KAAM,8BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,iBACTE,QAAS,gBACTD,SAAU,SAAUmF,GAChB,GAAIA,EAAI1E,SAAW71C,KAAK61C,OAcpB,OAAmB,IAAf71C,KAAKk3C,MACE,oBAEA,mBAhBX,OAAQl3C,KAAKk3C,OACT,KAAK,EACD,MAAO,6BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,6BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,6BASvB,EACA5B,SAAU,SAAUiF,GAChB,GAAIA,EAAI1E,SAAW71C,KAAK61C,OAcpB,OAAmB,IAAf71C,KAAKk3C,MACE,oBAEA,mBAhBX,OAAQl3C,KAAKk3C,OACT,KAAK,EACD,MAAO,2BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,2BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,2BASvB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNhX,EAAG,mBACH+M,GAAIqL,EACJtgC,EAAGsgC,EACHpL,GAAIoL,EACJnL,EAAG,MACHC,GAAIkL,EACJjL,EAAG,OACHC,GAAIgL,EACJ/K,EAAG,SACHC,GAAI8K,EACJ7K,EAAG,QACHC,GAAI4K,EACJ3K,EAAG,MACHC,GAAI0K,GAERxC,cAAe,wBACfC,KAAM,SAAU3qC,GACZ,MAAO,iBAAiBqR,KAAKrR,EACjC,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,OACAA,EAAO,GACP,OACAA,EAAO,GACP,MAEA,QAEf,EACAZ,uBAAwB,mBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOjO,EAAS,KACpB,IAAK,IACD,OAAOA,EAAS,MACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,KACpB,QACI,OAAOA,EAEnB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAvNyCjS,CAAQ,EAAQ,M,eCClD,SAAWoE,GAAU,aAIzB,IAAI2G,EAAS,CACL,QACA,UACA,OACA,QACA,MACA,MACA,SACA,OACA,UACA,SACA,QACA,SAEJE,EAAO,CAAC,MAAO,OAAQ,QAAS,OAAQ,OAAQ,MAAO,QAElD7G,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQA,EACRqF,YAAarF,EACbsF,SAAUpF,EACVqF,cAAerF,EACfsF,YAAatF,EACb2F,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVV,cAAe,UACfC,KAAM,SAAU3qC,GACZ,MAAO,QAAUA,CACrB,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,MAEJ,KACX,EACAtB,SAAU,CACNC,QAAS,UACTC,QAAS,aACTC,SAAU,yBACVC,QAAS,aACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,QACNhX,EAAG,YACH+M,GAAI,WACJj1B,EAAG,SACHk1B,GAAI,SACJC,EAAG,UACHC,GAAI,UACJC,EAAG,WACHC,GAAI,WACJG,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,KAAM,IAChC,EACAkhC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,KAAM,IAChC,EACAsgC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CArFyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,mJAAmJ7yC,MACvJ,KAEJk4C,YACI,6DAA6Dl4C,MAAM,KACvEm4C,SACI,6EAA6En4C,MACzE,KAERo4C,cAAe,mCAAmCp4C,MAAM,KACxDq4C,YAAa,gBAAgBr4C,MAAM,KACnC04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,oBACJC,IAAK,gCACLC,KAAM,uCAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,WACNhX,EAAG,mBACH+M,GAAI,eACJj1B,EAAG,eACHk1B,GAAI,cACJC,EAAG,cACHC,GAAI,aACJC,EAAG,cACHC,GAAI,cACJG,EAAG,aACHC,GAAI,WACJC,EAAG,aACHC,GAAI,YAERuJ,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7DyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAKhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,kGAAkG7yC,MACtG,KAEJk4C,YAAa,wDAAwDl4C,MACjE,KAEJm4C,SACI,gEAAgEn4C,MAC5D,KAERo4C,cAAe,gCAAgCp4C,MAAM,KACrDq4C,YAAa,qBAAqBr4C,MAAM,KACxCs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,sCAEVC,SAAU,CACNC,QAAS,aACTC,QAAS,cACTC,SAAU,aACVC,QAAS,cACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNhX,EAAG,eACH+M,GAAI,WACJj1B,EAAG,YACHk1B,GAAI,cACJC,EAAG,MACHC,GAAI,SACJC,EAAG,OACHC,GAAI,SACJG,EAAG,OACHC,GAAI,SACJC,EAAG,MACHC,GAAI,UAERuJ,uBAAwB,eACxBC,QAAS,SAAU1M,GACf,OAAOA,EAAS,OACpB,EACAoL,cAAe,4BACfC,KAAM,SAAU3qC,GACZ,MAAiB,SAAVA,GAA8B,YAAVA,CAC/B,EACA4qC,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACDyF,EAAU,OAAS,UAEnBA,EAAU,QAAU,SAEnC,GAKP,CAzEyC3Q,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIzB,IAAI2G,EACI,oFAAoF7yC,MAChF,KAERk4C,EAAc,kDAAkDl4C,MAAM,KAC1E,SAAS48C,EAAOpnC,GACZ,OAAOA,EAAI,GAAKA,EAAI,CACxB,CACA,SAASgnC,EAAUtP,EAAQkN,EAAet8B,EAAKu8B,GAC3C,IAAI72C,EAAS0pC,EAAS,IACtB,OAAQpvB,GACJ,IAAK,IACD,OAAOs8B,GAAiBC,EAAW,aAAe,gBACtD,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,UAAY,UAEvC1pC,EAAS,YAExB,IAAK,IACD,OAAO42C,EAAgB,SAAWC,EAAW,SAAW,UAC5D,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,SAAW,SAEtC1pC,EAAS,WAExB,IAAK,IACD,OAAO42C,EAAgB,SAAWC,EAAW,SAAW,UAC5D,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,SAAW,SAEtC1pC,EAAS,WAExB,IAAK,IACD,OAAO42C,GAAiBC,EAAW,MAAQ,OAC/C,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,MAAQ,OAEnC1pC,EAAS,QAExB,IAAK,IACD,OAAO42C,GAAiBC,EAAW,SAAW,WAClD,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,UAAY,YAEvC1pC,EAAS,WAExB,IAAK,IACD,OAAO42C,GAAiBC,EAAW,MAAQ,QAC/C,IAAK,KACD,OAAID,GAAiBC,EACV72C,GAAUo5C,EAAO1P,GAAU,OAAS,SAEpC1pC,EAAS,QAGhC,CAES0oC,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQA,EACRqF,YAAaA,EACbC,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,gBACTC,SAAU,WACN,OAAQp1C,KAAKk3C,OACT,KAAK,EACD,MAAO,kBACX,KAAK,EACL,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,oBACX,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,kBAEnB,EACA7B,QAAS,eACTC,SAAU,WACN,OAAQt1C,KAAKk3C,OACT,KAAK,EACD,MAAO,uBACX,KAAK,EACL,KAAK,EAIL,KAAK,EACL,KAAK,EACD,MAAO,uBAJX,KAAK,EACD,MAAO,uBAIX,KAAK,EACD,MAAO,uBAEnB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNhX,EAAG8Z,EACH/M,GAAI+M,EACJhiC,EAAGgiC,EACH9M,GAAI8M,EACJ7M,EAAG6M,EACH5M,GAAI4M,EACJ3M,EAAG2M,EACH1M,GAAI0M,EACJvM,EAAGuM,EACHtM,GAAIsM,EACJrM,EAAGqM,EACHpM,GAAIoM,GAER7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CApJyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIzB,SAAS2Q,EAAoB3P,EAAQkN,EAAet8B,EAAKu8B,GACrD,IAAI72C,EAAS0pC,EAAS,IACtB,OAAQpvB,GACJ,IAAK,IACD,OAAOs8B,GAAiBC,EAClB,eACA,kBACV,IAAK,KAUD,OARI72C,GADW,IAAX0pC,EACUkN,EAAgB,UAAY,UACpB,IAAXlN,EACGkN,GAAiBC,EAAW,UAAY,WAC3CnN,EAAS,EACNkN,GAAiBC,EAAW,UAAY,WAExC,UAGlB,IAAK,IACD,OAAOD,EAAgB,aAAe,aAC1C,IAAK,KAUD,OARI52C,GADW,IAAX0pC,EACUkN,EAAgB,SAAW,SACnB,IAAXlN,EACGkN,GAAiBC,EAAW,SAAW,WAC1CnN,EAAS,EACNkN,GAAiBC,EAAW,SAAW,WAEvCD,GAAiBC,EAAW,QAAU,YAGxD,IAAK,IACD,OAAOD,EAAgB,UAAY,UACvC,IAAK,KAUD,OARI52C,GADW,IAAX0pC,EACUkN,EAAgB,MAAQ,MAChB,IAAXlN,EACGkN,GAAiBC,EAAW,MAAQ,QACvCnN,EAAS,EACNkN,GAAiBC,EAAW,MAAQ,QAEpCD,GAAiBC,EAAW,KAAO,SAGrD,IAAK,IACD,OAAOD,GAAiBC,EAAW,SAAW,YAClD,IAAK,KAQD,OANI72C,GADW,IAAX0pC,EACUkN,GAAiBC,EAAW,MAAQ,OAC5B,IAAXnN,EACGkN,GAAiBC,EAAW,MAAQ,UAEpCD,GAAiBC,EAAW,MAAQ,SAGtD,IAAK,IACD,OAAOD,GAAiBC,EAAW,WAAa,eACpD,IAAK,KAUD,OARI72C,GADW,IAAX0pC,EACUkN,GAAiBC,EAAW,QAAU,UAC9B,IAAXnN,EACGkN,GAAiBC,EAAW,SAAW,WAC1CnN,EAAS,EACNkN,GAAiBC,EAAW,SAAW,SAEvCD,GAAiBC,EAAW,UAAY,UAG1D,IAAK,IACD,OAAOD,GAAiBC,EAAW,WAAa,aACpD,IAAK,KAUD,OARI72C,GADW,IAAX0pC,EACUkN,GAAiBC,EAAW,OAAS,QAC7B,IAAXnN,EACGkN,GAAiBC,EAAW,OAAS,SACxCnN,EAAS,EACNkN,GAAiBC,EAAW,OAAS,OAErCD,GAAiBC,EAAW,MAAQ,QAI9D,CAESnO,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YACI,8DAA8Dl4C,MAC1D,KAERw7C,kBAAkB,EAClBrD,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,eACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,gBAETC,SAAU,WACN,OAAQp1C,KAAKk3C,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACD,MAAO,uBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,mBAEnB,EACA7B,QAAS,iBACTC,SAAU,WACN,OAAQt1C,KAAKk3C,OACT,KAAK,EACD,MAAO,+BACX,KAAK,EACD,MAAO,6BACX,KAAK,EACD,MAAO,8BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,0BAEnB,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,UACNhX,EAAGma,EACHpN,GAAIoN,EACJriC,EAAGqiC,EACHnN,GAAImN,EACJlN,EAAGkN,EACHjN,GAAIiN,EACJhN,EAAGgN,EACH/M,GAAI+M,EACJ5M,EAAG4M,EACH3M,GAAI2M,EACJ1M,EAAG0M,EACHzM,GAAIyM,GAERlD,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA/KyCjS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,gFAAgF7yC,MACpF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,4DAA4Dn4C,MAClE,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,mBAAmBr4C,MAAM,KACtCs6C,oBAAoB,EACpBhC,cAAe,QACfC,KAAM,SAAU3qC,GACZ,MAA2B,MAApBA,EAAMgjB,OAAO,EACxB,EACA4nB,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAOzF,EAAQ,GAAK,KAAO,IAC/B,EACA0F,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,cACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,aACNhX,EAAG,eACH+M,GAAI,aACJj1B,EAAG,aACHk1B,GAAI,YACJC,EAAG,UACHC,GAAI,SACJC,EAAG,WACHC,GAAI,UACJG,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WAERuJ,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAnEyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIzB,IAAIiT,EAAa,CACbC,MAAO,CAEH3P,GAAI,CAAC,UAAW,UAAW,WAC3Bj1B,EAAG,CAAC,cAAe,iBACnBk1B,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBG,EAAG,CAAC,cAAe,iBACnBC,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,eAAgB,gBACpBC,GAAI,CAAC,SAAU,SAAU,WAE7BiP,uBAAwB,SAAUnS,EAAQoS,GACtC,OACIpS,EAAS,IAAM,GACfA,EAAS,IAAM,IACdA,EAAS,IAAM,IAAMA,EAAS,KAAO,IAE/BA,EAAS,IAAO,EAAIoS,EAAQ,GAAKA,EAAQ,GAE7CA,EAAQ,EACnB,EACA9C,UAAW,SAAUtP,EAAQkN,EAAet8B,EAAKu8B,GAC7C,IACIqF,EADAJ,EAAUH,EAAWC,MAAMthC,GAG/B,OAAmB,IAAfA,EAAIlR,OAEQ,MAARkR,GAAes8B,EAAsB,eAClCC,GAAYD,EAAgBkF,EAAQ,GAAKA,EAAQ,IAG5DI,EAAOP,EAAWE,uBAAuBnS,EAAQoS,GAErC,OAARxhC,GAAgBs8B,GAA0B,WAATsF,EAC1BxS,EAAS,UAGbA,EAAS,IAAMwS,EAC1B,GAGSxT,EAAO+L,aAAa,UAAW,CACxCpF,OAAQ,mFAAmF7yC,MACvF,KAEJk4C,YACI,2DAA2Dl4C,MAAM,KACrEw7C,kBAAkB,EAClBrD,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,WACN,OAAQp1C,KAAKk3C,OACT,KAAK,EACD,MAAO,sBACX,KAAK,EACD,MAAO,qBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,kBAEnB,EACA7B,QAAS,cACTC,SAAU,WAUN,MATmB,CACf,2BACA,+BACA,4BACA,0BACA,8BACA,2BACA,4BAEgBt1C,KAAKk3C,MAC7B,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,mBACH+M,GAAI0P,EAAW3C,UACfhiC,EAAG2kC,EAAW3C,UACd9M,GAAIyP,EAAW3C,UACf7M,EAAGwP,EAAW3C,UACd5M,GAAIuP,EAAW3C,UACf3M,EAAGsP,EAAW3C,UACd1M,GAAIqP,EAAW3C,UACfvM,EAAGkP,EAAW3C,UACdtM,GAAIiP,EAAW3C,UACfrM,EAAGgP,EAAW3C,UACdpM,GAAI+O,EAAW3C,WAEnB7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAlIyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIiT,EAAa,CACbC,MAAO,CAEH3P,GAAI,CAAC,UAAW,UAAW,WAC3Bj1B,EAAG,CAAC,cAAe,iBACnBk1B,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBG,EAAG,CAAC,cAAe,iBACnBC,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,eAAgB,gBACpBC,GAAI,CAAC,SAAU,SAAU,WAE7BiP,uBAAwB,SAAUnS,EAAQoS,GACtC,OACIpS,EAAS,IAAM,GACfA,EAAS,IAAM,IACdA,EAAS,IAAM,IAAMA,EAAS,KAAO,IAE/BA,EAAS,IAAO,EAAIoS,EAAQ,GAAKA,EAAQ,GAE7CA,EAAQ,EACnB,EACA9C,UAAW,SAAUtP,EAAQkN,EAAet8B,EAAKu8B,GAC7C,IACIqF,EADAJ,EAAUH,EAAWC,MAAMthC,GAG/B,OAAmB,IAAfA,EAAIlR,OAEQ,MAARkR,GAAes8B,EAAsB,eAClCC,GAAYD,EAAgBkF,EAAQ,GAAKA,EAAQ,IAG5DI,EAAOP,EAAWE,uBAAuBnS,EAAQoS,GAErC,OAARxhC,GAAgBs8B,GAA0B,WAATsF,EAC1BxS,EAAS,UAGbA,EAAS,IAAMwS,EAC1B,GAGKxT,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,mFAAmF7yC,MACvF,KAEJk4C,YACI,2DAA2Dl4C,MAAM,KACrEw7C,kBAAkB,EAClBrD,SAAU,wDAAwDn4C,MAC9D,KAEJo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,WACN,OAAQp1C,KAAKk3C,OACT,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,qBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,kBAEnB,EACA7B,QAAS,cACTC,SAAU,WAUN,MATmB,CACf,4BACA,gCACA,4BACA,0BACA,8BACA,2BACA,4BAEgBt1C,KAAKk3C,MAC7B,EACA3B,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNhX,EAAG,mBACH+M,GAAI0P,EAAW3C,UACfhiC,EAAG2kC,EAAW3C,UACd9M,GAAIyP,EAAW3C,UACf7M,EAAGwP,EAAW3C,UACd5M,GAAIuP,EAAW3C,UACf3M,EAAGsP,EAAW3C,UACd1M,GAAIqP,EAAW3C,UACfvM,EAAGkP,EAAW3C,UACdtM,GAAIiP,EAAW3C,UACfrM,EAAGgP,EAAW3C,UACdpM,GAAI+O,EAAW3C,WAEnB7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CApIyCjS,CAAQ,EAAQ,M,cCElD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,mHAAmH7yC,MACvH,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,sEAAsEn4C,MAClE,KAERo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,mBACTC,QAAS,kBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,8BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,iBACNhX,EAAG,qBACH+M,GAAI,cACJj1B,EAAG,SACHk1B,GAAI,aACJC,EAAG,SACHC,GAAI,aACJC,EAAG,UACHC,GAAI,cACJG,EAAG,UACHC,GAAI,cACJC,EAAG,UACHC,GAAI,eAERkI,cAAe,mCACfE,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACD,UACAA,EAAQ,GACR,QACAA,EAAQ,GACR,aAEA,SAEf,EACAsI,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,YAAb/B,EACO+B,EACa,UAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,eAAb/B,GAA0C,YAAbA,EACvB,IAAT+B,EACO,EAEJA,EAAO,QAJX,CAMX,EACAZ,uBAAwB,UACxBC,QAAS,KACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxFyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,oDAAoDn4C,MAAM,KACpEo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,+BACN0D,IAAK,mBACLC,KAAM,wBAEV1D,SAAU,CACNC,QAAS,YACTC,QAAS,eACTE,QAAS,YACTD,SAAU,eACVE,SAAU,iBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,eACNhX,EAAG,iBACH+M,GAAI,cACJj1B,EAAG,WACHk1B,GAAI,aACJC,EAAG,WACHC,GAAI,YACJC,EAAG,SACHC,GAAI,WACJG,EAAG,WACHC,GAAI,aACJC,EAAG,SACHC,GAAI,SAERuJ,uBAAwB,mBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,GAEQ,IAANA,EADA,KAII,KAGxB,EACAm2C,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxEyCjS,CAAQ,EAAQ,M,cCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,sFAAsF7yC,MAC1F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SACI,8DAA8Dn4C,MAC1D,KAERo4C,cAAe,kCAAkCp4C,MAAM,KACvDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,UACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,iBACTC,SAAU,8BACVC,QAAS,YACTC,SAAU,kCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,aACRC,KAAM,WACNhX,EAAG,aACH+M,GAAI,aACJj1B,EAAG,cACHk1B,GAAI,YACJC,EAAG,aACHC,GAAI,WACJC,EAAG,YACHC,GAAI,UACJG,EAAG,cACHC,GAAI,WACJC,EAAG,cACHC,GAAI,YAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA3DyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIwO,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJ1O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,0FAA0F7yC,MAC9F,KAEJk4C,YACI,0FAA0Fl4C,MACtF,KAERm4C,SACI,8FAA8Fn4C,MAC1F,KAERo4C,cAAe,mDAAmDp4C,MAC9D,KAEJq4C,YAAa,sBAAsBr4C,MAAM,KACzC04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,aACTC,QAAS,YACTC,SAAU,WACVC,QAAS,cACTC,SAAU,yBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,UACNhX,EAAG,oBACH+M,GAAI,eACJj1B,EAAG,cACHk1B,GAAI,gBACJC,EAAG,gBACHC,GAAI,eACJC,EAAG,WACHC,GAAI,aACJG,EAAG,YACHC,GAAI,cACJC,EAAG,aACHC,GAAI,eAERuJ,uBAAwB,aACxBC,QAAS,SAAU1M,GACf,OAAOA,EAAS,KACpB,EACAyN,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,gBAAiB,SAAUC,GAC7C,OAAOohC,EAAUphC,EACrB,EACJ,EACAihC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,MAAO,SAAUC,GACnC,OAAOkhC,EAAUlhC,EACrB,EACJ,EAEA8+B,cAAe,wCACfE,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,SACAA,EAAO,EACP,SACAA,EAAO,GACP,QACAA,EAAO,GACP,WACAA,EAAO,GACP,WACAA,EAAO,GACP,QAEA,QAEf,EACAe,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,UAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,UAAb/B,GAAqC,SAAbA,GAEX,YAAbA,GACA+B,GAAQ,GAFRA,EAIAA,EAAO,EAEtB,EACAV,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAvIyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YACI,mEAAmEl4C,MAC/D,KAERw7C,kBAAkB,EAClBrD,SACI,8DAA8Dn4C,MAC1D,KAERo4C,cAAe,kCAAkCp4C,MAAM,KACvDq4C,YAAa,qBAAqBr4C,MAAM,KACxC04C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,YACTC,QAAS,YACTC,SAAU,WACVC,QAAS,aACTC,SAAU,gBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,YACNhX,EAAG,iBACH+M,GAAI,aACJj1B,EAAG,YACHk1B,GAAI,cACJC,EAAG,SACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YACJG,EAAG,SACHC,GAAI,WACJC,EAAG,cACHC,GAAI,iBAERuJ,uBAAwB,WACxBC,QAAS,MACTtB,cAAe,iCACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,WAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,SAAb/B,EACA+B,EACa,cAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,aAAb/B,EACA+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,SACAA,EAAO,GACP,OACAA,EAAO,GACP,YACAA,EAAO,GACP,WAEA,QAEf,EACAV,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA5FyCjS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAIfA,EAAO+L,aAAa,MAAO,CACjCpF,OAAQ,0FAA0F7yC,MAC9F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,kDAAkDn4C,MAAM,KAClEo4C,cAAe,iCAAiCp4C,MAAM,KACtDq4C,YAAa,yBAAyBr4C,MAAM,KAC5C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,gBACTC,SAAU,gBACVC,QAAS,oBACTC,SAAU,+BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,aACHk1B,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,YACHC,GAAI,WACJG,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,YAERuJ,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,EACAm2C,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAtEyCjS,CAAQ,EAAQ,M,eCClD,SAAWoE,GAAU,aAIzB,IAAI2O,EAAW,CACX,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,IAAK,OAGA3O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,CACJx2B,OAAQ,qFAAqFrc,MACzF,KAEJg7C,WACI,yEAAyEh7C,MACrE,MAGZk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,yDAAyDn4C,MAC/D,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,mBACTC,QAAS,mBACTE,QAAS,mBACTD,SAAU,kCACVE,SAAU,oCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,SACNhX,EAAG,eACHloB,EAAG,YACHk1B,GAAI,YACJC,EAAG,UACHC,GAAI,UACJC,EAAG,SACHC,GAAI,SACJG,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UAERkI,cAAe,qBACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,QAAb/B,EACO+B,EAAO,EAAIA,EAAOA,EAAO,GACZ,SAAb/B,EACA+B,EACa,QAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,UAAb/B,EACA+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,MACAA,EAAO,GACP,OACAA,EAAO,GACP,MACAA,EAAO,GACP,QAEA,KAEf,EACAZ,uBAAwB,kBACxBC,QAAS,SAAU1M,GAGf,OAAOA,GAAU2N,EAAS3N,IAAW2N,EAF7B3N,EAAS,KAEmC2N,EAD5C3N,GAAU,IAAM,IAAM,MAElC,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzHyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,oGAAoG7yC,MACxG,KAEJk4C,YACI,iEAAiEl4C,MAC7D,KAERw7C,kBAAkB,EAClBrD,SAAU,iDAAiDn4C,MAAM,KACjEo4C,cAAe,8CAA8Cp4C,MAAM,KACnEq4C,YAAa,yBAAyBr4C,MAAM,KAC5Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,cACJC,IAAK,wBACLC,KAAM,oCAEVV,cAAe,wBACfC,KAAM,SAAU3qC,GACZ,MAAiB,eAAVA,CACX,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,aAEA,YAEf,EACAtB,SAAU,CACNC,QAAS,mBACTC,QAAS,qBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,YACNhX,EAAG,eACH+M,GAAI,YACJj1B,EAAG,SACHk1B,GAAI,UACJC,EAAG,YACHC,GAAI,aACJC,EAAG,QACHC,GAAI,SACJC,EAAG,YACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,OACHC,GAAI,UAMf,CArEyCtI,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAI2O,EAAW,CACX,EAAG,QACH,EAAG,QACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,EAAG,OACH,EAAG,OACH,GAAI,OACJ,GAAI,OACJ,EAAG,QACH,EAAG,QACH,IAAK,QACL,EAAG,OACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,SAGC3O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,+EAA+E7yC,MACnF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,wDAAwDn4C,MAC9D,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,mBACTC,QAAS,mBACTC,SAAU,2BACVC,QAAS,YACTC,SAAU,0BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,QACNhX,EAAG,iBACHloB,EAAG,YACHk1B,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJG,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERwJ,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACD,OAAOjO,EACX,QACI,GAAe,IAAXA,EAEA,OAAOA,EAAS,QAEpB,IAAIzpC,EAAIypC,EAAS,GAGjB,OAAOA,GAAU2N,EAASp3C,IAAMo3C,EAFvB3N,EAAS,IAAOzpC,IAEsBo3C,EADvC3N,GAAU,IAAM,IAAM,OAG1C,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA/FyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,0FAA0F7yC,MAC9F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,yDAAyDn4C,MAC/D,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,wBAAwBr4C,MAAM,KAC3C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,YACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,oBACTC,QAAS,gBACTC,SAAU,0BACVC,QAAS,eACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,mBACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,eACHk1B,GAAI,YACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJG,EAAG,cACHC,GAAI,WACJC,EAAG,aACHC,GAAI,WAERuJ,uBAAwB,UACxBC,QAAS,SAAU1M,GACf,OAAOA,CACX,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7DyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIzB,IAAIyT,EAAe,iDAAiD3/C,MAAM,KA4B1E,SAASw8C,EAAUtP,EAAQkN,EAAe/0B,EAAQg1B,GAC9C,IAAIuF,EAiBR,SAAsB1S,GAClB,IAAI2S,EAAU/rC,KAAK0hC,MAAOtI,EAAS,IAAQ,KACvC4S,EAAMhsC,KAAK0hC,MAAOtI,EAAS,IAAO,IAClC6S,EAAM7S,EAAS,GACfwS,EAAO,GAUX,OATIG,EAAU,IACVH,GAAQC,EAAaE,GAAW,SAEhCC,EAAM,IACNJ,IAAkB,KAATA,EAAc,IAAM,IAAMC,EAAaG,GAAO,OAEvDC,EAAM,IACNL,IAAkB,KAATA,EAAc,IAAM,IAAMC,EAAaI,IAEpC,KAATL,EAAc,OAASA,CAClC,CAhCqBM,CAAa9S,GAC9B,OAAQ7nB,GACJ,IAAK,KACD,OAAOu6B,EAAa,OACxB,IAAK,KACD,OAAOA,EAAa,OACxB,IAAK,KACD,OAAOA,EAAa,OACxB,IAAK,KACD,OAAOA,EAAa,OACxB,IAAK,KACD,OAAOA,EAAa,OACxB,IAAK,KACD,OAAOA,EAAa,OAEhC,CAmBU1T,EAAO+L,aAAa,MAAO,CACjCpF,OAAQ,kMAAkM7yC,MACtM,KAEJk4C,YACI,0HAA0Hl4C,MACtH,KAERw7C,kBAAkB,EAClBrD,SAAU,2DAA2Dn4C,MACjE,KAEJo4C,cACI,2DAA2Dp4C,MAAM,KACrEq4C,YACI,2DAA2Dr4C,MAAM,KACrE04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,MACVC,QAAS,cACTC,SAAU,MACVC,SAAU,KAEdC,aAAc,CACVC,OA9FR,SAAyB5rC,GACrB,IAAIoyC,EAAOpyC,EASX,OAP+B,IAA3BA,EAAOjE,QAAQ,OACTq2C,EAAKzrC,MAAM,GAAI,GAAK,OACO,IAA3B3G,EAAOjE,QAAQ,OACbq2C,EAAKzrC,MAAM,GAAI,GAAK,OACO,IAA3B3G,EAAOjE,QAAQ,OACbq2C,EAAKzrC,MAAM,GAAI,GAAK,MACpByrC,EAAO,MAEzB,EAoFQvG,KAlFR,SAAuB7rC,GACnB,IAAIoyC,EAAOpyC,EASX,OAP+B,IAA3BA,EAAOjE,QAAQ,OACTq2C,EAAKzrC,MAAM,GAAI,GAAK,OACO,IAA3B3G,EAAOjE,QAAQ,OACbq2C,EAAKzrC,MAAM,GAAI,GAAK,OACO,IAA3B3G,EAAOjE,QAAQ,OACbq2C,EAAKzrC,MAAM,GAAI,GAAK,MACpByrC,EAAO,MAEzB,EAwEQvd,EAAG,UACH+M,GAAI+M,EACJhiC,EAAG,UACHk1B,GAAI8M,EACJ7M,EAAG,UACHC,GAAI4M,EACJ3M,EAAG,UACHC,GAAI0M,EACJvM,EAAG,UACHC,GAAIsM,EACJrM,EAAG,UACHC,GAAIoM,GAER7C,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhIyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIzB,IAAI2O,EAAW,CACX,EAAG,QACH,EAAG,QACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,EAAG,OACH,EAAG,OACH,GAAI,OACJ,GAAI,OACJ,EAAG,QACH,EAAG,QACH,IAAK,QACL,EAAG,OACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,SAGC3O,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,6EAA6E7yC,MACjF,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,wDAAwDn4C,MAC9D,KAEJo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cw4C,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACDyF,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,EACAH,cAAe,cACfC,KAAM,SAAU3qC,GACZ,MAAiB,OAAVA,GAA4B,OAAVA,CAC7B,EACA8qC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,kBACTC,SAAU,2BACVC,QAAS,WACTC,SAAU,yBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,UACNhX,EAAG,gBACH+M,GAAI,YACJj1B,EAAG,aACHk1B,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJC,EAAG,YACHC,GAAI,WACJC,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERwJ,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACD,OAAOjO,EACX,QACI,GAAe,IAAXA,EAEA,OAAOA,EAAS,QAEpB,IAAIzpC,EAAIypC,EAAS,GAGjB,OAAOA,GAAU2N,EAASp3C,IAAMo3C,EAFvB3N,EAAS,IAAOzpC,IAEsBo3C,EADvC3N,GAAU,IAAM,IAAM,OAG1C,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7GyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAiEzB,SAAS2Q,EAAoB3P,EAAQkN,EAAet8B,EAAKu8B,GACrD,IAAIh+B,EAAS,CACTqmB,EAAG,CAAC,kBAAmB,mBACvB+M,GAAI,CAACvC,EAAS,WAAiBA,EAAS,YACxC1yB,EAAG,CAAC,UAAW,cACfk1B,GAAI,CAACxC,EAAS,SAAeA,EAAS,UACtCyC,EAAG,CAAC,UAAW,eACfC,GAAI,CAAC1C,EAAS,SAAeA,EAAS,UACtC2C,EAAG,CAAC,UAAW,eACfC,GAAI,CAAC5C,EAAS,SAAeA,EAAS,UACtC+C,EAAG,CAAC,SAAU,aACdC,GAAI,CAAChD,EAAS,SAAeA,EAAS,UACtCiD,EAAG,CAAC,QAAS,YACbC,GAAI,CAAClD,EAAS,OAAaA,EAAS,SAExC,OAAOmN,GAEDD,EADA/9B,EAAOyB,GAAK,GAGVzB,EAAOyB,GAAK,EACxB,CA/EUouB,EAAO+L,aAAa,MAAO,CACjCpF,OAAQ,sFAAsF7yC,MAC1F,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,sDAAsDn4C,MAAM,KACtEo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,8BACLC,KAAM,0CAEVV,cAAe,aACfC,KAAM,SAAU3qC,GACZ,MAAO,QAAUA,EAAM2M,aAC3B,EACAi+B,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACDyF,EAAU,MAAQ,MAElBA,EAAU,MAAQ,KAEjC,EACAQ,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,cACVC,QAAS,eACTC,SAAU,8BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,OACNhX,EAAGma,EACHpN,GAAIoN,EACJriC,EAAGqiC,EACHnN,GAAImN,EACJlN,EAAGkN,EACHjN,GAAIiN,EACJhN,EAAGgN,EACH/M,GAAI+M,EACJ5M,EAAG4M,EACH3M,GAAI2M,EACJ1M,EAAG0M,EACHzM,GAAIyM,GAERlD,uBAAwB,YACxBC,QAAS,MACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IA4BhB,CA5FyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIXA,EAAO+L,aAAa,WAAY,CAC1CpF,OAAQ,wFAAwF7yC,MAC5F,KAEJk4C,YACI,wFAAwFl4C,MACpF,KAERm4C,SAAU,kDAAkDn4C,MAAM,KAClEo4C,cAAe,kDAAkDp4C,MAAM,KACvEq4C,YAAa,kDAAkDr4C,MAAM,KACrE04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,cACTC,SAAU,cACVC,QAAS,gBACTC,SAAU,cACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,iBACRC,KAAM,SACNhX,EAAG,OACH+M,GAAI,UACJj1B,EAAG,QACHk1B,GAAI,WACJC,EAAG,OACHC,GAAI,cACJC,EAAG,MACHC,GAAI,WACJG,EAAG,QACHC,GAAI,YACJC,EAAG,QACHC,GAAI,aAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,KAMhB,CA1DyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIfA,EAAO+L,aAAa,MAAO,CACjCpF,OAAQ,kFAAkF7yC,MACtF,KAEJk4C,YACI,kFAAkFl4C,MAC9E,KAERm4C,SAAU,kDAAkDn4C,MAAM,KAClEo4C,cAAe,kDAAkDp4C,MAAM,KACvEq4C,YAAa,kDAAkDr4C,MAAM,KACrE04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,cACVC,QAAS,eACTC,SAAU,cACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,SACNhX,EAAG,OACH+M,GAAI,UACJj1B,EAAG,QACHk1B,GAAI,WACJC,EAAG,OACHC,GAAI,cACJC,EAAG,MACHC,GAAI,WACJG,EAAG,QACHC,GAAI,YACJC,EAAG,QACHC,GAAI,aAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,KAMhB,CA1DyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,sFAAsF7yC,MAC1F,KAEJk4C,YACI,sFAAsFl4C,MAClF,KAERm4C,SAAU,yDAAyDn4C,MAC/D,KAEJo4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,0BACJC,IAAK,iCACLC,KAAM,wCAEVV,cAAe,qDACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAGM,eAAb/B,GACa,UAAbA,GACa,iBAAbA,EAEO+B,EACa,iBAAb/B,GAA4C,QAAbA,EAC/B+B,EAAO,GAEPA,GAAQ,GAAKA,EAAOA,EAAO,EAE1C,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,IAAIyH,EAAY,IAAP3F,EAAaC,EACtB,OAAI0F,EAAK,IACE,aACAA,EAAK,IACL,QACAA,EAAK,KACL,eACAA,EAAK,KACL,MACAA,EAAK,KACL,eAEA,KAEf,EACAjH,SAAU,CACNC,QAAS,mBACTC,QAAS,kBACTC,SAAU,4BACVC,QAAS,eACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNhX,EAAG,eACH+M,GAAI,YACJj1B,EAAG,YACHk1B,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJG,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,UAGRuJ,uBAAwB,6BACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOjO,EAAS,QACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,SACpB,QACI,OAAOA,EAEnB,EACAyN,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,KAAM,IAChC,EACAkhC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,KAAM,IAChC,EACAsgC,KAAM,CAEFC,IAAK,EACLC,IAAK,IAMhB,CAnHyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAYzB,SAAS4O,EAAuB5N,EAAQkN,EAAet8B,GASnD,MAAY,MAARA,EACOs8B,EAAgB,UAAY,UACpB,MAARt8B,EACAs8B,EAAgB,SAAW,SAE3BlN,EAAS,KAtBF/3B,GAsB6B+3B,EArB3C6N,EAQS,CACTtL,GAAI2K,EAAgB,yBAA2B,yBAC/C1K,GAAI0K,EAAgB,yBAA2B,yBAC/CxK,GAAIwK,EAAgB,sBAAwB,sBAC5CtK,GAAI,gBACJI,GAAI,wBACJE,GAAI,kBAOgCtyB,GArBvB9d,MAAM,KAChBmV,EAAM,IAAO,GAAKA,EAAM,KAAQ,GACjC4lC,EAAM,GACN5lC,EAAM,IAAM,GAAKA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,KAAO,IAChE4lC,EAAM,GACNA,EAAM,IANlB,IAAsB5lC,EACd4lC,CAuBR,CAkCA,SAASoF,EAAqBzgC,GAC1B,OAAO,WACH,OAAOA,EAAM,KAAwB,KAAjB1b,KAAKgvC,QAAiB,IAAM,IAAM,MAC1D,CACJ,CAES9G,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,CACJx2B,OAAQ,yFAAyFrc,MAC7F,KAEJg7C,WACI,iGAAiGh7C,MAC7F,MAGZk4C,YAAa,yDAAyDl4C,MAClE,KAEJm4C,SApDJ,SAA6B39B,EAAG6B,GAC5B,IAAI87B,EAAW,CACPiI,WACI,0DAA0DpgD,MACtD,KAERqgD,WACI,0DAA0DrgD,MACtD,KAERsgD,SACI,4DAA4DtgD,MACxD,MAKhB,OAAU,IAANwa,EACO29B,EAAqB,WACvB3jC,MAAM,EAAG,GACTtG,OAAOiqC,EAAqB,WAAE3jC,MAAM,EAAG,IAE3CgG,EASE29B,EALI,qBAAqBl5B,KAAK5C,GAC/B,aACA,sCAAsC4C,KAAK5C,GACzC,WACA,cACkB7B,EAAE0gC,OARjB/C,EAAqB,UASpC,EAqBIC,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,iBACJC,IAAK,wBACLC,KAAM,+BAEVC,SAAU,CACNC,QAASiH,EAAqB,cAC9BhH,QAASgH,EAAqB,YAC9B9G,QAAS8G,EAAqB,WAC9B/G,SAAU+G,EAAqB,cAC/B7G,SAAU,WACN,OAAQt1C,KAAKk3C,OACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,OAAOiF,EAAqB,oBAAoB9yC,KAAKrJ,MACzD,KAAK,EACL,KAAK,EACL,KAAK,EACD,OAAOm8C,EAAqB,qBAAqB9yC,KAAKrJ,MAElE,EACAu1C,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNhX,EAAG,kBACH+M,GAAIqL,EACJtgC,EAAGsgC,EACHpL,GAAIoL,EACJnL,EAAG,SACHC,GAAIkL,EACJjL,EAAG,OACHC,GAAIgL,EACJ7K,EAAG,SACHC,GAAI4K,EACJ3K,EAAG,MACHC,GAAI0K,GAGRxC,cAAe,wBACfC,KAAM,SAAU3qC,GACZ,MAAO,iBAAiBqR,KAAKrR,EACjC,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,EACA,OACAA,EAAO,GACP,QACAA,EAAO,GACP,MAEA,QAEf,EACAZ,uBAAwB,iBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACL,IAAK,IACD,OAAOjO,EAAS,KACpB,IAAK,IACD,OAAOA,EAAS,MACpB,QACI,OAAOA,EAEnB,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA1KyCjS,CAAQ,EAAQ,M,cCGlD,SAAWoE,GAAU,aAIzB,IAAI2G,EAAS,CACL,QACA,QACA,OACA,QACA,MACA,MACA,SACA,OACA,QACA,SACA,QACA,SAEJE,EAAO,CAAC,QAAS,MAAO,OAAQ,MAAO,SAAU,OAAQ,QAEpD7G,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQA,EACRqF,YAAarF,EACbsF,SAAUpF,EACVqF,cAAerF,EACfsF,YAAatF,EACb2F,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVV,cAAe,UACfC,KAAM,SAAU3qC,GACZ,MAAO,QAAUA,CACrB,EACA4qC,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,OAAI8B,EAAO,GACA,MAEJ,KACX,EACAtB,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,iBACVC,QAAS,sBACTC,SAAU,yBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNhX,EAAG,YACH+M,GAAI,WACJj1B,EAAG,UACHk1B,GAAI,SACJC,EAAG,YACHC,GAAI,WACJC,EAAG,SACHC,GAAI,QACJG,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,UAERuK,SAAU,SAAUt1B,GAChB,OAAOA,EAAO9L,QAAQ,KAAM,IAChC,EACAkhC,WAAY,SAAUp1B,GAClB,OAAOA,EAAO9L,QAAQ,KAAM,IAChC,EACAsgC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CArFyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIZA,EAAO+L,aAAa,UAAW,CACxCpF,OAAQ,6EAA6E7yC,MACjF,KAEJk4C,YAAa,oDAAoDl4C,MAAM,KACvEm4C,SACI,+DAA+Dn4C,MAC3D,KAERo4C,cAAe,kCAAkCp4C,MAAM,KACvDq4C,YAAa,yBAAyBr4C,MAAM,KAC5C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,uBACTC,QAAS,mBACTC,SAAU,2BACVC,QAAS,uBACTC,SAAU,oCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,kBACRC,KAAM,qBACNhX,EAAG,SACH+M,GAAI,YACJj1B,EAAG,aACHk1B,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJG,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA1DyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,yEAAyE7yC,MAC7E,KAEJk4C,YAAa,kDAAkDl4C,MAAM,KACrEm4C,SAAU,uDAAuDn4C,MAAM,KACvEo4C,cAAe,8BAA8Bp4C,MAAM,KACnDq4C,YAAa,uBAAuBr4C,MAAM,KAC1C04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,uBACTC,QAAS,mBACTC,SAAU,2BACVC,QAAS,sBACTC,SAAU,mCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,oBACNhX,EAAG,SACH+M,GAAI,YACJj1B,EAAG,aACHk1B,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJG,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERyJ,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAvDyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,qGAAqG7yC,MACzG,KAEJk4C,YACI,sFAAsFl4C,MAClF,KAERw7C,kBAAkB,EAClBrD,SAAU,yDAAyDn4C,MAC/D,KAEJo4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,uBAAuBr4C,MAAM,KAC1Cs6C,oBAAoB,EACpBhC,cAAe,SACfC,KAAM,SAAU3qC,GACZ,MAAO,QAAQqR,KAAKrR,EACxB,EACA4qC,SAAU,SAAUxF,EAAOC,EAASwF,GAChC,OAAIzF,EAAQ,GACDyF,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,EACAC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,oBACJC,IAAK,0BACLC,KAAM,gCACNrvC,EAAG,YACH8yC,GAAI,aACJC,IAAK,mBACLC,KAAM,yBAEV1D,SAAU,CACNC,QAAS,mBACTC,QAAS,oBACTC,SAAU,yBACVC,QAAS,mBACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNhX,EAAG,WACH+M,GAAI,UACJj1B,EAAG,WACHk1B,GAAI,UACJC,EAAG,UACHC,GAAI,SACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UAERuJ,uBAAwB,UACxBC,QAAS,SAAU1M,GACf,OAAOA,CACX,EACA2M,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAnFyCjS,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIXA,EAAO+L,aAAa,WAAY,CAC1CpF,OAAQ,6GAA6G7yC,MACjH,KAEJk4C,YACI,8DAA8Dl4C,MAC1D,KAERw7C,kBAAkB,EAClBrD,SACI,yEAAyEn4C,MACrE,KAERo4C,cAAe,qCAAqCp4C,MAAM,KAC1Dq4C,YAAa,4BAA4Br4C,MAAM,KAC/Cs6C,oBAAoB,EACpB5B,eAAgB,CACZC,GAAI,QACJE,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,sBACTC,SAAU,eACVC,QAAS,uBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,UACNhX,EAAG,mBACH+M,GAAI,eACJj1B,EAAG,aACHk1B,GAAI,eACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,WACJG,EAAG,YACHC,GAAI,cACJC,EAAG,UACHC,GAAI,aAERuJ,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,EACAm2C,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7EyCjS,CAAQ,EAAQ,M,eCGlD,SAAWoE,GAAU,aAIhBA,EAAO+L,aAAa,KAAM,CAC/BpF,OAAQ,0FAA0F7yC,MAC9F,KAEJk4C,YAAa,gEAAgEl4C,MAAM,KACnFm4C,SAAU,uDAAuDn4C,MAAM,KACvEo4C,cAAe,sCAAsCp4C,MAAM,KAC3Dq4C,YAAa,2BAA2Br4C,MAAM,KAC9C04C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,eACTC,SAAU,8BACVC,QAAS,eACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNhX,EAAG,oBACH+M,GAAI,WACJj1B,EAAG,cACHk1B,GAAI,aACJC,EAAG,cACHC,GAAI,aACJC,EAAG,WACHC,GAAI,UACJG,EAAG,WACHC,GAAI,UACJC,EAAG,YACHC,GAAI,YAERuJ,uBAAwB,gBACxBC,QAAS,UACTC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzDyCjS,CAAQ,EAAQ,M,eCKlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wCAAwC7yC,MAC5C,KAEJk4C,YAAa,yCAAyCl4C,MAClD,KAEJm4C,SAAU,8BAA8Bn4C,MAAM,KAC9Co4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,gBAAgBr4C,MAAM,KACnC04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJC,IAAK,kBACLC,KAAM,sBACNrvC,EAAG,WACH8yC,GAAI,YACJC,IAAK,kBACLC,KAAM,uBAEVrE,cAAe,oBACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,OAAb/B,GAAkC,OAAbA,GAAkC,OAAbA,EACnC+B,EACa,OAAb/B,GAAkC,OAAbA,EACrB+B,EAAO,GAGPA,GAAQ,GAAKA,EAAOA,EAAO,EAE1C,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,IAAIyH,EAAY,IAAP3F,EAAaC,EACtB,OAAI0F,EAAK,IACE,KACAA,EAAK,IACL,KACAA,EAAK,KACL,KACAA,EAAK,KACL,KACAA,EAAK,KACL,KAEA,IAEf,EACAjH,SAAU,CACNC,QAAS,SACTC,QAAS,SACTC,SAAU,SAAUmF,GAChB,OAAIA,EAAI1E,SAAW71C,KAAK61C,OACb,WAEA,UAEf,EACAR,QAAS,SACTC,SAAU,SAAUiF,GAChB,OAAIv6C,KAAK61C,SAAW0E,EAAI1E,OACb,WAEA,UAEf,EACAN,SAAU,KAEdI,uBAAwB,iBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOjO,EAAS,IACpB,IAAK,IACD,OAAOA,EAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,IACpB,QACI,OAAOA,EAEnB,EACAsM,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNhX,EAAG,KACH+M,GAAI,OACJj1B,EAAG,OACHk1B,GAAI,QACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJC,EAAG,MACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,QAERyJ,KAAM,CAEFC,IAAK,EACLC,IAAK,IAMhB,CA1HyCjS,CAAQ,EAAQ,M,eCIlD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wCAAwC7yC,MAC5C,KAEJk4C,YAAa,yCAAyCl4C,MAClD,KAEJm4C,SAAU,8BAA8Bn4C,MAAM,KAC9Co4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,gBAAgBr4C,MAAM,KACnC04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJC,IAAK,kBACLC,KAAM,sBACNrvC,EAAG,WACH8yC,GAAI,YACJC,IAAK,kBACLC,KAAM,uBAEVrE,cAAe,oBACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,OAAb/B,GAAkC,OAAbA,GAAkC,OAAbA,EACnC+B,EACa,OAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,OAAb/B,GAAkC,OAAbA,EACrB+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,IAAIyH,EAAY,IAAP3F,EAAaC,EACtB,OAAI0F,EAAK,IACE,KACAA,EAAK,IACL,KACAA,EAAK,KACL,KACO,OAAPA,EACA,KACAA,EAAK,KACL,KAEA,IAEf,EACAjH,SAAU,CACNC,QAAS,SACTC,QAAS,SACTC,SAAU,YACVC,QAAS,SACTC,SAAU,YACVC,SAAU,KAEdI,uBAAwB,iBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOjO,EAAS,IACpB,IAAK,IACD,OAAOA,EAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,IACpB,QACI,OAAOA,EAEnB,EACAsM,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNhX,EAAG,KACH+M,GAAI,OACJj1B,EAAG,OACHk1B,GAAI,QACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJG,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,SAMf,CAtGyCtI,CAAQ,EAAQ,M,eCElD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wCAAwC7yC,MAC5C,KAEJk4C,YAAa,yCAAyCl4C,MAClD,KAEJm4C,SAAU,8BAA8Bn4C,MAAM,KAC9Co4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,gBAAgBr4C,MAAM,KACnC04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJC,IAAK,kBACLC,KAAM,sBACNrvC,EAAG,WACH8yC,GAAI,YACJC,IAAK,kBACLC,KAAM,uBAEVrE,cAAe,oBACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,OAAb/B,GAAkC,OAAbA,GAAkC,OAAbA,EACnC+B,EACa,OAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,OAAb/B,GAAkC,OAAbA,EACrB+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,IAAIyH,EAAY,IAAP3F,EAAaC,EACtB,OAAI0F,EAAK,IACE,KACAA,EAAK,IACL,KACAA,EAAK,KACL,KACAA,EAAK,KACL,KACAA,EAAK,KACL,KAEA,IAEf,EACAjH,SAAU,CACNC,QAAS,UACTC,QAAS,UACTC,SAAU,aACVC,QAAS,UACTC,SAAU,aACVC,SAAU,KAEdI,uBAAwB,iBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOjO,EAAS,IACpB,IAAK,IACD,OAAOA,EAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,IACpB,QACI,OAAOA,EAEnB,EACAsM,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNhX,EAAG,KACH+M,GAAI,OACJj1B,EAAG,OACHk1B,GAAI,QACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJG,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,SAMf,CAtGyCtI,CAAQ,EAAQ,M,cCElD,SAAWoE,GAAU,aAIdA,EAAO+L,aAAa,QAAS,CACpCpF,OAAQ,wCAAwC7yC,MAC5C,KAEJk4C,YAAa,yCAAyCl4C,MAClD,KAEJm4C,SAAU,8BAA8Bn4C,MAAM,KAC9Co4C,cAAe,uBAAuBp4C,MAAM,KAC5Cq4C,YAAa,gBAAgBr4C,MAAM,KACnC04C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJC,IAAK,kBACLC,KAAM,sBACNrvC,EAAG,WACH8yC,GAAI,YACJC,IAAK,kBACLC,KAAM,uBAEVrE,cAAe,oBACfgD,aAAc,SAAUf,EAAM/B,GAI1B,OAHa,KAAT+B,IACAA,EAAO,GAEM,OAAb/B,GAAkC,OAAbA,GAAkC,OAAbA,EACnC+B,EACa,OAAb/B,EACA+B,GAAQ,GAAKA,EAAOA,EAAO,GACd,OAAb/B,GAAkC,OAAbA,EACrB+B,EAAO,QADX,CAGX,EACA/B,SAAU,SAAU+B,EAAMC,EAAQ/B,GAC9B,IAAIyH,EAAY,IAAP3F,EAAaC,EACtB,OAAI0F,EAAK,IACE,KACAA,EAAK,IACL,KACAA,EAAK,KACL,KACAA,EAAK,KACL,KACAA,EAAK,KACL,KAEA,IAEf,EACAjH,SAAU,CACNC,QAAS,UACTC,QAAS,UACTC,SAAU,aACVC,QAAS,UACTC,SAAU,aACVC,SAAU,KAEdI,uBAAwB,iBACxBC,QAAS,SAAU1M,EAAQiO,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOjO,EAAS,IACpB,IAAK,IACD,OAAOA,EAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,IACpB,QACI,OAAOA,EAEnB,EACAsM,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNhX,EAAG,KACH+M,GAAI,OACJj1B,EAAG,OACHk1B,GAAI,QACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJG,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,SAMf,CAtGyCtI,CAAQ,EAAQ,M,cCP1D,IAAI3lC,EAAM,CACT,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,UAAW,KACX,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,IACX,aAAc,IACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,QAAS,KACT,WAAY,KACZ,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,gBAAiB,KACjB,aAAc,KACd,gBAAiB,KACjB,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,UAAW,KACX,aAAc,KACd,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,WAAY,KACZ,cAAe,KACf,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,WAAY,KACZ,cAAe,KACf,UAAW,KACX,aAAc,KACd,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,YAAa,KACb,eAAgB,KAChB,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,QAAS,KACT,WAAY,KACZ,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,UAAW,KACX,aAAc,KACd,QAAS,KACT,WAAY,KACZ,OAAQ,KACR,UAAW,KACX,QAAS,KACT,WAAY,KACZ,QAAS,KACT,aAAc,KACd,gBAAiB,KACjB,WAAY,KACZ,UAAW,KACX,aAAc,KACd,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,YAAa,KACb,eAAgB,KAChB,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,gBAAiB,KACjB,OAAQ,KACR,UAAW,KACX,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,IACX,aAAc,KAIf,SAASo+C,EAAex1C,GACvB,IAAIy1C,EAAKC,EAAsB11C,GAC/B,OAAO21C,EAAoBF,EAC5B,CACA,SAASC,EAAsB11C,GAC9B,IAAI21C,EAAoBlhC,EAAErd,EAAK4I,GAAM,CACpC,IAAIi2B,EAAI,IAAI/gC,MAAM,uBAAyB8K,EAAM,KAEjD,MADAi2B,EAAE90B,KAAO,mBACH80B,CACP,CACA,OAAO7+B,EAAI4I,EACZ,CACAw1C,EAAe1iC,KAAO,WACrB,OAAOlf,OAAOkf,KAAK1b,EACpB,EACAo+C,EAAexzC,QAAU0zC,EACzBrzC,EAAOvO,QAAU0hD,EACjBA,EAAeC,GAAK,I,2BChSsD3hD,QAGlE,WAAe,aAEnB,IAAI8hD,EA6HAj3C,EA3HJ,SAASk3C,IACL,OAAOD,EAAajqC,MAAM,KAAMhO,UACpC,CAQA,SAASqF,EAAQH,GACb,OACIA,aAAiBE,OACyB,mBAA1CnP,OAAOwO,UAAU40B,SAAS10B,KAAKO,EAEvC,CAEA,SAASkpB,EAASlpB,GAGd,OACa,MAATA,GAC0C,oBAA1CjP,OAAOwO,UAAU40B,SAAS10B,KAAKO,EAEvC,CAEA,SAASizC,EAAWp9C,EAAGC,GACnB,OAAO/E,OAAOwO,UAAUmkC,eAAejkC,KAAK5J,EAAGC,EACnD,CAEA,SAASo9C,EAAc5hC,GACnB,GAAIvgB,OAAOoiD,oBACP,OAAkD,IAA3CpiD,OAAOoiD,oBAAoB7hC,GAAKtS,OAEvC,IAAI0S,EACJ,IAAKA,KAAKJ,EACN,GAAI2hC,EAAW3hC,EAAKI,GAChB,OAAO,EAGf,OAAO,CAEf,CAEA,SAAS0hC,EAAYpzC,GACjB,YAAsB,IAAfA,CACX,CAEA,SAASopB,EAASppB,GACd,MACqB,iBAAVA,GACmC,oBAA1CjP,OAAOwO,UAAU40B,SAAS10B,KAAKO,EAEvC,CAEA,SAASqzC,EAAOrzC,GACZ,OACIA,aAAiBqO,MACyB,kBAA1Ctd,OAAOwO,UAAU40B,SAAS10B,KAAKO,EAEvC,CAEA,SAASzL,EAAIyT,EAAK5K,GACd,IACI0I,EADAwgB,EAAM,GAENgtB,EAAStrC,EAAIhJ,OACjB,IAAK8G,EAAI,EAAGA,EAAIwtC,IAAUxtC,EACtBwgB,EAAIvuB,KAAKqF,EAAG4K,EAAIlC,GAAIA,IAExB,OAAOwgB,CACX,CAEA,SAASzX,EAAOhZ,EAAGC,GACf,IAAK,IAAIgQ,KAAKhQ,EACNm9C,EAAWn9C,EAAGgQ,KACdjQ,EAAEiQ,GAAKhQ,EAAEgQ,IAYjB,OARImtC,EAAWn9C,EAAG,cACdD,EAAEs+B,SAAWr+B,EAAEq+B,UAGf8e,EAAWn9C,EAAG,aACdD,EAAE09C,QAAUz9C,EAAEy9C,SAGX19C,CACX,CAEA,SAAS29C,EAAUxzC,EAAOyO,EAAQwwB,EAAQhE,GACtC,OAAOwY,GAAiBzzC,EAAOyO,EAAQwwB,EAAQhE,GAAQ,GAAMyY,KACjE,CAwBA,SAASC,EAAgB/mC,GAIrB,OAHa,MAATA,EAAEgnC,MACFhnC,EAAEgnC,IAtBC,CACH7tB,OAAO,EACP8tB,aAAc,GACdC,YAAa,GACbC,UAAW,EACXC,cAAe,EACfC,WAAW,EACXC,WAAY,KACZC,aAAc,KACdC,eAAe,EACfC,iBAAiB,EACjBC,KAAK,EACLC,gBAAiB,GACjBC,IAAK,KACL5J,SAAU,KACV6J,SAAS,EACTC,iBAAiB,IAQd9nC,EAAEgnC,GACb,CAqBA,SAASlP,EAAQ93B,GACb,IAAI+nC,EAAQ,KACRC,GAAc,EACdC,EAAajoC,EAAEkoC,KAAO5D,MAAMtkC,EAAEkoC,GAAGC,WAyBrC,OAxBIF,IACAF,EAAQhB,EAAgB/mC,GACxBgoC,EAAc94C,EAAK2D,KAAKk1C,EAAMJ,gBAAiB,SAAUzuC,GACrD,OAAY,MAALA,CACX,GACA+uC,EACIF,EAAMZ,SAAW,IAChBY,EAAM5uB,QACN4uB,EAAMT,aACNS,EAAMR,eACNQ,EAAMK,iBACNL,EAAMD,kBACNC,EAAMV,YACNU,EAAMP,gBACNO,EAAMN,mBACLM,EAAM/J,UAAa+J,EAAM/J,UAAYgK,GACvChoC,EAAEqoC,UACFJ,EACIA,GACwB,IAAxBF,EAAMX,eACwB,IAA9BW,EAAMd,aAAa70C,aACDnN,IAAlB8iD,EAAMO,UAGK,MAAnBnkD,OAAOokD,UAAqBpkD,OAAOokD,SAASvoC,GAGrCioC,GAFPjoC,EAAEwoC,SAAWP,EAIVjoC,EAAEwoC,SACb,CAEA,SAASC,EAAcV,GACnB,IAAI/nC,EAAI4mC,EAAU8B,KAOlB,OANa,MAATX,EACA9lC,EAAO8kC,EAAgB/mC,GAAI+nC,GAE3BhB,EAAgB/mC,GAAGynC,iBAAkB,EAGlCznC,CACX,CA9DI9Q,EADAoE,MAAMX,UAAUzD,KACToE,MAAMX,UAAUzD,KAEhB,SAAUy5C,GACb,IAEIzvC,EAFA0vC,EAAIzkD,OAAOqF,MACXglC,EAAMoa,EAAEx2C,SAAW,EAGvB,IAAK8G,EAAI,EAAGA,EAAIs1B,EAAKt1B,IACjB,GAAIA,KAAK0vC,GAAKD,EAAI91C,KAAKrJ,KAAMo/C,EAAE1vC,GAAIA,EAAG0vC,GAClC,OAAO,EAIf,OAAO,CACX,EAoDJ,IAAIC,EAAoBzC,EAAMyC,iBAAmB,GAC7CC,GAAmB,EAEvB,SAASC,EAAWrsC,EAAIf,GACpB,IAAIzC,EACAyL,EACA5C,EACAinC,EAAsBH,EAAiBz2C,OAiC3C,GA/BKo0C,EAAY7qC,EAAKstC,oBAClBvsC,EAAGusC,iBAAmBttC,EAAKstC,kBAE1BzC,EAAY7qC,EAAKutC,MAClBxsC,EAAGwsC,GAAKvtC,EAAKutC,IAEZ1C,EAAY7qC,EAAKwtC,MAClBzsC,EAAGysC,GAAKxtC,EAAKwtC,IAEZ3C,EAAY7qC,EAAKytC,MAClB1sC,EAAG0sC,GAAKztC,EAAKytC,IAEZ5C,EAAY7qC,EAAK0sC,WAClB3rC,EAAG2rC,QAAU1sC,EAAK0sC,SAEjB7B,EAAY7qC,EAAK0tC,QAClB3sC,EAAG2sC,KAAO1tC,EAAK0tC,MAEd7C,EAAY7qC,EAAK2tC,UAClB5sC,EAAG4sC,OAAS3tC,EAAK2tC,QAEhB9C,EAAY7qC,EAAK4tC,WAClB7sC,EAAG6sC,QAAU5tC,EAAK4tC,SAEjB/C,EAAY7qC,EAAKqrC,OAClBtqC,EAAGsqC,IAAMD,EAAgBprC,IAExB6qC,EAAY7qC,EAAK6tC,WAClB9sC,EAAG8sC,QAAU7tC,EAAK6tC,SAGlBR,EAAsB,EACtB,IAAK9vC,EAAI,EAAGA,EAAI8vC,EAAqB9vC,IAG5BstC,EADLzkC,EAAMpG,EADNgJ,EAAOkkC,EAAiB3vC,OAGpBwD,EAAGiI,GAAQ5C,GAKvB,OAAOrF,CACX,CAGA,SAAS+sC,EAAOC,GACZX,EAAWv/C,KAAMkgD,GACjBlgD,KAAK0+C,GAAK,IAAIzmC,KAAkB,MAAbioC,EAAOxB,GAAawB,EAAOxB,GAAGC,UAAYO,KACxDl/C,KAAKsuC,YACNtuC,KAAK0+C,GAAK,IAAIzmC,KAAKinC,OAIE,IAArBI,IACAA,GAAmB,EACnB1C,EAAMuD,aAAangD,MACnBs/C,GAAmB,EAE3B,CAEA,SAASc,EAASllC,GACd,OACIA,aAAe+kC,GAAkB,MAAP/kC,GAAuC,MAAxBA,EAAIukC,gBAErD,CAEA,SAAStoC,EAAKkpC,IAEgC,IAAtCzD,EAAM0D,6BACa,oBAAZt1C,SACPA,QAAQmM,MAERnM,QAAQmM,KAAK,wBAA0BkpC,EAE/C,CAEA,SAASvlC,EAAUulC,EAAKr5C,GACpB,IAAIu5C,GAAY,EAEhB,OAAO9nC,EAAO,WAIV,GAHgC,MAA5BmkC,EAAM4D,oBACN5D,EAAM4D,mBAAmB,KAAMH,GAE/BE,EAAW,CACX,IACIvwB,EACAtgB,EACAoK,EAHAxO,EAAO,GAIPm1C,EAAS/7C,UAAUkE,OACvB,IAAK8G,EAAI,EAAGA,EAAI+wC,EAAQ/wC,IAAK,CAEzB,GADAsgB,EAAM,GACsB,iBAAjBtrB,UAAUgL,GAAiB,CAElC,IAAKoK,KADLkW,GAAO,MAAQtgB,EAAI,KACPhL,UAAU,GACdm4C,EAAWn4C,UAAU,GAAIoV,KACzBkW,GAAOlW,EAAM,KAAOpV,UAAU,GAAGoV,GAAO,MAGhDkW,EAAMA,EAAIxf,MAAM,GAAI,EACxB,MACIwf,EAAMtrB,UAAUgL,GAEpBpE,EAAK3J,KAAKquB,EACd,CACA7Y,EACIkpC,EACI,gBACAv2C,MAAMX,UAAUqH,MAAMnH,KAAKiC,GAAM9G,KAAK,IACtC,MACA,IAAIvI,OAAQwJ,OAEpB86C,GAAY,CAChB,CACA,OAAOv5C,EAAG0L,MAAM1S,KAAM0E,UAC1B,EAAGsC,EACP,CAEA,IAgFI6S,EAhFA6mC,EAAe,CAAC,EAEpB,SAASC,EAAgBtiD,EAAMgiD,GACK,MAA5BzD,EAAM4D,oBACN5D,EAAM4D,mBAAmBniD,EAAMgiD,GAE9BK,EAAariD,KACd8Y,EAAKkpC,GACLK,EAAariD,IAAQ,EAE7B,CAKA,SAAS82B,EAAWvrB,GAChB,MACyB,oBAAb2vC,UAA4B3vC,aAAiB2vC,UACX,sBAA1C5+C,OAAOwO,UAAU40B,SAAS10B,KAAKO,EAEvC,CAyBA,SAASg3C,EAAaC,EAAcC,GAChC,IACI3lC,EADA+U,EAAMzX,EAAO,CAAC,EAAGooC,GAErB,IAAK1lC,KAAQ2lC,EACLjE,EAAWiE,EAAa3lC,KACpB2X,EAAS+tB,EAAa1lC,KAAU2X,EAASguB,EAAY3lC,KACrD+U,EAAI/U,GAAQ,CAAC,EACb1C,EAAOyX,EAAI/U,GAAO0lC,EAAa1lC,IAC/B1C,EAAOyX,EAAI/U,GAAO2lC,EAAY3lC,KACF,MAArB2lC,EAAY3lC,GACnB+U,EAAI/U,GAAQ2lC,EAAY3lC,UAEjB+U,EAAI/U,IAIvB,IAAKA,KAAQ0lC,EAELhE,EAAWgE,EAAc1lC,KACxB0hC,EAAWiE,EAAa3lC,IACzB2X,EAAS+tB,EAAa1lC,MAGtB+U,EAAI/U,GAAQ1C,EAAO,CAAC,EAAGyX,EAAI/U,KAGnC,OAAO+U,CACX,CAEA,SAAS6wB,EAAOb,GACE,MAAVA,GACAlgD,KAAK6Y,IAAIqnC,EAEjB,CAlEAtD,EAAM0D,6BAA8B,EACpC1D,EAAM4D,mBAAqB,KAsEvB3mC,EADAlf,OAAOkf,KACAlf,OAAOkf,KAEP,SAAUqB,GACb,IAAIxL,EACAwgB,EAAM,GACV,IAAKxgB,KAAKwL,EACF2hC,EAAW3hC,EAAKxL,IAChBwgB,EAAIvuB,KAAK+N,GAGjB,OAAOwgB,CACX,EAiBJ,SAAS8wB,EAAS9X,EAAQ+X,EAAcC,GACpC,IAAIC,EAAY,GAAKrxC,KAAKmK,IAAIivB,GAC1BkY,EAAcH,EAAeE,EAAUv4C,OAE3C,OADWsgC,GAAU,EAERgY,EAAY,IAAM,GAAM,KACjCpxC,KAAKkiC,IAAI,GAAIliC,KAAKF,IAAI,EAAGwxC,IAAcrjB,WAAWgE,OAAO,GACzDof,CAER,CAEA,IAAIE,EACI,yMACJC,EAAwB,6CACxBC,EAAkB,CAAC,EACnBC,EAAuB,CAAC,EAM5B,SAASC,EAAe7U,EAAOzY,EAAQyhB,EAASz4C,GAC5C,IAAIukD,EAAOvkD,EACa,iBAAbA,IACPukD,EAAO,WACH,OAAO1hD,KAAK7C,IAChB,GAEAyvC,IACA4U,EAAqB5U,GAAS8U,GAE9BvtB,IACAqtB,EAAqBrtB,EAAO,IAAM,WAC9B,OAAO6sB,EAASU,EAAKhvC,MAAM1S,KAAM0E,WAAYyvB,EAAO,GAAIA,EAAO,GACnE,GAEAyhB,IACA4L,EAAqB5L,GAAW,WAC5B,OAAO51C,KAAKyvC,aAAamG,QACrB8L,EAAKhvC,MAAM1S,KAAM0E,WACjBkoC,EAER,EAER,CAEA,SAAS+U,EAAuB/3C,GAC5B,OAAIA,EAAM4L,MAAM,YACL5L,EAAM2L,QAAQ,WAAY,IAE9B3L,EAAM2L,QAAQ,MAAO,GAChC,CA4BA,SAASqsC,EAAaprC,EAAG6B,GACrB,OAAK7B,EAAE83B,WAIPj2B,EAASwpC,EAAaxpC,EAAQ7B,EAAEi5B,cAChC8R,EAAgBlpC,GACZkpC,EAAgBlpC,IAjCxB,SAA4BA,GACxB,IACI3I,EACA9G,EAFAmY,EAAQ1I,EAAO7C,MAAM6rC,GAIzB,IAAK3xC,EAAI,EAAG9G,EAASmY,EAAMnY,OAAQ8G,EAAI9G,EAAQ8G,IACvC8xC,EAAqBzgC,EAAMrR,IAC3BqR,EAAMrR,GAAK8xC,EAAqBzgC,EAAMrR,IAEtCqR,EAAMrR,GAAKiyC,EAAuB5gC,EAAMrR,IAIhD,OAAO,SAAU2pC,GACb,IACI3pC,EADA7F,EAAS,GAEb,IAAK6F,EAAI,EAAGA,EAAI9G,EAAQ8G,IACpB7F,GAAUsrB,EAAWpU,EAAMrR,IACrBqR,EAAMrR,GAAGrG,KAAKgwC,EAAKhhC,GACnB0I,EAAMrR,GAEhB,OAAO7F,CACX,CACJ,CAUmCi4C,CAAmBzpC,GAE3CkpC,EAAgBlpC,GAAQ7B,IAPpBA,EAAEi5B,aAAagK,aAQ9B,CAEA,SAASoI,EAAaxpC,EAAQwwB,GAC1B,IAAIn5B,EAAI,EAER,SAASqyC,EAA4Bn4C,GACjC,OAAOi/B,EAAO6L,eAAe9qC,IAAUA,CAC3C,CAGA,IADA03C,EAAsBU,UAAY,EAC3BtyC,GAAK,GAAK4xC,EAAsBrmC,KAAK5C,IACxCA,EAASA,EAAO9C,QACZ+rC,EACAS,GAEJT,EAAsBU,UAAY,EAClCtyC,GAAK,EAGT,OAAO2I,CACX,CAiFA,IAAI4pC,EAAU,CACVC,EAAG,OACHC,MAAO,OACPC,KAAM,OACNvW,EAAG,MACHkD,KAAM,MACNmI,IAAK,MACLla,EAAG,UACHmX,SAAU,UACVkO,QAAS,UACTC,EAAG,aACHC,YAAa,aACbC,WAAY,aACZC,IAAK,YACLC,WAAY,YACZC,UAAW,YACXhX,EAAG,OACHqD,MAAO,OACPuH,KAAM,OACNr+B,GAAI,cACJi3B,aAAc,cACdyT,YAAa,cACbpsC,EAAG,SACHy4B,QAAS,SACTuH,OAAQ,SACRvK,EAAG,QACH4C,OAAQ,QACRqK,MAAO,QACP2J,EAAG,UACHC,SAAU,UACVC,QAAS,UACTrkB,EAAG,SACHwQ,QAAS,SACT8T,OAAQ,SACRC,GAAI,WACJC,UAAW,WACXC,SAAU,WACVC,GAAI,cACJC,aAAc,cACdC,YAAa,cACbvX,EAAG,OACH+C,MAAO,OACP+G,KAAM,OACN0N,EAAG,UACHC,SAAU,UACVC,QAAS,UACTtX,EAAG,OACHyC,MAAO,OACP8U,KAAM,QAGV,SAASC,EAAe5I,GACpB,MAAwB,iBAAVA,EACRkH,EAAQlH,IAAUkH,EAAQlH,EAAMxkC,oBAChC9a,CACV,CAEA,SAASmoD,EAAqBC,GAC1B,IACIC,EACA3oC,EAFA4oC,EAAkB,CAAC,EAIvB,IAAK5oC,KAAQ0oC,EACLhH,EAAWgH,EAAa1oC,KACxB2oC,EAAiBH,EAAexoC,MAE5B4oC,EAAgBD,GAAkBD,EAAY1oC,IAK1D,OAAO4oC,CACX,CAEA,IAAIC,EAAa,CACb5B,KAAM,EACNlL,IAAK,GACLmL,QAAS,GACT4B,WAAY,GACZC,UAAW,EACX3N,KAAM,GACNqM,YAAa,GACbpM,OAAQ,GACR0C,MAAO,EACP6J,QAAS,EACTC,OAAQ,GACRmB,SAAU,EACVC,YAAa,EACbvO,KAAM,EACNwO,QAAS,EACTX,KAAM,GAiBV,IAsBIY,EAtBAC,EAAS,KACTC,EAAS,OACTC,EAAS,QACTC,EAAS,QACTC,EAAS,aACTC,EAAY,QACZC,EAAY,YACZC,EAAY,gBACZC,EAAY,UACZC,GAAY,UACZC,GAAY,eACZC,GAAgB,MAChBC,GAAc,WACdC,GAAc,qBACdC,GAAmB,0BAInBC,GACI,wJACJC,GAAyB,YACzBC,GAAmB,gBAKvB,SAASC,GAAc7Y,EAAOjU,EAAO+sB,GACjCpB,EAAQ1X,GAASzX,EAAWwD,GACtBA,EACA,SAAUgtB,EAAUlW,GAChB,OAAOkW,GAAYD,EAAcA,EAAc/sB,CACnD,CACV,CAEA,SAASitB,GAAsBhZ,EAAOsT,GAClC,OAAKrD,EAAWyH,EAAS1X,GAIlB0X,EAAQ1X,GAAOsT,EAAOrB,QAASqB,EAAOF,SAHlC,IAAI7oB,OAQR0uB,GAR8BjZ,EAU5Br3B,QAAQ,KAAM,IACdA,QACG,sCACA,SAAU+wB,EAAShG,EAAIC,EAAIulB,EAAIC,GAC3B,OAAOzlB,GAAMC,GAAMulB,GAAMC,CAC7B,IAXhB,CAgBA,SAASF,GAAYnnB,GACjB,OAAOA,EAAEnpB,QAAQ,yBAA0B,OAC/C,CAEA,SAASywC,GAAS9c,GACd,OAAIA,EAAS,EAEFp5B,KAAKm2C,KAAK/c,IAAW,EAErBp5B,KAAK0hC,MAAMtI,EAE1B,CAEA,SAASgd,GAAMC,GACX,IAAIC,GAAiBD,EACjBrrD,EAAQ,EAMZ,OAJsB,IAAlBsrD,GAAuBthB,SAASshB,KAChCtrD,EAAQkrD,GAASI,IAGdtrD,CACX,CAtDAwpD,EAAU,CAAC,EAwDX,IAAItT,GAAS,CAAC,EAEd,SAASqV,GAAczZ,EAAOzvC,GAC1B,IAAIuS,EAEA42C,EADA5E,EAAOvkD,EAWX,IATqB,iBAAVyvC,IACPA,EAAQ,CAACA,IAET5Z,EAAS71B,KACTukD,EAAO,SAAU93C,EAAOmX,GACpBA,EAAM5jB,GAAY+oD,GAAMt8C,EAC5B,GAEJ08C,EAAW1Z,EAAMhkC,OACZ8G,EAAI,EAAGA,EAAI42C,EAAU52C,IACtBshC,GAAOpE,EAAMl9B,IAAMgyC,CAE3B,CAEA,SAAS6E,GAAkB3Z,EAAOzvC,GAC9BkpD,GAAczZ,EAAO,SAAUhjC,EAAOmX,EAAOm/B,EAAQtT,GACjDsT,EAAOsG,GAAKtG,EAAOsG,IAAM,CAAC,EAC1BrpD,EAASyM,EAAOs2C,EAAOsG,GAAItG,EAAQtT,EACvC,EACJ,CAEA,SAAS6Z,GAAwB7Z,EAAOhjC,EAAOs2C,GAC9B,MAATt2C,GAAiBizC,EAAW7L,GAAQpE,IACpCoE,GAAOpE,GAAOhjC,EAAOs2C,EAAOhT,GAAIgT,EAAQtT,EAEhD,CAEA,SAAS8Z,GAAWhD,GAChB,OAAQA,EAAO,GAAM,GAAKA,EAAO,KAAQ,GAAMA,EAAO,KAAQ,CAClE,CAEA,IAAIiD,GAAO,EACPC,GAAQ,EACRC,GAAO,EACPC,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdC,GAAO,EACPC,GAAU,EAuCd,SAASC,GAAW1D,GAChB,OAAOgD,GAAWhD,GAAQ,IAAM,GACpC,CArCAjC,EAAe,IAAK,EAAG,EAAG,WACtB,IAAItV,EAAInsC,KAAK0jD,OACb,OAAOvX,GAAK,KAAO6U,EAAS7U,EAAG,GAAK,IAAMA,CAC9C,GAEAsV,EAAe,EAAG,CAAC,KAAM,GAAI,EAAG,WAC5B,OAAOzhD,KAAK0jD,OAAS,GACzB,GAEAjC,EAAe,EAAG,CAAC,OAAQ,GAAI,EAAG,QAClCA,EAAe,EAAG,CAAC,QAAS,GAAI,EAAG,QACnCA,EAAe,EAAG,CAAC,SAAU,GAAG,GAAO,EAAG,QAI1CgE,GAAc,IAAKN,IACnBM,GAAc,KAAMb,EAAWJ,GAC/BiB,GAAc,OAAQT,GAAWN,GACjCe,GAAc,QAASR,GAAWN,GAClCc,GAAc,SAAUR,GAAWN,GAEnC0B,GAAc,CAAC,QAAS,UAAWM,IACnCN,GAAc,OAAQ,SAAUz8C,EAAOmX,GACnCA,EAAM4lC,IACe,IAAjB/8C,EAAMhB,OAAeg0C,EAAMyK,kBAAkBz9C,GAASs8C,GAAMt8C,EACpE,GACAy8C,GAAc,KAAM,SAAUz8C,EAAOmX,GACjCA,EAAM4lC,IAAQ/J,EAAMyK,kBAAkBz9C,EAC1C,GACAy8C,GAAc,IAAK,SAAUz8C,EAAOmX,GAChCA,EAAM4lC,IAAQvqD,SAASwN,EAAO,GAClC,GAUAgzC,EAAMyK,kBAAoB,SAAUz9C,GAChC,OAAOs8C,GAAMt8C,IAAUs8C,GAAMt8C,GAAS,GAAK,KAAO,IACtD,EAIA,IA0HIhE,GA1HA0hD,GAAaC,GAAW,YAAY,GAMxC,SAASA,GAAWC,EAAMC,GACtB,OAAO,SAAU3sD,GACb,OAAa,MAATA,GACA4sD,GAAM1nD,KAAMwnD,EAAM1sD,GAClB8hD,EAAMuD,aAAangD,KAAMynD,GAClBznD,MAEA4Y,GAAI5Y,KAAMwnD,EAEzB,CACJ,CAEA,SAAS5uC,GAAIygC,EAAKmO,GACd,IAAKnO,EAAI/K,UACL,OAAO4Q,IAGX,IAAIrT,EAAIwN,EAAIqF,GACRiJ,EAAQtO,EAAIyG,OAEhB,OAAQ0H,GACJ,IAAK,eACD,OAAOG,EAAQ9b,EAAE+b,qBAAuB/b,EAAEgc,kBAC9C,IAAK,UACD,OAAOF,EAAQ9b,EAAEic,gBAAkBjc,EAAEkc,aACzC,IAAK,UACD,OAAOJ,EAAQ9b,EAAEmc,gBAAkBnc,EAAEoc,aACzC,IAAK,QACD,OAAON,EAAQ9b,EAAEqc,cAAgBrc,EAAEsc,WACvC,IAAK,OACD,OAAOR,EAAQ9b,EAAEuc,aAAevc,EAAEwc,UACtC,IAAK,MACD,OAAOV,EAAQ9b,EAAEyc,YAAczc,EAAE0c,SACrC,IAAK,QACD,OAAOZ,EAAQ9b,EAAE2c,cAAgB3c,EAAE4c,WACvC,IAAK,WACD,OAAOd,EAAQ9b,EAAE6c,iBAAmB7c,EAAE8c,cAC1C,QACI,OAAOzJ,IAEnB,CAEA,SAASwI,GAAMrO,EAAKmO,EAAM1sD,GACtB,IAAI+wC,EAAG8b,EAAOjE,EAAMxK,EAAOkJ,EAE3B,GAAK/I,EAAI/K,YAAawM,MAAMhgD,GAA5B,CAOA,OAHA+wC,EAAIwN,EAAIqF,GACRiJ,EAAQtO,EAAIyG,OAEJ0H,GACJ,IAAK,eACD,YAAaG,EACP9b,EAAE+c,mBAAmB9tD,GACrB+wC,EAAEgd,gBAAgB/tD,IAC5B,IAAK,UACD,YAAa6sD,EAAQ9b,EAAEid,cAAchuD,GAAS+wC,EAAEkd,WAAWjuD,IAC/D,IAAK,UACD,YAAa6sD,EAAQ9b,EAAEmd,cAAcluD,GAAS+wC,EAAEod,WAAWnuD,IAC/D,IAAK,QACD,YAAa6sD,EAAQ9b,EAAEqd,YAAYpuD,GAAS+wC,EAAEsd,SAASruD,IAC3D,IAAK,OACD,YAAa6sD,EAAQ9b,EAAEud,WAAWtuD,GAAS+wC,EAAEwd,QAAQvuD,IAKzD,IAAK,WACD,MACJ,QACI,OAGR4oD,EAAO5oD,EACPo+C,EAAQG,EAAIH,QAEZkJ,EAAgB,MADhBA,EAAO/I,EAAI+I,SACqB,IAAVlJ,GAAgBwN,GAAWhD,GAAatB,EAAL,GACnDuF,EACA9b,EAAEyd,eAAe5F,EAAMxK,EAAOkJ,GAC9BvW,EAAE0d,YAAY7F,EAAMxK,EAAOkJ,EAlCjC,CAmCJ,CAmDA,SAASoH,GAAY9F,EAAMxK,GACvB,GAAI4B,MAAM4I,IAAS5I,MAAM5B,GACrB,OAAOgG,IAEX,IAzBYuK,EAyBRC,GAAexQ,GAzBPuQ,EAyBc,IAxBRA,GAAKA,EA0BvB,OADA/F,IAASxK,EAAQwQ,GAAY,GACT,IAAbA,EACDhD,GAAWhD,GACP,GACA,GACJ,GAAOgG,EAAW,EAAK,CACjC,CAzBI9jD,GADAkE,MAAMX,UAAUvD,QACNkE,MAAMX,UAAUvD,QAEhB,SAAU4V,GAEhB,IAAI9L,EACJ,IAAKA,EAAI,EAAGA,EAAI1P,KAAK4I,SAAU8G,EAC3B,GAAI1P,KAAK0P,KAAO8L,EACZ,OAAO9L,EAGf,OAAQ,CACZ,EAkBJ+xC,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,WACjC,OAAOzhD,KAAKk5C,QAAU,CAC1B,GAEAuI,EAAe,MAAO,EAAG,EAAG,SAAUppC,GAClC,OAAOrY,KAAKyvC,aAAayE,YAAYl0C,KAAMqY,EAC/C,GAEAopC,EAAe,OAAQ,EAAG,EAAG,SAAUppC,GACnC,OAAOrY,KAAKyvC,aAAaZ,OAAO7uC,KAAMqY,EAC1C,GAIAotC,GAAc,IAAKb,EAAWW,IAC9BE,GAAc,KAAMb,EAAWJ,GAC/BiB,GAAc,MAAO,SAAUE,EAAU9c,GACrC,OAAOA,EAAO0O,iBAAiBoO,EACnC,GACAF,GAAc,OAAQ,SAAUE,EAAU9c,GACtC,OAAOA,EAAOkP,YAAY4N,EAC9B,GAEAU,GAAc,CAAC,IAAK,MAAO,SAAUz8C,EAAOmX,GACxCA,EAAM6lC,IAASV,GAAMt8C,GAAS,CAClC,GAEAy8C,GAAc,CAAC,MAAO,QAAS,SAAUz8C,EAAOmX,EAAOm/B,EAAQtT,GAC3D,IAAIsM,EAAQgH,EAAOF,QAAQlI,YAAYluC,EAAOgjC,EAAOsT,EAAOrB,SAE/C,MAAT3F,EACAn4B,EAAM6lC,IAAS1N,EAEfqE,EAAgB2C,GAAQnC,aAAen0C,CAE/C,GAIA,IAAI+/C,GACI,wFAAwF3tD,MACpF,KAER4tD,GACI,kDAAkD5tD,MAAM,KAC5D6tD,GAAmB,gCACnBC,GAA0BxE,GAC1ByE,GAAqBzE,GA8BzB,SAAS0E,GAAkBC,EAAW5xC,EAAQwsB,GAC1C,IAAIn1B,EACAw6C,EACA7Q,EACA8Q,EAAMF,EAAUG,oBACpB,IAAKpqD,KAAKqqD,aAKN,IAHArqD,KAAKqqD,aAAe,GACpBrqD,KAAKsqD,iBAAmB,GACxBtqD,KAAKuqD,kBAAoB,GACpB76C,EAAI,EAAGA,EAAI,KAAMA,EAClB2pC,EAAM+D,EAAU,CAAC,IAAM1tC,IACvB1P,KAAKuqD,kBAAkB76C,GAAK1P,KAAKk0C,YAC7BmF,EACA,IACF+Q,oBACFpqD,KAAKsqD,iBAAiB56C,GAAK1P,KAAK6uC,OAAOwK,EAAK,IAAI+Q,oBAIxD,OAAIvlB,EACe,QAAXxsB,GAEe,KADf6xC,EAAKtkD,GAAQyD,KAAKrJ,KAAKuqD,kBAAmBJ,IACvBD,EAAK,MAGT,KADfA,EAAKtkD,GAAQyD,KAAKrJ,KAAKsqD,iBAAkBH,IACtBD,EAAK,KAGb,QAAX7xC,GAEY,KADZ6xC,EAAKtkD,GAAQyD,KAAKrJ,KAAKuqD,kBAAmBJ,MAK3B,KADfD,EAAKtkD,GAAQyD,KAAKrJ,KAAKsqD,iBAAkBH,IAF9BD,EAGa,MAGZ,KADZA,EAAKtkD,GAAQyD,KAAKrJ,KAAKsqD,iBAAkBH,MAK1B,KADfD,EAAKtkD,GAAQyD,KAAKrJ,KAAKuqD,kBAAmBJ,IAF/BD,EAGa,IAGpC,CAyDA,SAASM,GAASnR,EAAKv+C,GACnB,IAAKu+C,EAAI/K,UAEL,OAAO+K,EAGX,GAAqB,iBAAVv+C,EACP,GAAI,QAAQmgB,KAAKngB,GACbA,EAAQorD,GAAMprD,QAId,IAAKk4B,EAFLl4B,EAAQu+C,EAAI5J,aAAaqI,YAAYh9C,IAGjC,OAAOu+C,EAKnB,IAAIH,EAAQp+C,EACRsnD,EAAO/I,EAAI+I,OAMf,OAJAA,EAAOA,EAAO,GAAKA,EAAOtyC,KAAKC,IAAIqyC,EAAMoH,GAAYnQ,EAAIqK,OAAQxK,IAC3DG,EAAIyG,OACJzG,EAAIqF,GAAG+L,YAAYvR,EAAOkJ,GAC1B/I,EAAIqF,GAAG8L,SAAStR,EAAOkJ,GACtB/I,CACX,CAEA,SAASqR,GAAY5vD,GACjB,OAAa,MAATA,GACA0vD,GAASxqD,KAAMlF,GACf8hD,EAAMuD,aAAangD,MAAM,GAClBA,MAEA4Y,GAAI5Y,KAAM,QAEzB,CA8CA,SAAS2qD,KACL,SAASC,EAAUnrD,EAAGC,GAClB,OAAOA,EAAEkJ,OAASnJ,EAAEmJ,MACxB,CAEA,IAGI8G,EACA2pC,EACAwR,EACAC,EANAC,EAAc,GACdC,EAAa,GACbC,EAAc,GAKlB,IAAKv7C,EAAI,EAAGA,EAAI,GAAIA,IAEhB2pC,EAAM+D,EAAU,CAAC,IAAM1tC,IACvBm7C,EAAShF,GAAY7lD,KAAKk0C,YAAYmF,EAAK,KAC3CyR,EAAQjF,GAAY7lD,KAAK6uC,OAAOwK,EAAK,KACrC0R,EAAYppD,KAAKkpD,GACjBG,EAAWrpD,KAAKmpD,GAChBG,EAAYtpD,KAAKmpD,GACjBG,EAAYtpD,KAAKkpD,GAIrBE,EAAYh9B,KAAK68B,GACjBI,EAAWj9B,KAAK68B,GAChBK,EAAYl9B,KAAK68B,GAEjB5qD,KAAKkrD,aAAe,IAAI/zB,OAAO,KAAO8zB,EAAYzmD,KAAK,KAAO,IAAK,KACnExE,KAAKmrD,kBAAoBnrD,KAAKkrD,aAC9BlrD,KAAKorD,mBAAqB,IAAIj0B,OAC1B,KAAO6zB,EAAWxmD,KAAK,KAAO,IAC9B,KAEJxE,KAAKqrD,wBAA0B,IAAIl0B,OAC/B,KAAO4zB,EAAYvmD,KAAK,KAAO,IAC/B,IAER,CAEA,SAAS8mD,GAAWnf,EAAG31B,EAAGq1B,EAAGF,EAAGM,EAAGvN,EAAGxmB,GAGlC,IAAIkqC,EAYJ,OAVIjW,EAAI,KAAOA,GAAK,GAEhBiW,EAAO,IAAInqC,KAAKk0B,EAAI,IAAK31B,EAAGq1B,EAAGF,EAAGM,EAAGvN,EAAGxmB,GACpC4sB,SAASsd,EAAKuG,gBACdvG,EAAKmH,YAAYpd,IAGrBiW,EAAO,IAAInqC,KAAKk0B,EAAG31B,EAAGq1B,EAAGF,EAAGM,EAAGvN,EAAGxmB,GAG/BkqC,CACX,CAEA,SAASmJ,GAAcpf,GACnB,IAAIiW,EAAM92C,EAcV,OAZI6gC,EAAI,KAAOA,GAAK,IAChB7gC,EAAOxB,MAAMX,UAAUqH,MAAMnH,KAAK3E,YAE7B,GAAKynC,EAAI,IACdiW,EAAO,IAAInqC,KAAKA,KAAKuzC,IAAI94C,MAAM,KAAMpH,IACjCw5B,SAASsd,EAAKsG,mBACdtG,EAAKkH,eAAend,IAGxBiW,EAAO,IAAInqC,KAAKA,KAAKuzC,IAAI94C,MAAM,KAAMhO,YAGlC09C,CACX,CAGA,SAASqJ,GAAgB/H,EAAM5N,EAAKC,GAChC,IACI2V,EAAM,EAAI5V,EAAMC,EAIpB,QAFa,EAAIwV,GAAc7H,EAAM,EAAGgI,GAAKpD,YAAcxS,GAAO,EAElD4V,EAAM,CAC1B,CAGA,SAASC,GAAmBjI,EAAM7N,EAAMwM,EAASvM,EAAKC,GAClD,IAGI6V,EACAC,EAFA3H,EAAY,EAAI,GAAKrO,EAAO,IAFZ,EAAIwM,EAAUvM,GAAO,EACxB2V,GAAgB/H,EAAM5N,EAAKC,GAgB5C,OAXImO,GAAa,EAEb2H,EAAezE,GADfwE,EAAUlI,EAAO,GACoBQ,EAC9BA,EAAYkD,GAAW1D,IAC9BkI,EAAUlI,EAAO,EACjBmI,EAAe3H,EAAYkD,GAAW1D,KAEtCkI,EAAUlI,EACVmI,EAAe3H,GAGZ,CACHR,KAAMkI,EACN1H,UAAW2H,EAEnB,CAEA,SAASC,GAAWzS,EAAKvD,EAAKC,GAC1B,IAEIgW,EACAH,EAHAI,EAAaP,GAAgBpS,EAAIqK,OAAQ5N,EAAKC,GAC9CF,EAAO/lC,KAAK0hC,OAAO6H,EAAI6K,YAAc8H,EAAa,GAAK,GAAK,EAehE,OAXInW,EAAO,EAEPkW,EAAUlW,EAAOoW,GADjBL,EAAUvS,EAAIqK,OAAS,EACe5N,EAAKC,GACpCF,EAAOoW,GAAY5S,EAAIqK,OAAQ5N,EAAKC,IAC3CgW,EAAUlW,EAAOoW,GAAY5S,EAAIqK,OAAQ5N,EAAKC,GAC9C6V,EAAUvS,EAAIqK,OAAS,IAEvBkI,EAAUvS,EAAIqK,OACdqI,EAAUlW,GAGP,CACHA,KAAMkW,EACNrI,KAAMkI,EAEd,CAEA,SAASK,GAAYvI,EAAM5N,EAAKC,GAC5B,IAAIiW,EAAaP,GAAgB/H,EAAM5N,EAAKC,GACxCmW,EAAiBT,GAAgB/H,EAAO,EAAG5N,EAAKC,GACpD,OAAQqR,GAAW1D,GAAQsI,EAAaE,GAAkB,CAC9D,CAIAzK,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QACrCA,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,WAIrCgE,GAAc,IAAKb,EAAWW,IAC9BE,GAAc,KAAMb,EAAWJ,GAC/BiB,GAAc,IAAKb,EAAWW,IAC9BE,GAAc,KAAMb,EAAWJ,GAE/B+B,GACI,CAAC,IAAK,KAAM,IAAK,MACjB,SAAU38C,EAAOisC,EAAMqK,EAAQtT,GAC3BiJ,EAAKjJ,EAAM7K,OAAO,EAAG,IAAMmkB,GAAMt8C,EACrC,GA+GJ,SAASuiD,GAAcpwC,EAAIvK,GACvB,OAAOuK,EAAGvL,MAAMgB,EAAG,GAAGtH,OAAO6R,EAAGvL,MAAM,EAAGgB,GAC7C,CA3EAiwC,EAAe,IAAK,EAAG,KAAM,OAE7BA,EAAe,KAAM,EAAG,EAAG,SAAUppC,GACjC,OAAOrY,KAAKyvC,aAAa4E,YAAYr0C,KAAMqY,EAC/C,GAEAopC,EAAe,MAAO,EAAG,EAAG,SAAUppC,GAClC,OAAOrY,KAAKyvC,aAAa2E,cAAcp0C,KAAMqY,EACjD,GAEAopC,EAAe,OAAQ,EAAG,EAAG,SAAUppC,GACnC,OAAOrY,KAAKyvC,aAAa0E,SAASn0C,KAAMqY,EAC5C,GAEAopC,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,IAAK,EAAG,EAAG,cAI1BgE,GAAc,IAAKb,GACnBa,GAAc,IAAKb,GACnBa,GAAc,IAAKb,GACnBa,GAAc,KAAM,SAAUE,EAAU9c,GACpC,OAAOA,EAAOujB,iBAAiBzG,EACnC,GACAF,GAAc,MAAO,SAAUE,EAAU9c,GACrC,OAAOA,EAAOwjB,mBAAmB1G,EACrC,GACAF,GAAc,OAAQ,SAAUE,EAAU9c,GACtC,OAAOA,EAAOyjB,cAAc3G,EAChC,GAEAY,GAAkB,CAAC,KAAM,MAAO,QAAS,SAAU38C,EAAOisC,EAAMqK,EAAQtT,GACpE,IAAIyV,EAAUnC,EAAOF,QAAQ/H,cAAcruC,EAAOgjC,EAAOsT,EAAOrB,SAEjD,MAAXwD,EACAxM,EAAKhK,EAAIwW,EAET9E,EAAgB2C,GAAQtB,eAAiBh1C,CAEjD,GAEA28C,GAAkB,CAAC,IAAK,IAAK,KAAM,SAAU38C,EAAOisC,EAAMqK,EAAQtT,GAC9DiJ,EAAKjJ,GAASsZ,GAAMt8C,EACxB,GAiCA,IAAI2iD,GACI,2DAA2DvwD,MAAM,KACrEwwD,GAA6B,8BAA8BxwD,MAAM,KACjEywD,GAA2B,uBAAuBzwD,MAAM,KACxD0wD,GAAuBpH,GACvBqH,GAA4BrH,GAC5BsH,GAA0BtH,GAiC9B,SAASuH,GAAoBC,EAAaz0C,EAAQwsB,GAC9C,IAAIn1B,EACAw6C,EACA7Q,EACA8Q,EAAM2C,EAAY1C,oBACtB,IAAKpqD,KAAK+sD,eAKN,IAJA/sD,KAAK+sD,eAAiB,GACtB/sD,KAAKgtD,oBAAsB,GAC3BhtD,KAAKitD,kBAAoB,GAEpBv9C,EAAI,EAAGA,EAAI,IAAKA,EACjB2pC,EAAM+D,EAAU,CAAC,IAAM,IAAIlG,IAAIxnC,GAC/B1P,KAAKitD,kBAAkBv9C,GAAK1P,KAAKq0C,YAC7BgF,EACA,IACF+Q,oBACFpqD,KAAKgtD,oBAAoBt9C,GAAK1P,KAAKo0C,cAC/BiF,EACA,IACF+Q,oBACFpqD,KAAK+sD,eAAer9C,GAAK1P,KAAKm0C,SAASkF,EAAK,IAAI+Q,oBAIxD,OAAIvlB,EACe,SAAXxsB,GAEe,KADf6xC,EAAKtkD,GAAQyD,KAAKrJ,KAAK+sD,eAAgB5C,IACpBD,EAAK,KACN,QAAX7xC,GAEQ,KADf6xC,EAAKtkD,GAAQyD,KAAKrJ,KAAKgtD,oBAAqB7C,IACzBD,EAAK,MAGT,KADfA,EAAKtkD,GAAQyD,KAAKrJ,KAAKitD,kBAAmB9C,IACvBD,EAAK,KAGb,SAAX7xC,GAEY,KADZ6xC,EAAKtkD,GAAQyD,KAAKrJ,KAAK+sD,eAAgB5C,MAK3B,KADZD,EAAKtkD,GAAQyD,KAAKrJ,KAAKgtD,oBAAqB7C,MAK7B,KADfD,EAAKtkD,GAAQyD,KAAKrJ,KAAKitD,kBAAmB9C,IAN/BD,EAOa,KACN,QAAX7xC,GAEK,KADZ6xC,EAAKtkD,GAAQyD,KAAKrJ,KAAKgtD,oBAAqB7C,MAKhC,KADZD,EAAKtkD,GAAQyD,KAAKrJ,KAAK+sD,eAAgB5C,MAKxB,KADfD,EAAKtkD,GAAQyD,KAAKrJ,KAAKitD,kBAAmB9C,IAN/BD,EAOa,MAGZ,KADZA,EAAKtkD,GAAQyD,KAAKrJ,KAAKitD,kBAAmB9C,MAK9B,KADZD,EAAKtkD,GAAQyD,KAAKrJ,KAAK+sD,eAAgB5C,MAKxB,KADfD,EAAKtkD,GAAQyD,KAAKrJ,KAAKgtD,oBAAqB7C,IANjCD,EAOa,IAGpC,CA0KA,SAASgD,KACL,SAAStC,EAAUnrD,EAAGC,GAClB,OAAOA,EAAEkJ,OAASnJ,EAAEmJ,MACxB,CAEA,IAII8G,EACA2pC,EACA8T,EACAC,EACAC,EARAC,EAAY,GACZvC,EAAc,GACdC,EAAa,GACbC,EAAc,GAMlB,IAAKv7C,EAAI,EAAGA,EAAI,EAAGA,IAEf2pC,EAAM+D,EAAU,CAAC,IAAM,IAAIlG,IAAIxnC,GAC/By9C,EAAOtH,GAAY7lD,KAAKq0C,YAAYgF,EAAK,KACzC+T,EAASvH,GAAY7lD,KAAKo0C,cAAciF,EAAK,KAC7CgU,EAAQxH,GAAY7lD,KAAKm0C,SAASkF,EAAK,KACvCiU,EAAU3rD,KAAKwrD,GACfpC,EAAYppD,KAAKyrD,GACjBpC,EAAWrpD,KAAK0rD,GAChBpC,EAAYtpD,KAAKwrD,GACjBlC,EAAYtpD,KAAKyrD,GACjBnC,EAAYtpD,KAAK0rD,GAIrBC,EAAUv/B,KAAK68B,GACfG,EAAYh9B,KAAK68B,GACjBI,EAAWj9B,KAAK68B,GAChBK,EAAYl9B,KAAK68B,GAEjB5qD,KAAKutD,eAAiB,IAAIp2B,OAAO,KAAO8zB,EAAYzmD,KAAK,KAAO,IAAK,KACrExE,KAAKwtD,oBAAsBxtD,KAAKutD,eAChCvtD,KAAKytD,kBAAoBztD,KAAKutD,eAE9BvtD,KAAK0tD,qBAAuB,IAAIv2B,OAC5B,KAAO6zB,EAAWxmD,KAAK,KAAO,IAC9B,KAEJxE,KAAK2tD,0BAA4B,IAAIx2B,OACjC,KAAO4zB,EAAYvmD,KAAK,KAAO,IAC/B,KAEJxE,KAAK4tD,wBAA0B,IAAIz2B,OAC/B,KAAOm2B,EAAU9oD,KAAK,KAAO,IAC7B,IAER,CAIA,SAASqpD,KACL,OAAO7tD,KAAKgvC,QAAU,IAAM,EAChC,CAoCA,SAASwF,GAAS5H,EAAOkhB,GACrBrM,EAAe7U,EAAO,EAAG,EAAG,WACxB,OAAO5sC,KAAKyvC,aAAa+E,SACrBx0C,KAAKgvC,QACLhvC,KAAKivC,UACL6e,EAER,EACJ,CAOA,SAASC,GAAcpI,EAAU9c,GAC7B,OAAOA,EAAOmlB,cAClB,CA/CAvM,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,QAClCA,EAAe,IAAK,CAAC,KAAM,GAAI,EAAGoM,IAClCpM,EAAe,IAAK,CAAC,KAAM,GAAI,EAN/B,WACI,OAAOzhD,KAAKgvC,SAAW,EAC3B,GAMAyS,EAAe,MAAO,EAAG,EAAG,WACxB,MAAO,GAAKoM,GAAQn7C,MAAM1S,MAAQghD,EAAShhD,KAAKivC,UAAW,EAC/D,GAEAwS,EAAe,QAAS,EAAG,EAAG,WAC1B,MACI,GACAoM,GAAQn7C,MAAM1S,MACdghD,EAAShhD,KAAKivC,UAAW,GACzB+R,EAAShhD,KAAKkvC,UAAW,EAEjC,GAEAuS,EAAe,MAAO,EAAG,EAAG,WACxB,MAAO,GAAKzhD,KAAKgvC,QAAUgS,EAAShhD,KAAKivC,UAAW,EACxD,GAEAwS,EAAe,QAAS,EAAG,EAAG,WAC1B,MACI,GACAzhD,KAAKgvC,QACLgS,EAAShhD,KAAKivC,UAAW,GACzB+R,EAAShhD,KAAKkvC,UAAW,EAEjC,GAYAsF,GAAS,KAAK,GACdA,GAAS,KAAK,GAQdiR,GAAc,IAAKsI,IACnBtI,GAAc,IAAKsI,IACnBtI,GAAc,IAAKb,EAAWY,IAC9BC,GAAc,IAAKb,EAAWW,IAC9BE,GAAc,IAAKb,EAAWW,IAC9BE,GAAc,KAAMb,EAAWJ,GAC/BiB,GAAc,KAAMb,EAAWJ,GAC/BiB,GAAc,KAAMb,EAAWJ,GAE/BiB,GAAc,MAAOZ,GACrBY,GAAc,QAASX,GACvBW,GAAc,MAAOZ,GACrBY,GAAc,QAASX,GAEvBuB,GAAc,CAAC,IAAK,MAAOS,IAC3BT,GAAc,CAAC,IAAK,MAAO,SAAUz8C,EAAOmX,EAAOm/B,GAC/C,IAAI+N,EAAS/H,GAAMt8C,GACnBmX,EAAM+lC,IAAmB,KAAXmH,EAAgB,EAAIA,CACtC,GACA5H,GAAc,CAAC,IAAK,KAAM,SAAUz8C,EAAOmX,EAAOm/B,GAC9CA,EAAOgO,MAAQhO,EAAOF,QAAQzL,KAAK3qC,GACnCs2C,EAAOiO,UAAYvkD,CACvB,GACAy8C,GAAc,CAAC,IAAK,MAAO,SAAUz8C,EAAOmX,EAAOm/B,GAC/Cn/B,EAAM+lC,IAAQZ,GAAMt8C,GACpB2zC,EAAgB2C,GAAQpB,SAAU,CACtC,GACAuH,GAAc,MAAO,SAAUz8C,EAAOmX,EAAOm/B,GACzC,IAAIjvB,EAAMrnB,EAAMhB,OAAS,EACzBmY,EAAM+lC,IAAQZ,GAAMt8C,EAAMm4B,OAAO,EAAG9Q,IACpClQ,EAAMgmC,IAAUb,GAAMt8C,EAAMm4B,OAAO9Q,IACnCssB,EAAgB2C,GAAQpB,SAAU,CACtC,GACAuH,GAAc,QAAS,SAAUz8C,EAAOmX,EAAOm/B,GAC3C,IAAIkO,EAAOxkD,EAAMhB,OAAS,EACtBylD,EAAOzkD,EAAMhB,OAAS,EAC1BmY,EAAM+lC,IAAQZ,GAAMt8C,EAAMm4B,OAAO,EAAGqsB,IACpCrtC,EAAMgmC,IAAUb,GAAMt8C,EAAMm4B,OAAOqsB,EAAM,IACzCrtC,EAAMimC,IAAUd,GAAMt8C,EAAMm4B,OAAOssB,IACnC9Q,EAAgB2C,GAAQpB,SAAU,CACtC,GACAuH,GAAc,MAAO,SAAUz8C,EAAOmX,EAAOm/B,GACzC,IAAIjvB,EAAMrnB,EAAMhB,OAAS,EACzBmY,EAAM+lC,IAAQZ,GAAMt8C,EAAMm4B,OAAO,EAAG9Q,IACpClQ,EAAMgmC,IAAUb,GAAMt8C,EAAMm4B,OAAO9Q,GACvC,GACAo1B,GAAc,QAAS,SAAUz8C,EAAOmX,EAAOm/B,GAC3C,IAAIkO,EAAOxkD,EAAMhB,OAAS,EACtBylD,EAAOzkD,EAAMhB,OAAS,EAC1BmY,EAAM+lC,IAAQZ,GAAMt8C,EAAMm4B,OAAO,EAAGqsB,IACpCrtC,EAAMgmC,IAAUb,GAAMt8C,EAAMm4B,OAAOqsB,EAAM,IACzCrtC,EAAMimC,IAAUd,GAAMt8C,EAAMm4B,OAAOssB,GACvC,GAUA,IAKIC,GAAa/G,GAAW,SAAS,GAUrC,IAuBIgH,GAvBAC,GAAa,CACbvZ,SA1mDkB,CAClBC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAqmDVb,eA9+CwB,CACxBE,IAAK,YACLD,GAAI,SACJE,EAAG,aACHC,GAAI,eACJC,IAAK,sBACLC,KAAM,6BAy+CNyE,YA58CqB,eA68CrB7D,QAv8CiB,KAw8CjBD,uBAv8CgC,UAw8ChCH,aAl8CsB,CACtBC,OAAQ,QACRC,KAAM,SACNhX,EAAG,gBACH+M,GAAI,aACJj1B,EAAG,WACHk1B,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,SACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAo7CJyC,OAAQ8a,GACRzV,YAAa0V,GAEb/T,KAvkBoB,CACpBC,IAAK,EACLC,IAAK,GAukBL5B,SAAUoY,GACVlY,YAAaoY,GACbrY,cAAeoY,GAEflY,cAhC6B,iBAoC7Bma,GAAU,CAAC,EACXC,GAAiB,CAAC,EAGtB,SAASC,GAAaC,EAAMC,GACxB,IAAIn/C,EACAo/C,EAAOh/C,KAAKC,IAAI6+C,EAAKhmD,OAAQimD,EAAKjmD,QACtC,IAAK8G,EAAI,EAAGA,EAAIo/C,EAAMp/C,GAAK,EACvB,GAAIk/C,EAAKl/C,KAAOm/C,EAAKn/C,GACjB,OAAOA,EAGf,OAAOo/C,CACX,CAEA,SAASC,GAAgBj1C,GACrB,OAAOA,EAAMA,EAAIvD,cAAchB,QAAQ,IAAK,KAAOuE,CACvD,CA2CA,SAASk1C,GAAW3wD,GAChB,IAAI4wD,EAAY,KAGhB,QACsBxzD,IAAlBgzD,GAAQpwD,IAER+K,GACAA,EAAOvO,SAdf,SAA0BwD,GAGtB,SAAUA,IAAQA,EAAKmX,MAAM,eACjC,CAWQ05C,CAAiB7wD,GAEjB,IACI4wD,EAAYV,GAAaY,MAEzB,QAAe,KAAc9wD,GAC7B+wD,GAAmBH,EACvB,CAAE,MAAOjyB,GAGLyxB,GAAQpwD,GAAQ,IACpB,CAEJ,OAAOowD,GAAQpwD,EACnB,CAKA,SAAS+wD,GAAmBt1C,EAAKhV,GAC7B,IAAImP,EAqBJ,OApBI6F,KAEI7F,EADA+oC,EAAYl4C,GACLuqD,GAAUv1C,GAEVm6B,GAAan6B,EAAKhV,IAKzBypD,GAAet6C,EAEQ,oBAAZjJ,SAA2BA,QAAQmM,MAE1CnM,QAAQmM,KACJ,UAAY2C,EAAM,2CAM3By0C,GAAaY,KACxB,CAEA,SAASlb,GAAa51C,EAAM6hD,GACxB,GAAe,OAAXA,EAAiB,CACjB,IAAIrX,EACAgY,EAAe2N,GAEnB,GADAtO,EAAO/F,KAAO97C,EACO,MAAjBowD,GAAQpwD,GACRsiD,EACI,uBACA,2OAKJE,EAAe4N,GAAQpwD,GAAMixD,aAC1B,GAA2B,MAAvBpP,EAAOqP,aACd,GAAoC,MAAhCd,GAAQvO,EAAOqP,cACf1O,EAAe4N,GAAQvO,EAAOqP,cAAcD,YACzC,CAEH,GAAc,OADdzmB,EAASmmB,GAAW9O,EAAOqP,eAWvB,OAPKb,GAAexO,EAAOqP,gBACvBb,GAAexO,EAAOqP,cAAgB,IAE1Cb,GAAexO,EAAOqP,cAAc5tD,KAAK,CACrCtD,KAAMA,EACN6hD,OAAQA,IAEL,KATPW,EAAehY,EAAOymB,OAW9B,CAeJ,OAbAb,GAAQpwD,GAAQ,IAAI0iD,EAAOH,EAAaC,EAAcX,IAElDwO,GAAerwD,IACfqwD,GAAerwD,GAAM0S,QAAQ,SAAU04C,GACnCxV,GAAawV,EAAEprD,KAAMorD,EAAEvJ,OAC3B,GAMJkP,GAAmB/wD,GAEZowD,GAAQpwD,EACnB,CAGI,cADOowD,GAAQpwD,GACR,IAEf,CAgDA,SAASgxD,GAAUv1C,GACf,IAAI+uB,EAMJ,GAJI/uB,GAAOA,EAAIkmC,SAAWlmC,EAAIkmC,QAAQmP,QAClCr1C,EAAMA,EAAIkmC,QAAQmP,QAGjBr1C,EACD,OAAOy0C,GAGX,IAAKxkD,EAAQ+P,GAAM,CAGf,GADA+uB,EAASmmB,GAAWl1C,GAEhB,OAAO+uB,EAEX/uB,EAAM,CAACA,EACX,CAEA,OAnNJ,SAAsBza,GAOlB,IANA,IACIiY,EACAjH,EACAw4B,EACA7sC,EAJA0T,EAAI,EAMDA,EAAIrQ,EAAMuJ,QAAQ,CAKrB,IAHA0O,GADAtb,EAAQ+yD,GAAgB1vD,EAAMqQ,IAAI1T,MAAM,MAC9B4M,OAEVyH,GADAA,EAAO0+C,GAAgB1vD,EAAMqQ,EAAI,KACnBW,EAAKrU,MAAM,KAAO,KACzBsb,EAAI,GAAG,CAEV,GADAuxB,EAASmmB,GAAWhzD,EAAMwU,MAAM,EAAG8G,GAAG9S,KAAK,MAEvC,OAAOqkC,EAEX,GACIx4B,GACAA,EAAKzH,QAAU0O,GACfq3C,GAAa3yD,EAAOqU,IAASiH,EAAI,EAGjC,MAEJA,GACJ,CACA5H,GACJ,CACA,OAAO6+C,EACX,CAqLWiB,CAAa11C,EACxB,CAMA,SAAS21C,GAAcj5C,GACnB,IAAImnC,EACAl+C,EAAI+W,EAAE02B,GAuCV,OArCIztC,IAAsC,IAAjC89C,EAAgB/mC,GAAGmnC,WACxBA,EACIl+C,EAAEmnD,IAAS,GAAKnnD,EAAEmnD,IAAS,GACrBA,GACAnnD,EAAEonD,IAAQ,GAAKpnD,EAAEonD,IAAQ2C,GAAY/pD,EAAEknD,IAAOlnD,EAAEmnD,KAC9CC,GACApnD,EAAEqnD,IAAQ,GACRrnD,EAAEqnD,IAAQ,IACG,KAAZrnD,EAAEqnD,MACgB,IAAdrnD,EAAEsnD,KACe,IAAdtnD,EAAEunD,KACiB,IAAnBvnD,EAAEwnD,KACVH,GACArnD,EAAEsnD,IAAU,GAAKtnD,EAAEsnD,IAAU,GAC3BA,GACAtnD,EAAEunD,IAAU,GAAKvnD,EAAEunD,IAAU,GAC3BA,GACAvnD,EAAEwnD,IAAe,GAAKxnD,EAAEwnD,IAAe,IACrCA,IACC,EAGjB1J,EAAgB/mC,GAAGk5C,qBAClB/R,EAAWgJ,IAAQhJ,EAAWkJ,MAE/BlJ,EAAWkJ,IAEXtJ,EAAgB/mC,GAAGm5C,iBAAgC,IAAdhS,IACrCA,EAAWuJ,IAEX3J,EAAgB/mC,GAAGo5C,mBAAkC,IAAdjS,IACvCA,EAAWwJ,IAGf5J,EAAgB/mC,GAAGmnC,SAAWA,GAG3BnnC,CACX,CAIA,IAAIq5C,GACI,iJACJC,GACI,6IACJC,GAAU,wBACVC,GAAW,CACP,CAAC,eAAgB,uBACjB,CAAC,aAAc,mBACf,CAAC,eAAgB,kBACjB,CAAC,aAAc,eAAe,GAC9B,CAAC,WAAY,eACb,CAAC,UAAW,cAAc,GAC1B,CAAC,aAAc,cACf,CAAC,WAAY,SACb,CAAC,aAAc,eACf,CAAC,YAAa,eAAe,GAC7B,CAAC,UAAW,SACZ,CAAC,SAAU,SAAS,GACpB,CAAC,OAAQ,SAAS,IAGtBC,GAAW,CACP,CAAC,gBAAiB,uBAClB,CAAC,gBAAiB,sBAClB,CAAC,WAAY,kBACb,CAAC,QAAS,aACV,CAAC,cAAe,qBAChB,CAAC,cAAe,oBAChB,CAAC,SAAU,gBACX,CAAC,OAAQ,YACT,CAAC,KAAM,SAEXC,GAAkB,qBAElB7R,GACI,0LACJ8R,GAAa,CACTC,GAAI,EACJC,IAAK,EACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,KAIb,SAASC,GAAc5Q,GACnB,IAAIxwC,EACA/J,EAGAorD,EACAC,EACAC,EACAC,EALA7vC,EAAS6+B,EAAOR,GAChBlqC,EAAQq6C,GAAiB3rB,KAAK7iB,IAAWyuC,GAAc5rB,KAAK7iB,GAK5D8vC,EAAcnB,GAASpnD,OACvBwoD,EAAcnB,GAASrnD,OAE3B,GAAI4M,EAAO,CAEP,IADA+nC,EAAgB2C,GAAQhC,KAAM,EACzBxuC,EAAI,EAAG/J,EAAIwrD,EAAazhD,EAAI/J,EAAG+J,IAChC,GAAIsgD,GAAStgD,GAAG,GAAGw0B,KAAK1uB,EAAM,IAAK,CAC/Bw7C,EAAahB,GAAStgD,GAAG,GACzBqhD,GAA+B,IAAnBf,GAAStgD,GAAG,GACxB,KACJ,CAEJ,GAAkB,MAAdshD,EAEA,YADA9Q,EAAOlB,UAAW,GAGtB,GAAIxpC,EAAM,GAAI,CACV,IAAK9F,EAAI,EAAG/J,EAAIyrD,EAAa1hD,EAAI/J,EAAG+J,IAChC,GAAIugD,GAASvgD,GAAG,GAAGw0B,KAAK1uB,EAAM,IAAK,CAE/By7C,GAAcz7C,EAAM,IAAM,KAAOy6C,GAASvgD,GAAG,GAC7C,KACJ,CAEJ,GAAkB,MAAduhD,EAEA,YADA/Q,EAAOlB,UAAW,EAG1B,CACA,IAAK+R,GAA2B,MAAdE,EAEd,YADA/Q,EAAOlB,UAAW,GAGtB,GAAIxpC,EAAM,GAAI,CACV,IAAIu6C,GAAQ7rB,KAAK1uB,EAAM,IAInB,YADA0qC,EAAOlB,UAAW,GAFlBkS,EAAW,GAKnB,CACAhR,EAAOP,GAAKqR,GAAcC,GAAc,KAAOC,GAAY,IAC3DG,GAA0BnR,EAC9B,MACIA,EAAOlB,UAAW,CAE1B,CAyBA,SAASsS,GAAeC,GACpB,IAAI7N,EAAOtnD,SAASm1D,EAAS,IAC7B,OAAI7N,GAAQ,GACD,IAAOA,EACPA,GAAQ,IACR,KAAOA,EAEXA,CACX,CA4CA,SAAS8N,GAAkBtR,GACvB,IACIuR,EA5EJF,EACAG,EACAC,EACAC,EACAC,EACAC,EAEItyD,EAoEAgW,EAAQ6oC,GAAQna,KAAuBgc,EAAOR,GAxC7CnqC,QAAQ,qBAAsB,KAC9BA,QAAQ,WAAY,KACpBA,QAAQ,SAAU,IAClBA,QAAQ,SAAU,KAuCvB,GAAIC,EAAO,CASP,GAtFJ+7C,EA+EQ/7C,EAAM,GA9Edk8C,EA+EQl8C,EAAM,GA9Edm8C,EA+EQn8C,EAAM,GA9Edo8C,EA+EQp8C,EAAM,GA9Edq8C,EA+EQr8C,EAAM,GA9Eds8C,EA+EQt8C,EAAM,GA7EVhW,EAAS,CACT8xD,GAAeC,GACf3H,GAAyBhkD,QAAQ8rD,GACjCt1D,SAASu1D,EAAQ,IACjBv1D,SAASw1D,EAAS,IAClBx1D,SAASy1D,EAAW,KAGpBC,GACAtyD,EAAOmC,KAAKvF,SAAS01D,EAAW,KA8DhCL,EA3DGjyD,GAsBX,SAAsBuyD,EAAYC,EAAa9R,GAC3C,OAAI6R,GAEsBvF,GAA2B5mD,QAAQmsD,KACrC,IAAI95C,KAChB+5C,EAAY,GACZA,EAAY,GACZA,EAAY,IACdzJ,WAEFhL,EAAgB2C,GAAQ5B,iBAAkB,EAC1C4B,EAAOlB,UAAW,GACX,EAInB,CA6BaiT,CAAaz8C,EAAM,GAAIi8C,EAAavR,GACrC,OAGJA,EAAOhT,GAAKukB,EACZvR,EAAOL,KAhCf,SAAyBqS,EAAWC,EAAgBC,GAChD,GAAIF,EACA,OAAO/B,GAAW+B,GACf,GAAIC,EAEP,OAAO,EAEP,IAAIjW,EAAK9/C,SAASg2D,EAAW,IACzB57C,EAAI0lC,EAAK,IAEb,OADSA,EAAK1lC,GAAK,IACR,GAAKA,CAExB,CAoBsB67C,CAAgB78C,EAAM,GAAIA,EAAM,GAAIA,EAAM,KAExD0qC,EAAOxB,GAAK6M,GAAc74C,MAAM,KAAMwtC,EAAOhT,IAC7CgT,EAAOxB,GAAGsK,cAAc9I,EAAOxB,GAAGsJ,gBAAkB9H,EAAOL,MAE3DtC,EAAgB2C,GAAQ7B,SAAU,CACtC,MACI6B,EAAOlB,UAAW,CAE1B,CA0CA,SAAS7Q,GAAS1uC,EAAGC,EAAG0V,GACpB,OAAS,MAAL3V,EACOA,EAEF,MAALC,EACOA,EAEJ0V,CACX,CAmBA,SAASk9C,GAAgBpS,GACrB,IAAIxwC,EACA0yC,EAEAmQ,EACAC,EACAC,EAHA7oD,EAAQ,GAKZ,IAAIs2C,EAAOxB,GAAX,CAgCA,IA5BA6T,EA7BJ,SAA0BrS,GAEtB,IAAIwS,EAAW,IAAIz6C,KAAK2kC,EAAMrC,OAC9B,OAAI2F,EAAOyS,QACA,CACHD,EAAShK,iBACTgK,EAASlK,cACTkK,EAAStK,cAGV,CAACsK,EAAS/J,cAAe+J,EAASjK,WAAYiK,EAASrK,UAClE,CAkBkBuK,CAAiB1S,GAG3BA,EAAOsG,IAAyB,MAAnBtG,EAAOhT,GAAG2Z,KAAqC,MAApB3G,EAAOhT,GAAG0Z,KA0E1D,SAA+B1G,GAC3B,IAAInU,EAAGoY,EAAUtO,EAAMwM,EAASvM,EAAKC,EAAK1L,EAAMwoB,EAAiBC,EAGrD,OADZ/mB,EAAImU,EAAOsG,IACLpD,IAAqB,MAAPrX,EAAEwX,GAAoB,MAAPxX,EAAEuW,GACjCxM,EAAM,EACNC,EAAM,EAMNoO,EAAWhW,GACPpC,EAAEqX,GACFlD,EAAOhT,GAAGyZ,IACVmF,GAAWiH,KAAe,EAAG,GAAGrP,MAEpC7N,EAAO1H,GAASpC,EAAEwX,EAAG,KACrBlB,EAAUlU,GAASpC,EAAEuW,EAAG,IACV,GAAKD,EAAU,KACzBwQ,GAAkB,KAGtB/c,EAAMoK,EAAOF,QAAQgT,MAAMld,IAC3BC,EAAMmK,EAAOF,QAAQgT,MAAMjd,IAE3B+c,EAAUhH,GAAWiH,KAAejd,EAAKC,GAEzCoO,EAAWhW,GAASpC,EAAEkX,GAAI/C,EAAOhT,GAAGyZ,IAAOmM,EAAQpP,MAGnD7N,EAAO1H,GAASpC,EAAEA,EAAG+mB,EAAQjd,MAElB,MAAP9J,EAAEF,IAEFwW,EAAUtW,EAAEF,GACE,GAAKwW,EAAU,KACzBwQ,GAAkB,GAER,MAAP9mB,EAAE/O,GAETqlB,EAAUtW,EAAE/O,EAAI8Y,GACZ/J,EAAE/O,EAAI,GAAK+O,EAAE/O,EAAI,KACjB61B,GAAkB,IAItBxQ,EAAUvM,GAGdD,EAAO,GAAKA,EAAOoW,GAAY9H,EAAUrO,EAAKC,GAC9CwH,EAAgB2C,GAAQyP,gBAAiB,EACf,MAAnBkD,EACPtV,EAAgB2C,GAAQ0P,kBAAmB,GAE3CvlB,EAAOshB,GAAmBxH,EAAUtO,EAAMwM,EAASvM,EAAKC,GACxDmK,EAAOhT,GAAGyZ,IAAQtc,EAAKqZ,KACvBxD,EAAO+S,WAAa5oB,EAAK6Z,UAEjC,CApIQgP,CAAsBhT,GAID,MAArBA,EAAO+S,aACPR,EAAYtkB,GAAS+R,EAAOhT,GAAGyZ,IAAO4L,EAAY5L,MAG9CzG,EAAO+S,WAAa7L,GAAWqL,IACT,IAAtBvS,EAAO+S,cAEP1V,EAAgB2C,GAAQwP,oBAAqB,GAGjDtN,EAAOmJ,GAAckH,EAAW,EAAGvS,EAAO+S,YAC1C/S,EAAOhT,GAAG0Z,IAASxE,EAAKoG,cACxBtI,EAAOhT,GAAG2Z,IAAQzE,EAAKgG,cAQtB14C,EAAI,EAAGA,EAAI,GAAqB,MAAhBwwC,EAAOhT,GAAGx9B,KAAcA,EACzCwwC,EAAOhT,GAAGx9B,GAAK9F,EAAM8F,GAAK6iD,EAAY7iD,GAI1C,KAAOA,EAAI,EAAGA,IACVwwC,EAAOhT,GAAGx9B,GAAK9F,EAAM8F,GACD,MAAhBwwC,EAAOhT,GAAGx9B,GAAoB,IAANA,EAAU,EAAI,EAAKwwC,EAAOhT,GAAGx9B,GAKrC,KAApBwwC,EAAOhT,GAAG4Z,KACY,IAAtB5G,EAAOhT,GAAG6Z,KACY,IAAtB7G,EAAOhT,GAAG8Z,KACiB,IAA3B9G,EAAOhT,GAAG+Z,MAEV/G,EAAOiT,UAAW,EAClBjT,EAAOhT,GAAG4Z,IAAQ,GAGtB5G,EAAOxB,IAAMwB,EAAOyS,QAAUpH,GAAgBD,IAAY54C,MACtD,KACA9I,GAEJ4oD,EAAkBtS,EAAOyS,QACnBzS,EAAOxB,GAAG4J,YACVpI,EAAOxB,GAAG6J,SAIG,MAAfrI,EAAOL,MACPK,EAAOxB,GAAGsK,cAAc9I,EAAOxB,GAAGsJ,gBAAkB9H,EAAOL,MAG3DK,EAAOiT,WACPjT,EAAOhT,GAAG4Z,IAAQ,IAKlB5G,EAAOsG,SACgB,IAAhBtG,EAAOsG,GAAG3a,GACjBqU,EAAOsG,GAAG3a,IAAM2mB,IAEhBjV,EAAgB2C,GAAQ5B,iBAAkB,EA3E9C,CA6EJ,CAsEA,SAAS+S,GAA0BnR,GAE/B,GAAIA,EAAOP,KAAO/C,EAAMwW,SAIxB,GAAIlT,EAAOP,KAAO/C,EAAMyW,SAAxB,CAIAnT,EAAOhT,GAAK,GACZqQ,EAAgB2C,GAAQvwB,OAAQ,EAGhC,IACIjgB,EACAsiD,EACAhhB,EACApE,EACA0mB,EAGAlV,EACAkI,EATAjlC,EAAS,GAAK6+B,EAAOR,GAMrB6T,EAAelyC,EAAOzY,OACtB4qD,EAAyB,EAO7B,IADAlN,GAFAtV,EACI6Q,EAAa3B,EAAOP,GAAIO,EAAOF,SAASxqC,MAAM6rC,IAAqB,IACrDz4C,OACb8G,EAAI,EAAGA,EAAI42C,EAAU52C,IACtBk9B,EAAQoE,EAAOthC,IACfsiD,GAAe3wC,EAAO7L,MAAMowC,GAAsBhZ,EAAOsT,KACrD,IAAI,OAEJoT,EAAUjyC,EAAO0gB,OAAO,EAAG1gB,EAAOzb,QAAQosD,KAC9BppD,OAAS,GACjB20C,EAAgB2C,GAAQxC,YAAY/7C,KAAK2xD,GAE7CjyC,EAASA,EAAO7Q,MACZ6Q,EAAOzb,QAAQosD,GAAeA,EAAYppD,QAE9C4qD,GAA0BxB,EAAYppD,QAGtC44C,EAAqB5U,IACjBolB,EACAzU,EAAgB2C,GAAQvwB,OAAQ,EAEhC4tB,EAAgB2C,GAAQzC,aAAa97C,KAAKirC,GAE9C6Z,GAAwB7Z,EAAOolB,EAAa9R,IACrCA,EAAOrB,UAAYmT,GAC1BzU,EAAgB2C,GAAQzC,aAAa97C,KAAKirC,GAKlD2Q,EAAgB2C,GAAQtC,cACpB2V,EAAeC,EACfnyC,EAAOzY,OAAS,GAChB20C,EAAgB2C,GAAQxC,YAAY/7C,KAAK0f,GAKzC6+B,EAAOhT,GAAG4Z,KAAS,KACiB,IAApCvJ,EAAgB2C,GAAQpB,SACxBoB,EAAOhT,GAAG4Z,IAAQ,IAElBvJ,EAAgB2C,GAAQpB,aAAUrjD,GAGtC8hD,EAAgB2C,GAAQ/B,gBAAkB+B,EAAOhT,GAAG18B,MAAM,GAC1D+sC,EAAgB2C,GAAQ1L,SAAW0L,EAAOiO,UAE1CjO,EAAOhT,GAAG4Z,IAgBd,SAAyBje,EAAQ0N,EAAM/B,GACnC,IAAIif,EAEJ,OAAgB,MAAZjf,EAEO+B,EAEgB,MAAvB1N,EAAOyO,aACAzO,EAAOyO,aAAaf,EAAM/B,GACX,MAAf3L,EAAO0L,OAEdkf,EAAO5qB,EAAO0L,KAAKC,KACP+B,EAAO,KACfA,GAAQ,IAEPkd,GAAiB,KAATld,IACTA,EAAO,GAEJA,GAGAA,CAEf,CAvCsBmd,CACdxT,EAAOF,QACPE,EAAOhT,GAAG4Z,IACV5G,EAAOiO,WAKC,QADZ/P,EAAMb,EAAgB2C,GAAQ9B,OAE1B8B,EAAOhT,GAAGyZ,IAAQzG,EAAOF,QAAQ2T,gBAAgBvV,EAAK8B,EAAOhT,GAAGyZ,MAGpE2L,GAAgBpS,GAChBuP,GAAcvP,EA9Ed,MAFIsR,GAAkBtR,QAJlB4Q,GAAc5Q,EAqFtB,CAqHA,SAAS0T,GAAc1T,GACnB,IAAIt2C,EAAQs2C,EAAOR,GACfrnC,EAAS6nC,EAAOP,GAIpB,OAFAO,EAAOF,QAAUE,EAAOF,SAAWqP,GAAUnP,EAAON,IAEtC,OAAVh2C,QAA8BnO,IAAX4c,GAAkC,KAAVzO,EACpCq1C,EAAc,CAAEpB,WAAW,KAGjB,iBAAVj0C,IACPs2C,EAAOR,GAAK91C,EAAQs2C,EAAOF,QAAQrJ,SAAS/sC,IAG5Cw2C,EAASx2C,GACF,IAAIq2C,EAAOwP,GAAc7lD,KACzBqzC,EAAOrzC,GACds2C,EAAOxB,GAAK90C,EACLG,EAAQsO,GA3GvB,SAAkC6nC,GAC9B,IAAI2T,EACAC,EACAC,EACArkD,EACAskD,EACAC,EACAC,GAAoB,EACpBC,EAAajU,EAAOP,GAAG/2C,OAE3B,GAAmB,IAAfurD,EAGA,OAFA5W,EAAgB2C,GAAQlC,eAAgB,OACxCkC,EAAOxB,GAAK,IAAIzmC,KAAKinC,MAIzB,IAAKxvC,EAAI,EAAGA,EAAIykD,EAAYzkD,IACxBskD,EAAe,EACfC,GAAmB,EACnBJ,EAAatU,EAAW,CAAC,EAAGW,GACN,MAAlBA,EAAOyS,UACPkB,EAAWlB,QAAUzS,EAAOyS,SAEhCkB,EAAWlU,GAAKO,EAAOP,GAAGjwC,GAC1B2hD,GAA0BwC,GAEtBvlB,EAAQulB,KACRI,GAAmB,GAIvBD,GAAgBzW,EAAgBsW,GAAYjW,cAG5CoW,GAAkE,GAAlDzW,EAAgBsW,GAAYpW,aAAa70C,OAEzD20C,EAAgBsW,GAAYO,MAAQJ,EAE/BE,EAaGF,EAAeD,IACfA,EAAcC,EACdF,EAAaD,IAbE,MAAfE,GACAC,EAAeD,GACfE,KAEAF,EAAcC,EACdF,EAAaD,EACTI,IACAC,GAAoB,IAWpCz7C,EAAOynC,EAAQ4T,GAAcD,EACjC,CAiDQQ,CAAyBnU,GAClB7nC,EACPg5C,GAA0BnR,GAYlC,SAAyBA,GACrB,IAAIt2C,EAAQs2C,EAAOR,GACf1C,EAAYpzC,GACZs2C,EAAOxB,GAAK,IAAIzmC,KAAK2kC,EAAMrC,OACpB0C,EAAOrzC,GACds2C,EAAOxB,GAAK,IAAIzmC,KAAKrO,EAAMuzC,WACH,iBAAVvzC,EAndtB,SAA0Bs2C,GACtB,IAAI5Z,EAAU4pB,GAAgBhsB,KAAKgc,EAAOR,IAC1B,OAAZpZ,GAKJwqB,GAAc5Q,IACU,IAApBA,EAAOlB,kBACAkB,EAAOlB,SAKlBwS,GAAkBtR,IACM,IAApBA,EAAOlB,kBACAkB,EAAOlB,SAKdkB,EAAOrB,QACPqB,EAAOlB,UAAW,EAGlBpC,EAAM0X,wBAAwBpU,MAtB9BA,EAAOxB,GAAK,IAAIzmC,MAAMquB,EAAQ,GAwBtC,CAybQiuB,CAAiBrU,GACVn2C,EAAQH,IACfs2C,EAAOhT,GAAK/uC,EAAIyL,EAAM4G,MAAM,GAAI,SAAU0K,GACtC,OAAO9e,SAAS8e,EAAK,GACzB,GACAo3C,GAAgBpS,IACTptB,EAASlpB,GA1ExB,SAA0Bs2C,GACtB,IAAIA,EAAOxB,GAAX,CAIA,IAAIhvC,EAAIk0C,EAAqB1D,EAAOR,IAChC8U,OAAsB/4D,IAAViU,EAAEwnC,IAAoBxnC,EAAE0yC,KAAO1yC,EAAEwnC,IACjDgJ,EAAOhT,GAAK/uC,EACR,CAACuR,EAAEg0C,KAAMh0C,EAAEwpC,MAAOsb,EAAW9kD,EAAE6mC,KAAM7mC,EAAE8mC,OAAQ9mC,EAAEszC,OAAQtzC,EAAEkzC,aAC3D,SAAU1nC,GACN,OAAOA,GAAO9e,SAAS8e,EAAK,GAChC,GAGJo3C,GAAgBpS,EAXhB,CAYJ,CA4DQuU,CAAiBvU,GACVltB,EAASppB,GAEhBs2C,EAAOxB,GAAK,IAAIzmC,KAAKrO,GAErBgzC,EAAM0X,wBAAwBpU,EAEtC,CA/BQwU,CAAgBxU,GAGf5R,EAAQ4R,KACTA,EAAOxB,GAAK,MAGTwB,GACX,CAyBA,SAAS7C,GAAiBzzC,EAAOyO,EAAQwwB,EAAQhE,EAAQ8iB,GACrD,IAnEIz3B,EAmEA9a,EAAI,CAAC,EA2BT,OAzBe,IAAXiD,IAA8B,IAAXA,IACnBwsB,EAASxsB,EACTA,OAAS5c,IAGE,IAAXotC,IAA8B,IAAXA,IACnBhE,EAASgE,EACTA,OAASptC,IAIRq3B,EAASlpB,IAAUkzC,EAAclzC,IACjCG,EAAQH,IAA2B,IAAjBA,EAAMhB,UAEzBgB,OAAQnO,GAIZ2Z,EAAEqqC,kBAAmB,EACrBrqC,EAAEu9C,QAAUv9C,EAAE0qC,OAAS6H,EACvBvyC,EAAEwqC,GAAK/W,EACPzzB,EAAEsqC,GAAK91C,EACPwL,EAAEuqC,GAAKtnC,EACPjD,EAAEypC,QAAUha,GA5FR3U,EAAM,IAAI+vB,EAAOwP,GAAcmE,GA8FXx+C,MA7FhB+9C,WAEJjjC,EAAIrrB,IAAI,EAAG,KACXqrB,EAAIijC,cAAW13D,GAGZy0B,CAwFX,CAEA,SAAS6iC,GAAYnpD,EAAOyO,EAAQwwB,EAAQhE,GACxC,OAAOwY,GAAiBzzC,EAAOyO,EAAQwwB,EAAQhE,GAAQ,EAC3D,CAxeA+X,EAAM0X,wBAA0Bx5C,EAC5B,gSAGA,SAAUolC,GACNA,EAAOxB,GAAK,IAAIzmC,KAAKioC,EAAOR,IAAMQ,EAAOyS,QAAU,OAAS,IAChE,GAsLJ/V,EAAMwW,SAAW,WAAa,EAG9BxW,EAAMyW,SAAW,WAAa,EA2S9B,IAAIsB,GAAe75C,EACX,qGACA,WACI,IAAI85C,EAAQ7B,GAAYrgD,MAAM,KAAMhO,WACpC,OAAI1E,KAAKsuC,WAAasmB,EAAMtmB,UACjBsmB,EAAQ50D,KAAOA,KAAO40D,EAEtB3V,GAEf,GAEJ4V,GAAe/5C,EACX,qGACA,WACI,IAAI85C,EAAQ7B,GAAYrgD,MAAM,KAAMhO,WACpC,OAAI1E,KAAKsuC,WAAasmB,EAAMtmB,UACjBsmB,EAAQ50D,KAAOA,KAAO40D,EAEtB3V,GAEf,GAQR,SAAS6V,GAAO9tD,EAAI+tD,GAChB,IAAI7kC,EAAKxgB,EAIT,GAHuB,IAAnBqlD,EAAQnsD,QAAgBmB,EAAQgrD,EAAQ,MACxCA,EAAUA,EAAQ,KAEjBA,EAAQnsD,OACT,OAAOmqD,KAGX,IADA7iC,EAAM6kC,EAAQ,GACTrlD,EAAI,EAAGA,EAAIqlD,EAAQnsD,SAAU8G,EACzBqlD,EAAQrlD,GAAG4+B,YAAaymB,EAAQrlD,GAAG1I,GAAIkpB,KACxCA,EAAM6kC,EAAQrlD,IAGtB,OAAOwgB,CACX,CAeA,IAII8kC,GAAW,CACX,OACA,UACA,QACA,OACA,MACA,OACA,SACA,SACA,eA0CJ,SAASC,GAASxmB,GACd,IAAIsV,EAAkBH,EAAqBnV,GACvCG,EAAQmV,EAAgBL,MAAQ,EAChCZ,EAAWiB,EAAgBhB,SAAW,EACtClU,EAASkV,EAAgB7K,OAAS,EAClCpK,EAAQiV,EAAgBlO,MAAQkO,EAAgBM,SAAW,EAC3DtV,EAAOgV,EAAgB7M,KAAO,EAC9BlI,EAAQ+U,EAAgBxN,MAAQ,EAChCtH,EAAU8U,EAAgBvN,QAAU,EACpCtH,EAAU6U,EAAgBf,QAAU,EACpC7T,EAAe4U,EAAgBnB,aAAe,EAElD5iD,KAAKg/C,SAnDT,SAAyBxoC,GACrB,IAAIsD,EAEApK,EADAwlD,GAAiB,EAEjBC,EAAWH,GAASpsD,OACxB,IAAKkR,KAAOtD,EACR,GACIqmC,EAAWrmC,EAAGsD,MAEuB,IAAjClU,GAAQyD,KAAK2rD,GAAUl7C,IACZ,MAAVtD,EAAEsD,IAAiBghC,MAAMtkC,EAAEsD,KAGhC,OAAO,EAIf,IAAKpK,EAAI,EAAGA,EAAIylD,IAAYzlD,EACxB,GAAI8G,EAAEw+C,GAAStlD,IAAK,CAChB,GAAIwlD,EACA,OAAO,EAEP/qB,WAAW3zB,EAAEw+C,GAAStlD,OAASw2C,GAAM1vC,EAAEw+C,GAAStlD,OAChDwlD,GAAiB,EAEzB,CAGJ,OAAO,CACX,CAsBoBE,CAAgBrR,GAGhC/jD,KAAKq1D,eACAlmB,EACS,IAAVD,EACU,IAAVD,EACQ,IAARD,EAAe,GAAK,GAGxBhvC,KAAKs1D,OAASvmB,EAAe,EAARD,EAIrB9uC,KAAKu1D,SAAW1mB,EAAoB,EAAXiU,EAAuB,GAARlU,EAExC5uC,KAAKwzC,MAAQ,CAAC,EAEdxzC,KAAKggD,QAAUqP,KAEfrvD,KAAKw1D,SACT,CAEA,SAASC,GAAWv6C,GAChB,OAAOA,aAAe+5C,EAC1B,CAEA,SAASS,GAASxsB,GACd,OAAIA,EAAS,GACyB,EAA3Bp5B,KAAK8hC,OAAO,EAAI1I,GAEhBp5B,KAAK8hC,MAAM1I,EAE1B,CAqBA,SAASvX,GAAOib,EAAOjtC,GACnB8hD,EAAe7U,EAAO,EAAG,EAAG,WACxB,IAAIjb,EAAS3xB,KAAK21D,YACdC,EAAO,IAKX,OAJIjkC,EAAS,IACTA,GAAUA,EACVikC,EAAO,KAGPA,EACA5U,KAAYrvB,EAAS,IAAK,GAC1BhyB,EACAqhD,IAAWrvB,EAAS,GAAI,EAEhC,EACJ,CAEAA,GAAO,IAAK,KACZA,GAAO,KAAM,IAIb8zB,GAAc,IAAKJ,IACnBI,GAAc,KAAMJ,IACpBgB,GAAc,CAAC,IAAK,MAAO,SAAUz8C,EAAOmX,EAAOm/B,GAC/CA,EAAOyS,SAAU,EACjBzS,EAAOL,KAAOgW,GAAiBxQ,GAAkBz7C,EACrD,GAOA,IAAIksD,GAAc,kBAElB,SAASD,GAAiBzwC,EAAS/D,GAC/B,IAEIyH,EACAmmB,EAHAzI,GAAWnlB,GAAU,IAAI7L,MAAM4P,GAKnC,OAAgB,OAAZohB,EACO,KAOQ,KAFnByI,EAAuB,IADvBnmB,IADQ0d,EAAQA,EAAQ59B,OAAS,IAAM,IACtB,IAAI4M,MAAMsgD,KAAgB,CAAC,IAAK,EAAG,IAClC,GAAW5P,GAAMp9B,EAAM,KAElB,EAAiB,MAAbA,EAAM,GAAammB,GAAWA,CAC7D,CAGA,SAAS8mB,GAAgBnsD,EAAOosD,GAC5B,IAAI9lC,EAAK/a,EACT,OAAI6gD,EAAMlW,QACN5vB,EAAM8lC,EAAMC,QACZ9gD,GACKirC,EAASx2C,IAAUqzC,EAAOrzC,GACrBA,EAAMuzC,UACN4V,GAAYnpD,GAAOuzC,WAAajtB,EAAIitB,UAE9CjtB,EAAIwuB,GAAGwX,QAAQhmC,EAAIwuB,GAAGvB,UAAYhoC,GAClCynC,EAAMuD,aAAajwB,GAAK,GACjBA,GAEA6iC,GAAYnpD,GAAOusD,OAElC,CAEA,SAASC,GAAc5/C,GAGnB,OAAQ1G,KAAK8hC,MAAMp7B,EAAEkoC,GAAG2X,oBAC5B,CAyJA,SAASC,KACL,QAAOt2D,KAAKsuC,WAAYtuC,KAAK8/C,QAA2B,IAAjB9/C,KAAK+/C,OAChD,CArJAnD,EAAMuD,aAAe,WAAa,EAwJlC,IAAIoW,GAAc,wDAIdC,GACI,sKAER,SAASC,GAAe7sD,EAAOkQ,GAC3B,IAGI87C,EACAt3B,EACAo4B,EA4FmBlzD,EAAMoxD,EACzB1kC,EAlGAue,EAAW7kC,EAEX4L,EAAQ,KAkEZ,OA7DIigD,GAAW7rD,GACX6kC,EAAW,CACPv2B,GAAItO,EAAMyrD,cACVxpB,EAAGjiC,EAAM0rD,MACTrpB,EAAGriC,EAAM2rD,SAENviC,EAASppB,KAAWkxC,OAAOlxC,IAClC6kC,EAAW,CAAC,EACR30B,EACA20B,EAAS30B,IAAQlQ,EAEjB6kC,EAASU,cAAgBvlC,IAErB4L,EAAQ+gD,GAAYryB,KAAKt6B,KACjCgsD,EAAoB,MAAbpgD,EAAM,IAAc,EAAI,EAC/Bi5B,EAAW,CACPtC,EAAG,EACHN,EAAGqa,GAAM1wC,EAAMqxC,KAAS+O,EACxBjqB,EAAGua,GAAM1wC,EAAMsxC,KAAS8O,EACxBp/C,EAAG0vC,GAAM1wC,EAAMuxC,KAAW6O,EAC1Bl3B,EAAGwnB,GAAM1wC,EAAMwxC,KAAW4O,EAC1B19C,GAAIguC,GAAMwP,GAA8B,IAArBlgD,EAAMyxC,MAAwB2O,KAE7CpgD,EAAQghD,GAAStyB,KAAKt6B,KAC9BgsD,EAAoB,MAAbpgD,EAAM,IAAc,EAAI,EAC/Bi5B,EAAW,CACPtC,EAAGwqB,GAASnhD,EAAM,GAAIogD,GACtB3pB,EAAG0qB,GAASnhD,EAAM,GAAIogD,GACtB7pB,EAAG4qB,GAASnhD,EAAM,GAAIogD,GACtB/pB,EAAG8qB,GAASnhD,EAAM,GAAIogD,GACtBjqB,EAAGgrB,GAASnhD,EAAM,GAAIogD,GACtBp/C,EAAGmgD,GAASnhD,EAAM,GAAIogD,GACtBl3B,EAAGi4B,GAASnhD,EAAM,GAAIogD,KAEP,MAAZnnB,EAEPA,EAAW,CAAC,EAEQ,iBAAbA,IACN,SAAUA,GAAY,OAAQA,KAmDZjrC,EAhDfuvD,GAAYtkB,EAASt8B,MAgDAyiD,EA/CrB7B,GAAYtkB,EAASv7B,IAFzBwjD,EAmDElzD,EAAK8qC,WAAasmB,EAAMtmB,WAI9BsmB,EAAQmB,GAAgBnB,EAAOpxD,GAC3BA,EAAKozD,SAAShC,GACd1kC,EAAM2mC,GAA0BrzD,EAAMoxD,KAEtC1kC,EAAM2mC,GAA0BjC,EAAOpxD,IACnC2rC,cAAgBjf,EAAIif,aACxBjf,EAAI2e,QAAU3e,EAAI2e,QAGf3e,GAZI,CAAEif,aAAc,EAAGN,OAAQ,IA/ClCJ,EAAW,CAAC,GACHv2B,GAAKw+C,EAAQvnB,aACtBV,EAASxC,EAAIyqB,EAAQ7nB,QAGzBvQ,EAAM,IAAI22B,GAASxmB,GAEfgnB,GAAW7rD,IAAUizC,EAAWjzC,EAAO,aACvC00B,EAAI0hB,QAAUp2C,EAAMo2C,SAGpByV,GAAW7rD,IAAUizC,EAAWjzC,EAAO,cACvC00B,EAAI0gB,SAAWp1C,EAAMo1C,UAGlB1gB,CACX,CAKA,SAASq4B,GAASG,EAAKlB,GAInB,IAAI1lC,EAAM4mC,GAAO3sB,WAAW2sB,EAAIvhD,QAAQ,IAAK,MAE7C,OAAQulC,MAAM5qB,GAAO,EAAIA,GAAO0lC,CACpC,CAEA,SAASiB,GAA0BrzD,EAAMoxD,GACrC,IAAI1kC,EAAM,CAAC,EAUX,OARAA,EAAI2e,OACA+lB,EAAM1b,QAAU11C,EAAK01C,QAAyC,IAA9B0b,EAAMlR,OAASlgD,EAAKkgD,QACpDlgD,EAAKyyD,QAAQpxD,IAAIqrB,EAAI2e,OAAQ,KAAKkoB,QAAQnC,MACxC1kC,EAAI2e,OAGV3e,EAAIif,cAAgBylB,GAASpxD,EAAKyyD,QAAQpxD,IAAIqrB,EAAI2e,OAAQ,KAEnD3e,CACX,CAqBA,SAAS8mC,GAAYC,EAAW54D,GAC5B,OAAO,SAAUka,EAAK4+B,GAClB,IAASxkC,EAmBT,OAjBe,OAAXwkC,GAAoB2D,OAAO3D,KAC3BwJ,EACItiD,EACA,YACIA,EACA,uDACAA,EAHJ,kGAOJsU,EAAM4F,EACNA,EAAM4+B,EACNA,EAASxkC,GAIbukD,GAAYl3D,KADNy2D,GAAel+C,EAAK4+B,GACH8f,GAChBj3D,IACX,CACJ,CAEA,SAASk3D,GAAY7d,EAAK5K,EAAU0oB,EAAUhX,GAC1C,IAAIhR,EAAeV,EAAS4mB,cACxBtmB,EAAO2mB,GAASjnB,EAAS6mB,OACzBzmB,EAAS6mB,GAASjnB,EAAS8mB,SAE1Blc,EAAI/K,YAKT6R,EAA+B,MAAhBA,GAA8BA,EAEzCtR,GACA2b,GAASnR,EAAKzgC,GAAIygC,EAAK,SAAWxK,EAASsoB,GAE3CpoB,GACA2Y,GAAMrO,EAAK,OAAQzgC,GAAIygC,EAAK,QAAUtK,EAAOooB,GAE7ChoB,GACAkK,EAAIqF,GAAGwX,QAAQ7c,EAAIqF,GAAGvB,UAAYhO,EAAegoB,GAEjDhX,GACAvD,EAAMuD,aAAa9G,EAAKtK,GAAQF,GAExC,CA9FA4nB,GAAezvD,GAAKiuD,GAAS9rD,UAC7BstD,GAAe9rD,QA/Xf,WACI,OAAO8rD,GAAevX,IAC1B,EA4dA,IAAIr6C,GAAMmyD,GAAY,EAAG,OACrBvlB,GAAWulB,IAAa,EAAG,YAE/B,SAAS11C,GAAS1X,GACd,MAAwB,iBAAVA,GAAsBA,aAAiB0pB,MACzD,CAGA,SAAS8jC,GAAcxtD,GACnB,OACIw2C,EAASx2C,IACTqzC,EAAOrzC,IACP0X,GAAS1X,IACTopB,EAASppB,IAiDjB,SAA+BA,GAC3B,IAAIytD,EAAYttD,EAAQH,GACpB0tD,GAAe,EAOnB,OANID,IACAC,EAGkB,IAFd1tD,EAAMtF,OAAO,SAAUX,GACnB,OAAQqvB,EAASrvB,IAAS2d,GAAS1X,EACvC,GAAGhB,QAEJyuD,GAAaC,CACxB,CA1DQC,CAAsB3tD,IAO9B,SAA6BA,GACzB,IA4BI8F,EACAkqB,EA7BA49B,EAAa1kC,EAASlpB,KAAWkzC,EAAclzC,GAC/C6tD,GAAe,EACfx+B,EAAa,CACT,QACA,OACA,IACA,SACA,QACA,IACA,OACA,MACA,IACA,QACA,OACA,IACA,QACA,OACA,IACA,UACA,SACA,IACA,UACA,SACA,IACA,eACA,cACA,MAIJy+B,EAAcz+B,EAAWrwB,OAE7B,IAAK8G,EAAI,EAAGA,EAAIgoD,EAAahoD,GAAK,EAC9BkqB,EAAWX,EAAWvpB,GACtB+nD,EAAeA,GAAgB5a,EAAWjzC,EAAOgwB,GAGrD,OAAO49B,GAAcC,CACzB,CA7CQE,CAAoB/tD,IANjB,MAOHA,CAGR,CAsPA,SAASguD,GAAUn4D,EAAGC,GAClB,GAAID,EAAE2iD,OAAS1iD,EAAE0iD,OAGb,OAAQwV,GAAUl4D,EAAGD,GAGzB,IAAIo4D,EAAyC,IAAvBn4D,EAAEgkD,OAASjkD,EAAEikD,SAAgBhkD,EAAEw5C,QAAUz5C,EAAEy5C,SAE7D4e,EAASr4D,EAAEw2D,QAAQpxD,IAAIgzD,EAAgB,UAe3C,QAASA,GAXLn4D,EAAIo4D,EAAS,GAGHp4D,EAAIo4D,IAAWA,EAFfr4D,EAAEw2D,QAAQpxD,IAAIgzD,EAAiB,EAAG,YAMlCn4D,EAAIo4D,IAFJr4D,EAAEw2D,QAAQpxD,IAAIgzD,EAAiB,EAAG,UAETC,MAIF,CACzC,CAkHA,SAASjvB,GAAO/uB,GACZ,IAAIi+C,EAEJ,YAAYt8D,IAARqe,EACO9Z,KAAKggD,QAAQmP,OAGC,OADrB4I,EAAgB1I,GAAUv1C,MAEtB9Z,KAAKggD,QAAU+X,GAEZ/3D,KAEf,CA5HA48C,EAAMob,cAAgB,uBACtBpb,EAAMqb,iBAAmB,yBA6HzB,IAAIC,GAAOp9C,EACP,kJACA,SAAUhB,GACN,YAAYre,IAARqe,EACO9Z,KAAKyvC,aAELzvC,KAAK6oC,OAAO/uB,EAE3B,GAGJ,SAAS21B,KACL,OAAOzvC,KAAKggD,OAChB,CAEA,IAAImY,GAAgB,IAChBC,GAAgB,IAChBC,GAAc,KACdC,GAAmB,YAGvB,SAASC,GAAMC,EAAUC,GACrB,OAASD,EAAWC,EAAWA,GAAWA,CAC9C,CAEA,SAASC,GAAiBvsB,EAAG31B,EAAGq1B,GAE5B,OAAIM,EAAI,KAAOA,GAAK,EAET,IAAIl0B,KAAKk0B,EAAI,IAAK31B,EAAGq1B,GAAKysB,GAE1B,IAAIrgD,KAAKk0B,EAAG31B,EAAGq1B,GAAGsR,SAEjC,CAEA,SAASwb,GAAexsB,EAAG31B,EAAGq1B,GAE1B,OAAIM,EAAI,KAAOA,GAAK,EAETl0B,KAAKuzC,IAAIrf,EAAI,IAAK31B,EAAGq1B,GAAKysB,GAE1BrgD,KAAKuzC,IAAIrf,EAAG31B,EAAGq1B,EAE9B,CAkbA,SAAS+sB,GAAajT,EAAU9c,GAC5B,OAAOA,EAAOgwB,cAAclT,EAChC,CAcA,SAASmT,KACL,IAIIppD,EACA/J,EACAozD,EACAC,EACAC,EARAC,EAAa,GACbC,EAAa,GACbC,EAAe,GACfnO,EAAc,GAMdjR,EAAOh6C,KAAKg6C,OAEhB,IAAKtqC,EAAI,EAAG/J,EAAIq0C,EAAKpxC,OAAQ8G,EAAI/J,IAAK+J,EAClCqpD,EAAWlT,GAAY7L,EAAKtqC,GAAGrR,MAC/B26D,EAAWnT,GAAY7L,EAAKtqC,GAAGyqC,MAC/B8e,EAAapT,GAAY7L,EAAKtqC,GAAGwqC,QAEjCif,EAAWx3D,KAAKo3D,GAChBG,EAAWv3D,KAAKq3D,GAChBI,EAAaz3D,KAAKs3D,GAClBhO,EAAYtpD,KAAKo3D,GACjB9N,EAAYtpD,KAAKq3D,GACjB/N,EAAYtpD,KAAKs3D,GAGrBj5D,KAAKq5D,WAAa,IAAIliC,OAAO,KAAO8zB,EAAYzmD,KAAK,KAAO,IAAK,KACjExE,KAAKs5D,eAAiB,IAAIniC,OAAO,KAAOgiC,EAAW30D,KAAK,KAAO,IAAK,KACpExE,KAAKu5D,eAAiB,IAAIpiC,OAAO,KAAO+hC,EAAW10D,KAAK,KAAO,IAAK,KACpExE,KAAKw5D,iBAAmB,IAAIriC,OACxB,KAAOiiC,EAAa50D,KAAK,KAAO,IAChC,IAER,CAYA,SAASi1D,GAAuB7sB,EAAO8sB,GACnCjY,EAAe,EAAG,CAAC7U,EAAOA,EAAMhkC,QAAS,EAAG8wD,EAChD,CAyEA,SAASC,GAAqB/vD,EAAOisC,EAAMwM,EAASvM,EAAKC,GACrD,IAAI6jB,EACJ,OAAa,MAAThwD,EACOkiD,GAAW9rD,KAAM81C,EAAKC,GAAK2N,MAG9B7N,GADJ+jB,EAAc3N,GAAYriD,EAAOksC,EAAKC,MAElCF,EAAO+jB,GAEJC,GAAWxwD,KAAKrJ,KAAM4J,EAAOisC,EAAMwM,EAASvM,EAAKC,GAEhE,CAEA,SAAS8jB,GAAW1V,EAAUtO,EAAMwM,EAASvM,EAAKC,GAC9C,IAAI+jB,EAAgBnO,GAAmBxH,EAAUtO,EAAMwM,EAASvM,EAAKC,GACjEqM,EAAOmJ,GAAcuO,EAAcpW,KAAM,EAAGoW,EAAc5V,WAK9D,OAHAlkD,KAAK0jD,KAAKtB,EAAKsG,kBACf1oD,KAAKk5C,MAAMkJ,EAAKoG,eAChBxoD,KAAKoiD,KAAKA,EAAKgG,cACRpoD,IACX,CAvYAyhD,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,KAAM,EAAG,EAAG,WAC3BA,EAAe,MAAO,EAAG,EAAG,WAC5BA,EAAe,OAAQ,EAAG,EAAG,WAC7BA,EAAe,QAAS,EAAG,EAAG,aAE9BA,EAAe,IAAK,CAAC,IAAK,GAAI,KAAM,WACpCA,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,WAClCA,EAAe,IAAK,CAAC,MAAO,GAAI,EAAG,WACnCA,EAAe,IAAK,CAAC,OAAQ,GAAI,EAAG,WAEpCgE,GAAc,IAAKmT,IACnBnT,GAAc,KAAMmT,IACpBnT,GAAc,MAAOmT,IACrBnT,GAAc,OAiOd,SAAsBE,EAAU9c,GAC5B,OAAOA,EAAOkxB,cAAcpU,EAChC,GAlOAF,GAAc,QAoOd,SAAwBE,EAAU9c,GAC9B,OAAOA,EAAOmxB,gBAAgBrU,EAClC,GApOAU,GACI,CAAC,IAAK,KAAM,MAAO,OAAQ,SAC3B,SAAUz8C,EAAOmX,EAAOm/B,EAAQtT,GAC5B,IAAIwR,EAAM8B,EAAOF,QAAQia,UAAUrwD,EAAOgjC,EAAOsT,EAAOrB,SACpDT,EACAb,EAAgB2C,GAAQ9B,IAAMA,EAE9Bb,EAAgB2C,GAAQpC,WAAal0C,CAE7C,GAGJ67C,GAAc,IAAKP,IACnBO,GAAc,KAAMP,IACpBO,GAAc,MAAOP,IACrBO,GAAc,OAAQP,IACtBO,GAAc,KAsNd,SAA6BE,EAAU9c,GACnC,OAAOA,EAAOqxB,sBAAwBhV,EAC1C,GAtNAmB,GAAc,CAAC,IAAK,KAAM,MAAO,QAASM,IAC1CN,GAAc,CAAC,MAAO,SAAUz8C,EAAOmX,EAAOm/B,EAAQtT,GAClD,IAAIp3B,EACA0qC,EAAOF,QAAQka,uBACf1kD,EAAQ5L,EAAM4L,MAAM0qC,EAAOF,QAAQka,uBAGnCha,EAAOF,QAAQ1F,oBACfv5B,EAAM4lC,IAAQzG,EAAOF,QAAQ1F,oBAAoB1wC,EAAO4L,GAExDuL,EAAM4lC,IAAQvqD,SAASwN,EAAO,GAEtC,GAgPA63C,EAAe,EAAG,CAAC,KAAM,GAAI,EAAG,WAC5B,OAAOzhD,KAAKmkD,WAAa,GAC7B,GAEA1C,EAAe,EAAG,CAAC,KAAM,GAAI,EAAG,WAC5B,OAAOzhD,KAAKokD,cAAgB,GAChC,GAMAqV,GAAuB,OAAQ,YAC/BA,GAAuB,QAAS,YAChCA,GAAuB,OAAQ,eAC/BA,GAAuB,QAAS,eAMhChU,GAAc,IAAKN,IACnBM,GAAc,IAAKN,IACnBM,GAAc,KAAMb,EAAWJ,GAC/BiB,GAAc,KAAMb,EAAWJ,GAC/BiB,GAAc,OAAQT,GAAWN,GACjCe,GAAc,OAAQT,GAAWN,GACjCe,GAAc,QAASR,GAAWN,GAClCc,GAAc,QAASR,GAAWN,GAElC4B,GACI,CAAC,OAAQ,QAAS,OAAQ,SAC1B,SAAU38C,EAAOisC,EAAMqK,EAAQtT,GAC3BiJ,EAAKjJ,EAAM7K,OAAO,EAAG,IAAMmkB,GAAMt8C,EACrC,GAGJ28C,GAAkB,CAAC,KAAM,MAAO,SAAU38C,EAAOisC,EAAMqK,EAAQtT,GAC3DiJ,EAAKjJ,GAASgQ,EAAMyK,kBAAkBz9C,EAC1C,GAqEA63C,EAAe,IAAK,EAAG,KAAM,WAI7BgE,GAAc,IAAKlB,GACnB8B,GAAc,IAAK,SAAUz8C,EAAOmX,GAChCA,EAAM6lC,IAA8B,GAApBV,GAAMt8C,GAAS,EACnC,GAYA63C,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QAIrCgE,GAAc,IAAKb,EAAWW,IAC9BE,GAAc,KAAMb,EAAWJ,GAC/BiB,GAAc,KAAM,SAAUE,EAAU9c,GAEpC,OAAO8c,EACD9c,EAAOsxB,yBAA2BtxB,EAAOuxB,cACzCvxB,EAAOwxB,8BACjB,GAEAhU,GAAc,CAAC,IAAK,MAAOQ,IAC3BR,GAAc,KAAM,SAAUz8C,EAAOmX,GACjCA,EAAM8lC,IAAQX,GAAMt8C,EAAM4L,MAAMovC,GAAW,GAC/C,GAIA,IAAI0V,GAAmB/S,GAAW,QAAQ,GAI1C9F,EAAe,MAAO,CAAC,OAAQ,GAAI,OAAQ,aAI3CgE,GAAc,MAAOV,GACrBU,GAAc,OAAQhB,GACtB4B,GAAc,CAAC,MAAO,QAAS,SAAUz8C,EAAOmX,EAAOm/B,GACnDA,EAAO+S,WAAa/M,GAAMt8C,EAC9B,GAgBA63C,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAIlCgE,GAAc,IAAKb,EAAWY,IAC9BC,GAAc,KAAMb,EAAWJ,GAC/B6B,GAAc,CAAC,IAAK,MAAOU,IAI3B,IAAIwT,GAAehT,GAAW,WAAW,GAIzC9F,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAIlCgE,GAAc,IAAKb,EAAWY,IAC9BC,GAAc,KAAMb,EAAWJ,GAC/B6B,GAAc,CAAC,IAAK,MAAOW,IAI3B,IAsCIpa,GAAO4tB,GAtCPC,GAAelT,GAAW,WAAW,GAuCzC,IAnCA9F,EAAe,IAAK,EAAG,EAAG,WACtB,SAAUzhD,KAAK4iD,cAAgB,IACnC,GAEAnB,EAAe,EAAG,CAAC,KAAM,GAAI,EAAG,WAC5B,SAAUzhD,KAAK4iD,cAAgB,GACnC,GAEAnB,EAAe,EAAG,CAAC,MAAO,GAAI,EAAG,eACjCA,EAAe,EAAG,CAAC,OAAQ,GAAI,EAAG,WAC9B,OAA4B,GAArBzhD,KAAK4iD,aAChB,GACAnB,EAAe,EAAG,CAAC,QAAS,GAAI,EAAG,WAC/B,OAA4B,IAArBzhD,KAAK4iD,aAChB,GACAnB,EAAe,EAAG,CAAC,SAAU,GAAI,EAAG,WAChC,OAA4B,IAArBzhD,KAAK4iD,aAChB,GACAnB,EAAe,EAAG,CAAC,UAAW,GAAI,EAAG,WACjC,OAA4B,IAArBzhD,KAAK4iD,aAChB,GACAnB,EAAe,EAAG,CAAC,WAAY,GAAI,EAAG,WAClC,OAA4B,IAArBzhD,KAAK4iD,aAChB,GACAnB,EAAe,EAAG,CAAC,YAAa,GAAI,EAAG,WACnC,OAA4B,IAArBzhD,KAAK4iD,aAChB,GAIA6C,GAAc,IAAKV,EAAWR,GAC9BkB,GAAc,KAAMV,EAAWP,GAC/BiB,GAAc,MAAOV,EAAWN,GAG3B7X,GAAQ,OAAQA,GAAMhkC,QAAU,EAAGgkC,IAAS,IAC7C6Y,GAAc7Y,GAAOsY,IAGzB,SAASwV,GAAQ9wD,EAAOmX,GACpBA,EAAMkmC,IAAef,GAAuB,KAAhB,KAAOt8C,GACvC,CAEA,IAAKgjC,GAAQ,IAAKA,GAAMhkC,QAAU,EAAGgkC,IAAS,IAC1CyZ,GAAczZ,GAAO8tB,IAGzBF,GAAoBjT,GAAW,gBAAgB,GAI/C9F,EAAe,IAAK,EAAG,EAAG,YAC1BA,EAAe,KAAM,EAAG,EAAG,YAY3B,IAAIkZ,GAAQ1a,EAAO92C,UAgHnB,SAASyxD,GAAmBv5C,GACxB,OAAOA,CACX,CAhHAs5C,GAAM91D,IAAMA,GACZ81D,GAAM1lB,SAhlCN,SAAoBgH,EAAM4e,GAEG,IAArBn2D,UAAUkE,SACLlE,UAAU,GAGJ0yD,GAAc1yD,UAAU,KAC/Bu3C,EAAOv3C,UAAU,GACjBm2D,OAAUp/D,GA/CtB,SAAwBmO,GACpB,IAUI8F,EAVA8nD,EAAa1kC,EAASlpB,KAAWkzC,EAAclzC,GAC/C6tD,GAAe,EACfx+B,EAAa,CACT,UACA,UACA,UACA,WACA,WACA,YAKR,IAAKvpB,EAAI,EAAGA,EAAIupB,EAAWrwB,OAAQ8G,GAAK,EAEpC+nD,EAAeA,GAAgB5a,EAAWjzC,EAD/BqvB,EAAWvpB,IAI1B,OAAO8nD,GAAcC,CACzB,CA4BmBqD,CAAep2D,UAAU,MAChCm2D,EAAUn2D,UAAU,GACpBu3C,OAAOxgD,IAPPwgD,OAAOxgD,EACPo/D,OAAUp/D,IAWlB,IAAI8+C,EAAM0B,GAAQ8W,KACdgI,EAAMhF,GAAgBxb,EAAKv6C,MAAMg7D,QAAQ,OACzC3iD,EAASukC,EAAMqe,eAAej7D,KAAM+6D,IAAQ,WAC5ClxD,EACIgxD,IACC1lC,EAAW0lC,EAAQxiD,IACdwiD,EAAQxiD,GAAQhP,KAAKrJ,KAAMu6C,GAC3BsgB,EAAQxiD,IAEtB,OAAOrY,KAAKqY,OACRxO,GAAU7J,KAAKyvC,aAAawF,SAAS58B,EAAQrY,KAAM+yD,GAAYxY,IAEvE,EAqjCAogB,GAAM1E,MAnjCN,WACI,OAAO,IAAIhW,EAAOjgD,KACtB,EAkjCA26D,GAAMxlD,KA3+BN,SAAcvL,EAAOmxC,EAAOmgB,GACxB,IAAIC,EAAMC,EAAWvxD,EAErB,IAAK7J,KAAKsuC,UACN,OAAO4Q,IAKX,KAFAic,EAAOpF,GAAgBnsD,EAAO5J,OAEpBsuC,UACN,OAAO4Q,IAOX,OAJAkc,EAAoD,KAAvCD,EAAKxF,YAAc31D,KAAK21D,aAErC5a,EAAQ4I,EAAe5I,IAGnB,IAAK,OACDlxC,EAAS+tD,GAAU53D,KAAMm7D,GAAQ,GACjC,MACJ,IAAK,QACDtxD,EAAS+tD,GAAU53D,KAAMm7D,GACzB,MACJ,IAAK,UACDtxD,EAAS+tD,GAAU53D,KAAMm7D,GAAQ,EACjC,MACJ,IAAK,SACDtxD,GAAU7J,KAAOm7D,GAAQ,IACzB,MACJ,IAAK,SACDtxD,GAAU7J,KAAOm7D,GAAQ,IACzB,MACJ,IAAK,OACDtxD,GAAU7J,KAAOm7D,GAAQ,KACzB,MACJ,IAAK,MACDtxD,GAAU7J,KAAOm7D,EAAOC,GAAa,MACrC,MACJ,IAAK,OACDvxD,GAAU7J,KAAOm7D,EAAOC,GAAa,OACrC,MACJ,QACIvxD,EAAS7J,KAAOm7D,EAGxB,OAAOD,EAAUrxD,EAASm8C,GAASn8C,EACvC,EA67BA8wD,GAAMU,MAtrBN,SAAetgB,GACX,IAAIkB,EAAMqf,EAEV,QAAc7/D,KADds/C,EAAQ4I,EAAe5I,KACc,gBAAVA,IAA4B/6C,KAAKsuC,UACxD,OAAOtuC,KAKX,OAFAs7D,EAAct7D,KAAK8/C,OAAS6Y,GAAiBD,GAErC3d,GACJ,IAAK,OACDkB,EAAOqf,EAAYt7D,KAAK0jD,OAAS,EAAG,EAAG,GAAK,EAC5C,MACJ,IAAK,UACDzH,EACIqf,EACIt7D,KAAK0jD,OACL1jD,KAAKk5C,QAAWl5C,KAAKk5C,QAAU,EAAK,EACpC,GACA,EACR,MACJ,IAAK,QACD+C,EAAOqf,EAAYt7D,KAAK0jD,OAAQ1jD,KAAKk5C,QAAU,EAAG,GAAK,EACvD,MACJ,IAAK,OACD+C,EACIqf,EACIt7D,KAAK0jD,OACL1jD,KAAKk5C,QACLl5C,KAAKoiD,OAASpiD,KAAKqiD,UAAY,GAC/B,EACR,MACJ,IAAK,UACDpG,EACIqf,EACIt7D,KAAK0jD,OACL1jD,KAAKk5C,QACLl5C,KAAKoiD,QAAUpiD,KAAKikD,aAAe,GAAK,GACxC,EACR,MACJ,IAAK,MACL,IAAK,OACDhI,EAAOqf,EAAYt7D,KAAK0jD,OAAQ1jD,KAAKk5C,QAASl5C,KAAKoiD,OAAS,GAAK,EACjE,MACJ,IAAK,OACDnG,EAAOj8C,KAAK0+C,GAAGvB,UACflB,GACIoc,GACAE,GACItc,GAAQj8C,KAAK8/C,OAAS,EAAI9/C,KAAK21D,YAAcyC,IAC7CC,IAEJ,EACJ,MACJ,IAAK,SACDpc,EAAOj8C,KAAK0+C,GAAGvB,UACflB,GAAQmc,GAAgBG,GAAMtc,EAAMmc,IAAiB,EACrD,MACJ,IAAK,SACDnc,EAAOj8C,KAAK0+C,GAAGvB,UACflB,GAAQkc,GAAgBI,GAAMtc,EAAMkc,IAAiB,EAM7D,OAFAn4D,KAAK0+C,GAAGwX,QAAQja,GAChBW,EAAMuD,aAAangD,MAAM,GAClBA,IACX,EAonBA26D,GAAMtiD,OAh2BN,SAAgBkjD,GACPA,IACDA,EAAcv7D,KAAKs2D,QACb1Z,EAAMqb,iBACNrb,EAAMob,eAEhB,IAAInuD,EAAS+3C,EAAa5hD,KAAMu7D,GAChC,OAAOv7D,KAAKyvC,aAAagH,WAAW5sC,EACxC,EAy1BA8wD,GAAMxoD,KAv1BN,SAAc8pC,EAAM7F,GAChB,OACIp2C,KAAKsuC,YACH8R,EAASnE,IAASA,EAAK3N,WAAcykB,GAAY9W,GAAM3N,WAElDmoB,GAAe,CAAEvjD,GAAIlT,KAAMmS,KAAM8pC,IACnCpT,OAAO7oC,KAAK6oC,UACZ3zB,UAAUkhC,GAERp2C,KAAKyvC,aAAagK,aAEjC,EA60BAkhB,GAAMa,QA30BN,SAAiBplB,GACb,OAAOp2C,KAAKmS,KAAK4gD,KAAe3c,EACpC,EA00BAukB,GAAMznD,GAx0BN,SAAY+oC,EAAM7F,GACd,OACIp2C,KAAKsuC,YACH8R,EAASnE,IAASA,EAAK3N,WAAcykB,GAAY9W,GAAM3N,WAElDmoB,GAAe,CAAEtkD,KAAMnS,KAAMkT,GAAI+oC,IACnCpT,OAAO7oC,KAAK6oC,UACZ3zB,UAAUkhC,GAERp2C,KAAKyvC,aAAagK,aAEjC,EA8zBAkhB,GAAMc,MA5zBN,SAAerlB,GACX,OAAOp2C,KAAKkT,GAAG6/C,KAAe3c,EAClC,EA2zBAukB,GAAM/hD,IAx0HN,SAAmBmiC,GAEf,OAAI5lB,EAAWn1B,KADf+6C,EAAQ4I,EAAe5I,KAEZ/6C,KAAK+6C,KAET/6C,IACX,EAm0HA26D,GAAMe,UArkBN,WACI,OAAOne,EAAgBv9C,MAAM29C,QACjC,EAokBAgd,GAAM5D,QAzjCN,SAAiBntD,EAAOmxC,GACpB,IAAI4gB,EAAavb,EAASx2C,GAASA,EAAQmpD,GAAYnpD,GACvD,SAAM5J,KAAKsuC,YAAaqtB,EAAWrtB,aAIrB,iBADdyM,EAAQ4I,EAAe5I,IAAU,eAEtB/6C,KAAKm9C,UAAYwe,EAAWxe,UAE5Bwe,EAAWxe,UAAYn9C,KAAKi2D,QAAQ+E,QAAQjgB,GAAOoC,UAElE,EA+iCAwd,GAAM/D,SA7iCN,SAAkBhtD,EAAOmxC,GACrB,IAAI4gB,EAAavb,EAASx2C,GAASA,EAAQmpD,GAAYnpD,GACvD,SAAM5J,KAAKsuC,YAAaqtB,EAAWrtB,aAIrB,iBADdyM,EAAQ4I,EAAe5I,IAAU,eAEtB/6C,KAAKm9C,UAAYwe,EAAWxe,UAE5Bn9C,KAAKi2D,QAAQoF,MAAMtgB,GAAOoC,UAAYwe,EAAWxe,UAEhE,EAmiCAwd,GAAMiB,UAjiCN,SAAmBzpD,EAAMe,EAAI6nC,EAAO8gB,GAChC,IAAIC,EAAY1b,EAASjuC,GAAQA,EAAO4gD,GAAY5gD,GAChD4pD,EAAU3b,EAASltC,GAAMA,EAAK6/C,GAAY7/C,GAC9C,SAAMlT,KAAKsuC,WAAawtB,EAAUxtB,WAAaytB,EAAQztB,aAK/B,OAFxButB,EAAcA,GAAe,MAEZ,GACP77D,KAAK+2D,QAAQ+E,EAAW/gB,IACvB/6C,KAAK42D,SAASkF,EAAW/gB,MACZ,MAAnB8gB,EAAY,GACP77D,KAAK42D,SAASmF,EAAShhB,IACtB/6C,KAAK+2D,QAAQgF,EAAShhB,GAErC,EAmhCA4f,GAAMqB,OAjhCN,SAAgBpyD,EAAOmxC,GACnB,IACIkhB,EADAN,EAAavb,EAASx2C,GAASA,EAAQmpD,GAAYnpD,GAEvD,SAAM5J,KAAKsuC,YAAaqtB,EAAWrtB,aAIrB,iBADdyM,EAAQ4I,EAAe5I,IAAU,eAEtB/6C,KAAKm9C,YAAcwe,EAAWxe,WAErC8e,EAAUN,EAAWxe,UAEjBn9C,KAAKi2D,QAAQ+E,QAAQjgB,GAAOoC,WAAa8e,GACzCA,GAAWj8D,KAAKi2D,QAAQoF,MAAMtgB,GAAOoC,WAGjD,EAkgCAwd,GAAMuB,cAhgCN,SAAuBtyD,EAAOmxC,GAC1B,OAAO/6C,KAAKg8D,OAAOpyD,EAAOmxC,IAAU/6C,KAAK+2D,QAAQntD,EAAOmxC,EAC5D,EA+/BA4f,GAAMwB,eA7/BN,SAAwBvyD,EAAOmxC,GAC3B,OAAO/6C,KAAKg8D,OAAOpyD,EAAOmxC,IAAU/6C,KAAK42D,SAAShtD,EAAOmxC,EAC7D,EA4/BA4f,GAAMrsB,QAplBN,WACI,OAAOA,EAAQtuC,KACnB,EAmlBA26D,GAAMzC,KAAOA,GACbyC,GAAM9xB,OAASA,GACf8xB,GAAMlrB,WAAaA,GACnBkrB,GAAM/qD,IAAMilD,GACZ8F,GAAM5qD,IAAM4kD,GACZgG,GAAMyB,aAtlBN,WACI,OAAO3jD,EAAO,CAAC,EAAG8kC,EAAgBv9C,MACtC,EAqlBA26D,GAAM9hD,IA/0HN,SAAmBkiC,EAAOjgD,GACtB,GAAqB,iBAAVigD,EAAoB,CAE3B,IACIrrC,EADA2sD,EArSZ,SAA6BC,GACzB,IACInmB,EADA4E,EAAQ,GAEZ,IAAK5E,KAAKmmB,EACFzf,EAAWyf,EAAUnmB,IACrB4E,EAAMp5C,KAAK,CAAE6lD,KAAMrR,EAAGomB,SAAUvY,EAAW7N,KAMnD,OAHA4E,EAAMhtB,KAAK,SAAUtuB,EAAGC,GACpB,OAAOD,EAAE88D,SAAW78D,EAAE68D,QAC1B,GACOxhB,CACX,CAyR0ByhB,CADlBzhB,EAAQ6I,EAAqB7I,IAGzB0hB,EAAiBJ,EAAYzzD,OACjC,IAAK8G,EAAI,EAAGA,EAAI+sD,EAAgB/sD,IAC5B1P,KAAKq8D,EAAY3sD,GAAG83C,MAAMzM,EAAMshB,EAAY3sD,GAAG83C,MAEvD,MAEI,GAAIryB,EAAWn1B,KADf+6C,EAAQ4I,EAAe5I,KAEnB,OAAO/6C,KAAK+6C,GAAOjgD,GAG3B,OAAOkF,IACX,EAg0HA26D,GAAMK,QA3wBN,SAAiBjgB,GACb,IAAIkB,EAAMqf,EAEV,QAAc7/D,KADds/C,EAAQ4I,EAAe5I,KACc,gBAAVA,IAA4B/6C,KAAKsuC,UACxD,OAAOtuC,KAKX,OAFAs7D,EAAct7D,KAAK8/C,OAAS6Y,GAAiBD,GAErC3d,GACJ,IAAK,OACDkB,EAAOqf,EAAYt7D,KAAK0jD,OAAQ,EAAG,GACnC,MACJ,IAAK,UACDzH,EAAOqf,EACHt7D,KAAK0jD,OACL1jD,KAAKk5C,QAAWl5C,KAAKk5C,QAAU,EAC/B,GAEJ,MACJ,IAAK,QACD+C,EAAOqf,EAAYt7D,KAAK0jD,OAAQ1jD,KAAKk5C,QAAS,GAC9C,MACJ,IAAK,OACD+C,EAAOqf,EACHt7D,KAAK0jD,OACL1jD,KAAKk5C,QACLl5C,KAAKoiD,OAASpiD,KAAKqiD,WAEvB,MACJ,IAAK,UACDpG,EAAOqf,EACHt7D,KAAK0jD,OACL1jD,KAAKk5C,QACLl5C,KAAKoiD,QAAUpiD,KAAKikD,aAAe,IAEvC,MACJ,IAAK,MACL,IAAK,OACDhI,EAAOqf,EAAYt7D,KAAK0jD,OAAQ1jD,KAAKk5C,QAASl5C,KAAKoiD,QACnD,MACJ,IAAK,OACDnG,EAAOj8C,KAAK0+C,GAAGvB,UACflB,GAAQsc,GACJtc,GAAQj8C,KAAK8/C,OAAS,EAAI9/C,KAAK21D,YAAcyC,IAC7CC,IAEJ,MACJ,IAAK,SACDpc,EAAOj8C,KAAK0+C,GAAGvB,UACflB,GAAQsc,GAAMtc,EAAMmc,IACpB,MACJ,IAAK,SACDnc,EAAOj8C,KAAK0+C,GAAGvB,UACflB,GAAQsc,GAAMtc,EAAMkc,IAM5B,OAFAn4D,KAAK0+C,GAAGwX,QAAQja,GAChBW,EAAMuD,aAAangD,MAAM,GAClBA,IACX,EA+sBA26D,GAAMlpB,SAAWA,GACjBkpB,GAAM+B,QA7nBN,WACI,IAAIlmD,EAAIxW,KACR,MAAO,CACHwW,EAAEktC,OACFltC,EAAE0iC,QACF1iC,EAAE4rC,OACF5rC,EAAE+/B,OACF//B,EAAEggC,SACFhgC,EAAEwsC,SACFxsC,EAAEosC,cAEV,EAmnBA+X,GAAMgC,SAjnBN,WACI,IAAInmD,EAAIxW,KACR,MAAO,CACH4uC,MAAOp4B,EAAEktC,OACT7U,OAAQr4B,EAAE0iC,QACVkJ,KAAM5rC,EAAE4rC,OACRpT,MAAOx4B,EAAEw4B,QACTC,QAASz4B,EAAEy4B,UACXC,QAAS14B,EAAE04B,UACXC,aAAc34B,EAAE24B,eAExB,EAumBAwrB,GAAMiC,OAnoBN,WACI,OAAO,IAAI3kD,KAAKjY,KAAKm9C,UACzB,EAkoBAwd,GAAMhgD,YAp7BN,SAAqBkiD,GACjB,IAAK78D,KAAKsuC,UACN,OAAO,KAEX,IAAIgP,GAAqB,IAAfuf,EACNrmD,EAAI8mC,EAAMt9C,KAAKi2D,QAAQ3Y,MAAQt9C,KACnC,OAAIwW,EAAEktC,OAAS,GAAKltC,EAAEktC,OAAS,KACpB9B,EACHprC,EACA8mC,EACM,iCACA,gCAGVnoB,EAAWld,KAAK9O,UAAUwR,aAEtB2iC,EACOt9C,KAAK48D,SAASjiD,cAEd,IAAI1C,KAAKjY,KAAKm9C,UAA+B,GAAnBn9C,KAAK21D,YAAmB,KACpDh7C,cACApF,QAAQ,IAAKqsC,EAAaprC,EAAG,MAGnCorC,EACHprC,EACA8mC,EAAM,+BAAiC,6BAE/C,EAy5BAqd,GAAMl/C,QAj5BN,WACI,IAAKzb,KAAKsuC,UACN,MAAO,qBAAuBtuC,KAAK0/C,GAAK,OAE5C,IAEI70C,EACA64C,EAEAoZ,EALApb,EAAO,SACPqb,EAAO,GAcX,OATK/8D,KAAKg9D,YACNtb,EAA4B,IAArB1hD,KAAK21D,YAAoB,aAAe,mBAC/CoH,EAAO,KAEXlyD,EAAS,IAAM62C,EAAO,MACtBgC,EAAO,GAAK1jD,KAAK0jD,QAAU1jD,KAAK0jD,QAAU,KAAO,OAAS,SAE1DoZ,EAASC,EAAO,OAET/8D,KAAKqY,OAAOxN,EAAS64C,EAHjB,wBAGmCoZ,EAClD,EA83BsB,oBAAXl9B,QAAwC,MAAdA,OAAOC,MACxC86B,GAAM/6B,OAAOC,IAAI,+BAAiC,WAC9C,MAAO,UAAY7/B,KAAKqY,SAAW,GACvC,GAEJsiD,GAAMsC,OA7mBN,WAEI,OAAOj9D,KAAKsuC,UAAYtuC,KAAK2a,cAAgB,IACjD,EA2mBAggD,GAAM58B,SAh8BN,WACI,OAAO/9B,KAAKi2D,QAAQptB,OAAO,MAAMxwB,OAAO,mCAC5C,EA+7BAsiD,GAAMuC,KAjpBN,WACI,OAAOptD,KAAK0hC,MAAMxxC,KAAKm9C,UAAY,IACvC,EAgpBAwd,GAAMxd,QAtpBN,WACI,OAAOn9C,KAAK0+C,GAAGvB,UAAkC,KAArBn9C,KAAK+/C,SAAW,EAChD,EAqpBA4a,GAAMwC,aAhmBN,WACI,MAAO,CACHvzD,MAAO5J,KAAK0/C,GACZrnC,OAAQrY,KAAK2/C,GACb9W,OAAQ7oC,KAAKggD,QACb2H,MAAO3nD,KAAK8/C,OACZjb,OAAQ7kC,KAAK6+C,QAErB,EAylBA8b,GAAMyC,QAvdN,WACI,IAAI1tD,EACA/J,EACA4S,EACAyhC,EAAOh6C,KAAKyvC,aAAauK,OAC7B,IAAKtqC,EAAI,EAAG/J,EAAIq0C,EAAKpxC,OAAQ8G,EAAI/J,IAAK+J,EAAG,CAIrC,GAFA6I,EAAMvY,KAAKi2D,QAAQ+E,QAAQ,OAAO7d,UAE9BnD,EAAKtqC,GAAGuqC,OAAS1hC,GAAOA,GAAOyhC,EAAKtqC,GAAG0qC,MACvC,OAAOJ,EAAKtqC,GAAGrR,KAEnB,GAAI27C,EAAKtqC,GAAG0qC,OAAS7hC,GAAOA,GAAOyhC,EAAKtqC,GAAGuqC,MACvC,OAAOD,EAAKtqC,GAAGrR,IAEvB,CAEA,MAAO,EACX,EAscAs8D,GAAM0C,UApcN,WACI,IAAI3tD,EACA/J,EACA4S,EACAyhC,EAAOh6C,KAAKyvC,aAAauK,OAC7B,IAAKtqC,EAAI,EAAG/J,EAAIq0C,EAAKpxC,OAAQ8G,EAAI/J,IAAK+J,EAAG,CAIrC,GAFA6I,EAAMvY,KAAKi2D,QAAQ+E,QAAQ,OAAO7d,UAE9BnD,EAAKtqC,GAAGuqC,OAAS1hC,GAAOA,GAAOyhC,EAAKtqC,GAAG0qC,MACvC,OAAOJ,EAAKtqC,GAAGwqC,OAEnB,GAAIF,EAAKtqC,GAAG0qC,OAAS7hC,GAAOA,GAAOyhC,EAAKtqC,GAAGuqC,MACvC,OAAOD,EAAKtqC,GAAGwqC,MAEvB,CAEA,MAAO,EACX,EAmbAygB,GAAM2C,QAjbN,WACI,IAAI5tD,EACA/J,EACA4S,EACAyhC,EAAOh6C,KAAKyvC,aAAauK,OAC7B,IAAKtqC,EAAI,EAAG/J,EAAIq0C,EAAKpxC,OAAQ8G,EAAI/J,IAAK+J,EAAG,CAIrC,GAFA6I,EAAMvY,KAAKi2D,QAAQ+E,QAAQ,OAAO7d,UAE9BnD,EAAKtqC,GAAGuqC,OAAS1hC,GAAOA,GAAOyhC,EAAKtqC,GAAG0qC,MACvC,OAAOJ,EAAKtqC,GAAGyqC,KAEnB,GAAIH,EAAKtqC,GAAG0qC,OAAS7hC,GAAOA,GAAOyhC,EAAKtqC,GAAGuqC,MACvC,OAAOD,EAAKtqC,GAAGyqC,IAEvB,CAEA,MAAO,EACX,EAgaAwgB,GAAM4C,QA9ZN,WACI,IAAI7tD,EACA/J,EACA8Y,EACAlG,EACAyhC,EAAOh6C,KAAKyvC,aAAauK,OAC7B,IAAKtqC,EAAI,EAAG/J,EAAIq0C,EAAKpxC,OAAQ8G,EAAI/J,IAAK+J,EAMlC,GALA+O,EAAMu7B,EAAKtqC,GAAGuqC,OAASD,EAAKtqC,GAAG0qC,MAAQ,GAAM,EAG7C7hC,EAAMvY,KAAKi2D,QAAQ+E,QAAQ,OAAO7d,UAG7BnD,EAAKtqC,GAAGuqC,OAAS1hC,GAAOA,GAAOyhC,EAAKtqC,GAAG0qC,OACvCJ,EAAKtqC,GAAG0qC,OAAS7hC,GAAOA,GAAOyhC,EAAKtqC,GAAGuqC,MAExC,OACKj6C,KAAK0jD,OAAS9G,EAAM5C,EAAKtqC,GAAGuqC,OAAOyJ,QAAUjlC,EAC9Cu7B,EAAKtqC,GAAGiiB,OAKpB,OAAO3xB,KAAK0jD,MAChB,EAuYAiX,GAAMjX,KAAO4D,GACbqT,GAAMjU,WAx8HN,WACI,OAAOA,GAAW1mD,KAAK0jD,OAC3B,EAu8HAiX,GAAMxW,SAnRN,SAAwBv6C,GACpB,OAAO+vD,GAAqBtwD,KACxBrJ,KACA4J,EACA5J,KAAK61C,OACL71C,KAAKqiD,UAAYriD,KAAKyvC,aAAaujB,MAAMld,IACzC91C,KAAKyvC,aAAaujB,MAAMld,IACxB91C,KAAKyvC,aAAaujB,MAAMjd,IAEhC,EA2QA4kB,GAAMvW,YAzQN,SAA2Bx6C,GACvB,OAAO+vD,GAAqBtwD,KACxBrJ,KACA4J,EACA5J,KAAKqkD,UACLrkD,KAAKikD,aACL,EACA,EAER,EAiQA0W,GAAM5X,QAAU4X,GAAM7X,SAzMtB,SAAuBl5C,GACnB,OAAgB,MAATA,EACDkG,KAAKm2C,MAAMjmD,KAAKk5C,QAAU,GAAK,GAC/Bl5C,KAAKk5C,MAAoB,GAAbtvC,EAAQ,GAAU5J,KAAKk5C,QAAU,EACvD,EAsMAyhB,GAAMzhB,MAAQwR,GACdiQ,GAAMnR,YA5lHN,WACI,OAAOA,GAAYxpD,KAAK0jD,OAAQ1jD,KAAKk5C,QACzC,EA2lHAyhB,GAAM9kB,KAAO8kB,GAAM7rB,MA33GnB,SAAoBllC,GAChB,IAAIisC,EAAO71C,KAAKyvC,aAAaoG,KAAK71C,MAClC,OAAgB,MAAT4J,EAAgBisC,EAAO71C,KAAK6E,IAAqB,GAAhB+E,EAAQisC,GAAW,IAC/D,EAy3GA8kB,GAAMtW,QAAUsW,GAAM6C,SAv3GtB,SAAuB5zD,GACnB,IAAIisC,EAAOiW,GAAW9rD,KAAM,EAAG,GAAG61C,KAClC,OAAgB,MAATjsC,EAAgBisC,EAAO71C,KAAK6E,IAAqB,GAAhB+E,EAAQisC,GAAW,IAC/D,EAq3GA8kB,GAAM1O,YA5PN,WACI,IAAIwR,EAAWz9D,KAAKyvC,aAAaujB,MACjC,OAAO/G,GAAYjsD,KAAK0jD,OAAQ+Z,EAAS3nB,IAAK2nB,EAAS1nB,IAC3D,EA0PA4kB,GAAM+C,gBAxPN,WACI,IAAID,EAAWz9D,KAAKyvC,aAAaujB,MACjC,OAAO/G,GAAYjsD,KAAKmkD,WAAYsZ,EAAS3nB,IAAK2nB,EAAS1nB,IAC/D,EAsPA4kB,GAAMgD,eAtQN,WACI,OAAO1R,GAAYjsD,KAAK0jD,OAAQ,EAAG,EACvC,EAqQAiX,GAAMiD,sBAnQN,WACI,OAAO3R,GAAYjsD,KAAKokD,cAAe,EAAG,EAC9C,EAkQAuW,GAAMvY,KAAOkY,GACbK,GAAMzjB,IAAMyjB,GAAM5rB,KApnGlB,SAAyBnlC,GACrB,IAAK5J,KAAKsuC,UACN,OAAgB,MAAT1kC,EAAgB5J,KAAOk/C,IAGlC,IAAIhI,EAAMt+B,GAAI5Y,KAAM,OACpB,OAAa,MAAT4J,GACAA,EAzNR,SAAsBA,EAAOi/B,GACzB,MAAqB,iBAAVj/B,EACAA,EAGNkxC,MAAMlxC,GAKU,iBADrBA,EAAQi/B,EAAOoP,cAAcruC,IAElBA,EAGJ,KARIxN,SAASwN,EAAO,GAS/B,CA0MgBi0D,CAAaj0D,EAAO5J,KAAKyvC,cAC1BzvC,KAAK6E,IAAI+E,EAAQstC,EAAK,MAEtBA,CAEf,EAymGAyjB,GAAMtY,QAvmGN,SAA+Bz4C,GAC3B,IAAK5J,KAAKsuC,UACN,OAAgB,MAAT1kC,EAAgB5J,KAAOk/C,IAElC,IAAImD,GAAWriD,KAAKk3C,MAAQ,EAAIl3C,KAAKyvC,aAAaujB,MAAMld,KAAO,EAC/D,OAAgB,MAATlsC,EAAgBy4C,EAAUriD,KAAK6E,IAAI+E,EAAQy4C,EAAS,IAC/D,EAkmGAsY,GAAM1W,WAhmGN,SAA4Br6C,GACxB,IAAK5J,KAAKsuC,UACN,OAAgB,MAAT1kC,EAAgB5J,KAAOk/C,IAOlC,GAAa,MAATt1C,EAAe,CACf,IAAIy4C,EAjOZ,SAAyBz4C,EAAOi/B,GAC5B,MAAqB,iBAAVj/B,EACAi/B,EAAOoP,cAAcruC,GAAS,GAAK,EAEvCkxC,MAAMlxC,GAAS,KAAOA,CACjC,CA4NsBk0D,CAAgBl0D,EAAO5J,KAAKyvC,cAC1C,OAAOzvC,KAAKk3C,IAAIl3C,KAAKk3C,MAAQ,EAAImL,EAAUA,EAAU,EACzD,CACI,OAAOriD,KAAKk3C,OAAS,CAE7B,EAklGAyjB,GAAMzW,UAxKN,SAAyBt6C,GACrB,IAAIs6C,EACAp0C,KAAK8hC,OACA5xC,KAAKi2D,QAAQ+E,QAAQ,OAASh7D,KAAKi2D,QAAQ+E,QAAQ,SAAW,OAC/D,EACR,OAAgB,MAATpxD,EAAgBs6C,EAAYlkD,KAAK6E,IAAI+E,EAAQs6C,EAAW,IACnE,EAmKAyW,GAAMpkB,KAAOokB,GAAM3rB,MAAQsf,GAC3BqM,GAAMnkB,OAASmkB,GAAM1rB,QAAUsrB,GAC/BI,GAAM3X,OAAS2X,GAAMzrB,QAAUurB,GAC/BE,GAAM/X,YAAc+X,GAAMxrB,aAAeqrB,GACzCG,GAAMhF,UA9jDN,SAAsB/rD,EAAOm0D,EAAeC,GACxC,IACIC,EADAtsC,EAAS3xB,KAAK+/C,SAAW,EAE7B,IAAK//C,KAAKsuC,UACN,OAAgB,MAAT1kC,EAAgB5J,KAAOk/C,IAElC,GAAa,MAATt1C,EAAe,CACf,GAAqB,iBAAVA,GAEP,GAAc,QADdA,EAAQisD,GAAiBxQ,GAAkBz7C,IAEvC,OAAO5J,UAEJ8P,KAAKmK,IAAIrQ,GAAS,KAAOo0D,IAChCp0D,GAAgB,IAwBpB,OAtBK5J,KAAK8/C,QAAUie,IAChBE,EAAc7H,GAAcp2D,OAEhCA,KAAK+/C,QAAUn2C,EACf5J,KAAK8/C,QAAS,EACK,MAAfme,GACAj+D,KAAK6E,IAAIo5D,EAAa,KAEtBtsC,IAAW/nB,KACNm0D,GAAiB/9D,KAAKk+D,kBACvBhH,GACIl3D,KACAy2D,GAAe7sD,EAAQ+nB,EAAQ,KAC/B,GACA,GAEI3xB,KAAKk+D,oBACbl+D,KAAKk+D,mBAAoB,EACzBthB,EAAMuD,aAAangD,MAAM,GACzBA,KAAKk+D,kBAAoB,OAG1Bl+D,IACX,CACI,OAAOA,KAAK8/C,OAASnuB,EAASykC,GAAcp2D,KAEpD,EAshDA26D,GAAMrd,IAtgDN,SAAwBygB,GACpB,OAAO/9D,KAAK21D,UAAU,EAAGoI,EAC7B,EAqgDApD,GAAMxE,MAngDN,SAA0B4H,GAStB,OARI/9D,KAAK8/C,SACL9/C,KAAK21D,UAAU,EAAGoI,GAClB/9D,KAAK8/C,QAAS,EAEVie,GACA/9D,KAAKyxC,SAAS2kB,GAAcp2D,MAAO,MAGpCA,IACX,EA0/CA26D,GAAMwD,UAx/CN,WACI,GAAiB,MAAbn+D,KAAK6/C,KACL7/C,KAAK21D,UAAU31D,KAAK6/C,MAAM,GAAO,QAC9B,GAAuB,iBAAZ7/C,KAAK0/C,GAAiB,CACpC,IAAI0e,EAAQvI,GAAiBzQ,GAAaplD,KAAK0/C,IAClC,MAAT0e,EACAp+D,KAAK21D,UAAUyI,GAEfp+D,KAAK21D,UAAU,GAAG,EAE1B,CACA,OAAO31D,IACX,EA6+CA26D,GAAM0D,qBA3+CN,SAA8Bz0D,GAC1B,QAAK5J,KAAKsuC,YAGV1kC,EAAQA,EAAQmpD,GAAYnpD,GAAO+rD,YAAc,GAEzC31D,KAAK21D,YAAc/rD,GAAS,IAAO,EAC/C,EAq+CA+wD,GAAM2D,MAn+CN,WACI,OACIt+D,KAAK21D,YAAc31D,KAAKi2D,QAAQ/c,MAAM,GAAGyc,aACzC31D,KAAK21D,YAAc31D,KAAKi2D,QAAQ/c,MAAM,GAAGyc,WAEjD,EA+9CAgF,GAAMqC,QAv8CN,WACI,QAAOh9D,KAAKsuC,YAAatuC,KAAK8/C,MAClC,EAs8CA6a,GAAM4D,YAp8CN,WACI,QAAOv+D,KAAKsuC,WAAYtuC,KAAK8/C,MACjC,EAm8CA6a,GAAMrE,MAAQA,GACdqE,GAAMhT,MAAQ2O,GACdqE,GAAM6D,SAzFN,WACI,OAAOx+D,KAAK8/C,OAAS,MAAQ,EACjC,EAwFA6a,GAAM8D,SAtFN,WACI,OAAOz+D,KAAK8/C,OAAS,6BAA+B,EACxD,EAqFA6a,GAAMxY,MAAQrnC,EACV,kDACAw/C,IAEJK,GAAM9rB,OAAS/zB,EACX,mDACA4vC,IAEJiQ,GAAM/rB,MAAQ9zB,EACV,iDACAwsC,IAEJqT,GAAMoC,KAAOjiD,EACT,2GA5iDJ,SAAoBlR,EAAOm0D,GACvB,OAAa,MAATn0D,GACqB,iBAAVA,IACPA,GAASA,GAGb5J,KAAK21D,UAAU/rD,EAAOm0D,GAEf/9D,OAECA,KAAK21D,WAErB,GAmiDAgF,GAAM+D,aAAe5jD,EACjB,0GAp/CJ,WACI,IAAKkiC,EAAYh9C,KAAK2+D,eAClB,OAAO3+D,KAAK2+D,cAGhB,IACI/J,EADAx/C,EAAI,CAAC,EAcT,OAXAmqC,EAAWnqC,EAAGpV,OACdoV,EAAIw+C,GAAcx+C,IAEZ83B,IACF0nB,EAAQx/C,EAAE0qC,OAAS1C,EAAUhoC,EAAE83B,IAAM6lB,GAAY39C,EAAE83B,IACnDltC,KAAK2+D,cACD3+D,KAAKsuC,WAtOjB,SAAuBswB,EAAQC,EAAQC,GACnC,IAGIpvD,EAHAs1B,EAAMl1B,KAAKC,IAAI6uD,EAAOh2D,OAAQi2D,EAAOj2D,QACrCm2D,EAAajvD,KAAKmK,IAAI2kD,EAAOh2D,OAASi2D,EAAOj2D,QAC7Co2D,EAAQ,EAEZ,IAAKtvD,EAAI,EAAGA,EAAIs1B,EAAKt1B,KAEZovD,GAAeF,EAAOlvD,KAAOmvD,EAAOnvD,KACnCovD,GAAe5Y,GAAM0Y,EAAOlvD,MAAQw2C,GAAM2Y,EAAOnvD,MAEnDsvD,IAGR,OAAOA,EAAQD,CACnB,CAwN8BE,CAAc7pD,EAAE83B,GAAI0nB,EAAM8H,WAAa,GAE7D18D,KAAK2+D,eAAgB,EAGlB3+D,KAAK2+D,aAChB,GAg/CA,IAAIO,GAAUne,EAAO53C,UAuCrB,SAASg2D,GAAM9mD,EAAQnI,EAAOkvD,EAAOC,GACjC,IAAIx2B,EAASwmB,KACT/R,EAAMF,IAAYvkC,IAAIwmD,EAAQnvD,GAClC,OAAO24B,EAAOu2B,GAAO9hB,EAAKjlC,EAC9B,CAEA,SAASinD,GAAejnD,EAAQnI,EAAOkvD,GAQnC,GAPIpsC,EAAS3a,KACTnI,EAAQmI,EACRA,OAAS5c,GAGb4c,EAASA,GAAU,GAEN,MAATnI,EACA,OAAOivD,GAAM9mD,EAAQnI,EAAOkvD,EAAO,SAGvC,IAAI1vD,EACA4jC,EAAM,GACV,IAAK5jC,EAAI,EAAGA,EAAI,GAAIA,IAChB4jC,EAAI5jC,GAAKyvD,GAAM9mD,EAAQ3I,EAAG0vD,EAAO,SAErC,OAAO9rB,CACX,CAUA,SAASisB,GAAiBC,EAAcnnD,EAAQnI,EAAOkvD,GACvB,kBAAjBI,GACHxsC,EAAS3a,KACTnI,EAAQmI,EACRA,OAAS5c,GAGb4c,EAASA,GAAU,KAGnBnI,EADAmI,EAASmnD,EAETA,GAAe,EAEXxsC,EAAS3a,KACTnI,EAAQmI,EACRA,OAAS5c,GAGb4c,EAASA,GAAU,IAGvB,IAEI3I,EAFAm5B,EAASwmB,KACT1+C,EAAQ6uD,EAAe32B,EAAOmqB,MAAMld,IAAM,EAE1CxC,EAAM,GAEV,GAAa,MAATpjC,EACA,OAAOivD,GAAM9mD,GAASnI,EAAQS,GAAS,EAAGyuD,EAAO,OAGrD,IAAK1vD,EAAI,EAAGA,EAAI,EAAGA,IACf4jC,EAAI5jC,GAAKyvD,GAAM9mD,GAAS3I,EAAIiB,GAAS,EAAGyuD,EAAO,OAEnD,OAAO9rB,CACX,CAzGA4rB,GAAQjqB,SA5+IR,SAAkBn7B,EAAKu/B,EAAKkB,GACxB,IAAI1wC,EAAS7J,KAAKy/D,UAAU3lD,IAAQ9Z,KAAKy/D,UAAoB,SAC7D,OAAOtqC,EAAWtrB,GAAUA,EAAOR,KAAKgwC,EAAKkB,GAAO1wC,CACxD,EA0+IAq1D,GAAQxqB,eAh3IR,SAAwB56B,GACpB,IAAIzB,EAASrY,KAAK0/D,gBAAgB5lD,GAC9B6lD,EAAc3/D,KAAK0/D,gBAAgB5lD,EAAIyB,eAE3C,OAAIlD,IAAWsnD,EACJtnD,GAGXrY,KAAK0/D,gBAAgB5lD,GAAO6lD,EACvBnqD,MAAM6rC,GACNljD,IAAI,SAAUyhE,GACX,MACY,SAARA,GACQ,OAARA,GACQ,OAARA,GACQ,SAARA,EAEOA,EAAIpvD,MAAM,GAEdovD,CACX,GACCp7D,KAAK,IAEHxE,KAAK0/D,gBAAgB5lD,GAChC,EAy1IAolD,GAAQzlB,YAr1IR,WACI,OAAOz5C,KAAK6/D,YAChB,EAo1IAX,GAAQtpB,QA/0IR,SAAiB1M,GACb,OAAOlpC,KAAK8/D,SAASvqD,QAAQ,KAAM2zB,EACvC,EA80IAg2B,GAAQvoB,SAAWikB,GACnBsE,GAAQzoB,WAAamkB,GACrBsE,GAAQ1pB,aA3zIR,SAAsBtM,EAAQkN,EAAe/0B,EAAQg1B,GACjD,IAAIxsC,EAAS7J,KAAK+/D,cAAc1+C,GAChC,OAAO8T,EAAWtrB,GACZA,EAAOq/B,EAAQkN,EAAe/0B,EAAQg1B,GACtCxsC,EAAO0L,QAAQ,MAAO2zB,EAChC,EAuzIAg2B,GAAQc,WArzIR,SAAoB7qD,EAAMtL,GACtB,IAAIwO,EAASrY,KAAK+/D,cAAc5qD,EAAO,EAAI,SAAW,QACtD,OAAOggB,EAAW9c,GAAUA,EAAOxO,GAAUwO,EAAO9C,QAAQ,MAAO1L,EACvE,EAmzIAq1D,GAAQrmD,IAxkJR,SAAaqnC,GACT,IAAI/kC,EAAMzL,EACV,IAAKA,KAAKwwC,EACFrD,EAAWqD,EAAQxwC,KAEfylB,EADJha,EAAO+kC,EAAOxwC,IAEV1P,KAAK0P,GAAKyL,EAEVnb,KAAK,IAAM0P,GAAKyL,GAI5Bnb,KAAKsvD,QAAUpP,EAIflgD,KAAKq6D,+BAAiC,IAAIljC,QACrCn3B,KAAKm6D,wBAAwBz5C,QAAU1gB,KAAKo6D,cAAc15C,QACvD,IACA,UAAUA,OAEtB,EAojJAw+C,GAAQllB,KAxnBR,SAAoBxjC,EAAG6B,GACnB,IAAI3I,EACA/J,EACAy8C,EACApI,EAAOh6C,KAAKigE,OAAS5Q,GAAU,MAAM4Q,MACzC,IAAKvwD,EAAI,EAAG/J,EAAIq0C,EAAKpxC,OAAQ8G,EAAI/J,IAAK+J,EASlC,OAPS,iBADMsqC,EAAKtqC,GAAGuqC,QAGfmI,EAAOxF,EAAM5C,EAAKtqC,GAAGuqC,OAAO+gB,QAAQ,OACpChhB,EAAKtqC,GAAGuqC,MAAQmI,EAAKjF,kBAIdnD,EAAKtqC,GAAG0qC,OACnB,IAAK,YACDJ,EAAKtqC,GAAG0qC,MAAQ,IAChB,MACJ,IAAK,SAEDgI,EAAOxF,EAAM5C,EAAKtqC,GAAG0qC,OAAO4gB,QAAQ,OAAO7d,UAC3CnD,EAAKtqC,GAAG0qC,MAAQgI,EAAKjF,UAIjC,OAAOnD,CACX,EA+lBAklB,GAAQjF,UA7lBR,SAAyBmD,EAAS/kD,EAAQwsB,GACtC,IAAIn1B,EACA/J,EAEAtH,EACA87C,EACAD,EAHAF,EAAOh6C,KAAKg6C,OAMhB,IAFAojB,EAAUA,EAAQ7hD,cAEb7L,EAAI,EAAG/J,EAAIq0C,EAAKpxC,OAAQ8G,EAAI/J,IAAK+J,EAKlC,GAJArR,EAAO27C,EAAKtqC,GAAGrR,KAAKkd,cACpB4+B,EAAOH,EAAKtqC,GAAGyqC,KAAK5+B,cACpB2+B,EAASF,EAAKtqC,GAAGwqC,OAAO3+B,cAEpBspB,EACA,OAAQxsB,GACJ,IAAK,IACL,IAAK,KACL,IAAK,MACD,GAAI8hC,IAASijB,EACT,OAAOpjB,EAAKtqC,GAEhB,MAEJ,IAAK,OACD,GAAIrR,IAAS++D,EACT,OAAOpjB,EAAKtqC,GAEhB,MAEJ,IAAK,QACD,GAAIwqC,IAAWkjB,EACX,OAAOpjB,EAAKtqC,QAIrB,GAAI,CAACrR,EAAM87C,EAAMD,GAAQt0C,QAAQw3D,IAAY,EAChD,OAAOpjB,EAAKtqC,EAGxB,EAsjBAwvD,GAAQvL,gBApjBR,SAA+BvV,EAAKsF,GAChC,IAAIjlC,EAAM2/B,EAAInE,OAASmE,EAAIhE,MAAQ,GAAM,EACzC,YAAa3+C,IAATioD,EACO9G,EAAMwB,EAAInE,OAAOyJ,OAEjB9G,EAAMwB,EAAInE,OAAOyJ,QAAUA,EAAOtF,EAAIzsB,QAAUlT,CAE/D,EA8iBAygD,GAAQrG,cA/cR,SAAuBlT,GAInB,OAHK9I,EAAW78C,KAAM,mBAClB84D,GAAiBzvD,KAAKrJ,MAEnB2lD,EAAW3lD,KAAKu5D,eAAiBv5D,KAAKq5D,UACjD,EA2cA6F,GAAQnF,cAvdR,SAAuBpU,GAInB,OAHK9I,EAAW78C,KAAM,mBAClB84D,GAAiBzvD,KAAKrJ,MAEnB2lD,EAAW3lD,KAAKs5D,eAAiBt5D,KAAKq5D,UACjD,EAmdA6F,GAAQlF,gBA1cR,SAAyBrU,GAIrB,OAHK9I,EAAW78C,KAAM,qBAClB84D,GAAiBzvD,KAAKrJ,MAEnB2lD,EAAW3lD,KAAKw5D,iBAAmBx5D,KAAKq5D,UACnD,EAucA6F,GAAQrwB,OAn1HR,SAAsBr4B,EAAG6B,GACrB,OAAK7B,EAKEzM,EAAQ/J,KAAKu1D,SACdv1D,KAAKu1D,QAAQ/+C,EAAE0iC,SACfl5C,KAAKu1D,SACAv1D,KAAKu1D,QAAQte,UAAY4S,IAAkB5uC,KAAK5C,GAC3C,SACA,cACR7B,EAAE0iC,SAVCnvC,EAAQ/J,KAAKu1D,SACdv1D,KAAKu1D,QACLv1D,KAAKu1D,QAAoB,UASvC,EAu0HA2J,GAAQhrB,YAr0HR,SAA2B19B,EAAG6B,GAC1B,OAAK7B,EAKEzM,EAAQ/J,KAAKkgE,cACdlgE,KAAKkgE,aAAa1pD,EAAE0iC,SACpBl5C,KAAKkgE,aACDrW,GAAiB5uC,KAAK5C,GAAU,SAAW,cAC7C7B,EAAE0iC,SARCnvC,EAAQ/J,KAAKkgE,cACdlgE,KAAKkgE,aACLlgE,KAAKkgE,aAAyB,UAO5C,EA2zHAhB,GAAQpnB,YA1wHR,SAA2BmS,EAAW5xC,EAAQwsB,GAC1C,IAAIn1B,EAAG2pC,EAAK1gB,EAEZ,GAAI34B,KAAKmgE,kBACL,OAAOnW,GAAkB3gD,KAAKrJ,KAAMiqD,EAAW5xC,EAAQwsB,GAY3D,IATK7kC,KAAKqqD,eACNrqD,KAAKqqD,aAAe,GACpBrqD,KAAKsqD,iBAAmB,GACxBtqD,KAAKuqD,kBAAoB,IAMxB76C,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAmBrB,GAjBA2pC,EAAM+D,EAAU,CAAC,IAAM1tC,IACnBm1B,IAAW7kC,KAAKsqD,iBAAiB56C,KACjC1P,KAAKsqD,iBAAiB56C,GAAK,IAAIynB,OAC3B,IAAMn3B,KAAK6uC,OAAOwK,EAAK,IAAI9jC,QAAQ,IAAK,IAAM,IAC9C,KAEJvV,KAAKuqD,kBAAkB76C,GAAK,IAAIynB,OAC5B,IAAMn3B,KAAKk0C,YAAYmF,EAAK,IAAI9jC,QAAQ,IAAK,IAAM,IACnD,MAGHsvB,GAAW7kC,KAAKqqD,aAAa36C,KAC9BipB,EACI,IAAM34B,KAAK6uC,OAAOwK,EAAK,IAAM,KAAOr5C,KAAKk0C,YAAYmF,EAAK,IAC9Dr5C,KAAKqqD,aAAa36C,GAAK,IAAIynB,OAAOwB,EAAMpjB,QAAQ,IAAK,IAAK,MAI1DsvB,GACW,SAAXxsB,GACArY,KAAKsqD,iBAAiB56C,GAAGuL,KAAKgvC,GAE9B,OAAOv6C,EACJ,GACHm1B,GACW,QAAXxsB,GACArY,KAAKuqD,kBAAkB76C,GAAGuL,KAAKgvC,GAE/B,OAAOv6C,EACJ,IAAKm1B,GAAU7kC,KAAKqqD,aAAa36C,GAAGuL,KAAKgvC,GAC5C,OAAOv6C,CAEf,CACJ,EAwtHAwvD,GAAQnnB,YAtpHR,SAAqB4N,GACjB,OAAI3lD,KAAKmgE,mBACAtjB,EAAW78C,KAAM,iBAClB2qD,GAAmBthD,KAAKrJ,MAExB2lD,EACO3lD,KAAKorD,mBAELprD,KAAKkrD,eAGXrO,EAAW78C,KAAM,kBAClBA,KAAKkrD,aAAenB,IAEjB/pD,KAAKorD,oBAAsBzF,EAC5B3lD,KAAKorD,mBACLprD,KAAKkrD,aAEnB,EAqoHAgU,GAAQ3nB,iBA3qHR,SAA0BoO,GACtB,OAAI3lD,KAAKmgE,mBACAtjB,EAAW78C,KAAM,iBAClB2qD,GAAmBthD,KAAKrJ,MAExB2lD,EACO3lD,KAAKqrD,wBAELrrD,KAAKmrD,oBAGXtO,EAAW78C,KAAM,uBAClBA,KAAKmrD,kBAAoBrB,IAEtB9pD,KAAKqrD,yBAA2B1F,EACjC3lD,KAAKqrD,wBACLrrD,KAAKmrD,kBAEnB,EA0pHA+T,GAAQrpB,KAj+GR,SAAoBwD,GAChB,OAAOyS,GAAWzS,EAAKr5C,KAAKgzD,MAAMld,IAAK91C,KAAKgzD,MAAMjd,KAAKF,IAC3D,EAg+GAqpB,GAAQkB,eAr9GR,WACI,OAAOpgE,KAAKgzD,MAAMjd,GACtB,EAo9GAmpB,GAAQmB,eA19GR,WACI,OAAOrgE,KAAKgzD,MAAMld,GACtB,EA09GAopB,GAAQ/qB,SAj3GR,SAAwB39B,EAAG6B,GACvB,IAAI87B,EAAWpqC,EAAQ/J,KAAKsgE,WACtBtgE,KAAKsgE,UACLtgE,KAAKsgE,UACD9pD,IAAW,IAANA,GAAcxW,KAAKsgE,UAAUrpB,SAASh8B,KAAK5C,GAC1C,SACA,cAEhB,OAAa,IAAN7B,EACD21C,GAAchY,EAAUn0C,KAAKgzD,MAAMld,KACnCt/B,EACE29B,EAAS39B,EAAE0gC,OACX/C,CACZ,EAq2GA+qB,GAAQ7qB,YA31GR,SAA2B79B,GACvB,OAAa,IAANA,EACD21C,GAAcnsD,KAAKugE,aAAcvgE,KAAKgzD,MAAMld,KAC5Ct/B,EACExW,KAAKugE,aAAa/pD,EAAE0gC,OACpBl3C,KAAKugE,YACjB,EAs1GArB,GAAQ9qB,cAp2GR,SAA6B59B,GACzB,OAAa,IAANA,EACD21C,GAAcnsD,KAAKwgE,eAAgBxgE,KAAKgzD,MAAMld,KAC9Ct/B,EACExW,KAAKwgE,eAAehqD,EAAE0gC,OACtBl3C,KAAKwgE,cACjB,EA+1GAtB,GAAQjnB,cA5wGR,SAA6B6U,EAAaz0C,EAAQwsB,GAC9C,IAAIn1B,EAAG2pC,EAAK1gB,EAEZ,GAAI34B,KAAKygE,oBACL,OAAO5T,GAAoBxjD,KAAKrJ,KAAM8sD,EAAaz0C,EAAQwsB,GAU/D,IAPK7kC,KAAK+sD,iBACN/sD,KAAK+sD,eAAiB,GACtB/sD,KAAKitD,kBAAoB,GACzBjtD,KAAKgtD,oBAAsB,GAC3BhtD,KAAK0gE,mBAAqB,IAGzBhxD,EAAI,EAAGA,EAAI,EAAGA,IAAK,CA6BpB,GA1BA2pC,EAAM+D,EAAU,CAAC,IAAM,IAAIlG,IAAIxnC,GAC3Bm1B,IAAW7kC,KAAK0gE,mBAAmBhxD,KACnC1P,KAAK0gE,mBAAmBhxD,GAAK,IAAIynB,OAC7B,IAAMn3B,KAAKm0C,SAASkF,EAAK,IAAI9jC,QAAQ,IAAK,QAAU,IACpD,KAEJvV,KAAKgtD,oBAAoBt9C,GAAK,IAAIynB,OAC9B,IAAMn3B,KAAKo0C,cAAciF,EAAK,IAAI9jC,QAAQ,IAAK,QAAU,IACzD,KAEJvV,KAAKitD,kBAAkBv9C,GAAK,IAAIynB,OAC5B,IAAMn3B,KAAKq0C,YAAYgF,EAAK,IAAI9jC,QAAQ,IAAK,QAAU,IACvD,MAGHvV,KAAK+sD,eAAer9C,KACrBipB,EACI,IACA34B,KAAKm0C,SAASkF,EAAK,IACnB,KACAr5C,KAAKo0C,cAAciF,EAAK,IACxB,KACAr5C,KAAKq0C,YAAYgF,EAAK,IAC1Br5C,KAAK+sD,eAAer9C,GAAK,IAAIynB,OAAOwB,EAAMpjB,QAAQ,IAAK,IAAK,MAI5DsvB,GACW,SAAXxsB,GACArY,KAAK0gE,mBAAmBhxD,GAAGuL,KAAK6xC,GAEhC,OAAOp9C,EACJ,GACHm1B,GACW,QAAXxsB,GACArY,KAAKgtD,oBAAoBt9C,GAAGuL,KAAK6xC,GAEjC,OAAOp9C,EACJ,GACHm1B,GACW,OAAXxsB,GACArY,KAAKitD,kBAAkBv9C,GAAGuL,KAAK6xC,GAE/B,OAAOp9C,EACJ,IAAKm1B,GAAU7kC,KAAK+sD,eAAer9C,GAAGuL,KAAK6xC,GAC9C,OAAOp9C,CAEf,CACJ,EA6sGAwvD,GAAQ5S,cAlqGR,SAAuB3G,GACnB,OAAI3lD,KAAKygE,qBACA5jB,EAAW78C,KAAM,mBAClBktD,GAAqB7jD,KAAKrJ,MAE1B2lD,EACO3lD,KAAK0tD,qBAEL1tD,KAAKutD,iBAGX1Q,EAAW78C,KAAM,oBAClBA,KAAKutD,eAAiBb,IAEnB1sD,KAAK0tD,sBAAwB/H,EAC9B3lD,KAAK0tD,qBACL1tD,KAAKutD,eAEnB,EAipGA2R,GAAQ7S,mBA/oGR,SAA4B1G,GACxB,OAAI3lD,KAAKygE,qBACA5jB,EAAW78C,KAAM,mBAClBktD,GAAqB7jD,KAAKrJ,MAE1B2lD,EACO3lD,KAAK2tD,0BAEL3tD,KAAKwtD,sBAGX3Q,EAAW78C,KAAM,yBAClBA,KAAKwtD,oBAAsBb,IAExB3sD,KAAK2tD,2BAA6BhI,EACnC3lD,KAAK2tD,0BACL3tD,KAAKwtD,oBAEnB,EA8nGA0R,GAAQ9S,iBA5nGR,SAA0BzG,GACtB,OAAI3lD,KAAKygE,qBACA5jB,EAAW78C,KAAM,mBAClBktD,GAAqB7jD,KAAKrJ,MAE1B2lD,EACO3lD,KAAK4tD,wBAEL5tD,KAAKytD,oBAGX5Q,EAAW78C,KAAM,uBAClBA,KAAKytD,kBAAoBb,IAEtB5sD,KAAK4tD,yBAA2BjI,EACjC3lD,KAAK4tD,wBACL5tD,KAAKytD,kBAEnB,EA4mGAyR,GAAQ3qB,KAn8FR,SAAoB3qC,GAGhB,MAAgD,OAAxCA,EAAQ,IAAI2M,cAAcqW,OAAO,EAC7C,EAg8FAsyC,GAAQ1qB,SAv7FR,SAAwBxF,EAAOC,EAASwF,GACpC,OAAIzF,EAAQ,GACDyF,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,EA6gGA2a,GAAmB,KAAM,CACrBpV,KAAM,CACF,CACIC,MAAO,aACPG,MAAO,IACPzoB,OAAQ,EACRtzB,KAAM,cACN67C,OAAQ,KACRC,KAAM,MAEV,CACIF,MAAO,aACPG,OAAO,IACPzoB,OAAQ,EACRtzB,KAAM,gBACN67C,OAAQ,KACRC,KAAM,OAGdxE,uBAAwB,uBACxBC,QAAS,SAAU1M,GACf,IAAIxpC,EAAIwpC,EAAS,GAWjB,OAAOA,GATgC,IAA/Bgd,GAAOhd,EAAS,IAAO,IACjB,KACM,IAANxpC,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,IAKJk9C,EAAMsb,KAAOp9C,EACT,wDACAs0C,IAEJxS,EAAM+jB,SAAW7lD,EACb,gEACAu0C,IAGJ,IAAIuR,GAAU9wD,KAAKmK,IAmBnB,SAAS4mD,GAAcpyB,EAAU7kC,EAAO9O,EAAOm8D,GAC3C,IAAIrC,EAAQ6B,GAAe7sD,EAAO9O,GAMlC,OAJA2zC,EAAS4mB,eAAiB4B,EAAYrC,EAAMS,cAC5C5mB,EAAS6mB,OAAS2B,EAAYrC,EAAMU,MACpC7mB,EAAS8mB,SAAW0B,EAAYrC,EAAMW,QAE/B9mB,EAAS+mB,SACpB,CAYA,SAASsL,GAAQ53B,GACb,OAAIA,EAAS,EACFp5B,KAAK0hC,MAAMtI,GAEXp5B,KAAKm2C,KAAK/c,EAEzB,CAyDA,SAAS63B,GAAahyB,GAGlB,OAAe,KAAPA,EAAe,MAC3B,CAEA,SAASiyB,GAAanyB,GAElB,OAAiB,OAATA,EAAmB,IAC/B,CA8CA,SAASoyB,GAAOC,GACZ,OAAO,WACH,OAAOlhE,KAAKsxC,GAAG4vB,EACnB,CACJ,CAEA,IAAI9yB,GAAiB6yB,GAAO,MACxBE,GAAYF,GAAO,KACnBG,GAAYH,GAAO,KACnBI,GAAUJ,GAAO,KACjBK,GAASL,GAAO,KAChBM,GAAUN,GAAO,KACjB5yB,GAAW4yB,GAAO,KAClBO,GAAaP,GAAO,KACpBQ,GAAUR,GAAO,KACjBS,GAAYtzB,GAWhB,SAASuzB,GAAWtjE,GAChB,OAAO,WACH,OAAO2B,KAAKsuC,UAAYtuC,KAAKwzC,MAAMn1C,GAAQ6gD,GAC/C,CACJ,CAEA,IAAI/P,GAAewyB,GAAW,gBAC1BzyB,GAAUyyB,GAAW,WACrB1yB,GAAU0yB,GAAW,WACrB3yB,GAAQ2yB,GAAW,SACnB5yB,GAAO4yB,GAAW,QAClB9yB,GAAS8yB,GAAW,UACpB/yB,GAAQ+yB,GAAW,SAMvB,IAAI/vB,GAAQ9hC,KAAK8hC,MACbgwB,GAAa,CACTn2B,GAAI,GACJ/M,EAAG,GACHloB,EAAG,GACHm1B,EAAG,GACHE,EAAG,GACHE,EAAG,KACHE,EAAG,IAIX,SAAS41B,GAAkBxgD,EAAQ6nB,EAAQkN,EAAeC,EAAUxN,GAChE,OAAOA,EAAO2M,aAAatM,GAAU,IAAKkN,EAAe/0B,EAAQg1B,EACrE,CAmGA,IAAIyrB,GAAQhyD,KAAKmK,IAEjB,SAAS27C,GAAKnM,GACV,OAAQA,EAAI,IAAMA,EAAI,KAAOA,CACjC,CAEA,SAASsY,KAQL,IAAK/hE,KAAKsuC,UACN,OAAOtuC,KAAKyvC,aAAagK,cAG7B,IAGIxK,EACAD,EACAJ,EACAlQ,EAEAsjC,EACAC,EACAC,EACAC,EAXAjzB,EAAU4yB,GAAM9hE,KAAKq1D,eAAiB,IACtCtmB,EAAO+yB,GAAM9hE,KAAKs1D,OAClBzmB,EAASizB,GAAM9hE,KAAKu1D,SAKpB6M,EAAQpiE,KAAKmhE,YAMjB,OAAKiB,GAOLnzB,EAAU+W,GAAS9W,EAAU,IAC7BF,EAAQgX,GAAS/W,EAAU,IAC3BC,GAAW,GACXD,GAAW,GAGXL,EAAQoX,GAASnX,EAAS,IAC1BA,GAAU,GAGVnQ,EAAIwQ,EAAUA,EAAQ3E,QAAQ,GAAGh1B,QAAQ,SAAU,IAAM,GAEzDysD,EAAYI,EAAQ,EAAI,IAAM,GAC9BH,EAASrM,GAAK51D,KAAKu1D,WAAaK,GAAKwM,GAAS,IAAM,GACpDF,EAAWtM,GAAK51D,KAAKs1D,SAAWM,GAAKwM,GAAS,IAAM,GACpDD,EAAUvM,GAAK51D,KAAKq1D,iBAAmBO,GAAKwM,GAAS,IAAM,GAGvDJ,EACA,KACCpzB,EAAQqzB,EAASrzB,EAAQ,IAAM,KAC/BC,EAASozB,EAASpzB,EAAS,IAAM,KACjCE,EAAOmzB,EAAWnzB,EAAO,IAAM,KAC/BC,GAASC,GAAWC,EAAU,IAAM,KACpCF,EAAQmzB,EAAUnzB,EAAQ,IAAM,KAChCC,EAAUkzB,EAAUlzB,EAAU,IAAM,KACpCC,EAAUizB,EAAUzjC,EAAI,IAAM,KA9BxB,KAgCf,CAEA,IAAI2jC,GAAUpN,GAAS9rD,UAwGvB,OAtGAk5D,GAAQ/zB,QAp0ER,WACI,OAAOtuC,KAAKg/C,QAChB,EAm0EAqjB,GAAQpoD,IA/XR,WACI,IAAIhG,EAAOjU,KAAKwzC,MAahB,OAXAxzC,KAAKq1D,cAAgBuL,GAAQ5gE,KAAKq1D,eAClCr1D,KAAKs1D,MAAQsL,GAAQ5gE,KAAKs1D,OAC1Bt1D,KAAKu1D,QAAUqL,GAAQ5gE,KAAKu1D,SAE5BthD,EAAKk7B,aAAeyxB,GAAQ3sD,EAAKk7B,cACjCl7B,EAAKi7B,QAAU0xB,GAAQ3sD,EAAKi7B,SAC5Bj7B,EAAKg7B,QAAU2xB,GAAQ3sD,EAAKg7B,SAC5Bh7B,EAAK+6B,MAAQ4xB,GAAQ3sD,EAAK+6B,OAC1B/6B,EAAK46B,OAAS+xB,GAAQ3sD,EAAK46B,QAC3B56B,EAAK26B,MAAQgyB,GAAQ3sD,EAAK26B,OAEnB5uC,IACX,EAiXAqiE,GAAQx9D,IApWR,SAAe+E,EAAO9O,GAClB,OAAO+lE,GAAc7gE,KAAM4J,EAAO9O,EAAO,EAC7C,EAmWAunE,GAAQ5wB,SAhWR,SAAoB7nC,EAAO9O,GACvB,OAAO+lE,GAAc7gE,KAAM4J,EAAO9O,GAAQ,EAC9C,EA+VAunE,GAAQ/wB,GAnRR,SAAYyJ,GACR,IAAK/6C,KAAKsuC,UACN,OAAO4Q,IAEX,IAAInQ,EACAF,EACAM,EAAenvC,KAAKq1D,cAIxB,GAAc,WAFdta,EAAQ4I,EAAe5I,KAEY,YAAVA,GAAiC,SAAVA,EAG5C,OAFAhM,EAAO/uC,KAAKs1D,MAAQnmB,EAAe,MACnCN,EAAS7uC,KAAKu1D,QAAUwL,GAAahyB,GAC7BgM,GACJ,IAAK,QACD,OAAOlM,EACX,IAAK,UACD,OAAOA,EAAS,EACpB,IAAK,OACD,OAAOA,EAAS,QAKxB,OADAE,EAAO/uC,KAAKs1D,MAAQxlD,KAAK8hC,MAAMovB,GAAahhE,KAAKu1D,UACzCxa,GACJ,IAAK,OACD,OAAOhM,EAAO,EAAII,EAAe,OACrC,IAAK,MACD,OAAOJ,EAAOI,EAAe,MACjC,IAAK,OACD,OAAc,GAAPJ,EAAYI,EAAe,KACtC,IAAK,SACD,OAAc,KAAPJ,EAAcI,EAAe,IACxC,IAAK,SACD,OAAc,MAAPJ,EAAeI,EAAe,IAEzC,IAAK,cACD,OAAOr/B,KAAK0hC,MAAa,MAAPzC,GAAgBI,EACtC,QACI,MAAM,IAAIlzC,MAAM,gBAAkB8+C,GAGlD,EA0OAsnB,GAAQj0B,eAAiBA,GACzBi0B,GAAQlB,UAAYA,GACpBkB,GAAQjB,UAAYA,GACpBiB,GAAQhB,QAAUA,GAClBgB,GAAQf,OAASA,GACjBe,GAAQd,QAAUA,GAClBc,GAAQh0B,SAAWA,GACnBg0B,GAAQb,WAAaA,GACrBa,GAAQZ,QAAUA,GAClBY,GAAQllB,QAAUukB,GAClBW,GAAQ7M,QAhWR,WACI,IAIItmB,EACAD,EACAD,EACAJ,EACA0zB,EARAnzB,EAAenvC,KAAKq1D,cACpBtmB,EAAO/uC,KAAKs1D,MACZzmB,EAAS7uC,KAAKu1D,QACdthD,EAAOjU,KAAKwzC,MAgDhB,OArCSrE,GAAgB,GAAKJ,GAAQ,GAAKF,GAAU,GAC5CM,GAAgB,GAAKJ,GAAQ,GAAKF,GAAU,IAGjDM,GAAuD,MAAvC2xB,GAAQE,GAAanyB,GAAUE,GAC/CA,EAAO,EACPF,EAAS,GAKb56B,EAAKk7B,aAAeA,EAAe,IAEnCD,EAAU8W,GAAS7W,EAAe,KAClCl7B,EAAKi7B,QAAUA,EAAU,GAEzBD,EAAU+W,GAAS9W,EAAU,IAC7Bj7B,EAAKg7B,QAAUA,EAAU,GAEzBD,EAAQgX,GAAS/W,EAAU,IAC3Bh7B,EAAK+6B,MAAQA,EAAQ,GAErBD,GAAQiX,GAAShX,EAAQ,IAIzBH,GADAyzB,EAAiBtc,GAAS+a,GAAahyB,IAEvCA,GAAQ+xB,GAAQE,GAAasB,IAG7B1zB,EAAQoX,GAASnX,EAAS,IAC1BA,GAAU,GAEV56B,EAAK86B,KAAOA,EACZ96B,EAAK46B,OAASA,EACd56B,EAAK26B,MAAQA,EAEN5uC,IACX,EA4SAqiE,GAAQpM,MAlOR,WACI,OAAOQ,GAAez2D,KAC1B,EAiOAqiE,GAAQzpD,IA/NR,SAAemiC,GAEX,OADAA,EAAQ4I,EAAe5I,GAChB/6C,KAAKsuC,UAAYtuC,KAAK+6C,EAAQ,OAASmE,GAClD,EA6NAmjB,GAAQlzB,aAAeA,GACvBkzB,GAAQnzB,QAAUA,GAClBmzB,GAAQpzB,QAAUA,GAClBozB,GAAQrzB,MAAQA,GAChBqzB,GAAQtzB,KAAOA,GACfszB,GAAQvzB,MAlNR,WACI,OAAOkX,GAAShmD,KAAK+uC,OAAS,EAClC,EAiNAszB,GAAQxzB,OAASA,GACjBwzB,GAAQzzB,MAAQA,GAChByzB,GAAQntD,SAlIR,SAAkBqtD,EAAeC,GAC7B,IAAKxiE,KAAKsuC,UACN,OAAOtuC,KAAKyvC,aAAagK,cAG7B,IAEI5Q,EACAh/B,EAHA44D,GAAa,EACbC,EAAKd,GAyBT,MArB6B,iBAAlBW,IACPC,EAAgBD,EAChBA,GAAgB,GAES,kBAAlBA,IACPE,EAAaF,GAEY,iBAAlBC,IACPE,EAAK/nE,OAAOe,OAAO,CAAC,EAAGkmE,GAAYY,GACZ,MAAnBA,EAAc9jC,GAAiC,MAApB8jC,EAAc/2B,KACzCi3B,EAAGj3B,GAAK+2B,EAAc9jC,EAAI,IAKlC70B,EAxFJ,SAAwB84D,EAAgBvsB,EAAewrB,EAAY/4B,GAC/D,IAAI4F,EAAWgoB,GAAekM,GAAgB1oD,MAC1Ci1B,EAAU0C,GAAMnD,EAAS6C,GAAG,MAC5BrC,EAAU2C,GAAMnD,EAAS6C,GAAG,MAC5BtC,EAAQ4C,GAAMnD,EAAS6C,GAAG,MAC1BvC,EAAO6C,GAAMnD,EAAS6C,GAAG,MACzBzC,EAAS+C,GAAMnD,EAAS6C,GAAG,MAC3BxC,EAAQ8C,GAAMnD,EAAS6C,GAAG,MAC1B1C,EAAQgD,GAAMnD,EAAS6C,GAAG,MAC1B7xC,EACKyvC,GAAW0yB,EAAWn2B,IAAM,CAAC,IAAKyD,IAClCA,EAAU0yB,EAAWljC,GAAK,CAAC,KAAMwQ,IACjCD,GAAW,GAAK,CAAC,MACjBA,EAAU2yB,EAAWprD,GAAK,CAAC,KAAMy4B,IACjCD,GAAS,GAAK,CAAC,MACfA,EAAQ4yB,EAAWj2B,GAAK,CAAC,KAAMqD,IAC/BD,GAAQ,GAAK,CAAC,MACdA,EAAO6yB,EAAW/1B,GAAK,CAAC,KAAMkD,GAgBvC,OAdoB,MAAhB6yB,EAAW71B,IACXtsC,EACIA,GACCqvC,GAAS,GAAK,CAAC,MACfA,EAAQ8yB,EAAW71B,GAAK,CAAC,KAAM+C,KAExCrvC,EAAIA,GACCovC,GAAU,GAAK,CAAC,MAChBA,EAAS+yB,EAAW31B,GAAK,CAAC,KAAM4C,IAChCD,GAAS,GAAK,CAAC,MAAS,CAAC,KAAMA,IAElC,GAAKwH,EACP32C,EAAE,IAAMkjE,EAAiB,EACzBljE,EAAE,GAAKopC,EACAg5B,GAAkBnvD,MAAM,KAAMjT,EACzC,CAsDamjE,CAAe5iE,MAAOyiE,EAAYC,EAD3C75B,EAAS7oC,KAAKyvC,cAGVgzB,IACA54D,EAASg/B,EAAOm3B,YAAYhgE,KAAM6J,IAG/Bg/B,EAAO4N,WAAW5sC,EAC7B,EAmGAw4D,GAAQ1nD,YAAconD,GACtBM,GAAQtkC,SAAWgkC,GACnBM,GAAQpF,OAAS8E,GACjBM,GAAQx5B,OAASA,GACjBw5B,GAAQ5yB,WAAaA,GAErB4yB,GAAQQ,YAAc/nD,EAClB,sFACAinD,IAEJM,GAAQnK,KAAOA,GAIfzW,EAAe,IAAK,EAAG,EAAG,QAC1BA,EAAe,IAAK,EAAG,EAAG,WAI1BgE,GAAc,IAAKN,IACnBM,GAAc,IA5wJO,wBA6wJrBY,GAAc,IAAK,SAAUz8C,EAAOmX,EAAOm/B,GACvCA,EAAOxB,GAAK,IAAIzmC,KAAyB,IAApBkyB,WAAWvgC,GACpC,GACAy8C,GAAc,IAAK,SAAUz8C,EAAOmX,EAAOm/B,GACvCA,EAAOxB,GAAK,IAAIzmC,KAAKiuC,GAAMt8C,GAC/B,GAIAgzC,EAAMkmB,QAAU,SAn/KZnmB,EAq/KYoW,GAEhBnW,EAAM51C,GAAK2zD,GACX/d,EAAM7sC,IA77EN,WAGI,OAAO+kD,GAAO,WAFH,GAAGtkD,MAAMnH,KAAK3E,UAAW,GAGxC,EA07EAk4C,EAAMhtC,IAx7EN,WAGI,OAAOklD,GAAO,UAFH,GAAGtkD,MAAMnH,KAAK3E,UAAW,GAGxC,EAq7EAk4C,EAAMrC,IAn7EI,WACN,OAAOtiC,KAAKsiC,IAAMtiC,KAAKsiC,OAAS,IAAItiC,IACxC,EAk7EA2kC,EAAMU,IAAMF,EACZR,EAAMsgB,KA9nBN,SAAoBtzD,GAChB,OAAOmpD,GAAoB,IAARnpD,EACvB,EA6nBAgzC,EAAM/N,OAtgBN,SAAoBx2B,EAAQnI,GACxB,OAAOovD,GAAejnD,EAAQnI,EAAO,SACzC,EAqgBA0sC,EAAMK,OAASA,EACfL,EAAM/T,OAASumB,GACfxS,EAAMjyC,QAAUs0C,EAChBrC,EAAMnO,SAAWgoB,GACjB7Z,EAAMwD,SAAWA,EACjBxD,EAAMzI,SApgBN,SAAsBqrB,EAAcnnD,EAAQnI,GACxC,OAAOqvD,GAAiBC,EAAcnnD,EAAQnI,EAAO,WACzD,EAmgBA0sC,EAAMuhB,UAloBN,WACI,OAAOpL,GAAYrgD,MAAM,KAAMhO,WAAWy5D,WAC9C,EAioBAvhB,EAAMnN,WAAa4f,GACnBzS,EAAM6Y,WAAaA,GACnB7Y,EAAM1I,YA5gBN,SAAyB77B,EAAQnI,GAC7B,OAAOovD,GAAejnD,EAAQnI,EAAO,cACzC,EA2gBA0sC,EAAMvI,YAjgBN,SAAyBmrB,EAAcnnD,EAAQnI,GAC3C,OAAOqvD,GAAiBC,EAAcnnD,EAAQnI,EAAO,cACzD,EAggBA0sC,EAAM3I,aAAeA,GACrB2I,EAAMhJ,aA90GN,SAAsBv1C,EAAM6hD,GACxB,GAAc,MAAVA,EAAgB,CAChB,IAAIrX,EACAk6B,EACAliB,EAAe2N,GAEE,MAAjBC,GAAQpwD,IAA+C,MAA9BowD,GAAQpwD,GAAMkxD,aAEvCd,GAAQpwD,GAAMwa,IAAI+nC,EAAa6N,GAAQpwD,GAAMixD,QAASpP,KAIrC,OADjB6iB,EAAY/T,GAAW3wD,MAEnBwiD,EAAekiB,EAAUzT,SAE7BpP,EAASU,EAAaC,EAAcX,GACnB,MAAb6iB,IAIA7iB,EAAO/F,KAAO97C,IAElBwqC,EAAS,IAAIkY,EAAOb,IACbqP,aAAed,GAAQpwD,GAC9BowD,GAAQpwD,GAAQwqC,GAIpBumB,GAAmB/wD,EACvB,MAEyB,MAAjBowD,GAAQpwD,KAC0B,MAA9BowD,GAAQpwD,GAAMkxD,cACdd,GAAQpwD,GAAQowD,GAAQpwD,GAAMkxD,aAC1BlxD,IAAS+wD,MACTA,GAAmB/wD,IAEC,MAAjBowD,GAAQpwD,WACRowD,GAAQpwD,IAI3B,OAAOowD,GAAQpwD,EACnB,EAoyGAu+C,EAAM6R,QA1wGN,WACI,OAAO50C,EAAK40C,GAChB,EAywGA7R,EAAMxI,cAzgBN,SAA2BorB,EAAcnnD,EAAQnI,GAC7C,OAAOqvD,GAAiBC,EAAcnnD,EAAQnI,EAAO,gBACzD,EAwgBA0sC,EAAM+G,eAAiBA,EACvB/G,EAAMomB,qBAtNN,SAAoCC,GAChC,YAAyBxnE,IAArBwnE,EACOrxB,GAEqB,mBAArBqxB,IACPrxB,GAAQqxB,GACD,EAGf,EA8MArmB,EAAMsmB,sBA3MN,SAAqCC,EAAW7xD,GAC5C,YAA8B7V,IAA1BmmE,GAAWuB,UAGD1nE,IAAV6V,EACOswD,GAAWuB,IAEtBvB,GAAWuB,GAAa7xD,EACN,MAAd6xD,IACAvB,GAAWn2B,GAAKn6B,EAAQ,IAErB,GACX,EAgMAsrC,EAAMqe,eAx1DN,SAA2BmI,EAAU7oB,GACjC,IAAIplC,EAAOiuD,EAASjuD,KAAKolC,EAAK,QAAQ,GACtC,OAAOplC,GAAQ,EACT,WACAA,GAAQ,EACN,WACAA,EAAO,EACL,UACAA,EAAO,EACL,UACAA,EAAO,EACL,UACAA,EAAO,EACL,WACA,UACpB,EA00DAynC,EAAMzzC,UAAYwxD,GAGlB/d,EAAMymB,UAAY,CACdC,eAAgB,mBAChBC,uBAAwB,sBACxBC,kBAAmB,0BACnB3c,KAAM,aACN4c,KAAM,QACNC,aAAc,WACdC,QAAS,eACTzc,KAAM,aACNN,MAAO,WAGJhK,CAEV,CAhjLmF9Y,E,UCHpF,IAAIpF,EAAI,IACJloB,EAAQ,GAAJkoB,EACJiN,EAAQ,GAAJn1B,EACJq1B,EAAQ,GAAJF,EACJI,EAAQ,EAAJF,EAsJR,SAAS+M,EAAO1gC,EAAI0rD,EAAOpyD,EAAGnT,GAC5B,IAAIwlE,EAAWD,GAAa,IAAJpyD,EACxB,OAAO1B,KAAK8hC,MAAM15B,EAAK1G,GAAK,IAAMnT,GAAQwlE,EAAW,IAAM,GAC7D,CAxIAz6D,EAAOvO,QAAU,SAAU0d,EAAK9R,GAC9BA,EAAUA,GAAW,CAAC,EACtB,IA8GeyR,EACX0rD,EA/GA14D,SAAcqN,EAClB,GAAa,WAATrN,GAAqBqN,EAAI3P,OAAS,EACpC,OAkBJ,SAAe8S,GAEb,MADAA,EAAM4X,OAAO5X,IACL9S,OAAS,KAAjB,CAGA,IAAI4M,EAAQ,mIAAmI0uB,KAC7IxoB,GAEF,GAAKlG,EAAL,CAGA,IAAIhE,EAAI24B,WAAW30B,EAAM,IAEzB,QADYA,EAAM,IAAM,MAAMe,eAE5B,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACH,OAzDEs1B,SAyDKr6B,EACT,IAAK,QACL,IAAK,OACL,IAAK,IACH,OAAOA,EAAIu6B,EACb,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAOv6B,EAAIq6B,EACb,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACH,OAAOr6B,EAAIm6B,EACb,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAOn6B,EAAIgF,EACb,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAOhF,EAAIktB,EACb,IAAK,eACL,IAAK,cACL,IAAK,QACL,IAAK,OACL,IAAK,KACH,OAAOltB,EACT,QACE,OA3CJ,CANA,CAmDF,CAzEW9H,CAAM6O,GACR,GAAa,WAATrN,GAAqB45B,SAASvsB,GACvC,OAAO9R,EAAQq9D,MA0GF5rD,EA1GiBK,GA2G5BqrD,EAAQ9zD,KAAKmK,IAAI/B,KACR2zB,EACJ+M,EAAO1gC,EAAI0rD,EAAO/3B,EAAG,OAE1B+3B,GAASj4B,EACJiN,EAAO1gC,EAAI0rD,EAAOj4B,EAAG,QAE1Bi4B,GAASptD,EACJoiC,EAAO1gC,EAAI0rD,EAAOptD,EAAG,UAE1BotD,GAASllC,EACJka,EAAO1gC,EAAI0rD,EAAOllC,EAAG,UAEvBxmB,EAAK,OAvCd,SAAkBA,GAChB,IAAI0rD,EAAQ9zD,KAAKmK,IAAI/B,GACrB,OAAI0rD,GAAS/3B,EACJ/7B,KAAK8hC,MAAM15B,EAAK2zB,GAAK,IAE1B+3B,GAASj4B,EACJ77B,KAAK8hC,MAAM15B,EAAKyzB,GAAK,IAE1Bi4B,GAASptD,EACJ1G,KAAK8hC,MAAM15B,EAAK1B,GAAK,IAE1BotD,GAASllC,EACJ5uB,KAAK8hC,MAAM15B,EAAKwmB,GAAK,IAEvBxmB,EAAK,IACd,CAhGyC6rD,CAASxrD,GAEhD,MAAM,IAAItc,MACR,wDACEsb,KAAKhO,UAAUgP,GAErB,C,2BCnCA,MAAMtd,EAAK,EAAQ,MAiMnBmO,EAAOvO,QAxLP,MACI,WAAAiF,CAAYkkE,EAAMv9D,IACdA,EAAUA,GAAW,CAAC,GAETw9D,YAAWx9D,EAAQw9D,UAAY,MAGxCjkE,KAAK6a,GADW,iBAATmpD,EACGA,EAEA/oE,EAAGipE,SAASF,EAAM,KAGhChkE,KAAKyG,QAAUA,EACfzG,KAAKmkE,QAlBI,IAkBMnkE,KAAK6a,GAEpB7a,KAAKokE,OACT,CAEA,eAAAC,CAAgBhzC,GACZ,IAAK,IAAI3hB,EAAI,EAAGA,EAAI2hB,EAAOzoB,OAAQ8G,IAAK,CACpC,MAAM40D,EAAOjzC,EAAO3hB,GACpB,GA5BD,KA4BK40D,GA3BL,KA2BoBA,EACf,OAAO50D,CAEf,CACA,OAAQ,CACZ,CAEA,KAAA00D,GACIpkE,KAAKukE,YAAa,EAClBvkE,KAAKwkE,WAAa,GAClBxkE,KAAKykE,WAAa,EAClBzkE,KAAK0kE,sBAAuB,EAC5B1kE,KAAK2kE,gBAAiB,CAC1B,CAEA,KAAAl0D,GAESzQ,KAAKmkE,SACNlpE,EAAG2pE,UAAU5kE,KAAK6a,IAEtB7a,KAAK6a,GAAK,IACd,CAEA,aAAAgqD,CAAcxzC,EAAQyzC,GAClB,MAAMC,EAAQ,GACd,IAAIC,EAAY,EAGZhlE,KAAK0kE,sBAAwBrzC,EAAOzoB,OAAS,GAxD9C,KAwDmDyoB,EAAO,KACzD2zC,EAAY,GAEhBhlE,KAAK0kE,sBAAuB,EAC5B1kE,KAAK2kE,gBAAiB,EAEtB,IAAK,IAAIj1D,EAAIs1D,EAAWt1D,EAAI2hB,EAAOzoB,OAAQ8G,IAAK,CAC5C,MAAM40D,EAAOjzC,EAAO3hB,GAEpB,GAjED,KAiEK40D,EAEAS,EAAMpjE,KAAK0vB,EAAO7gB,MAAMw0D,EAAWt1D,IACnCs1D,EAAYt1D,EAAI,OACb,GApER,KAoEY40D,EAAa,CACpB,MAAMW,EAAUv1D,EAGZA,EAAI,GAAK2hB,EAAOzoB,QAEXk8D,IAED9kE,KAAK0kE,sBAAuB,GAGhCK,EAAMpjE,KAAK0vB,EAAO7gB,MAAMw0D,EAAWC,IACnCD,EAAYt1D,EAAI,GAjFzB,KAkFgB2hB,EAAO3hB,EAAI,IAElBq1D,EAAMpjE,KAAK0vB,EAAO7gB,MAAMw0D,EAAWC,IACnCv1D,IACAs1D,EAAYt1D,EAAI,IAGhBq1D,EAAMpjE,KAAK0vB,EAAO7gB,MAAMw0D,EAAWC,IACnCD,EAAYt1D,EAAI,EAExB,CACJ,CASA,OANIs1D,EAAY3zC,EAAOzoB,OACnBm8D,EAAMpjE,KAAK0vB,EAAO7gB,MAAMw0D,IACjBA,IAAc3zC,EAAOzoB,SAC5B5I,KAAK2kE,gBAAiB,GAGnBI,CACX,CAEA,UAAAG,CAAWC,GACP,IAEIrzC,EAFAszC,EAAiB,EAGrB,MAAMnrC,EAAU,GAChB,EAAG,CACC,MAAMorC,EAAaxzD,OAAOK,MAAMlS,KAAKyG,QAAQw9D,WAGvCryC,EAAW5xB,KAAKmkE,QAAU,KAAOnkE,KAAKykE,WAC5C3yC,EAAY72B,EAAGqqE,SAAStlE,KAAK6a,GAAIwqD,EAAY,EAAGrlE,KAAKyG,QAAQw9D,UAAWryC,GACxEwzC,GAAkCtzC,EAElC9xB,KAAKykE,WAAazkE,KAAKykE,WAAa3yC,EAEpCmI,EAAQt4B,KAAK0jE,EACjB,OAASvzC,IAAkE,IAArD9xB,KAAKqkE,gBAAgBpqC,EAAQA,EAAQrxB,OAAO,KAElE,IAAI28D,EAAa1zD,OAAO3H,OAAO+vB,GAmB/B,OAjBInI,EAAY9xB,KAAKyG,QAAQw9D,YACzBjkE,KAAKukE,YAAa,EAClBgB,EAAaA,EAAW/0D,MAAM,EAAG40D,IAGjCA,IACAplE,KAAKwkE,WAAaxkE,KAAK6kE,cAAcU,EAAYvlE,KAAKukE,YAElDY,IACInlE,KAAKwkE,WAAW57D,OAAS,EACzB5I,KAAKwkE,WAAW,GAAK3yD,OAAO3H,OAAO,CAACi7D,EAAenlE,KAAKwkE,WAAW,KAEnExkE,KAAKwkE,WAAW7iE,KAAKwjE,KAK1BC,CACX,CAEA,IAAA/0D,GAEI,GAAgB,OAAZrQ,KAAK6a,GAAa,OAAO,KAE7B,IAMIiX,EANA0zC,EAAO,KAEX,OAAIxlE,KAAKukE,YAAyC,IAA3BvkE,KAAKwkE,WAAW57D,SAMlC5I,KAAKwkE,WAAW57D,SACjBkpB,EAAY9xB,KAAKklE,cAGjBllE,KAAKwkE,WAAW57D,SAChB48D,EAAOxlE,KAAKwkE,WAAW7zD,QAIlB3Q,KAAKukE,YAAevkE,KAAK2kE,gBAA6C,IAA3B3kE,KAAKwkE,WAAW57D,SAC5DkpB,EAAY9xB,KAAKklE,WAAWM,GAExB1zC,GAAa9xB,KAAKwkE,WAAW57D,SAC7B48D,EAAOxlE,KAAKwkE,WAAW7zD,WAK/B3Q,KAAKukE,YAAyC,IAA3BvkE,KAAKwkE,WAAW57D,QACnC5I,KAAKyQ,SAxBE+0D,CA4Bf,CAMA,MAAAC,GACI,OAAmB,OAAZzlE,KAAK6a,IAAgB7a,KAAKukE,YAAyC,IAA3BvkE,KAAKwkE,WAAW57D,MACnE,E,aChMJ,MAAM3N,EAAK,EAAQ,MAEbyqE,EADO,EAAQ,MACQA,gBACvBC,EAAc,EAAQ,MACb,EAAQ,MACvB,IAAInoC,EAAkB,EAAQ,MAC9B,MAAM,UAAEooC,GAAc,EAAQ,MACxBxrD,EAAO,EAAQ,MACfyrD,EAAgB,EAAQ,KACxBpyD,EAAQ2G,EAAKsD,UAAUziB,EAAGwY,OAC1BG,EAAYwG,EAAKsD,UAAUziB,EAAG2Y,YAC9B,eAAEkyD,EAAc,OAAEC,EAAM,gBAAEC,GAAoB,EAAQ,OACtD,OAAEC,GAAW,EAAQ,OACrB,UAAEC,GAAc,EAAQ,MACxBC,EAAS/rD,EAAKsD,UAAUziB,EAAGkrE,QAC3BC,EAAShsD,EAAKsD,UAAUziB,EAAGmrE,SAC3B,uBAAEC,EAAsB,kBAAE9oD,EAAiB,+BAAE+oD,EAA8B,YAAEC,EAAW,oBAAEC,GAAwB,EAAQ,MAC1HvpE,EAAO,EAAQ,MAGfwpE,EAEO,UAGbr9D,EAAOvO,QAAU,MAqBb,WAAAiF,CAAYogD,GAmBRlgD,KAAKkgD,OAAS,CAhBVriD,UAAW,KACXwgB,cAAU5iB,EACVwK,QAAS,IACTygE,oBAAoB,EACpBC,gBAAYlrE,EACZgiC,WAAOhiC,EACPm9B,aAASn9B,EACTmrE,YAAY,EACZC,sBAAsB,EACtBC,sBAAsB,EACtBC,gBAAYtrE,EACZurE,kBAAcvrE,EACdwrE,gBAAYxrE,EACZiN,OAAQ,SAKLw3C,GAIPlgD,KAAKknE,aAAc,EACnBlnE,KAAKmnE,SAAW,KAChBnnE,KAAKonE,WAAa,EAClBpnE,KAAKqnE,SAAW,KAChBrnE,KAAKsnE,gBAAkB,EACvBtnE,KAAKunE,iBAAmB,IAG5B,CAQA,WAAMx2C,GAIF,SAFM/wB,KAAKwnE,uBAAuBxnE,KAAKkgD,OAAOriD,iBAErCmC,KAAKynE,qBACV,MAAO,CAAEC,eAAgBjB,EAA4BkB,SAAU,MAGnE,IAEI,MAAM,WAAEC,EAAU,iBAAEL,SAA2BvnE,KAAK6nE,WAMpD,GAJA7nE,KAAKunE,iBAAmBA,QAElBvnE,KAAK8nE,+BAA+B,CAACF,aAAYL,qBAEnDvnE,KAAKkgD,OAAO6mB,aAGW,UADM/mE,KAAKkgD,OAAO6mB,WAAWQ,GAEhD,MAAO,CAAEG,eAAgBjB,EAA4BkB,SAAU,MAIvE,IAAI,cAAEI,EAAa,iBAAEC,SAA2BhoE,KAAKioE,aAAaV,EAAiB3uC,SAEnF,MAAMsvC,QAAkBloE,KAAKmoE,MAAM,CAACP,aAAYG,gBAAeC,qBAE/D,MAAO,CAAEL,SAAUO,EAAWR,eAAgBQ,EA9F5C,WA8FsFzB,EAC5F,CAAE,MAAOlnE,GAEL,GAAIS,KAAKknE,YAAa,CAClB,MAAMkB,EAAc,IAAInsE,MAAM,qBAE9B,MADAmsE,EAAYlgE,KAAO,wBACbkgE,CACV,CACA,MAAM7oE,CACV,CAEJ,CAGA,wBAAMkoE,GACF,SAAIznE,KAAKkgD,OAAO7hC,UAAYre,KAAKkgD,OAAO2mB,4BAC1Bd,EAAO9oE,EAAKuH,KAAKxE,KAAKkgD,OAAOriD,UAAYmC,KAAKkgD,OAAO7hC,WAKvE,CAQA,oCAAMypD,EAA+B,WAACF,EAAU,iBAAEL,IAC9C,GAAIA,EAAiBntC,WAAa,IAI9B,YAFoBp6B,KAAKqoE,mBAAmBT,EAAYL,EAIhE,CAEA,wBAAMc,CAAmBT,EAAYL,GACjC,MAAMe,QAAuB9B,EAAoBoB,GAE3CroE,EAAQ,IAAItD,MAAM,mCAAmCsrE,EAAiBntC,cAQ5E,OANA76B,EAAM66B,WAAamtC,EAAiBntC,WAEpC76B,EAAMw3B,SAAWwwC,EAEjBhoE,EAAMgpE,aAAetC,EAAOqC,GAAkB/wD,KAAK7N,MAAM4+D,GAAkBA,EAEpE/oE,CACX,CASA,4BAAMioE,CAAuB3pE,SACnB4V,EAAM5V,EAAW,CAAE6gB,WAAW,GACxC,CAMA,cAAMmpD,GACF,GAAI3B,EAAUlmE,KAAKkgD,OAAOprB,KACtB,OAAO90B,KAAKwoE,yBAAyBxoE,KAAKkgD,OAAOprB,KAE/C,CACF,MAAM,WAAE8yC,EAAU,iBAAEL,SAA2BvnE,KAAKyoE,eAC9C7vC,EAAU2uC,EAAiB3uC,QAC3B8vC,EAAgB9vC,EAAQ,mBAAqBA,EAAQ,kBAE3D,OADA54B,KAAKqnE,SAAWjrE,SAASssE,GAClB,CAAEd,aAAYL,mBACzB,CACJ,CAMA,wBAAAiB,CAAyBG,GACrB,MAAMC,EAAWD,EAAQnzD,MAAM,iBAAiB,GAC1CqzD,EAAaF,EAAQpzD,QAAQ,sBAAuB,IACpDtB,EAAOpC,OAAOM,KAAK02D,EAAY,UAE/BjB,EAAavB,EAAuBpyD,GAEpCszD,EAAmB,IAAI7B,EAAgB,MAS7C,OARA6B,EAAiB3uC,QAAU,CACvB,eAAgBgwC,EAChB,iBAAkB30D,EAAK60D,YAE3BvB,EAAiBntC,WAAa,IAE9Bp6B,KAAKqnE,SAAWpzD,EAAK60D,WAEd,CAAElB,aAAYL,mBACzB,CAQA,uBAAMwB,CAAkBf,GACpB,SAAIhoE,KAAKkgD,OAAO2mB,6BAA8Bd,EAAO9oE,EAAKuH,KAAKxE,KAAKkgD,OAAOriD,UAAamqE,IAI5F,CAOA,oBAAAgB,CAAqBjB,GACjB,MAAMG,EAAY,GAAGloE,KAAKkgD,OAAOriD,aAAakqE,IAE9C,MAAO,CAAEG,YAAWe,SADLjD,EAAgBkC,GAEnC,CAEA,4BAAMgB,EAAuB,WAAEtB,EAAU,SAAEqB,IACvC,GAAIjpE,KAAKkgD,OAAO4mB,qBAAsB,CAClC,MAAMz1C,QAAei1C,EAA+BsB,SAC9C5nE,KAAKmpE,gBAAgB93C,EAAQ43C,EACvC,YACUjpE,KAAKopE,wBAAwBxB,EAAYqB,EAEvD,CAEA,yBAAMI,CAAoBtB,GACtB,GAAI/nE,KAAKkgD,OAAO8mB,aAAc,CAC1B,MAAMsC,QAA0BtpE,KAAKkgD,OAAO8mB,aAAae,GACrDuB,GAAkD,iBAAtBA,IAC5BvB,EAAgBuB,EAExB,CACA,OAAOvB,CACX,CAMA,WAAMI,EAAM,WAAEP,EAAU,cAAEG,EAAa,iBAAEC,IAErC,IAEI,SAAUhoE,KAAK+oE,kBAAkBf,GAC7B,OAAO,KAGXD,QAAsB/nE,KAAKqpE,oBAAoBtB,GAE/C,IAAI,UAAEG,EAAS,SAAEe,GAAajpE,KAAKgpE,qBAAqBjB,GAMxD,aAJM/nE,KAAKkpE,uBAAuB,CAAEtB,aAAYqB,mBAE1CjpE,KAAKupE,2BAA2BN,EAAUf,GAEzCA,CAEX,CAAE,MAAO3oE,GAIL,MAHKS,KAAKkgD,OAAO4mB,4BACP9mE,KAAKwpE,kBAAkBP,GAE3B1pE,CACV,CACJ,CAOA,kBAAMkpE,GACF,MAAM,QAAExiE,EAAO,QAAE2yB,EAAO,MAAE6E,EAAK,IAAE3I,EAAG,WAAE6xC,EAAU,OAACj+D,GAAW1I,KAAKkgD,OAC3Dz5C,EAAU,CACZR,UACA2yB,UACAlwB,UAEAi+D,EACAlgE,EAAQY,MAAQs/D,EAEXlpC,IACLh3B,EAAQY,MAAQ,IAAIm2B,EAAgBC,IAGxC,MAAM,gBAAEgsC,EAAe,OAAEC,GAAY/D,EAAY7wC,EAAKruB,GACtDzG,KAAKmnE,SAAWuC,EAChB,MAAM,WAAE9B,EAAU,iBAAEL,SAA4BkC,IAEhD,MAAO,CAAE7B,aAAYL,mBACzB,CAGA,kBAAAoC,GACI,MAAMxO,EAAOn7D,KAyBb,OAxBiB,IAAI4lE,EAAU,CAE3B,SAAA7gD,CAAU4W,EAAOtJ,EAAUl1B,GAEvBg+D,EAAKmM,iBAAmB3rC,EAAMmtC,WAC1B3N,EAAKkM,SACLlM,EAAKiM,YAAejM,EAAKmM,gBAAkBnM,EAAKkM,SAAY,KAAK98B,QAAQ,GAEzE4wB,EAAKiM,WAAaloB,IAGtB,MAAM0qB,GAAqB,IAAMzO,EAAKiM,YAAc,IAC9CyC,EAAgB/5D,KAAK8hC,MAAMg4B,EAAoBzO,EAAKkM,UAGtDlM,EAAKjb,OAAO+mB,YACZ9L,EAAKjb,OAAO+mB,WAAW9L,EAAKiM,WAAYzrC,EAAOkuC,GAInD1sE,EAAS,KAAMw+B,EACnB,GAKR,CAGA,6BAAMytC,CAAwBhsE,EAAMH,GAChC,MAAMkxB,EAAU,CAAC/wB,GACXmd,EAAQgD,EAAkBtgB,GAChC,GAAI+C,KAAKkgD,OAAO+mB,WAAY,CACxB,MAAM6C,EAAiB9pE,KAAK2pE,qBAC5Bx7C,EAAQxsB,KAAKmoE,EAEjB,CACA37C,EAAQxsB,KAAK4Y,SACPgsD,EAAYp4C,EACtB,CAGA,qBAAMg7C,CAAgB93C,EAAQp0B,SACpB2W,EAAU3W,EAAMo0B,EAE1B,CAEA,uBAAMm4C,CAAkBvsE,SACdkpE,EAAOlpE,EACjB,CAEA,gCAAMssE,CAA2Bl/B,EAAM0/B,SAC7B3D,EAAO/7B,EAAM0/B,EACvB,CAMA,kBAAM9B,CAAa+B,GACf,IAAIhC,EACAD,EAOJ,GALIC,EADAhoE,KAAKkgD,OAAO7hC,SACOre,KAAKkgD,OAAO7hC,SAEZynD,EAAe9lE,KAAKkgD,OAAOprB,IAAKk1C,IAGxB,IAA3BhqE,KAAKkgD,OAAO0mB,WAAqB,CACjC,IAAIqD,EAAgB,IAAIpE,EAAc,CAAEa,mBAAoB1mE,KAAKkgD,OAAOwmB,mBAAoBroD,SAAU2pD,EAAkB/qE,KAAM+C,KAAKkgD,OAAOriD,YAE1IkqE,QAAsBkC,EAAcC,sBACxC,MACInC,EAAgBC,EAGpB,MAAO,CAAED,gBAAeC,mBAC5B,CAGA,MAAA0B,GACQ1pE,KAAKmnE,WACLnnE,KAAKknE,aAAc,EAEnBlnE,KAAKmnE,WAEb,E,cCtZJ,MAAMgD,EAAO,EAAQ,OACf,WAAEC,GAAe,EAAQ,MACzBC,EAAW,EAAQ,KAGnBC,EAAc,CAClBx1C,IAAK,CACH5pB,KAAM,SACNq/D,WAAW,GAEb1sE,UAAW,CACTqN,KAAM,SACNq/D,WAAW,GAEblsD,SAAU,CACRnT,KAAM,SACNq/D,WAAW,GAEb3D,WAAY,CACV17D,KAAM,UACNq/D,WAAW,GAEb9sC,MAAO,CACLvyB,KAAM,SACNq/D,WAAW,IAqBd,MAAMC,EAyBL,WAAA1qE,CAAYogD,GAEV,IAAKA,GAA4B,iBAAXA,EACpB,MAAM,IAAIjkD,MAAM,sCA7CC,CAACikD,IACtB,MAAMuqB,EAAqBtvD,IAAW,MAAM,IAAIlf,MAAM,UAAUkf,qBAAwBmvD,EAAYnvD,GAAMjQ,SAC1G,IAAK,IAAIiQ,KAAQmvD,EAAa,CAC5B,GAAIA,EAAYnvD,GAAMovD,UAAW,CAC/B,IAAKrqB,EAAO/kC,GACV,MAAM,IAAIlf,MAAM,wBAAwBkf,MAEnC,IAAM,GAAGjR,OAAOogE,EAAYnvD,GAAMjQ,MAAMtF,eAAes6C,EAAO/kC,KAC/DsvD,EAAkBtvD,EAC1B,CAEM+kC,EAAO5S,eAAenyB,KAAW,IAAM,GAAGjR,OAAOogE,EAAYnvD,GAAMjQ,MAAMtF,eAAes6C,EAAO/kC,KAC/FsvD,EAAkBtvD,EAC1B,GAkCEuvD,CAAexqB,GAqBflgD,KAAKkgD,OAAS,CAlBZriD,UAAW,KACXwgB,cAAU5iB,EACVwK,QAAS,IACT0kE,YAAa,EACbjE,oBAAoB,EACpBC,gBAAYlrE,EACZgiC,WAAOhiC,EACPm9B,aAASn9B,EACTmrE,YAAY,EACZC,sBAAqB,EACrBC,sBAAsB,EACtBC,gBAAYtrE,EACZurE,kBAAcvrE,EACdgG,aAAShG,EACTwrE,gBAAYxrE,EACZiN,OAAQ,SAKLw3C,GAKDlgD,KAAKkgD,OAAO7sC,WACdrT,KAAKkgD,OAAO7hC,SAAWre,KAAKkgD,OAAO7sC,UAGrCrT,KAAK4qE,iBAAmB,IAE1B,CAGA,EAAAtnE,CAAGoyB,EAAOv4B,GACR6C,KAAKkgD,OAAO,KAAKkqB,EAAW10C,MAAYv4B,CAC1C,CAQA,cAAM0tE,GACJ,MACM,IAAE/1C,EAAG,OAAEpsB,EAAM,UAAE7K,EAAS,SAAEwgB,EAAQ,WAAEuoD,EAAU,qBAAEC,EAAoB,QAAE5gE,EAAO,QAAE2yB,EAAO,WAAE+tC,EAAU,MAAElpC,EAAK,WAAEspC,EAAU,aAAEC,EAAY,WAAEC,EAAU,qBAAEH,EAAoB,mBAAEJ,GADhK1mE,KAC4LkgD,QAGnM,SAACynB,EAAQ,eAACD,SAJH1nE,KAIgC8qE,qBAAqBnuE,UAChE,MAAMkuE,EAAW,IAAIR,EAAS,CAAEv1C,MAAKpsB,SAAQ7K,YAAWwgB,WAAUuoD,aAAYC,uBAAsB5gE,UAAS2yB,UAAS+tC,aAAYlpC,QAAOspC,aAAYC,eAAcC,aAAYH,uBAAsBJ,uBAGrM,OAFA1mE,KAAK4qE,iBAAmBC,QAEXA,EAAS95C,UAIxB,MAAO,CAAC42C,WAASD,iBAGnB,CAMA,0BAAMoD,CAAqBC,GAEzB,IAAI92D,EACJ,MAAMytC,EAAOqpB,EAAUxqE,KAAKP,MAwB5B,aAvBMmqE,EAAKxtE,UAETsX,QAAaytC,KACZ,CACDjgD,QAAS9E,MAAOqgC,IACVh9B,KAAKkgD,OAAOz+C,eACRzB,KAAKkgD,OAAOz+C,QAAQu7B,IAG9BguC,WAAYruE,MAAOqgC,GAEF,0BAAXA,EAAE90B,SAGFlI,KAAKkgD,OAAO8qB,aAC0B,UAA9BhrE,KAAKkgD,OAAO8qB,WAAWhuC,UADnC,EAOF2tC,YAAa3qE,KAAKkgD,OAAOyqB,cAEpB12D,CAGT,CAEA,MAAAy1D,GAEE1pE,KAAK4qE,iBAAiBlB,QACxB,EAQFtgE,EAAOvO,QAAU2vE,EACjBphE,EAAOvO,QAAQ2vE,WAAaA,C,cC5L5B,MAAM,KAAEx1C,EAAI,MAAEC,GAAU,EAAQ,MAC1B,SAAEnzB,GAAa,EAAQ,MA2F7BsH,EAAOvO,QAxFP,SAAqBi6B,EAAKorB,EAAS,CAAC,GAEhC,IAAI+qB,EAEAC,EAEApzC,EAGJ,MAAMqzC,EAAkB,IAAIriE,QAAQ,CAACC,EAASE,KAC1CiiE,EAAwBjiE,EACxB,MAAMpC,EAAWiuB,EAAI1jB,OAAOkN,WAAW,SAAW2W,EAAQD,EAE1D8C,EAAUjxB,EAASixB,QAAQhD,EAAKorB,EAAShwB,IACrCnnB,EAAQmnB,KAEZ4H,EAAQtM,MACRsM,EAAQx0B,GAAG,QAAS05B,IAEhBkuC,EAAsBluC,OAIxBouC,EAAiB,IAAItiE,QAAQ,CAACC,EAASE,KACrCi3C,EAAOj6C,SACP6xB,EAAQjvB,WAAWq3C,EAAOj6C,QAAS,KAC/B,MAAMmiE,EAAc,IAAInsE,MAAM,qBAC9BmsE,EAAYlgE,KAAO,uBACnBe,EAAOm/D,OAKbiD,EAAgB,IAAIviE,QAAQ,CAACC,EAASE,KACxCgiE,EAAsBhiE,IAyC1B,MAAO,CACHwgE,gBAtCJ9sE,iBAEI,MAAMo6B,QAAiBjuB,QAAQwiE,KAAK,CAChCH,EACAE,EACAD,IAGEG,EAAex0C,EAAS6I,OAAO4rC,iBAE/Bv3D,EAAO,kBACT,IACI,OAAa,CAET,MAAMtQ,QAAamF,QAAQwiE,KAAK,CAC5BC,EAAal7D,OACbg7D,EACAD,IAEJ,GAAIznE,EAAK/E,KACL,YAEE+E,EAAK7I,KACf,CAEJ,CAAE,MAAOyE,GAGL,MA8BhB,SAAeu4B,GACX,MAAM2zC,EAAmB5vE,QAAQC,SAASC,KAAKC,MAAM,KAAK,IACrDyvE,GAAoBA,EAAmB,GACxC3zC,EAAQ5a,QAGR4a,EAAQ91B,SAEhB,CAvCgBkb,CAAM4a,EAAQqB,iBACR55B,CACV,CACH,CApBY,GAqBb,MAAO,CACHqoE,WAAY9lE,EAASqQ,KAAK8B,GAC1BszD,iBAAkBxwC,EAE1B,EAII,MAAA2yC,GACI,MAAMtB,EAAc,IAAInsE,MAAM,qBAC9BmsE,EAAYlgE,KAAO,wBACnB+iE,EAAoB7C,EACxB,EAER,C,aCvFA,MAAMnrE,EAAO,EAAQ,MACfhC,EAAK,EAAQ,MAyFnBmO,EAAOvO,QAvFP,MACI,WAAAiF,CAAYogD,GAGRlgD,KAAKgoE,iBAAmB9nB,EAAO7hC,SAC/Bre,KAAK0rE,cAAgBzuE,EAAKuqC,QAAQxnC,KAAKgoE,kBACvChoE,KAAK2rE,yBAA2BzrB,EAAO7hC,SAASriB,MAAM,KAAKwU,MAAM,GAAI,GAAGhM,KAAK,KAC7ExE,KAAKoD,SAAmD,MAAxC88C,EAAOjjD,KAAKijD,EAAOjjD,KAAK2L,OAAS,GAAas3C,EAAOjjD,KAAOijD,EAAOjjD,KAAO,IAE1F+C,KAAK0mE,mBAAqBxmB,EAAOwmB,qBAAsB,CAE3D,CAGA,oBAAAwD,GACI,OAAIlqE,KAAK0mE,mBAEE1mE,KAAK4rE,sBAAsB5rE,KAAKgoE,kBAGpC,IAAIl/D,QAAQnM,MAAOoM,IAEtB,IAEIA,QADmB/I,KAAK6rE,kBAAkB7rE,KAAKgoE,kBAEnD,CAAE,MAAOzoE,GACL0J,OAAO1J,EACX,GAIR,CAEA,cAAAusE,CAAe7uE,GACX,OAAOhC,EAAG8wE,WAAW9uE,EACzB,CAGA,UAAA+uE,CAAW/uE,GACP,OAAI+C,KAAK0mE,mBACE1mE,KAAK8rE,eAAe7uE,GAGxB,IAAI6L,QAAQ,CAACC,EAASE,KACzBhO,EAAGgxE,OAAOhvE,EAAO8K,IAETgB,GADAhB,MAOhB,CAGA,qBAAA6jE,CAAsBvtD,EAAUoR,EAAU,GAGtC,IAAKzvB,KAAK8rE,eAAe9rE,KAAKoD,SAAWib,GACrC,OAAOA,EAGXoR,GAAoB,EACpB,IAAIy8C,EAAclsE,KAAK2rE,yBAA2B,IAAMl8C,EAAUzvB,KAAK0rE,cAEvE,OAAO1rE,KAAK4rE,sBAAsBM,EAAaz8C,EAEnD,CAEA,uBAAMo8C,CAAkBxtD,EAAUoR,EAAU,GAGxC,UAAYzvB,KAAKgsE,WAAWhsE,KAAKoD,SAAWib,GAExC,OAAOA,EAGXoR,GAAoB,EACpB,IAAIy8C,EAAclsE,KAAK2rE,yBAA2B,IAAMl8C,EAAUzvB,KAAK0rE,cAEvE,aAAa1rE,KAAK6rE,kBAAkBK,EAAaz8C,EAErD,E,SC5EJrmB,EAAOvO,QAAQ,CACXsxE,YATJ,SAAqBC,GACjB,OAAO,IAAItjE,QAASC,IAChBF,WAAW,KACPE,KACDqjE,IAEX,E,cCPA,MAAMC,EAAW,EAAQ,MACnBpvE,EAAO,EAAQ,MACrB,IAAI2qC,EAAO,EAAQ,MACnB,MAAQpqB,SAAU8uD,GAAO,EAAQ,MA+CjC,SAASC,EAAkBz3C,GACzB,OAAOA,EAAI94B,MAAM,QAAQ,EAC3B,CAhDe,EAAQ,MA0GvBoN,EAAOvO,QAAU,CAAEirE,eApFnB,SAAwBhxC,EAAK8D,GAG3B,MAAM4zC,EAoCR,SAA2CC,GACzC,IAAKA,IAAuBA,EAAmB3tD,SAAS,aACtD,MAAO,GAET,IAAIzL,EAAW,GACf,IACImzB,EADgB,yCACQtC,KAAKuoC,GAKjC,OAJe,MAAXjmC,GAAmBA,EAAQ,KAC7BnzB,EAAWmzB,EAAQ,GAAGjxB,QAAQ,QAAS,KAGlClC,EAAWg5D,EAASh5D,GAAY,EACzC,CAhDyCq5D,CAAkC9zC,EAAQ,wBAA0BA,EAAQ,wBACnH,GAAI4zC,EAAgC,OAAOA,EAG3C,GAAIvvE,EAAKuqC,QAAQ1S,GAAM,CACrB,MAAM63C,EAtBV,SAA+B73C,GAC7B,MAAM83C,EAAWL,EAAkBz3C,GAEnC,OADiBu3C,EAASpvE,EAAKuW,SAASo5D,GAG1C,CAiB4BC,CAAsB/3C,GAC9C,GAAI63C,EAAiB,OAAOA,CAC9B,CAGA,MAAMG,EAeR,SAAoC/kC,EAAajT,GAG/C,IAAIkT,EAAYJ,EAAKI,UAAUD,GAE/BjT,EAAMy3C,EAAkBz3C,GACxB,MAAM62C,EAmBR,SAAyBjwD,GACvB,MAAM9J,EAAM8J,EAAI1f,MAAM,KACtB,OAAkB,GAAd4V,EAAIhJ,OACC8S,EAEF9J,EAAIpB,MAAM,GAAI,GAAGhM,KAAK,IAI/B,CA5BmCuoE,CAAgB9vE,EAAKuW,SAASshB,IAC/D,MAAO,GAAGu3C,EAASV,MAA6B3jC,GAClD,CAvBkCglC,CAA2Bp0C,EAAQ,iBAAmBA,EAAQ,gBAAiB9D,GAC/G,OAAIg4C,GAIGT,EAASv3C,EAGlB,EA+DmCixC,OApBnCppE,eAAsBM,GACpB,IAEE,aADMqvE,EAAGL,OAAOhvE,IACT,CACT,CAAE,MACA,OAAO,CACT,CACF,EAa0C+oE,gBAPzC,SAAyBiH,GACxB,MAAO,GAAGA,YACZ,E,cCzGA,MAAM,YAACd,GAAe,EAAQ,KAe9B/iE,EAAOvO,QAAU8B,eAAewtE,EAAK+C,EAAehtB,EAAO,CAAC,GAExD,MAAMitB,EAAWzoE,UAAU,IAAM,EAG3BsmE,EAAa9qB,EAAO8qB,YADZ,MAAM,GAEdoC,EAAQltB,EAAOktB,OAAS,KACxBzC,EAAczqB,EAAOyqB,aAAe,EACpC1kE,EAAUi6C,EAAOj6C,SAAW,EAClC,IACI,IAAIonE,EAAcF,EAAW,EAEzBjtB,EAAOotB,iBACDptB,EAAOotB,UAAUH,EAAW,GAEtC,MAAMp9C,EAAUm9C,IACV1tE,QAwBd,SAA4BuwB,EAASksB,GACjC,OAAO,IAAInzC,QAAQnM,MAAOoM,EAASE,KAC/B,GAAIgzC,EACA,IAAIh2C,EAAU4C,WAAW,KACrBI,EAAO,IAAIhN,MAAM,gDAClBggD,GAEP,IAEIlzC,QADqBgnB,EAEzB,CAAE,MAAOxwB,GACL0J,EAAO1J,EACX,CAAC,QACG6I,aAAanC,EACjB,GAGR,CAzC6BsnE,CAAmBx9C,EAAS9pB,GACjD,OAAOzG,CACX,CAAE,MAAOD,GAOL,GALI2gD,EAAOz+C,eACDy+C,EAAOz+C,QAAQlC,EAAO8tE,SAItBrC,EAAWzrE,IAAU8tE,GAAe1C,EAC1C,MAAMprE,EAOV,OAJI6tE,SACMjB,EAAYiB,SAGTjD,EAAK+C,EAAgBhtB,EAAQmtB,EAC9C,CAEJ,C,cCnDA,MAAMpyE,EAAK,EAAQ,MACb6gB,EAAS,EAAQ,MAEjB0xD,EADO,EAAQ,MACY9vD,UAAU5B,EAAO+B,UA4BlDlhB,eAAe2pE,EAA+BxqD,GAC5C,MAAM4f,EAAS,GACf,UAAW,IAAIC,KAAS7f,EACtB4f,EAAO/5B,KAAKg6B,GAId,OADe9pB,OAAO3H,OAAOwxB,EAE/B,CAaAtyB,EAAOvO,QAAU,CAAEwrE,uBA9CnB,SAAgCh1C,GAQ9B,OAPiB,IAAIvV,EAAO2xD,OAAO3rE,SAAS,CAC1C,IAAA1E,GACE4C,KAAK2B,KAAK0vB,GACVrxB,KAAK2B,KAAK,KACZ,GAIJ,EAqC2C4b,kBA9B3C,SAA2BmwD,GACzB,OAAOzyE,EAAGsiB,kBAAkBmwD,EAC9B,EA4B8DpH,iCAAgCC,YAX9F5pE,eAA2BgxE,SACnBH,KAAuBG,EAC/B,EAS0GnH,oBAP1G7pE,eAAmCmf,GAEjC,aADqBwqD,EAA+BxqD,IACtCiiB,UAChB,E,UCjCA30B,EAAOvO,QAAS,CACZuvE,WAhBgB1rC,GACC,iBAANA,EAAuB,GAC3BA,EAAE9R,OAAO,GAAGrR,cAAgBmjB,EAAEluB,MAAM,GAe3Cy1D,OAZY5kD,IACZ,IAEI,OADA9J,KAAK7N,MAAM2X,IACJ,CACX,CAAE,MAAO9hB,GACL,OAAO,CACX,G,UCWJ6J,EAAOvO,QAAU,CAACqrE,UAjBlB,SAAmBpxC,GACf,SAAKA,IAAQA,EAAIxW,WAAW,cAIhC,EAY4BsvD,oBAL5B,SAA6BC,GACzB,OAAOA,EAAQ7xE,MAAM,KAAK,GAAGA,MAAM,KAAK,EAC5C,E,cCnBA,IAAI8xE,EAAS,EAAQ,MAoBrB,SAASvqE,EAAMyD,GACb,IAAI+M,EAAI,WACN,OAAIA,EAAEg6D,OAAeh6D,EAAEjZ,OACvBiZ,EAAEg6D,QAAS,EACJh6D,EAAEjZ,MAAQkM,EAAG0L,MAAM1S,KAAM0E,WAClC,EAEA,OADAqP,EAAEg6D,QAAS,EACJh6D,CACT,CAEA,SAASi6D,EAAYhnE,GACnB,IAAI+M,EAAI,WACN,GAAIA,EAAEg6D,OACJ,MAAM,IAAI9xE,MAAM8X,EAAEk6D,WAEpB,OADAl6D,EAAEg6D,QAAS,EACJh6D,EAAEjZ,MAAQkM,EAAG0L,MAAM1S,KAAM0E,UAClC,EACIrG,EAAO2I,EAAG3I,MAAQ,+BAGtB,OAFA0V,EAAEk6D,UAAY5vE,EAAO,sCACrB0V,EAAEg6D,QAAS,EACJh6D,CACT,CAxCA3K,EAAOvO,QAAUizE,EAAOvqE,GACxB6F,EAAOvO,QAAQgqC,OAASipC,EAAOE,GAE/BzqE,EAAKo3D,MAAQp3D,EAAK,WAChB5I,OAAOC,eAAe2+C,SAASpwC,UAAW,OAAQ,CAChDrO,MAAO,WACL,OAAOyI,EAAKvD,KACd,EACA2Y,cAAc,IAGhBhe,OAAOC,eAAe2+C,SAASpwC,UAAW,aAAc,CACtDrO,MAAO,WACL,OAAOkzE,EAAWhuE,KACpB,EACA2Y,cAAc,GAElB,E,UChBA,SAAS6X,IACPxwB,KAAKkuE,QAAU,EACfluE,KAAK4P,IAAMvJ,IACXrG,KAAKmuE,UAAY,GACjBnuE,KAAKouE,QAAU,GACfpuE,KAAKT,MAAQ,IACf,CAsBA,SAAS8uE,EAASt2D,GAChBA,EAAKm2D,SAAW,EAChB,IAAIH,GAAS,EACb,OACA,SAAchmE,GACZ,GAAIgmE,EAAQ,MAAM,IAAI9xE,MAAM,yBAI5B,GAHA8xE,GAAS,EACTh2D,EAAKxY,MAAQwY,EAAKxY,OAASwI,EAC3BgQ,EAAKm2D,SAAW,EACZn2D,EAAKq2D,QAAQxlE,OAAS,GAAKmP,EAAKm2D,QAAUn2D,EAAKnI,IACjD0+D,EAAOv2D,EAAMA,EAAKq2D,QAAQz9D,cACrB,GAAqB,IAAjBoH,EAAKm2D,QAAe,CAC7B,IAAIC,EAAYp2D,EAAKo2D,UACrBp2D,EAAKo2D,UAAY,GACjBA,EAAUp9D,QAAQw9D,EACpB,CACF,EACA,SAASA,EAAWC,GAClBA,EAASz2D,EAAKxY,MAChB,CACF,CAEA,SAAS+uE,EAAOv2D,EAAM/Q,GACpBA,EAAGqnE,EAASt2D,GACd,CAtDA3O,EAAOvO,QAAU21B,EAUjBA,EAAKrnB,UAAU0oB,GAAK,SAAS7qB,GACvBhH,KAAKkuE,QAAUluE,KAAK4P,IACtB0+D,EAAOtuE,KAAMgH,GAEbhH,KAAKouE,QAAQzsE,KAAKqF,EAEtB,EAEAwpB,EAAKrnB,UAAUslE,KAAO,SAASx+C,GACR,IAAjBjwB,KAAKkuE,QACPj+C,EAAGjwB,KAAKT,OAERS,KAAKmuE,UAAUxsE,KAAKsuB,EAExB,EAEAO,EAAKrnB,UAAUulE,KAAO,WACpB,OAAOL,EAASruE,KAClB,C,2BC1BAoJ,EAAOvO,QAAU,EAAjB,K,2BCAA,MAAMoC,EAAO,EAAQ,MACf0xE,EAAY,QACZC,EAAe,KAAKD,KAQpBE,EAAc,MAGdC,EAAgB,MAEhBC,EAAQ,OACRC,EAAa,MAAMF,OACnBG,EAAe,QAAQH,KACvBI,EAAa,GAAGL,SAAmBG,IAQnCG,EAAc,CAClBN,cACAO,aAjBmB,MAkBnBC,cAjBoB,MAkBpBP,gBACAQ,SAjBe,QAkBfP,QACAC,aACAE,aACAK,OAhBa,MAAMV,KAiBnBW,QAhBc,MAAMP,IAAeC,KAiBnCO,aAhBmB,MAAMZ,SAAmBG,KAiB5CU,cAhBoB,MAAMR,KAiB1BS,aAhBmB,MAAMb,KAiBzBc,KAhBW,GAAGb,MAiBdE,gBAOIY,EAAgB,IACjBV,EAEHL,cAAe,IAAIH,KACnBI,MAAOH,EACPgB,KAAM,GAAGhB,MACTM,WAAY,GAAGL,aAAuBF,QACtCY,OAAQ,MAAMV,KACdW,QAAS,YAAYb,MAAcE,aAAuBF,SAC1Dc,aAAc,MAAMZ,aAAuBF,SAC3Ce,cAAe,MAAMb,aAAuBF,SAC5CgB,aAAc,MAAMhB,KACpBM,aAAc,SAASN,MACvBK,WAAY,OAAOL,SAyBrBvlE,EAAOvO,QAAU,CACfi1E,8BAnFoC,EAoFpCjkE,WAAY,MACZkkE,mBArByB,CACzBC,UAAW,KACXC,MAAO,YACPC,MAAO,SACPC,MAAO,cACPC,MAAO,OACPC,MAAO,mBACPC,MAAO,MACPC,MAAO,cACPC,MAAO,MACPC,MAAO,eACPC,MAAO,yCACPC,MAAO,mBACPC,MAAO,MACPl1B,KAAM,aACNm1B,OAAQ,aASRC,gBAAiB,yBACjBC,wBAAyB,4BACzBC,oBAAqB,oBACrBC,4BAA6B,oBAC7BC,2BAA4B,uBAC5BC,uBAAwB,4BAGxBC,aAAc,CACZpB,UAAW,KACX,MAAO,IACP,QAAS,KACT,WAAY,MAIdlkE,OAAQ,GACRC,OAAQ,GAGRC,iBAAkB,GAClBC,iBAAkB,GAClBC,iBAAkB,GAClBC,iBAAkB,IAElBC,sBAAuB,GACvBC,uBAAwB,GAExBC,cAAe,GAGfC,eAAgB,GAChBC,QAAS,GACT6kE,oBAAqB,GACrB1kE,qBAAsB,GACtBC,uBAAwB,GACxBC,WAAY,GACZC,WAAY,GACZE,SAAU,GACVC,kBAAmB,GACnBC,WAAY,GACZC,sBAAuB,GACvBC,eAAgB,GAChBC,mBAAoB,GACpBikE,kBAAmB,GACnBhkE,UAAW,GACXC,kBAAmB,GACnBC,wBAAyB,GACzBC,sBAAuB,IACvBC,yBAA0B,GAC1BC,eAAgB,GAChBC,oBAAqB,IACrBC,aAAc,GACdC,UAAW,GACXC,mBAAoB,GACpBC,yBAA0B,GAC1BC,uBAAwB,IACxBC,0BAA2B,GAC3BC,eAAgB,GAChBC,kBAAmB,GACnBC,WAAY,GACZC,SAAU,EACVC,gBAAiB,GACjBC,mBAAoB,IACpBC,8BAA+B,MAE/B8iE,IAAKt0E,EAAKiD,IAMVsxE,aAAaptC,IACJ,CACL,IAAK,CAAEl5B,KAAM,SAAUoF,KAAM,YAAaG,MAAO,KAAK2zB,EAAMwrC,SAC5D,IAAK,CAAE1kE,KAAM,QAASoF,KAAM,MAAOG,MAAO,MAC1C,IAAK,CAAEvF,KAAM,OAAQoF,KAAM,MAAOG,MAAO,MACzC,IAAK,CAAEvF,KAAM,OAAQoF,KAAM,MAAOG,MAAO,MACzC,IAAK,CAAEvF,KAAM,KAAMoF,KAAM,MAAOG,MAAO,OAQ3CghE,UAAU/vD,IACS,IAAVA,EAAiBmuD,EAAgBV,E,2BCnL5C,MAAMrzC,EAAY,EAAQ,MACpBn+B,EAAQ,EAAQ,MAMhB,WACJkO,EAAU,mBACVkkE,EAAkB,wBAClBgB,EAAuB,4BACvBE,EAA2B,aAC3BG,GACEt1C,EAME41C,EAAc,CAACpmE,EAAM7E,KACzB,GAAmC,mBAAxBA,EAAQirE,YACjB,OAAOjrE,EAAQirE,eAAepmE,EAAM7E,GAGtC6E,EAAKyiB,OACL,MAAMjzB,EAAQ,IAAIwQ,EAAK9G,KAAK,QAE5B,IAEE,IAAI2yB,OAAOr8B,EACb,CAAE,MAAO62E,GACP,OAAOrmE,EAAKnN,IAAIyI,GAAKjJ,EAAMy5B,YAAYxwB,IAAIpC,KAAK,KAClD,CAEA,OAAO1J,GAOH82E,EAAc,CAAC1mE,EAAM2mE,IAClB,WAAW3mE,OAAU2mE,iBAAoBA,iCAG5CC,EAAgBloE,IACpB,MAAMkf,EAAQ,GACd,IAAIipD,EAAU,EACVC,EAAQ,EACRC,EAAQ,EACRn3E,EAAQ,GACR2W,GAAU,EAEd,IAAK,MAAMygE,KAAMtoE,EACf,IAAgB,IAAZ6H,EAMJ,GAAW,OAAPygE,EAMJ,GAAW,MAAPA,EAAJ,CAMA,GAAc,IAAVD,EACF,GAAW,MAAPC,EACFH,SACK,GAAW,MAAPG,GAAcH,EAAU,EACjCA,SACK,GAAgB,IAAZA,EACT,GAAW,MAAPG,EACFF,SACK,GAAW,MAAPE,GAAcF,EAAQ,EAC/BA,SACK,GAAW,MAAPE,GAAwB,IAAVF,EAAa,CACpClpD,EAAMnnB,KAAK7G,GACXA,EAAQ,GACR,QACF,CAIJA,GAASo3E,CApBT,MAHED,EAAkB,IAAVA,EAAc,EAAI,EAC1Bn3E,GAASo3E,OAPTp3E,GAASo3E,EACTzgE,GAAU,OAPV3W,GAASo3E,EACTzgE,GAAU,EAsCd,OADAqX,EAAMnnB,KAAK7G,GACJguB,GAyBHqpD,EAAwBC,IAC5B,IAAIt3E,EAAQs3E,EAAOhhE,OACfihE,GAAU,EAEd,MAAmB,IAAZA,GACLA,GAAU,EAEN,wBAAwBp3D,KAAKngB,KAC/BA,EAAQA,EAAM0V,MAAM,GAAI,GACxB6hE,GAAU,GAId,GAnCoBD,KACpB,IAAI3gE,GAAU,EAEd,IAAK,MAAMygE,KAAME,EACf,IAAgB,IAAZ3gE,EAKJ,GAAW,OAAPygE,GAKJ,GAAI,iBAAiBj3D,KAAKi3D,GACxB,OAAO,OALPzgE,GAAU,OALVA,GAAU,EAcd,OAAO,GAgBF6gE,CAAcx3E,GAInB,OAAOA,EAAMya,QAAQ,SAAU,OAyB3Bg9D,EAAuB,CAACvoE,EAASwoE,GAAa,KAClD,GAAoB,MAAfxoE,EAAQ,IAA6B,MAAfA,EAAQ,IAA8B,MAAfA,EAAQ,GACxD,OAGF,IAAI+nE,EAAU,EACVC,EAAQ,EACRC,EAAQ,EACRxgE,GAAU,EAEd,IAAK,IAAI/B,EAAI,EAAGA,EAAI1F,EAAQpB,OAAQ8G,IAAK,CACvC,MAAMwiE,EAAKloE,EAAQ0F,GAEnB,IAAgB,IAAZ+B,EAKJ,GAAW,OAAPygE,EAKJ,GAAW,MAAPA,GAKJ,GAAc,IAAVD,EAIJ,GAAW,MAAPC,GAKJ,GAAW,MAAPA,GAAcH,EAAU,EAC1BA,SAIF,KAAIA,EAAU,GAId,GAAW,MAAPG,GAKJ,GAAW,MAAPA,IACFF,IAEc,IAAVA,GAAa,CACf,IAAmB,IAAfQ,GAAuB9iE,IAAM1F,EAAQpB,OAAS,EAChD,OAGF,MAAO,CACLsC,KAAMlB,EAAQ,GACdm3B,KAAMn3B,EAAQwG,MAAM,EAAGd,GACvB8b,IAAK9b,EAET,OAjBAsiE,SAdAD,SATAE,EAAkB,IAAVA,EAAc,EAAI,OAL1BxgE,GAAU,OALVA,GAAU,CAoDd,GAGIghE,EAA+BzoE,IACnC,IAAIkG,EAAQ,EACZ,MAAMk0B,EAAQ,GAEd,KAAOl0B,EAAQlG,EAAQpB,QAAQ,CAC7B,MAAM4M,EAAQ+8D,EAAqBvoE,EAAQwG,MAAMN,IAAQ,GAEzD,IAAKsF,GAAwB,MAAfA,EAAMtK,KAClB,OAGF,MAAMwnE,EAAWZ,EAAct8D,EAAM2rB,MAAMhjC,IAAIi0E,GAAUA,EAAOhhE,QAChE,GAAwB,IAApBshE,EAAS9pE,OACX,OAGF,MAAMwpE,EAASD,EAAsBO,EAAS,IAC9C,IAAKN,GAA4B,IAAlBA,EAAOxpE,OACpB,OAGFw7B,EAAMziC,KAAKywE,GACXliE,GAASsF,EAAMgW,IAAM,CACvB,CAEA,KAAI4Y,EAAMx7B,OAAS,GAQnB,MAAO,GAJyB,IAAjBw7B,EAAMx7B,OACjBjL,EAAMy5B,YAAYgN,EAAM,IACxB,IAAIA,EAAMjmC,IAAI+zE,GAAMv0E,EAAMy5B,YAAY86C,IAAK1tE,KAAK,WAKhDmuE,EAA2B3oE,IAC/B,IAAImG,EAAQ,EACRrV,EAAQkP,EAAQoH,OAChBoE,EAAQ+8D,EAAqBz3E,GAEjC,KAAO0a,GACLrF,IACArV,EAAQ0a,EAAM2rB,KAAK/vB,OACnBoE,EAAQ+8D,EAAqBz3E,GAG/B,OAAOqV,GA8CHzG,EAAQ,CAACE,EAAOnD,KACpB,GAAqB,iBAAVmD,EACT,MAAM,IAAI+F,UAAU,qBAGtB/F,EAAQwnE,EAAaxnE,IAAUA,EAE/B,MAAM9D,EAAO,IAAKW,GACZmJ,EAAgC,iBAAnB9J,EAAK+J,UAAyBC,KAAKC,IAAIlE,EAAY/F,EAAK+J,WAAahE,EAExF,IAAIm5B,EAAMp7B,EAAMhB,OAChB,GAAIo8B,EAAMp1B,EACR,MAAM,IAAII,YAAY,iBAAiBg1B,sCAAwCp1B,KAGjF,MAAMgjE,EAAM,CAAE1nE,KAAM,MAAOpQ,MAAO,GAAI+O,OAAQ/D,EAAK+sE,SAAW,IACxD7hC,EAAS,CAAC4hC,GAEVj/C,EAAU7tB,EAAK6tB,QAAU,GAAK,KAC9BjS,EAAQ/jB,EAAMspC,UAAUxgC,GAGxBqsE,EAAiBh3C,EAAU21C,UAAU/vD,GACrCqxD,EAAgBj3C,EAAU01C,aAAasB,IAEvC,YACJjE,EAAW,aACXO,EAAY,cACZN,EAAa,SACbQ,EAAQ,WACRJ,EAAU,OACVK,EAAM,aACNE,EAAY,cACZC,EAAa,MACbX,EAAK,aACLY,EAAY,KACZC,EAAI,aACJX,GACE6D,EAEE9oD,EAAWlkB,GACR,IAAI6tB,UAAgBs7C,IAAenpE,EAAK6gB,IAAMuoD,EAAaL,UAG9DmE,EAAQltE,EAAK6gB,IAAM,GAAK4oD,EACxB0D,EAAantE,EAAK6gB,IAAMooD,EAAQY,EACtC,IAAIuD,GAAqB,IAAdptE,EAAKqtE,KAAgBnpD,EAASlkB,GAAQ8pE,EAE7C9pE,EAAK6tB,UACPu/C,EAAO,IAAIA,MAIa,kBAAfptE,EAAK+jB,QACd/jB,EAAKstE,UAAYttE,EAAK+jB,OAGxB,MAAMzW,EAAQ,CACZxJ,QACAsG,OAAQ,EACR6gB,MAAO,EACPpK,KAAkB,IAAb7gB,EAAK6gB,IACV0sD,SAAU,GACVxpE,OAAQ,GACRgB,OAAQ,GACRyoE,WAAW,EACXltC,SAAS,EACTn2B,SAAU,EACVtG,OAAQ,EACR4pE,OAAQ,EACRC,OAAQ,EACRxpD,UAAU,EACVgnB,UAGFpnC,EAAQjM,EAAM81E,aAAa7pE,EAAOwJ,GAClC4xB,EAAMp7B,EAAMhB,OAEZ,MAAM8qE,EAAW,GACX/pE,EAAS,GACTlE,EAAQ,GACd,IACI3K,EADAqQ,EAAOynE,EAOX,MAAM/2D,EAAM,IAAMzI,EAAMlD,QAAU80B,EAAM,EAClC2uC,EAAOvgE,EAAMugE,KAAO,CAACniE,EAAI,IAAM5H,EAAMwJ,EAAMlD,MAAQsB,GACnDpB,EAAUgD,EAAMhD,QAAU,IAAMxG,IAAQwJ,EAAMlD,QAAU,GACxD0jE,EAAY,IAAMhqE,EAAM4G,MAAM4C,EAAMlD,MAAQ,GAC5C2jE,EAAU,CAAC/4E,EAAQ,GAAIqW,EAAM,KACjCiC,EAAMigE,UAAYv4E,EAClBsY,EAAMlD,OAASiB,GAGXzC,EAASk+B,IACbx5B,EAAMvJ,QAA0B,MAAhB+iC,EAAM/iC,OAAiB+iC,EAAM/iC,OAAS+iC,EAAM9xC,MAC5D+4E,EAAQjnC,EAAM9xC,QAGVg5E,EAAS,KACb,IAAIC,EAAQ,EAEZ,KAAkB,MAAXJ,MAA+B,MAAZA,EAAK,IAA0B,MAAZA,EAAK,KAChDvjE,IACAgD,EAAM2d,QACNgjD,IAGF,OAAIA,EAAQ,GAAM,IAIlB3gE,EAAMgzB,SAAU,EAChBhzB,EAAM2d,SACC,IAGHijD,GAAY9oE,IAChBkI,EAAMlI,KACNzF,EAAM9D,KAAKuJ,IAGP+oE,GAAY/oE,IAChBkI,EAAMlI,KACNzF,EAAM2J,OAWFzN,GAAOi+D,IACX,GAAkB,aAAdz0D,EAAKD,KAAqB,CAC5B,MAAMgpE,EAAU9gE,EAAMzJ,OAAS,IAAmB,UAAbi2D,EAAI10D,MAAiC,UAAb00D,EAAI10D,MAC3Di5B,GAA4B,IAAhBy7B,EAAI91C,SAAqB4pD,EAAS9qE,SAAwB,SAAbg3D,EAAI10D,MAAgC,UAAb00D,EAAI10D,MAEzE,UAAb00D,EAAI10D,MAAiC,UAAb00D,EAAI10D,MAAqBgpE,GAAY/vC,IAC/D/wB,EAAMvJ,OAASuJ,EAAMvJ,OAAO2G,MAAM,GAAIrF,EAAKtB,OAAOjB,QAClDuC,EAAKD,KAAO,OACZC,EAAKrQ,MAAQ,IACbqQ,EAAKtB,OAASqpE,EACd9/D,EAAMvJ,QAAUsB,EAAKtB,OAEzB,CAOA,GALI6pE,EAAS9qE,QAAuB,UAAbg3D,EAAI10D,OACzBwoE,EAASA,EAAS9qE,OAAS,GAAGurE,OAASvU,EAAI9kE,QAGzC8kE,EAAI9kE,OAAS8kE,EAAI/1D,SAAQ6E,EAAOkxD,GAChCz0D,GAAsB,SAAdA,EAAKD,MAAgC,SAAb00D,EAAI10D,KAGtC,OAFAC,EAAKrQ,OAAS8kE,EAAI9kE,WAClBqQ,EAAKtB,QAAUsB,EAAKtB,QAAU,IAAM+1D,EAAI9kE,OAI1C8kE,EAAIz0D,KAAOA,EACX6lC,EAAOrvC,KAAKi+D,GACZz0D,EAAOy0D,GAGHwU,GAAc,CAAClpE,EAAMpQ,KACzB,MAAM8xC,EAAQ,IAAKmmC,EAAcj4E,GAAQu5E,WAAY,EAAGF,MAAO,IAE/DvnC,EAAMzhC,KAAOA,EACbyhC,EAAM2mC,OAASngE,EAAMmgE,OACrB3mC,EAAM/iC,OAASuJ,EAAMvJ,OACrB+iC,EAAM0nC,WAAalhE,EAAMlD,MACzB08B,EAAM2nC,YAAcvjC,EAAOpoC,OAC3B,MAAMiB,GAAU/D,EAAK6tB,QAAU,IAAM,IAAMiZ,EAAMt8B,KAEjD0jE,GAAU,UACVryE,GAAK,CAAEuJ,OAAMpQ,QAAO+O,OAAQuJ,EAAMvJ,OAAS,GAAKylE,IAChD3tE,GAAK,CAAEuJ,KAAM,QAAS4e,SAAS,EAAMhvB,MAAOsV,IAAWvG,WACvD6pE,EAAS/xE,KAAKirC,IAGV4nC,GAAe5nC,IACnB,MAAM6nC,EAAU7qE,EAAM4G,MAAMo8B,EAAM0nC,WAAYlhE,EAAMlD,MAAQ,GAEtDwkE,EAtOqB,EAACvzC,EAAM16B,KACpC,IAAoC,IAAhCA,EAAQkuE,oBACV,MAAO,CAAEC,OAAO,GAGlB,MAAMhlE,EACmC,iBAAhCnJ,EAAQkuE,oBACXluE,EAAQkuE,oBACR74C,EAAUg0C,8BAEV4C,EAAWZ,EAAc3wC,GAAMhjC,IAAIi0E,GAAUA,EAAOhhE,QAE1D,GAAIshE,EAAS9pE,OAAS,IAElB8pE,EAAShtE,KAAK0sE,GAAqB,KAAXA,IACxBM,EAAShtE,KAAK0sE,GAAU,UAAUn3D,KAAKm3D,KA5JRM,KACnC,MAAM5tE,EAAS4tE,EAASv0E,IAAIg0E,GAAuB7tE,OAAOiE,SAE1D,IAAK,IAAImH,EAAI,EAAGA,EAAI5K,EAAO8D,OAAQ8G,IACjC,IAAK,IAAI4H,EAAI5H,EAAI,EAAG4H,EAAIxS,EAAO8D,OAAQ0O,IAAK,CAC1C,MAAM7X,EAAIqF,EAAO4K,GACXhQ,EAAIoF,EAAOwS,GACXu6D,EAAOpyE,EAAE,GAEf,GAAKoyE,GAAQpyE,IAAMoyE,EAAKgD,OAAOp1E,EAAEmJ,SAAWlJ,IAAMmyE,EAAKgD,OAAOn1E,EAAEkJ,UAI5DnJ,IAAMC,GAAKD,EAAE6e,WAAW5e,IAAMA,EAAE4e,WAAW7e,IAC7C,OAAO,CAEX,CAGF,OAAO,GA0IHq1E,CAA6BpC,IAE7B,MAAO,CAAEkC,OAAO,GAIpB,IAAK,MAAMxC,KAAUM,EAAU,CAC7B,MAAMqC,EAAatC,EAA6BL,GAChD,GAAI2C,EACF,MAAO,CAAEH,OAAO,EAAMG,cAGxB,GAAIpC,EAAyBP,GAAUxiE,EACrC,MAAO,CAAEglE,OAAO,EAEpB,CAEA,MAAO,CAAEA,OAAO,IAqMGI,CADJprE,EAAM4G,MAAMo8B,EAAM0nC,WAAa,EAAGlhE,EAAMlD,OACPpK,GAE9C,IAAoB,SAAf8mC,EAAM1hC,MAAkC,SAAf0hC,EAAM1hC,OAAoBwpE,EAASE,MAAO,CACtE,MAAMG,EAAaL,EAASK,YACvBnoC,EAAM/iC,OAAS,GAAKylE,IAAaxpE,EAAK6tB,QAAU,IAAI+gD,EAASK,cAAgBL,EAASK,iBACvFt5E,EACE6U,EAAO0gC,EAAOpE,EAAM2nC,aAE1BjkE,EAAKpF,KAAO,OACZoF,EAAKxV,MAAQ25E,EACbnkE,EAAKzG,OAASkrE,GAAcp3E,EAAMy5B,YAAYq9C,GAE9C,IAAK,IAAI/kE,EAAIk9B,EAAM2nC,YAAc,EAAG7kE,EAAIshC,EAAOpoC,OAAQ8G,IACrDshC,EAAOthC,GAAG5U,MAAQ,GAClBk2C,EAAOthC,GAAG7F,OAAS,UACZmnC,EAAOthC,GAAGotD,OAQnB,OALA1pD,EAAMvJ,OAAS+iC,EAAM/iC,OAASyG,EAAKzG,OACnCuJ,EAAMkgE,WAAY,EAElB3xE,GAAK,CAAEuJ,KAAM,QAAS4e,SAAS,EAAMhvB,QAAO+O,OAAQ,UACpDoqE,GAAU,SAEZ,CAEA,IACI5mC,EADAxjC,EAAS+iC,EAAMn8B,OAAS3K,EAAK6tB,QAAU,IAAM,IAGjD,GAAmB,WAAfiZ,EAAM1hC,KAAmB,CAC3B,IAAI+pE,EAAc/B,EAUlB,GARItmC,EAAMunC,OAASvnC,EAAMunC,MAAMvrE,OAAS,GAAKgkC,EAAMunC,MAAMr1D,SAAS,OAChEm2D,EAAcjrD,EAASlkB,KAGrBmvE,IAAgB/B,GAAQr3D,KAAS,QAAQZ,KAAK24D,QAChD/pE,EAAS+iC,EAAMn8B,MAAQ,OAAOwkE,KAG5BroC,EAAMunC,MAAMr1D,SAAS,OAASuuB,EAAOumC,MAAgB,eAAe34D,KAAKoyB,GAAO,CAMlF,MAAM6nC,EAAaxrE,EAAM2jC,EAAM,IAAK5mC,EAAS0uE,WAAW,IAAStrE,OAEjEA,EAAS+iC,EAAMn8B,MAAQ,IAAIykE,KAAcD,IAC3C,CAEwB,QAApBroC,EAAMzhC,KAAKD,OACbkI,EAAMizB,gBAAiB,EAE3B,CAEA1kC,GAAK,CAAEuJ,KAAM,QAAS4e,SAAS,EAAMhvB,QAAO+O,WAC5CoqE,GAAU,WAOZ,IAAuB,IAAnBnuE,EAAKqvE,YAAwB,sBAAsBl6D,KAAKrR,GAAQ,CAClE,IAAIwrE,GAAc,EAEdvrE,EAASD,EAAM2L,QAAQ07D,EAA6B,CAACz6D,EAAG6+D,EAAKjxC,EAAOkxC,EAAOjoC,EAAMn9B,IACrE,OAAVolE,GACFF,GAAc,EACP5+D,GAGK,MAAV8+D,EACED,EACKA,EAAMC,GAASjoC,EAAO0hC,EAAM8F,OAAOxnC,EAAKzkC,QAAU,IAE7C,IAAVsH,EACK+iE,GAAc5lC,EAAO0hC,EAAM8F,OAAOxnC,EAAKzkC,QAAU,IAEnDmmE,EAAM8F,OAAOzwC,EAAMx7B,QAGd,MAAV0sE,EACKzG,EAAYgG,OAAOzwC,EAAMx7B,QAGpB,MAAV0sE,EACED,EACKA,EAAMC,GAASjoC,EAAO6lC,EAAO,IAE/BA,EAEFmC,EAAM7+D,EAAI,KAAKA,KAaxB,OAVoB,IAAhB4+D,IAEAvrE,GADoB,IAAlB/D,EAAK8gC,SACE/8B,EAAO0L,QAAQ,MAAO,IAEtB1L,EAAO0L,QAAQ,OAAQiB,GACvBA,EAAE5N,OAAS,GAAM,EAAI,OAAU4N,EAAI,KAAO,KAKnD3M,IAAWD,IAA2B,IAAlB9D,EAAKihC,UAC3B3zB,EAAMvJ,OAASD,EACRwJ,IAGTA,EAAMvJ,OAASlM,EAAM43E,WAAW1rE,EAAQuJ,EAAO3M,GACxC2M,EACT,CAMA,MAAQyI,KAAO,CAGb,GAFA/gB,EAAQsV,IAEM,OAAVtV,EACF,SAOF,GAAc,OAAVA,EAAgB,CAClB,MAAMuV,EAAOsjE,IAEb,GAAa,MAATtjE,IAA8B,IAAdvK,EAAKqtE,KACvB,SAGF,GAAa,MAAT9iE,GAAyB,MAATA,EAClB,SAGF,IAAKA,EAAM,CACTvV,GAAS,KACT6G,GAAK,CAAEuJ,KAAM,OAAQpQ,UACrB,QACF,CAGA,MAAM0a,EAAQ,OAAO0uB,KAAK0vC,KAC1B,IAAIlzC,EAAU,EAgBd,GAdIlrB,GAASA,EAAM,GAAG5M,OAAS,IAC7B83B,EAAUlrB,EAAM,GAAG5M,OACnBwK,EAAMlD,OAASwwB,EACXA,EAAU,GAAM,IAClB5lC,GAAS,QAIS,IAAlBgL,EAAK8gC,SACP9rC,EAAQsV,IAERtV,GAASsV,IAGY,IAAnBgD,EAAMnD,SAAgB,CACxBtO,GAAK,CAAEuJ,KAAM,OAAQpQ,UACrB,QACF,CACF,CAOA,GAAIsY,EAAMnD,SAAW,IAAgB,MAAVnV,GAAgC,MAAfqQ,EAAKrQ,OAAgC,OAAfqQ,EAAKrQ,OAAiB,CACtF,IAAmB,IAAfgL,EAAK2b,OAA6B,MAAV3mB,EAAe,CACzC,MAAMq5E,EAAQhpE,EAAKrQ,MAAM0V,MAAM,GAC/B,GAAI2jE,EAAMr1D,SAAS,OACjB3T,EAAKsW,OAAQ,EAET0yD,EAAMr1D,SAAS,MAAM,CACvB,MAAM02D,EAAMrqE,EAAKrQ,MAAM26E,YAAY,KAC7BC,EAAMvqE,EAAKrQ,MAAM0V,MAAM,EAAGglE,GAC1BnoC,EAAOliC,EAAKrQ,MAAM0V,MAAMglE,EAAM,GAC9B/zD,EAAQsuD,EAAmB1iC,GACjC,GAAI5rB,EAAO,CACTtW,EAAKrQ,MAAQ46E,EAAMj0D,EACnBrO,EAAMkgE,WAAY,EAClBljE,IAEKwiE,EAAI/oE,QAAmC,IAAzBmnC,EAAOprC,QAAQuF,KAChCynE,EAAI/oE,OAASylE,GAEf,QACF,CACF,CAEJ,EAEe,MAAVx0E,GAA4B,MAAX64E,KAA8B,MAAV74E,GAA4B,MAAX64E,OACzD74E,EAAQ,KAAKA,KAGD,MAAVA,GAAiC,MAAfqQ,EAAKrQ,OAAgC,OAAfqQ,EAAKrQ,QAC/CA,EAAQ,KAAKA,MAGI,IAAfgL,EAAK2b,OAA4B,MAAV3mB,GAAgC,MAAfqQ,EAAKrQ,QAC/CA,EAAQ,KAGVqQ,EAAKrQ,OAASA,EACd4T,EAAO,CAAE5T,UACT,QACF,CAOA,GAAqB,IAAjBsY,EAAMogE,QAA0B,MAAV14E,EAAe,CACvCA,EAAQ6C,EAAMy5B,YAAYt8B,GAC1BqQ,EAAKrQ,OAASA,EACd4T,EAAO,CAAE5T,UACT,QACF,CAMA,GAAc,MAAVA,EAAe,CACjBsY,EAAMogE,OAA0B,IAAjBpgE,EAAMogE,OAAe,EAAI,GAChB,IAApB1tE,EAAKyK,YACP5O,GAAK,CAAEuJ,KAAM,OAAQpQ,UAEvB,QACF,CAMA,GAAc,MAAVA,EAAe,CACjBk5E,GAAU,UACVryE,GAAK,CAAEuJ,KAAM,QAASpQ,UACtB,QACF,CAEA,GAAc,MAAVA,EAAe,CACjB,GAAqB,IAAjBsY,EAAMmgE,SAAwC,IAAxBztE,EAAK6vE,eAC7B,MAAM,IAAI3lE,YAAY4hE,EAAY,UAAW,MAG/C,MAAM9nD,EAAU4pD,EAASA,EAAS9qE,OAAS,GAC3C,GAAIkhB,GAAW1W,EAAMmgE,SAAWzpD,EAAQypD,OAAS,EAAG,CAClDiB,GAAad,EAAStkE,OACtB,QACF,CAEAzN,GAAK,CAAEuJ,KAAM,QAASpQ,QAAO+O,OAAQuJ,EAAMmgE,OAAS,IAAM,QAC1DU,GAAU,UACV,QACF,CAMA,GAAc,MAAVn5E,EAAe,CACjB,IAAuB,IAAnBgL,EAAK8vE,WAAuBhC,IAAY90D,SAAS,KAOnDk1D,GAAU,gBAP+C,CACzD,IAAuB,IAAnBluE,EAAK8vE,YAA8C,IAAxB9vE,EAAK6vE,eAClC,MAAM,IAAI3lE,YAAY4hE,EAAY,UAAW,MAG/C92E,EAAQ,KAAKA,GACf,CAIA6G,GAAK,CAAEuJ,KAAM,UAAWpQ,UACxB,QACF,CAEA,GAAc,MAAVA,EAAe,CACjB,IAAuB,IAAnBgL,EAAK8vE,WAAuBzqE,GAAsB,YAAdA,EAAKD,MAA4C,IAAtBC,EAAKrQ,MAAM8N,OAAe,CAC3FjH,GAAK,CAAEuJ,KAAM,OAAQpQ,QAAO+O,OAAQ,KAAK/O,MACzC,QACF,CAEA,GAAuB,IAAnBsY,EAAMnD,SAAgB,CACxB,IAA4B,IAAxBnK,EAAK6vE,eACP,MAAM,IAAI3lE,YAAY4hE,EAAY,UAAW,MAG/CjwE,GAAK,CAAEuJ,KAAM,OAAQpQ,QAAO+O,OAAQ,KAAK/O,MACzC,QACF,CAEAm5E,GAAU,YAEV,MAAM4B,EAAY1qE,EAAKrQ,MAAM0V,MAAM,GAUnC,IATmB,IAAfrF,EAAKsW,OAAmC,MAAjBo0D,EAAU,IAAeA,EAAU/2D,SAAS,OACrEhkB,EAAQ,IAAIA,KAGdqQ,EAAKrQ,OAASA,EACd4T,EAAO,CAAE5T,WAIoB,IAAzBgL,EAAKgwE,iBAA6Bn4E,EAAMo4E,cAAcF,GACxD,SAGF,MAAMpkE,EAAU9T,EAAMy5B,YAAYjsB,EAAKrQ,OAKvC,GAJAsY,EAAMvJ,OAASuJ,EAAMvJ,OAAO2G,MAAM,GAAIrF,EAAKrQ,MAAM8N,SAIpB,IAAzB9C,EAAKgwE,gBAA0B,CACjC1iE,EAAMvJ,QAAU4H,EAChBtG,EAAKrQ,MAAQ2W,EACb,QACF,CAGAtG,EAAKrQ,MAAQ,IAAI64B,IAAUliB,KAAWtG,EAAKrQ,SAC3CsY,EAAMvJ,QAAUsB,EAAKrQ,MACrB,QACF,CAMA,GAAc,MAAVA,IAAkC,IAAjBgL,EAAK4jB,QAAkB,CAC1CsqD,GAAU,UAEV,MAAM1jE,EAAO,CACXpF,KAAM,QACNpQ,QACA+O,OAAQ,IACRmsE,YAAa5iE,EAAMvJ,OAAOjB,OAC1B2rE,YAAanhE,EAAM49B,OAAOpoC,QAG5Be,EAAOhI,KAAK2O,GACZ3O,GAAK2O,GACL,QACF,CAEA,GAAc,MAAVxV,EAAe,CACjB,MAAMm7E,EAAQtsE,EAAOA,EAAOf,OAAS,GAErC,IAAqB,IAAjB9C,EAAK4jB,UAAqBusD,EAAO,CACnCt0E,GAAK,CAAEuJ,KAAM,OAAQpQ,QAAO+O,OAAQ/O,IACpC,QACF,CAEA,IAAI+O,EAAS,IAEb,IAAmB,IAAfosE,EAAMC,KAAe,CACvB,MAAMtkE,EAAMo/B,EAAOxgC,QACbhF,EAAQ,GAEd,IAAK,IAAIkE,EAAIkC,EAAIhJ,OAAS,EAAG8G,GAAK,IAChCshC,EAAO5hC,MACa,UAAhBwC,EAAIlC,GAAGxE,MAFwBwE,IAKf,SAAhBkC,EAAIlC,GAAGxE,MACTM,EAAM4M,QAAQxG,EAAIlC,GAAG5U,OAIzB+O,EAAS6nE,EAAYlmE,EAAO1F,GAC5BsN,EAAMkgE,WAAY,CACpB,CAEA,IAAoB,IAAhB2C,EAAME,QAAiC,IAAfF,EAAMC,KAAe,CAC/C,MAAM5iC,EAAMlgC,EAAMvJ,OAAO2G,MAAM,EAAGylE,EAAMD,aAClCI,EAAOhjE,EAAM49B,OAAOxgC,MAAMylE,EAAM1B,aACtC0B,EAAMn7E,MAAQm7E,EAAMpsE,OAAS,MAC7B/O,EAAQ+O,EAAS,MACjBuJ,EAAMvJ,OAASypC,EACf,IAAK,MAAM8L,KAAKg3B,EACdhjE,EAAMvJ,QAAWu1C,EAAEv1C,QAAUu1C,EAAEtkD,KAEnC,CAEA6G,GAAK,CAAEuJ,KAAM,QAASpQ,QAAO+O,WAC7BoqE,GAAU,UACVtqE,EAAOyF,MACP,QACF,CAMA,GAAc,MAAVtU,EAAe,CACb44E,EAAS9qE,OAAS,GACpB8qE,EAASA,EAAS9qE,OAAS,GAAGyrE,aAEhC1yE,GAAK,CAAEuJ,KAAM,OAAQpQ,UACrB,QACF,CAMA,GAAc,MAAVA,EAAe,CACjB,IAAI+O,EAAS/O,EAEb,MAAMm7E,EAAQtsE,EAAOA,EAAOf,OAAS,GACjCqtE,GAAqC,WAA5BxwE,EAAMA,EAAMmD,OAAS,KAChCqtE,EAAME,OAAQ,EACdtsE,EAAS,KAGXlI,GAAK,CAAEuJ,KAAM,QAASpQ,QAAO+O,WAC7B,QACF,CAMA,GAAc,MAAV/O,EAAe,CAKjB,GAAkB,QAAdqQ,EAAKD,MAAkBkI,EAAMlD,QAAUkD,EAAM2d,MAAQ,EAAG,CAC1D3d,EAAM2d,MAAQ3d,EAAMlD,MAAQ,EAC5BkD,EAAMigE,SAAW,GACjBjgE,EAAMvJ,OAAS,GACfmnC,EAAO5hC,MACPjE,EAAOynE,EACP,QACF,CAEAjxE,GAAK,CAAEuJ,KAAM,QAASpQ,QAAO+O,OAAQilE,IACrC,QACF,CAMA,GAAc,MAAVh0E,EAAe,CACjB,GAAIsY,EAAMzJ,OAAS,GAAmB,QAAdwB,EAAKD,KAAgB,CACxB,MAAfC,EAAKrQ,QAAeqQ,EAAKtB,OAASglE,GACtC,MAAMoH,EAAQtsE,EAAOA,EAAOf,OAAS,GACrCuC,EAAKD,KAAO,OACZC,EAAKtB,QAAU/O,EACfqQ,EAAKrQ,OAASA,EACdm7E,EAAMC,MAAO,EACb,QACF,CAEA,GAAK9iE,EAAMzJ,OAASyJ,EAAMmgE,SAAY,GAAmB,QAAdpoE,EAAKD,MAAgC,UAAdC,EAAKD,KAAkB,CACvFvJ,GAAK,CAAEuJ,KAAM,OAAQpQ,QAAO+O,OAAQglE,IACpC,QACF,CAEAltE,GAAK,CAAEuJ,KAAM,MAAOpQ,QAAO+O,OAAQglE,IACnC,QACF,CAMA,GAAc,MAAV/zE,EAAe,CAEjB,KADgBqQ,GAAuB,MAAfA,EAAKrQ,SACM,IAAnBgL,EAAKstE,WAAiC,MAAXO,KAA8B,MAAZA,EAAK,GAAY,CAC5ES,GAAY,QAASt5E,GACrB,QACF,CAEA,GAAIqQ,GAAsB,UAAdA,EAAKD,KAAkB,CACjC,MAAMmF,EAAOsjE,IACb,IAAI9pE,EAAS/O,EAEb,GAAa,MAATuV,IAAiB1S,EAAM04E,sBACzB,MAAM,IAAIp6E,MAAM,4DAGE,MAAfkP,EAAKrQ,QAAkB,SAASmgB,KAAK5K,IAAoB,MAATA,IAAiB,eAAe4K,KAAK24D,QACxF/pE,EAAS,KAAK/O,KAGhB6G,GAAK,CAAEuJ,KAAM,OAAQpQ,QAAO+O,WAC5B,QACF,CAEA,IAAiB,IAAb/D,EAAK6gB,MAA+B,UAAdxb,EAAKD,MAAkC,QAAdC,EAAKD,MAAiB,CACvEvJ,GAAK,CAAEuJ,KAAM,QAASpQ,QAAO+O,OAAQ8lE,IACrC,QACF,CAEAhuE,GAAK,CAAEuJ,KAAM,QAASpQ,QAAO+O,OAAQklE,IACrC,QACF,CAMA,GAAc,MAAVj0E,EAAe,CACjB,IAAuB,IAAnBgL,EAAKstE,WAAiC,MAAXO,MACb,MAAZA,EAAK,KAAe,SAAS14D,KAAK04D,EAAK,KAAK,CAC9CS,GAAY,SAAUt5E,GACtB,QACF,CAGF,IAAsB,IAAlBgL,EAAKwwE,UAAqC,IAAhBljE,EAAMlD,MAAa,CAC/C4jE,IACA,QACF,CACF,CAMA,GAAc,MAAVh5E,EAAe,CACjB,IAAuB,IAAnBgL,EAAKstE,WAAiC,MAAXO,KAA8B,MAAZA,EAAK,GAAY,CAChES,GAAY,OAAQt5E,GACpB,QACF,CAEA,GAAKqQ,GAAuB,MAAfA,EAAKrQ,QAAiC,IAAfgL,EAAK6yB,MAAiB,CACxDh3B,GAAK,CAAEuJ,KAAM,OAAQpQ,QAAO+O,OAAQulE,IACpC,QACF,CAEA,GAAKjkE,IAAuB,YAAdA,EAAKD,MAAoC,UAAdC,EAAKD,MAAkC,UAAdC,EAAKD,OAAsBkI,EAAMmgE,OAAS,EAAG,CAC7G5xE,GAAK,CAAEuJ,KAAM,OAAQpQ,UACrB,QACF,CAEA6G,GAAK,CAAEuJ,KAAM,OAAQpQ,MAAOs0E,IAC5B,QACF,CAMA,GAAc,MAAVt0E,EAAe,CACjB,IAAuB,IAAnBgL,EAAKstE,WAAiC,MAAXO,KAA8B,MAAZA,EAAK,GAAY,CAChEhyE,GAAK,CAAEuJ,KAAM,KAAM4e,SAAS,EAAMhvB,QAAO+O,OAAQ,KACjD,QACF,CAEAlI,GAAK,CAAEuJ,KAAM,OAAQpQ,UACrB,QACF,CAMA,GAAc,MAAVA,EAAe,CACH,MAAVA,GAA2B,MAAVA,IACnBA,EAAQ,KAAKA,KAGf,MAAM0a,EAAQu7D,EAAwB7sC,KAAK0vC,KACvCp+D,IACF1a,GAAS0a,EAAM,GACfpC,EAAMlD,OAASsF,EAAM,GAAG5M,QAG1BjH,GAAK,CAAEuJ,KAAM,OAAQpQ,UACrB,QACF,CAMA,GAAIqQ,IAAuB,aAAdA,EAAKD,OAAqC,IAAdC,EAAK+nE,MAAgB,CAC5D/nE,EAAKD,KAAO,OACZC,EAAK+nE,MAAO,EACZ/nE,EAAKrQ,OAASA,EACdqQ,EAAKtB,OAASqpE,EACd9/D,EAAMkgE,WAAY,EAClBlgE,EAAM4W,UAAW,EACjB6pD,EAAQ/4E,GACR,QACF,CAEA,IAAIuyC,EAAOumC,IACX,IAAuB,IAAnB9tE,EAAKstE,WAAsB,UAAUn4D,KAAKoyB,GAAO,CACnD+mC,GAAY,OAAQt5E,GACpB,QACF,CAEA,GAAkB,SAAdqQ,EAAKD,KAAiB,CACxB,IAAwB,IAApBpF,EAAKikB,WAAqB,CAC5B8pD,EAAQ/4E,GACR,QACF,CAEA,MAAMy7E,EAAQprE,EAAKA,KACb0F,EAAS0lE,EAAMprE,KACfqrE,EAAyB,UAAfD,EAAMrrE,MAAmC,QAAfqrE,EAAMrrE,KAC1CurE,EAAY5lE,IAA2B,SAAhBA,EAAO3F,MAAmC,aAAhB2F,EAAO3F,MAE9D,IAAkB,IAAdpF,EAAKqtE,QAAmBqD,GAAYnpC,EAAK,IAAkB,MAAZA,EAAK,IAAc,CACpE1rC,GAAK,CAAEuJ,KAAM,OAAQpQ,QAAO+O,OAAQ,KACpC,QACF,CAEA,MAAMqqE,EAAU9gE,EAAMzJ,OAAS,IAAqB,UAAf4sE,EAAMrrE,MAAmC,UAAfqrE,EAAMrrE,MAC/Di5B,EAAYuvC,EAAS9qE,SAA0B,SAAf2tE,EAAMrrE,MAAkC,UAAfqrE,EAAMrrE,MACrE,IAAKsrE,GAA0B,UAAfD,EAAMrrE,OAAqBgpE,IAAY/vC,EAAW,CAChExiC,GAAK,CAAEuJ,KAAM,OAAQpQ,QAAO+O,OAAQ,KACpC,QACF,CAGA,KAA4B,QAArBwjC,EAAK78B,MAAM,EAAG,IAAc,CACjC,MAAMkmE,EAAQ9sE,EAAMwJ,EAAMlD,MAAQ,GAClC,GAAIwmE,GAAmB,MAAVA,EACX,MAEFrpC,EAAOA,EAAK78B,MAAM,GAClBqjE,EAAQ,MAAO,EACjB,CAEA,GAAmB,QAAf0C,EAAMrrE,MAAkB2Q,IAAO,CACjC1Q,EAAKD,KAAO,WACZC,EAAKrQ,OAASA,EACdqQ,EAAKtB,OAASmgB,EAASlkB,GACvBsN,EAAMvJ,OAASsB,EAAKtB,OACpBuJ,EAAM4W,UAAW,EACjB6pD,EAAQ/4E,GACR,QACF,CAEA,GAAmB,UAAfy7E,EAAMrrE,MAAwC,QAApBqrE,EAAMprE,KAAKD,OAAmBurE,GAAa56D,IAAO,CAC9EzI,EAAMvJ,OAASuJ,EAAMvJ,OAAO2G,MAAM,IAAK+lE,EAAM1sE,OAASsB,EAAKtB,QAAQjB,QACnE2tE,EAAM1sE,OAAS,MAAM0sE,EAAM1sE,SAE3BsB,EAAKD,KAAO,WACZC,EAAKtB,OAASmgB,EAASlkB,IAASA,EAAKmkB,cAAgB,IAAM,OAC3D9e,EAAKrQ,OAASA,EACdsY,EAAM4W,UAAW,EACjB5W,EAAMvJ,QAAU0sE,EAAM1sE,OAASsB,EAAKtB,OACpCgqE,EAAQ/4E,GACR,QACF,CAEA,GAAmB,UAAfy7E,EAAMrrE,MAAwC,QAApBqrE,EAAMprE,KAAKD,MAA8B,MAAZmiC,EAAK,GAAY,CAC1E,MAAM7hB,OAAuB,IAAjB6hB,EAAK,GAAgB,KAAO,GAExCj6B,EAAMvJ,OAASuJ,EAAMvJ,OAAO2G,MAAM,IAAK+lE,EAAM1sE,OAASsB,EAAKtB,QAAQjB,QACnE2tE,EAAM1sE,OAAS,MAAM0sE,EAAM1sE,SAE3BsB,EAAKD,KAAO,WACZC,EAAKtB,OAAS,GAAGmgB,EAASlkB,KAAQgpE,KAAiBA,IAAgBtjD,KACnErgB,EAAKrQ,OAASA,EAEdsY,EAAMvJ,QAAU0sE,EAAM1sE,OAASsB,EAAKtB,OACpCuJ,EAAM4W,UAAW,EAEjB6pD,EAAQ/4E,EAAQsV,KAEhBzO,GAAK,CAAEuJ,KAAM,QAASpQ,MAAO,IAAK+O,OAAQ,KAC1C,QACF,CAEA,GAAmB,QAAf0sE,EAAMrrE,MAA8B,MAAZmiC,EAAK,GAAY,CAC3CliC,EAAKD,KAAO,WACZC,EAAKrQ,OAASA,EACdqQ,EAAKtB,OAAS,QAAQilE,KAAiB9kD,EAASlkB,KAAQgpE,KACxD17D,EAAMvJ,OAASsB,EAAKtB,OACpBuJ,EAAM4W,UAAW,EACjB6pD,EAAQ/4E,EAAQsV,KAChBzO,GAAK,CAAEuJ,KAAM,QAASpQ,MAAO,IAAK+O,OAAQ,KAC1C,QACF,CAGAuJ,EAAMvJ,OAASuJ,EAAMvJ,OAAO2G,MAAM,GAAIrF,EAAKtB,OAAOjB,QAGlDuC,EAAKD,KAAO,WACZC,EAAKtB,OAASmgB,EAASlkB,GACvBqF,EAAKrQ,OAASA,EAGdsY,EAAMvJ,QAAUsB,EAAKtB,OACrBuJ,EAAM4W,UAAW,EACjB6pD,EAAQ/4E,GACR,QACF,CAEA,MAAM8xC,EAAQ,CAAE1hC,KAAM,OAAQpQ,QAAO+O,OAAQqpE,IAE3B,IAAdptE,EAAKqtE,MASLhoE,GAAuB,YAAdA,EAAKD,MAAoC,UAAdC,EAAKD,OAAoC,IAAfpF,EAAK6yB,OAMnEvlB,EAAMlD,QAAUkD,EAAM2d,OAAuB,UAAd5lB,EAAKD,MAAkC,QAAdC,EAAKD,OAC7C,QAAdC,EAAKD,MACPkI,EAAMvJ,QAAU4lE,EAChBtkE,EAAKtB,QAAU4lE,IAEO,IAAb3pE,EAAK6gB,KACdvT,EAAMvJ,QAAU6lE,EAChBvkE,EAAKtB,QAAU6lE,IAGft8D,EAAMvJ,QAAUmpE,EAChB7nE,EAAKtB,QAAUmpE,GAGF,MAAXW,MACFvgE,EAAMvJ,QAAUylE,EAChBnkE,EAAKtB,QAAUylE,IAInB3tE,GAAKirC,KAzBHA,EAAM/iC,OAAS/O,EACf6G,GAAKirC,KAVLA,EAAM/iC,OAAS,MACG,QAAdsB,EAAKD,MAAgC,UAAdC,EAAKD,OAC9B0hC,EAAM/iC,OAASmpE,EAAQpmC,EAAM/iC,QAE/BlI,GAAKirC,GA+BT,CAEA,KAAOx5B,EAAMnD,SAAW,GAAG,CACzB,IAA4B,IAAxBnK,EAAK6vE,eAAyB,MAAM,IAAI3lE,YAAY4hE,EAAY,UAAW,MAC/Ex+D,EAAMvJ,OAASlM,EAAMg5E,WAAWvjE,EAAMvJ,OAAQ,KAC9CoqE,GAAU,WACZ,CAEA,KAAO7gE,EAAMmgE,OAAS,GAAG,CACvB,IAA4B,IAAxBztE,EAAK6vE,eAAyB,MAAM,IAAI3lE,YAAY4hE,EAAY,UAAW,MAC/Ex+D,EAAMvJ,OAASlM,EAAMg5E,WAAWvjE,EAAMvJ,OAAQ,KAC9CoqE,GAAU,SACZ,CAEA,KAAO7gE,EAAMzJ,OAAS,GAAG,CACvB,IAA4B,IAAxB7D,EAAK6vE,eAAyB,MAAM,IAAI3lE,YAAY4hE,EAAY,UAAW,MAC/Ex+D,EAAMvJ,OAASlM,EAAMg5E,WAAWvjE,EAAMvJ,OAAQ,KAC9CoqE,GAAU,SACZ,CAOA,IAL2B,IAAvBnuE,EAAKmkB,eAAyC,SAAd9e,EAAKD,MAAiC,YAAdC,EAAKD,MAC/DvJ,GAAK,CAAEuJ,KAAM,cAAepQ,MAAO,GAAI+O,OAAQ,GAAGilE,QAI5B,IAApB17D,EAAMkgE,UAAoB,CAC5BlgE,EAAMvJ,OAAS,GAEf,IAAK,MAAM+iC,KAASx5B,EAAM49B,OACxB59B,EAAMvJ,QAA0B,MAAhB+iC,EAAM/iC,OAAiB+iC,EAAM/iC,OAAS+iC,EAAM9xC,MAExD8xC,EAAMkwB,SACR1pD,EAAMvJ,QAAU+iC,EAAMkwB,OAG5B,CAEA,OAAO1pD,GAST1J,EAAMyrE,UAAY,CAACvrE,EAAOnD,KACxB,MAAMX,EAAO,IAAKW,GACZmJ,EAAgC,iBAAnB9J,EAAK+J,UAAyBC,KAAKC,IAAIlE,EAAY/F,EAAK+J,WAAahE,EAClFm5B,EAAMp7B,EAAMhB,OAClB,GAAIo8B,EAAMp1B,EACR,MAAM,IAAII,YAAY,iBAAiBg1B,sCAAwCp1B,KAGjFhG,EAAQwnE,EAAaxnE,IAAUA,EAC/B,MAAM8X,EAAQ/jB,EAAMspC,UAAUxgC,IAGxB,YACJooE,EAAW,cACXC,EAAa,SACbQ,EAAQ,WACRJ,EAAU,OACVK,EAAM,QACNC,EAAO,cACPE,EAAa,KACbE,EAAI,aACJX,GACEnzC,EAAU21C,UAAU/vD,GAElBsxD,EAAQltE,EAAK6gB,IAAM6oD,EAAUD,EAC7BqH,EAAW9wE,EAAK6gB,IAAM+oD,EAAgBH,EACtC57C,EAAU7tB,EAAK6tB,QAAU,GAAK,KAEpC,IAAIu/C,GAAqB,IAAdptE,EAAKqtE,KAAgB,MAAQvD,EAEpC9pE,EAAK6tB,UACPu/C,EAAO,IAAIA,MAGb,MAAMlpD,EAAWlkB,IACS,IAApBA,EAAKikB,WAA4BmpD,EAC9B,IAAIv/C,UAAgBs7C,IAAenpE,EAAK6gB,IAAMuoD,EAAaL,UAG9D5kE,EAASyR,IACb,OAAQA,GACN,IAAK,IACH,MAAO,GAAGs3D,IAAQ1D,IAAW4D,IAE/B,IAAK,KACH,MAAO,GAAGrE,IAAcS,IAAW4D,IAErC,IAAK,MACH,MAAO,GAAGF,IAAQE,IAAOrE,IAAcS,IAAW4D,IAEpD,IAAK,MACH,MAAO,GAAGF,IAAQE,IAAOpE,IAAgBQ,IAAWsH,IAAW1D,IAEjE,IAAK,KACH,OAAOF,EAAQhpD,EAASlkB,GAE1B,IAAK,OACH,MAAO,MAAMktE,IAAQhpD,EAASlkB,KAAQgpE,MAAkB8H,IAAWtH,IAAW4D,IAEhF,IAAK,SACH,MAAO,MAAMF,IAAQhpD,EAASlkB,KAAQgpE,MAAkB8H,IAAW1D,IAAOrE,IAAcS,IAAW4D,IAErG,IAAK,QACH,MAAO,MAAMF,IAAQhpD,EAASlkB,KAAQgpE,MAAkBD,IAAcS,IAAW4D,IAEnF,QAAS,CACP,MAAM19D,EAAQ,iBAAiB0uB,KAAKxoB,GACpC,IAAKlG,EAAO,OAEZ,MAAMkL,EAASzW,EAAOuL,EAAM,IAC5B,IAAKkL,EAAQ,OAEb,OAAOA,EAASmuD,EAAcr5D,EAAM,EACtC,IAIE3L,EAASlM,EAAM81E,aAAa7pE,EAlDpB,CAAEw8B,SAAS,EAAOv7B,OAAQ,KAmDxC,IAAI6V,EAASzW,EAAOJ,GAMpB,OAJI6W,IAAiC,IAAvB5a,EAAKmkB,gBACjBvJ,GAAU,GAAGouD,MAGRpuD,GAGTtX,EAAOvO,QAAU6O,C,2BC72CjB,MAAMzM,EAAO,EAAQ,MACf+wB,EAAO,EAAQ,MACftkB,EAAQ,EAAQ,MAChB/L,EAAQ,EAAQ,KAChBm+B,EAAY,EAAQ,MAyBpB+J,EAAY,CAAClkB,EAAMlb,EAASowE,GAAc,KAC9C,GAAI/sE,MAAMC,QAAQ4X,GAAO,CACvB,MAAMm1D,EAAMn1D,EAAKxjB,IAAIyL,GAASi8B,EAAUj8B,EAAOnD,EAASowE,IAClDE,EAAer7D,IACnB,IAAK,MAAMyqB,KAAW2wC,EAAK,CACzB,MAAM1jE,EAAQ+yB,EAAQzqB,GACtB,GAAItI,EAAO,OAAOA,CACpB,CACA,OAAO,GAET,OAAO2jE,CACT,CAEA,MAAMC,GArCSz+D,EAqCUoJ,IArCmB,iBAARpJ,IAAqBzO,MAAMC,QAAQwO,IAqCrCoJ,EAAKqvB,QAAUrvB,EAAK/X,MArCvC2O,MAuCf,GAAa,KAAToJ,GAAgC,iBAATA,IAAsBq1D,EAC/C,MAAM,IAAIrnE,UAAU,6CAGtB,MAAM7J,EAAOW,GAAW,CAAC,EACnBgb,EAAQ9jB,EAAMspC,UAAUxgC,GACxBkyB,EAAQq+C,EACVnxC,EAAUoxC,UAAUt1D,EAAMlb,GAC1Bo/B,EAAUrd,OAAO7G,EAAMlb,GAAS,GAAO,GAErC2M,EAAQulB,EAAMvlB,aACbulB,EAAMvlB,MAEb,IAAI8jE,EAAY,KAAM,EACtB,GAAIpxE,EAAK6d,OAAQ,CACf,MAAMwzD,EAAa,IAAK1wE,EAASkd,OAAQ,KAAMyzD,QAAS,KAAMlxC,SAAU,MACxEgxC,EAAYrxC,EAAU//B,EAAK6d,OAAQwzD,EAAYN,EACjD,CAEA,MAAMzxD,EAAU,CAACxb,EAAOytE,GAAe,KACrC,MAAM,QAAElxC,EAAO,MAAE3wB,EAAK,OAAE3L,GAAWg8B,EAAU5qB,KAAKrR,EAAO+uB,EAAOlyB,EAAS,CAAEkb,OAAMF,UAC3EjiB,EAAS,CAAEmiB,OAAMvO,QAAOulB,QAAOlX,QAAO7X,QAAOC,SAAQ2L,QAAO2wB,WAMlE,MAJ6B,mBAAlBrgC,EAAKogC,UACdpgC,EAAKogC,SAAS1mC,IAGA,IAAZ2mC,GACF3mC,EAAO2mC,SAAU,IACVkxC,GAAe73E,GAGpB03E,EAAUttE,IACiB,mBAAlB9D,EAAKwxE,UACdxxE,EAAKwxE,SAAS93E,GAEhBA,EAAO2mC,SAAU,IACVkxC,GAAe73E,IAGI,mBAAjBsG,EAAKsxE,SACdtxE,EAAKsxE,QAAQ53E,IAER63E,GAAe73E,IAOxB,OAJIq3E,IACFzxD,EAAQhS,MAAQA,GAGXgS,GAoBTygB,EAAU5qB,KAAO,CAACrR,EAAO+uB,EAAOlyB,GAAWkb,OAAMF,SAAU,CAAC,KAC1D,GAAqB,iBAAV7X,EACT,MAAM,IAAI+F,UAAU,iCAGtB,GAAc,KAAV/F,EACF,MAAO,CAAEu8B,SAAS,EAAOt8B,OAAQ,IAGnC,MAAM/D,EAAOW,GAAW,CAAC,EACnB4R,EAASvS,EAAKuS,SAAWoJ,EAAQ9jB,EAAMupC,eAAiB,MAC9D,IAAI1xB,EAAQ5L,IAAU+X,EAClB9X,EAAU2L,GAAS6C,EAAUA,EAAOzO,GAASA,EAejD,OAbc,IAAV4L,IACF3L,EAASwO,EAASA,EAAOzO,GAASA,EAClC4L,EAAQ3L,IAAW8X,IAGP,IAAVnM,IAAoC,IAAjB1P,EAAK6tB,UAExBne,GADqB,IAAnB1P,EAAK2jB,YAAwC,IAAlB3jB,EAAK0N,SAC1BqyB,EAAUpc,UAAU7f,EAAO+uB,EAAOlyB,EAASgb,GAE3CkX,EAAMuL,KAAKr6B,IAIhB,CAAEs8B,QAAS59B,QAAQiN,GAAQA,QAAO3L,WAiB3Cg8B,EAAUpc,UAAY,CAAC7f,EAAO+X,EAAMlb,EAASgb,EAAQ9jB,EAAMspC,UAAUxgC,MACrDkb,aAAgBwV,OAASxV,EAAOkkB,EAAUrd,OAAO7G,EAAMlb,IACxDwU,KAAKhe,EAAKuW,SAAS5J,IAoBlCi8B,EAAUM,QAAU,CAACzqB,EAAKuF,EAAUxa,IAAYo/B,EAAU5kB,EAAUxa,EAApBo/B,CAA6BnqB,GAgB7EmqB,EAAUn8B,MAAQ,CAACM,EAASvD,IACtBqD,MAAMC,QAAQC,GAAiBA,EAAQ7L,IAAI8Q,GAAK42B,EAAUn8B,MAAMuF,EAAGxI,IAChEiD,EAAMM,EAAS,IAAKvD,EAAS0uE,WAAW,IA8BjDtvC,EAAU7X,KAAO,CAACpkB,EAAOnD,IAAYunB,EAAKpkB,EAAOnD,GAcjDo/B,EAAUoxC,UAAY,CAAC7jE,EAAO3M,EAAS8wE,GAAe,EAAOV,GAAc,KACzE,IAAqB,IAAjBU,EACF,OAAOnkE,EAAMvJ,OAGf,MAAM/D,EAAOW,GAAW,CAAC,EACnBosE,EAAU/sE,EAAKihC,SAAW,GAAK,IAC/Br4B,EAAS5I,EAAKihC,SAAW,GAAK,IAEpC,IAAIrmB,EAAS,GAAGmyD,OAAaz/D,EAAMvJ,UAAU6E,IACzC0E,IAA2B,IAAlBA,EAAMgzB,UACjB1lB,EAAS,OAAOA,SAGlB,MAAMiY,EAAQkN,EAAUn6B,QAAQgV,EAAQja,GAKxC,OAJoB,IAAhBowE,IACFl+C,EAAMvlB,MAAQA,GAGTulB,GAsBTkN,EAAUrd,OAAS,CAAC5e,EAAOnD,EAAU,CAAC,EAAG8wE,GAAe,EAAOV,GAAc,KAC3E,IAAKjtE,GAA0B,iBAAVA,EACnB,MAAM,IAAI+F,UAAU,+BAGtB,IAAIyoB,EAAS,CAAEgO,SAAS,EAAO+uC,WAAW,GAU1C,OAR0B,IAAtB1uE,EAAQ0uE,WAAqC,MAAbvrE,EAAM,IAA2B,MAAbA,EAAM,KAC5DwuB,EAAOvuB,OAASH,EAAMyrE,UAAUvrE,EAAOnD,IAGpC2xB,EAAOvuB,SACVuuB,EAAS1uB,EAAME,EAAOnD,IAGjBo/B,EAAUoxC,UAAU7+C,EAAQ3xB,EAAS8wE,EAAcV,IAoB5DhxC,EAAUn6B,QAAU,CAACgV,EAAQja,KAC3B,IACE,MAAMX,EAAOW,GAAW,CAAC,EACzB,OAAO,IAAI0wB,OAAOzW,EAAQ5a,EAAKy4C,QAAUz4C,EAAK6jB,OAAS,IAAM,IAC/D,CAAE,MAAO5hB,GACP,GAAItB,IAA6B,IAAlBA,EAAQlB,MAAgB,MAAMwC,EAC7C,MAAO,IACT,GAQF89B,EAAU/J,UAAYA,EAMtB1yB,EAAOvO,QAAUgrC,C,2BCnVjB,MAAMloC,EAAQ,EAAQ,MAChB,cACJ2O,EAAa,QACbE,EAAO,oBACP6kE,EAAmB,WACnBvkE,EAAU,SACVE,EAAQ,sBACRG,EAAqB,mBACrBE,EAAkB,sBAClBI,EAAqB,sBACrBrB,EAAqB,yBACrBsB,EAAwB,UACxBI,EAAS,mBACTC,EAAkB,uBAClBE,EAAsB,uBACtB5B,EAAsB,0BACtB6B,GACE,EAAQ,MAENspE,EAAkBtvE,GACfA,IAASmF,GAAsBnF,IAASmpE,EAG3ClhE,EAAQy8B,KACW,IAAnBA,EAAM6qC,WACR7qC,EAAMz8B,MAAQy8B,EAAM8qC,WAAarxE,IAAW,IA2WhD+C,EAAOvO,QAtVM,CAAC+O,EAAOnD,KACnB,MAAMX,EAAOW,GAAW,CAAC,EAEnBmC,EAASgB,EAAMhB,OAAS,EACxB+uE,GAA2B,IAAf7xE,EAAKgjB,QAAqC,IAAnBhjB,EAAK6xE,UACxCj3C,EAAU,GACVsQ,EAAS,GACTloB,EAAQ,GAEd,IAeI3d,EACAjD,EAhBAwT,EAAM9R,EACNsG,GAAS,EACT6gB,EAAQ,EACRixB,EAAY,EACZkyB,GAAU,EACV0D,GAAY,EACZ33D,GAAS,EACTkkB,GAAY,EACZuzC,GAAa,EACbG,GAAe,EACfzC,GAAc,EACdhvC,GAAU,EACVC,GAAiB,EACjBlM,GAAW,EACXxwB,EAAS,EAGTijC,EAAQ,CAAE9xC,MAAO,GAAIqV,MAAO,EAAG8P,QAAQ,GAE3C,MAAMpE,EAAM,IAAM3L,GAAStH,EACrB+qE,EAAO,IAAMj4D,EAAI1B,WAAW9J,EAAQ,GACpCE,EAAU,KACdjF,EAAOjD,EACAwT,EAAI1B,aAAa9J,IAG1B,KAAOA,EAAQtH,GAAQ,CAErB,IAAIyH,EAEJ,GAHAnI,EAAOkI,IAGHlI,IAASmpE,EAAb,CAUA,IAAqB,IAAjBwG,GAAyB3vE,IAASuF,EAAuB,CAG3D,IAFA9D,KAEiB,IAAVkS,MAAmB3T,EAAOkI,MAC/B,GAAIlI,IAASmpE,EAMb,GAAInpE,IAASuF,EAAb,CAKA,IAAqB,IAAjBoqE,GAAyB3vE,IAAS8E,IAAa9E,EAAOkI,OAAepD,EAAU,CAKjF,GAJAknE,EAAUtnC,EAAMsnC,SAAU,EAC1Bj0D,EAAS2sB,EAAM3sB,QAAS,EACxBka,GAAW,GAEO,IAAdw9C,EACF,SAGF,KACF,CAEA,IAAqB,IAAjBE,GAAyB3vE,IAAS4E,EAAY,CAKhD,GAJAonE,EAAUtnC,EAAMsnC,SAAU,EAC1Bj0D,EAAS2sB,EAAM3sB,QAAS,EACxBka,GAAW,GAEO,IAAdw9C,EACF,SAGF,KACF,CAEA,GAAIzvE,IAAS+F,IACXtE,IAEe,IAAXA,GAAc,CAChBkuE,GAAe,EACf3D,EAAUtnC,EAAMsnC,SAAU,EAC1B/5C,GAAW,EACX,KACF,CAlCF,MAFExwB,SANAyrE,EAAcxoC,EAAMwoC,aAAc,EAClChlE,IA6CJ,IAAkB,IAAdunE,EACF,SAGF,KACF,CAEA,GAAIzvE,IAASmF,EAAb,CAeA,IAAmB,IAAfvH,EAAK+jB,QAOe,IANA3hB,IAAS4F,GAC1B5F,IAASsE,GACTtE,IAASoE,GACTpE,IAAS6F,GACT7F,IAASiF,IAEgBwmE,MAAWvnE,EAAuB,CAQ9D,GAPA6T,EAAS2sB,EAAM3sB,QAAS,EACxBkkB,EAAYyI,EAAMzI,WAAY,EAC9BhK,GAAW,EACPjyB,IAASiF,GAAyB+C,IAAU6gB,IAC9CsV,GAAiB,IAGD,IAAdsxC,EAAoB,CACtB,MAAiB,IAAV97D,MAAmB3T,EAAOkI,MAC/B,GAAIlI,IAASmpE,GAMb,GAAInpE,IAASmE,EAAwB,CACnC4T,EAAS2sB,EAAM3sB,QAAS,EACxBka,GAAW,EACX,KACF,OATEi7C,EAAcxoC,EAAMwoC,aAAc,EAClCltE,EAAOkI,IAUX,QACF,CACA,KACF,CAGF,GAAIlI,IAASoE,EAAe,CAK1B,GAJInB,IAASmB,IAAeorE,EAAa9qC,EAAM8qC,YAAa,GAC5Dz3D,EAAS2sB,EAAM3sB,QAAS,EACxBka,GAAW,GAEO,IAAdw9C,EACF,SAEF,KACF,CAEA,GAAIzvE,IAAS6F,EAAoB,CAI/B,GAHAkS,EAAS2sB,EAAM3sB,QAAS,EACxBka,GAAW,GAEO,IAAdw9C,EACF,SAEF,KACF,CAEA,GAAIzvE,IAASwF,EAA0B,CACrC,MAAiB,IAAVmO,MAAmBxL,EAAOD,MAC/B,GAAIC,IAASghE,GAMb,GAAIhhE,IAASnC,EAA2B,CACtC0pE,EAAYhrC,EAAMgrC,WAAY,EAC9B33D,EAAS2sB,EAAM3sB,QAAS,EACxBka,GAAW,EACX,KACF,OAVEi7C,EAAcxoC,EAAMwoC,aAAc,EAClChlE,IAYJ,IAAkB,IAAdunE,EACF,SAGF,KACF,CAEA,IAAsB,IAAlB7xE,EAAKwwE,UAAqBpuE,IAASiF,GAAyB+C,IAAU6gB,EAA1E,CAMA,IAAqB,IAAjBjrB,EAAKgyE,SAAoB5vE,IAASkE,EAAuB,CAG3D,GAFA6T,EAAS2sB,EAAM3sB,QAAS,GAEN,IAAd03D,EAAoB,CACtB,MAAiB,IAAV97D,MAAmB3T,EAAOkI,MAC/B,GAAIlI,IAASkE,GAMb,GAAIlE,IAASmE,EAAwB,CACnC8tB,GAAW,EACX,KACF,OAREi7C,EAAcxoC,EAAMwoC,aAAc,EAClCltE,EAAOkI,IASX,QACF,CACA,KACF,CAEA,IAAe,IAAX6P,EAAiB,CAGnB,GAFAka,GAAW,GAEO,IAAdw9C,EACF,SAGF,KACF,CA/BA,MAHEvxC,EAAUwG,EAAMxG,SAAU,EAC1BrV,GAnFF,KAbA,CAKE,GAJA2P,EAAQ/+B,KAAKuO,GACb8gC,EAAOrvC,KAAKirC,GACZA,EAAQ,CAAE9xC,MAAO,GAAIqV,MAAO,EAAG8P,QAAQ,IAEtB,IAAbka,EAAmB,SACvB,GAAIhvB,IAAS6B,GAAYkD,IAAW6gB,EAAQ,EAAI,CAC9CA,GAAS,EACT,QACF,CAEAixB,EAAY9xC,EAAQ,CAEtB,CAzEA,MAPEklE,EAAcxoC,EAAMwoC,aAAc,EAClCltE,EAAOkI,IAEHlI,IAASuF,IACXoqE,GAAe,EAiMrB,EAEmB,IAAf/xE,EAAK+jB,QACPsa,GAAY,EACZlkB,GAAS,GAGX,IAAIzc,EAAOkY,EACP7Q,EAAS,GACT8W,EAAO,GAEPoP,EAAQ,IACVlmB,EAAS6Q,EAAIlL,MAAM,EAAGugB,GACtBrV,EAAMA,EAAIlL,MAAMugB,GAChBixB,GAAajxB,GAGXvtB,IAAmB,IAAXyc,GAAmB+hC,EAAY,GACzCx+C,EAAOkY,EAAIlL,MAAM,EAAGwxC,GACpBrgC,EAAOjG,EAAIlL,MAAMwxC,KACG,IAAX/hC,GACTzc,EAAO,GACPme,EAAOjG,GAEPlY,EAAOkY,EAGLlY,GAAiB,KAATA,GAAwB,MAATA,GAAgBA,IAASkY,GAC9C87D,EAAgBh0E,EAAKwW,WAAWxW,EAAKoF,OAAS,MAChDpF,EAAOA,EAAKgN,MAAM,GAAI,KAIJ,IAAlB1K,EAAK8gC,WACHjlB,IAAMA,EAAOhkB,EAAMo6E,kBAAkBp2D,IAErCne,IAAwB,IAAhB4xE,IACV5xE,EAAO7F,EAAMo6E,kBAAkBv0E,KAInC,MAAM4P,EAAQ,CACZvI,SACAjB,QACAmnB,QACAvtB,OACAme,OACAuyD,UACA0D,YACA33D,SACAkkB,YACAuzC,aACAtxC,UACAC,kBAWF,IARoB,IAAhBvgC,EAAKkrC,SACP59B,EAAM4kE,SAAW,EACZR,EAAgBtvE,IACnB8oC,EAAOrvC,KAAKirC,GAEdx5B,EAAM49B,OAASA,IAGE,IAAflrC,EAAKgjB,QAAkC,IAAhBhjB,EAAKkrC,OAAiB,CAC/C,IAAIinC,EAEJ,IAAK,IAAIzC,EAAM,EAAGA,EAAM90C,EAAQ93B,OAAQ4sE,IAAO,CAC7C,MAAMhkE,EAAIymE,EAAYA,EAAY,EAAIlnD,EAChCrhB,EAAIgxB,EAAQ80C,GACZ16E,EAAQ8O,EAAM4G,MAAMgB,EAAG9B,GACzB5J,EAAKkrC,SACK,IAARwkC,GAAuB,IAAVzkD,GACfigB,EAAOwkC,GAAKiC,UAAW,EACvBzmC,EAAOwkC,GAAK16E,MAAQ+P,GAEpBmmC,EAAOwkC,GAAK16E,MAAQA,EAEtBqV,EAAM6gC,EAAOwkC,IACbpiE,EAAM4kE,UAAYhnC,EAAOwkC,GAAKrlE,OAEpB,IAARqlE,GAAuB,KAAV16E,GACfguB,EAAMnnB,KAAK7G,GAEbm9E,EAAYvoE,CACd,CAEA,GAAIuoE,GAAaA,EAAY,EAAIruE,EAAMhB,OAAQ,CAC7C,MAAM9N,EAAQ8O,EAAM4G,MAAMynE,EAAY,GACtCnvD,EAAMnnB,KAAK7G,GAEPgL,EAAKkrC,SACPA,EAAOA,EAAOpoC,OAAS,GAAG9N,MAAQA,EAClCqV,EAAM6gC,EAAOA,EAAOpoC,OAAS,IAC7BwK,EAAM4kE,UAAYhnC,EAAOA,EAAOpoC,OAAS,GAAGuH,MAEhD,CAEAiD,EAAMstB,QAAUA,EAChBttB,EAAM0V,MAAQA,CAChB,CAEA,OAAO1V,E,0BCjYT,MAAMnW,EAAO,EAAQ,MACfykB,EAA6B,UAArB7lB,QAAQ0wB,UAChB,gBACJukD,EAAe,uBACfK,EAAsB,oBACtBH,EAAmB,2BACnBE,GACE,EAAQ,MAEZr2E,EAAQi4B,SAAWva,GAAe,OAARA,GAA+B,iBAARA,IAAqBzO,MAAMC,QAAQwO,GACpF1d,EAAQk7E,cAAgBr6D,GAAOs1D,EAAoB/1D,KAAKS,GACxD7gB,EAAQq9E,YAAcx8D,GAAsB,IAAfA,EAAI9S,QAAgB/N,EAAQk7E,cAAcr6D,GACvE7gB,EAAQu8B,YAAc1b,GAAOA,EAAInG,QAAQ27D,EAA4B,QACrEr2E,EAAQqsC,eAAiBxrB,GAAOA,EAAInG,QAAQu7D,EAAiB,KAE7Dj2E,EAAQk9E,kBAAoBr8D,GACnBA,EAAInG,QAAQ47D,EAAwB37D,GACxB,OAAVA,EAAiB,GAAKA,GAIjC3a,EAAQw7E,oBAAsB,KAC5B,MAAM8B,EAAOt8E,QAAQinE,QAAQtyD,MAAM,GAAGxU,MAAM,KAAKmC,IAAIhC,QACrD,OAAoB,IAAhBg8E,EAAKvvE,QAAgBuvE,EAAK,IAAM,GAAkB,IAAZA,EAAK,IAAYA,EAAK,IAAM,IAMxEt9E,EAAQosC,UAAYxgC,GACdA,GAAsC,kBAApBA,EAAQ2xE,QACrB3xE,EAAQ2xE,SAEA,IAAV12D,GAA+B,OAAbzkB,EAAKiD,IAGhCrF,EAAQ87E,WAAa,CAAC/sE,EAAOioE,EAAMwG,KACjC,MAAM7C,EAAM5rE,EAAM6rE,YAAY5D,EAAMwG,GACpC,OAAa,IAAT7C,EAAmB5rE,EACA,OAAnBA,EAAM4rE,EAAM,GAAoB36E,EAAQ87E,WAAW/sE,EAAOioE,EAAM2D,EAAM,GACnE,GAAG5rE,EAAM4G,MAAM,EAAGglE,OAAS5rE,EAAM4G,MAAMglE,MAGhD36E,EAAQ44E,aAAe,CAAC7pE,EAAOwJ,EAAQ,CAAC,KACtC,IAAIvJ,EAASD,EAKb,OAJIC,EAAOyU,WAAW,QACpBzU,EAASA,EAAO2G,MAAM,GACtB4C,EAAMvI,OAAS,MAEVhB,GAGThP,EAAQ06E,WAAa,CAAC3rE,EAAOwJ,EAAQ,CAAC,EAAG3M,EAAU,CAAC,KAIlD,IAAIoD,EAAS,GAHGpD,EAAQsgC,SAAW,GAAK,SAGXn9B,KAFdnD,EAAQsgC,SAAW,GAAK,MAMvC,OAHsB,IAAlB3zB,EAAMgzB,UACRv8B,EAAS,UAAUA,UAEdA,E,aC9DT,IAAItG,EAAO,EAAQ,MACfsY,EAAM,EAAQ,MACd5gB,EAAK,EAAQ,MAEb2gB,EAAO,WAAa,EACpB08D,EAAU,SAASr9D,KAAKpf,QAAQinE,SAEhCyV,EAAO,SAAUvxE,GACnB,MAAqB,mBAAPA,CAChB,EAyCIqC,EAAO,SAAUrC,GACnBA,GACF,EAEIi+B,EAAO,SAAU9yB,EAAMe,GACzB,OAAOf,EAAK8yB,KAAK/xB,EACnB,EAyBA9J,EAAOvO,QAvBI,WACT,IAMI0E,EANA4uB,EAAUrkB,MAAMX,UAAUqH,MAAMnH,KAAK3E,WACrCvH,EAAWo7E,EAAKpqD,EAAQA,EAAQvlB,OAAS,IAAMgT,IAASuS,EAAQ/e,OAASwM,EAG7E,GADI9R,MAAMC,QAAQokB,EAAQ,MAAKA,EAAUA,EAAQ,IAC7CA,EAAQvlB,OAAS,EAAG,MAAM,IAAI3M,MAAM,yCAGxC,IAAIu8E,EAAWrqD,EAAQhwB,IAAI,SAAU2d,EAAQpM,GAC3C,IAAI+oE,EAAU/oE,EAAIye,EAAQvlB,OAAS,EAEnC,OAhDY,SAAUkT,EAAQ28D,EAASC,EAASv7E,GAClDA,EAAWoG,EAAKpG,GAEhB,IAAIw7E,GAAS,EACb78D,EAAOxY,GAAG,QAAS,WACjBq1E,GAAS,CACX,GAEA98D,EAAIC,EAAQ,CAACK,SAAUs8D,EAASr8D,SAAUs8D,GAAU,SAAU3wE,GAC5D,GAAIA,EAAK,OAAO5K,EAAS4K,GACzB4wE,GAAS,EACTx7E,GACF,GAEA,IAAI4f,GAAY,EAChB,OAAO,SAAUhV,GACf,IAAI4wE,IACA57D,EAGJ,OAFAA,GAAY,EA5BL,SAAUjB,GACnB,QAAKw8D,KACAr9E,IACG6gB,aAAmB7gB,EAAG41B,YAAcjV,IAASE,aAAmB7gB,EAAGi2B,aAAetV,KAAU28D,EAAKz8D,EAAOrL,MAClH,CA0BQmoE,CAAK98D,GAAgBA,EAAOrL,MAAMmL,GAxB1B,SAAUE,GACxB,OAAOA,EAAOmB,WAAas7D,EAAKz8D,EAAOoB,MACzC,CAuBQC,CAAUrB,GAAgBA,EAAOoB,QAEjCq7D,EAAKz8D,EAAO9Z,SAAiB8Z,EAAO9Z,eAExC7E,EAAS4K,GAAO,IAAI9L,MAAM,wBAC5B,CACF,CAqBW48E,CAAU/8D,EAAQ28D,EADX/oE,EAAI,EACyB,SAAU3H,GAC9CxI,IAAOA,EAAQwI,GAChBA,GAAKywE,EAASznE,QAAQ1H,GACtBovE,IACJD,EAASznE,QAAQ1H,GACjBlM,EAASoC,GACX,EACF,GAEA,OAAO4uB,EAAQ5iB,OAAO05B,EACxB,C,UC9EA,IAAIlV,EAEJ3mB,EAAOvO,QAAoC,mBAAnBi+E,eACpBA,eAAev4E,KAAuB,oBAAX4V,OAAyBA,OAAS4iE,QAE7D9oD,IAAOF,IAAYA,EAAUjnB,QAAQC,YACpCC,KAAKinB,GACL/mB,MAAMnB,GAAOc,WAAW,KAAQ,MAAMd,GAAO,G,uBCwBlDqB,EAAOvO,QA9BP,SAAkBm+E,GAChB,IAAIC,EAAO,IAAID,EACXE,EAAOD,EAsBX,MAAO,CACLrgE,IArBF,WACE,IAAIoW,EAAUiqD,EAWd,OATIjqD,EAAQ3e,KACV4oE,EAAOjqD,EAAQ3e,MAEf4oE,EAAO,IAAID,EACXE,EAAOD,GAGTjqD,EAAQ3e,KAAO,KAER2e,CACT,EASEC,QAPF,SAAkB/T,GAChBg+D,EAAK7oE,KAAO6K,EACZg+D,EAAOh+D,CACT,EAMF,C,cC7BA9R,EAAOvO,QAIP,SAAsB6D,EAAOuxB,GAC3B,IAAIkpD,EAASjL,EAASr0D,EAClBu/D,GAAS,EAWb,SAASx6E,EAAMmJ,GACb,SAASyjB,IACHyE,GAAIA,EAAGloB,EAAKoxE,GAChBlpD,EAAK,IACP,CACImpD,EAAQN,EAAettD,GACtBA,GACP,CAEA,SAASuhB,EAAMr9B,EAAG3H,EAAKvI,GACrB25E,EAAQzpE,GAAKlQ,GACK,MAAZ0uE,GAAiBnmE,IACrBnJ,EAAKmJ,EAET,CAvBI+B,MAAMC,QAAQrL,IAChBy6E,EAAU,GACVjL,EAAUxvE,EAAMkK,SAEhBiR,EAAOlf,OAAOkf,KAAKnb,GACnBy6E,EAAU,CAAC,EACXjL,EAAUr0D,EAAKjR,QAmBZslE,EAGMr0D,EAETA,EAAK9I,QAAQ,SAAU+I,GACrBpb,EAAMob,GAAK,SAAU/R,EAAKvI,GAAUutC,EAAKjzB,EAAK/R,EAAKvI,EAAQ,EAC7D,GAGAd,EAAMqS,QAAQ,SAAU2T,EAAMhV,GAC5BgV,EAAK,SAAU3c,EAAKvI,GAAUutC,EAAKr9B,EAAG3H,EAAKvI,EAAQ,EACrD,GAVAZ,EAAK,MAaPw6E,GAAS,CACX,EA/CA,MAAMN,EAAiB,EAAQ,K,2BC2B/B,IAAIjnC,EAAW,EAAQ,KAEnBwnC,EAAY,oBACZC,EAAY,wBACZC,EAAa,QACbC,EAAoB,gDACpBC,EAAoB,UAExB,SAASpN,EAASziE,EAAO8vE,GACvB,GAAqB,iBAAV9vE,EACT,MAAM,IAAI3N,MAAM,wBAElB,IAAI09E,EAAY/vE,EACb2L,QAAQ8jE,EAAWK,GACnBnkE,QAAQ+jE,EAAWI,GACnBnkE,QAAQgkE,EAAYG,GACpBnkE,QAAQikE,EAAmBE,GAC3BnkE,QAAQkkE,EAAmBC,GAC9B,OAAO7nC,EAAS8nC,EAAW,IAC7B,CAEAvwE,EAAOvO,QAAU,SAAU+O,EAAOnD,GAChC,IAAIizE,EAAejzE,GAAWA,EAAQizE,aAAgB,GAClD7vE,EAASwiE,EAASziE,EAAO8vE,GAC7B,MAAoB,KAAhBA,EACK7vE,EAEFwiE,EAASxiE,EAAQ,GAC1B,C,2BCzDA,MAAMiiB,EAAK,EAAQ,KACb3R,EAAM,EAAQ,MACdy/D,EAAU,EAAQ,OAElB,IAAC3jE,GAAOpa,QAEd,IAAIg+E,EAmIJ,SAASC,EAAgBh+D,EAAQrV,EAAU,CAAC,GAM3C,OA7Gc,KADSuU,EAaxB,SAAuB++D,GAAY,YAACC,EAAW,WAAEC,GAAa,GAAQ,CAAC,GACtE,MAAMC,EA5BP,WACC,GAAI,gBAAiBjkE,EACpB,MAAwB,SAApBA,EAAIkkE,YACA,EAGgB,UAApBlkE,EAAIkkE,YACA,EAG0B,IAA3BlkE,EAAIkkE,YAAYvxE,OAAe,EAAIkH,KAAKC,IAAI5T,OAAOC,SAAS6Z,EAAIkkE,YAAa,IAAK,EAE3F,CAgB0BC,QACA3+E,IAArBy+E,IACHL,EAAiBK,GAGlB,MAAMG,EAAaJ,EAAaJ,EAAiBK,EAEjD,GAAmB,IAAfG,EACH,OAAO,EAGR,GAAIJ,EAAY,CACf,GAAIL,EAAQ,cACXA,EAAQ,eACRA,EAAQ,mBACR,OAAO,EAGR,GAAIA,EAAQ,aACX,OAAO,CAET,CAEA,GAAIG,IAAeC,QAA8Bv+E,IAAf4+E,EACjC,OAAO,EAGR,MAAMtqE,EAAMsqE,GAAc,EAE1B,GAAiB,SAAbpkE,EAAIqkE,KACP,OAAOvqE,EAGR,GAAyB,UAArBlU,QAAQ0wB,SAAsB,CAGjC,MAAMguD,EAAYzuD,EAAGmD,UAAUjzB,MAAM,KACrC,OACCG,OAAOo+E,EAAU,KAAO,IACxBp+E,OAAOo+E,EAAU,KAAO,MAEjBp+E,OAAOo+E,EAAU,KAAO,MAAQ,EAAI,EAGrC,CACR,CAEA,GAAI,OAAQtkE,EACX,MAAI,CAAC,SAAU,WAAY,WAAY,YAAa,iBAAkB,YAAa,SAASvQ,KAAKkwD,GAAQA,KAAQ3/C,IAAwB,aAAhBA,EAAIukE,QACrH,EAGDzqE,EAGR,GAAI,qBAAsBkG,EACzB,MAAO,gCAAgCgF,KAAKhF,EAAIwkE,kBAAoB,EAAI,EAGzE,GAAsB,cAAlBxkE,EAAIykE,UACP,OAAO,EAGR,GAAI,iBAAkBzkE,EAAK,CAC1B,MAAM6sD,EAAU3mE,OAAOC,UAAU6Z,EAAI0kE,sBAAwB,IAAI3+E,MAAM,KAAK,GAAI,IAEhF,OAAQia,EAAI2kE,cACX,IAAK,YACJ,OAAO9X,GAAW,EAAI,EAAI,EAC3B,IAAK,iBACJ,OAAO,EAGV,CAEA,MAAI,iBAAiB7nD,KAAKhF,EAAIqkE,MACtB,EAGJ,8DAA8Dr/D,KAAKhF,EAAIqkE,OAIvE,cAAerkE,EAHX,EAODlG,CACR,CAGegL,CAAce,EAAQ,CACnCk+D,YAAal+D,GAAUA,EAAO++D,SAC3Bp0E,MAtGG,CACNuU,QACA8/D,UAAU,EACVC,OAAQ//D,GAAS,EACjBggE,OAAQhgE,GAAS,GATnB,IAAwBA,CA+GxB,CAzII4+D,EAAQ,aACXA,EAAQ,cACRA,EAAQ,gBACRA,EAAQ,eACRC,EAAiB,GACPD,EAAQ,UAClBA,EAAQ,WACRA,EAAQ,eACRA,EAAQ,mBACRC,EAAiB,GAkIlBzwE,EAAOvO,QAAU,CAChBkgB,cAAe++D,EACfmB,OAAQnB,EAAgB,CAACe,MAAO1gE,EAAIS,OAAO,KAC3CN,OAAQw/D,EAAgB,CAACe,MAAO1gE,EAAIS,OAAO,K,yBC7I5C,MAAMoY,EAAW,EAAQ,MAEnBH,EAAe,CAAC9iB,EAAKH,EAAKnJ,KAC9B,IAAsB,IAAlBusB,EAASjjB,GACX,MAAM,IAAIJ,UAAU,4DAGtB,QAAiB,IAAbC,GAAkBG,IAAQH,EAC5B,OAAO0jB,OAAOvjB,GAGhB,IAAsB,IAAlBijB,EAASpjB,GACX,MAAM,IAAID,UAAU,8DAGtB,IAAI7J,EAAO,CAAEo1E,YAAY,KAASz0E,GACF,kBAArBX,EAAK6F,cACd7F,EAAKo1E,YAAkC,IAArBp1E,EAAK6F,aAGzB,IAIIm9B,EAAW/4B,EAAM,IAAMH,EAAM,IAJrB0jB,OAAOxtB,EAAKo1E,YACR5nD,OAAOxtB,EAAKq1E,WACd7nD,OAAOxtB,EAAK6tB,SACfL,OAAOxtB,EAAK2F,MAGvB,GAAIonB,EAAanE,MAAM4e,eAAexE,GACpC,OAAOjW,EAAanE,MAAMoa,GAAUtpC,OAGtC,IAAIC,EAAIqQ,KAAKC,IAAIA,EAAKH,GAClBlQ,EAAIoQ,KAAKF,IAAIG,EAAKH,GAEtB,GAAwB,IAApBE,KAAKmK,IAAIxa,EAAIC,GAAU,CACzB,IAAIF,EAASuQ,EAAM,IAAMH,EACzB,OAAI9J,EAAK6tB,QACA,IAAIn0B,MAEK,IAAdsG,EAAK2F,KACAjM,EAEF,MAAMA,IACf,CAEA,IAAI47E,EAAWC,EAAWtrE,IAAQsrE,EAAWzrE,GACzCwD,EAAQ,CAAErD,MAAKH,MAAKnQ,IAAGC,KACvB40B,EAAY,GACZD,EAAY,GA4BhB,OA1BI+mD,IACFhoE,EAAMgoE,SAAWA,EACjBhoE,EAAMghB,OAASd,OAAOlgB,EAAMxD,KAAKhH,QAG/BnJ,EAAI,IAEN40B,EAAYinD,EADC57E,EAAI,EAAIoQ,KAAKmK,IAAIva,GAAK,EACCoQ,KAAKmK,IAAIxa,GAAI2T,EAAOtN,GACxDrG,EAAI2T,EAAM3T,EAAI,GAGZC,GAAK,IACP40B,EAAYgnD,EAAgB77E,EAAGC,EAAG0T,EAAOtN,IAG3CsN,EAAMihB,UAAYA,EAClBjhB,EAAMkhB,UAAYA,EAClBlhB,EAAM5T,OAYR,SAAyB+7E,EAAKtqD,GAC5B,IAAIuqD,EAAeC,EAAeF,EAAKtqD,EAAK,KAAK,IAAmB,GAChEyqD,EAAeD,EAAexqD,EAAKsqD,EAAK,IAAI,IAAmB,GAC/DI,EAAcF,EAAeF,EAAKtqD,EAAK,MAAM,IAAkB,GAEnE,OADkBuqD,EAAatxE,OAAOyxE,GAAazxE,OAAOwxE,GACvCl3E,KAAK,IAC1B,CAlBiBo3E,CAAgBvnD,EAAWC,IAErB,IAAjBxuB,EAAK6tB,QACPvgB,EAAM5T,OAAS,IAAI4T,EAAM5T,WACF,IAAdsG,EAAK2F,MAAmB6oB,EAAU1rB,OAASyrB,EAAUzrB,OAAU,IACxEwK,EAAM5T,OAAS,MAAM4T,EAAM5T,WAG7BqzB,EAAanE,MAAMoa,GAAY11B,EACxBA,EAAM5T,QA4Cf,SAASq8E,EAAe9qD,EAAO+qD,EAAMr1E,GACnC,GAAIsqB,IAAU+qD,EACZ,MAAO,CAAE9xE,QAAS+mB,EAAOgjD,MAAO,GAAIppC,OAAQ,GAG9C,IAAIoxC,EAoFN,SAAat8E,EAAGC,GACd,IAAIkS,EAAM,GACV,IAAK,IAAIlC,EAAI,EAAGA,EAAIjQ,EAAEmJ,OAAQ8G,IAAKkC,EAAIjQ,KAAK,CAAClC,EAAEiQ,GAAIhQ,EAAEgQ,KACrD,OAAOkC,CACT,CAxFeoqE,CAAIjrD,EAAO+qD,GACpBnxC,EAASoxC,EAAOnzE,OAChBoB,EAAU,GACV+pE,EAAQ,EAEZ,IAAK,IAAIrkE,EAAI,EAAGA,EAAIi7B,EAAQj7B,IAAK,CAC/B,IAAKusE,EAAYC,GAAaH,EAAOrsE,GAEjCusE,IAAeC,EACjBlyE,GAAWiyE,EAEa,MAAfA,GAAoC,MAAdC,EAC/BlyE,GAAWmyE,EAAiBF,EAAYC,GAGxCnI,GAEJ,CAMA,OAJIA,IACF/pE,IAAiC,IAAtBvD,EAAQ00E,UAAqB,MAAQ,SAG3C,CAAEnxE,UAAS+pE,MAAO,CAACA,GAAQppC,SACpC,CAEA,SAAS2wC,EAAgBvrE,EAAKH,EAAKgwD,EAAKn5D,GACtC,IAGI0E,EAHAE,EAjEN,SAAuB0E,EAAKH,GAC1B,IAAIwsE,EAAQ,EACRnpD,EAAQ,EAER6oD,EAAOO,EAAWtsE,EAAKqsE,GACvBE,EAAQ,IAAI33E,IAAI,CAACiL,IAErB,KAAOG,GAAO+rE,GAAQA,GAAQlsE,GAC5B0sE,EAAMz3E,IAAIi3E,GACVM,GAAS,EACTN,EAAOO,EAAWtsE,EAAKqsE,GAKzB,IAFAN,EAAOS,EAAW3sE,EAAM,EAAGqjB,GAAS,EAE7BljB,EAAM+rE,GAAQA,GAAQlsE,GAC3B0sE,EAAMz3E,IAAIi3E,GACV7oD,GAAS,EACT6oD,EAAOS,EAAW3sE,EAAM,EAAGqjB,GAAS,EAKtC,OAFAqpD,EAAQ,IAAIA,GACZA,EAAMvuD,KAAKyuD,GACJF,CACT,CAyCeG,CAAc1sE,EAAKH,GAC5BohC,EAAS,GACTjgB,EAAQhhB,EAGZ,IAAK,IAAIL,EAAI,EAAGA,EAAIrE,EAAOzC,OAAQ8G,IAAK,CACtC,IAAIE,EAAMvE,EAAOqE,GACbwL,EAAM2gE,EAAevoD,OAAOvC,GAAQuC,OAAO1jB,GAAMnJ,GACjDwsB,EAAQ,GAEP2sC,EAAIwb,WAAYjwE,GAAQA,EAAKnB,UAAYkR,EAAIlR,SAW9C41D,EAAIwb,WACNnoD,EAAQypD,EAAS9sE,EAAKgwD,EAAKn5D,IAG7ByU,EAAImG,OAAS4R,EAAQ/X,EAAIlR,QAAU2yE,EAAazhE,EAAI64D,OACpD/iC,EAAOrvC,KAAKuZ,GACZ6V,EAAQnhB,EAAM,EACdzE,EAAO+P,IAjBD/P,EAAK4oE,MAAMnrE,OAAS,GACtBuC,EAAK4oE,MAAM3kE,MAGbjE,EAAK4oE,MAAMpyE,KAAKuZ,EAAI64D,MAAM,IAC1B5oE,EAAKkW,OAASlW,EAAKnB,QAAU2yE,EAAaxxE,EAAK4oE,OAC/ChjD,EAAQnhB,EAAM,EAYlB,CAEA,OAAOohC,CACT,CAEA,SAASyqC,EAAe7pE,EAAKgrE,EAAY/xE,EAAQsiC,EAAc1mC,GAC7D,IAAIjH,EAAS,GAEb,IAAK,IAAIuP,KAAO6C,EAAK,CACnB,IAAI,OAAEyP,GAAWtS,EAGZo+B,GAAiBpG,EAAS61C,EAAY,SAAUv7D,IACnD7hB,EAAOmC,KAAKkJ,EAASwW,GAInB8rB,GAAgBpG,EAAS61C,EAAY,SAAUv7D,IACjD7hB,EAAOmC,KAAKkJ,EAASwW,EAEzB,CACA,OAAO7hB,CACT,CAYA,SAASg9E,EAAQ/8E,EAAGC,GAClB,OAAOD,EAAIC,EAAI,EAAIA,EAAID,GAAK,EAAI,CAClC,CAEA,SAASsnC,EAASn1B,EAAKkI,EAAKvB,GAC1B,OAAO3G,EAAIlM,KAAKqJ,GAAOA,EAAI+K,KAASvB,EACtC,CAEA,SAAS8jE,EAAWtsE,EAAKi1B,GACvB,OAAO7oC,OAAOm3B,OAAOvjB,GAAKS,MAAM,GAAIw0B,GAAO,IAAI6vC,OAAO7vC,GACxD,CAEA,SAASu3C,EAAWM,EAAS5pD,GAC3B,OAAO4pD,EAAWA,EAAU/sE,KAAKkiC,IAAI,GAAI/e,EAC3C,CAEA,SAAS0pD,EAAahyC,GACpB,IAAK5Z,EAAQ,EAAG+qD,EAAO,IAAMnxC,EAC7B,OAAImxC,GAAQ/qD,EAAQ,EACX,IAAIA,GAAS+qD,EAAO,IAAMA,EAAO,OAEnC,EACT,CAEA,SAASK,EAAiB18E,EAAGC,EAAG+G,GAC9B,MAAO,IAAIhH,IAAKC,EAAID,IAAM,EAAK,GAAK,MAAMC,IAC5C,CAEA,SAAS27E,EAAW3/D,GAClB,MAAO,YAAYT,KAAKS,EAC1B,CAEA,SAASghE,EAAS5hF,EAAO8kE,EAAKn5D,GAC5B,IAAKm5D,EAAIwb,SACP,OAAOtgF,EAGT,IAAIqa,EAAOrF,KAAKmK,IAAI2lD,EAAIxrC,OAASd,OAAOx4B,GAAO8N,QAC3Ck0E,GAA+B,IAAvBr2E,EAAQy0E,WAEpB,OAAQ/lE,GACN,KAAK,EACH,MAAO,GACT,KAAK,EACH,OAAO2nE,EAAQ,KAAO,IACxB,KAAK,EACH,OAAOA,EAAQ,SAAW,KAC5B,QACE,OAAOA,EAAQ,OAAO3nE,KAAU,KAAKA,KAG3C,CAMA0d,EAAanE,MAAQ,CAAC,EACtBmE,EAAakqD,WAAa,IAAOlqD,EAAanE,MAAQ,CAAC,EAMvDtlB,EAAOvO,QAAUg4B,C,0BC7RjB,IAAIgf,EAAW,EAAQ,MACnBmrC,EAAYnrE,OAAOi3D,WAAWvoE,KAAKsR,QACvCzI,EAAOvO,QAAUg3C,EAAStxC,KAAK,KAAMy8E,E,uBCFrC,SAASC,EAAgBC,GACvB,OAAOA,GAAa,OAAUA,GAAa,KAC7C,CAEA,SAASC,EAAeD,GACtB,OAAOA,GAAa,OAAUA,GAAa,KAC7C,CAGA9zE,EAAOvO,QAAU,SAAkBmiF,EAAW37D,EAAQynD,GACpD,GAAsB,iBAAXznD,EACT,MAAM,IAAIplB,MAAM,wBAQlB,IALA,IAEIihF,EACAx0D,EAHA00D,EAAa/7D,EAAOzY,OACpBy0E,EAAgB,EAIX3tE,EAAI,EAAGA,EAAI0tE,EAAY1tE,GAAK,EAAG,CAWtC,GAVAwtE,EAAY77D,EAAOrH,WAAWtK,GAC9BgZ,EAAUrH,EAAO3R,GAEbutE,EAAgBC,IAAcC,EAAe97D,EAAOrH,WAAWtK,EAAI,MAErEgZ,GAAWrH,EADX3R,GAAK,KAIP2tE,GAAiBL,EAAUt0D,MAELogD,EACpB,OAAOznD,EAAO7Q,MAAM,EAAGd,EAAI,GAExB,GAAI2tE,EAAgBvU,EACvB,OAAOznD,EAAO7Q,MAAM,EAAGd,EAAIgZ,EAAQ9f,OAAS,EAEhD,CAEA,OAAOyY,CACT,C,qICzCA,0BACA,0BACA,0BACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SAEA,IAAYi8D,GAAZ,SAAYA,GAAY,yBAAS,qBAAO,eAAI,mBAAM,uBAAQ,kBAAM,CAAhE,CAAYA,IAAS,YAATA,EAAS,KAGrB,iBAqBI,WAAAx9E,GAnBO,KAAAy9E,QAAU,IAAI,EAAAC,aACb,KAAAC,UAAY,IAAI,EAAAC,UAChB,KAAAC,YAA0BC,EAAOC,IAAI7Z,KAAK,IAC1C,KAAA8Z,QAAsBF,EAAOC,IAAI7Z,KAAK,IACtC,KAAA+Z,SAAuBH,EAAOC,IAAI7Z,KAAK,IACvC,KAAAga,UAAwBJ,EAAOC,IAAI7Z,KAAK,IACxC,KAAAia,MAAoBL,EAAOC,IAAI7Z,KAAK,IACpC,KAAAka,OAAqBN,EAAOC,IAAI7Z,KAAK,IACrC,KAAAma,gBAA8BP,EAAOC,IAAI7Z,KAAK,IAC9C,KAAAoa,gBAA8BR,EAAOC,IAAI7Z,KAAK,IAC9C,KAAAqa,QAAkB,EAClB,KAAAC,QAAkB,EAEnB,KAAAC,SAAmB,EACnB,KAAAC,aAAuB,EACvB,KAAAC,QAAkB,EAClB,KAAAC,gBAA8Bd,EAAOC,IAAI7Z,KAAK,IAC9C,KAAA3lE,KAAe,EAGtB,CAEA,SAAAsgF,GACI,GAAI3+E,KAAKy9E,UAAUmB,UAAU5+E,KAAK29E,YAAa,SAAU,CACrD,MAAMj0E,EAAQ1J,KAAKy9E,UAAUoB,KAAKC,WAAW,GAC7C,GAAIp1E,EAAMy0E,gBAAiB,CACvB,IAAIY,EAAcr1E,EAAMy0E,gBACpBljF,EAAG8wE,WAAWgT,GACd/+E,KAAKm+E,gBAAkBP,EAAOC,IAAI7Z,KAAK+a,GAClCA,EAAYjgE,SAAS,SAC1B9e,KAAKm+E,gBAAkBP,EAAOC,IAAI7Z,KAAK,IAGvChkE,KAAKm+E,gBAAkBP,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAKg/E,oBAAoBC,OAAQF,IAElFr1E,EAAM00E,kBACNW,EAAcr1E,EAAM00E,gBAChBnjF,EAAG8wE,WAAWgT,GACd/+E,KAAKo+E,gBAAkBR,EAAOC,IAAI7Z,KAAK+a,GAEvC/+E,KAAKo+E,gBAAkBR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAKk/E,mBAAmBD,OAAQF,KAGzFnB,EAAOuB,SAASC,eAAe,iBAC/Bp/E,KAAKq/E,iBACT,CACJ,CACJ,CAEM,SAAAC,CAAUC,G,kDACZ,IAAIC,GAAU,EAgBd,aAfM5B,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,WAAY4kF,OAAQ,wBAAyB12E,KAAK22E,IACxF,GAAIA,EAAS,CACT,MAAMp7E,EAAWtH,EAAKuH,KAAK+6E,EAAIN,OAAQU,EAAU,QACjD,GAAI1kF,EAAG8wE,WAAWxnE,GAEd,YADAq5E,EAAOznE,OAAOypE,mBAAmB,aAAer7E,EAAW,mBAG/D,MAAMs7E,EAASjC,EAAOC,IAAI7Z,KAAKz/D,GAC/B,EAAAu6E,WAAWgB,SAASn+E,KAAKk+E,GACzB,EAAAE,SAASnsE,UAAUrP,EAAU,2BAC7B,EAAAu6E,WAAWkB,WAAWH,GACtBjC,EAAOuB,SAASC,eAAe,qBAC/BI,GAAU,CACd,IAEGA,CACX,E,CAEA,OAAAS,GACI,QAAOjgF,KAAKm+E,gBAAgBc,OAAOr2E,MACvC,CAEA,WAAAs3E,CAAYzhE,GACR,GAAI,EAAAqgE,WAAWqB,qBAIX,GAHmB,EAAArB,WAAWsB,wBAAwBnB,QACtC,EAAAH,WAAWuB,qBAAqBpB,OAErB,CACvB,MAAMqB,EAAS,8BACf1C,EAAOznE,OAAOoqE,uBAAuB,0EAA2ED,GAAQt3E,KAAK+tB,IACrHupD,IAAWvpD,GACX/2B,KAAKwgF,uBAAuB/hE,IAGxC,MACIze,KAAKwgF,uBAAuB/hE,GAGpC,MAAO,EACX,CAEA,sBAAA+hE,CAAuB/hE,GACnBm/D,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,OAAQ4kF,OAAQ,4BAA6B12E,KAAK22E,IAClF,GAAIA,EAEA,OADA3/E,KAAKygF,kBAAkBhiE,EAAKkhE,GACrBA,GAGnB,CAEA,YAAAe,GACI1gF,KAAK29E,YAAcC,EAAOC,IAAI7Z,KAAK,IACnChkE,KAAK89E,QAAUF,EAAOC,IAAI7Z,KAAK,IAC/BhkE,KAAK+9E,SAAWH,EAAOC,IAAI7Z,KAAK,IAChChkE,KAAKg+E,UAAYJ,EAAOC,IAAI7Z,KAAK,IACjChkE,KAAKi+E,MAAQL,EAAOC,IAAI7Z,KAAK,IAC7BhkE,KAAKm+E,gBAAkBP,EAAOC,IAAI7Z,KAAK,IACvChkE,KAAK3B,KAAO,GACZ2B,KAAKq+E,QAAU,EACfr+E,KAAKs+E,QAAS,CAClB,CAEA,iBAAAmC,CAAkBhiE,EAAiBkiE,GAG/B,GAFA,EAAA7B,WAAWH,YACX3+E,KAAK29E,YAAcC,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKia,EAAIwgE,OAAQ0B,IACrD1lF,EAAG8wE,WAAW/rE,KAAK29E,YAAYsB,QAE/B,OADArB,EAAOznE,OAAOypE,mBAAmB,4BAC1B,EACJ,IAAK,EAAAd,WAAW8B,4BAEnB,OADAhD,EAAOznE,OAAOypE,mBAAmB,iCAC1B,EACJ,CACH,MAAMzzD,EAAgC,GAEtC,IAAI00D,EAAU5jF,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,uBAC1D,IAAI,EAAAf,SAAS5gE,MAAM0hE,GA+Cf,OAFAA,EAAU5jF,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,eACtD9gF,KAAK+gF,gBAAgBF,EAAS,KACvB,EA/CkB,CACzB,MAAMhtE,EAAQ,EAAAksE,SAASiB,eAAepD,EAAOC,IAAI7Z,KAAK6c,IAChDI,EAAoC,CAAC,EAC3C,IAAK,MAAMjd,KAAQnwD,EAAO,CACtB,MAAML,EAAWvW,EAAKuW,SAASwwD,EAAKib,QACpC,GAAI,EAAAc,SAAS5gE,MAAM6kD,EAAKib,QAAS,CAC7B,MAAMiC,EAASjkF,EAAKuH,KAAKw/D,EAAKib,OAAQ,aACtC,IAAIkC,EAAeC,IAChBC,MAAOD,EAAKE,YAAaH,GAAUnhF,KAAKuhF,gBAAgBL,IAC3D,MAAMv9E,EAA6B,CAAEynC,MAAOg2C,EAAKE,YAAaH,GAC7C,mBAAb3tE,GAEA7P,EAAK69E,QAAS,EACd79E,EAAK29E,YAAcH,GAASA,EAAMv4E,OAAS,iBAAmBu4E,EAAQ,gBACtEh1D,EAAM/T,QAAQzU,IAEdwoB,EAAMxqB,KAAKgC,GAEfs9E,EAAOG,GAAO5tE,CAClB,CACJ,CAEAoqE,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,wBAAyBK,aAAa,EAAMC,YAAa,0BAA2B34E,KAAK44E,IACjI,IAAKA,EACD,OAAO,EAEX,GAAyB,GAArBA,EAAWh5E,OAAa,CACxB,IAAIi5E,EAAUZ,EAAOW,EAAW,GAAGx2C,OAInC,OAHAprC,KAAK+gF,gBAAgBF,EAASgB,GAC9B,EAAA/C,WAAWgD,QAAQC,eACnB/hF,KAAKs+E,QAAS,GACP,CACX,CACAt+E,KAAK+gF,gBAAgBF,EAAS,gBAC9B,MAAMmB,EAAQhiF,KAAK29E,YAAYsB,OAC/B,EAAAH,WAAWgD,QAAQG,iBAAiBrE,EAAOC,IAAI7Z,KAAK6c,GAAUjD,EAAOC,IAAI7Z,KAAKge,GAAQ,CAAC,EAAAE,cAAcC,UAAW,EAAAC,cAAcC,OAAQ,KACtI,IAAK,MAAMC,KAAaV,EACpB,EAAAW,aAAaC,oBAAoB3B,EAASmB,EAAOM,EAAUl3C,OAI/D,OAFAprC,KAAKs+E,QAAS,EACd,EAAAQ,WAAWgD,QAAQC,gBACZ,GAGf,CAMJ,CACA,OAAO,CACX,CAEO,eAAAR,CAAgBh9E,GACnB,IAAKtJ,EAAG8wE,WAAWxnE,GACf,MAAO,CAAE88E,MAAO,GAAIC,YAAa,IAGrC,IACIA,EAAc,GACdvN,EAAQ,EACRsN,EAAQ,GACZ,MAAMtc,EANW,IAAI,EAAA0d,SAASl+E,GAMPm+E,WAEvB,IAAK,MAAMld,KAAQT,EAAO,CACtB,IAAIp/D,EAAI6/D,EAAKznC,WAAW3sB,OACxB,GAAoB,GAAhBiwE,EAAMz4E,QAAejD,EAAEiD,OAAS,EAC5BjD,EAAE2Y,WAAW,QACb3Y,EAAIA,EAAEyV,UAAU,IAEpBimE,EAAQ17E,OACL,GAAI07E,EAAMz4E,OAAS,GAAKjD,EAAEiD,OAAS,IACtC04E,GAAe37E,EACXouE,EAAQ,GAAKuN,EAAY14E,OAAS,GAClC,MAERmrE,GACJ,CAEA,MAAO,CAAEsN,QAAOC,cACpB,CAEA,eAAAP,CAAgBF,EAAiB8B,GAE7B,GADA9B,EAAU5jF,EAAKuH,KAAKq8E,EAAS8B,IACxB,EAAA5C,SAAS6C,QAAQ5iF,KAAK29E,YAAYsB,QAEnC,OADArB,EAAOznE,OAAOypE,mBAAmB,6BAA6BiB,MACvD,EAEX,EAAA/B,WAAWgD,QAAQG,iBAAiBrE,EAAOC,IAAI7Z,KAAK6c,GAAU7gF,KAAK29E,YAAa,CAAC,EAAAuE,cAAcW,WAAY,EAAAT,cAAcU,MACzH,EAAAhE,WAAWgD,QAAQG,iBAAiBrE,EAAOC,IAAI7Z,KAAK6c,GAAU7gF,KAAK29E,YAAa,CAAC,EAAAuE,cAAcW,WAAY,EAAAT,cAAcW,QAC7H,CAEA,qBAAAC,CAAsBC,EAAkB,IACpC,MAAMC,EAAOD,EAAQr6E,OAASq6E,EAAU,0DACxC,GAAIjjF,KAAKk/E,mBAAoB,CACzB,MAAMiE,EAAUlmF,EAAKuH,KAAKxE,KAAKk/E,mBAAmBD,OAAQ,EAAAH,WAAWsE,wBACrE,OAAO,EAAArD,SAASnsE,UAAUuvE,EAASD,EACvC,CACA,OAAO,CACX,CAEA,aAAAG,GACI,IAA0C,GAAtCrjF,KAAKo+E,gBAAgBa,OAAOr2E,QAAqD,GAAtC5I,KAAKm+E,gBAAgBc,OAAOr2E,SACnE5I,KAAKy9E,UAAUmB,UAAU5+E,KAAK29E,YAAa,SAAU,CACrD,MAAMj0E,EAAQ1J,KAAKy9E,UAAUoB,KAAKC,WAAW,GAC7C,GAAIp1E,EAAMy0E,iBAAyD,GAAtCn+E,KAAKo+E,gBAAgBa,OAAOr2E,OAAa,CAClE,MAAMm2E,EAAcr1E,EAAMy0E,gBACtBljF,EAAG8wE,WAAWgT,GACd/+E,KAAKm+E,gBAAkBP,EAAOC,IAAI7Z,KAAK+a,GAEvC/+E,KAAKm+E,gBAAkBP,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAKg/E,oBAAoBC,OAAQF,GAC1F,CACA,GAAIr1E,EAAM00E,iBAAyD,GAAtCp+E,KAAKo+E,gBAAgBa,OAAOr2E,OAAa,CAClE,MAAMm2E,EAAcr1E,EAAM00E,gBACtBnjF,EAAG8wE,WAAWgT,GACd/+E,KAAKo+E,gBAAkBR,EAAOC,IAAI7Z,KAAK+a,GAEvC/+E,KAAKo+E,gBAAkBR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAKk/E,mBAAmBD,OAAQF,GACzF,CACJ,CAGJ/+E,KAAKsjF,oBACLtjF,KAAKq/E,iBACT,CAEA,iBAAAiE,GACI,MAAMC,EAAwB,CAC1B,WAAc,CACV,CACI,KAAQ,WACR,KAAQ,QACR,gBAAmBvjF,KAAKm+E,gBAAgBc,OACxC,gBAAmBj/E,KAAKo+E,gBAAgBa,UAIpDj/E,KAAKy9E,UAAU+F,SAASxjF,KAAK29E,YAAYsB,OAAQ,QAASsE,EAC9D,CAEA,cAAAE,GACI,OAAOzjF,KAAKm+E,eAChB,CAEA,eAAAuF,CAAgB3E,GACZ/+E,KAAKm+E,gBAAkBY,EACvB/+E,KAAKq/E,kBACLr/E,KAAKsjF,mBACT,CAEA,eAAAK,CAAgBC,EAAsBvF,GAClCr+E,KAAKo+E,gBAAkBwF,EACvB5jF,KAAKq+E,QAAUA,EACfr+E,KAAKsjF,mBACT,CAEA,IAAAxtE,CAAK6nE,GACD39E,KAAK6jF,cAAclG,GACnB39E,KAAK2+E,YACL3+E,KAAKu9E,QAAQzkE,OACb9Y,KAAK8jF,gBACLlG,EAAOuB,SAASC,eAAe,2BAA4BzB,GACvD39E,KAAKm+E,gBAAgBc,OAAOr2E,OAAS,EACrCg1E,EAAOuB,SAASC,eAAe,uBAAwBxB,EAAOC,IAAI7Z,KAAKhkE,KAAKm+E,gBAAgBc,SAI5FrB,EAAOuB,SAASC,eAAe,uBAAwBxB,EAAOC,IAAI7Z,KAAK,IAC/E,CAEA,aAAA8f,GACI,MAAMC,EAAS,EAAAjF,WAAW6D,SAASqB,iBAC7BC,EAAWhnF,EAAKuH,KAAKu/E,EAAO9E,OAAQ,WAC1C,GAAIhkF,EAAG8wE,WAAWkY,GAAW,CACzB,MAAMC,EAAe,IAAI,EAAAzB,SAASwB,GAM5BE,EAAclnF,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,sBAAuB,eAAgB,KAAM,OAAQ,WACrH,GAAI7lF,EAAG8wE,WAAWoY,GAAc,CAC5B,MAAMC,EAAgB,IAAI,EAAA3B,SAAS0B,GAC/BC,EAAcC,WAAaH,EAAaG,YACxC,EAAAvF,WAAWwF,aAAa,wBAAyB,EAAAC,YAAYC,SAC7DN,EAAaO,QAAQL,EAAcC,WACnCH,EAAaV,WAErB,CACJ,CACJ,CAEA,eAAAnE,GACQr/E,KAAKm+E,gBAAgBc,OAAOr2E,OAAS,EACrC5I,KAAKg+E,UAAYJ,EAAOC,IAAI7Z,KAAKhkE,KAAKm+E,gBAAgBc,OAAS,EAAAH,WAAW4F,YAE1E1kF,KAAKg+E,UAAYJ,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAK29E,YAAYsB,OAAQ,UAE5E,CAEA,oBAAA0F,GACQ1pF,EAAGG,UAAU4E,KAAKg+E,UAAUiB,QAAQx+E,eACpCxF,EAAGK,QAAQ0E,KAAKg+E,UAAUiB,OAAQ,CAACl3E,EAAK8L,KACpC,GAAI9L,EAAK,MAAMA,EAEf,IAAK,MAAMi8D,KAAQnwD,EACf5Y,EAAGkrE,OAAOlpE,EAAKuH,KAAKxE,KAAKg+E,UAAUiB,OAAQjb,GAAOj8D,IAC9C,GAAIA,EAAK,MAAMA,KAKnC,CAEA,QAAA68E,CAASvmF,GACL,GAAI2B,KAAKk+E,OAAOe,OAAOr2E,OAAQ,CAC3B,IAAIi8E,EAAS5nF,EAAKuH,KAAKxE,KAAKk+E,OAAOe,OAAQ5gF,GAE3C,OADAwmF,EAASA,EAAO36E,OAAO,QAChB0zE,EAAOC,IAAI7Z,KAAK6gB,EAC3B,CACA,OAAOjH,EAAOC,IAAI7Z,KAAK,GAC3B,CAEA,QAAA8gB,GACI,OAAO9kF,KAAKs+E,MAChB,CAEA,kBAAAyG,CAAmBpd,GACf3nE,KAAKm+E,gBAAkBxW,CAC3B,CAEA,oBAAAqd,CAAqBC,EAAiB,IAClC,OAAOrH,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAK29E,YAAYsB,OAAQgG,GAC9D,CAEA,iBAAAjG,GACI,OAAOh/E,KAAK+9E,QAChB,CAEA,gBAAAmB,GACI,OAAOl/E,KAAK89E,OAChB,CAEA,kBAAAoH,CAAmB7xE,EAAmB,IAClC,OAAIA,EAASzK,OACFg1E,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASuC,qBAAqBjG,OAAQ5rE,IAC/ErT,KAAKg+E,SAChB,CAEA,eAAAmH,GACI,OAAOnlF,KAAKk+E,MAChB,CAEA,cAAA8F,GACI,OAAOhkF,KAAKi+E,KAChB,CAEA,WAAAmH,GACI,OAAOplF,KAAKm+E,eAChB,CAEA,WAAAkH,GACI,OAAOrlF,KAAKo+E,eAChB,CAEA,WAAAkH,GAEI,OADiB,IAAI,EAAA7C,UACLU,QAAQnjF,KAAKq+E,QAAS,EAAAkH,YAAYC,KACtD,CAEA,OAAAC,GACI,OAAOzlF,KAAK3B,IAChB,CAEA,cAAAqnF,CAAeC,GACX,MAAM9xE,EAAQ,EAAAksE,SAAS6F,SAASD,GAChC,IAAK,MAAME,KAAYhyE,EACnB,GAAIgyE,EAAS5G,OAAOr/E,SAAS,EAAAk/E,WAAWgH,aACpC,OAAO,EAEf,OAAO,CACX,CAEA,YAAAC,CAAa/hB,GACT,MAAMgiB,EAAahiB,EAAKib,OAAS,EAAAH,WAAWgH,YAC5C,QAAI7qF,EAAG8wE,WAAWia,EAGtB,CAEA,UAAAA,CAAWzG,EAAiB0G,GAAyB,GACjD,MAAMr8E,EAAQ,EAAAk1E,WAAW6D,SAAS3D,oBAClC,IAAIkH,EAAU3G,EAAIN,OAAO7jE,UAAUxR,EAAMq1E,OAAOr2E,OAAS,EAAG22E,EAAIN,OAAOr2E,QACnEq9E,IACAC,EAAUjpF,EAAKuhB,QAAQ0nE,GACvBA,EAAUA,EAAQ9qE,UAAU,EAAG8qE,EAAQt9E,OAAS,IAEpD,MAAMu9E,EAAaD,EAAU,EAAApH,WAAWgH,YAClCM,EAAUnpF,EAAKuH,KAAKoF,EAAMq1E,OAAQkH,GACxC,OAAOvI,EAAOC,IAAI7Z,KAAKoiB,EAC3B,CAEA,aAAAvC,CAAchmF,GACVmC,KAAK29E,YAAc9/E,EACf5C,EAAG8wE,WAAWluE,EAAUohF,SACxBj/E,KAAK3B,KAAOpB,EAAKuW,SAAS3V,EAAUohF,QACpCj/E,KAAK89E,QAAU99E,KAAKqmF,aAAaxoF,EAAWy/E,EAAUgJ,MACtDtmF,KAAK+9E,SAAW/9E,KAAKqmF,aAAaxoF,EAAWy/E,EAAUiJ,OACvDvmF,KAAKi+E,MAAQj+E,KAAKqmF,aAAaxoF,EAAWy/E,EAAUkJ,IACpDxmF,KAAKk+E,OAASl+E,KAAKqmF,aAAaxoF,EAAWy/E,EAAUmJ,MACrDzmF,KAAKs+E,QAAS,GAGdt+E,KAAKs+E,QAAS,CACtB,CAEA,YAAA+H,CAAa1I,EAAyBl/D,GAClC,OAAOm/D,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKm5E,EAAYsB,OAAQj/E,KAAK0mF,cAAcjoE,IAC5E,CAEA,aAAAioE,CAAcjoE,GACV,IAAIkoE,EAAU,GACd,OAAQloE,GACJ,KAAK6+D,EAAUiJ,MACXI,EAAU,QACV,MACJ,KAAKrJ,EAAUkJ,GACXG,EAAU1pF,EAAKuH,KAAK,KAAM,QAC1B,MACJ,KAAK84E,EAAUgJ,KACXK,EAAU,EAAA7H,WAAW8H,yBACrB,MACJ,KAAKtJ,EAAUmJ,KACXE,EAAU,OACV,MACJ,KAAKrJ,EAAUuJ,OACXF,EAAU,SAGlB,OAAOA,CACX,CAEA,qBAAAG,GACI,OAAO9mF,KAAK8mF,qBAChB,E,+KCzeJ,0BACA,0BACA,0BACA,yBACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,IAAYC,GAAZ,SAAYA,GAAmB,2BAAU,uBAAQ,iBAAK,2BAAU,iBAAK,2BAAU,mBAAM,sBAAQ,CAA7F,CAAYA,IAAgB,mBAAhBA,EAAgB,KAY5B,MAAaC,EAKZ,OAAAC,GACCjnF,KAAKknF,qBAAqBC,MAC3B,CAEA,WAAArnF,GAPQ,KAAAonF,qBAAoF,IAAItJ,EAAOj7E,aAC9F,KAAAykF,oBAA4EpnF,KAAKknF,qBAAqBxxD,KAM/F,CAEV,WAAA2xD,CAAYC,G,kDAEjB,OADA,EAAAxI,WAAWyI,cAAa,GACpBD,EACItnF,KAAKwnF,WAAWF,EAAa/H,KAEjC,EAAAT,WAAWqB,sBAAwB,EAAArB,WAAW2I,eAC1CznF,KAAKwnF,WAAW,EAAA1I,WAAWuB,sBAE5B,EACR,E,CAEA,WAAAqH,CAAYJ,GACXA,EAAaK,UAAW,EACxBL,EAAaM,QAAS,EACtB,MAAMC,EAAWP,EAAa/H,IAAIN,OACnBhiF,EAAKuhB,QAAQqpE,IACb,EAAA/I,WAAWgJ,iBAAiB7I,SAE1CqI,EAAaM,QAAS,GAEnBN,EAAap8E,MAAQ67E,EAAiBgB,OACrC,EAAAhI,SAASiI,mBAAmBV,EAAa/H,OAC5C+H,EAAaK,UAAW,GAEf,EAAA5H,SAASiI,mBAAmBpK,EAAOC,IAAI7Z,KAAK6jB,MACtDP,EAAaK,UAAW,EAE1B,CAEA,WAAAM,CAAYX,GACX,MAAMY,EAAW,IAAItK,EAAOuK,SAASb,EAAa/H,IAAK,EAAAT,WAAWsJ,oBAAoBd,EAAa/H,KAAO3B,EAAOyK,yBAAyBC,KAAO1K,EAAOyK,yBAAyBE,WACjLvoF,KAAK0nF,YAAYJ,GACjB,IAAIkB,EAASlB,EAAaK,SAAW,WAAa,GAC9CL,EAAaM,SAChBY,GAAkB,UACflB,EAAamB,YAChBD,GAAkB,UAEnB,MAAME,EAAO1oF,KAAK2oF,iBAAiBrB,EAAap8E,MAMhD,GALAg9E,EAASU,SAAW,CACnBC,MAAOjL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,QAASJ,IAC/EK,KAAMnL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQJ,KAG1EpB,EAAap8E,OAAS67E,EAAiB5E,SAAU,CACpD+F,EAASc,QAAU,CAAEA,QAAS,4BAA6B3H,MAAO,gBAAiB38E,UAAW,CAAC4iF,IAC/F,MAAM/I,EAAU2J,EAASe,aAAe3B,EAAa/I,QAAU,UAAY,GAC3E2J,EAASe,aAAeT,EAASjK,EAAU,aAC3C2J,EAASgB,QAAU5B,EAAa/H,IAAIN,MAErC,MAAWqI,EAAap8E,OAAS67E,EAAiBgB,QACjDG,EAASe,aAAeT,EAAS,WACjCN,EAASgB,QAAU5B,EAAa/H,IAAIN,OACpCiJ,EAASc,QAAU,CAAEA,QAAS,4BAA6B3H,MAAO,gBAAiB38E,UAAW,CAAC4iF,KAErFA,EAAap8E,OAAS67E,EAAiBoC,KACjDjB,EAASgB,QAAU5B,EAAa/H,IAAIN,OACpCiJ,EAASkB,iBAAmB,EAC5BlB,EAASc,QAAU,CAAEA,QAAS,wBAAyB3H,MAAO,YAAa38E,UAAW,CAAC4iF,MAGnFA,EAAa/H,IAAIN,OAAOr/E,SAAS,QACpC4oF,GAAkB,QACVlB,EAAa/H,IAAIN,OAAOr/E,SAAS,SACzC4oF,GAAkB,YACnBN,EAASe,aAAeT,EAAS,SACjCN,EAASgB,QAAU5B,EAAa/H,IAAIN,OACpCiJ,EAASkB,iBAAmB,EAE5BlB,EAASc,QAAU,CAAEA,QAAS,wBAAyB3H,MAAO,YAAa38E,UAAW,CAAC4iF,KAGxF,OAAOY,CACR,CAEA,UAAAV,CAAW/oE,GACV,MAAM4qE,EAAUv/E,QACV5L,EAAU,EAAA6hF,SAASuJ,kBAAkB7qE,GAC3C,IAAIvT,EAAyB67E,EAAiB5E,SAE9C,IAAK,MAAMxjF,KAAST,EACnB,GAAIS,EAAMuM,MAAQ0yE,EAAO2L,SAASC,UAAW,CAC5Ct+E,EAAO,EAAA4zE,WAAWsJ,oBAAoBzpF,EAAM4gF,KAAOwH,EAAiB5E,SAAW4E,EAAiBgB,OAChG,MAAMxJ,EAAU,EAAAwB,SAAS0J,oBAAoB9qF,EAAM4gF,KAC7CkJ,EAAY,EAAA1I,SAAS2J,QAAQ/qF,EAAM4gF,IAAK,aAC9C8J,EAAQ1nF,KAAK,CAAE49E,IAAK5gF,EAAM4gF,IAAKr0E,KAAMA,EAAMqzE,QAASA,EAASoL,SAAS,EAAOlB,UAAWA,EAAWb,QAAQ,EAAOD,UAAU,GAE7H,MAAWhpF,EAAMuM,MAAQ0yE,EAAO2L,SAASK,OACxC1+E,EAAOlL,KAAK6pF,kBAAkBlrF,EAAM4gF,KACpC8J,EAAQ1nF,KAAK,CAAE49E,IAAK5gF,EAAM4gF,IAAKr0E,KAAMA,EAAMqzE,SAAS,EAAOoL,SAAS,EAAOlB,WAAW,EAAOb,QAAQ,EAAOD,UAAU,KAIxH,MAAMmC,EAAa,EAAA/J,SAASgK,WAAW,EAAAjL,WAAWuB,sBAAsB,GAExE,OADAzC,EAAOuB,SAASC,eAAe,aAAc,oBAAqB0K,GAC3DT,CACR,CAEA,iBAAAQ,CAAkBprE,GACjB,IAAIvT,EAAO67E,EAAiBiD,KAC5B,MAAMC,EAAUxrE,EAAIwgE,OAWpB,OAVIgL,EAAQrqF,SAAS,QACpBsL,EAAO67E,EAAiBoC,IAChBc,EAAQrqF,SAAS,QACzBsL,EAAO67E,EAAiBmD,SAChBD,EAAQrqF,SAAS,QACzBsL,EAAO67E,EAAiBoD,IAChBF,EAAQrqF,SAAS,aACzBsL,EAAO67E,EAAiBqD,SAChBH,EAAQrqF,SAAS,SACzBsL,EAAO67E,EAAiBsD,QAClBn/E,CACR,CAEA,gBAAAy9E,CAAiBz9E,GAEhB,IAAIw9E,EAAO,WAgBX,OAfIx9E,GAAQ67E,EAAiB5E,SAC5BuG,EAAO,WACGx9E,GAAQ67E,EAAiBgB,OACnCW,EAAO,aACGx9E,GAAQ67E,EAAiBoC,IACnCT,EAAO,UACGx9E,GAAQ67E,EAAiBmD,SACnCxB,EAAO,iBACGx9E,GAAQ67E,EAAiBoD,IACnCzB,EAAO,UACGx9E,GAAQ67E,EAAiBqD,SACnC1B,EAAO,eACGx9E,GAAQ67E,EAAiBsD,SACnC3B,EAAO,cAEDA,CACR,EAhJD,6BAoJA,MAAa4B,EAQZ,WAAAxqF,CAAYyuB,GAFJ,KAAAg8D,aAAe,IAAI,EAAA/M,aAG1B,MAAMgN,EAAuB,IAAIxD,EACjChnF,KAAKyqF,aAAe7M,EAAOznE,OAAOu0E,eAAe,eAAgB,CAAEC,iBAAkBH,IACrF5M,EAAOuB,SAASyL,gBAAgB,0BAA2B,IAAMJ,EAAqBvD,WACtFrJ,EAAOuB,SAASyL,gBAAgB,2BAA6BC,GAAa7qF,KAAKkgF,YAAY2K,IAC3FjN,EAAOuB,SAASyL,gBAAgB,8BAA+BC,GAAY7qF,KAAK8qF,eAAeD,IAC/FjN,EAAOuB,SAASyL,gBAAgB,0BAA2BC,GAAY7qF,KAAK+qF,WAAWF,IACvFjN,EAAOuB,SAASyL,gBAAgB,4BAA6BC,GAAY7qF,KAAKgrF,aAAaH,IAC3FjN,EAAOuB,SAASyL,gBAAgB,oCAAqCC,GAAY7qF,KAAKirF,wBACtFrN,EAAOuB,SAASyL,gBAAgB,4BAA6BC,GAAY7qF,KAAKkrF,aAAaL,IAC3FjN,EAAOuB,SAASyL,gBAAgB,kCAAmCC,GAAY7qF,KAAKmrF,mBAAmBN,IACvGjN,EAAOuB,SAASyL,gBAAgB,qCAAsC,IAAM5qF,KAAKorF,yBACjFxN,EAAOuB,SAASyL,gBAAgB,2BAA4BC,GAAY7qF,KAAKqrF,YAAYR,IACzFjN,EAAOuB,SAASyL,gBAAgB,4BAA6BC,GAAY7qF,KAAKsrF,aAAaT,IAC3FjN,EAAOuB,SAASyL,gBAAgB,4BAA6BC,GAAY7qF,KAAKurF,aAAaV,IAC3FjN,EAAOuB,SAASyL,gBAAgB,uBAAwBC,GAAY7qF,KAAKwrF,QAAQX,IACjFjN,EAAOuB,SAASyL,gBAAgB,yBAA0BC,GAAY7qF,KAAKyrF,UAAUZ,IACrFjN,EAAOuB,SAASyL,gBAAgB,4BAA6BC,GAAY7qF,KAAK0rF,aAAab,IAC3FjN,EAAOuB,SAASyL,gBAAgB,sBAAuBC,GAAY7qF,KAAK4nF,OAAOiD,IAC/EjN,EAAOuB,SAASyL,gBAAgB,sBAAuBC,GAAY7qF,KAAK2rF,OAAOd,IAC/EjN,EAAOuB,SAASyL,gBAAgB,4BAA6BC,GAAY7qF,KAAK4rF,WAAWf,IACzFjN,EAAOuB,SAASyL,gBAAgB,0BAA2BC,GAAY7qF,KAAK4rF,WAAWf,IACvFjN,EAAOuB,SAASyL,gBAAgB,4BAA6BC,GAAY7qF,KAAK6rF,aAAahB,IAC3FjN,EAAOuB,SAASyL,gBAAgB,8BAA+BC,GAAY7qF,KAAK8rF,eAAejB,IAC/FjN,EAAOuB,SAASyL,gBAAgB,4BAA6BC,GAAY7qF,KAAK+rF,aAAalB,IAC3FjN,EAAOuB,SAASyL,gBAAgB,8BAA+BC,GAAY7qF,KAAKgsF,eAAenB,IAC/FjN,EAAOuB,SAASyL,gBAAgB,0BAA2BC,GAAY7qF,KAAKisF,WAAWpB,IACvFjN,EAAOuB,SAASyL,gBAAgB,4BAA6BC,GAAY7qF,KAAKksF,aAAarB,IAC3FjN,EAAOuB,SAASyL,gBAAgB,wBAAyBC,GAAY7qF,KAAKmsF,SAAStB,IACnFjN,EAAOuB,SAASyL,gBAAgB,+BAAgCC,GAAY7qF,KAAKosF,gBAAgBvB,IACjGjN,EAAOuB,SAASyL,gBAAgB,gCAAiCC,GAAY7qF,KAAKqsF,iBAAiBxB,IACnGjN,EAAOuB,SAASyL,gBAAgB,0BAA2BC,GAAY7qF,KAAKssF,WAAWzB,IACvFjN,EAAOuB,SAASyL,gBAAgB,0BAA2B,IAAM5qF,KAAKusF,cACtE3O,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAKwsF,WACnE5O,EAAOuB,SAASyL,gBAAgB,+BAAgC,IAAM5qF,KAAKysF,mBAC3E7O,EAAOuB,SAASyL,gBAAgB,qBAAsB,IAAM5qF,KAAK0sF,SACjE9O,EAAOuB,SAASyL,gBAAgB,wBAAyB,IAAM5qF,KAAK2sF,YACpE/O,EAAOuB,SAASyL,gBAAgB,+BAAgCC,GAAY7qF,KAAK4sF,gBAAgB/B,IACjGjN,EAAOuB,SAASyL,gBAAgB,mCAAoCC,GAAY7qF,KAAK6sF,oBAAoBhC,IACzGjN,EAAOuB,SAASyL,gBAAgB,sCAAuCC,GAAY7qF,KAAK8sF,uBAAuBjC,IAC/GjN,EAAOuB,SAASyL,gBAAgB,iCAAkCC,GAAY7qF,KAAK+sF,kBAAkBlC,IACrGjN,EAAOuB,SAASyL,gBAAgB,+BAAgCC,GAAY7qF,KAAKgtF,gBAAgBnC,IAEjG,EAAA/L,WAAWmO,mBACXjtF,KAAKktF,eAAYzxF,EACjBuE,KAAKmtF,YAAa,CACnB,CAEA,aAAOC,CAAOC,GAIb,OAHK,EAAA5C,eACJ,EAAAA,aAAe,IAAIH,EAAa+C,IAE1B,EAAA5C,YACR,CAEA,QAAAkC,GACC,MAAMluE,EAAM,EAAAqgE,WAAWgJ,iBACvBlK,EAAO3nE,IAAIq3E,UAAUC,UAAU9uE,EAAIwgE,OACpC,CAEA,uBAAAuO,GACC,MAAMrhE,EAAgC,EAAA2yD,WAAW2O,aAAa,aAC9D,OAAoB,GAAhBthE,EAAMvjB,QACTg1E,EAAOznE,OAAOypE,mBAAmB,wIAC1B,IAEDzzD,CACR,CAEA,UAAAmgE,CAAWhF,GACN,EAAAxI,WAAWqB,sBAAwBngF,KAAKwtF,0BAA0B5kF,OAAS,GAC9Eg1E,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,WAAY4kF,OAAQ,wBAAyB12E,KAAK22E,IACrF,GAAIA,EAAS,CACZ,MAAMsK,EAAU,EAAAnL,WAAWuB,qBAAqBpB,OAOhDj/E,KAAK0tF,iBAAiBzD,EAAStK,EAChC,GAGH,CAEA,gBAAA+N,CAAiBzD,EAAiB5rE,GACjC,MAAM8N,EAAgC,GAChC00D,EAAU5jF,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAE5D,GAAI,EAAAf,SAAS5gE,MAAM0hE,GAAU,CAC5B,MAAMhtE,EAAQ,EAAAksE,SAAS6F,SAAShI,EAAOC,IAAI7Z,KAAK6c,IAC1C8M,EAAW,IAAI,EAAAlL,SACrB,IAAK,MAAMze,KAAQnwD,EAAO,CACzB,IAAIkrB,EAAY4uD,EAASC,cAAc5pB,EAAKib,QAAQ7tE,OACpD2tB,EAAYA,EAAUxpB,QAAQ,MAAO,IACrC4W,EAAMxqB,KAAK,CAAEypC,MAAOnuC,EAAKuW,SAASwwD,EAAKib,QAASqC,YAAa,IAAMviD,GACpE,CACA6+C,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,wBAAyBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAChI,IAAKA,EACJ,OAAO,EAER,MAAMjkF,EAAOpB,EAAKuH,KAAKq8E,EAASyB,EAAUl3C,OAG1C,OAFAuiD,EAASE,QAAQjQ,EAAOC,IAAI7Z,KAAK3lE,IACjC2B,KAAK8tF,YAAY7D,EAAS5rE,EAAUsvE,EAAStJ,YACtC,GAET,MACCrkF,KAAK8tF,YAAY7D,EAAS5rE,EAAU,oCAGrC,OAAO,CACR,CAEA,WAAAyvE,CAAY7D,EAAiB5rE,EAAkByyB,GAC9C,IAAI62B,EAAW1qE,EAAKuH,KAAKylF,EAAS5rE,EAAW,QACzCphB,EAAKuqC,QAAQnpB,KAChBspD,EAAW1qE,EAAKuH,KAAKylF,EAAS5rE,IAC/B,EAAA0hE,SAASnsE,UAAU+zD,EAAU72B,GAC7B8sC,EAAOuB,SAASC,eAAe,2BAC/BxB,EAAOznE,OAAO43E,iBAAiBnQ,EAAOC,IAAI7Z,KAAK2D,GAChD,CAEA,gBAAA0kB,CAAiB/E,GAChB,MAAMn7D,EAAgCnsB,KAAKwtF,0BACvB,GAAhBrhE,EAAMvjB,QAMVg1E,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAHvB,8BAG8BK,aAAa,EAAMC,YAF3C,iCAEuE34E,KAAK44E,IAC/F,IAAKA,EACJ,OAED,MAAM/tE,EAAkB,GAClBkd,EAAQ,EAAA+tD,WAAWgJ,iBAAiB7I,OAAOr2E,OAEjD,IAAK,MAAM05E,KAAaV,EAAY,CACnC,MAAMoM,EAAe1L,EAAUhB,YAC/B,GAAI0M,EAAc,CACjB,MAAMC,EAAgBjuF,KAAKkuF,yBAAyBF,GACpD,IAAK,MAAMhqB,KAAQiqB,EAClBp6E,EAAMlS,KAAK3B,KAAKmuF,UAAUnqB,EAAMjzC,IAIjC,MAAMgzD,EAAS,EAAAjF,WAAW6D,SAAS0D,aAAazI,EAAOC,IAAI7Z,KAAKgqB,GAAe,EAAA1Q,UAAUkJ,IACnF4H,EAAU,EAAArO,SAAS6F,SAAS7B,EAAQ,CAAC,QAAS,OAAQ,QAC5D,IAAK,MAAM/f,KAAQoqB,EAClBv6E,EAAMlS,KAAK3B,KAAKmuF,UAAUnqB,EAAKib,OAAQluD,GAQzC,CACD,CAGA,MAAMxsB,EAAWtH,EAAKyM,MAAM49E,EAAa/H,IAAIN,QACvCoP,EAAeruF,KAAKsuF,oBAAoB/pF,EAASlG,MACjDkwF,EAAStzF,EAAGsiB,kBAAkB8wE,EAAc,CAAE9vC,MAAO,MAC3DgwC,EAAOh0E,MAAM,gBACb,IAAK,MAAMypD,KAAQnwD,EAClB06E,EAAOh0E,MAAM,2BAA6BypD,EAAO,UAElDuqB,EAAOh0E,MAAM,eACbg0E,EAAO99E,QAEPmtE,EAAOuB,SAASC,eAAe,2BAC/BxB,EAAOznE,OAAO43E,iBAAiBnQ,EAAOC,IAAI7Z,KAAKqqB,KAEjD,CAEA,SAAAF,CAAUnqB,EAAcjzC,GACvB,IAAIlS,EAAWmlD,EAAK5oD,UAAU2V,GAG9B,OAFAlS,EAAWA,EAAStJ,QAAQ,IAAI4hB,OAAO,OAAQ,KAAM,KACrDtY,EAAWA,EAASzD,UAAU,GACvByD,CACR,CAEA,mBAAAyvE,CAAoBE,GACnB,OAAOvxF,EAAKuH,KAAK,EAAAs6E,WAAWgJ,iBAAiB7I,OAAQuP,EAAc,YACpE,CAEA,wBAAAN,CAAyBzvE,GACxB,MAAM5K,EAAkB,GAClBiqE,EAAU7gF,EAAKuH,KAAKia,EAAK,EAAAqgE,WAAW8H,0BAC1C5mF,KAAKuqF,aAAakE,WAAW3Q,GAC7B99E,KAAKuqF,aAAamE,aAAa5Q,GAC/BjqE,EAAMlS,KAAK1E,EAAKuH,KAAKs5E,EAAS,EAAAgB,WAAWsE,yBACzC,IAAK,MAAMz/E,KAAQ3D,KAAKuqF,aAAaoE,eAAgB,CACpD,MAAM1/E,EAAItL,EAAK47E,IAAIN,OACfhwE,EAAErG,OAAS,GAAK3N,EAAG8wE,WAAW98D,IACjC4E,EAAMlS,KAAKgC,EAAK47E,IAAIN,OACtB,CACA,OAAOprE,CACR,CAGA,cAAA+6E,GACC,MAAM/6E,EAAkB,GAClBg7E,EAAa5xF,EAAKuH,KAAK,EAAAs6E,WAAWgJ,iBAAiB7I,OAAQ,OAAQ,MAAO,EAAAH,WAAW8H,0BAC3F,IAAK3rF,EAAG8wE,WAAW8iB,GAAa,CAC/B,MAAMC,EAAa7xF,EAAKuH,KAAK,EAAAs6E,WAAWiQ,kBAAkB9P,OAAQ,OAAQ,MAAO,EAAAH,WAAW8H,0BAC5F,EAAA9H,WAAWgD,QAAQG,iBAAiBrE,EAAOC,IAAI7Z,KAAK8qB,GAAalR,EAAOC,IAAI7Z,KAAK6qB,GAAa,CAAC,EAAA3M,cAAcW,WAAY,EAAAT,cAAcU,MACvI,EAAAhE,WAAWgD,QAAQC,cACpB,CACA,MAAMiN,EAAO,EAAAjP,SAAS6F,SAAShI,EAAOC,IAAI7Z,KAAK6qB,IAE/C,IAAK,MAAMtP,KAAOyP,EACjBn7E,EAAMlS,KAAK49E,EAAIN,QAEhB,OAAOprE,CACR,CAEA,QAAAs4E,CAAS7E,GACJA,EAAap8E,MAAQ67E,EAAiBsD,OACzCzM,EAAOuB,SAASC,eAAe,uBAAwBkI,EAAa/H,KAEpE3B,EAAOznE,OAAO43E,iBAAiBzG,EAAa/H,IAC9C,CAEA,KAAAmN,GAEC9O,EAAOuB,SAASC,eAAe,cAAexB,EAAOC,IAAIn0E,MAD7C,yCAEb,CAEA,cAAAsiF,CAAe1E,GACV,EAAAxI,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAOmC,EAAKuW,SAAS8zE,EAAa/H,IAAIN,QAASS,OAAQ,4BAA6B12E,KAAK22E,IACrH,GAAIA,EAAS,CACK2H,EAAa/H,IACM,GAAhCtiF,EAAKuqC,QAAQm4C,GAAS/2E,SACzB+2E,GAAoB1iF,EAAKuqC,QAAQ8/C,EAAa/H,IAAIN,SACnD,MAAMgQ,EAAUrR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,QAASU,IACjF,EAAAb,WAAWgD,QAAQG,iBAAiBqF,EAAa/H,IAAK0P,EAAS,CAAC,EAAA/M,cAAcW,WAAY,EAAAT,cAAc8M,QACxG,EAAApQ,WAAWgD,QAAQC,cACpB,GAGH,CAEA,UAAAkK,CAAW3E,GACN,EAAAxI,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAOmC,EAAKuW,SAAS8zE,EAAa/H,IAAIN,QAASS,OAAQ,wBAAyB12E,KAAK22E,IACjH,GAAIA,EAAS,CACK2H,EAAa/H,IACM,GAAhCtiF,EAAKuqC,QAAQm4C,GAAS/2E,SACzB+2E,GAAoB1iF,EAAKuqC,QAAQ8/C,EAAa/H,IAAIN,SACnD,MAAMgQ,EAAUrR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,QAASU,IACjF,EAAAb,WAAWgD,QAAQG,iBAAiBqF,EAAa/H,IAAK0P,EAAS,CAAC,EAAA/M,cAAcW,WAAY,EAAAT,cAAc8M,QACxG,EAAApQ,WAAWgD,QAAQC,cACpB,GAGH,CAEA,YAAAmK,CAAa5E,GACR,EAAAxI,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAOmC,EAAKuW,SAAS8zE,EAAa/H,IAAIN,QAASS,OAAQ,0BAA2B12E,KAAK22E,IACnH,GAAIA,EAAS,CACK2H,EAAa/H,IAA9B,MACM0P,EAAUrR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,QAASU,IACjF,EAAAb,WAAWgD,QAAQG,iBAAiBqF,EAAa/H,IAAK0P,EAAS,CAAC,EAAA/M,cAAcW,WAAY,EAAAT,cAAc8M,QACxG,EAAApQ,WAAWgD,QAAQC,cACpB,GAGH,CAEA,cAAA+J,CAAexE,GACdtnF,KAAKmvF,WAAW7H,EAAa/H,IAC9B,CAEA,YAAAwM,CAAazE,GACZ,MAAM/8E,EAASqzE,EAAOC,IAAI7Z,KAAK/mE,EAAKuhB,QAAQvhB,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,UAC1Ej/E,KAAKmvF,WAAW5kF,EACjB,CAEA,UAAA4kF,CAAW1wE,GACVm/D,EAAOuB,SAASC,eAAe,oBAAqB3gE,GACpDm/D,EAAOuB,SAASC,eAAe,6BAChC,CAEA,eAAAqN,GACC,EAAA3N,WAAWmO,kBAAiB,EAC7B,CAEA,eAAAb,CAAgB9E,GACf,GAAI,EAAAxI,WAAWqB,qBAAsB,CACpC,MACM15E,EAAoC,CACzC2oF,gBAAgB,EAChBC,kBAAkB,EAClBC,eAAe,EACfC,UAAW,qBACXC,WANe,EAAA1Q,WAAW6D,SAASpF,QAMf2B,oBAErBtB,EAAOznE,OAAOs5E,eAAehpF,GAASuC,KAAK44E,IAC1C,IAAKA,EACJ,OAED,IAAI8N,GAAoB,EACpB1B,EAAe,QACEvyF,IAAjB6rF,EACH0G,EAAe,EAAAlP,WAAW6D,SAASqC,uBAAuB/F,QAE1D+O,EAAe1G,EAAa/H,IAAIN,OAC5B,EAAAH,WAAWsJ,oBAAoBd,EAAa/H,OAC/CyO,EAAe/wF,EAAKuhB,QAAQwvE,KAG9B,IAAK,MAAM2B,KAAU/N,EACpB,GAAI,EAAA9C,WAAWsJ,oBAAoBuH,GAAS,CAC3C,MAAMnxE,EAAUvhB,EAAKuW,SAASm8E,EAAO1Q,QACrC,EAAAH,WAAWgD,QAAQG,iBAAiB0N,EAAQ/R,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKwpF,EAAcxvE,IAAW,CAAC,EAAA0jE,cAAcW,WAAY,EAAAT,cAAcU,MACxI4M,GAAoB,CACrB,CAEGA,EACH,EAAA5Q,WAAWgD,QAAQC,eAEnBnE,EAAOznE,OAAOypE,mBAAmB,+BAEpC,CACD,CAEA,SAAA6L,CAAUnE,GACL,EAAAxI,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,UAAW4kF,OAAQ,sBAAuB12E,KAAK4mF,IAClF,GAAIA,EAAQ,CACX,IAAI3F,EAAU,GAIbA,EAHI3C,EAEMA,EAAap8E,MAAQ67E,EAAiBgB,OACtCT,EAAa/H,IAAIN,OAEjBhiF,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,QAJ9B,EAAAH,WAAWgJ,iBAAiB7I,OAOvC,EAAAc,SAAS6C,QAAQ3lF,EAAKuH,KAAKylF,EAAS2F,IACpChS,EAAOuB,SAASC,eAAe,0BAChC,GAGH,CAEA,YAAAsM,CAAapE,GACZ,GAAItnF,KAAKktF,UAAW,CACnB,MAAMh6E,EAAKjW,EAAKuH,KAAKxE,KAAKktF,UAAUjO,OAAQhiF,EAAKuW,SAAS8zE,EAAa/H,IAAIN,SAC3E,EAAAc,SAAS3Z,OAAOkhB,EAAa/H,IAAIN,OAAQ/rE,GACzC0qE,EAAOuB,SAASC,eAAe,0BAChC,MACCxB,EAAOznE,OAAOoqE,uBAAuB,qBAEvC,CAEA,YAAAsL,CAAavE,GACZ,MAAMqE,EAAS/N,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK8iF,EAAa/H,IAAIN,OAAQ,cAClE,GAAIhkF,EAAG8wE,WAAW4f,EAAO1M,QAAS,CACjC,MAAM9yD,EAAgC,GACtCA,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa,sBACxCn1D,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,4BAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,iBAAkBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACpHA,GAAgC,MAAnBA,EAAUl3C,QAE5B,EAAA20C,SAAS8P,QAAQlE,EAAO1M,QACxBrB,EAAOuB,SAASC,eAAe,6BAEjC,MACCxB,EAAOznE,OAAOypE,mBAAmB,2BAEnC,CAEA,UAAAgM,CAAWtE,GACV,IAAI2C,EAAU3C,EAAa/H,IAAIN,OAC1B,EAAAc,SAAS5gE,MAAM8qE,KACnBA,EAAUhtF,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,SAEzC,MAAM0M,EAAS1uF,EAAKuH,KAAKylF,EAAS,aAClC,IAAKhvF,EAAG8wE,WAAW4f,GAAS,CAC3B,MAAM1I,EAAU,+BAChB,EAAAlD,SAASnsE,UAAU+3E,EAAQ1I,EAC5B,CACArF,EAAOznE,OAAO43E,iBAAiBnQ,EAAOC,IAAI7Z,KAAK2nB,IAC/C/N,EAAOuB,SAASC,eAAe,0BAChC,CAEA,MAAAuM,CAAOrE,GACN,MAAMqE,EAAS/N,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK8iF,EAAa/H,IAAIN,OAAQ,cAC9DhkF,EAAG8wE,WAAW4f,EAAO1M,SACxBrB,EAAOuB,SAASC,eAAe,uBAAwBuM,EAEzD,CAEA,MAAA/D,CAAON,GACN,IAAI/8E,EAAStN,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,QAE3C,GAAI10E,GADoB,EAAAu0E,WAAWgJ,iBACL7I,OAAQ,CACrC10E,EAAStN,EAAKuhB,QAAQjU,GACtB,MAAM2I,EAAKjW,EAAKuH,KAAK+F,EAAQtN,EAAKuW,SAAS8zE,EAAa/H,IAAIN,SAC5D,EAAAc,SAAS3Z,OAAOkhB,EAAa/H,IAAIN,OAAQ/rE,GACzC0qE,EAAOuB,SAASC,eAAe,0BAChC,MACCxB,EAAOznE,OAAOoqE,uBAAuB,qBAEvC,CAEA,OAAAiL,CAAQlE,GACHrsF,EAAG8wE,WAAWub,EAAa/H,IAAIN,SAClC,EAAAH,WAAWgR,gBAAgBxI,EAAa/H,IAAIN,OAE9C,CAEA,UAAAsN,GACC,MAAM9tE,EAAM,EAAAqgE,WAAWgJ,iBACnB7sF,EAAG8wE,WAAWttD,EAAIwgE,SACrB,EAAAH,WAAWgR,gBAAgBrxE,EAAIwgE,OAEjC,CAEA,OAAAuN,GACC,GAAI,EAAA1N,WAAWqB,qBAAsB,CACpC,MAAM15E,EAAoC,CACzC6oF,eAAe,EACfC,UAAW,oBACXC,WAAY,EAAA1Q,WAAWuB,qBACvB+O,gBAAgB,EAChBC,kBAAkB,GAEnBzR,EAAOznE,OAAOs5E,eAAehpF,GAASuC,KAAKs5E,IAC1C,IAAKA,EACJ,OAED,MAAMyN,EAAY,EAAAjR,WAAWyI,cAAa,GACpCyI,EAAWpS,EAAOC,IAAI7Z,KAAKse,EAAU,GAAGrD,QAC9C,IAAK,MAAM0D,KAAYoN,EAAW,CACjC,MAAMpK,EAAS1oF,EAAKuW,SAASmvE,EAAS1D,QACtC,EAAAH,WAAWgD,QAAQG,iBAAiBU,EAAU/E,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKwrF,EAAS/Q,OAAQ0G,IAAU,CAAC,EAAAzD,cAAc+N,SAAU,EAAA7N,cAAcU,KAC3I,CACA,EAAAhE,WAAWgD,QAAQC,gBAErB,CACD,CAEA,YAAAuJ,CAAahE,GACZ,GAAI,EAAAxI,WAAWqB,qBAAsB,CACpC,MAAM15E,EAAoC,CACzC6oF,eAAe,EACfC,UAAW,oBACXC,WAAY,EAAA1Q,WAAWuB,qBACvB+O,gBAAgB,EAChBC,kBAAkB,GAEnBzR,EAAOznE,OAAOs5E,eAAehpF,GAASuC,KAAKs5E,IAC1C,IAAKA,EACJ,OAED,MAAMqD,EAAS1oF,EAAKuW,SAAS8zE,EAAa/H,IAAIN,QAC9C,EAAAH,WAAWgD,QAAQG,iBAAiBqF,EAAa/H,IAAK3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK89E,EAAU,GAAGrD,OAAQ0G,IAAU,CAAC,EAAAzD,cAAc+N,SAAU,EAAA7N,cAAcU,MACtJ,EAAAhE,WAAWgD,QAAQC,gBAErB,CACD,CAEA,YAAAwJ,CAAajE,GACR,EAAAxI,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAOmC,EAAKuW,SAAS8zE,EAAa/H,IAAIN,QAASS,OAAQ,kCAAmC12E,KAAK22E,IAC3H,GAAIA,EAAS,CACZ,MAAMgG,EAAS1oF,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,QAC7C,EAAAH,WAAWgD,QAAQG,iBAAiBqF,EAAa/H,IAAK3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKmhF,EAAQhG,IAAW,CAAC,EAAAuC,cAAcW,WAAY,EAAAT,cAAcU,MAC5I,EAAAhE,WAAWgD,QAAQC,eACnBnE,EAAOuB,SAASC,eAAe,2BAC/BxB,EAAOuB,SAASC,eAAe,0BAChC,GAGH,CAEQ,WAAAiM,CAAY9L,GACnB,GAAIA,EAAIN,OAAOr2E,OAAS,EAAG,CAC1B5I,KAAKkwF,OAAS3Q,EACd,MAAM4Q,EAAYlzF,EAAKuW,SAAS+rE,EAAIN,QAChCkR,EAAUvnF,SACb5I,KAAKyqF,aAAapJ,MAAQ,cAAc8O,KAC1C,MACCnwF,KAAKkwF,YAASz0F,EACduE,KAAKyqF,aAAapJ,MAAQ,YAE3BzD,EAAOuB,SAASC,eAAe,2BAChC,CAEQ,YAAA8L,CAAa5D,GACpB,EAAAxI,WAAWmO,mBACP3F,EAAap8E,MAAQ67E,EAAiB5E,UACzC,EAAArD,WAAWsR,aAAa9I,EAAa/H,KACrCv/E,KAAKktF,eAAYzxF,GAEjBuE,KAAKktF,UAAY5F,EAAa/H,GAEhC,CAEQ,cAAAuL,CAAexD,GACtB,GAAI,EAAAxI,WAAWqB,qBAAsB,CACpC,MAAMh0D,EAAgC,GACtC,IAAIkkE,EAAc,GAClBA,EAAcA,EAAYnmF,OAAO,WAAajN,EAAKuW,SAAS8zE,EAAa/H,IAAIN,QAAS,cACtF9yD,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,2BAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,kBAAmBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACrHA,GAAgC,MAAnBA,EAAUl3C,QAE5B,EAAA0zC,WAAWgD,QAAQG,iBAAiBqF,EAAa/H,IAAK+H,EAAa/H,IAAK,CAAC,EAAA2C,cAAcoO,KAAM,EAAApO,cAAcsE,GAAI,EAAAtE,cAAcW,UAAW,EAAAX,cAAcC,UAAW,EAAAC,cAAcmO,QAC/K,EAAAzR,WAAWgD,QAAQC,iBAErB,CACD,CAEQ,UAAAgJ,CAAWzD,GAClB,GAAI,EAAAxI,WAAWqB,qBAAsB,CACpC,MAAMh0D,EAAgC,GACtC,IAAIkkE,EAAc,GAClBA,EAAcA,EAAYnmF,OAAO,gBAAkBjN,EAAKuW,SAAS8zE,EAAa/H,IAAIN,SAClF9yD,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,uBAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,cAAeK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACjHA,GAAgC,MAAnBA,EAAUl3C,QAE5B,EAAA0zC,WAAWgD,QAAQG,iBAAiBqF,EAAa/H,IAAK+H,EAAa/H,IAAK,CAAC,EAAA2C,cAAcW,WAAY,EAAAT,cAAcmO,QACjH,EAAAzR,WAAWgD,QAAQC,iBAErB,CACD,CAEQ,YAAAiJ,CAAa1D,GACpB,GAAI,EAAAxI,WAAWqB,qBAAsB,CACpC,MAAMqQ,EAAYv1F,EAAGM,YAAY+rF,EAAa/H,IAAIN,QAAQr2E,OAC1D,IAAI6nF,EAAW,GACXC,EAAU,GACVC,EAAa,mBACjBF,EAAWA,EAASvmF,OAAO,wBAA0BjN,EAAKuW,SAAS8zE,EAAa/H,IAAIN,QAAS,KAC7FyR,EAAU,6BAC4C,GAAlDz1F,EAAGM,YAAY+rF,EAAa/H,IAAIN,QAAQr2E,SAC3C6nF,EAAW,2CAA2CD,WACtDE,EAAU,4CACVC,EAAa,sCAEd,MAAMxkE,EAAgC,GACtCA,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAamP,IACxCtkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAaoP,IAEvC9S,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,gBAAiBK,aAAa,EAAOC,YAAagP,IAAc3nF,KAAKs5E,IAC3GA,GAAgC,MAAnBA,EAAUl3C,QAE5B,EAAA0zC,WAAWgD,QAAQG,iBAAiBqF,EAAa/H,IAAK+H,EAAa/H,IAAK,CAAC,EAAA2C,cAAcW,WAAY,EAAAT,cAAcmO,QACjH,EAAAzR,WAAWgD,QAAQC,iBAErB,CACD,CAEQ,oBAAAkJ,GACPjrF,KAAKmvF,WAAW,EAAArQ,WAAWsB,wBAC5B,CAEQ,WAAAF,CAAYoH,GACnB,IAAI/H,EACgB9jF,MAAhB6rF,EACH/H,EAAM,EAAAT,WAAWgJ,kBAEjBvI,EAAM+H,EAAa/H,IACf+H,EAAap8E,MAAQ67E,EAAiB5E,WACzC5C,EAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuhB,QAAQ+gE,EAAIN,WAEzC,EAAAH,WAAW6D,SAASzC,YAAYX,EACjC,CAEM,eAAAqN,CAAgBtF,G,kDACrB,IAAI3J,EACJ,GAAI2J,GAAgBA,EAAa/H,IAChC5B,EAAc,EAAAoC,SAAS5gE,MAAMmoE,EAAa/H,IAAIN,QAAUqI,EAAa/H,IAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,aACnH,KAAI,EAAAH,WAAW6D,SAASmC,WAI9B,YADAlH,EAAOznE,OAAOypE,mBAAmB,+CAFjCjC,EAAc,EAAAmB,WAAW6D,SAASqC,sBAInC,CACA,MAAMx7E,EAAU,EAAAonF,WAAWxD,eACrB5jF,EAAQojF,gBAAgBjP,EAC/B,E,CAEM,mBAAAkP,CAAoBvF,G,kDACzB,IAAI3J,EACJ,GAAI2J,GAAgBA,EAAa/H,IAChC5B,EAAc,EAAAoC,SAAS5gE,MAAMmoE,EAAa/H,IAAIN,QAAUqI,EAAa/H,IAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,aACnH,KAAI,EAAAH,WAAW6D,SAASmC,WAI9B,YADAlH,EAAOznE,OAAOypE,mBAAmB,+CAFjCjC,EAAc,EAAAmB,WAAW6D,SAASqC,sBAInC,CACA,MAAMx7E,EAAU,EAAAonF,WAAWxD,eACrB5jF,EAAQqjF,oBAAoBlP,EACnC,E,CAEM,sBAAAmP,CAAuBxF,G,kDAC5B,IAAI3J,EACJ,GAAI2J,GAAgBA,EAAa/H,IAChC5B,EAAc,EAAAoC,SAAS5gE,MAAMmoE,EAAa/H,IAAIN,QAAUqI,EAAa/H,IAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,aACnH,KAAI,EAAAH,WAAW6D,SAASmC,WAI9B,YADAlH,EAAOznE,OAAOypE,mBAAmB,+CAFjCjC,EAAc,EAAAmB,WAAW6D,SAASqC,sBAInC,CACA,MAAMx7E,EAAU,EAAAonF,WAAWxD,eACrB5jF,EAAQsjF,uBAAuBnP,EACtC,E,CAMQ,UAAAkT,CAAWvJ,EAA4B0B,GAC9C,MAAMrL,EAAc39E,KAAK8wF,0BAA0BxJ,GAC9C3J,EAQeC,EAAOmT,UAAUC,iBAAiB,YAAYp4E,IAAa,sBAAsB,GAEpG5Y,KAAKixF,mBAAmBtT,EAAaqL,GAGtB,UAAZA,EACH,EAAAkI,iBAAiBC,MAAMxT,GAEvB,EAAAuT,iBAAiBj2E,KAAK0iE,GAftBC,EAAOznE,OAAOypE,mBAAmB,8CAgBnC,CAEQ,kBAAAqR,CAAmBtT,EAAyBqL,GACnD,MAAMoI,EAASn0F,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,UAAW,kBACtE,IAAK7lF,EAAG8wE,WAAWqlB,GAElB,YADAxT,EAAOznE,OAAOk7E,iBAAiB,gCAAkCD,GAGlE,MAAME,EAAY,EAAAxS,WAAWiQ,kBAAkB9P,OAEzCsS,EAAM,GADiB,UAAlBzlE,EAAGS,WAAyB,SAAW,cAC5B6kE,MAAWpI,MAAYrL,EAAYsB,2BAA2BqS,KAE9EE,EAAW,mBACjB,IAAIC,EAAO7T,EAAOznE,OAAOu7E,UAAUrgF,KAAK+tC,GAAKA,EAAE/gD,OAASmzF,GACnDC,IACJA,EAAO7T,EAAOznE,OAAOw7E,eAAeH,IAErCC,EAAKG,MAAK,GACVH,EAAKI,SAASN,EACf,CAEA,iBAAAxE,CAAkBzF,GACjBtnF,KAAK6wF,WAAWvJ,EAAc,OAC/B,CAEA,eAAA0F,CAAgB1F,GACf,MAAM3J,EAAc39E,KAAK8wF,0BAA0BxJ,GAC9C3J,EAMA,EAAAuT,iBAAiBY,aAAanU,GAInCC,EAAOznE,OAAOypE,mBACb,mLACA,CAAEmS,OAAO,GAAQ,SAChB/oF,KAAKgpF,IACS,UAAXA,GACHhyF,KAAK6wF,WAAWvJ,EAAc,WAR/BtnF,KAAK6wF,WAAWvJ,EAAc,SAN9B1J,EAAOznE,OAAOypE,mBAAmB,8CAiBnC,CAIQ,yBAAAkR,CAA0BxJ,GACjC,OAAIA,GAAgBA,EAAa/H,IACzB,EAAAQ,SAAS5gE,MAAMmoE,EAAa/H,IAAIN,QAAUqI,EAAa/H,IAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuhB,QAAQ8oE,EAAa/H,IAAIN,SAE/G,EAAAH,WAAW6D,SAASmC,WAChB,EAAAhG,WAAW6D,SAASqC,4BAD5B,CAID,CAEO,qBAAAoG,GACN,GAAI,EAAAtM,WAAWqB,qBAAsB,CAEpC,MAAMh0D,EAAgC,GACtC,IAAIkkE,EAAc,GAClBA,EAAcA,EAAYnmF,OAAO,6CACjCiiB,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,sCAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,2BAA4BK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAC9HA,GAAgC,MAAnBA,EAAUl3C,QAE5BprC,KAAKiyF,2BACL,EAAAnT,WAAWgD,QAAQC,iBAErB,CACD,CAEO,kBAAAoJ,CAAmB7D,GACzB,GAAI,EAAAxI,WAAWqB,qBAAsB,CACpC,MAAMh0D,EAAgC,GACtC,IAAIkkE,EAAc,GAClB,MAAM1P,EAAe1jF,EAAKuW,SAAS8zE,EAAa/H,IAAIN,QACpDoR,EAAcA,EAAYnmF,OAAO,+BAAiCy2E,EAAc,MAChFx0D,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,qCAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,kBAAmBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACrHA,GAAgC,MAAnBA,EAAUl3C,QAG5B,EAAA8mD,SAASC,iBAAiB7K,EAAa/H,KACvC,EAAAT,WAAWgD,QAAQC,iBAErB,CACD,CAEO,aAAAqQ,CAAc3zE,GACpB,MAAMu/D,EAAYJ,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKia,EAAIwgE,OAAQ,WACxDj/E,KAAKqyF,eAAerU,GACpB,MAAME,EAASN,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKia,EAAIwgE,OAAQ,SACrDj/E,KAAKqyF,eAAenU,EACrB,CAEO,cAAAmU,CAAe5zE,GACrB,MAAM5K,EAAQ,EAAAksE,SAAS6F,SAASnnE,GAChC,IAAK,MAAMulD,KAAQnwD,EAClB,EAAAirE,WAAWgD,QAAQG,iBAAiBje,EAAMA,EAAM,CAAC,EAAAke,cAAcW,WAAY,EAAAT,cAAcmO,OAE3F,CAEO,wBAAA0B,GACN,GAAIrU,EAAOmT,UAAUuB,iBAAkB,CACtC,MAAMC,EAAe,EAAAzT,WAAWyI,cAAa,GAC7C,IAAK,MAAMiL,KAAeD,EACJt1F,EAAKuW,SAASg/E,EAAYvT,QAC/C,EAAAiT,SAASC,iBAAiBK,EAE5B,CACD,EAtwBD,gB,qHC9KA,E,QAAA,sBACA,UACA,UACA,UAGA,MAAaC,EAGT,YAAoBpF,GAChBrtF,KAAK0yF,KAAOrF,EACZA,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,cAAe5qF,KAAK4yF,UAC3EvF,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,iBAAkB5qF,KAAK6yF,aAC9ExF,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,mBAAoB5qF,KAAK8yF,eAChFzF,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,sBAAuB5qF,KAAK+yF,kBACnF1F,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,qBAAsB5qF,KAAKgzF,iBAClF3F,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,iBAAkB5qF,KAAKizF,aAC9E5F,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,mBAAoB5qF,KAAKkzF,eAChF7F,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,gBAAiB5qF,KAAKmzF,YAC7E9F,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,kBAAmB5qF,KAAKozF,cAC/E/F,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,mBAAoB5qF,KAAKqzF,eAChFhG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,wBAAyB5qF,KAAKszF,oBACrFjG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,kBAAmB5qF,KAAKuzF,cAE/ElG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,mBAAoB5qF,KAAKwzF,eAChFnG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,oBAAqB5qF,KAAKyzF,gBACjFpG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,mBAAoB5qF,KAAK0zF,eAChFrG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,qBAAsB5qF,KAAK2zF,iBAClFtG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,eAAgB5qF,KAAK4zF,WAC5EvG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,0BAA2B5qF,KAAK6zF,yBACvFxG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,eAAgB5qF,KAAK8zF,WAC5EzG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,gBAAiB5qF,KAAK+zF,YAC7E1G,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,oBAAqB5qF,KAAKg0F,gBACjF3G,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,gBAAiB5qF,KAAKi0F,YAC7E5G,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,cAAe5qF,KAAKk0F,UAC3E7G,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,gBAAiB5qF,KAAKm0F,YAC7E9G,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,sBAAuB5qF,KAAKo0F,kBACnF/G,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,wBAAyB5qF,KAAKq0F,oBACrFhH,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,oBAAqB5qF,KAAKs0F,gBACjFjH,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,gBAAiB5qF,KAAKu0F,eAC7ElH,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,mBAAoB5qF,KAAKw0F,eAChFnH,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,mBAAoB5qF,KAAKwzF,eAChFnG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,0BAA2B5qF,KAAK6zF,yBACvFxG,EAAIsF,cAAchxF,KAAKi8E,EAAOuB,SAASyL,gBAAgB,YAAa5qF,KAAK0sF,OAC7E,CAEA,aAAOU,CAAOC,GAIV,OAHK,EAAAoH,cACD,EAAAA,YAAc,IAAIhC,EAAYpF,IAE3B,EAAAoH,WACX,CAEA,KAAA/H,GAEI9O,EAAOuB,SAASC,eAAe,cAAexB,EAAOC,IAAIn0E,MAD7C,iCAEhB,CAEA,QAAAoqF,GACI,GAAIlW,EAAOznE,OAAOu+E,iBAAkB,CAChC,MAAMC,EAAS/W,EAAOznE,OAAOu+E,iBAC7B,GAAIC,EAAQ,CACR,MAAMhH,EAAW,IAAI,EAAAlL,SAASkS,EAAOl+E,SAAS8oE,IAAIN,QAAQ,EAAM0V,EAAOl+E,SAAS4tE,WAC1EuQ,GAAUD,EAAOrS,UAAU/gE,QAWjC,GAVIqzE,GACAjH,EAASkH,iBAAiBF,GAC9BhH,EAASmH,UAAUF,GACnBjH,EAASoH,YAAYH,GACrBjH,EAASqH,YAAYL,EAAQC,IAMxBA,EAAS,CACV,MAAM71D,EAAY41D,EAAOl+E,SAASw+E,OAAO,GACnCC,EAAWP,EAAOl+E,SAASw+E,OAAON,EAAOl+E,SAAS0+E,UAAY,GAC9DC,EAAY,IAAIxX,EAAOyX,MAAMt2D,EAAUvzB,MAAMulB,MAAOmkE,EAAS1pF,MAAMggB,KACzEmpE,EAAOW,KAAK,SAAUC,GAClBA,EAAYhgF,QAAQ6/E,EAAWzH,EAAStJ,UAC5C,EACJ,CACJ,CACJ,CACJ,CAEA,SAAA0P,GACI,GAAInW,EAAOznE,OAAOu+E,iBAAkB,CAChC,MAAMC,EAAS/W,EAAOznE,OAAOu+E,iBAC7B,GAAIC,EAAQ,CACR,MAAMnpF,EAAQ,IAAIoyE,EAAOyX,MAAMV,EAAOrS,UAAUvxD,MAAO4jE,EAAOrS,UAAU92D,KAClE9P,EAAMi5E,EAAOl+E,SAAS4tE,QAAQ74E,GAC9BgqF,EAAU,IAAI5X,EAAO6X,cAAc/5E,EAAInF,eAC7Co+E,EAAOe,cAAcF,EAAShqF,EAClC,CACJ,CACJ,CAEA,aAAAwoF,GACI,GAAIpW,EAAOznE,OAAOu+E,iBAAkB,CAChC,MAAMC,EAAS/W,EAAOznE,OAAOu+E,iBAC7B,GAAIC,EAAQ,CACR,MACMgB,EADOhB,EAAOl+E,SAAS4tE,UACFuR,UAAU,OAAOrgF,QAAQ,mBAAoB,IAClE/J,EAAQ,IAAIoyE,EAAOyX,MAAMV,EAAOl+E,SAASw+E,OAAO,GAAGzpF,MAAMulB,MAAO4jE,EAAOl+E,SAASw+E,OAAON,EAAOl+E,SAAS0+E,UAAY,GAAG3pF,MAAMggB,KAC5HgqE,EAAU,IAAI5X,EAAO6X,cAAcE,GACzChB,EAAOe,cAAcF,EAAShqF,EAClC,CACJ,CACJ,CAEA,SAAAyoF,GACI,GAAIrW,EAAOznE,OAAOu+E,iBAAkB,CAChC,MAAMC,EAAS/W,EAAOznE,OAAOu+E,iBACzBC,GACiB,IAAI,EAAAlS,SAASkS,EAAOl+E,SAAS8oE,IAAIN,QACzCgV,UAAUU,EAE3B,CACJ,CAEA,QAAAf,GACQhW,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZjC,SAAShW,EAAOznE,OAAOu+E,iBAEvC,CAEA,sBAAAb,GACQjW,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZC,oBAAoBlY,EAAOznE,OAAOu+E,iBAElD,CAEA,cAAAf,GACQ/V,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZlC,eAAe/V,EAAOznE,OAAOu+E,iBAE7C,CAEA,YAAAhB,GACQ9V,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZnC,aAAa9V,EAAOznE,OAAOu+E,iBAE3C,CAEA,aAAAjB,GACQ7V,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZpC,cAAc7V,EAAOznE,OAAOu+E,iBAE5C,CAEA,UAAAzB,GACQrV,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZ5C,WAAWrV,EAAOznE,OAAOu+E,iBAEzC,CAEA,YAAAxB,GACQtV,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZ5C,WAAWrV,EAAOznE,OAAOu+E,kBAAkB,EAE3D,CAEA,YAAA5B,GACQlV,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZ/C,aAAalV,EAAOznE,OAAOu+E,iBAAkB,EAAAqB,aAAaC,OAE1E,CAEA,eAAAjD,GACQnV,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZ/C,aAAalV,EAAOznE,OAAOu+E,iBAAkB,EAAAqB,aAAaE,QAE1E,CAEA,cAAAjD,GACQpV,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZ/C,aAAalV,EAAOznE,OAAOu+E,iBAAkB,EAAAqB,aAAaG,OAE1E,CAEA,SAAA/C,GACQvV,EAAOznE,OAAOu+E,mBACG,IAAI,EAAAyB,UACZC,SAASxY,EAAOznE,OAAOu+E,iBAExC,CAEA,WAAAtB,GACQxV,EAAOznE,OAAOu+E,mBACG,IAAI,EAAAyB,UACZE,iBAAiBzY,EAAOznE,OAAOu+E,iBAEhD,CAEA,WAAAnB,GACQ3V,EAAOznE,OAAOu+E,mBACE,IAAI,EAAAmB,SACZtC,YAAY3V,EAAOznE,OAAOu+E,iBAE1C,CAEA,YAAArB,GACQzV,EAAOznE,OAAOu+E,mBACG,IAAI,EAAAyB,UACZ9C,aAAazV,EAAOznE,OAAOu+E,iBAAkB,EAAA4B,aAAaC,QAE3E,CAEA,iBAAAjD,GACQ1V,EAAOznE,OAAOu+E,mBACG,IAAI,EAAAyB,UACZ9C,aAAazV,EAAOznE,OAAOu+E,iBAAkB,EAAA4B,aAAaE,MAE3E,CAEA,OAAA5D,GACI,GAAIhV,EAAOznE,OAAOu+E,iBAAkB,CAChC,MAAM+B,EAAM,IAAI,EAAAZ,QACVtW,EAAM3B,EAAOznE,OAAOu+E,iBAAiBj+E,SAAS8oE,IACpDkX,EAAI7D,QAAQrT,EAChB,CACJ,CAEA,UAAAsT,GACI,GAAIjV,EAAOznE,OAAOu+E,iBAAkB,CAChC,MAAM+B,EAAM,IAAI,EAAAZ,QACVtW,EAAM3B,EAAOznE,OAAOu+E,iBAAiBj+E,SAAS8oE,IACpDkX,EAAI7D,QAAQrT,EAChB,CACJ,CAEA,OAAA2U,GACQtW,EAAOznE,OAAOu+E,kBACd9W,EAAOuB,SAASC,eAAe,iBAEvC,CAEA,SAAA+U,GACQvW,EAAOznE,OAAOu+E,kBACd9W,EAAOuB,SAASC,eAAe,mBAEvC,CAEA,eAAAgV,GACQxW,EAAOznE,OAAOu+E,kBACd9W,EAAOuB,SAASC,eAAe,yBAEvC,CAEA,iBAAAiV,GACQzW,EAAOznE,OAAOu+E,kBACd9W,EAAOuB,SAASC,eAAe,2BAEvC,CAGA,aAAAkV,GACQ1W,EAAOznE,OAAOu+E,mBACG,IAAI,EAAAyB,UACZ7B,cAAc1W,EAAOznE,OAAOu+E,iBAE7C,CAEA,YAAAH,GACQ3W,EAAOznE,OAAOu+E,mBACG,IAAI,EAAAyB,UACZhD,UAAUvV,EAAOznE,OAAOu+E,iBAEzC,CAEA,YAAAF,GACQ5W,EAAOznE,OAAOu+E,mBACG,IAAI,EAAAyB,UACZ3B,aAAa5W,EAAOznE,OAAOu+E,iBAE5C,CAEA,YAAAlB,GACQ5V,EAAOznE,OAAOu+E,mBACF,IAAI,EAAAmB,SACZrC,aAAa5V,EAAOznE,OAAOu+E,iBAEvC,EA/RJ,e,6ICNA,0BACA,0BACA,0BACA,yBACA,UACA,UACA,UAEA,IAAYgC,GAAZ,SAAYA,GAAgB,2BAAU,yBAAS,oCAAe,CAA9D,CAAYA,IAAa,gBAAbA,EAAa,KAyBzB,MAAa9F,EAET,WAAA9wF,GAAgB,CAEhB,aAAOstF,GAIH,OAHK,EAAAuJ,aACD,EAAAA,WAAa,IAAI/F,GAEd,EAAA+F,UACX,CAMM,eAAA/J,CAAgBjP,G,wDACZ39E,KAAK42F,WAAWjZ,EAAa+Y,EAAcvU,SACrD,E,CAEM,aAAA0U,CAAclZ,G,wDACV39E,KAAK42F,WAAWjZ,EAAa+Y,EAAcI,QACrD,E,CAKM,mBAAAjK,CAAoBlP,G,wDAChB39E,KAAK42F,WAAWjZ,EAAa+Y,EAAcK,cACrD,E,CAWM,sBAAAjK,CAAuBnP,G,0DACzB,MAAMqZ,EAAUrZ,EAAYsB,OACtB0B,EAAe1jF,EAAKuW,SAASwjF,EAAQzhF,QAAQ,UAAW,KACxD0hF,EAAMj3F,KAAKk3F,mBAKXC,EAAcl6F,EAAKuH,KAAKwyF,EAAS,GAAGrW,IAAesW,KACzD,IAAKh8F,EAAG8wE,WAAWorB,GAQf,YAHe,mCAJMvZ,EAAOznE,OAAOk7E,iBAC/B,8BAA8B1Q,IAAesW,uEAC7C,oCAGMj3F,KAAK4sF,gBAAgBjP,KAMnC,MAAMyZ,EAAYn6F,EAAKuH,KAAKwyF,EAAS,KAAM,QACrCK,EAAYr3F,KAAKs3F,gBAAgBF,GAIjC5V,QAAe5D,EAAOznE,OAAOs5E,eAAe,CAC9CJ,kBAAkB,EAClBD,gBAAgB,EAChBE,eAAe,EACfC,UAAW,6BACXlO,MAAO,6BAA6BV,aAExC,IAAKa,GAA4B,IAAlBA,EAAO54E,OAClB,OAEJ,MAAM2uF,EAAa/V,EAAO,GAAGvC,OACvB1gE,EAAUthB,EAAKuH,KAAK+yF,EAAY5W,GAEtC,GAAI1jF,EAAK8L,QAAQwV,KAAathB,EAAK8L,QAAQiuF,GAA3C,CAKA,GAAI/7F,EAAG8wE,WAAWxtD,GAAU,CAMxB,GAAkB,mBALMq/D,EAAOznE,OAAOypE,mBAClC,IAAIrhE,iCACJ,CAAEwzE,OAAO,GACT,YAGA,OAEJ,IACI92F,EAAGu8F,OAAOj5E,EAAS,CAAEG,WAAW,EAAM+4E,OAAO,GACjD,CAAE,MAAO1vF,GAEL,YADA61E,EAAOznE,OAAOk7E,iBAAiB,qCAAiD,QAAZ,EAAAtpF,aAAG,EAAHA,EAAKyP,eAAO,QAAIzP,IAExF,CACJ,CAEA,IAII9M,EAAGsZ,UAAUgK,EAAS,CAAEG,WAAW,IAOnCzjB,EAAGy8F,aAAaP,EAAal6F,EAAKuH,KAAK+Z,EAAS,GAAGoiE,IAAesW,MAQlE,MAAMU,EAAS16F,EAAKuH,KAAK+Z,EAAS,OAClCtjB,EAAGsZ,UAAUojF,EAAQ,CAAEj5E,WAAW,IAClC,IAAK,MAAMrgB,IAAQ,CAAC,MAAO,OAAQ,KAAM,OACrCpD,EAAGy8F,aAAaP,EAAal6F,EAAKuH,KAAKmzF,EAAQ,GAAGt5F,IAAO44F,MAK7D,MAAMW,EAAa36F,EAAKuH,KAAK+Z,EAAS,KAAM,QAC5CtjB,EAAGsZ,UAAUqjF,EAAY,CAAEl5E,WAAW,IACtC,IAAK,MAAM3K,KAAKsjF,EACZp8F,EAAGy8F,aAAa3jF,EAAG9W,EAAKuH,KAAKozF,EAAY36F,EAAKuW,SAASO,KAQ3D,MAAM8jF,EAAU73F,KAAK83F,gBAAgBd,GACrC,GAAIa,EAAQjvF,OAAQ,CAChB,MAAMmvF,EAAW96F,EAAKuH,KAAK+Z,EAAS,QACpCtjB,EAAGsZ,UAAUwjF,EAAU,CAAEr5E,WAAW,IACpC,IAAK,MAAM3K,KAAK8jF,EACZ58F,EAAGy8F,aAAa3jF,EAAG9W,EAAKuH,KAAKuzF,EAAU96F,EAAKuW,SAASO,IAE7D,CACA,MAAMikF,EAAgB/6F,EAAKuH,KAAKwyF,EAAS,UACnCiB,EAAch9F,EAAG8wE,WAAWisB,IAAkB/8F,EAAGI,SAAS28F,GAAev3F,cAC3Ew3F,GACAh9F,EAAGi9F,OAAOF,EAAe/6F,EAAKuH,KAAK+Z,EAAS,UAAW,CAAEG,WAAW,IAIxE,IAAK,MAAMmtB,IAAK,CAAC,QAAS,SAAU,OAAQ,OACxC5wC,EAAGsZ,UAAUtX,EAAKuH,KAAK+Z,EAASstB,GAAI,CAAEntB,WAAW,IAGrD,MAAMy5E,EAAUd,EAAUzuF,OACpB,GAAGyuF,EAAUzuF,wBAAwByuF,EAAUl5F,IAAI4V,GAAK9W,EAAKuW,SAASO,IAAIvP,KAAK,QAC/E,8EACA4zF,EAAQP,EAAQjvF,OAChB,KAAKivF,EAAQjvF,4BAA4BivF,EAAQ15F,IAAI4V,GAAK9W,EAAKuW,SAASO,IAAIvP,KAAK,QAAQyzF,EAAc,aAAe,KACtH,GACN,EAAAI,QAAQC,WACJ,iCAAiC/5E,MAAYoiE,IAAesW,WAAa,CAAC,MAAO,OAAQ,KAAM,OAAO94F,IAAIqT,GAAKA,EAAIylF,GAAKzyF,KAAK,UAAU2zF,IAAUC,MACjJ,EAAA7T,YAAYgU,eACZ5a,GAEJC,EAAOznE,OAAOoqE,uBACV,+BAA+BI,kCAA6CpiE,uJAC5E,sBACFvV,KAAKgpF,IACY,uBAAXA,GACApU,EAAOuB,SAASC,eAAe,iBAAkBxB,EAAOC,IAAI7Z,KAAKzlD,KAG7E,CAAE,MAAOxW,GACL,MAAMywF,EAAqB,QAAZ,EAAAzwF,aAAG,EAAHA,EAAKyP,eAAO,QAAI8b,OAAOvrB,GACtC,EAAAswF,QAAQC,WAAW,kBAAkBE,IAAU,EAAAjU,YAAYgU,eAAgB5a,GAC3EC,EAAOznE,OAAOk7E,iBAAiB,oCAAoCmH,IACvE,CAnGA,MAFI5a,EAAOznE,OAAOk7E,iBAAiB,uFAsGvC,E,CAMc,UAAAuF,CAAWjZ,EAAyBplD,G,kDAC9C,MAAMkgE,EACFlgE,IAAWm+D,EAAcI,QAAU,KACnCv+D,IAAWm+D,EAAcK,cAAgB,WACzC,kBACE2B,EACFngE,IAAWm+D,EAAcI,QAAU,aACnCv+D,IAAWm+D,EAAcK,cAAgB,cACzC,WAGE4B,EAAM,EAAA7Z,WAAW8Z,UAAU3Z,OACjC,GAAK0Z,EAAI/vF,QAAW3N,EAAG8wE,WAAW4sB,GAAlC,CASA,GAAIpgE,IAAWm+D,EAAcI,SAEA,IADP92F,KAAK64F,kBAAkBlb,EAAYsB,QACvCr2E,OAAc,CACxB,MACM4O,EAAU,sCADKva,EAAKuW,SAASmqE,EAAYsB,OAAO1pE,QAAQ,UAAW,wDAIzE,OAFA,EAAA8iF,QAAQC,WAAW9gF,EAAS,EAAA+sE,YAAYgU,eAAgB5a,QACxDC,EAAOznE,OAAOypE,mBAAmBpoE,EAErC,CAMJ,GAAI+gB,IAAWm+D,EAAcK,eAEJ,IADP/2F,KAAK84F,sBAAsBnb,EAAYsB,QAAQ,GACnDr2E,OAAc,CACpB,MACM4O,EAAU,mCADKva,EAAKuW,SAASmqE,EAAYsB,OAAO1pE,QAAQ,UAAW,iGAIzE,OAFA,EAAA8iF,QAAQC,WAAW9gF,EAAS,EAAA+sE,YAAYgU,eAAgB5a,QACxDC,EAAOznE,OAAOypE,mBAAmBpoE,EAErC,CAGJomE,EAAOznE,OAAO4iF,aAAa,CAKvBx+D,SAAUqjD,EAAOob,iBAAiBC,OAClC5X,MAAO,WAAWoX,IAClBS,aAAa,GACPC,GAAa,EAAD,yC,QAClBA,EAASC,OAAO,CAAEplB,UAAW,GAAIx8D,QAAS,2BAC1C,EAAA6gF,QAAQC,WAAW,aAAaG,MAAgBx7F,EAAKuW,SAASmqE,EAAYsB,UAAW,EAAAsF,YAAYgU,eAAgB5a,GACjHC,EAAOuB,SAASC,eAAe,sBAG/B,MAAMkS,EAAYr0F,EAAKuhB,QAAQm6E,GACzB3B,EAAUrZ,EAAYsB,OAGtBoa,EAASp8F,EAAKuH,KAAKwyF,EAAS,OAC7B/7F,EAAG8wE,WAAWstB,IACfp+F,EAAGsZ,UAAU8kF,EAAQ,CAAE36E,WAAW,IAEtC,MAAM46E,QAAsBt5F,KAAKu5F,cAAcZ,EAAK3B,EAAS1F,EAAWoH,GAGxE,GAAwB,IAFP14F,KAAK84F,sBAAsB9B,GAE/BpuF,OAAc,CACvB,MAAM4vF,GAA6B,QAApB,EAAAc,EAAch/E,cAAM,eAAElJ,UAA8B,QAApB,EAAAkoF,EAAcre,cAAM,eAAE7pE,SAAU,sCACzEoG,EAAU,6BAA6BihF,MAAgBD,IAI7D,OAHA,EAAAH,QAAQC,WAAW9gF,EAAS,EAAA+sE,YAAYgU,eAAgB5a,GACxDC,EAAOznE,OAAOk7E,iBAAiB75E,QAC/B2hF,EAASC,OAAO,CAAEplB,UAAW,IAAKx8D,QAAS,0BAE/C,CAEK8hF,EAAcE,IACf,EAAAnB,QAAQC,WACJ,8HACA,EAAA/T,YAAYgU,eACZ5a,GAIR,MAAM8b,EAASlhE,IAAWm+D,EAAcI,QAKlC4C,EACFnhE,IAAWm+D,EAAcI,QAAU,KACnCv+D,IAAWm+D,EAAcK,cAAgB,WACzC95F,EAAKuW,SAASwjF,GAGlB,IAAI2C,GAAU,EAEd,GAAoB,WAHC/b,EAAOmT,UAAUC,iBAAiB,WAAWp4E,IAAY,SAAW,SAASrC,cAI9F4iF,EAASC,OAAO,CAAEplB,UAAW,GAAIx8D,QAAS,qCAC1CmiF,QAAgB35F,KAAK45F,kBAAkB5C,EAAS0C,EAAaD,EAAQN,OAClE,CACHA,EAASC,OAAO,CAAEplB,UAAW,GAAIx8D,QAAS,uDAKpB,UAAlBsU,EAAGS,mBACGvsB,KAAK65F,oBAAoBvI,EAAW0F,IAG9C,MAAM8C,QAAuB95F,KAAK+5F,sBAAsB/C,GACxD,IAAK8C,EAED,YADAlc,EAAOuB,SAASC,eAAe,sBAInC+Z,EAASC,OAAO,CAAEplB,UAAW,GAAIx8D,QAAS,6BAC1CmiF,QAAgB35F,KAAKg6F,oBAAoBhD,EAAS8C,EAAgBJ,EAAaD,EACnF,CAEA,GAAIE,EAAS,CACT,MAAMM,EAAUj6F,KAAKk6F,kBAAkBR,GACjCS,EAAUl9F,EAAKuH,KAAKm5E,EAAYsB,OAAQgb,GAC9C,EAAA5B,QAAQC,WAAW,WAAWG,gBAA0BwB,IAAW,EAAA1V,YAAYgU,eAAgB5a,GAI/FC,EAAOznE,OAAOoqE,uBACV,WAAWkY,gBAA0BwB,IACrC,sBACFjxF,KAAKgpF,IACY,uBAAXA,GACApU,EAAOuB,SAASC,eAAe,iBAAkBxB,EAAOC,IAAI7Z,KAAKm2B,KAG7E,MACI,EAAA9B,QAAQC,WAAW,WAAWG,0CAAqD,EAAAlU,YAAYgU,eAAgB5a,GAE/GC,EAAOznE,OAAOk7E,iBACV,WAAWoH,kDACX,eACFzvF,KAAKgpF,IACY,gBAAXA,IAKApU,EAAOuB,SAASC,eAAe,qCAC/BxB,EAAOuB,SAASC,eAAe,oBAK3CxB,EAAOuB,SAASC,eAAe,sBAC/BxB,EAAOuB,SAASC,eAAe,2BAC/BxB,EAAOuB,SAASC,eAAe,sBAG/B,IAAAgb,4BAEAjB,EAASC,OAAO,CAAEplB,UAAW,GAAIx8D,QAASmiF,EAAU,QAAU,WAClE,GApJA,MAJI/b,EAAOznE,OAAOk7E,iBAAiB,qBAAsB,gBAAgBroF,KAAK+tB,IACtE,EAAA+nD,WAAWub,gBAwJvB,E,CAMQ,aAAAd,CAAcZ,EAAa3B,EAAiB1F,EAAmBoH,EAAsB,YACzF,MAAM4B,EAAK,EAAQ,MACbC,EAAiBv6F,KAAKw6F,cAAcxD,GACpCyD,EAAkBz6F,KAAKw6F,cAAclJ,GACrChmF,EAAiB,CAACotF,EAAa,OAAQ6B,EAAgB,QAASE,GAItE,GAFA,EAAApC,QAAQC,WAAW,YAAYK,KAAOrtF,EAAK9G,KAAK,OAAQ,EAAA+/E,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IAE9E,UAAlBlrE,EAAGS,WAAwB,CAC3B,MAAMmuE,EAAW16F,KAAK26F,qBACtB,GAAID,EACA,OAAO16F,KAAK46F,0BAA0BF,EAAU/B,EAAKrtF,EAAM0rF,EAAS0B,EAE5E,CAEA,OAAO,IAAI5vF,QAAQC,IACfuxF,EAAGO,SAASlC,EAAKrtF,EAAM,CAACvD,EAAUkzE,EAAgB3gE,KAC9C,MAAMg5B,EAAM2nC,EAASA,EAAO7pE,OAAS,GAC/B0pF,EAASxgF,EAASA,EAAOlJ,OAAS,GAEpC6pE,GACA,EAAAod,QAAQC,WAAW,mBAAqBhlD,EAAK,EAAAixC,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IAEzF18E,GACA,EAAA+9E,QAAQC,WAAW,mBAAqBwC,EAAQ,EAAAvW,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IAE5FjvF,GACA,EAAAswF,QAAQC,WAAW,WAAWI,YAAwB3wF,EAAIyP,QAAS,EAAA+sE,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IAC/GpZ,EAAOznE,OAAOk7E,iBAAiB,+BAAiCtpF,EAAIyP,SACpEzO,EAAQ,CAAEywF,IAAI,EAAOve,OAAQ3nC,EAAKh5B,OAAQwgF,EAAOlyF,OAASkyF,EAAS/yF,EAAIyP,WAEvEzO,EAAQ,CAAEywF,IAAI,EAAMve,OAAQ3nC,EAAKh5B,OAAQwgF,OAIzD,CAEQ,yBAAAF,CAA0BG,EAAqBpC,EAAartF,EAAgB0rF,EAAiB0B,EAAsB,YACvH,MAAM4B,EAAK,EAAQ,MAGbtR,EAAU,SAAS+R,uCAFV/6F,KAAKg7F,cAAa1vF,EAAK1C,OAAS+vF,OAC3BrtF,EAAKnN,IAAI6xB,GAAOhwB,KAAKg7F,aAAahrE,IAAMxrB,KAAK,OAGjE,OAAO,IAAIsE,QAAQC,IACfuxF,EAAGp2D,KAAK8kD,EAAS,CAAEiS,MAAO,WAAa,CAAClzF,EAAUkzE,EAAgB3gE,KAC9D,MAAMg5B,EAAM2nC,EAASA,EAAO7pE,OAAS,GAC/B0pF,EAASxgF,EAASA,EAAOlJ,OAAS,GAEpC6pE,GACA,EAAAod,QAAQC,WAAW,mBAAqBhlD,EAAK,EAAAixC,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IAEzF18E,GACA,EAAA+9E,QAAQC,WAAW,mBAAqBwC,EAAQ,EAAAvW,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IAE5FjvF,GACA,EAAAswF,QAAQC,WAAW,WAAWI,YAAwB3wF,EAAIyP,QAAS,EAAA+sE,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IAC/GjuF,EAAQ,CAAEywF,IAAI,EAAOve,OAAQ3nC,EAAKh5B,OAAQwgF,EAAOlyF,OAASkyF,EAAS/yF,EAAIyP,WAEvEzO,EAAQ,CAAEywF,IAAI,EAAMve,OAAQ3nC,EAAKh5B,OAAQwgF,OAIzD,CAMc,qBAAAf,CAAsB/C,G,kDAEhC,WADuBh3F,KAAKk7F,YAUxB,aARqBtd,EAAOznE,OAAOk7E,iBAC/B,sEACA,yBAGAzT,EAAOuB,SAASC,eAAe,cAAexB,EAAOC,IAAIn0E,MAAM,qCAEnE,EAAA2uF,QAAQC,WAAW,2CAA4C,EAAA/T,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IAI/G,MAAMmE,EAAUn7F,KAAKo7F,6BACrB,IAAKD,GAAWA,EAAQE,iBAAiBzyF,OAAS,GAAKuyF,EAAQG,eAAe1yF,OAAS,GAAoC,IAA/BuyF,EAAQI,YAAY3yF,OAAc,CAC1H,MAAM4yF,EAAwB,IAC1BL,aAAO,EAAPA,EAASE,iBAAiBzyF,SAC1B4yF,EAAY75F,KAAK,SAASw5F,EAAQE,iBAAiB72F,KAAK,UAExD22F,aAAO,EAAPA,EAASG,eAAe1yF,SACxB4yF,EAAY75F,KAAK,YAAYw5F,EAAQG,eAAe92F,KAAK,SAEzD22F,GAA0C,IAA/BA,EAAQI,YAAY3yF,QAC/B4yF,EAAY75F,KAAK,6BAErB,MACM6V,EACF,0CAFWgkF,EAAY5yF,OAAS,YAAY4yF,EAAYh3F,KAAK,SAAW,sJAQ5E,aALqBo5E,EAAOznE,OAAOk7E,iBAAiB75E,EAAS,iBAEzD,EAAAsnE,WAAWub,cAAa,QAE5B,EAAAhC,QAAQC,WAAW9gF,EAAS,EAAA+sE,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,GAE5E,CAEA,OAAOmE,CACX,E,CAEc,QAAAD,G,kDAEV,aADqBl7F,KAAKy7F,YAAY,QAAS,CAAC,eAClCjC,EAClB,E,CAEQ,0BAAA4B,GACJ,MAAMM,EAAa,EAAA5c,WAAWiQ,kBAAkB9P,OAChD,IAAKyc,EAAW9yF,SAAW3N,EAAG8wE,WAAW2vB,GACrC,OAGJ,MAAMC,EAAe,CAAC,OAAQ,MAAO,QAAS,QAAS,QAMjDC,EAAiC,UAAlB9vE,EAAGS,WAClB,CAAC,UAAW,UAAW,WACvB,GACAsvE,EAAkB,CACpB,iBACA,cACA,aACA,eACA,aACA,cACA,YACA,cACA,WACA,YACA,cACA,mBACA,cAGEC,EAA0B,IAAIn3F,IAC9Bo3F,EAAwB,GACxBT,EAA2B,GAEjC,IAAK,MAAMxiE,KAAU+iE,EAAiB,CAClC,MAAMG,EAAMh8F,KAAKi8F,iBAAiBP,EAAY5iE,GAC1CkjE,GACAD,EAAYp6F,KAAKq6F,GACjBF,EAAwBj3F,IAAI5H,EAAKuhB,QAAQvhB,EAAKuhB,QAAQw9E,MAEtDV,EAAe35F,KAAKm3B,EAE5B,CAEA,MAAMyiE,EAAcv7F,KAAKk8F,0BAA0BR,EAAY,IAAII,IAC7DK,EAAyB,GACzBd,EAA6B,GAEnC,IAAK,MAAMpB,KAAW0B,EAAc,CAChC,MAAMS,EAAUp8F,KAAKq8F,kBAAkBX,EAAYzB,GAC/CmC,EACAD,EAAax6F,KAAKy6F,GAElBf,EAAiB15F,KAAKs4F,EAE9B,CAEA,IAAK,MAAMA,KAAW2B,EAAc,CAChC,MAAMQ,EAAUp8F,KAAKq8F,kBAAkBX,EAAYzB,GAC/CmC,GACAD,EAAax6F,KAAKy6F,EAE1B,CAEA,MAAO,CACHV,aACAH,cACAY,eACAJ,cACAT,iBACAD,mBAER,CAEQ,yBAAAa,CAA0BR,EAAoBY,EAAwB,IAC1E,MAYMC,EAAW,CAXbt/F,EAAKuH,KAAKk3F,EAAY,WACtBz+F,EAAKuH,KAAKk3F,EAAY,UAAW,OACjCz+F,EAAKuH,KAAKk3F,EAAY,UAAW,WACjCz+F,EAAKuH,KAAKk3F,EAAY,UAAW,UAAW,OAC5Cz+F,EAAKuH,KAAKk3F,EAAY,UAAW,cACjCz+F,EAAKuH,KAAKk3F,EAAY,UAAW,MAAO,QACxCz+F,EAAKuH,KAAKk3F,EAAY,KAAM,WAC5Bz+F,EAAKuH,KAAKk3F,EAAY,UAAW,WACjCz+F,EAAKuH,KAAKk3F,EAAY,WAGUY,GAC/Bh4F,OAAOma,GAAOxjB,EAAG8wE,WAAWttD,IAAQxjB,EAAGI,SAASojB,GAAKhe,eAC1D,MAAO,IAAI,IAAIkE,IAAI43F,GACvB,CAEQ,gBAAAN,CAAiBP,EAAoBc,GACzC,MAAMC,EAAqBD,EAAmBxgG,MAAM,KAAKwI,KAAKvH,EAAKiD,KAC7Dw8F,EAAiB,CACnBz/F,EAAKuH,KAAKk3F,EAAY,WACtBz+F,EAAKuH,KAAKk3F,EAAY,UAAW,OACjCz+F,EAAKuH,KAAKk3F,EAAY,UAAW,WACjCz+F,EAAKuH,KAAKk3F,EAAY,UAAW,UAAW,OAC5Cz+F,EAAKuH,KAAKk3F,EAAY,UAAW,cACjCz+F,EAAKuH,KAAKk3F,EAAY,KAAM,WAC5Bz+F,EAAKuH,KAAKk3F,EAAY,UAAW,YAGrC,IAAK,MAAM/2E,KAAQ+3E,EAAgB,CAC/B,MAAMhvB,EAAWzwE,EAAKuH,KAAKmgB,EAAM83E,GACjC,GAAIxhG,EAAG8wE,WAAW2B,IAAazyE,EAAGI,SAASqyE,GAAU/sE,SACjD,OAAO+sE,CAEf,CAGJ,CAEQ,iBAAA2uB,CAAkBX,EAAoBiB,GAC1C,MAAMpwE,EAAWT,EAAGS,WACdqwE,EAAgB58F,KAAK68F,qBAAqBF,EAAUpwE,GACpDuwE,EAAgB,CAClB7/F,EAAKuH,KAAKk3F,EAAY,OACtBz+F,EAAKuH,KAAKk3F,EAAY,QAAS,OAC/Bz+F,EAAKuH,KAAKk3F,EAAY,QAAS,WAC/Bz+F,EAAKuH,KAAKk3F,EAAY,QAAS,SAC/Bz+F,EAAKuH,KAAKk3F,EAAY,UAAW,QAGrC,IAAK,MAAMj9E,KAAOq+E,EAAe,CAC7B,MAAMd,EAAMh8F,KAAK+8F,eAAet+E,EAAKm+E,EAAe,GACpD,GAAIZ,EACA,OAAOA,CAEf,CAEA,OAAOh8F,KAAK+8F,eAAerB,EAAYkB,EAAe,EAC1D,CAEQ,oBAAAC,CAAqBF,EAAkBpwE,GAC3C,MAAiB,UAAbA,EACO,CAAC,GAAGowE,SAEE,WAAbpwE,EACO,CAAC,MAAMowE,MAAc,GAAGA,MAAc,MAAMA,UAAkB,GAAGA,WAErE,CAAC,MAAMA,MAAc,GAAGA,MAAc,MAAMA,OAAe,GAAGA,OACzE,CAEQ,cAAAI,CAAep4E,EAAci4E,EAAyB5kB,GAC1D,IAAK/8E,EAAG8wE,WAAWpnD,KAAU1pB,EAAGI,SAASspB,GAAMlkB,cAC3C,OAGJ,MAAMu8F,EAAW,IAAIr4F,IAAIi4F,EAAcz+F,IAAIE,GAAQA,EAAKkY,gBAClD5H,EAA+C,CAAC,CAAE8P,IAAKkG,EAAMxU,MAAO,IAE1E,KAAOxB,EAAM/F,QAAQ,CACjB,MAAMomB,EAAUrgB,EAAMgC,QACtB,IAAKqe,EACD,SAEJ,GAAIA,EAAQ7e,MAAQ6nE,EAChB,SAGJ,IAAI95E,EAAuB,GAC3B,IACIA,EAAUjD,EAAGM,YAAYyzB,EAAQvQ,IAAK,CAAE3gB,eAAe,GAC3D,CAAE,SACE,QACJ,CAEA,IAAK,MAAMa,KAAST,EAAS,CACzB,MAAMwvE,EAAWzwE,EAAKuH,KAAKwqB,EAAQvQ,IAAK9f,EAAMN,MAC9C,GAAIM,EAAMgC,UACN,GAAIq8F,EAAS71E,IAAIxoB,EAAMN,KAAKkY,eACxB,OAAOm3D,OAEJ/uE,EAAM8B,eACbkO,EAAMhN,KAAK,CAAE8c,IAAKivD,EAAUv9D,MAAO6e,EAAQ7e,MAAQ,GAE3D,CACJ,CAGJ,CAMc,mBAAA6pF,CAAoB,EAAD,K,mDAAChD,EAAiBmE,EAA+BzB,EAAsBD,GAAkB,GAGtH,GAAwB,IAFPz5F,KAAK84F,sBAAsB9B,EAASyC,GAExC7wF,OAAc,CACvB,MAAMq0F,EAAQxD,EAAS,GAAGzC,QAAgBA,EAE1C,OADApZ,EAAOznE,OAAOk7E,iBAAiB,6CAA6C4L,OACrE,CACX,CAEA,MAAMtc,EAAe+Y,GAAeA,EAAY9wF,OAAS8wF,EAAcz8F,EAAKuW,SAASwjF,GAC/EkG,EAAYjgG,EAAKuH,KAAKwyF,EAASh3F,KAAKk6F,kBAAkBvZ,IACtDwc,EAAYlgG,EAAKuH,KAAKwyF,EAAS,gBAC/BoG,EAAYngG,EAAKuH,KAAK24F,EAAW,OACjCE,EAAWpgG,EAAKuH,KAAK24F,EAAW,SAChCG,EAAYrgG,EAAKuH,KAAK44F,EAAW,kBAEvCniG,EAAGsZ,UAAU6oF,EAAW,CAAE1+E,WAAW,IAKrC,MAAM6+E,EAAiBtgG,EAAKuH,KAAK64F,EAAU,kBAC3C,GAAIpiG,EAAG8wE,WAAWwxB,GACd,IACItiG,EAAGu8F,OAAO6F,EAAU,CAAE3+E,WAAW,EAAM+4E,OAAO,GAClD,CAAE,MAAsB,GAAC,CAG7B,MAAM+F,EAAavgG,EAAKuH,KAAK44F,EAAW,YAoBxCniG,EAAG0Z,cAAc6oF,EAlBb,+qBAkBwC,CAAEnrE,SAAU,SAExD,MAAMorE,EAAez9F,KAAK09F,0BAA0B1G,EAASrW,EAAcwa,EAASiC,EAAW3D,GAC/Fx+F,EAAG0Z,cAAc2oF,EAAWG,EAAc,CAAEprE,SAAU,SAEtD,MAAMsrE,EAAgB/f,EAAOznE,OAAOynF,oBAAoB,iBACxDD,EAAc/L,MAAK,GACnB+L,EAAcE,WAAW,sDAMzB,MAAMC,EAAgC,UAAlBhyE,EAAGS,WAAyBvsB,KAAK26F,0BAAuBl/F,EACtEsiG,EAAgB,CAAC,KAAMX,EAAW,KAAMC,GACxCW,EAAkBF,QACZ99F,KAAKi+F,sBAAsBH,EAAaC,EAAe/G,SACvDh3F,KAAKy7F,YAAY,QAASsC,EAAe/G,GAErD,GADAh3F,KAAKk+F,oBAAoBP,EAAe,kBAAmBK,IACtDA,EAAgBxE,GAGjB,OAFA,EAAAnB,QAAQC,WAAW,0BAA2B,EAAA/T,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IAC1FpZ,EAAOznE,OAAOk7E,iBAAiB,0EACxB,EAGX,MAAM8M,EAAY,CAAC,UAAWd,GACR,UAAlBvxE,EAAGS,YACH4xE,EAAUx8F,KAAK,WAAY,WAG/B,MAAMy8F,EAAcN,QACR99F,KAAKi+F,sBAAsBH,EAAaK,EAAWnH,SACnDh3F,KAAKy7F,YAAY,QAAS0C,EAAWnH,GAGjD,GAFAh3F,KAAKk+F,oBAAoBP,EAAe,cAAeS,IAElDA,EAAY5E,KAAOv+F,EAAG8wE,WAAWmxB,GAGlC,OAFA,EAAA7E,QAAQC,WAAW,sBAAuB,EAAA/T,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IACtFpZ,EAAOznE,OAAOk7E,iBAAiB,sEACxB,EAGX,IAAKp2F,EAAG8wE,WAAWmxB,GAAY,CAC3B,MAAMmB,EAAiB,mEAAmEnB,IAI1F,OAHAS,EAAcE,WAAWQ,GACzB,EAAAhG,QAAQC,WAAW+F,EAAgB,EAAA9Z,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAKgzB,IAC/EpZ,EAAOznE,OAAOk7E,iBAAiBgN,IACxB,CACX,CAGA,OADAV,EAAcE,WAAW,mBAAmBX,MACrC,CACX,E,CAEQ,yBAAAQ,CAA0B1G,EAAiBrW,EAAsBwa,EAA+BmD,EAAiB7E,GAAkB,GACvI,MAAM8E,EAAe52B,GAAqBA,EAASpyD,QAAQ,MAAO,KAC5DipF,EAAeD,EAAYD,GAC3BG,EAAetD,EAAQI,YACxBp9F,IAAIsgB,GAAO,QAAQ8/E,EAAY9/E,OAC/Bja,KAAK,MACJk6F,EAAWvD,EAAQgB,aACpBh+F,IAAI6lE,GAAQ,QAAQu6B,EAAYv6B,OAChCx/D,KAAK,MACJwpF,EAAeuQ,EAAYvH,GASjC,MAAO,uNAOKhJ,4CACkBA,4CACAA,4CACAA,qLAG2BA,uEACAA,uEACAA,gDApBtCyL,EACb,IAAIzL,cACJ,IAAIA,iBAA4BA,qGACbyL,EAAS,MAAQ,iJA0BY9Y,iEAGvD6d,YACAxQ,YACAA,gBACAA,UACLyQ,qCAIAC,kfAkBE,CAEQ,mBAAAR,CAAoBP,EAAqCvyD,EAAe5rC,GAC5Em+F,EAAcE,WAAW,OAAOzyD,SAC5B5rC,EAAOy7E,OAAO7pE,OAAOxI,QACrB+0F,EAAcE,WAAWr+F,EAAOy7E,OAAO7pE,QAEvC5R,EAAO8a,OAAOlJ,OAAOxI,QACrB+0F,EAAcE,WAAWr+F,EAAO8a,OAAOlJ,QAEvC5R,EAAOm/F,cACPhB,EAAcE,WAAWr+F,EAAOm/F,aAExC,CAEQ,WAAAlD,CAAYzS,EAAiB19E,EAAgBmc,GACjD,MAAM6yE,EAAK,EAAQ,MACnB,OAAO,IAAIxxF,QAAQC,IACfuxF,EAAGO,SAAS7R,EAAS19E,EAAM,CAAEmc,IAAKA,EAAK2U,UAAW,UAAoB,CAACr0B,EAAUkzE,EAAgB3gE,KAEzFvR,EADAhB,EACQ,CACJyxF,IAAI,EACJve,OAAQA,EAASA,EAAOl9C,WAAa,GACrCzjB,OAAQA,EAASA,EAAOyjB,WAAa,GACrC4gE,aAAc52F,EAAIyP,SAIlB,CACJgiF,IAAI,EACJve,OAAQA,EAASA,EAAOl9C,WAAa,GACrCzjB,OAAQA,EAASA,EAAOyjB,WAAa,QAIrD,CAEQ,YAAAi9D,CAAahrE,GACjB,OAAIA,EAAIlR,SAAS,MAAQkR,EAAIlR,SAAS,KAC3B,IAAIkR,EAAIza,QAAQ,KAAM,SAE1Bya,CACX,CAEQ,aAAAwqE,CAAcoE,GAClB,MAAsB,UAAlB9yE,EAAGS,WACIqyE,EAGNA,EAAW9/E,SAAS,MAIP9e,KAAK6+F,oBAAoBD,IAHhCA,CAKf,CAEQ,mBAAAC,CAAoBD,G,MACxB,MAAMtE,EAAK,EAAQ,MAEbwE,EAAe,eADLF,EAAWrpF,QAAQ,KAAM,wBAGzC,IACI,MAIMwpF,EAGsC,QAH1B,EAJMzE,EAAG0E,SAAS,kBAAkBF,KAAiB,CACnEzsE,SAAU,SACXjhB,OAGEpV,MAAM,SACNmC,IAAKqnE,GAAiBA,EAAKp0D,QAC3BC,KAAMm0D,GAAiBA,EAAK58D,OAAS,UAAE,eACtC2M,QAAQ,WAAY,MAE1B,IAAKwpF,IAAcA,EAAUn2F,OACzB,OAGJ,GAAIm2F,EAAUjgF,SAAS,KACnB,OAGJ,OAAOigF,CACX,CAAE,SACE,MACJ,CACJ,CAEQ,qBAAAjG,CAAsB9B,EAAiByC,GAAkB,GAC7D,MAAMqD,EAAgBrD,EAAS,CAAC,MAAQ,CAAC,MAAO,MAC1CwF,EAAqB,GAE3B,IAAK,MAAMpd,KAAWib,EAAe,CACjC,MAAM7S,EAAUhtF,EAAKuH,KAAKwyF,EAASnV,GACnC,IAAK5mF,EAAG8wE,WAAWke,KAAahvF,EAAGI,SAAS4uF,GAASxpF,cACjD,SAGJ,MAAMoT,EAAQ5Y,EAAGM,YAAY0uF,GACxB3lF,OAAO0/D,GAAQA,EAAKztD,cAAc3W,SAAS,SAC3CzB,IAAI6lE,GAAQ/mE,EAAKuH,KAAKylF,EAASjmB,IACpCi7B,EAASt9F,QAAQkS,EACrB,CAEA,OAAOorF,CACX,CAEQ,iBAAApG,CAAkB7B,GAEtB,MAAM/Y,EAAQhhF,EAAKuH,KAAKwyF,EAAS,KAAM,QACvC,OAAK/7F,EAAG8wE,WAAWkS,IAAWhjF,EAAGI,SAAS4iF,GAAOx9E,cAG1CxF,EAAGM,YAAY0iF,GACjB35E,OAAO0/D,IACJ,MAAMwM,EAAQxM,EAAKztD,cACnB,OAAOi6D,EAAM5wE,SAAS,SAAW4wE,EAAM5wE,SAAS,WAEnDzB,IAAI6lE,GAAQ/mE,EAAKuH,KAAKy5E,EAAOja,IAPvB,EAQf,CAEc,mBAAA61B,CAAoB6B,EAAoB1E,G,kDAIlD,MACMkI,EAASjiG,EAAKuH,KAAKk3F,EAAY,OACrC,IAAKzgG,EAAG8wE,WAAWmzB,GACf,IAAMjkG,EAAGsZ,UAAU2qF,EAAQ,CAAExgF,WAAW,GAAS,CAAE,SAAQ,MAAQ,CAGvE,MAAMygF,EANU,CAAC,UAAW,UAAW,WAMf76F,OAAOjG,IAASpD,EAAG8wE,WAAW9uE,EAAKuH,KAAK06F,EAAQ,GAAG7gG,WAC3E,GAAuB,IAAnB8gG,EAAQv2F,OACR,OAGJ,MAAM8xF,EAAW16F,KAAK26F,qBACtB,IAAKD,EAMD,YALA,EAAArC,QAAQC,WACJ,iHACA,EAAA/T,YAAYgU,eACZ3a,EAAOC,IAAI7Z,KAAKgzB,IAKxB,MAAMoI,EAA2B,UAAjBvjG,QAAQwjG,KAAmB,QAAU,MAErD,IAAK,MAAMhhG,KAAQ8gG,EAAS,CACxB,MAAMG,EAAMriG,EAAKuH,KAAKk3F,EAAY,GAAGr9F,SACrC,IAAKpD,EAAG8wE,WAAWuzB,GAAM,CACrB,EAAAjH,QAAQC,WACJ,mBAAmBj6F,UAAaihG,eAChC,EAAA/a,YAAYgU,eACZ3a,EAAOC,IAAI7Z,KAAKgzB,IAEpB,QACJ,CAEA,MAAMuI,EAAStiG,EAAKuH,KAAK06F,EAAQ,GAAG7gG,SAC9BmhG,EAAUviG,EAAKuH,KAAK06F,EAAQ,GAAG7gG,SAErC,EAAAg6F,QAAQC,WACJ,cAAcj6F,cAAiBA,kCAC/B,EAAAkmF,YAAYgU,eACZ3a,EAAOC,IAAI7Z,KAAKgzB,IAGpB,MAAMn8F,QAAgBmF,KAAKy/F,kBAAkB/E,EAAU4E,GACvD,GAAuB,IAAnBzkG,EAAQ+N,OAAc,CACtB,EAAAyvF,QAAQC,WACJ,kCAAkCj6F,qBAClC,EAAAkmF,YAAYgU,eACZ3a,EAAOC,IAAI7Z,KAAKgzB,IAEpB,QACJ,CAEA,MAAM0I,EAAa,WAAWrhG,eAAoBxD,EAAQsD,IAAIugC,GAAK,OAAOA,KAAKl6B,KAAK,MAAQ,KAC5F,IACIvJ,EAAG0Z,cAAc6qF,EAASE,EAAY,CAAErtE,SAAU,QACtD,CAAE,MAAOtqB,GACL,EAAAswF,QAAQC,WACJ,mBAAmBkH,MAAYz3F,GAAOA,EAAIyP,QAAUzP,EAAIyP,QAAU8b,OAAOvrB,KACzE,EAAAw8E,YAAYgU,eACZ3a,EAAOC,IAAI7Z,KAAKgzB,IAEpB,QACJ,QAEiBh3F,KAAK2/F,cAAcjF,EAAU8E,EAASD,EAAQH,IAQ3D,EAAA/G,QAAQC,WACJ,aAAaiH,IACb,EAAAhb,YAAYgU,eACZ3a,EAAOC,IAAI7Z,KAAKgzB,IATpB,EAAAqB,QAAQC,WACJ,6BAA6BiH,KAC7B,EAAAhb,YAAYgU,eACZ3a,EAAOC,IAAI7Z,KAAKgzB,GAS5B,CACJ,E,CAEQ,iBAAAyI,CAAkB/E,EAAkB4E,GACxC,MAAMhF,EAAK,EAAQ,MAEbtR,EAAU,SAAS0R,wDADV16F,KAAKg7F,aAAasE,KAGjC,OAAO,IAAIx2F,QAAQC,IACfuxF,EAAGp2D,KAAK8kD,EAAS,CAAEiS,MAAO,UAAW7+D,UAAW,UAAoB,CAACr0B,EAAUkzE,KAEvElyE,EADAhB,EACQ,GAGJ/H,KAAK4/F,oBAAoB3kB,GAAU,QAGvD,CAEQ,mBAAA2kB,CAAoB3kB,GACxB,MAAMlW,EAAQkW,EAAOj/E,MAAM,SACrBqD,EAAkB,GACxB,IAAIwgG,GAAY,EAEhB,IAAK,MAAMC,KAAO/6B,EAAO,CACrB,MAAMS,EAAOs6B,EAAIvqF,QAAQ,QAAS,IAClC,IAAKiwD,EAAK58D,OAAQ,CACd,GAAIi3F,GAAaxgG,EAAMuJ,OAAS,EAC5B,MAEJ,QACJ,CACA,IAAKi3F,EAAW,CACR,iBAAiB5kF,KAAKuqD,IAAS,YAAYvqD,KAAKuqD,KAChDq6B,GAAY,GAEhB,QACJ,CAIA,MAAMrpF,EAAIgvD,EAAKhwD,MAAM,iDACrB,IAAIgB,EAGA,MAFAnX,EAAMsC,KAAK6U,EAAE,GAIrB,CACA,OAAOnX,CACX,CAEQ,qBAAA4+F,CAAsBvD,EAAkBpvF,EAAgBmc,GAC5D,MAAM6yE,EAAK,EAAQ,MAEbtR,EAAU,SAAS0R,6CADPpvF,EAAKnN,IAAIsB,GAAKO,KAAKg7F,aAAav7F,IAAI+E,KAAK,OAE3D,OAAO,IAAIsE,QAAQC,IACfuxF,EAAGp2D,KAAK8kD,EAAS,CAAEvhE,IAAKA,EAAKwzE,MAAO,UAAW7+D,UAAW,UAAoB,CAACr0B,EAAUkzE,EAAgB3gE,KACrG,MAAMg5B,EAAM2nC,EAASA,EAAOl9C,WAAa,GACnC+8D,EAASxgF,EAASA,EAAOyjB,WAAa,GAExCh1B,EADAhB,EACQ,CAAEyxF,IAAI,EAAOve,OAAQ3nC,EAAKh5B,OAAQwgF,EAAQ6D,aAAc52F,EAAIyP,SAE5D,CAAEgiF,IAAI,EAAMve,OAAQ3nC,EAAKh5B,OAAQwgF,OAIzD,CAEQ,aAAA6E,CAAcjF,EAAkB8E,EAAiBD,EAAgBH,GACrE,MAAM9E,EAAK,EAAQ,MAIbtR,EAAU,SAAS0R,2CAHZ,CAAC,QAAQ8E,IAAW,YAAYJ,IAAW,QAAQG,KAC3DphG,IAAIsB,GAAKO,KAAKg7F,aAAav7F,IAC3B+E,KAAK,OAGV,OAAO,IAAIsE,QAAQC,IACfuxF,EAAGp2D,KAAK8kD,EAAS,CAAEiS,MAAO,UAAW7+D,UAAW,UAAqBr0B,IACjEgB,GAAShB,GAAO9M,EAAG8wE,WAAWwzB,OAG1C,CAEQ,kBAAA5E,GACJ,GAAsB,UAAlB7uE,EAAGS,WACH,OAGJ,MAAM+tE,EAAK,EAAQ,MACbyF,EAAkBlkG,QAAQoa,IAAI,sBAAwB,0BACtD+pF,EAAU/iG,EAAKuH,KAAKu7F,EAAiB,0BAA2B,YAAa,eAEnF,IACI,GAAI9kG,EAAG8wE,WAAWi0B,GAAU,CAMxB,MAAMC,EAAc3F,EAAG4F,aAAaF,EAAS,CAAC,UAAW,cAAe,YAAa,IAAK,YAAa,oDAAqD,YAAa,oBAAqB,CAC1L3tE,SAAU,SACXjhB,OAEH,GAAI6uF,EAAYr3F,OAAQ,CACpB,MAAMu3F,EAAaljG,EAAKuH,KAAKy7F,EAAa,UAAW,QAAS,gBAC9D,GAAIhlG,EAAG8wE,WAAWo0B,GACd,OAAOA,CAEf,CACJ,CACJ,CAAE,SAEF,CAEA,MAAMC,EAAW,CAAC,aAAc,YAAa,eAAgB,cAIvDtkG,EAAW,CAAC,KAAM,OAAQ,OAAQ,KAAM,MACxCukG,EAAY,CACdpjG,EAAKuH,KAAK3I,QAAQoa,IAAkB,cAAK,oBAAqB,2BAC9DhZ,EAAKuH,KAAKu7F,EAAiB,4BAG/B,IAAK,MAAMp7E,KAAQ07E,EACf,IAAK,MAAMv9B,KAAWhnE,EAClB,IAAK,MAAMwkG,KAAWF,EAAU,CAC5B,MAAMD,EAAaljG,EAAKuH,KAAKmgB,EAAMm+C,EAASw9B,EAAS,UAAW,QAAS,gBACzE,GAAIrlG,EAAG8wE,WAAWo0B,GACd,OAAOA,CAEf,CAKZ,CAMA,iBAAAjG,CAAkBvZ,GACd,OAAOA,EAAe3gF,KAAKk3F,kBAC/B,CAEQ,gBAAAA,GACJ,MAAM3qE,EAAWT,EAAGS,WACpB,MAAiB,UAAbA,EAA6B,OAChB,WAAbA,EAA8B,SAC3B,KACX,CAKQ,eAAA+qE,CAAgBF,GACpB,OAAKn8F,EAAG8wE,WAAWqrB,IAAen8F,EAAGI,SAAS+7F,GAAW32F,cAGlDxF,EAAGM,YAAY67F,GACjB9yF,OAAO0/D,IACJ,MAAMwM,EAAQxM,EAAKztD,cACnB,IAAKi6D,EAAM5wE,SAAS,WAAa4wE,EAAM5wE,SAAS,QAAS,OAAO,EAChE,MAAM2gG,EAAOv8B,EAAK5oD,UAAU,EAAG4oD,EAAKyR,YAAY,MAChD,OAAOz1E,KAAKwgG,iBAAiBD,KAEhCpiG,IAAI6lE,GAAQ/mE,EAAKuH,KAAK4yF,EAAWpzB,IAT3B,EAUf,CAMQ,eAAA8zB,CAAgBd,GACpB,MAAMlZ,EAAU7gF,EAAKuH,KAAKwyF,EAAS,QACnC,OAAK/7F,EAAG8wE,WAAW+R,IAAa7iF,EAAGI,SAASyiF,GAASr9E,cAG9CxF,EAAGM,YAAYuiF,GACjBx5E,OAAO0/D,GAAQA,EAAKztD,cAAc3W,SAAS,QAC3CzB,IAAI6lE,GAAQ/mE,EAAKuH,KAAKs5E,EAAS9Z,IAJzB,EAKf,CAEQ,gBAAAw8B,CAAiBD,GACrB,MAAM/vB,EAAQ+vB,EAAKhqF,cACnB,IAAKi6D,EAAM5wE,SAAS,QAAS,OAAO,EACpC,GAAqB,IAAjB4wE,EAAM5nE,OAAc,OAAO,EAC/B,MAAMiI,EAAS2/D,EAAM5jD,OAAO4jD,EAAM5nE,OAAS,GAC3C,MAAkB,MAAXiI,GAA6B,MAAXA,CAC7B,CAMc,iBAAA+oF,CACV5C,EACArW,EACA8Y,EACAN,G,0DAEA,MACMsH,GADS7iB,EAAOmT,UAAUC,iBAAiB,WACnBp4E,IAAY,kBAAoB,wDAAwDrD,QAAQ,MAAO,IACrI,IAAKkrF,EAID,OAHA7iB,EAAOznE,OAAOk7E,iBACV,2GAEG,EAGX,MAAMqP,GAAoB,EAAA5hB,WAAW6hB,kBAAoB,EAAA7hB,WAAW8hB,mBAAqB,IAAIxvF,OAC7F,IAAKsvF,EAID,OAHA9iB,EAAOznE,OAAOk7E,iBACV,uGAEG,EAIX,MAAMwP,EAAgBH,EAAiBpiF,WAAW,KAAOoiF,EAAmB,IAAIA,IAE1EI,EAAc9gG,KAAK+gG,mBACzB,IAAKD,EAED,OADAljB,EAAOznE,OAAOk7E,iBAAiB,4CAA4CvlE,EAAGS,cAAc1wB,QAAQwjG,UAC7F,EAUX,GAFAlG,EAASC,OAAO,CAAE5hF,QAAS,4BAA4BqpF,iBAC3B7gG,KAAKghG,0BAA0BH,IAOvD,OALAjjB,EAAOznE,OAAOk7E,iBACV,kBAAkBwP,wNAIf,EAGX,MAAMI,EAASrjB,EAAOC,IAAI7Z,KAAKgzB,GACzBkK,EAAWjmG,EAAGkmG,YAAYlkG,EAAKuH,KAAKsnB,EAAGs1E,SAAU,uBAEvD,IAEIphG,KAAKqhG,kBAAkBrK,EAASkK,EAAUzH,GAG1CN,EAASC,OAAO,CAAE5hF,QAAS,yBAC3B,MAAM8pF,EAAUrkG,EAAKuH,KAAK08F,EAAU,yBAC9BlhG,KAAKuhG,eAAeL,EAAUI,GACpC,MAAME,QAAoBxhG,KAAKyhG,WAAWH,GAEpCI,EAAW,CACbC,cAAe,EACfd,gBACAt0E,SAAUu0E,EACVngB,eACA8Y,SACA+H,YAAa,UAAUA,IACvBI,iBAAkB,EAAA9iB,WAAWhc,SAIjCq2B,EAASC,OAAO,CAAE5hF,QAAS,oCAC3B,MAAMqqF,EAAO,IAAIC,SACjBD,EAAKnzF,OAAO,WAAY6I,KAAKhO,UAAUm4F,IACvC,MAAMK,EAAW9mG,EAAG2Z,aAAa0sF,GACjCO,EAAKnzF,OAAO,UAAW,IAAIszF,KAAK,CAACD,GAAW,CAAE72F,KAAM,qBAAuB,kBAE3E,MAAM+2F,QAAiBC,MAAM,GAAGzB,UAAuB,CAAE/3F,OAAQ,OAAQy4B,KAAM0gE,IAC/E,IAAKI,EAASzI,GAAI,CACd,MAAMr4D,QAAa8gE,EAASnxD,OAE5B,OADA8sC,EAAOznE,OAAOk7E,iBAAiB,qCAAqC4Q,EAASE,UAAUhhE,MAChF,CACX,CACA,MAAMihE,QAAkBH,EAASpjB,OAOjC,IAAIwjB,EAAcD,EAAUC,YAC5B,IAAKD,EAAUE,OAAQ,CAInB,MAAMC,EAAU,eAAezB,OACzB0B,EAAYvqF,KAAKsiC,MACvB4+C,EAASC,OAAO,CAAE5hF,QAAS+qF,IAC3B,MAAME,EAAOC,YAAY,KACrB,MAAMC,EAAM7yF,KAAK0hC,OAAOv5B,KAAKsiC,MAAQioD,GAAa,KAC5ChsF,EAAI1G,KAAK0hC,MAAMmxD,EAAM,IACrBjkE,EAAIikE,EAAM,GAChBxJ,EAASC,OAAO,CAAE5hF,QAAS,GAAG+qF,KAAW/rF,KAAKkoB,EAAEX,WAAW1K,SAAS,EAAG,UACxE,KACH,IACI,MAAMuvE,QAAe5iG,KAAK6iG,aAAapC,EAAe2B,EAAUU,MAAO9L,GACvE,GAAsB,SAAlB4L,EAAOT,SAAsBS,EAAOP,YACpC,OAAO,EAEXA,EAAcO,EAAOP,WACzB,C,QACIU,cAAcN,EAClB,CACJ,CAGAtJ,EAASC,OAAO,CAAE5hF,QAAS,2BAC3B,MAAMyiF,EAAUj6F,KAAKk6F,kBAAkBvZ,GACjC3hE,EAAO/hB,EAAKuH,KAAKwyF,EAASiD,GAGhC,aAFMj6F,KAAKgjG,eAAeX,EAAcrjF,GACxC,EAAAq5E,QAAQC,WAAW,yBAAyBt5E,IAAQ,EAAAulE,YAAYgU,eAAgB0I,IACzE,CAEX,CAAE,MAAOl5F,GAGL,OAFA,EAAAswF,QAAQC,WAAW,yBAAqC,QAAZ,EAAAvwF,aAAG,EAAHA,EAAKyP,eAAO,QAAIzP,IAAO,EAAAw8E,YAAYgU,eAAgB0I,GAC/FrjB,EAAOznE,OAAOk7E,iBAAiB,yBAAqC,QAAZ,EAAAtpF,aAAG,EAAHA,EAAKyP,eAAO,QAAIzP,MACjE,CACX,C,QACI,IAAM9M,EAAGu8F,OAAO0J,EAAU,CAAExiF,WAAW,EAAM+4E,OAAO,GAAS,CAAE,MAAsB,GAAC,CAC1F,CACJ,E,CAEc,yBAAAuJ,CAA0BiC,G,kDAIpC,MAAMnuE,EAAM,oEAAoEouE,mBAAmBD,KAC7F/yE,QAAYgyE,MAAMptE,EAAK,CAAE8D,QAAS,CAAE,OAAU,iCACpD,GAAmB,MAAf1I,EAAIiyE,OAAgB,OAAO,EAC/B,IAAKjyE,EAAIspE,GAAI,MAAM,IAAIv9F,MAAM,kCAAkCi0B,EAAIiyE,UACnE,OAAO,CACX,E,CAEQ,gBAAApB,GACJ,OAAQj1E,EAAGS,YACP,IAAK,QAAU,MAAO,UACtB,IAAK,SAAU,MAAwB,UAAjB1wB,QAAQwjG,KAAmB,cAAgB,eACjE,IAAK,QAAU,OAAOr/F,KAAKmjG,wBAC3B,QAAe,OAEvB,CAEQ,qBAAAA,GACJ,IACI,MACM3sF,EADYvb,EAAG2Z,aAAa,kBAAmB,QACjCY,MAAM,8BAC1B,GAAIgB,EAAG,CACH,GAAa,UAATA,EAAE,GAAgB,MAAO,cAC7B,GAAa,UAATA,EAAE,GAAgB,MAAO,aACjC,CACJ,CAAE,MAA0B,GAAC,CAC7B,MAAO,cACX,CAEQ,iBAAA6qF,CAAkBrK,EAAiBkK,EAAkBzH,GACzD,MAAM2J,EAAO3J,EAAS,CAAC,MAAQ,CAAC,MAAO,MACvC,IAAK,MAAM5tD,KAAKu3D,EAAM,CAClB,MAAMC,EAAMpmG,EAAKuH,KAAKwyF,EAASnrD,GAC/B,IAAK5wC,EAAG8wE,WAAWs3B,GAAM,SACzB,MAAMC,EAAMrmG,EAAKuH,KAAK08F,EAAUr1D,GAChC5wC,EAAGsZ,UAAU+uF,EAAK,CAAE5kF,WAAW,IAC/B,IAAK,MAAM3K,KAAK9Y,EAAGM,YAAY8nG,GAAM,CAIjC,MAAM7yB,EAAQz8D,EAAEwC,eACXi6D,EAAM5wE,SAAS,SAAY4wE,EAAM5wE,SAAS,QAC/C3E,EAAGy8F,aAAaz6F,EAAKuH,KAAK6+F,EAAKtvF,GAAI9W,EAAKuH,KAAK8+F,EAAKvvF,GACtD,CACJ,CAEA9Y,EAAG0Z,cACC1X,EAAKuH,KAAK08F,EAAU,YACpB,uNAMA,CAAE7uE,SAAU,QAEpB,CAEQ,cAAAkvE,CAAegC,EAAgBC,GACnC,MAAMlJ,EAAK,EAAQ,MACnB,OAAO,IAAIxxF,QAAQ,CAACC,EAASE,KAEzB,MAAM2C,EAAQ0uF,EAAGmJ,MAAM,MAAO,CAAC,OAAQD,EAAS,KAAMD,EAAQ,KAAM,CAAEnmF,MAAO,YAC7ExR,EAAMtI,GAAG,QAAS2F,GAClB2C,EAAMtI,GAAG,OAAS4E,GAA0B,IAATA,EAAaa,IAAYE,EAAO,IAAIhN,MAAM,cAAciM,QAEnG,CAEQ,UAAAu5F,CAAW95B,GACf,MAAM+7B,EAAS,EAAQ,MACvB,OAAO,IAAI56F,QAAQ,CAACC,EAASE,KACzB,MAAM0iC,EAAI+3D,EAAOC,WAAW,UACtB7nF,EAAS7gB,EAAG+2B,iBAAiB21C,GACnC7rD,EAAOxY,GAAG,OAASq4B,GAA2BgQ,EAAEi4D,OAAOjoE,IACvD7f,EAAOxY,GAAG,MAAO,IAAMyF,EAAQ4iC,EAAEk4D,OAAO,SACxC/nF,EAAOxY,GAAG,QAAS2F,IAE3B,CAEc,YAAA45F,CACVpC,EACAqC,EACA9L,G,0DAEA,MAAMiK,EAASrjB,EAAOC,IAAI7Z,KAAKgzB,GAKzB8M,EAAW7rF,KAAKsiC,MAAQ,KAC9B,IAAI6yB,EAAQ,IACZ,KAAOn1D,KAAKsiC,MAAQupD,GAAU,OACpB,IAAIh7F,QAAQiN,GAAKlN,WAAWkN,EAAGq3D,IACrCA,EAAQt9D,KAAKC,IAAIq9D,EAAQ,IAAM,KAE/B,MAAMl9C,QAAYgyE,MAAM,GAAGzB,UAAsByC,mBAAmBJ,MACpE,IAAK5yE,EAAIspE,GAAI,SACb,MAAMuK,QAAY7zE,EAAI2uD,OAUtB,GAAmB,SAAfklB,EAAI5B,QAAoC,WAAf4B,EAAI5B,OAAqB,CAClD,GAAmB,WAAf4B,EAAI5B,OAAqB,CACzB,GAAc,QAAV,EAAA4B,EAAIC,cAAM,eAAEp7F,OACZ,IAAK,MAAMo0B,KAAK+mE,EAAIC,OAAQ,CACxB,MAAM/G,EAAQjgE,EAAEinE,cACV,GAAGjnE,EAAEinE,iBAAiBjnE,EAAEknE,gBACxB,GAAGlnE,EAAEgnC,QAAQhnC,EAAEwoC,OAAOxoC,EAAEmnE,OAAS,IAAMnnE,EAAEmnE,OAAS,KACxD,EAAA9L,QAAQC,WAAW,GAAGt7D,EAAEonE,YAAYnH,MAAUjgE,EAAExlB,UAAW,EAAA+sE,YAAYgU,eAAgB0I,EAC3F,CAEA8C,EAAIM,aACJ,EAAAhM,QAAQC,WAAW,cAAcyL,EAAIM,cAAe,EAAA9f,YAAYgU,eAAgB0I,GAEpFrjB,EAAOznE,OAAOk7E,kBACA,QAAV,EAAA0S,EAAIC,cAAM,eAAEp7F,QACN,6BAA6Bm7F,EAAIC,OAAOp7F,+BACxC,uDAEd,CACA,OAAOm7F,CACX,CACJ,CAEA,OADAnmB,EAAOznE,OAAOk7E,iBAAiB,4BACxB,CAAE8Q,OAAQ,UACrB,E,CAEc,cAAAa,CAAeluE,EAAa9V,G,kDACtC,MAAMkR,QAAYgyE,MAAMptE,GACxB,IAAK5E,EAAIspE,KAAOtpE,EAAIiR,KAChB,MAAM,IAAIllC,MAAM,YAAY64B,QAAU5E,EAAIiyE,UAE9C,MAAM9vF,EAAMR,OAAOM,WAAW+d,EAAIo0E,eAClCrpG,EAAGsZ,UAAUtX,EAAKuhB,QAAQQ,GAAO,CAAEN,WAAW,IAC9CzjB,EAAG0Z,cAAcqK,EAAM3M,EAC3B,E,EAp+CJ,c,6HCjCA,0BACA,0BACA,0BACA,UACA,UACA,UAEA,IAAYkyF,EAEKxkB,GAFjB,SAAYwkB,GAAe,yBAAS,qBAAO,+BAAY,kBAAM,CAA7D,CAAYA,IAAY,eAAZA,EAAY,KAExB,SAAiBxkB,GA8Gb,SAAgBiB,EAAe2E,GAC3B,MAAM6e,EAAwB,IAAI16F,MAClC,GAAIi2E,EAAS5gE,MAAMwmE,EAAO1G,QAAS,CAC/B,MAAMwlB,EAAYxpG,EAAGM,YAAYoqF,EAAO1G,QACxC,IAAK,MAAM5rE,KAAYoxF,EACnB,IAAKpxF,EAASiL,WAAW,KAAM,CAC3B,MAAM/Z,EAAWtH,EAAKuH,KAAKmhF,EAAO1G,OAAO5rE,GACzC,IACkBpY,EAAGI,SAASkJ,GAChB9D,eACN+jG,EAAQ7iG,KAAKi8E,EAAOC,IAAI7Z,KAAKz/D,GACrC,CAAE,MAAOwD,GACLiD,QAAQzL,MAAMwI,EAClB,CACJ,CAER,CACA,OAAOy8F,CACX,CAyDA,SAAgB5hB,EAAQqH,GACpB,IAEI,OADAhvF,EAAGsZ,UAAU01E,IACN,CACX,CAAE,MAAOliF,GACL61E,EAAOznE,OAAOoqE,uBAAuB,yBAA2B0J,EAAU,KAAOliF,EAAIyP,QACzF,CACA,OAAO,CACX,CAmCA,SAAgBq4E,EAAQloB,GACpB,IAEI,OADA1sE,EAAGypG,WAAW/8B,IACP,CACX,CAAE,MAAO5/D,GACL61E,EAAOznE,OAAOoqE,uBAAuB,uBAAyB5Y,EAAW,KAAO5/D,EAAIyP,QACxF,CACA,OAAO,CACX,CA1OgB,EAAAmtF,cAAhB,SAA8BC,EAAkBC,GAC5C,MAAM7xF,EAAU,EAAQ,MACxB,SAAK/X,EAAG8wE,WAAW84B,KACVjiB,EAAQiiB,KAIjB7xF,EAAQ4xF,EAASC,EAAQ,SAAS98F,GAC9B,GAAIA,EACA,OAAO,CACf,GAEO,GACX,EAEgB,EAAA+8F,SAAhB,SAAyBF,EAAkBC,GACvC,IAAK5pG,EAAG8wE,WAAW64B,GAEf,OADAhnB,EAAOznE,OAAOoqE,uBAAuB,iCAAmCqkB,IACjE,EAEX,IAEI,GADkB3pG,EAAGI,SAASupG,GAChBjkG,SAEV,OADA1F,EAAGy8F,aAAakN,EAASC,IAClB,CAEf,CAAE,MAAO98F,GACL61E,EAAOznE,OAAOoqE,uBAAuB,uBAAyBqkB,EAAW,OAASC,EAAS,MAAQ98F,EAAIyP,QAC3G,CACA,OAAO,CACX,EAEgB,EAAAutF,UAAhB,SAA0Bp9B,EAAkBxiE,GACxC,IAEI,OADAlK,EAAG4Z,UAAU8yD,EAASxiE,IACf,CACX,CAAE,MAAO4C,GACL61E,EAAOznE,OAAOoqE,uBAAuB,sBAAwB5Y,EAAW,MAAQ5/D,EAAIyP,QACxF,CACA,OAAO,CACX,EAEgB,EAAAwtF,oBAAhB,SAAoCC,EAAkBC,GAClD,OAA6E,GAAtEjoG,EAAKuhB,QAAQymF,EAAKhmB,QAAQkmB,cAAcloG,EAAKuhB,QAAQ0mF,EAAKjmB,QACrE,EAEgB,EAAA9/D,MAAhB,SAAsBliB,GAClB,GAAIA,EAAK2L,QAAU,EACf,OAAO,EACX,IAEI,GADc3N,EAAGI,SAAS4B,GAChBwD,cACN,OAAO,CACf,CAAE,MAAOsH,GAET,CACA,OAAO,CACX,EAEgB,EAAAq+D,OAAhB,SAAuBg/B,EAAiBC,GACpC,IAEI,OADApqG,EAAGqqG,WAAWF,EAAQC,IACf,CACX,CAAE,MAAOt9F,GACL61E,EAAOznE,OAAOoqE,uBAAuB,yBAA2B6kB,EAAU,OAASC,EAAU,MAAQt9F,EAAIyP,QAC7G,CACA,OAAO,CACX,EAEgB,EAAA+tF,WAAhB,SAAgBA,EAAWtb,EAAqBub,GAC5C,MAAMC,EAAYxoG,EAAKuhB,QAAQyrE,EAAQhL,QACvC,GAA4D,GAAxDhiF,EAAKuW,SAASiyF,GAAWN,cAAcK,GACvC,OAAO5nB,EAAOC,IAAI7Z,KAAKyhC,GAG3B,GAAIA,IAAaA,aAAS,EAATA,EAAW78F,QAAS,EAAG,CACpC,MAAM88F,EAAQH,EAAW3nB,EAAOC,IAAI7Z,KAAKyhC,GAAYD,GACrD,GAAIE,EAAMzmB,OAAOr2E,OAAS,EACtB,OAAO88F,CACf,CAEA,MAAMtC,EAAOpiB,EAAeiJ,GAC5B,IAAK,MAAMxrE,KAAO2kF,EACd,GAA6D,GAAzDnmG,EAAKuW,SAASiL,EAAIwgE,QAAQkmB,cAAcK,GACxC,OAAO/mF,EAIf,OAAOm/D,EAAOC,IAAI7Z,KAAK,GAC3B,EAEgB,EAAA2hC,oBAAhB,SAAoC1b,GAChC,IAAI2b,EAAY,EAChB,MAAMxC,EAAOpiB,EAAeiJ,GAC5B,IAAK,MAAMxrE,KAAO2kF,EAAM,CACpB,MAAMyC,EAAU7kB,EAAeviE,GAC/B,IAAK,MAAMwmE,KAAU4gB,EACjB,GAAuF,GAAnF5oG,EAAKuW,SAASyxE,EAAOhG,QAAQkmB,cAAc,EAAArmB,WAAW8H,0BAAgC,CACtF,MAAMkf,EAAW7oG,EAAKuH,KAAKygF,EAAOhG,OAAO,EAAAH,WAAWsE,wBAChDnoF,EAAG8wE,WAAW+5B,IACdF,GACR,CAER,CAEA,OAAOA,CACX,EAEgB,EAAA5kB,eAAc,EAoBd,EAAAsI,kBAAhB,SAAkC3D,GAC9B,MAAMogB,EAAej8F,QACrB,IAAK7O,EAAG8wE,WAAW4Z,EAAO1G,QAAS,OAAO8mB,EAC1C,MAAMtB,EAAYxpG,EAAGM,YAAYoqF,EAAO1G,QACxC,IAAK,MAAM5rE,KAAYoxF,EACnB,IAAKpxF,EAASiL,WAAW,KAAM,CAC3B,MAAM/Z,EAAWtH,EAAKuH,KAAKmhF,EAAO1G,OAAO5rE,GACzC,IACI,MACMnI,EADQjQ,EAAGI,SAASkJ,GACP9D,cAAgBm9E,EAAO2L,SAASC,UAAY5L,EAAO2L,SAASK,KAC/Emc,EAAapkG,KAAK,CAAC49E,IAAK3B,EAAOC,IAAI7Z,KAAKz/D,GAAW2G,KAAMA,EAAMqzE,SAAS,GAC5E,CAAE,MAAOx2E,GACLiD,QAAQzL,MAAMwI,EAClB,CACJ,CAEJ,OAAOg+F,CACX,EAEgB,EAAAC,UAAhB,SAAgBA,EAAUvnF,GACtB,MAAM5K,EAAQ5Y,EAAGM,YAAYkjB,EAAIwgE,OAAQ,CAAEnhF,eAAe,IAC1D,IAAIi2E,EAAQ,EACZ,IAAK,MAAM/P,KAAQnwD,EACXmwD,EAAKrjE,SACLozE,IAEK/P,EAAKvjE,gBAAkBs/E,EAASkmB,eAAejiC,EAAK3lE,QACzD01E,GAASiyB,EAAUpoB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKia,EAAIwgE,OAAQjb,EAAK3lE,SAGtE,OAAO01E,CACX,EAEgB,EAAA6R,SAAhB,SAAgBA,EAASD,EAAoBrhF,EAAiB,GAAI4hG,EAAsB3B,EAAa4B,MAAOC,GAAiB,GACzH,MAAMC,EAAyB,IAAIv8F,MACnC,IAAK7O,EAAG8wE,WAAW4Z,EAAO1G,QAAS,OAAOonB,EAC1C,MAAM5B,EAAYxpG,EAAGM,YAAYoqF,EAAO1G,QACxC,IAAK,MAAM5rE,KAAYoxF,EACnB,IAAKpxF,EAASiL,WAAW,KAAM,CAC3B,MAAMqpD,EAAW1qE,EAAKuH,KAAKmhF,EAAO1G,OAAO5rE,GACnC4jF,EAAMh6F,EAAKuqC,QAAQmgC,GACnB5oE,EAAQ9D,EAAGI,SAASssE,GAG1B,IAFKu+B,GAAW3B,EAAa+B,MAAQvnG,EAAM0B,eAAmC,GAAjB6D,EAAOsE,QAAetE,EAAOwa,SAASm4E,KAC/FoP,EAAS1kG,KAAKi8E,EAAOC,IAAI7Z,KAAK2D,IAC9B5oE,EAAM0B,eAAiB2lG,EAAS,CAChC,MAAMG,EAAW3gB,EAAShI,EAAOC,IAAI7Z,KAAK3wD,GAAU/O,EAAO4hG,EAAQE,GACnE,IAAK,MAAMx6F,KAAS26F,EAChBF,EAAS1kG,KAAKiK,EAEtB,CACJ,CAEJ,OAAOy6F,CACX,EAEgB,EAAAzjB,QAAO,EAUP,EAAAhvE,UAAhB,SAA0B+zD,EAAkBsb,GACxC,MAAMxkE,EAAMxhB,EAAKuhB,QAAQmpD,GACzB,IAAK1sE,EAAG8wE,WAAWttD,GACf,IACIxjB,EAAGsZ,UAAUkK,EACjB,CAAE,MAAO1W,GAEL,OADA61E,EAAOznE,OAAOoqE,uBAAuB,4BAA8B9hE,EAAM,KAAO1W,EAAIyP,UAC7E,CACX,CAEJ,IAEI,OADAvc,EAAG0Z,cAAcgzD,EAASsb,EAAQ,UAC3B,CACX,CAAE,MAAOl7E,GACL61E,EAAOznE,OAAOoqE,uBAAuB,sBAAwB5Y,EAAW,KAAO5/D,EAAIyP,QACvF,CACA,OAAO,CACX,EAEgB,EAAAgvF,WAAhB,SAA2B7+B,GACvB,IACI,MAAM5oE,EAAQ9D,EAAGI,SAASssE,GAC1B,GAAI5oE,EAAM0B,cACN,OAAOknE,EACN,GAAI5oE,EAAM4B,SACX,OAAO1D,EAAKuhB,QAAQmpD,EAE5B,CAAE,MAAO5/D,GACL61E,EAAOznE,OAAOoqE,uBAAuB,+BAAiC5Y,EAAW,KAAO5/D,EAAIyP,QAChG,CACA,MAAO,EACX,EAEgB,EAAAq4E,QAAO,EAUP,EAAA4W,OAAhB,SAAuBxc,GACnB,IAAKhvF,EAAG8wE,WAAWke,IAAYA,EAAQrhF,QAAU,EAC7C,OAAO,EACX,IAEI,OADA,IAAA89F,YAAWzc,EAAS,CAAEwN,OAAO,KACtB,CACX,CAAE,MAAO1vF,GACL61E,EAAOznE,OAAOoqE,uBAAuB,yBAA2B0J,EAAU,KAAOliF,EAAIyP,QACzF,CACA,OAAO,CACX,EAEgB,EAAAmvF,YAAhB,SAA4BhhB,EAAoBrhF,EAAiB,IAC7D,MAAM+hG,EAAyB,IAAIv8F,MAC7B26F,EAAYxpG,EAAGM,YAAYoqF,EAAO1G,QACxC,IAAK,MAAM5rE,KAAYoxF,EACnB,IAAKpxF,EAASiL,WAAW,KAAM,CAC3B,MAAMqpD,EAAW1qE,EAAKuH,KAAKmhF,EAAO1G,OAAO5rE,GACnC4jF,EAAMh6F,EAAKuqC,QAAQmgC,GACX1sE,EAAGI,SAASssE,GACflnE,eAAmC,GAAjB6D,EAAOsE,SAAetE,EAAOwa,SAASm4E,IAC/DpH,EAAQloB,EAChB,CAEJ,OAAO0+B,CACX,EAEgB,EAAAO,SAAhB,SAAyB3c,GACrB,IAAKhvF,EAAG8wE,WAAWke,IAAYA,EAAQrhF,QAAU,EAC7C,OAAO,EACX,IAGI,OAFA,IAAA89F,YAAWzc,EAAS,CAAEwN,OAAO,IAC7Bx8F,EAAGsZ,UAAU01E,IACN,CACX,CAAE,MAAOliF,GACL61E,EAAOznE,OAAOoqE,uBAAuB,yBAA2B0J,EAAU,KAAOliF,EAAIyP,QACzF,CACA,OAAO,CACX,EAEgB,EAAAiyE,oBAAhB,SAAoChrE,GAChC,MAAMu/D,EAAY,EAAAc,WAAW6D,SAAS0D,aAAa5nE,EAAI,EAAA6+D,UAAUuJ,QACjE,GAAI5rF,EAAG8wE,WAAWiS,EAAUiB,SAAWc,EAAS8mB,kBAAkB7oB,GAC9D,OAAO,EACX,MAAM8oB,EAAU,EAAAhoB,WAAW6D,SAAS0D,aAAa5nE,EAAI,EAAA6+D,UAAUmJ,MAC/D,GAAIxrF,EAAG8wE,WAAW+6B,EAAQ7nB,SAAWc,EAAS8mB,kBAAkBC,GAC5D,OAAO,EACX,MAAM/oB,EAAW,EAAAe,WAAW6D,SAAS0D,aAAa5nE,EAAI,EAAA6+D,UAAUiJ,OAChE,QAAItrF,EAAG8wE,WAAWgS,EAASkB,SAChBc,EAASgK,WAAWhM,GAAS,EAG/C,EAEmB,EAAA8oB,kBAAhB,SAAkCpoF,GAE9B,QADkBxjB,EAAGM,YAAYkjB,EAAIwgE,QACpBr2E,MACrB,EAEgB,EAAAmhF,WAAhB,SAA2BtrE,EAAiB62D,GACxC,IAAIyK,EAAS5gE,MAAMV,EAAIwgE,QAiBnB,OAAOc,EAASgnB,WAAWtoF,EAAIwgE,QAjBH,CAC5B,MAAM/gF,EAAU6hF,EAASuJ,kBAAkB7qE,GAE3C,IAAK,MAAM9f,KAAST,EAChB,GAAIS,EAAMuM,MAAQ0yE,EAAO2L,SAASC,UAAW,CACzC,GAAI,EAAA1K,WAAWsJ,oBAAoBzpF,EAAM4gF,MAAQQ,EAAS0J,oBAAoB9qF,EAAM4gF,KAChF,OAAO,EACX,GAAIQ,EAASkmB,eAAetnG,EAAM4gF,IAAIN,QAClC,OAAO,EAGP,GADYc,EAASgK,WAAWprF,EAAM4gF,KAAI,GAEtC,OAAO,CAEnB,CAER,CAIN,OAAO,CACR,EAEmB,EAAAmK,QAAhB,SAAwBjrE,EAAiBpL,GACrC,GAAI0sE,EAAS5gE,MAAMV,EAAIwgE,QAAS,CAC5B,MAAMprE,EAAQ5Y,EAAGM,YAAYkjB,EAAIwgE,OAAQ,CAAEnhF,eAAe,IAC1D,IAAK,MAAMkmE,KAAQnwD,EACf,GAAImwD,EAAK3lE,MAAQgV,EACb,OAAO,CAEnB,CAEN,OAAO,CACR,EAEmB,EAAA2zF,SAAhB,SAAyBvoF,GACrB,GAAIshE,EAAS5gE,MAAMV,EAAIwgE,QAAS,CAC5B,MAAMprE,EAAQ5Y,EAAGM,YAAYkjB,EAAIwgE,OAAQ,CAAEnhF,eAAe,IAC1D,GAAI+V,GAASA,EAAMjL,OAAS,EACxB,OAAO,CACf,CAEN,OAAO,CACR,EAEmB,EAAAq+F,QAAhB,SAAwBxoF,GACpB,GAAIshE,EAAS5gE,MAAMV,EAAIwgE,QAAS,CAC5B,MAAM/gF,EAAU6hF,EAASuJ,kBAAkB7qE,GAE3C,IAAK,MAAM9f,KAAST,EAChB,GAAIS,EAAMuM,MAAQ0yE,EAAO2L,SAASC,YAAc,EAAA1K,WAAWsJ,oBAAoBzpF,EAAM4gF,KACjF,OAAO,CAGnB,CACN,OAAO,CACR,EAEmB,EAAAyI,mBAAhB,SAAmCzI,GAC/B,MAAMh1E,EAAStN,EAAKuhB,QAAQ+gE,EAAIN,QAC1BzrE,EAAWvW,EAAKuW,SAAS+rE,EAAIN,QACnC,GAAI10E,EAAO3B,OAAQ,CACf,MAAM1K,EAAU6hF,EAASuJ,kBAAkB1L,EAAOC,IAAI7Z,KAAKz5D,IAE3D,IAAK,MAAM5L,KAAST,EAChB,GAAIS,EAAMuM,MAAQ0yE,EAAO2L,SAASC,WAC3BvsF,EAAKuW,SAAS7U,EAAM4gF,IAAIN,SAAWzrE,IAClC,EAAAsrE,WAAWsJ,oBAAoBzpF,EAAM4gF,OACrC5gF,EAAM4gF,IAAIN,OAAOr/E,SAAS,EAAAk/E,WAAWgH,eACrC/F,EAASkmB,eAAetnG,EAAM4gF,IAAIN,QACtC,OAAO,CAGnB,CACN,OAAO,CACR,EAEmB,EAAAgnB,eAAhB,SAA+Bhc,GACjC,OAAOA,EAAQrqF,SAAS,EAAAk/E,WAAW4F,WACpC,EAEmB,EAAAqiB,WAAhB,SAA2Bp/B,GACvB,OAAOoY,EAAS5gE,MAAMwoD,EAAW,EAAAmX,WAAW4F,WAChD,EAEgB,EAAAwiB,WAAhB,SAA2BC,EAAkBC,GACzC,IAAKnsG,EAAG8wE,WAAWq7B,GACf,OAAO,EACX,IAGI,OAFqBnsG,EAAG2Z,aAAauyF,EAAU,WAC1BlsG,EAAG2Z,aAAawyF,EAAQ,QAIjD,CAAE,MAAO7nG,GAEL,OADAyL,QAAQzL,MAAM,uBAAwBA,IAC/B,CACX,CACJ,CACH,CA7YD,CAAiBwgF,IAAQ,WAARA,EAAQ,I,kNCTzB,0BACA,0BACA,0BACA,UACA,UACA,UACA,UAEA,IAAYsnB,EACAjlB,EACAklB,EACAC,EACArlB,EACAslB,GALZ,SAAYH,GAAkB,yBAAS,yBAAS,kBAAM,CAAtD,CAAYA,IAAe,kBAAfA,EAAe,KAC3B,SAAYjlB,GAAgB,yBAAS,mBAAM,uBAAQ,uBAAQ,qBAAO,qBAAO,yBAAS,uBAAQ,uBAAQ,yBAAS,8BAAW,0BAAS,mBAAM,CAArI,CAAYA,IAAa,gBAAbA,EAAa,KACzB,SAAYklB,GAAe,yBAAS,yBAAS,uBAAQ,kBAAM,CAA3D,CAAYA,IAAY,eAAZA,EAAY,KACxB,SAAYC,GAAa,yBAAS,mBAAM,4BAAW,CAAnD,CAAYA,IAAU,aAAVA,EAAU,KACtB,SAAYrlB,GAAgB,yBAAS,mBAAM,2BAAU,eAAI,uBAAQ,4BAAW,CAA5E,CAAYA,IAAa,gBAAbA,EAAa,KACzB,SAAYslB,GAAa,yBAAS,8BAAY,CAA9C,CAAYA,IAAU,aAAVA,EAAU,KAgBtB,gBAkBC,WAAA1nG,GAhBU,KAAA2nG,aAAuB,EAEvB,KAAAC,UAAY,CAAE,UAAW,UAAW,QACpC,KAAAC,OAAS,CAAE,UAAW,OAAQ,SAAU,SAAU,QAAS,QAAS,UAAW,SAAU,SAAU,UAAW,YAAa,UAAW,QACtI,KAAAC,aAAe,CAAE,UAAW,UAAW,SAAU,QAEjD,KAAAC,YAA+BR,EAAgBpX,QAC/C,KAAA6X,SAAqB,IAAIh+F,MACzB,KAAAi+F,aAAgC,IAAIj+F,MACpC,KAAA00E,aAAuB,EACvB,KAAAC,QAAkB,EAClB,KAAAupB,eAAiB,CAAE,UAAW,OAAQ,aAGtC,KAAAC,OAAiB,CAGxB,CAEO,YAAAlmB,CAAammB,EAAa,KACT,GAAhBloG,KAAKy+E,UACL,EAAA4Z,QAAQ8P,WAAU,GAClBnoG,KAAKw+E,aAAe,EACpB,EAAAM,WAAWwF,aAAa,8BAA8B,EAAAC,YAAY6jB,SAClEpoG,KAAKy+E,SAAWikB,YAAY1iG,KAAKqoG,UAAUH,GAEnD,CAEO,OAAAI,GACH,EAAAxpB,WAAWgD,QAAQ2lB,aAAc,CACrC,CAEO,gBAAAxlB,CAAiBsmB,EAAkBC,EAAkBC,EAA4BC,EAA0BC,EAAmB,GAAIC,EAAmB,IACxJ,IAAI19F,EAAmBq8F,EAAWtX,QAMlC,GALI,EAAAlQ,SAAS5gE,MAAMopF,EAAKtpB,QACpB/zE,EAAOq8F,EAAWsB,UACb5tG,EAAG8wE,WAAWw8B,EAAKtpB,UACxB/zE,EAAOq8F,EAAWvd,MAElB9+E,GAAQq8F,EAAWsB,WAAcH,GAAatmB,EAAc8M,QAAUwZ,GAAatmB,EAAc0mB,OAASJ,GAAatmB,EAAc2mB,OAiDrI/oG,KAAK8nG,SAASnmG,KAAK,CAACqnG,SAAUT,EAAMU,SAAUT,EAAME,UAAWA,EAAWvG,OAAQmF,EAAarX,QAAS/kF,KAAMA,EAAMg+F,OAAQ1B,EAAWvX,QAAS0Y,WAAYA,EAAYC,WAAYA,EAAYH,UAAWA,EAAWU,SAAS,QAjDjF,CAC9I,MAAMt1F,EAAQ,EAAAksE,SAAS6F,SAAS2iB,GAChC,GAAIG,GAAatmB,EAAc8M,OAC3B,GAAIyZ,EAAW//F,QAAUggG,EAAWhgG,QAChC,IAAK,MAAMo7D,KAAQnwD,EACf,GAAI80F,EAAW//F,QAAUggG,EAAWhgG,SAC3Bo7D,EAAKib,OAAOr/E,SAASgpG,IAAe5kC,EAAKib,OAAOr/E,SAAS+oG,GAAa,CACvE,MAAMS,EAAKxrB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK+jG,EAAKtpB,OAAOhiF,EAAKuW,SAASwwD,EAAKib,UAC9DoqB,EAAKzrB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKgkG,EAAKvpB,OAAOhiF,EAAKyM,MAAMs6D,EAAKib,QAAQ5gF,KAAK,IAAIuqG,IAClF5oG,KAAK8nG,SAASnmG,KAAK,CAACqnG,SAAUI,EAAIH,SAAUI,EAAIX,UAAWtmB,EAAc8M,OAAQiT,OAAQmF,EAAarX,QAAS/kF,KAAMq8F,EAAWsB,UAAWK,OAAQ1B,EAAWvX,QAAS0Y,WAAY,GAAIC,WAAY,GAAIH,UAAWA,EAAWU,SAAS,GAC1O,OAIRnpG,KAAK8nG,SAASnmG,KAAK,CAACqnG,SAAUT,EAAMU,SAAUT,EAAME,UAAWtmB,EAAc8M,OAAQiT,OAAQmF,EAAarX,QAAS/kF,KAAMq8F,EAAWsB,UAAWK,OAAQ1B,EAAWvX,QAAS0Y,WAAY,GAAIC,WAAY,GAAIH,UAAWA,EAAWU,SAAS,SAE3O,GAAIT,GAAatmB,EAAc0mB,MAAO,CACzC,MAAMQ,GAAuBX,EACvBY,EAAUz5F,KAAKm2C,KAAKpyC,EAAMjL,OAAS0gG,GACnCE,EAAqBD,EAAQxrE,WAAWn1B,OACxC4K,EAAWvW,EAAKuW,SAAS+0F,EAAKtpB,QACpC,IAAI+mB,EAAY,EAEhB,IAAK,IAAIt2F,EAAI,EAAGA,EAAI65F,EAAS75F,IAAK,CAC9B,MAAM+5F,EAASxsG,EAAKuH,KAAK+jG,EAAKtpB,OAAOzrE,EAAW,IAAMxT,KAAK0pG,QAAQh6F,EAAE85F,IACrExpG,KAAK8nG,SAASnmG,KAAK,CAACqnG,SAAUprB,EAAOC,IAAI7Z,KAAKylC,GAASR,SAAUT,EAAME,UAAWtmB,EAAcunB,MAAOxH,OAAQmF,EAAarX,QAAS/kF,KAAMq8F,EAAWsB,UAAWK,OAAQ1B,EAAWvX,QAAS0Y,WAAY,GAAIC,WAAY,GAAIH,UAAWA,EAAWU,SAAS,IAE5P,IAAK,IAAIz5F,EAAI,EAAGA,EAAI45F,KACZtD,GAAanyF,EAAMjL,QADM8G,IAAK,CAGlC,MAAMk6F,EAAU/1F,EAAMmyF,KAChB6D,EAAW5sG,EAAKuW,SAASo2F,EAAQ3qB,QACjC6qB,EAAU7sG,EAAKuH,KAAKilG,EAAOI,GACjC7pG,KAAK8nG,SAASnmG,KAAK,CAACqnG,SAAUY,EAASX,SAAUrrB,EAAOC,IAAI7Z,KAAK8lC,GAAUpB,UAAWtmB,EAAc8M,OAAQiT,OAAQmF,EAAarX,QAAS/kF,KAAMq8F,EAAWvd,KAAMkf,OAAQ1B,EAAWvX,QAAS0Y,WAAY,GAAIC,WAAY,GAAIH,UAAWA,EAAWU,SAAS,GAChQ,CACJ,CACJ,MAAO,GAAIT,GAAatmB,EAAc2mB,OAAQ,CAC1C,MAAMl1F,EAAQ,EAAAksE,SAAS6F,SAAS2iB,GAChC,IAAK,MAAMvkC,KAAQnwD,EACXmwD,EAAKib,QAAUupB,EAAKvpB,OACpB,EAAAc,SAAS0mB,OAAO+B,EAAKvpB,QAEhBjb,EAAKib,OAAOr/E,SAAS+oG,IAC1B3oG,KAAK8nG,SAASnmG,KAAK,CAACqnG,SAAUhlC,EAAMilC,SAAUT,EAAME,UAAWtmB,EAAc2mB,OAAQ5G,OAAQmF,EAAarX,QAAS/kF,KAAMq8F,EAAWvd,KAAMkf,OAAQ1B,EAAWvX,QAAS0Y,WAAYA,EAAYC,WAAYA,EAAYH,UAAWA,EAAWU,SAAS,GAGjQ,CACJ,CAKA,OAAOnpG,KAAK8nG,SAAS9nG,KAAK8nG,SAASl/F,OAAS,EAC/C,CAED,OAAA8gG,CAAQv4F,EAAa44F,GACjB,MAAMC,EAAiB74F,EAAI4sB,WAC3B,IAAIksE,EAASD,EACb,MAAM/2E,EAAgB82E,EAAYC,EAAOphG,OACzC,GAAIqqB,EAAQ,EACR,IAAK,IAAIvjB,EAAI,EAAGA,EAAIujB,EAAOvjB,IACvBu6F,EAAS,IAAMA,EAGvB,OAAOA,CACX,CAEA,SAAA5B,GAE8C,GAAtC,EAAAvpB,WAAWgD,QAAQgmB,SAASl/F,SAC5B,EAAAk2E,WAAWgD,QAAQ+lB,YAAcR,EAAgB6C,MAErD,IAAIC,EAAK,EAAArrB,WAAWgD,QAAQgmB,SAAS,GACrC,MAAM9iE,EAAM,EAAA85C,WAAWgD,QAAQgmB,SAASl/F,OACxC,IAAIwhG,GAAU,EACVC,EAAQ,EACZ,IAAK,MAAM7uF,KAAK,EAAAsjE,WAAWgD,QAAQgmB,SAAU,CAGzC,GAFAuC,IAEI7uF,EAAE2mF,QAAUmF,EAAarX,SAAWz0E,EAAE2mF,QAAUmF,EAAagD,QAAS,CACtEH,EAAK3uF,EACL4uF,GAAU,EACV,KACJ,CACS5uF,EAAE2mF,QAAUmF,EAAaiD,QAAU/uF,EAAE2mF,QAAUmF,EAAa4C,OACjEE,GAAU,EAElB,CAgBA,OAfIA,GAAW,EAAAtrB,WAAWgD,QAAQ2lB,aAC9B7pB,EAAOuB,SAASC,eAAe,aAAc,mBAAmB,GAChE,EAAAN,WAAWgD,QAAQ2lB,aAAc,EACjC,EAAA3oB,WAAWgD,QAAQ+lB,YAAcR,EAAgB6C,OAEjDtsB,EAAOuB,SAASC,eAAe,aAAc,mBAAmB,GAChE,EAAAN,WAAWgD,QAAQ+lB,YAAcR,EAAgBiD,SAGrD,EAAAjS,QAAQhN,YAAYgf,EAAMtsE,WAAa,OAASiH,EAAIjH,YAEhD,EAAA+gD,WAAWv5E,OACX,EAAAu5E,WAAWwF,aAAa,EAAAxF,WAAWgD,QAAQ4lB,UAAU,EAAA5oB,WAAWgD,QAAQ+lB,aAAe,IAAM,EAAA/oB,WAAWgD,QAAQ6lB,OAAOwC,EAAGzB,WAAa,IAAM,EAAA5pB,WAAWgD,QAAQ8lB,aAAauC,EAAGhI,QAAQ,EAAA5d,YAAY6jB,SAGhM,EAAAtpB,WAAWgD,QAAQ+lB,aACvB,KAAKR,EAAgBiD,QAEjB,OAAQH,EAAGzB,WACP,KAAKtmB,EAAcU,KACXqnB,EAAGhI,QAAUmF,EAAarX,UAC1Bka,EAAGhI,OAASmF,EAAagD,QACpBrvG,EAAG8wE,WAAWo+B,EAAGnB,SAAS/pB,SACtB,EAAAc,SAAS6C,QAAQunB,EAAGnB,SAAS/pB,UAC9B,EAAAH,WAAWgD,QAAQ+lB,YAAcR,EAAgB6C,MAErDC,EAAGj/F,MAAQq8F,EAAWsB,WACtB,EAAA/pB,WAAWwF,aAAa,sBAAwB6lB,EAAGnB,SAAS/pB,OAAO,EAAAsF,YAAY6jB,SAC/D,EAAQ,KACxBp1F,CAAQm3F,EAAGnB,SAAS/pB,OAAOkrB,EAAGlB,SAAShqB,OAASl3E,IACxCA,IACAoiG,EAAGhI,OAASmF,EAAaiD,OACrBJ,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,0BAA4B6lB,EAAGlB,SAAShqB,OAAO,EAAAsF,YAAY6jB,UAEvG,EAAAtpB,WAAWgD,QAAQ0oB,YAAYL,GAC3BA,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,wBAA0B6lB,EAAGlB,SAAShqB,OAAO,EAAAsF,YAAY6jB,YAIjG,EAAAroB,SAAS+kB,SAASqF,EAAGnB,SAAS/pB,OAAOkrB,EAAGlB,SAAShqB,SACjD,EAAAH,WAAWgD,QAAQ0oB,YAAYL,GAC3BA,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,mBAAqB6lB,EAAGlB,SAAShqB,OAAO,EAAAsF,YAAY6jB,WAG5F+B,EAAGhI,OAASmF,EAAaiD,OACrBJ,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,qBAAuB6lB,EAAGlB,SAAShqB,OAAO,EAAAsF,YAAY6jB,WAI1G,MAEJ,KAAKhmB,EAAcmO,OACX4Z,EAAGhI,QAAUmF,EAAarX,UACtBka,EAAGj/F,MAAQq8F,EAAWsB,UAClB,EAAA9oB,SAAS0mB,OAAO0D,EAAGnB,SAAS/pB,SAC5B,EAAAH,WAAWgD,QAAQ0oB,YAAYL,GAC3BA,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,sBAAwB6lB,EAAGnB,SAAS/pB,OAAO,EAAAsF,YAAY6jB,WAG/F+B,EAAGhI,OAASmF,EAAaiD,OACrBJ,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,4BAA8B6lB,EAAGlB,SAAShqB,OAAO,EAAAsF,YAAY6jB,UAIrG,EAAAroB,SAAS8P,QAAQsa,EAAGnB,SAAS/pB,SAC7B,EAAAH,WAAWgD,QAAQ0oB,YAAYL,GAC3BA,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,iBAAmB6lB,EAAGnB,SAAS/pB,OAAO,EAAAsF,YAAY6jB,WAG1F+B,EAAGhI,OAASmF,EAAaiD,OACrBJ,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,uBAAyB6lB,EAAGlB,SAAShqB,OAAO,EAAAsF,YAAY6jB,WAI5G,MAEJ,KAAKhmB,EAAc8M,OACfj0F,EAAGqqG,WAAW6E,EAAGnB,SAAS/pB,OAAOkrB,EAAGlB,SAAShqB,QAC7C,EAAAH,WAAWgD,QAAQ0oB,YAAYL,GAC3BA,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,YAAc6lB,EAAGnB,SAAS/pB,OAAS,OAASkrB,EAAGlB,SAAShqB,OAAO,EAAAsF,YAAY6jB,SACnH,MAEJ,KAAKhmB,EAAcunB,MACf1uG,EAAGsZ,UAAU41F,EAAGnB,SAAS/pB,QACzB,EAAAH,WAAWgD,QAAQ0oB,YAAYL,GAC3BA,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,YAAc6lB,EAAGnB,SAAS/pB,OAAO,EAAAsF,YAAY6jB,SACrF,MAEJ,KAAKhmB,EAAcqoB,QACfxvG,EAAG0Z,cAAcw1F,EAAGnB,SAAS/pB,OAAOkrB,EAAGxB,YACvC,EAAA7pB,WAAWgD,QAAQ0oB,YAAYL,GAC3BA,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,aAAe6lB,EAAGnB,SAAS/pB,OAAO,EAAAsF,YAAY6jB,SACtF,MAEJ,KAAKhmB,EAAc2mB,OAAQ,CACvB,MAAM9lB,EAAUhoF,EAAG2Z,aAAau1F,EAAGnB,SAAS/pB,OAAO,QACnDhkF,EAAGyvG,eAAeP,EAAGlB,SAAShqB,OAAOgE,GACrC,EAAAnE,WAAWgD,QAAQ0oB,YAAYL,GAC3BA,EAAGhB,SAAS,EAAArqB,WAAWwF,aAAa,WAAa6lB,EAAGnB,SAAS/pB,OAAS,OAASkrB,EAAGlB,SAAShqB,OAAO,EAAAsF,YAAY6jB,SAClH,KACJ,CACA,KAAKhmB,EAAcC,OACf,EAAAvD,WAAW6D,SAASpF,QAAQmR,aAAayb,EAAGnB,SAAS/pB,QAAO,GAC5D,EAAAH,WAAWgD,QAAQmmB,OAAS9rG,OAAOguG,EAAGxB,YACtC,EAAA7pB,WAAWgD,QAAQ0oB,YAAYL,GAC/B,MAEJ,KAAK/nB,EAAcW,QACf,EAAAjE,WAAW6D,SAASkB,cAAcsmB,EAAGlB,UACrC,EAAAnqB,WAAW6D,SAASpF,QAAQmR,aAAayb,EAAGlB,SAAShqB,QAAO,GAC5D,EAAAH,WAAWgD,QAAQmmB,OAAS,EAAAnpB,WAAW6D,SAASpF,QAAQotB,cAAcC,IACtE,EAAA9rB,WAAWgD,QAAQ0oB,YAAYL,GAC/B,MAEJ,KAAK/nB,EAAcyoB,QACf,EAAA/rB,WAAWgD,QAAQmmB,OAAS,EAAAnpB,WAAW6D,SAASpF,QAAQutB,WAAW,EAAAhsB,WAAWgD,QAAQmmB,OAAOkC,EAAGlB,UAChG,EAAAnqB,WAAWgD,QAAQ0oB,YAAYL,GAC/B,MAEJ,KAAK/nB,EAAc2oB,UACM,UAAjBZ,EAAGvB,WACH,EAAA9pB,WAAW6D,SAASpF,QAAQmR,aAAayb,EAAGlB,SAAShqB,QAAO,GAE5D,EAAAH,WAAW6D,SAASpF,QAAQytB,iBACtB,EAAAlsB,WAAWgD,QAAQmmB,OAC7B,EAAAnpB,WAAWgD,QAAQmmB,OAAS,EAAAnpB,WAAW6D,SAASpF,QAAQ0tB,oBAAoB,EAAAnsB,WAAWgD,QAAQmmB,OAAOkC,EAAGxB,WAAWwB,EAAGvB,YACvH,EAAA9pB,WAAWgD,QAAQ0oB,YAAYL,GAGvC,MAEJ,KAAK9C,EAAgB6C,KACjBnH,cAAc,EAAAjkB,WAAWgD,QAAQrD,SACjC,EAAAK,WAAWgD,QAAQrD,QAAU,EAC7B,EAAAK,WAAWgD,QAAQgmB,SAAW,GAC9B,EAAAzP,QAAQhN,YAAY,IAChB,EAAAvM,WAAWgD,QAAQ2lB,YACnB,EAAA3oB,WAAWwF,aAAa,mCAAmC,EAAAC,YAAY6jB,SAEvE,EAAAtpB,WAAWwF,aAAa,2BAA2B,EAAAC,YAAY6jB,SAEnE,IAAI,MAAMnhB,KAAW,EAAAnI,WAAWgD,QAAQimB,aAChC9gB,GAAW/E,EAAcoO,MACzB1S,EAAOuB,SAASC,eAAe,uBAC/B6H,GAAW/E,EAAcW,WACzBjF,EAAOuB,SAASC,eAAe,2BAC/B6H,GAAW/E,EAAcC,UACzBvE,EAAOuB,SAASC,eAAe,2BAC/B6H,GAAW/E,EAAcsE,IACzB5I,EAAOuB,SAASC,eAAe,qBAC/B6H,GAAW/E,EAAc2E,QACzBjJ,EAAOuB,SAASC,eAAe,yBAG/B+qB,EAAGjB,SACF1B,EAAW0D,aACZ,EAAAzgB,aAAa0C,YAAa,GAM9C,CAEA,WAAAqd,CAAYL,GACRA,EAAGhI,OAASmF,EAAa4C,KACzB,IAAK,MAAMjjB,KAAWkjB,EAAG1B,UAChBzoG,KAAK+nG,aAAajpF,SAASmoE,IAC5BjnF,KAAK+nG,aAAapmG,KAAKslF,EAEnC,E,0HCxUJ,0BACA,0BACA,UACA,UACA,UAYA,iBAMI,WAAAnnF,GAFK,KAAA6tF,SAAW,IAAI,EAAAlL,SAGtBziF,KAAKmrG,MAAQ,GACbnrG,KAAKiqF,QAAU,EAChB,CAEA,UAAAmhB,GACC,OAAOprG,KAAKmrG,KACb,CAEA,mBAAAE,CAAoBC,EAAoBC,GACvCvrG,KAAKmrG,MAAQ,GACb,MAAM9E,EAAW,EAAAvnB,WAAW6D,SAASpF,QAAQiuB,gBAAgBD,GAEvD95F,EAAUzR,KAAKyrG,aAAaH,GAElC,IAAK,MAAM/rB,KAAO8mB,EACjBrmG,KAAK0rG,WAAWnsB,EAAK+rB,EAAY75F,EAJV,IAI4B,GAGpD,OAAO,CACR,CAEA,WAAAk6F,CAAYltF,EAAiB6sF,EAAoBlkE,EAAuB,GAAIpsB,EAAgB,EAAG4wF,GAAwB,EAAOC,GAAwB,GACxI,GAAT7wF,IACHhb,KAAKmrG,MAAQ,IAEd,MAAMt3F,EAAQ,EAAAksE,SAAS6F,SAASnnE,GAE1BhN,EAAUzR,KAAKyrG,aAAaH,GAElC,IAAK,MAAMtnC,KAAQnwD,EAAO,CACzB,IAAM+3F,GAAgB,EAAA7rB,SAASkmB,eAAejiC,EAAKib,SAAa2sB,GAAgB5nC,EAAKib,OAAO1oE,cAAc3Q,QAAQ,QAAU,EAC3H,SACD,GAAIwhC,EAAWx+B,OAAQ,CACtB,IAAI88F,GAAiB,EACrB,IAAK,MAAM19D,KAAaZ,EACvB,GAAI48B,EAAKib,OAAOr/E,SAASooC,GAAY,CACpC09D,GAAQ,EACR,KACD,CAED,IAAKA,EACJ,QACF,CAEA,MAAMryF,EAAWpW,EAAKuW,SAASwwD,EAAKib,QAC9BM,EAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKia,EAAIwgE,OAAO5rE,IACjDrT,KAAK0rG,WAAWnsB,EAAK+rB,EAAY75F,EApBV,GAoB4Bo6F,EACpD,CAEA,MAAMzI,EAAO,EAAArjB,SAASiB,eAAeviE,GAErC,IAAK,MAAMA,KAAO2kF,EACZ,EAAArjB,SAASkmB,eAAexnF,EAAIwgE,SAChCj/E,KAAK2rG,YAAYltF,EAAK6sF,EAAYlkE,EAAYpsB,EAAM,GAGtD,QAAOhb,KAAKmrG,MAAMviG,MACnB,CAEA,UAAA8iG,CAAWnsB,EAAiB+rB,EAAoB75F,EAAiB8c,EAAiBs9E,GAAwB,GACzG,GAAI,EAAA9rB,SAAS5gE,MAAMogE,EAAIN,QACtB,OACDj/E,KAAK2tF,SAASE,QAAQtO,GACtB,MAAMlsE,EAAWpW,EAAKuW,SAAS+rE,EAAIN,QAG7B6sB,EAAaluB,EAAOmT,UAAUC,iBAAiB,OAC/C+a,EAAgBD,EAAWlzF,IAAa,qBAAqB,GAC7DozF,EAAYF,EAAWlzF,IAAa,iBAAiB,GACrDqzF,EAAK,IAAI90E,OAAO60E,EAAY,MAAQv6F,EAAU,MAAQA,EAASs6F,EAAgB,GAAK,KACpFG,EAAUZ,EAAW1iG,OAMrB20E,EAAU,EAAAuB,WAAW6D,SAASpF,QAC9B4uB,EAAWlvG,EAAKyM,MAAM2J,GAAUhV,KAChC+tG,EAAW7uB,EAAQ8uB,YAAYh7F,KAAKpC,GAAKA,EAAEovE,QAAU,GAAKpvE,EAAE5Q,MAAQ8tG,GAC1E,IAAIG,EAAU,GAMd,GALIF,EACHE,GAAWF,EAASG,OAAS,GAAK,MAAQ,GAAGH,EAAS/tB,YAC9CphF,EAAKuhB,QAAQ+gE,EAAIN,SAAW1B,EAAQ2B,mBAAmBD,QAAU,oBAAoBhkE,KAAK5H,KAClGi5F,EAAU,OAEPtsG,KAAK2tF,SAAStJ,UAAUnrE,OAAO+yF,IAAO,EAAG,CAC5C,IAAI96F,EAAM,EACV,IAAK,IAAIq0D,KAAQxlE,KAAK2tF,SAASjL,WAAY,CAC1C,MAAMzxD,EAAMu0C,EAAKtsD,OAAO+yF,GACxB,GAAIh7E,GAAO,EAAG,CACb,GAAIu0C,EAAK58D,OAASsjG,EAAU39E,EAAS,CACpC,MAAMi+E,EAAOj+E,EAAU,EAEtBi3C,EADGA,EAAK58D,OAASqoB,EAAMu7E,EAChBhnC,EAAKpqD,UAAUoqD,EAAK58D,OAAO2lB,EAAQ,EAAEA,GAClC0C,EAAMu7E,EACThnC,EAAKpqD,UAAU6V,EAAIu7E,EAAKj+E,EAAQ29E,GAEhC1mC,EAAKpqD,UAAU,EAAEmT,EAE1B,CACA,IAAIuiB,EAAO00B,EACPqmC,IACH/6D,EAAO00B,EAAKjwD,QAAQ02F,EAAIz1F,GAAK,MAAMA,SACpC,MAAM40B,EAAQ,GAAGkhE,IAAUj5F,MAAalC,KAAO8f,MAAQu0C,IACjDinC,EAAU,GAAGH,IAAUrvG,EAAKuW,SAAS+rE,EAAIN,WAAWnuC,IAC1D9wC,KAAKmrG,MAAMxpG,KAAK,CAAC49E,IAAKA,EAAKn0C,MAAOA,EAAOo6B,KAAMA,EAAMknC,QAASv7F,EAAK8f,IAAK90B,OAAOC,SAAS60B,GAAM07E,YAAaF,GAC5G,CACAt7F,GACD,CACD,CACD,CAEA,YAAAs6F,CAAa/vF,GACZ,OAAOA,EAAInG,QAAQ,sBAAuB,OAC3C,E,gJCzID,0BACA,0BAEA,UAEA,MAAaq3F,EAKZ,OAAA3lB,GACCjnF,KAAKknF,qBAAqBC,MAC3B,CAEA,WAAArnF,GAPQ,KAAAonF,qBAAgF,IAAItJ,EAAOj7E,aAC1F,KAAAykF,oBAAwEpnF,KAAKknF,qBAAqBxxD,KAM3F,CAET,WAAAuyD,CAAY4kB,GAClB,IAAInkB,EAAO,WAKX,OAJImkB,EAASttB,IAAIN,OAAOr/E,SAAS,SAAWitG,EAASttB,IAAIN,OAAOr/E,SAAS,WACxE8oF,EAAO,YAGD,CACNt9C,MAAOyhE,EAASF,YAChBG,YAAaD,EAASttB,IACtB6J,sBAAuB,EACvBJ,QAAS,CACRA,QAAS,oBACTtkF,UAAW,CAACmoG,GACZxrB,MAAO,mBAGRuH,SAAU,CACTC,MAAOjL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,QAASJ,IAC/EK,KAAMnL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQJ,KAGhF,CAEO,WAAArB,CAAY0lB,GAClB,OAAO,EAAAC,SAASC,UACjB,EApCD,yBAwCA,MAAaC,EAUZ,WAAAptG,CAAYyuB,GAPL,KAAAhqB,SAAuBq5E,EAAOC,IAAI7Z,KAAK,IACvC,KAAAwB,KAAe,EACf,KAAAv0C,KAAe,EACf,KAAA6f,KAAe,GACf,KAAAq8D,UAAwB,GACvB,KAAAla,WAAqB,GAG5B,MAAMma,EAAmB,IAAIR,EAC7B5sG,KAAKgtG,SAAWpvB,EAAOznE,OAAOu0E,eAAe,WAAY,CAAEC,iBAAkByiB,IAC7ExvB,EAAOuB,SAASyL,gBAAgB,sBAAuB,IAAMwiB,EAAiBnmB,WAC9ErJ,EAAOuB,SAASyL,gBAAgB,oBAAsBC,GAAa7qF,KAAKmsF,SAAStB,IACjFjN,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAKqrF,eACnEzN,EAAOuB,SAASyL,gBAAgB,oBAAqB,IAAM5qF,KAAKqtG,WACjE,CAEA,aAAOjgB,CAAOC,GAIb,OAHK,EAAA2f,WACJ,EAAAA,SAAW,IAAIE,EAAS7f,IAElB,EAAA2f,QACR,CAEO,QAAAC,GACN,OAAOjtG,KAAKmtG,SACb,CAEQ,QAAAE,GACPrtG,KAAKmtG,UAAY,GACjBntG,KAAKstG,cAAc,IACnBttG,KAAKqrF,cACLzN,EAAOuB,SAASC,eAAe,sBAChC,CAEQ,WAAAiM,GACP,GAAIrrF,KAAKizF,WAAY,CACpB,MAAMv3C,EAAO17C,KAAKizF,WAClBjzF,KAAKgtG,SAAS3rB,MAAQ,kBAAkB3lC,IACzC,MAEC17C,KAAKgtG,SAAS3rB,MAAQ,cACxB,CAEO,aAAAisB,CAAc5xD,GACpB17C,KAAKizF,WAAav3C,CACnB,CAEO,SAAA6xD,CAAUta,EAAoBka,GACpCntG,KAAKmtG,UAAYA,EACO,GAApBA,EAAUvkG,OACbukG,EAAUxrG,KAAK,CAAE49E,IAAK3B,EAAOC,IAAI7Z,KAAK,IAAK54B,MAAO,eAAiB6nD,EAAYztB,KAAM,GAAIknC,QAAS,EAAGz7E,IAAK,EAAG07E,YAAa,KAC5F,GAApBQ,EAAUvkG,QACpB5I,KAAKmsF,SAASghB,EAAU,IAEzBntG,KAAKizF,WAAaA,CACnB,CAEO,QAAA9G,CAAS0gB,GACf,EAAA/tB,WAAWmO,mBACXrP,EAAOznE,OAAO43E,iBAAiB8e,EAASttB,KAAKv2E,KAAK2rF,IACjD,MAAM1jE,EAAM,IAAI2sD,EAAO4vB,SAASX,EAASH,QAASG,EAAS57E,KACrDw8E,EAAS,IAAI7vB,EAAO4vB,SAASX,EAASH,QAASG,EAAS57E,IAAMjxB,KAAKizF,WAAWrqF,QACpF+rF,EAAO/S,WAAa,CAAC,IAAIhE,EAAO8vB,UAAUz8E,EAAKw8E,IAC/C,MAAMjiG,EAAQ,IAAIoyE,EAAOyX,MAAMpkE,EAAKA,GACpC0jE,EAAOgZ,YAAYniG,IAErB,EArED,Y,4ECgBA,4BAAiCoiG,EAAoB9nG,GACpD,MAAM+nG,EAAM/nG,EAAK+nG,IACX9oC,EA7BP,SAAiB/zB,GAChB,MAAM+zB,EAAgB,GACtB,IAAIj0B,EAAO,GACPg9D,EAAsB,GAC1B,IAAK,MAAM1uD,KAAKpO,EACXoO,EAAE2uD,OAAS,EAAAC,UAAUC,SAMzBn9D,GAAQsO,EAAEtO,KACLo9D,EAAU9uD,IAAI0uD,EAAWnsG,KAAKy9C,KANlC2lB,EAAMpjE,KAAK,CAAEmvC,OAAMg9D,eACnBh9D,EAAO,GACPg9D,EAAa,IAOf,OADA/oC,EAAMpjE,KAAK,CAAEmvC,OAAMg9D,eACZ/oC,CACR,CAaeopC,EAAQ,IAAAC,UAASR,IACzBt6D,EAAgB,GAEtB,IAAInjC,EAAQ,EACRk+F,GAAc,EAElB,IAAK,MAAM7oC,KAAQT,EAAO,CACzB,MAAMupC,EAAK9oC,EAAKsoC,WAGhB,GAAkB,IAAdQ,EAAG1lG,OAAc,CACpB0qC,EAAI3xC,KAAK,IACT,QACD,CAGA,IAAI4sG,EAAO,EACX,KAAOA,EAAOD,EAAG1lG,QAAUsrE,EAAQo6B,EAAGC,GAAO,MAAMA,IACnD,MAAM/qG,EAAOsM,KAAKF,IAAI,EAAGO,EAAQo+F,GAIjC,IAAIC,EAAQ,EACRH,IACHG,EAAQt6B,EAAQo6B,EAAG,GAAI,KAAO,EAAI,EAClCD,GAAc,GAEf,MAAMrzF,EAAQxX,EAAOgrG,EAGfvrB,EAAUzd,EAAK10B,KAAKv7B,QAAQ,UAAW,IAAIA,QAAQ,UAAW,IAC9Dk5F,EAAOH,EAAGA,EAAG1lG,OAAS,GAC5B,GAAI9C,EAAK4oG,aAAex6B,EAAQu6B,EAAM,MAAQH,EAAG1lG,OAAS,GAAKq6E,EAAQrjF,SAAS,KAAM,CACrF,MAAMq5E,EAAOgK,EAAQzyE,MAAM,GAAI,GAAG+E,QAAQ,UAAW,IACrD+9B,EAAI3xC,KAAKgtG,EAAa3zF,EAAOlV,GAAQmzE,GACrC3lC,EAAI3xC,KAAKgtG,EAAa3zF,EAAOlV,GAAQ,IACtC,MACCwtC,EAAI3xC,KAAKgtG,EAAa3zF,EAAOlV,GAAQm9E,GAItC,IAAK,MAAM7jC,KAAKkvD,EACXp6B,EAAQ90B,EAAG,KAAMjvC,IACZ+jE,EAAQ90B,EAAG,OAAMjvC,EAAQL,KAAKF,IAAI,EAAGO,EAAQ,IAMvD,MAAMmlE,EAAQg5B,EAAG,GACXM,EAAaN,EAAG5oG,KAAM05C,GAAM80B,EAAQ90B,EAAG,MACvCyvD,EAAWJ,EAAKV,OAAS,EAAAC,UAAUc,OAAuB,MAAdL,EAAK39D,KAChCwkC,EAAMy4B,OAAS,EAAAC,UAAUe,OAAQC,EAAQ7nF,IAAImuD,EAAMxkC,OACnD89D,GAAeC,IAAUR,GAAc,EAC/D,CAEA,OAAO/6D,EAAI9uC,KAAKqpG,EACjB,EAzGA,gBACA,UAGA,SAASK,EAAU9uD,GAClB,OAAOA,EAAE2uD,OAAS,EAAAC,UAAUiB,YAAc7vD,EAAE2uD,OAAS,EAAAC,UAAUC,OAChE,CAEA,MAAMe,EAAU,IAAIrqG,IAAI,CAAC,KAAM,OAAQ,UA6BvC,SAASgqG,EAAa3zF,EAAelV,GACpC,OAAIkV,GAAS,EAAU,GAChBlV,EAAKopG,QAAU,KAAKr6B,OAAO75D,GAAS,IAAI65D,OAAO75D,EAAQlV,EAAKqpG,QACpE,CAEA,SAASj7B,EAAQ90B,EAAU8yB,GAC1B,OAAO9yB,EAAE2uD,OAAS,EAAAC,UAAUc,OAAS1vD,EAAEtO,OAASohC,CACjD,C,2ECsDA,6BAAkCmb,GAEjCA,EAAIsF,cAAchxF,KACjBi8E,EAAOwxB,UAAUC,uCAAuC,MAAOC,GAC/D1xB,EAAOwxB,UAAUG,4CAA4C,MAAOC,GAEtE,E,gBAnHA,0BACA,UAEA,0BAIA,SAASC,EACRh5F,EACAi5F,GAEA,MAAMC,EAAM/xB,EAAOmT,UAAUC,iBAAiB,aAAcv6E,EAAS8oE,KAC/DqwB,EAAcD,EAAI/2F,IAAY,cAAe,QAC7Ci3F,EAAaF,EAAI/2F,IAAY,aAAc,UAEjD,IAAIs2F,GAAU,EACVC,EAAUQ,EAAI/2F,IAAY,UAAW,GAWzC,MAVoB,WAAhBg3F,EACHV,GAAU,EACgB,WAAhBU,GACVV,GAAWQ,EAAII,aACfX,EAAUO,EAAIP,SAEdD,GAAU,EAIJ,CAAEA,UAASC,UAAST,YAA4B,SAAfmB,EAAuBhC,IADnDp3F,EAASo3F,MAAQjwB,EAAOmyB,UAAUC,KAAO,OAAS,KAE/D,CAqEA,MAAMV,EAA0D,CAC/DW,+BAA8B,CAACx5F,EAAUhQ,IAjE1C,SACCgQ,EACAi5F,GAGA,IADY9xB,EAAOmT,UAAUC,iBAAiB,aAAcv6E,EAAS8oE,KAC5D3mE,IAAa,UAAU,GAAO,MAAO,GAE9C,MAAMs3F,EAAWz5F,EAAS4tE,UAC1B,IAAI8rB,EACJ,IACCA,GAAY,IAAAC,gBAAeF,EAAUT,EAAeh5F,EAAUi5F,GAC/D,CAAE,MAAO3nG,GAIR,OADAsoG,EAAUC,UAAU,eAAgB,WAAY,CAAEh+E,MAAO49E,EAAStnG,SAC3D,EACR,CAMA,GAJAynG,EAAUE,UAAU,uBAAmB90G,EAAW,CACjD62B,MAAO49E,EAAStnG,OAChBypE,QAAS89B,IAAcD,EAAW,EAAI,IAEnCC,IAAcD,EAAU,MAAO,GAEnC,MAAMM,EAAY,IAAI5yB,EAAOyX,MAC5B5+E,EAASg6F,WAAW,GACpBh6F,EAASg6F,WAAWP,EAAStnG,SAE9B,MAAO,CAACg1E,EAAO8yB,SAASn7F,QAAQi7F,EAAWL,GAC5C,CAqCSQ,CAAiBl6F,EAAUhQ,IAI9B+oG,EAA4D,CACjEoB,oCAAmC,CAACn6F,EAAUjL,EAAO/E,IArCtD,SACCgQ,EACAjL,EACAkkG,GAGA,IADY9xB,EAAOmT,UAAUC,iBAAiB,aAAcv6E,EAAS8oE,KAC5D3mE,IAAa,UAAU,GAAO,MAAO,GAE9C,MAAMyqF,EAAM5sF,EAAS4tE,UACftzD,EAAQta,EAASo6F,SAASrlG,EAAMulB,OAChCvF,EAAM/U,EAASo6F,SAASrlG,EAAMggB,KACpC,IAAIslF,EACJ,IACCA,GAAc,IAAAC,sBAAqB1N,EAAKtyE,EAAOvF,EAAKikF,EAAeh5F,EAAUi5F,GAC9E,CAAE,MAAO3nG,GAER,OADAsoG,EAAUC,UAAU,eAAgB,YAAa,CAAEh+E,MAAO9G,EAAMuF,IACzD,EACR,CAKA,OAJAs/E,EAAUE,UAAU,wBAAoB90G,EAAW,CAClD62B,MAAO9G,EAAMuF,EACbigF,MAAOF,EAAYloG,SAEbkoG,EAAY3yG,IAAK6+B,GACvB4gD,EAAO8yB,SAASn7F,QACf,IAAIqoE,EAAOyX,MAAM5+E,EAASg6F,WAAWzzE,EAAEjM,OAAQta,EAASg6F,WAAWzzE,EAAExR,MACrEwR,EAAEyvE,SAGL,CAUSwE,CAAWx6F,EAAUjL,EAAO/E,G,4EClErC,cAMA,0BAA+B48F,EAAa58F,GAC3C,MAAMX,EAAO2pG,EAAepM,EAAK58F,GACjC,IAAI6sC,EAAM,GACV,IAAK,MAAM49D,KAAU,IAAAC,cAAa9N,GAAM/vD,GAAO89D,EAAaF,EAAQprG,GACpE,OAAOwtC,CACR,EAeA,gCACC+vD,EACAgO,EACAC,EACA7qG,GAEA,MAAMX,EAAO2pG,EAAepM,EAAK58F,GAC3BuqG,EAAsB,GAC5B,IAAK,MAAME,KAAU,IAAAC,cAAa9N,GAAM,CAIvC,KAHiBgO,IAAeC,EAC7BJ,EAAOngF,OAASsgF,GAAcA,GAAcH,EAAO1lF,IACnD0lF,EAAOngF,MAAQugF,GAAYJ,EAAO1lF,IAAM6lF,GAC5B,SACf,MAAMlB,EAAYiB,EAAaF,EAAQprG,GACnCqqG,IAAce,EAAOpgE,MACxBkgE,EAAMrvG,KAAK,CAAEovB,MAAOmgF,EAAOngF,MAAOvF,IAAK0lF,EAAO1lF,IAAKihF,QAAS0D,GAE9D,CACA,OAAOa,CACR,EAhFA,gBACA,UACA,UACA,UAOA,SAASO,EAAKvqG,EAA6C8pC,EAAchrC,GACxE,MAAMvC,EAAOyD,EAAG8pC,EAAMhrC,GAEtB,OAAOvC,IADOyD,EAAGzD,EAAMuC,GACCvC,EAAOutC,CAChC,CAKA,SAASsgE,EAAaF,EAAgBprG,GACrC,OAAQorG,EAAOnD,MACd,KAAK,EAAAyD,WAAWC,MACf,OAAOF,EAAK,EAAAG,kBAAmBR,EAAOpgE,KAAMhrC,GAC7C,KAAK,EAAA0rG,WAAWG,KACf,OAAOJ,EAAK,EAAAK,iBAAkBV,EAAOpgE,KAAMhrC,GAC5C,QACC,OAAOorG,EAAOpgE,KAEjB,CAEA,SAAS2+D,EAAepM,EAAa58F,GACpC,OAAO,OAAP,sCAAY,EAAAorG,iBAAe,CAAEhE,IAAKiE,EAAUzO,KAAS58F,EACtD,CAGA,SAAgBqrG,EAAUzO,GAGzB,OAFcA,EAAI7tF,MAAM,UAAY,IAAI5M,QAC5By6F,EAAI7tF,MAAM,eAAiB,IAAI5M,OACxB,OAAS,IAC7B,C,4ECHA,wBAA6By6F,GAC5B,MAAMryD,GAAS,IAAAo9D,UAAS/K,GAClB0O,EAAoB,GAGpBC,EAA+C,CAAC,CAAErgF,OAAQ,EAAGsgF,OAAQ,KAE3E,IAAK,IAAIz8B,EAAM,EAAGA,EAAMxkC,EAAOpoC,OAAQ4sE,IAAO,CAC7C,MAAMp2B,EAAIpO,EAAOwkC,GACbp2B,EAAE2uD,OAAS,EAAAC,UAAUkE,WAAaC,EAAqBnhE,EAAQwkC,IAClEw8B,EAAOrwG,KAAK,CAAEgwB,OAAQytB,EAAEruB,MAAOkhF,OAAQ7yD,EAAEtO,MAE3C,CAEA,IAAK,IAAIpS,EAAI,EAAGA,EAAIszE,EAAOppG,OAAQ81B,IAAK,CACvC,MAAM0zE,EAAWJ,EAAOtzE,GAAG/M,OACrB0gF,EAAS3zE,EAAI,EAAIszE,EAAOppG,OAASopG,EAAOtzE,EAAI,GAAG/M,OAAS0xE,EAAIz6F,OAClE,GAAIypG,GAAUD,IAA2B,IAAbA,GAAiC,IAAf/O,EAAIz6F,QAGjD,SAED,MAAMqpG,EAASD,EAAOtzE,GAAGuzE,OACnBlE,EAAa,IAANrvE,EAAU,EAAA8yE,WAAWc,SAAWC,EAAcN,GAC3DF,EAAQpwG,KAAK,CACZosG,OACAkE,SACAnhE,KAAMuyD,EAAI7yF,MAAM4hG,EAAUC,GAC1BthF,MAAOqhF,EACP5mF,IAAK6mF,GAEP,CASA,OAJIN,EAAQnpG,OAAS,GAAKmpG,EAAQ,GAAGhE,OAAS,EAAAyD,WAAWc,UAAuC,IAA3BP,EAAQ,GAAGjhE,KAAKloC,QACpFmpG,EAAQphG,QAGFohG,CACR,EA7EA,gBACA,UAGA,SAASQ,EAAcN,GAEtB,OADWA,EAAO18F,QAAQ,MAAO,IAAIgG,eAEpC,IAAK,OACL,IAAK,OACL,IAAK,MACL,IAAK,OACL,IAAK,QACJ,OAAO,EAAAi2F,WAAWG,KACnB,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,UACJ,OAAO,EAAAH,WAAWC,MACnB,QACC,OAAO,EAAAD,WAAWgB,MAErB,CAKA,SAASL,EAAqBnhE,EAAiBwkC,GAC9C,IAAK,IAAIl6D,EAAIk6D,EAAM,EAAGl6D,GAAK,EAAGA,IAAK,CAClC,MAAM8jC,EAAIpO,EAAO11B,GACjB,GAAI8jC,EAAE2uD,OAAS,EAAAC,UAAUC,QAAS,OAAO,EACzC,GAAI7uD,EAAE2uD,OAAS,EAAAC,UAAUiB,WACzB,OAAO,CACR,CACA,OAAO,CACR,C,4ECnBA,6BAAkCrB,EAAoB9nG,GACrD,MAAM+nG,EAAM/nG,EAAK+nG,IACX9oC,EAAQ6oC,EAAW5xG,MAAM,cACzBs3C,EAAgB,GAEtB,IAAI5jC,EAAI,EACR,KAAOA,EAAIq1D,EAAMn8D,QAAQ,CACxB,MAAM48D,EAAOT,EAAMr1D,GAEnB,GAAI+iG,EAAWx3F,KAAKuqD,GAAO,CAE1B,MAAMnzD,EAAgB,CAACmzD,GACvB,IAAIluD,EAAI5H,EACR,KAAO4H,EAAIytD,EAAMn8D,QAAUm8D,EAAMztD,GAAG1R,QAAQ,MAAQ,GACnD0R,IACIA,EAAIytD,EAAMn8D,QAAQyJ,EAAI1Q,KAAKojE,EAAMztD,IAItC,GAAIA,EAAIytD,EAAMn8D,OAAQ,CACrB,MAAMsnG,EAAW79F,EAAI7N,KAAKqpG,GAC1Bv6D,EAAI3xC,KAAK+wG,EAAexC,EAAUrC,IAClCn+F,EAAI4H,EAAI,EACR,QACD,CAEAg8B,EAAI3xC,KAAK6jE,GACT91D,IACA,QACD,CAEA4jC,EAAI3xC,KAAK6jE,GACT91D,GACD,CAEA,OAAO4jC,EAAI9uC,KAAKqpG,EACjB,EAyDA,mBA1GA,gBACA,UAKM4E,EAAa,kCAyDnB,SAASE,EAAU7hE,GAClB,IAAIpS,EAAI,GACR,IAAK,MAAM0gB,KAAK,IAAAgvD,UAASt9D,GACxB,OAAQsO,EAAE2uD,MACT,KAAK,EAAAC,UAAUiB,WACf,KAAK,EAAAjB,UAAUC,QACf,KAAK,EAAAD,UAAU4E,YACf,KAAK,EAAA5E,UAAU6E,aACd,SACD,QACCn0E,GAAK0gB,EAAEtO,KAAO,IAGjB,OAAOpS,CACR,CAgBA,SAASg0E,EAAeI,EAAkBjF,GACzC,IAAIpuG,EAAIqzG,EACR,IAAK,IAAIx3F,EAAI,EAAGA,EAHC,EAGcA,IAAK,CACnC,MAAM5b,EAAIqzG,EAAetzG,EAAG,EAAAuzG,aAAahd,OAAQ6X,GACjD,GAAInuG,IAAMD,EAET,OAAOkzG,EAAUlzG,KAAOkzG,EAAUG,GAAYrzG,EAAIqzG,EAEnDrzG,EAAIC,CACL,CACA,OAAOozG,CACR,CAEA,SAAgBC,EACfE,EACA/nG,EAAqB,EAAA8nG,aAAahd,OAClC6X,EAAM,MAEN,IAAKz6F,GAAL,SAAKA,GAAQ,yBAAS,6BAAW,qBAAO,mBAAM,6BAAW,mBAAM,2BAAU,yBAAS,kBAAM,CAAxF,CAAKA,IAAAA,EAAK,KAEV,IAAI8/F,EAAgBD,EAAQ19F,QAAQs4F,EAAK,KAEzC,MAAMsF,EAAqB,GACrBC,EAAiB,IAAItpG,MAC3B,IAAIsxC,EAAQ,IAAItxC,MACZupG,EAAejgG,EAAM68E,QACrBv0C,EAAO,GACP43D,GAAU,EACVC,GAAY,EACZC,GAAY,EACZC,GAAY,EACZr+F,EAAI,GACJs+F,EAAQ,GAGZ,IAAK,IAAIhkG,EAAI,EAAGA,EAAIujG,EAAQrqG,OAAQ8G,IAKnC,GAJA0F,EAAI69F,EAAQvjG,GACZgkG,EAAQhkG,EAAIujG,EAAQrqG,OAAS,EAAIqqG,EAAQvjG,EAAI,GAAK,GAClD4jG,GAAW,KAAKr4F,KAAK7F,GAEjBo+F,EACH93D,GAAQtmC,EACRo+F,GAAY,OAMb,GAHAA,EAAiB,MAALp+F,GAGRk+F,IAAWC,GAAkB,MAALn+F,EAA5B,CAIA,GAAIi+F,GAAgBjgG,EAAM68E,SAAYqjB,EAK/B,IAAS,KAALl+F,GAAqB,KAATs+F,EAAc,CAChCh4D,EAAK9yC,QACRwyC,EAAMz5C,KAAK+5C,GACZ,KAGD,CAAO,GAAI23D,GAAgBjgG,EAAMugG,WAAkB,KAALv+F,GAAqB,KAATs+F,EAAc,CACnEh4D,EAAK9yC,QACRwyC,EAAMz5C,KAAK+5C,GAIZy3D,EAAMxxG,KAAK,CAAE8xG,UAAWr4D,EAAM52C,KAAK,KAAMs9B,KAAM,GAAI8xE,QAAS,KAC5Dx4D,EAAQ,GACRM,EAAO,GACP23D,EAAejgG,EAAMygG,MACrBnkG,IACA,QAGD,CAAO,GAAI2jG,GAAgBjgG,EAAMygG,OAAUP,GAIpC,GAAID,GAAgBjgG,EAAM0gG,OAASR,GAAgB,KAALl+F,EAY9C,IAAIi+F,GAAgBjgG,EAAM2gG,WAAkB,KAAL3+F,EAAU,CACvDgmC,EAAMz5C,KAAKyT,GACXi+F,EAAejgG,EAAM4gG,KACrBt4D,EAAO,GACP,QAGD,CAAO,GAAI23D,GAAgBjgG,EAAM2gG,WAAmB,MAAL3+F,IAAek+F,GAAgB,KAALl+F,GAAiB,KAALA,GAU9E,IAAIi+F,GAAgBjgG,EAAM4gG,MAAa,KAAL5+F,EAAU,CAC9CsmC,EAAK9yC,QACRwyC,EAAMz5C,KAAK+5C,GACZN,EAAMz5C,KAAKyT,GACXsmC,EAAO,GACP23D,EAAejgG,EAAM6gG,SACrB,QAGD,CAAO,GAAIZ,GAAgBjgG,EAAM4gG,OAAc,KAAL5+F,GAAiB,KAALA,GAAW,CAC5DsmC,EAAK9yC,QACRwyC,EAAMz5C,KAAK+5C,GACZN,EAAMz5C,KAAKyT,GACXsmC,EAAO,GACP,QAGD,CAAW23D,GAAgBjgG,EAAM6gG,UAAiB,KAAL7+F,EAC5Ci+F,EAAejgG,EAAM8gG,QAGVb,GAAgBjgG,EAAM0gG,MAAQT,GAAgBjgG,EAAM8gG,SAAWb,GAAgBjgG,EAAM6gG,UAAkB,MAAL7+F,EASnGi+F,GAAgBjgG,EAAM6gG,UAAaX,IAC7Ca,EAAchB,EAAO/3D,EAAOlwC,GAC5BkwC,EAAQ,GACRM,EAAO,GACP23D,EAAejgG,EAAM68E,UAZjBv0C,EAAK9yC,QACRwyC,EAAMz5C,KAAK+5C,GACZy4D,EAAchB,EAAO/3D,EAAOlwC,GAC5BkwC,EAAQ,GACRM,EAAO,GACP23D,EAAejgG,EAAM0gG,KAQtB,MA5CKp4D,EAAK9yC,QACRwyC,EAAMz5C,KAAK+5C,GAEZy4D,EAAchB,EAAO/3D,EAAOlwC,GAC5BkwC,EAAQ,GACRM,EAAO,GACP23D,EAAejgG,EAAM0gG,IAsCtB,MA5DC,GAHAT,EAAejgG,EAAM2gG,UACrB34D,EAAMz5C,KAAK+5C,GACXA,EAAO,GACE,KAALtmC,EAAU,CACbgmC,EAAMz5C,KAAKyT,GACXi+F,EAAejgG,EAAM4gG,KACrBt4D,EAAO,GACP,QACD,OAZA23D,EAAejgG,EAAM0gG,IAmEtB,MA5FCT,EAAeI,EAAYrgG,EAAM0gG,KAAO1gG,EAAMugG,UAC9CF,GAAY,EA6FRH,EAEM53D,EAAK9yC,QAAU0qG,IAAYC,IACjC73D,EAAKp9B,WAAW,OACnB+0F,EAAejgG,EAAM8gG,SACtB94D,EAAMz5C,KAAK+5C,GACXA,EAAO,IALPA,GAAQtmC,EAQTm+F,EAAYD,CA3GH,CA8GNl4D,EAAMxyC,QACTurG,EAAchB,EAAO/3D,EAAOlwC,GAG7B,IAAIkpG,EAAU,EACd,IAAK,MAAMtyE,KAAQqxE,EACdrxE,EAAKA,KAAKl5B,OAASwrG,IACtBA,EAAUtyE,EAAKA,KAAKl5B,QAItB,MACMyrG,EAAUvkG,KAAK0hC,MAAM4iE,EADX,GAEhB,IAAIE,EAAa,EACbC,EAAW,GACXC,GAAU,EACd,IAAK,MAAM1yE,KAAQqxE,EAAO,CACzB,GAAiB,MAAbrxE,EAAKA,KACRyyE,EAAWrpG,GAAQ,EAAA8nG,aAAa/c,QAAU,KAAO,OACjDue,GAAU,OACJ,GAAI1yE,EAAK2xE,UAAU7qG,OACzB2rG,EAAWzyE,EAAK2xE,UAAY,UACtB,CACN,MAAMgB,EAASC,EAAU5yE,EAAKA,KAAKl5B,OAZrB,EAYsCyrG,GAEnDE,EADGrpG,GAAQ,EAAA8nG,aAAa/c,QACbn0D,EAAKA,KAKL,KAAOA,EAAKA,KAAO2yE,EAAS,QAAUH,EAAWv2E,WAAa,KACrE+D,EAAK8xE,QAAQhrG,OAAS,IAAMk5B,EAAK8xE,QAAU,IAChDU,GACD,CACAlB,EAAezxG,KAAK4yG,EACrB,CACKC,GACJpB,EAAezxG,KAAK,QAErB,MAAMzB,EAAMgL,GAAQ,EAAA8nG,aAAa/c,QAAU,GAAK4X,EAGhD,OAFAqF,EAAgBE,EAAe5uG,KAAKtE,GAE7BgzG,CACR,CAEA,SAASwB,EAAU9rG,EAAgB+rG,EAAiBC,GACnD,MACMC,EAAOD,EADI9kG,KAAK0hC,MAAM5oC,GAAU+rG,EACJ,EAClC,IAAIF,EAAS,KACb,IAAK,IAAI/kG,EAAI,EAAGA,EAAImlG,EAAMnlG,IACzB+kG,GAAkB,KAEnB,OAAOA,CACR,CAEA,SAASN,EAAchB,EAAoB/3D,EAAiBlwC,GAS3D,IAAI4pG,EAAe15D,EAAMxyC,OACzB,IAAK,IAAI8G,EAAI0rC,EAAMxyC,OAAS,EAAG8G,GAAK,EAAGA,IACtC,GAAI0rC,EAAM1rC,GAAG4O,WAAW,KAAM,CAC7Bw2F,EAAeplG,EACf,KACD,CAED,IAAIqlG,EAAc,GACdD,EAAe15D,EAAMxyC,SACxBmsG,EAAc35D,EAAM5qC,MAAMskG,EAAe,GAAGtwG,KAAK,KAC/C+Q,QAAQ,mBAAoB,IAC5BA,QAAQ,iBAAkB,IAC1BnE,QAEH,IAAIsqC,EAAO,GAGX,IAAKN,EAAMxyC,OACV,MAAO,GACR,IAAI48D,EAAO,GACPwvC,EAAW,GACXC,EAAW,GACXC,GAAY,EAEhB,IAAK,IAAIxlG,EAAI,EAAGA,EAAI0rC,EAAMxyC,UACrBksG,GAAgBplG,GAAKolG,GADQplG,IAGjCgsC,EAAON,EAAM1rC,GACbslG,EAAWtlG,EAAI0rC,EAAMxyC,OAAS,EAAIwyC,EAAM1rC,EAAI,GAAK,GAE7CxE,GAAQ,EAAA8nG,aAAa9c,QAAmB,KAARx6C,GAAuB,KAARA,EAIxCw5D,IACV1vC,GAAQ,aAJR0vC,EAAoB,KAARx5D,EACA,KAARA,IACH8pB,GAAQ,WAIVA,GAAQ9pB,EACJhsC,EAAI0rC,EAAMxyC,OAAS,GAAa,KAAR8yC,GAAuB,KAARA,IAAgBA,EAAK97C,SAAS,MACzD,KAAZo1G,GAA+B,KAAZA,GAA+B,KAAZA,GAC1B,KAAZC,IACHzvC,GAAQ,KACTyvC,EAAWv5D,EAEZ,MAAM64D,EAAWrpG,GAAQ,EAAA8nG,aAAa/c,QAAUzwB,EAAOA,EAAK2vC,UAC5DhC,EAAMxxG,KAAK,CAAE8xG,UAAW,GAAI3xE,KAAMyyE,EAAUX,QAASmB,GACtD,C,4ECtVA,oBAAyB1R,GACxB,MAAMryD,EAAkB,GAClBx/B,EAAI6xF,EAAIz6F,OACd,IAAI8G,EAAI,EAER,MAAM/N,EAAO,CAACosG,EAAiBh9E,EAAevF,KAC7CwlB,EAAOrvC,KAAK,CAAEosG,OAAMj9D,KAAMuyD,EAAI7yF,MAAMugB,EAAOvF,GAAMuF,QAAOvF,SAGzD,KAAO9b,EAAI8B,GAAG,CACb,MAAM4D,EAAIiuF,EAAI3zF,GACR0lG,EAAK1lG,EAAI,EAAI8B,EAAI6xF,EAAI3zF,EAAI,GAAK,GAGpC,GAAU,OAAN0F,EAAJ,CAKA,GAAU,OAANA,EAAY,CACf,MAAMoW,EAAa,OAAP4pF,EAAc1lG,EAAI,EAAIA,EAAI,EACtC/N,EAAK,EAAAqsG,UAAUC,QAASv+F,EAAG8b,GAC3B9b,EAAI8b,EACJ,QACD,CAGA,GAAI6pF,EAAkBjgG,GAAI,CACzB,IAAIkC,EAAI5H,EAAI,EACZ,KAAO4H,EAAI9F,GAAK6jG,EAAkBhS,EAAI/rF,KAAKA,IAC3C3V,EAAK,EAAAqsG,UAAUiB,WAAYv/F,EAAG4H,GAC9B5H,EAAI4H,EACJ,QACD,CAGA,GAAU,MAANlC,GAAoB,MAAPggG,EAAY,CAC5B,IAAI99F,EAAI5H,EAAI,EACZ,KAAO4H,EAAI9F,IAAkB,MAAX6xF,EAAI/rF,IAA6B,MAAf+rF,EAAI/rF,EAAI,KAAaA,IACzDA,EAAIA,EAAI9F,EAAI8F,EAAI,EAAI9F,EACpB7P,EAAK,EAAAqsG,UAAU6E,aAAcnjG,EAAG4H,GAChC5H,EAAI4H,EACJ,QACD,CAGA,GAAU,MAANlC,EAAW,CACd,IAAIkC,EAAI5H,EAAI,EACZ,KAAO4H,EAAI9F,GAAgB,OAAX6xF,EAAI/rF,IAA0B,OAAX+rF,EAAI/rF,IAAaA,IACpD3V,EAAK,EAAAqsG,UAAU4E,YAAaljG,EAAG4H,GAC/B5H,EAAI4H,EACJ,QACD,CAIA,GAAU,MAANlC,EAAW,CACd,IAAIkC,EAAI5H,EAAI,EACZ,KAAO4H,EAAI9F,GAAG,CACb,MAAM8jG,EAAKjS,EAAI/rF,GACf,GAAW,OAAPg+F,EAAJ,CACA,GAAW,MAAPA,EAAY,CAAEh+F,GAAK,EAAG,KAAO,CACjC,GAAW,OAAPg+F,GAAsB,OAAPA,EAAa,MAChCh+F,GAAK,CAHgC,MAAlBA,GAAK,CAIzB,CACIA,EAAI9F,IAAG8F,EAAI9F,GACf7P,EAAK,EAAAqsG,UAAU16E,OAAQ5jB,EAAG4H,GAC1B5H,EAAI4H,EACJ,QACD,CAGA,GAAU,MAANlC,EAAW,CAEd,MAAMmgG,EAAc,MAAPH,EACb,IAAI99F,EAAIi+F,EAAO7lG,EAAI,EAAIA,EAAI,EAC3B,MAAM8lG,EAAYl+F,EAClB,KAAOA,EAAI9F,GAAK,YAAYyJ,KAAKooF,EAAI/rF,KAAKA,IAC1C,MAAMokC,EAAO2nD,EAAI7yF,MAAMglG,EAAWl+F,GAClC,GAAIokC,EAAK9yC,QAAU6sG,EAAWtuF,IAAIu0B,EAAKngC,eAAgB,CACtD5Z,EAAK,EAAAqsG,UAAUkE,UAAWxiG,EAAG4H,GAC7B5H,EAAI4H,EACJ,QACD,CACA,GAAIi+F,GAAwB,IAAhB75D,EAAK9yC,OAAc,CAC9BjH,EAAK,EAAAqsG,UAAU0H,KAAMhmG,EAAGA,EAAI,GAC5BA,GAAK,EACL,QACD,CAGD,CAGA,GAAU,MAAN0F,GAAoB,MAAPggG,EAOjB,GAAIO,EAAMxuF,IAAI/R,GACbzT,EAAK,EAAAqsG,UAAUc,MAAOp/F,EAAGA,EAAI,GAC7BA,GAAK,MAMN,CACC,IAAI4H,EAAI5H,EACR,KAAO4H,EAAI9F,GAAG,CACb,MAAM8jG,EAAKjS,EAAI/rF,GACf,GAAW,OAAPg+F,GAAeh+F,EAAI,EAAI9F,EAAK8F,GAAK,MAArC,CACA,GAAIs+F,EAAYN,GAAK,MAErB,IAAW,MAAPA,GAAsB,MAAPA,GAA6B,MAAfjS,EAAI/rF,EAAI,KACpCA,EAAI5H,EAAG,MAEZ4H,GAAK,CAN6C,CAOnD,CACIA,IAAM5H,IAAG4H,EAAI5H,EAAI,GACrB/N,EAAK,EAAAqsG,UAAUe,KAAMr/F,EAAG4H,GACxB5H,EAAI4H,CACL,MA7BC3V,EAAK,EAAAqsG,UAAU6H,MAAOnmG,EAAGA,EAAI,GAC7BA,GAAK,CA9EN,MAHC/N,EAAK,EAAAqsG,UAAUC,QAASv+F,EAAGA,EAAI,GAC/BA,GAAK,CA6GP,CAEA,OAAOshC,CACR,EAIA,sBAA2BA,GAC1B,IAAItS,EAAI,GACR,IAAK,MAAM0gB,KAAKpO,EAAQtS,GAAK0gB,EAAEtO,KAC/B,OAAOpS,CACR,EA7JA,gBAEM+2E,EAAa,IAAI9wG,IAAY,EAAAmxG,iBAI7BH,EAAQ,IAAIhxG,IAAY,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAElE,SAAS0wG,EAAkBjgG,GAC1B,MAAa,MAANA,GAAmB,OAANA,GAAoB,OAANA,GAAoB,OAANA,CACjD,CAEA,SAASwgG,EAAYxgG,GAGpB,MACO,OAANA,GAAoB,OAANA,GAAcigG,EAAkBjgG,IACxC,MAANA,GAAaugG,EAAMxuF,IAAI/R,EAEzB,C,yBCnBA,IAAY49F,EAEAhF,EA6BAwD,E,oIA/BZ,SAAYwB,GAAe,uBAAQ,yBAAS,sBAAQ,CAApD,CAAYA,IAAY,eAAZA,EAAY,KAExB,SAAYhF,GACX,+BACA,yBACA,iCACA,mCACA,uBACA,qBACA,mBACA,6BACA,qBACA,kBACA,CAXD,CAAYA,IAAS,YAATA,EAAS,KAwBR,EAAA8H,gBAAkB,CAC9B,QAAS,OAAQ,OAAQ,QAAS,QAAS,OAAQ,OAAQ,MAC3D,QAAS,SAAU,UAAW,QAAS,MAAO,OAG/C,SAAYtE,GACX,2BACA,mBACA,qBACA,oBACA,CALD,CAAYA,IAAU,aAAVA,EAAU,KAsBT,EAAAK,gBAAiC,CAC7C3C,SAAS,EACTC,QAAS,EACTT,aAAa,EACbb,IAAK,K,gJClEN,0BACA,0BACA,0BACA,yBACA,UAqBA,MAAakI,EAAb,cACY,KAAA7uB,qBAAuB,IAAItJ,EAAOj7E,aACjC,KAAAykF,oBAAsBpnF,KAAKknF,qBAAqBxxD,KAiF7D,CAhFI,OAAAuxD,GAAkBjnF,KAAKknF,qBAAqBC,MAAQ,CAEpD,WAAAc,CAAYtkF,GACR,MAAMqyG,EAAWryG,EAAKsyG,YACftyG,EAAKuyG,SAAWt4B,EAAOyK,yBAAyB8tB,SAAWv4B,EAAOyK,yBAAyBE,UAC5F3K,EAAOyK,yBAAyBC,KAChC8tB,EAAK,IAAIx4B,EAAOuK,SAASxkF,EAAKynC,MAAO4qE,GAC3CI,EAAGxtB,SAAW,IAAIhL,EAAOy4B,UAAU1yG,EAAK+kF,MACpC/kF,EAAKulF,UAASktB,EAAGltB,QAAU,IAAItL,EAAO04B,eAAe3yG,EAAKulF,UAG1DvlF,EAAK4tF,IACL6kB,EAAGptB,QAAU,CAAEA,QAASrlF,EAAK4tF,IAAKlQ,MAAO19E,EAAKynC,OACvCznC,EAAK4yG,WACZH,EAAGptB,QAAU,CAAEA,QAAS,sBAAuB3H,MAAO19E,EAAKynC,MAAO1mC,UAAW,CAACf,IACvEA,EAAKmxB,IACZshF,EAAGptB,QAAU,CAAEA,QAAS,oBAAqB3H,MAAO19E,EAAKynC,MAAO1mC,UAAW,CAACf,IACpEA,EAAKsyG,aAAgBtyG,EAAK6yG,gBAAiB7yG,EAAK8yG,OACxDL,EAAGptB,QAAU,CAAEA,QAAS,0BAA2B3H,MAAO,YAAa38E,UAAW,CAACf,KAKvF,MAAMgkE,EAAW,EAAA+uC,SAASC,aAAahzG,GAGvC,OAFIgkE,GAAY1sE,EAAG8wE,WAAWpE,KAC1ByuC,EAAGntB,aAAe,YACfmtB,CACX,CAEA,WAAA/uB,CAAY1jF,GACR,OAAKA,EA6BDA,EAAK6yG,cACE,EAAAE,SAASE,mBAAmBz4G,IAAIyI,IAAK,CACtCwkC,MAAOxkC,EAAG6vG,KAAM,mBAAqB7vG,EAAG8hF,KAAM,SAEpD/kF,EAAKkzG,eACE,EAAAH,SAASI,oBAAoB34G,IAAIsB,IAAK,CACvC2rC,MAAO3rC,EAAGg3G,KAAM,wBAA0Bh3G,EAAGipF,KAAM,eAEzD/kF,EAAKozG,aACE,EAAAL,SAASM,cAAc74G,IAAI8Q,IAAK,CACjCm8B,MAAOn8B,EAAEoyE,MAAOo1B,KAAM,GAAI/tB,KAAM,UAAW6tB,WAAYtnG,EAAE+0D,KAAMklB,QAASj6E,EAAEqyE,aAAeryE,EAAEoyE,SAEjG19E,EAAKszG,YACE,EAAAP,SAASQ,YAAY/4G,IAAIwH,IAAK,CAC/BylC,MAAOzlC,EAAE07E,MAAOo1B,KAAM,GAAI/tB,KAAM,gBAAiB5zD,IAAKnvB,EAAEmvB,IAAKo0D,QAASvjF,EAAE27E,aAAe37E,EAAEmvB,OAE/FnxB,EAAK4iG,SACE5iG,EAAK4iG,SAET,GA/CI,CACH,CAAEn7D,MAAO,OAAQqrE,KAAM,cAAe/tB,KAAM,QAC5C,CAAEt9C,MAAO,iBAAkBqrE,KAAM,iBAAkB/tB,KAAM,QACzD,CAAEt9C,MAAO,cAAeqrE,KAAM,oBAAqB/tB,KAAM,UACzD,CAAEt9C,MAAO,cAAeqrE,KAAM,GAAI/tB,KAAM,qBAAsBquB,cAAc,EAAMd,aAAa,GAC/F,CAAE7qE,MAAO,qBAAsBqrE,KAAM,iBAAkB/tB,KAAM,UAC7D,CAAEt9C,MAAO,sBAAuBqrE,KAAM,mBAAoB/tB,KAAM,QAChE,CAAEt9C,MAAO,eAAgBqrE,KAAM,kBAAmB/tB,KAAM,gBACxD,CACIt9C,MAAO,QAASqrE,KAAM,GAAI/tB,KAAM,mBAAoButB,aAAa,EACjE1P,SAAU,CACN,CAAEn7D,MAAO,cAAeqrE,KAAM,2BAA4B/tB,KAAM,QAChE,CAAEt9C,MAAO,YAAaqrE,KAAM,qCAAsC/tB,KAAM,mBACxE,CAAEt9C,MAAO,SAAUqrE,KAAM,sBAAuB/tB,KAAM,cACtD,CAAEt9C,MAAO,mBAAoBqrE,KAAM,4BAA6B/tB,KAAM,iBACtE,CAAEt9C,MAAO,8BAA+BqrE,KAAM,gCAAiC/tB,KAAM,aACrF,CAAEt9C,MAAO,2BAA4BqrE,KAAM,oCAAqC/tB,KAAM,YACtF,CAAEt9C,MAAO,iBAAkBqrE,KAAM,0BAA2B/tB,KAAM,mBAClE,CAAEt9C,MAAO,kBAAmBqrE,KAAM,2BAA4B/tB,KAAM,gBACpE,CAAEt9C,MAAO,6BAA8BqrE,KAAM,wCAAyC/tB,KAAM,UAC5F,CAAEt9C,MAAO,oBAAqBqrE,KAAM,6BAA8B/tB,KAAM,iBAGhF,CAAEt9C,MAAO,gBAAiBqrE,KAAM,GAAI/tB,KAAM,OAAQuuB,aAAa,EAAMhB,aAAa,GAClF,CAAE7qE,MAAO,gBAAiBqrE,KAAM,GAAI/tB,KAAM,YAAamuB,gBAAgB,EAAMZ,aAAa,EAAMC,UAAU,GAC1G,CAAE9qE,MAAO,gBAAiBqrE,KAAM,GAAI/tB,KAAM,UAAW8tB,eAAe,EAAMP,aAAa,EAAMC,UAAU,GAuBnH,EAlFJ,yBAsFA,MAAaiB,EAQT,WAAAr3G,CAAoByuB,GAAA,KAAAA,QAAAA,EAChBqvD,EAAOuB,SAASyL,gBAAgB,kBAAoBC,GAAa7qF,KAAK8nC,OAAO+iD,IAC7EjN,EAAOuB,SAASyL,gBAAgB,yBAA2BC,GAAa7qF,KAAKo3G,cAAcvsB,IAC3FjN,EAAOuB,SAASyL,gBAAgB,yBAA0B,IAAM5qF,KAAKq3G,iBACrEz5B,EAAOuB,SAASyL,gBAAgB,4BAA6B,IAAM5qF,KAAKs3G,oBACxE15B,EAAOuB,SAASyL,gBAAgB,4BAA8BvsF,GAAS2B,KAAKu3G,iBAAiBl5G,IAC7Fu/E,EAAOuB,SAASyL,gBAAgB,4BAA6B,IAAM5qF,KAAKw3G,oBACxE55B,EAAOuB,SAASyL,gBAAgB,oBAAqB,IAAM5qF,KAAKy3G,YAChE75B,EAAOuB,SAASyL,gBAAgB,0BAA4BjnF,GAAS3D,KAAK03G,eAAe/zG,IACzFi6E,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAK23G,iBAAiB1wB,WACpFrJ,EAAOuB,SAASyL,gBAAgB,8BAA+B,IAAM5qF,KAAK43G,sBAC1Eh6B,EAAOuB,SAASyL,gBAAgB,sBAAwBjnF,GAAS3D,KAAK63G,WAAWl0G,IACjFi6E,EAAOuB,SAASyL,gBAAgB,oBAAsBjnF,GAAS3D,KAAK83G,SAASn0G,IAC7Ei6E,EAAOuB,SAASyL,gBAAgB,kCAAmC,IAAM5qF,KAAK+3G,0BAC9En6B,EAAOuB,SAASyL,gBAAgB,oBAAsBjnF,GAAS3D,KAAKg4G,aAAar0G,IACjF3D,KAAK+lE,QAAS,EACd/lE,KAAKqtF,IAAM9+D,EACXvuB,KAAKi4G,WAAQx8G,EACbuE,KAAK23G,iBAAmB,IAAI5B,EAC5B/1G,KAAKk4G,SAAWt6B,EAAOznE,OAAOu0E,eAAe,WAAY,CAAEC,iBAAkB3qF,KAAK23G,kBACtF,CAEA,aAAOvqB,CAAOC,GAIV,OAHK,EAAAqpB,WACD,EAAAA,SAAW,IAAIS,EAAS9pB,IAErB,EAAAqpB,QACX,CAEA,MAAA5uE,CAAO+iD,GACH,MAAM8J,EAAS/W,EAAOznE,OAAOu+E,iBAC7B,GAAIC,EAAQ,CACR,MAAMwjB,EAAiBxjB,EAAOrS,UAAUvxD,MAClCqnF,EAAYzjB,EAAOl+E,SAAS4hG,uBAAuBF,GAEzD,GAAIC,EAAW,CACX,MAAM18D,EAAO17C,KAAKs4G,QAAQ3jB,EAAQyjB,GAClC,EAAAt5B,WAAWy5B,gBAAgB78D,EAAMA,EACrC,CACJ,CACJ,CAEA,OAAA48D,CAAQ3jB,EAA2ByjB,GAC/B,IAAI3mB,EAAOkD,EAAOl+E,SAAS4tE,QAAQ+zB,GACnC,GAAIA,EAAUrnF,MAAMynF,UAAY,EAAG,CAC/B,MAAMC,EAAW,IAAI76B,EAAO4vB,SAAS4K,EAAUrnF,MAAMy0C,KAAM4yC,EAAUrnF,MAAMynF,UAAY,GACjFE,EAAS,IAAI96B,EAAO4vB,SAAS4K,EAAU5sF,IAAIg6C,KAAM4yC,EAAU5sF,IAAIgtF,WAC/DG,EAAc,IAAI/6B,EAAOyX,MAAMojB,EAAUC,GACzCE,EAAajkB,EAAOl+E,SAAS4tE,QAAQs0B,GACtB,KAAjBC,EAAW,KACXnnB,EAAOmnB,EACf,CACA,OAAOnnB,CACX,CAEA,iBAAAonB,CAAkBpnB,GACd,MAAMhzE,EAAMxhB,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAAS,SAC3Dg4B,EAAW77G,EAAKuH,KAAKia,EAAKgzE,EAAO,QACvC,OAAIx2F,EAAG8wE,WAAW+sC,GACD79G,EAAG2Z,aAAakkG,EAAU,QACzB,eAEX,cAAgBrnB,CAC3B,CAEA,aAAA2lB,CAAcvsB,GACV,GAAqB,SAAjB/+D,EAAGS,WAAuB,CAC1B,MAAMwsF,EAAW97G,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAAS,YAClE7lF,EAAG8wE,WAAWgtC,GACH,EAAQ,MAChB70E,KAAK,IAAI60E,KAAa,CAAChxG,EAAKkzE,EAAQ3gE,KACnC,GAAIvS,EAGA,OAFAiD,QAAQzL,MAAM,2BAA4BwI,QAC1C61E,EAAOznE,OAAOk7E,iBAAiB,6BAA6BtpF,EAAIyP,WAGpExM,QAAQC,IAAI,WAAagwE,GACzBjwE,QAAQC,IAAI,WAAaqP,KAG7BsjE,EAAOznE,OAAOk7E,iBAAiB,wBAAwB0nB,IAG/D,MACIn7B,EAAOznE,OAAOoqE,uBAAuB,kCAE7C,CAEA,aAAA82B,GACIr3G,KAAKg5G,oBAAoB,QAC7B,CAEA,gBAAA1B,GACIt3G,KAAKg5G,oBAAoB/7G,EAAKuH,KAAK,eAAgB,aACvD,CAMA,gBAAA+yG,CAAiBl5G,GACb,GAAoB,iBAATA,GAAqBA,EAAKuK,OAAQ,CACzC,GAAI5I,KAAKi5G,WAAW56G,GAEhB,YADA2B,KAAKg5G,oBAAoB36G,GAG7B,MAAMmyE,EAAQnyE,EAAKkY,cACnB,GAAIi6D,IAAUnyE,GAAQ2B,KAAKi5G,WAAWzoC,GAElC,YADAxwE,KAAKg5G,oBAAoBxoC,EAGjC,CACAxwE,KAAKs3G,kBACT,CAEA,gBAAAE,GACIx3G,KAAKg5G,oBAAoB/7G,EAAKuH,KAAK,eAAgB,yBACvD,CAEA,mBAAAw0G,CAAoBE,GAChB,MAAMC,EAASl8G,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAAS,WAAYo4B,EAAe,OAC3Fj+G,EAAG8wE,WAAWotC,GACdv7B,EAAOuB,SAASC,eAAe,uBAAwBxB,EAAOC,IAAI7Z,KAAKm1C,IAEvEv7B,EAAOznE,OAAOk7E,iBAAiB,6BAA6B8nB,IAEpE,CAEA,QAAA1B,GACIz3G,KAAKg5G,oBAAoB,cAC7B,CAEA,cAAAtB,CAAe/zG,GACPA,GAAQA,EAAK8yG,MACbz2G,KAAKg5G,oBAAoBr1G,EAAK8yG,KACtC,CAQQ,SAAA2C,GACJ,OAAOn8G,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAAS,WAAY,SAAU,oBACtF,CAEA,SAAAo2B,GACI,MAAMlzC,EAAOhkE,KAAKo5G,YAClB,IAAKn+G,EAAG8wE,WAAW/H,GAAO,MAAO,GACjC,MAAMq1C,EAAgE,GACtE,IAAK,MAAMvZ,KAAO7kG,EAAG2Z,aAAaovD,EAAM,QAAQhoE,MAAM,SAAU,CAC5D,MAAMwpE,EAAOs6B,EAAI1uF,OACjB,IAAKo0D,GAAQA,EAAKlnD,WAAW,KAAM,SACnC,MAAMwK,EAAQ08C,EAAKxpE,MAAM,KAAKmC,IAAI8Q,GAAKA,EAAEmC,QACrC0X,EAAMlgB,QAAU,GAAKkgB,EAAM,IAC3BuwF,EAAM13G,KAAK,CAAE0/E,MAAOv4D,EAAM,IAAMA,EAAM,GAAIgM,IAAKhM,EAAM,GAAIw4D,YAAax4D,EAAM,SAAMrtB,GAC1F,CACA,OAAO49G,CACX,CAEA,QAAAvB,CAASn0G,GACDA,GAAQA,EAAKmxB,KACb8oD,EAAO3nE,IAAIqjG,aAAa17B,EAAOC,IAAIn0E,MAAM/F,EAAKmxB,KACtD,CAQA,YAAA6hF,CAAahzG,GACT,GAAKA,EACL,OAAIA,EAAK4yG,WACEt5G,EAAKuH,KAAKxE,KAAKu5G,aAAc51G,EAAK4yG,YACzC5yG,EAAK8yG,KACEx5G,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAAS,WAAYn9E,EAAK8yG,KAAO,YADxF,CAGJ,CAIM,YAAAuB,CAAar0G,G,kDACf,MAAMgkE,EAAW3nE,KAAK22G,aAAahzG,GAC/BgkE,GAAY1sE,EAAG8wE,WAAWpE,UACpBiW,EAAO3nE,IAAIq3E,UAAUC,UAAU5lB,GACrCiW,EAAOznE,OAAOoqE,uBAAuB,gBAAgB5Y,MAErDiW,EAAOznE,OAAOk7E,iBAAiB,4CAEvC,E,CAIQ,UAAAkoB,GACJ,OAAOt8G,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAAS,WAAY,SAAU,UACtF,CAGQ,eAAA04B,GACJ,MAAMloB,EAAY,EAAAxS,WAAWiQ,kBAAkB9P,OACzCw6B,EAA4B,UAAlB3tF,EAAGS,WAAyB,UAAY,MAClDmtF,EAAM,EAAA56B,WAAW66B,qBACvB,MAAO,CACHC,UAAW38G,EAAKuH,KAAK8sF,EAAWmoB,GAChCnoB,UAAWA,EACXuoB,cAAe,EAAA/6B,WAAWgC,yBAC1Bg5B,aAAc,EAAAh7B,WAAWsB,wBAAwBnB,OACjD86B,aAAc,EAAAj7B,WAAWgC,uBAAuB,sBAChDk5B,aAAc,EAAAl7B,WAAWgC,uBAAuB,aAChDm5B,QAAS,EAAAn7B,WAAWgC,uBAAuB,QAC3Co5B,QAASj9G,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAAS,YAC9Dq5B,gBAAkBT,GAAOA,EAAIz6B,QAAUy6B,EAAIz6B,OAAOr2E,OAAS,EAAK8wG,EAAIz6B,OAAS,uBAErF,CAEQ,mBAAAm7B,CAAoBtpE,GACxB,MAAMupE,EAAOr6G,KAAKw5G,kBAClB,OAAO1oE,EAAKv7B,QAAQ,iBAAkB,CAACiB,EAAGnY,SAAyB5C,IAAf4+G,EAAKh8G,GAAsBg8G,EAAKh8G,GAAQmY,EAChG,CAKA,WAAAwgG,GACI,MAAMv4F,EAAMze,KAAKu5G,aACjB,OAAKt+G,EAAG8wE,WAAWttD,GACZxjB,EAAGM,YAAYkjB,GACjBna,OAAOyP,GAAKA,EAAEwC,cAAc3W,SAAS,QACrCmuB,OACA5vB,IAAI4V,IACD,MAAM+rF,EAAM7kG,EAAG2Z,aAAa3X,EAAKuH,KAAKia,EAAK1K,GAAI,QACzCuhE,GAASwqB,EAAI9jG,MAAM,SAAS,IAAM,IAAIuZ,QAAQ,SAAU,IAAInE,OAC5DoF,EAAIspF,EAAItqF,MAAM,iCACpB,MAAO,CAAEwuD,KAAMjwD,EAAGstE,MAAO/L,GAASvhE,EAAEwB,QAAQ,SAAU,IAAK+rE,YAAa9qE,EAAIA,EAAE,GAAGpF,YAAS3V,KARlE,EAUpC,CAIc,qBAAA6+G,CAAsBxpE,G,wDAC1B8sC,EAAO3nE,IAAIq3E,UAAUC,UAAUz8C,GACrC8sC,EAAOznE,OAAOoqE,uBAAuB,2DACzC,E,CAKM,gBAAAg6B,CAAiBv2C,G,kDACnB,MAAMw2C,EAAOv9G,EAAKuH,KAAKxE,KAAKu5G,aAAcv1C,GAC1C,IAAK/oE,EAAG8wE,WAAWyuC,GAEf,YADA58B,EAAOznE,OAAOk7E,iBAAiB,0BAA0BmpB,KAG7D,MAAM1a,EAAM7kG,EAAG2Z,aAAa4lG,EAAM,QAC5BC,EAAK3a,EAAIl6F,QAAQ,MACvB,IAAIu7B,EAAOs5E,GAAM,EAAI3a,EAAItvF,MAAMiqG,EAAK,GAAK,GACzCt5E,EAAOA,EAAK5rB,QAAQ,8BAA+B,IACnD,MAAM0tE,EAAUjjF,KAAKo6G,oBAAoBj5E,GAAM5rB,QAAQ,OAAQ,IACzDmlG,QAAY98B,EAAOmT,UAAU4pB,iBAAiB,CAAE13B,UAAS23B,SAAU,mBACnEh9B,EAAOznE,OAAO43E,iBAAiB2sB,SAC/B16G,KAAKs6G,sBAAsBr3B,EACrC,E,CAEA,UAAA40B,CAAWl0G,GACHA,GAAQA,EAAK4yG,YACbv2G,KAAK66G,oBAAoBl3G,EAAK4yG,WACtC,CAMM,mBAAAsE,CAAoB72C,G,kDACtB,MAAMw2C,EAAOv9G,EAAKuH,KAAKxE,KAAKu5G,aAAcv1C,GAC1C,IAAK/oE,EAAG8wE,WAAWyuC,GAEf,YADA58B,EAAOznE,OAAOk7E,iBAAiB,0BAA0BmpB,KAG7D,MAAM1a,EAAM7kG,EAAG2Z,aAAa4lG,EAAM,QAAQjlG,QAAQ,8BAA+B,IAC3E0tE,EAAUjjF,KAAKo6G,oBAAoBta,GAAKvqF,QAAQ,OAAQ,IACxDulG,EAAS79G,EAAKuH,KAAKsnB,EAAGs1E,SAAU,sBACjCnmG,EAAG8wE,WAAW+uC,IAAS7/G,EAAGsZ,UAAUumG,EAAQ,CAAEp8F,WAAW,IAC9D,MAAMq8F,EAAU99G,EAAKuH,KAAKs2G,EAAQ92C,GAClC/oE,EAAG0Z,cAAcomG,EAAS93B,EAAS,QACnCrF,EAAOuB,SAASC,eAAe,uBAAwBxB,EAAOC,IAAI7Z,KAAK+2C,IAIvE,MAAMN,EAAK3a,EAAIl6F,QAAQ,MACjBu7B,EAAOnhC,KAAKo6G,oBAAoBK,GAAM,EAAI3a,EAAItvF,MAAMiqG,EAAK,GAAK3a,GAAKvqF,QAAQ,OAAQ,UACnFvV,KAAKs6G,sBAAsBn5E,EACrC,E,CAIM,kBAAAy2E,G,kDACF,MAAM5xE,EAAOhmC,KAAKg3G,cAClB,GAAIhxE,EAAKp9B,OAEL,kBADM5I,KAAKu6G,iBAAiBv0E,EAAK,GAAGg+B,OAGxC,MAAMp9D,EAAI5G,KAAKw5G,kBACT95B,EACd,iSAEqD94E,EAAEgzG,oFACiBhzG,EAAEkzG,iFACRlzG,EAAEmzG,6CACtCnzG,EAAEizG,uFACuCjzG,EAAEozG,+CACzCpzG,EAAEqzG,2oBAKpBS,QAAY98B,EAAOmT,UAAU4pB,iBAAiB,CAAE13B,QAASvD,EAAQk7B,SAAU,mBAC3Eh9B,EAAOznE,OAAO43E,iBAAiB2sB,EACzC,E,CAEA,UAAAzB,CAAWC,GACP,OAAOj+G,EAAG8wE,WAAW9uE,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAAS,WAAYo4B,EAAe,OACzG,CAIA,gBAAAtC,GACI,MAAMn4F,EAAMxhB,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAAS,WAAY,SAAU,YACvF,OAAK7lF,EAAG8wE,WAAWttD,GACZxjB,EAAGM,YAAYkjB,GACjBna,OAAOyP,GAAKA,EAAEwC,cAAc3W,SAAS,QACrCzB,IAAI4V,GAAKA,EAAEwB,QAAQ,SAAU,KAC7BwY,KAAK,CAACtuB,EAAGC,IAAMM,KAAKg7G,gBAAgBt7G,EAAGD,IAJZ,EAKpC,CAKA,iBAAAq3G,GACI,MAAMr4F,EAAMxhB,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,QAAS,WAAY,SAAU,iBACvF,OAAK7lF,EAAG8wE,WAAWttD,GACZxjB,EAAGM,YAAYkjB,GACjBna,OAAOyP,GAAKA,EAAEwC,cAAc3W,SAAS,QACrCzB,IAAI4V,GAAKA,EAAEwB,QAAQ,SAAU,KAC7BwY,KAAK,CAACtuB,EAAGC,IAAMA,EAAEylG,cAAc1lG,IAJJ,EAKpC,CAGA,eAAAu7G,CAAgBv7G,EAAWC,GACvB,MAAMu7G,EAAKx7G,EAAEzD,MAAM,KAAKmC,IAAIqT,GAAKpV,SAASoV,EAAG,KAAO,GAC9C0pG,EAAKx7G,EAAE1D,MAAM,KAAKmC,IAAIqT,GAAKpV,SAASoV,EAAG,KAAO,GAC9CwzB,EAAMl1B,KAAKF,IAAIqrG,EAAGryG,OAAQsyG,EAAGtyG,QACnC,IAAK,IAAI8G,EAAI,EAAGA,EAAIs1B,EAAKt1B,IAAK,CAC1B,MAAMm8B,GAAKovE,EAAGvrG,IAAM,IAAMwrG,EAAGxrG,IAAM,GACnC,GAAU,IAANm8B,EAAS,OAAOA,CACxB,CACA,OAAO,CACX,CAEQ,gBAAA+1D,G,QACJ,MAAMh7F,EAAmC,QAA/B,EAAkB,QAAlB,EAAA5G,KAAKqtF,IAAIrlD,iBAAS,eAAEmzE,mBAAW,eAAEr4C,QAC3C,MAAqB,iBAANl8D,GAAkBA,EAAEgC,OAAUhC,EAAK,EAAAk4E,WAAWhc,SAAW,EAC5E,CAKA,eAAAs4C,GACI,IACSp7G,KAAKq7G,qBACNr7G,KAAKs7G,oBACb,CAAE,SAEF,CACJ,CAKA,iBAAAD,GACI,MAAMvhG,EAAM,0BACNkV,EAAUhvB,KAAK4hG,mBACf2Z,EAAWv7G,KAAKqtF,IAAImuB,YAAY5iG,IAAYkB,GAElD,IAAKyhG,EAED,QAAIv7G,KAAKi5G,WAAW,iBAChBj5G,KAAKy3G,WACLz3G,KAAKqtF,IAAImuB,YAAY5X,OAAO9pF,EAAKkV,IAC1B,GAKf,GAAIA,GAAWhvB,KAAKg7G,gBAAgBhsF,EAASusF,GAAY,EAAG,CACxD,MAAMlrG,EAAOrQ,KAAK42G,mBAAmBvlG,KAAKzK,GACtC5G,KAAKg7G,gBAAgBp0G,EAAG20G,GAAY,GACpCv7G,KAAKg7G,gBAAgBp0G,EAAGooB,IAAY,GAExC,GADAhvB,KAAKqtF,IAAImuB,YAAY5X,OAAO9pF,EAAKkV,GAC7B3e,EAEA,OADArQ,KAAKg5G,oBAAoB,mBAAqB3oG,IACvC,CAEf,CACA,OAAO,CACX,CAKA,sBAAA0nG,GACI,MAAM/xE,EAAOhmC,KAAK82G,oBACE,IAAhB9wE,EAAKp9B,OAIT5I,KAAKg5G,oBAAoB,wBAA0BhzE,EAAK,IAHpD43C,EAAOznE,OAAOoqE,uBAAuB,0BAI7C,CAOA,kBAAA+6B,G,MACI,MAAMxhG,EAAM,4BACN2hG,EAAUz7G,KAAK82G,oBACrB,GAAuB,IAAnB2E,EAAQ7yG,OAAc,OAAO,EACjC,MAAM8yG,EAA8C,QAAvC,EAAA17G,KAAKqtF,IAAImuB,YAAY5iG,IAAckB,UAAI,QAAI,GAClD6hG,EAASF,EAAQpqG,KAAK5R,IAAMi8G,EAAK58F,SAASrf,IAGhD,OADAO,KAAKqtF,IAAImuB,YAAY5X,OAAO9pF,EAAK2hG,KAC7BE,IACA37G,KAAKg5G,oBAAoB,wBAA0B2C,IAC5C,EAGf,EA9bJ,Y,2HC9GA,0BACA,0BACA,UAGA,kBASI,WAAA77G,GAPO,KAAA++E,UAAYpjF,EACX,KAAAmgH,QAAkB,GAClB,KAAA3xB,QAAkB,GAClB,KAAAtiB,SAAmB,GACnB,KAAAwnC,QAAkB,EAClB,KAAAppC,QAAkB,CAG1B,CAEA,WAAA81C,CAAY5xB,EAAiB52E,GAOzB,OANArT,KAAK+lE,QAAS,EACd/lE,KAAKiqF,QAAUhtF,EAAKuH,KAAKylF,EAAQ,WACjCjqF,KAAK2nE,SAAW1qE,EAAKuH,KAAKxE,KAAKiqF,QAAQ52E,EAAS,SAC5CpY,EAAG8wE,WAAW/rE,KAAK2nE,YACnB3nE,KAAK+lE,QAAS,GAEX/lE,KAAK+lE,MAChB,CAEA,UAAA+1C,GACI,OAAO97G,KAAK+lE,MAChB,CAEA,WAAAg2C,GACI,OAAO/7G,KAAK2nE,QAChB,CAEA,SAAAiX,CAAUqL,EAAqB52E,GAC3B,GAAIrT,KAAK67G,YAAY5xB,EAAQhL,OAAO5rE,KAChCrT,KAAK47G,QAAU3gH,EAAG2Z,aAAa5U,KAAK2nE,SAAU,QAC1C3nE,KAAK47G,QAAQhzG,QACb,IAEI,OADA5I,KAAK6+E,KAAOtnE,KAAK7N,MAAM1J,KAAK47G,UACrB,CACX,CAAE,MAAM5+E,GAEJ,OADA,EAAA8hD,WAAWwF,aAAa,qBAAuBtkF,KAAK2nE,SAAW,OAAS3qC,IACjE,CACX,CAGR,OAAO,CACX,CAEA,QAAAwmD,CAASyG,EAAiB52E,EAAkBwrE,GAIxC,OAHA7+E,KAAK6+E,KAAOA,EACZ7+E,KAAK67G,YAAY5xB,EAAQ52E,GACzBrT,KAAK4T,aACE,CACX,CAEA,SAAAA,GACI,MAAMgoG,EAAUrkG,KAAKhO,UAAUvJ,KAAK6+E,KAAK,KAAK7+E,KAAKmvG,SACnD,IAAKl0G,EAAG8wE,WAAW/rE,KAAKiqF,SACpB,IACIhvF,EAAGsZ,UAAUvU,KAAKiqF,QACtB,CAAE,MAAOliF,GACLiD,QAAQC,IAAI,kCAAoClD,EAAIyP,QACxD,CAGJ,IACIvc,EAAG0Z,cAAc3U,KAAK2nE,SAASi0C,EAAQ,CAACr/E,KAAK,KACjD,CAAE,MAAOx0B,GACLiD,QAAQC,IAAI,sBAAwBjL,KAAK2nE,SAAW,KAAO5/D,EAAIyP,QACnE,CACJ,E,0IC1EJ,0BACA,0BACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,0BACA,yBACA,UACA,UAOA,MAAawkG,EAOZ,OAAA/0B,GACCjnF,KAAKknF,qBAAqBC,MAC3B,CAEA,WAAArnF,GATgB,KAAAm8G,WAAa,6BAErB,KAAA/0B,qBAA8E,IAAItJ,EAAOj7E,aACxF,KAAAykF,oBAAsEpnF,KAAKknF,qBAAqBxxD,KAMzF,CAEV,WAAA2xD,CAAY60B,G,kDACjB,OAAIA,EACIl8G,KAAKm8G,WAAWD,EAAO38B,KAE3B,EAAAT,WAAWqB,sBAAwB,EAAArB,WAAW2I,gBAAkB,EAAA3I,WAAW6D,SAASmC,WAChF9kF,KAAKm8G,WAAW,EAAAr9B,WAAW6D,SAASqB,kBAErC,EACR,E,CAEA,WAAAiE,CAAYi0B,GACX,MAAMh0B,EAAW,IAAItK,EAAOuK,SAAS+zB,EAAO38B,IAAK28B,EAAOhxG,OAAS0yE,EAAO2L,SAASC,UAAY5L,EAAOyK,yBAAyBE,UAAY3K,EAAOyK,yBAAyBC,MAEzK,GAAIJ,EAAS98C,OAASprC,KAAKi8G,WAAY,CACtC,MAAM59G,EAAOpB,EAAKuW,SAAS0oG,EAAO38B,IAAIN,QAChCm9B,EAAgB/9G,EAAKuB,SAAS,SAAWvB,EAAKuB,SAAS,QAAUvB,EAAKuB,SAAS,UAEhFw8G,IACJl0B,EAASc,QAAU,CAAEA,QAAS,kBAAmB3H,MAAO,YAAa38E,UAAW,CAACw3G,KAElFh0B,EAASe,aAAe,KAExB,MAAMP,EAAO,EAAA5J,WAAWu9B,gBAAgBH,EAAO38B,IAAIN,QAOnD,GALAiJ,EAASU,SAAW,CACnBC,MAAOjL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,QAASJ,IAC/EK,KAAMnL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQJ,KAG1E0zB,EAAe,CAGlBl0B,EAASe,aAAe,cACxB,IACC,MAAM9tF,EAAOF,EAAGI,SAAS6gH,EAAO38B,IAAIN,QACpCiJ,EAAS5G,YAAcnmF,EAAKmZ,MAAM81B,gBACnC,CAAE,MAAuD,GAAC,CAE1D,OADA89C,EAASgB,QAAUgzB,EAAO38B,IAAIN,OACvBiJ,CACR,EAEI7pF,EAAKuB,SAAS,SAAWvB,EAAKuB,SAAS,UAAYvB,EAAKuB,SAAS,UAAYvB,EAAKuB,SAAS,aAC9FsoF,EAASe,aAAe,UAErB5qF,EAAKuB,SAAS,OACjBsoF,EAASe,aAAe,MACf5qF,EAAKuB,SAAS,QAGvBsoF,EAASe,aAAef,EAASe,aAAe,MAFhDf,EAASe,aAAef,EAASe,aAAe,OAK7C,oBAAoBhuE,KAAK5c,KAC5B6pF,EAASe,aAAef,EAASe,aAAe,WAClD,MACCf,EAASe,aAAe,QAGzB,OAAOf,CACR,CAEA,UAAAi0B,CAAW19F,GACV,MAAM5K,EAAQ/J,QACR5L,EAAU,EAAA6hF,SAASuJ,kBAAkB7qE,GAC3C,EAAAqgE,WAAW35E,IAAIm3G,QACf,EAAAx9B,WAAWgB,SAAW,GAGtB,MAAMy8B,EAAQ,CAAC,QAAS,SAAU,OAAQ,QAAS,OAAQ,QAAS,QAAS,QAE7E,IAAK,MAAMtlB,KAAOslB,EACjB,IAAK,MAAM59G,KAAST,EACfS,EAAMuM,MAAQ0yE,EAAO2L,SAASC,WAAa7qF,EAAM4gF,IAAIN,OAAOr/E,SAASq3F,KACxEpjF,EAAMlS,KAAK,CAAE49E,IAAK5gF,EAAM4gF,IAAKr0E,KAAMvM,EAAMuM,OACrCvM,EAAM4gF,IAAIN,OAAOr/E,SAAS,SAC7B,EAAAk/E,WAAWgB,SAASn+E,KAAKhD,EAAM4gF,MASnC,GAAI,EAAAT,WAAW6D,SAASmC,YAAcrmE,EAAIwgE,SAAW,EAAAH,WAAW6D,SAASqB,iBAAiB/E,OAAQ,CACjG,MAAMu9B,EAAU,EAAA19B,WAAW6D,SAASqC,uBAAuB/F,OACrDw9B,EAA2B,UAAlB3wF,EAAGS,WAAyB,OAA2B,WAAlBT,EAAGS,WAA0B,SAAW,MACtFo0D,EAAe1jF,EAAKuW,SAASgpG,EAAQjnG,QAAQ,UAAW,KACxDmnG,EAAe,CACpBz/G,EAAKuH,KAAKg4G,EAAS,KAAOC,GAC1Bx/G,EAAKuH,KAAKg4G,EAAS,WAAaC,GAChCx/G,EAAKuH,KAAKg4G,EAAS77B,EAAe87B,IAInC,IAAK,MAAMtiB,IAAW,IAAI,IAAIx1F,IAAI+3G,IAC7BzhH,EAAG8wE,WAAWouB,IACjBtmF,EAAMlS,KAAK,CAAE49E,IAAK3B,EAAOC,IAAI7Z,KAAKm2B,GAAUjvF,KAAM0yE,EAAO2L,SAASK,MAGrE,CAOA,OAJoB,GAAhB/1E,EAAMjL,QACTiL,EAAMlS,KAAK,CAAE49E,IAAKv/E,KAAKi8G,WAAY/wG,KAAM0yE,EAAO2L,SAASozB,UAGnD9oG,CACR,CAEA,aAAA+oG,CAAcn+F,GACb,MAAM5K,EAAQ,EAAAksE,SAAS6F,SAASnnE,GAChC,IAAK,MAAMulD,KAAQnwD,EAClB,IAAKmwD,EAAKib,OAAOr/E,SAAS,QACzB,OAAO,EAET,OAAO,CACR,CAEA,YAAAi9G,CAAaX,GACZ,GAAI,EAAAp9B,WAAWqB,qBAAsB,CACpC,MAAM15E,EAAoC,CACzC6oF,eAAe,EACfC,UAAW,uBACXC,WAAY,EAAA1Q,WAAWuB,qBACvB+O,gBAAgB,EAChBC,kBAAkB,EAClBytB,QAAS,CACR,aAAc,CAAC,MAAO,MAAO,OAAQ,OACrC,YAAa,CAAC,OAIhBl/B,EAAOznE,OAAOs5E,eAAehpF,GAASuC,KAAK44E,IAC1C,GAAKA,EAAL,CAGA,IAAK,MAAMm7B,KAAOn7B,EAAY,CAC7B,MAAMvuE,EAAWpW,EAAKuW,SAASupG,EAAI99B,QACnC,IAAIxgE,EAAM,EAAAqgE,WAAW6D,SAAS3D,oBAAoBC,OAClD,GAAIi9B,EACHz9F,EAAMxhB,EAAKuhB,QAAQ09F,EAAO38B,IAAIN,aACxB,GAAI,EAAAH,WAAW6D,SAASyC,cAAe,CAC7C,MAAM43B,EAAW,EAAAl+B,WAAW6D,SAASyC,cAAcnG,OAElDxgE,EADGxjB,EAAG8wE,WAAWixC,GACX//G,EAAKuhB,QAAQw+F,GAEb,EAAAl+B,WAAW6D,SAAS3D,oBAAoBC,MAChD,CACA,MAAMomB,EAAUznB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKia,EAAKpL,IAC/C,EAAAyrE,WAAWgD,QAAQG,iBAAiB86B,EAAK1X,EAAS,CAAC,EAAAnjB,cAAcsE,IAAK,EAAApE,cAAcU,KACrF,CACA,EAAAhE,WAAWgD,QAAQC,cAhBnB,GAkBF,CACD,CAEA,cAAAk7B,CAAef,GACd,GAAI,EAAAp9B,WAAWqB,qBAAsB,CACpC,MAAM15E,EAAoC,CACzC6oF,eAAe,EACfC,UAAW,yBACXC,WAAY,EAAA1Q,WAAWuB,qBACvB+O,gBAAgB,EAChBC,kBAAkB,GAGnBzR,EAAOznE,OAAOs5E,eAAehpF,GAASuC,KAAK44E,IAC1C,GAAKA,EAAL,CAGA,IAAK,MAAMm7B,KAAOn7B,EAAY,CAC7B,MAAMpjE,EAAUvhB,EAAKuW,SAASupG,EAAI99B,QAClC,IAAIxgE,EAAM,EAAAqgE,WAAW6D,SAAS3D,oBAAoBC,OAC9Ci9B,IACHz9F,EAAMxhB,EAAKuhB,QAAQ09F,EAAO38B,IAAIN,SAE/B,MAAMomB,EAAUznB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKia,EAAKD,IAC/C,EAAAsgE,WAAWgD,QAAQG,iBAAiB86B,EAAK1X,EAAS,CAAC,EAAAnjB,cAAcsE,IAAK,EAAApE,cAAcU,KACrF,CACA,EAAAhE,WAAWgD,QAAQC,cAVnB,GAYF,CACD,CAEA,MAAA3b,CAAO81C,GACF,EAAAp9B,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAOmC,EAAKuW,SAAS0oG,EAAO38B,IAAIN,QAASS,OAAQ,4BAA6B12E,KAAK22E,IAC/G,GAAIA,EAAS,CACZ,MAAMuwB,EAAWgM,EAAO38B,IACY,GAAhCtiF,EAAKuqC,QAAQm4C,GAAS/2E,SACzB+2E,GAAoB1iF,EAAKuqC,QAAQ00E,EAAO38B,IAAIN,SAC7C,MAAMgQ,EAAUrR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQ09F,EAAO38B,IAAIN,QAASU,IAC3E,EAAAI,SAAS3Z,OAAO8pC,EAASjxB,OAAQgQ,EAAQhQ,QACzC,MAAMi+B,EAAgBt/B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK0rG,EAASjxB,OAAS,EAAAH,WAAW4F,aAC7E,GAAI,EAAA3E,SAAS5gE,MAAM+9F,EAAcj+B,QAAS,CACzC,MAAMk+B,EAAev/B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQ09F,EAAO38B,IAAIN,QAASU,EAAU,EAAAb,WAAW4F,aACrG,EAAA3E,SAAS3Z,OAAO82C,EAAcj+B,OAAQk+B,EAAal+B,OACpD,CACArB,EAAOuB,SAASC,eAAe,oBAChC,GAGH,CAEA,SAAAg+B,CAAUlB,GACL,EAAAp9B,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAOmC,EAAKuW,SAAS0oG,EAAO38B,IAAIN,QAASS,OAAQ,iCAAkC12E,KAAK22E,IACpH,GAAIA,EAAS,CACZ,MAAMuwB,EAAWgM,EAAO38B,IAClB0P,EAAUrR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQ09F,EAAO38B,IAAIN,QAASU,IAC3E,EAAAI,SAAS3Z,OAAO8pC,EAASjxB,OAAQgQ,EAAQhQ,QACzCrB,EAAOuB,SAASC,eAAe,oBAChC,GAGH,EArOD,uBAyOA,MAAai+B,EAMZ,WAAAv9G,CAAYyuB,GAHJ,KAAA+uF,SAAW,IAAI,EAAAC,SACf,KAAA5vB,SAAW,IAAI,EAAAlL,SAGtB,MAAMkI,EAAmB,IAAIqxB,EAC7Bh8G,KAAKw9G,OAAS5/B,EAAOznE,OAAOu0E,eAAe,SAAU,CAAEC,qBACvD/M,EAAOuB,SAASyL,gBAAgB,oBAAqB,IAAMD,EAAiB1D,WAC5ErJ,EAAOuB,SAASyL,gBAAgB,sBAAwB6yB,GAAW9yB,EAAiBkyB,aAAaY,IACjG7/B,EAAOuB,SAASyL,gBAAgB,wBAA0B6yB,GAAW9yB,EAAiBsyB,eAAeQ,IACrG7/B,EAAOuB,SAASyL,gBAAgB,gBAAkB6yB,GAAW9yB,EAAiBvkB,OAAOq3C,IACrF7/B,EAAOuB,SAASyL,gBAAgB,mBAAqB6yB,GAAW9yB,EAAiByyB,UAAUK,IAE3F7/B,EAAOuB,SAASyL,gBAAgB,kBAAoB6yB,GAAWz9G,KAAK09G,WAAWD,IAC/E7/B,EAAOuB,SAASyL,gBAAgB,kBAAmB,IAAM5qF,KAAK29G,YAC9D//B,EAAOuB,SAASyL,gBAAgB,gBAAiB,IAAM5qF,KAAKkZ,UAC5D0kE,EAAOuB,SAASyL,gBAAgB,oBAAsB6yB,GAAWz9G,KAAK49G,WAAWH,GAAQ,IACzF7/B,EAAOuB,SAASyL,gBAAgB,qBAAuB6yB,GAAWz9G,KAAK69G,YAAYJ,GAAQ,IAC3F7/B,EAAOuB,SAASyL,gBAAgB,oBAAsB6yB,GAAWz9G,KAAK+qF,WAAW0yB,IACjF7/B,EAAOuB,SAASyL,gBAAgB,mBAAqB6yB,GAAWz9G,KAAK+qF,WAAW0yB,IAChF7/B,EAAOuB,SAASyL,gBAAgB,qBAAuB6yB,GAAWz9G,KAAKqrF,YAAYoyB,IACnF7/B,EAAOuB,SAASyL,gBAAgB,sBAAuB,IAAM5qF,KAAK89G,gBAClElgC,EAAOuB,SAASyL,gBAAgB,oBAAqB,IAAM5qF,KAAK+9G,cAChEngC,EAAOuB,SAASyL,gBAAgB,kBAAoB6yB,GAAWz9G,KAAKg+G,SAASP,IAC7E7/B,EAAOuB,SAASyL,gBAAgB,iBAAkB,IAAM5qF,KAAKwrF,WAC7D5N,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAKi+G,iBACnErgC,EAAOuB,SAASyL,gBAAgB,sBAAwB6yB,GAAWz9G,KAAKk+G,aAAaT,IACrF7/B,EAAOuB,SAASyL,gBAAgB,wBAA0B6yB,GAAWz9G,KAAKm+G,eAAeV,IACzF7/B,EAAOuB,SAASyL,gBAAgB,oBAAqB,IAAM5qF,KAAKo+G,cAChExgC,EAAOuB,SAASyL,gBAAgB,eAAgB,IAAM5qF,KAAK0sF,SAC3D9O,EAAOuB,SAASyL,gBAAgB,gBAAkB6yB,GAAWz9G,KAAKq+G,OAAOZ,IACzE7/B,EAAOuB,SAASyL,gBAAgB,mBAAoB,IAAM5qF,KAAKs/E,aAC/D1B,EAAOuB,SAASyL,gBAAgB,iBAAmB6yB,GAAWz9G,KAAKs+G,QAAQb,IAC3E7/B,EAAOuB,SAASyL,gBAAgB,kBAAoB6yB,GAAWz9G,KAAKu+G,YACpE3gC,EAAOuB,SAASyL,gBAAgB,kBAAmB,IAAM5qF,KAAKw+G,YAC9D5gC,EAAOuB,SAASyL,gBAAgB,mBAAqBjnF,GAAe3D,KAAKy+G,UAAU96G,GACpF,CAEA,aAAOypF,CAAOC,GAIb,OAHK,EAAAmwB,SACJ,EAAAA,OAAS,IAAIH,EAAOhwB,IAEd,EAAAmwB,MACR,CAEA,QAAAe,GACC,MAAMG,EAAUzhH,EAAKuH,KAAK,EAAAs6E,WAAWgC,yBAA0B,aACzD30D,EAAgC,GAEhC8b,EAAiB,GACvBA,EAAKtmC,KAAK,SACVsmC,EAAKtmC,KAAK,QACV,MAAMg9G,EAAY,EAAA5+B,SAAS6F,SAAShI,EAAOC,IAAI7Z,KAAK06C,GAAUz2E,EAAM,EAAAs8D,aAAa+B,MACjF,IAAK,MAAMsY,KAAYD,EAAW,CACjC,MAEM/D,EAAW39G,EAAKuW,SAASorG,EAAS3/B,QACxC9yD,EAAMxqB,KAAK,CAAEypC,MAAOwvE,EAAUt5B,YAAa,GAAGs5B,uDAC/C,CAEoB,GAAhBzuF,EAAMvjB,OAKVg1E,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,kBAAmBK,aAAa,EAAOC,YAAa,+CAAgD34E,KAAKs5E,IAC/IA,GAEDA,EAAUl3C,OACbprC,KAAK6+G,eAAe,iCAAkC,YAAav8B,EAAUl3C,MAAO,CAAC,QAAS,OAAQ,WARvGwyC,EAAOznE,OAAOypE,mBAAmB,oCAWnC,CAEA,QAAA4+B,GACCx+G,KAAK6+G,eAAe,cAAe,OAAQ,GAAI,CAAC,QAAS,OAAQ,QAClE,CAEA,OAAAP,CAAQpC,GACP,EAAAp9B,WAAW35E,IAAI2Q,KAAKomG,EAAO38B,IAC5B,CAEA,SAAAD,GACC,MAAMC,EAAM,EAAAT,WAAW6D,SAASqB,iBAChC,EAAAlF,WAAW6D,SAASrD,UAAUC,EAC/B,CAEA,MAAA8+B,CAAOnC,GACN,EAAAp9B,WAAW35E,IAAI25G,QAAQ5C,EAAO38B,KAAK,EACpC,CAEA,KAAAmN,GAEC9O,EAAOuB,SAASC,eAAe,cAAexB,EAAOC,IAAIn0E,MAD7C,wCAEb,CAMA,QAAAs0G,CAAS9B,G,MACR,IAAKA,IAAWA,EAAO38B,IAAK,OAC5B,MAAMN,EAASi9B,EAAO38B,IAAIN,OACpB5gF,EAAOpB,EAAKuW,SAASyrE,GAC3B,GAAK,oBAAoBhkE,KAAK5c,GAI9B,IACC,MAAM6xG,EAAWj1G,EAAG2Z,aAAaqqE,EAAQ,QACnC4uB,EAAMqC,EAASpxF,SAAS,QAAU,OAAS,KAC3CimD,EAAQmrC,EAASl0G,MAAM,SAASsI,OAAOqB,GAAKA,EAAEiD,OAAS,GACvDm2G,EAAM,CAACt/G,EAAWC,IAAcmS,OAAOM,KAAK1S,EAAG,QAAQ+8E,QAAQ3qE,OAAOM,KAAKzS,EAAG,SACpF,IAAI4zC,EACAygC,EAEJ,GAAI11E,EAAKuB,SAAS,SAAU,CAG3B,MAAMk5B,EAAmB,GACnB56B,EAA8C,GACpD,IAAI8gH,GAAU,EACV9wC,EAAoB,GACxB,IAAK,MAAM1I,KAAQT,EACdS,EAAKlnD,WAAW,KACf0gG,EAAS9wC,EAAQvsE,KAAK6jE,GAAY1sC,EAAOn3B,KAAK6jE,IAGnDw5C,GAAU,EACV9gH,EAAQyD,KAAK,CAAEmY,IAAK0rD,EAAKxpE,MAAM,IAAK,GAAG,GAAIyT,MAAOy+D,EAAQhkE,OAAO,CAACs7D,MAClE0I,EAAU,IAEXhwE,EAAQ6vB,KAAK,CAACtuB,EAAGC,IAAMq/G,EAAIt/G,EAAEqa,IAAKpa,EAAEoa,MACpCw5B,EAAMxa,EAAOtoB,QACb,IAAK,MAAMwsB,KAAK9+B,EAASo1C,EAAI3xC,QAAQq7B,EAAEvtB,OACvCskE,EAAQ71E,EAAQ0K,MACjB,KAAO,CAEN,MAAMkwB,EAAmB,GACnBmmF,EAA6C,GACnD,IAAIvF,EAA+C,KAC/CwF,GAAW,EACXhxC,EAAoB,GACxB,IAAK,MAAM1I,KAAQT,EAAO,CACzB,MAAMrmC,EAAI8mC,EAAKp0D,OACL,eAANstB,EACA8mC,EAAKlnD,WAAW,KACf4gG,EAAUhxC,EAAQvsE,KAAK6jE,GAAY1sC,EAAOn3B,KAAK6jE,GAGhD,cAAcvqD,KAAKuqD,KAAUA,EAAKlnD,WAAW,SAChDo7F,EAAM,CAAE5/F,IAAK4kB,EAAEluB,MAAM,GAAI,GAAIf,MAAOy+D,EAAQhkE,OAAO,CAACs7D,KACpDy5C,EAAOt9G,KAAK+3G,GACZxrC,EAAU,IACAwrC,GACVA,EAAIjqG,MAAM9N,KAAK6jE,GAVU05C,GAAW,CAYtC,CACAD,EAAOlxF,KAAK,CAACtuB,EAAGC,IAAMq/G,EAAIt/G,EAAEqa,IAAKpa,EAAEoa,MACnCw5B,EAAMxa,EAAOtoB,QACb8iC,EAAI3xC,KAAK,cACT,IAAK,MAAMjC,KAAKu/G,EAAQ3rE,EAAI3xC,QAAQjC,EAAE+P,OACtCskE,EAAQkrC,EAAOr2G,MAChB,CAEA3N,EAAG0Z,cAAcsqE,EAAQ3rC,EAAI9uC,KAAKqpG,GAAOA,GACzCjwB,EAAOznE,OAAOoqE,uBAAuB,eAAeliF,MAAS01E,4BAC7D6J,EAAOuB,SAASC,eAAe,oBAChC,CAAE,MAAOr3E,GACR61E,EAAOznE,OAAOk7E,iBAAiB,wBAAwBhzF,MAAoB,QAAX,EAAA0J,EAAIyP,eAAO,QAAIzP,IAChF,MAjEC61E,EAAOznE,OAAOypE,mBAAmB,+DAA+DvhF,MAkElG,CAEA,UAAA+/G,GACC,MAAMM,EAAU,EAAA5/B,WAAW6D,SAASqB,iBAAiB/E,OAC/C9yD,EAAgC,GAChCtY,EAAsB,GACtBsrG,EAAS,kBACTC,EAAiB,yBAGvB,GAAwB,GADN,EAAAr/B,SAAS6F,SAAShI,EAAOC,IAAI7Z,KAAK06C,GAAU,GAAI,EAAAna,aAAa4B,OACjEv9F,OAEb,YADAg1E,EAAOznE,OAAOypE,mBAAmB,yBAGlCzzD,EAAMxqB,KAAK,CAAEypC,MAAO+zE,EAAQ79B,YAAa,+CACzCn1D,EAAMxqB,KAAK,CAAEypC,MAAOg0E,EAAgB99B,YAAa,gDAEjD,MAAM+9B,EAAa,EAAAt/B,SAAS6F,SAAShI,EAAOC,IAAI7Z,KAAK06C,GAAU,GAAI,EAAAna,aAAa4B,OAChF,IAAK,MAAMyY,KAAYS,EACe,OAAjCpiH,EAAKuqC,QAAQo3E,EAAS3/B,UAE1B9yD,EAAMxqB,KAAK,CAAEypC,MAAOnuC,EAAKuW,SAASorG,EAAS3/B,QAASqC,YAAas9B,EAAS3/B,SAC1EprE,EAAMlS,KAAKi9G,IAGRzyF,EAAMvjB,QAAU,EACnBg1E,EAAOznE,OAAOypE,mBAAmB,qBAIlChC,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,mBAAoBK,aAAa,EAAMC,YAAa,2BAA4B34E,KAAK44E,IAChI,IAAKA,EACJ,OACD,IAAI8jB,GAAQ,EACZ,GAAI9jB,EAAW,GAAGx2C,OAAS+zE,EAC1B,IAAK,MAAMn7C,KAAQnwD,EAClB6xF,GAAQ,EACR,EAAA5mB,WAAWgD,QAAQG,iBAAiBje,EAAMA,EAAM,CAAC,EAAAke,cAAcsE,IAAK,EAAApE,cAAcmO,aAE7E,GAAI3O,EAAW,GAAGx2C,OAASg0E,EACjC,IAAK,MAAMp7C,KAAQnwD,EAAO,CACzB,MAAMojF,EAAMh6F,EAAKuqC,QAAQw8B,EAAKib,QACnB,OAAPgY,GAAuB,QAAPA,GAAwB,SAAPA,IACpCyO,GAAQ,EACR,EAAA5mB,WAAWgD,QAAQG,iBAAiBje,EAAMA,EAAM,CAAC,EAAAke,cAAcsE,IAAK,EAAApE,cAAcmO,QAEpF,MAEA,IAAK,MAAMjO,KAAaV,EACvB,GAAIU,EAAUhB,YAAa,CAC1B,MAAM/B,EAAM3B,EAAOC,IAAI7Z,KAAKse,EAAUhB,aACtCokB,GAAQ,EACR,EAAA5mB,WAAWgD,QAAQG,iBAAiB1C,EAAKA,EAAK,CAAC,EAAA2C,cAAcsE,IAAK,EAAApE,cAAcmO,OACjF,CAGGmV,EAGJ,EAAA5mB,WAAWgD,QAAQC,eAFnBnE,EAAOznE,OAAOypE,mBAAmB,sBAKpC,CAEM,cAAAi/B,CAAen/B,EAAgBmC,EAAiBoD,EAAgBh9C,G,kDACrE,MAAM9b,QAAsC,EAAA2yD,WAAW+/B,eAAen/B,EAAQmC,EAASoD,EAAQh9C,GAC/F,IAAK,MAAMtkC,KAAQwoB,EAClB,GAAe,QAAX8b,EAAK,GAAc,CACtB,MAAM1jC,EAAWtH,EAAKuH,KAAK,EAAAs6E,WAAWgC,yBAA0Be,EAASoD,EAAQthF,EAAKynC,OACtF,EAAA0zC,WAAW35E,IAAI2Q,KAAK8nE,EAAOC,IAAI7Z,KAAKz/D,GACrC,MACCvE,KAAKs/G,kBAAkBriH,EAAKuH,KAAKq9E,EAASoD,GAASthF,EAAKynC,MAE3D,E,CAEA,iBAAAk0E,CAAkB7gG,EAAapL,GAC9B,MAAM9O,EAAWtH,EAAKuH,KAAK,EAAAs6E,WAAWgC,yBAA0BriE,EAAKpL,GAC/D47E,EAAUhyF,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASqB,iBAAiB/E,OAAQ5rE,GAClEpY,EAAG8wE,WAAWxnE,IAGlB,EAAAu6E,WAAWgD,QAAQG,iBAAiBrE,EAAOC,IAAI7Z,KAAKz/D,GAAWq5E,EAAOC,IAAI7Z,KAAKirB,GAAU,CAAC,EAAA/M,cAAcsE,IAAK,EAAApE,cAAcU,MAC3H,EAAAhE,WAAWgD,QAAQC,gBAHnBnE,EAAOznE,OAAOypE,mBAAmB,qCAAuCvsE,EAK1E,CAEA,cAAA8qG,CAAeV,GACd,MAAMx/B,EAAQ,EAAAa,WAAW6D,SAAS+D,cAAc,EAAApJ,UAAUkJ,IAC1D,EAAA+4B,WAAWC,mBAAmB/B,EAAOl+B,IAAKtB,EAAO,gCAAiC,oCACnF,CAEQ,YAAAigC,CAAaT,GACpB,MAAMl5G,EAAWk5G,EAAOl+B,IAAIN,OAC5B,GAAIw+B,GAAUl5G,EAASqE,OAAQ,CAC9B,MAAMyK,EAAWpW,EAAKuW,SAASjP,GACzB6zB,EAASn7B,EAAKyM,MAAM2J,GAC1B,IAAI4jF,EAAM,OACN5jF,EAASzT,SAAS,QACrBq3F,EAAM,QAEE5jF,EAASzT,SAAS,SAC1Bq3F,EAAM,OAEE5jF,EAASzT,SAAS,SAC1Bq3F,EAAM,SAEE5jF,EAASzT,SAAS,YAC1Bq3F,EAAM,SAEP,MAAMwoB,EAAcxiH,EAAKuH,KAAKvH,EAAKuhB,QAAQja,GAAW6zB,EAAO/5B,KAAO44F,GACpE,EAAAnY,WAAWgD,QAAQG,iBAAiBw7B,EAAOl+B,IAAK3B,EAAOC,IAAI7Z,KAAKy7C,GAAc,CAAC,EAAAv9B,cAAcsE,IAAK,EAAApE,cAAc8M,QAChH,EAAApQ,WAAWgD,QAAQC,cACpB,CACA/hF,KAAKw9G,OAAOn8B,MAAQ,IACrB,CAEA,aAAA48B,GACC,GAAI,EAAAn/B,WAAWqB,qBAAsB,CACpC,MAAM15E,EAAoC,CACzC6oF,eAAe,EACfC,UAAW,0BACXC,WAAY,EAAA1Q,WAAWuB,qBACvB+O,gBAAgB,EAChBC,kBAAkB,EAClBytB,QAAS,CACR,WAAY,CAAC,OAAQ,KAAM,MAAO,OAClC,YAAa,CAAC,OAIhBl/B,EAAOznE,OAAOs5E,eAAehpF,GAASuC,KAAK44E,IAC1C,IAAKA,EACJ,OAED,MAAM89B,EAAQ,EAAA5gC,WAAW6D,SAASqB,iBAAiB/E,OACnD,IAAK,MAAM89B,KAAOn7B,EAAY,CAC7B,MAAMvuE,EAAWpW,EAAKuW,SAASupG,EAAI99B,QAC7BomB,EAAUznB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKk7G,EAAOrsG,IACjD,EAAAyrE,WAAWgD,QAAQG,iBAAiB86B,EAAK1X,EAAS,CAAC,EAAAnjB,cAAcsE,IAAK,EAAApE,cAAcU,KACrF,CACA,EAAAhE,WAAWgD,QAAQC,gBAErB,CACD,CAEA,OAAAyJ,GACC,MAAMvN,EAAQ,EAAAa,WAAW6D,SAASqB,iBAAiB/E,OAC/C,EAAAc,SAAS5gE,MAAM8+D,IAClB,EAAAa,WAAWgR,gBAAgB7R,EAC7B,CAEA,MAAA/kE,GACK,EAAA4lE,WAAWqB,sBACV,EAAArB,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,aAAc4kF,OAAQ,yBAA0B12E,KAAKiqF,IACpFA,IACHjzF,KAAKs9G,SAAS3R,YAAY,EAAA7sB,WAAW6D,SAASqB,iBAAkBiP,EAAY,CAAC,MAAO,OAAQ,QAAS,SACrG,EAAA+Z,SAASO,UAAUta,EAAYjzF,KAAKs9G,SAASlS,cAC7C,EAAA4B,SAASM,cAAcra,GACvBrV,EAAOuB,SAASC,eAAe,wBAC/BxB,EAAOuB,SAASC,eAAe,yBAKpC,CAEQ,QAAAu+B,GACH,EAAA7+B,WAAW6D,SAAS1C,WACvB,EAAAnB,WAAWmO,mBACZrP,EAAOznE,OAAO43E,iBAAiB,EAAAjP,WAAW6D,SAASyC,eACnDxH,EAAOuB,SAASC,eAAe,gBAChC,CAEQ,WAAAiM,CAAYR,GACnB,MAAMtmF,EAAWsmF,EAAS5L,OAC1B,GAAI4L,GAAYtmF,EAASqE,OAAQ,CAChC,MAAMyK,EAAWpW,EAAKuW,SAASq3E,EAAS5L,QACxC,GAAI5rE,EAASzK,OAEZ,YADA5I,KAAKw9G,OAAOn8B,MAAQ,OAAOhuE,KAG7B,CACArT,KAAKw9G,OAAOn8B,MAAQ,IACrB,CAEQ,UAAA08B,GACP,GAAI,EAAAj/B,WAAWqB,qBAAsB,CACpC,MAAMh0D,EAAgC,GAEtCA,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa,kDACxCn1D,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,kCAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,mBAAoBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAC3H,IAAKA,GAAgC,MAAnBA,EAAUl3C,MAC3B,OACD,MAAM6yC,EAAQ,EAAAa,WAAW6D,SAASqB,iBAC5B27B,EAAU/hC,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASqB,iBAAiB/E,OAAQ,aACvF,EAAAH,WAAWgD,QAAQG,iBAAiBhE,EAAO0hC,EAAS,CAAC,EAAAz9B,cAAcsE,IAAK,EAAApE,cAAc2mB,OAAQ,QAAS,IACvG,EAAAjqB,WAAWgD,QAAQC,gBAErB,CACD,CAEQ,YAAA+7B,GACP,GAAI,EAAAh/B,WAAWqB,qBAAsB,CACpC,MAAMh0D,EAAgC,GACtC,IAAIkkE,EAAc,GAClBA,EAAcA,EAAYnmF,OAAO,yBACjCiiB,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,4BAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,mBAAoBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAC3H,IAAKA,GAAgC,MAAnBA,EAAUl3C,MAC3B,OACD,MAAM24C,EAAS,EAAAjF,WAAW6D,SAASqB,iBAC7Brc,EAAW1qE,EAAKuH,KAAKu/E,EAAO9E,OAAQ,WACpCprE,EAAQ,EAAAksE,SAAS6F,SAAS7B,GAChC,IAAI67B,EAAQ,GACRxkE,EAAQ,GAEZ,IAAK,MAAM4oB,KAAQnwD,EAAO,CACzB,MAAMR,EAAWpW,EAAKuW,SAASwwD,EAAKib,QAChC5rE,EAASiL,WAAW,QACvBshG,GAAS,iBAAoBvsG,EAAW,MAEhCA,EAASiL,WAAW,UAC5B88B,GAAS,iBAAoB/nC,EAAW,MAE1C,CACA,IAAI4vE,EAAU,GACdA,GAAW,qCACXA,GAAW7nC,EACX6nC,GAAW,0BACXA,GAAW28B,EACX38B,GAAW,SAEX,EAAAlD,SAASnsE,UAAU+zD,EAAUsb,GAC7B,EAAAnE,WAAWwF,aAAa,sBAE1B,CACD,CAEM,SAAAm6B,CAAU96G,G,kDACf,IAAIg6E,EACJ,GAAIh6E,GAAQA,EAAK47E,IAChB5B,EAAc,EAAAoC,SAAS5gE,MAAMxb,EAAK47E,IAAIN,QAAUt7E,EAAK47E,IAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuhB,QAAQ7a,EAAK47E,IAAIN,aAC3F,KAAI,EAAAH,WAAW6D,SAASmC,WAI9B,YADAlH,EAAOznE,OAAOypE,mBAAmB,+CAFjCjC,EAAc,EAAAmB,WAAW6D,SAASqC,sBAInC,CACA,MAAMx7E,EAAU,EAAAonF,WAAWxD,eACrB5jF,EAAQqtF,cAAclZ,EAC7B,E,CAEQ,UAAA+/B,CAAWxB,GACdA,EAAO38B,IAAIN,OAAOr/E,SAAS,SAC9B,EAAAk/E,WAAWkB,WAAWk8B,EAAO38B,KAC9Bv/E,KAAKmsF,SAAS+vB,EAAO38B,IACtB,CAEQ,QAAA4M,CAAS5M,GAChBv/E,KAAKqrF,YAAY9L,GACjB,EAAAT,WAAWmO,mBACXrP,EAAOznE,OAAO43E,iBAAiBxO,GAC/B,EAAAT,WAAW6D,SAASe,gBAAgBnE,GACpC3B,EAAOuB,SAASC,eAAe,gBAChC,CAEQ,UAAA2L,CAAWmxB,GAClB,GAAI,EAAAp9B,WAAWqB,qBAAsB,CACpC,MAAMh0D,EAAgC,GACtC,IAAIkkE,EAAc,GAClB,MAAMh9E,EAAWpW,EAAKuW,SAAS0oG,EAAO38B,IAAIN,QAC1CoR,EAAcA,EAAYnmF,OAAO,WAAamJ,EAAU,MACxD8Y,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,iBAAmBjuE,IAE1DuqE,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,cAAeK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACjHA,GAAgC,MAAnBA,EAAUl3C,QAE5B,EAAA0zC,WAAWgD,QAAQG,iBAAiBi6B,EAAO38B,IAAK28B,EAAO38B,IAAK,CAAC,EAAA2C,cAAcsE,IAAK,EAAApE,cAAcmO,QAC9F,EAAAzR,WAAWgD,QAAQC,iBAErB,CACD,CAEQ,UAAA67B,CAAW1B,EAAgB2D,GAC9B,EAAA/gC,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,WAAY4kF,OAAQ,wBAAyB12E,KAAK22E,IACrF,GAAIA,EAAS,CACZ,IAAIsK,EAAU,EAAAnL,WAAW6D,SAASqB,iBAAiB/E,OAC/Ci9B,IAAW2D,IACd51B,EAAU,EAAAlK,SAASymB,WAAW0V,EAAO38B,IAAIN,SAC1C,IAAI16E,EAAWtH,EAAKuH,KAAKylF,EAAStK,EAAU,QACxC1iF,EAAKuqC,QAAQm4C,KAChBp7E,EAAWtH,EAAKuH,KAAKylF,EAAStK,IAC/B,EAAAI,SAASnsE,UAAUrP,EAAU,sFAC7BvE,KAAKmsF,SAASvO,EAAOC,IAAI7Z,KAAKz/D,IAC9Bq5E,EAAOuB,SAASC,eAAe,oBAChC,GAGH,CAEQ,WAAAy+B,CAAY3B,EAAgB2D,GAC/B,EAAA/gC,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,WAAY4kF,OAAQ,+BAAgC12E,KAAK22E,IAC5F,GAAIA,EAAS,CACZ,IAAIsK,EAAU,EAAAnL,WAAW6D,SAASqB,iBAAiB/E,OAC/Ci9B,IAAW2D,IACd51B,EAAU,EAAAlK,SAASymB,WAAW0V,EAAO38B,IAAIN,SAC1C,IAAI16E,EAAWtH,EAAKuH,KAAKylF,EAAStK,EAAU,SACxC1iF,EAAKuqC,QAAQm4C,KAChBp7E,EAAWtH,EAAKuH,KAAKylF,EAAStK,IAC/B,EAAAI,SAASnsE,UAAUrP,EAAU,mCAC7BvE,KAAKmsF,SAASvO,EAAOC,IAAI7Z,KAAKz/D,IAC9Bq5E,EAAOuB,SAASC,eAAe,oBAChC,GAGH,EAhfD,U,gGC7OA,wBAA6BikB,EAAa1xE,GACzC,MAAMogF,GAAU,IAAAZ,cAAa9N,GAC7B,IAAK,MAAMttF,KAAKg8F,EACf,GAAIpgF,GAAU5b,EAAEgb,OAASY,EAAS5b,EAAEyV,IAAK,OAAOzV,EAAEg4F,KAGnD,OAAIgE,EAAQnpG,OAAempG,EAAQA,EAAQnpG,OAAS,GAAGmlG,KAChD,EAAAyD,WAAWgB,KACnB,EAfA,gBACA,UAES,0EAFA,EAAAhB,UAAU,G,4ECgBnB,2BAAgCnO,GAC/B,MAAMyc,EAAsB,GACtB9uE,GAAS,IAAAo9D,UAAS/K,GAGxB,IAAK,MAAMjkD,KAAKpO,EACXoO,EAAE2uD,OAAS,EAAAC,UAAU6E,cAAiBzzD,EAAEtO,KAAKlxC,SAAS,OACzDkgH,EAASn+G,KAAK,CACbovB,MAAOquB,EAAEruB,MACTvF,IAAK4zB,EAAE5zB,IACPhU,QAAS,0DACT4sF,SAAU,QACVl8F,KAAM,6BAOT,MAAMzC,EAAyC,GAC/C,IAAK,MAAM25C,KAAKpO,EAAQ,CACvB,GAAIoO,EAAE2uD,OAAS,EAAAC,UAAUc,MAAO,SAChC,MAAM58B,EAAK9yB,EAAEtO,KACb,GAAIivE,EAAc7tC,GACjBzsE,EAAM9D,KAAK,CAAEuwE,KAAInhD,MAAOquB,EAAEruB,aACpB,GAAIivF,EAAc9tC,GAAK,CAC7B,MAAM2tC,EAAMp6G,EAAM2J,MACbywG,EAQME,EAAcF,EAAI3tC,MAAQA,GACpC4tC,EAASn+G,KAAK,CACbovB,MAAOquB,EAAEruB,MACTvF,IAAK4zB,EAAE5zB,IACPhU,QAAS,eAAe06D,mBAAoB6tC,EAAcF,EAAI3tC,kBAAkB2tC,EAAI3tC,OACpFkyB,SAAU,QACVl8F,KAAM,2BAbP43G,EAASn+G,KAAK,CACbovB,MAAOquB,EAAEruB,MACTvF,IAAK4zB,EAAE5zB,IACPhU,QAAS,cAAc06D,MACvBkyB,SAAU,QACVl8F,KAAM,yBAWT,CACD,CACA,IAAK,MAAMoI,KAAQ7K,EAClBq6G,EAASn+G,KAAK,CACbovB,MAAOzgB,EAAKygB,MACZvF,IAAKlb,EAAKygB,MAAQ,EAClBvZ,QAAS,aAAalH,EAAK4hE,uBAAuB6tC,EAAczvG,EAAK4hE,QACrEkyB,SAAU,QACVl8F,KAAM,yBAIR,OAAO43G,CACR,EAzEA,gBACA,UAYMC,EAAwC,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,KACnEC,EAAwC,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,I,4ECNzE,qCAA0C3yB,GACzCvpE,EAAa85D,EAAOwxB,UAAU6Q,2BAA2B,gBACzD5yB,EAAIsF,cAAchxF,KAAKmiB,EACxB,EAsBA,sC,MACC,GAAKA,EAAL,CACAA,EAAWw4F,QAEX,IACC,IAAK,EAAAx9B,WAAW6D,WAAa,EAAA7D,WAAW6D,SAASmC,WAAY,OAE7D,MAAMo7B,EAAS,IAAI55F,IAEb65F,EAAU,CACf,EAAArhC,WAAW6D,SAASuC,mBAAmB,WACvC,EAAApG,WAAW6D,SAASiC,SAAS,UAG9B,IAAK,MAAMrF,KAAO4gC,EAAS,CAC1B,IAAK5gC,EAAIN,OAAOr2E,SAAW3N,EAAG8wE,WAAWwT,EAAIN,QAAS,SACtD,IAAInuC,EACJ,IACCA,EAAO71C,EAAG2Z,aAAa2qE,EAAIN,OAAQ,OACpC,CAAE,SACD,QACD,CAEA,IAAK,MAAMl3E,KAAO,IAAAq4G,mBAAkBtvE,GAAO,CAC1C,MAAMvY,EAAS8nF,EAAct4G,GAC7B,IAAKwwB,EAAQ,SACb,MAAMitC,EAAO11D,KAAKF,IAAI,EAAG7H,EAAI2kG,QAAU,GAEjClhG,EAAQ,IAAIoyE,EAAOyX,MAAM7vB,EAAM,EAAGA,EAAM,KACxC86C,EAAO,IAAI1iC,EAAO2iC,WACvB/0G,EACAg1G,EAAaz4G,EAAIyP,SACA,YAAjBzP,EAAIq8F,SACDxmB,EAAO6iC,mBAAmBC,QAC1B9iC,EAAO6iC,mBAAmBxkH,OAE9BqkH,EAAK5/F,OAAS,eACd,MAAM5G,EAAMye,EAAO0mD,OACbj5C,EAAsB,QAAf,EAAAk6E,EAAOtnG,IAAIkB,UAAI,QAAI,GAChCksB,EAAKrkC,KAAK2+G,GACVJ,EAAOrnG,IAAIiB,EAAKksB,EACjB,CACD,CAEA,IAAK,MAAOi5C,EAAQ0hC,KAAUT,EAC7Bp8F,EAAWjL,IAAI+kE,EAAOC,IAAI7Z,KAAKib,GAAS0hC,EAE1C,CAAE,SAEF,CAhDuB,CAiDxB,E,gBAnFA,0BACA,0BACA,0BACA,UACA,UAEA,IAAI78F,EAUJ,SAASu8F,EAAct4G,GACtB,GAAiB,SAAbA,EAAIgmG,KAAiB,CACxB,IAAKhmG,EAAI62G,SAAU,OACnB,MAAM3gC,EAAQ,EAAAa,WAAW6D,SAASqB,iBAAiB/E,OACnD,IAAKhB,EAAMr1E,OAAQ,OACnB,OAAOg1E,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKy5E,EAAOl2E,EAAI62G,UAC7C,CACA,MAAMr/B,EAAM,EAAAT,WAAW6D,SAASpF,QAAQqjC,mBAAmB74G,EAAIs2E,SAC/D,OAAOkB,EAAIN,OAAOr2E,OAAS22E,OAAM9jF,CAClC,CAIA,SAAS+kH,EAAa1gB,GACrB,OAAOA,EAAIvqF,QAAQ,mBAAoB,IAAInE,QAAU0uF,EAAI1uF,MAC1D,C,yBCjBA,SAAgByvG,EAAqB/gB,GACpC,MAAMghB,EAAUhhB,EAAI1uF,OACpB,IAAK0vG,EAAQl4G,OAAQ,OAErB,MAAMooC,EAAS8vE,EAAQ9kH,MAAM,UAC7B,GAAIg1C,EAAOpoC,OAAS,EAAG,OAEvB,MAAMy1E,EAAUliF,OAAO60C,EAAO,IACxB07D,EAAUvwG,OAAO60C,EAAO,IAE9B,IAAK70C,OAAO2oC,SAASu5C,KAAaliF,OAAO2oC,SAAS4nE,IAAYruB,EAAU,GAAiB,IAAZquB,EAC5E,OAGD,MACMtI,EADQ0c,EAAQvqG,cACiB3Q,QAAQ,UAAY,EAAI,UAAY,QAI3E,GAAIk7G,EAAQlhH,SAAS,UAAW,CAC/B,MAAMkpB,EAAQg4F,EAAQ9kH,MAAM,WAE5B,MAAO,CAAE+xG,KAAM,OAAQ1vB,UAASquB,QAASruB,EAASugC,SADjC91F,EAAMA,EAAMlgB,OAAS,GACsB4O,QAASspG,EAAS1c,WAC/E,CAEA,MAAO,CAAE2J,KAAM,OAAQ1vB,UAASquB,UAASl1F,QAASspG,EAAS1c,WAC5D,C,iDA1BA,yBA4BA,6BAAkCtzD,GACjC,MAAMwC,EAAqB,GAC3B,IAAK,MAAMkyB,KAAQ10B,EAAK90C,MAAM,SAAU,CACvC,MAAMghC,EAAI6jF,EAAqBr7C,GAC3BxoC,GAAGsW,EAAI3xC,KAAKq7B,EACjB,CACA,OAAOsW,CACR,C,4EClCA,yBAA8B+vD,GAC7B,MAAMh4F,EAAsB,GACtBxG,EAAM,CAACutG,EAAkBC,KAC9B,MAAM3zE,EAAIu2D,EAAOoO,EAAK+O,GAChBp1E,EAAIi4D,EAAOoO,EAAKvzF,KAAKF,IAAIwiG,EAAUC,EAAS,IAC9Cr1E,EAAI0B,GAAGrzB,EAAO1J,KAAK,CAAEovB,MAAO2N,EAAGlT,IAAKwR,KAGzC,IAAK,MAAMk0E,KAAU,IAAA6P,gBAAe1d,GAAM,CACzCx+F,EAAIqsG,EAAOngF,MAAOmgF,EAAO1lF,KACzB,IAAK,MAAM5f,KAASslG,EAAO3K,SACP,SAAf36F,EAAMmiG,MAAiBlpG,EAAI+G,EAAMmlB,MAAOnlB,EAAM4f,IAEpD,CACA,OAAOngB,CACR,EA/BA,gBAOA,SAAS4pF,EAAOnkD,EAAcnf,GAC7B,IAAI6zC,EAAO,EACX,MAAMsW,EAAOhsE,KAAKC,IAAI4hB,EAAQmf,EAAKloC,QACnC,IAAK,IAAI8G,EAAI,EAAGA,EAAIosE,EAAMpsE,IACT,OAAZohC,EAAKphC,IAAa81D,IAEvB,OAAOA,CACR,C,0ECPA,2BAAgC10B,GAC/B,MAAMwC,EAAmB,GACzB,IAAI0xB,EAAY,EAEhB,IAAK,MAAMg8C,KAAWlwE,EAAK90C,MAAM,MAAO,CACvC,MAAMwpE,EAAOw7C,EAAQzrG,QAAQ,MAAO,IAC9B0rG,EAAYz7C,EAAK58D,OAAS48D,EAAK07C,YAAYt4G,OAC3Cq6E,EAAUzd,EAAKh1D,MAAMywG,GAG3B,GAAIh+B,EAAQr6E,QAAyB,MAAfq6E,EAAQ,IAA6B,MAAfA,EAAQ,GAAY,CAE/D,IAAIk+B,EAAMl+B,EAAQr6E,OAClB,IAAK,IAAI8G,EAAI,EAAGA,EAAIuzE,EAAQr6E,OAAQ8G,IACnC,GAAmB,MAAfuzE,EAAQvzE,IAA6B,MAAfuzE,EAAQvzE,GAAY,CAAEyxG,EAAMzxG,EAAG,KAAO,CAEjE,MAAMk9B,EAAQq2C,EAAQzyE,MAAM,EAAG2wG,GAAKhM,UAG9BiM,EAAex0E,EAAMhnC,QAAQ,MAAQ,EACrCotB,EAAW,QAAQ/X,KAAK2xB,GAC9B,GAAIA,EAAMhkC,SAAWw4G,IAAiBpuF,EAAU,CAC/C,MAAMjC,EAAQi0C,EAAYi8C,EAC1B3tE,EAAI3xC,KAAK,CAAEtD,KAAMuuC,EAAO7b,QAAOvF,IAAKuF,EAAQ6b,EAAMhkC,QACnD,CACD,CAEAo8D,GAAag8C,EAAQp4G,OAAS,CAC/B,CAEA,OAAO0qC,CACR,C,gMCrCa,EAAA+tE,eAAyC,CACrDC,KAAM,kDACNC,KAAM,+CACNC,IAAK,8CACLC,KAAM,6CACNC,MAAO,8CACPC,MAAO,gDACPC,MAAO,8CACPC,OAAQ,kDACRC,QAAS,6CACTC,MAAO,yBACPC,KAAM,gDACNC,MAAO,uBAIK,EAAAC,SAAW,CACvB,MAAO,OAAQ,OAAQ,KAAM,QAAS,KAAM,MAAO,SAAU,SAIjD,EAAAC,cAAgB,CAC5B,OAAQ,QAAS,KAAM,QAAS,WAAY,SAAU,UAAW,OACjE,QAAS,KAAM,QAAS,QAAS,SAAU,OAAQ,YAAa,QAChE,UAAW,MAAO,MAAO,OAAQ,IAAK,MAAO,MAAO,SAAU,WAC9D,OAAQ,SAAU,OAAQ,UAAW,MAAO,SAAU,IAAK,UAC3D,OAAQ,IAAK,OAAQ,OAAQ,UAAW,YAI5B,EAAAC,iBAA2C,CACvDC,EAAG,2DACH92E,EAAG,0DACH+2E,EAAG,8CACHC,EAAG,oCACH1tE,EAAG,oCAIS,EAAA2tE,kBAA8B,CAC1C,MAAO,SAAU,UAAW,WAAY,aAAc,YAAa,UACnE,YAAa,UAAW,UAAW,YAAa,UAAW,UAC3D,cAAe,aAAc,aAAc,WAAY,WACvD,WAAY,cAAe,aAAc,MAAO,OAAQ,UAAW,YACnE,cAAe,cAAe,SAAU,OAAQ,YAAa,cAC7D,YAAa,UAAW,SAAU,aAAc,UAAW,aAC3D,SAAU,WAAY,QAAS,eAAgB,YAAa,cAC5D,WAAY,OAAQ,OAAQ,UAAW,SAAU,WAAY,cAC7D,YAAa,OAAQ,UAAW,UAAW,WAAY,YACvD,cAAe,kBAAmB,WAAY,aAAc,WAC5D,WAAY,eAAgB,YAAa,QAAS,MAAO,SAAU,cACnE,aAAc,aAAc,aAAc,YAAa,QAAS,aAChE,YAAa,YAAa,eAAgB,YAAa,UAAW,OAClE,KAAM,QAAS,WAAY,QAAS,UAAW,KAAM,MAAO,aAC5D,aAAc,mBAAoB,cAAe,aAAc,cAC/D,WAAY,SAAU,UAAW,cAAe,YAAa,UAC7D,WAAY,KAAM,KAAM,MAAO,SAAU,SAAU,YAAa,cAChE,oBAAqB,aAAc,WAAY,QAAS,SAAU,QAClE,MAAO,YAAa,aAAc,UAAW,QAAS,OAAQ,WAAY,UAC1E,OAAQ,cAAe,YAAa,OAAQ,MAAO,WAAY,SAC/D,WAAY,KAAM,cAAe,aAAc,WAAY,eAC3D,YAAa,aAAc,aAAc,SAAU,WAAY,YAC/D,SAAU,SAAU,SAAU,eAAgB,SAAU,gBACxD,OAAQ,QAAS,aAAc,MAAO,WAAY,UAAW,YAC7D,WAAY,iBAAkB,WAAY,OAAQ,QAAS,SAAU,QACrE,UAAW,SAAU,eAAgB,UAAW,YAAa,SAAU,UACvE,aAAc,cAAe,gBAAiB,aAAc,aAC5D,aAAc,SAAU,aAAc,YAAa,aAAc,SACjE,eAAgB,UAAW,aAAc,SAAU,UAAW,UAC9D,YAAa,iBAAkB,eAAgB,UAAW,WAC1D,YAAa,eAAgB,SAAU,QAAS,UAAW,WAC3D,eAAgB,UAAW,WAAY,aAAc,cACrD,YAAa,aAAc,UAAW,aAAc,cACpD,WAAY,eAAgB,YAAa,SAAU,UAAW,WAC9D,SAAU,SAAU,UAAW,WAAY,kBAAmB,SAC9D,UAAW,YAAa,UAAW,aAAc,YAAa,YAC9D,SAAU,WAAY,QAAS,SAAU,SAAU,QAAS,QAAS,UACrE,eAAgB,cAAe,SAAU,UAAW,UAAW,YAC/D,iBAAkB,aAAc,WAAY,aAAc,WAC1D,kBAAmB,eAAgB,YAAa,SAAU,QAAS,SACnE,OAAQ,WAAY,OAAQ,UAAW,MAAO,UAAW,SAAU,cACnE,WAAY,cAAe,oBAAqB,cAAe,WAC/D,iBAAkB,YAAa,cAAe,iBAAkB,aAChE,aAAc,aAAc,aAAc,YAAa,cACvD,cAAe,oBAAqB,WAAY,UAChD,oBAAqB,kBAAmB,gBAAiB,WACzD,aAAc,aAAc,aAAc,UAAW,SAAU,UAC/D,UAAW,SAAU,SAAU,OAAQ,QAAS,SAAU,WAAY,UACtE,aAAc,KAAM,YAAa,UAAW,YAAa,MAAO,QAChE,QAAS,aAAc,YAAa,QAAS,UAAW,OAAQ,SAChE,oBAAqB,qBAAsB,QAAS,YAAa,YACjE,WAAY,UAAW,UAAW,WAAY,QAAS,OAAQ,SAC/D,WAGY,EAAAC,YAAc,IAAI99G,IAAI,EAAA69G,kBAAkBrkH,IAAK4V,GAAMA,EAAEwC,gBACrD,EAAAmsG,YAAc,IAAI/9G,IAAI,EAAAu9G,SAAS/jH,IAAKmd,GAAMA,EAAE/E,e,oGCyYzD,oCAAyC82E,GACxCA,EAAIsF,cAAchxF,KACjBi8E,EAAOwxB,UAAUuT,+BAA+Bx5B,EAAKy5B,GACrDhlC,EAAOwxB,UAAUyT,sBAAsB15B,EAAK25B,GAC5CllC,EAAOwxB,UAAU2T,2BAA2B55B,EAAK65B,GACjDplC,EAAOwxB,UAAU6T,gCAAgCC,GACjDtlC,EAAOwxB,UAAU+T,0BAA0Bh6B,EAAKi6B,GAChDxlC,EAAOwxB,UAAUiU,kCAAkCl6B,EAAKm6B,GACxD1lC,EAAOwxB,UAAUmU,uBAAuBp6B,EAAKq6B,GAC7C5lC,EAAOwxB,UAAUqU,+BAA+Bt6B,EAAKu6B,EAAoB,KACzE9lC,EAAOwxB,UAAUuU,8BAA8Bx6B,EAAKy6B,EAAmB,IAAK,KAC5EhmC,EAAOwxB,UAAUyU,6BAA6B16B,EAAK26B,GACnDlmC,EAAOwxB,UAAU2U,uCAAuC56B,EAAK66B,EAAkB,EAAAC,gBAC/ErmC,EAAOwxB,UAAU8U,4BAA4B/6B,EAAKg7B,EAAoB,CACrEC,wBAAyB,CAACxmC,EAAOymC,eAAeC,aAYlD,MAAMC,EAAU3mC,EAAOmT,UAAUyzB,wBAAwB,sBACzDn3B,EAAIsF,cAAchxF,KACjB4iH,EACAA,EAAQE,YAAallC,GAAQ,EAAAmlC,kBAAkBC,WAAWplC,IAC1DglC,EAAQK,YAAarlC,IAAe,EAAAmlC,kBAAkBG,SAAStlC,KAC/D3B,EAAOmT,UAAU+zB,sBAAuBj5E,IAClB,QAAjBA,EAAEk5E,YAAyC,QAAjBl5E,EAAEk5E,YAC/B,EAAAL,kBAAkBM,UAAUn5E,EAAE0zC,IAAK1zC,EAAEw4C,cAIxC,MAAM4gC,EAAcrnC,EAAOwxB,UAAU6Q,2BAA2B,SAChE5yB,EAAIsF,cAAchxF,KAAKsjH,GAGvB,MAAMC,EAAS,IAAI5+F,IAWfs3D,EAAOznE,OAAOu+E,kBACjBywB,EAAmBvnC,EAAOznE,OAAOu+E,iBAAiBj+E,SAAUwuG,GAE7D53B,EAAIsF,cAAchxF,KACjBi8E,EAAOmT,UAAUq0B,sBAAuB1K,GAAQyK,EAAmBzK,EAAKuK,IACxErnC,EAAOmT,UAAUs0B,wBAAyBroF,GAfnB,CAAC09E,IACxB,MAAM5gG,EAAM4gG,EAAIn7B,IAAIxhD,WACdw+D,EAAW2oB,EAAOtsG,IAAIkB,GACxByiF,GAAUn0F,aAAam0F,GAC3B2oB,EAAOrsG,IAAIiB,EAAKjR,WAAW,KAC1Bq8G,EAAO3+E,OAAOzsB,GACdqrG,EAAmBzK,EAAKuK,IACtB,OAQ6CK,CAAgBtoF,EAAEvmB,WAClEmnE,EAAOmT,UAAUw0B,uBAAwB7K,GAAQuK,EAAY1+E,OAAOm0E,EAAIn7B,MAE1E,E,gBAriBA,0BACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAOA,SAASimC,IACR,MAAMC,EAAY,IAAI9gH,IAChB+gH,EAAW,IAAI/gH,IACfwuG,EAAQ,IAAIxuG,IAClB,IAAK,MAAM+5B,KAAK,EAAAgmF,kBAAkBxrG,OAAO,IACzB,aAAXwlB,EAAEqvE,KAAqB0X,EAAU5gH,IAAI65B,EAAErgC,MACvB,YAAXqgC,EAAEqvE,KAAoB2X,EAAS7gH,IAAI65B,EAAErgC,MAC1B,SAAXqgC,EAAEqvE,MAAiBoF,EAAMtuG,IAAI65B,EAAErgC,MAEzC,MAAO,CACNsnH,QAAS,IAAIhhH,IAAIhK,OAAOkf,KAAK,EAAAuoG,mBAC7BqD,YAAWC,WAAUvS,QACrByS,SAAU,EAAAnD,YAEZ,CAEA,MAAMt5B,EAAM,CAAEyxB,SAAU,OAYxB,SAASiL,EAAYnL,EAA0BoL,GAC9C,MAAMt6G,EAAQ,IAAIoyE,EAAOyX,MAAMqlB,EAAIjK,WAAWqV,EAAI/0F,OAAQ2pF,EAAIjK,WAAWqV,EAAIt6F,MACvEu6F,EAAS,IAAInoC,EAAOyX,MAAMqlB,EAAIjK,WAAWqV,EAAIE,UAAWtL,EAAIjK,WAAWqV,EAAIG,SAE3ElJ,EAAMvxG,EAAMu7B,SAASg/E,GAAUA,EAAS,IAAInoC,EAAOyX,MAAM7pF,EAAMulB,MAAOvlB,EAAMulB,OAC5Em1F,EAAK,IAAItoC,EAAOuoC,eAAeL,EAAIznH,KAAMynH,EAAIttB,OAbpD,SAAgBstB,GACf,OAAQA,EAAI/X,MACX,IAAK,SAAU,OAAOnwB,EAAOwoC,WAAWC,UACxC,IAAK,OAAQ,OAAOzoC,EAAOwoC,WAAW7sE,SACtC,IAAK,WAAY,OAAOqkC,EAAOwoC,WAAWE,OAE5C,CAO4DC,CAAOT,GAAMt6G,EAAOuxG,GAE/E,OADAmJ,EAAG3f,SAAWuf,EAAIvf,SAASpoG,IAAKiX,GAAMywG,EAAYnL,EAAKtlG,IAChD8wG,CACR,CAEA,MAAMtD,EAAgD,CACrD,sBAAA4D,CAAuB9L,GACtB,IACC,OAAO,IAAAqG,gBAAerG,EAAIr2B,WAAWlmF,IAAKugC,GAAMmnF,EAAYnL,EAAKh8E,GAClE,CAAE,SACD,MAAO,EACR,CACD,GAkBKokF,EAAsC,CAC3C,YAAA2D,CAAa/L,EAAKzpF,GACjB,MAAMghF,EAfR,SAA0ByI,EAA0BzpF,GAEnD,MAAMu0C,EAAOk1C,EAAIzlB,OAAOhkE,EAAIu0C,MAAM10B,KAC5Bt6B,EAAI,kBACV,IAAIwlF,EACJ,KAAgC,QAAxBA,EAAMxlF,EAAE0tB,KAAKshC,KACpB,GAAIv0C,EAAIunF,WAAaxc,EAAI9rF,OAAS+gB,EAAIunF,WAAaxc,EAAI9rF,MAAQ8rF,EAAI,GAAGpzF,OACrE,OAAOozF,EAAI,GAAGzgF,aAIjB,CAIiBmrG,CAAiBhM,EAAKzpF,GACrC,GAAIghF,GAAU,EAAAoP,eAAepP,GAC5B,OAAO,IAAIr0B,EAAO+oC,MACjB,IAAI/oC,EAAO04B,eAAe,MAAMrE,mBAAwB,EAAAoP,eAAepP,OAIzE,MAAMzmG,EAAQkvG,EAAIrC,uBAAuBpnF,GACzC,IAAKzlB,EAAO,OACZ,MAAMkwC,EAAOg/D,EAAIr2B,QAAQ74E,GACnBglE,EAAQ90B,EAAKnlC,cAEnB,GAAI,EAAA6rG,iBAAiB1mE,GACpB,OAAO,IAAIkiC,EAAO+oC,MACjB,IAAI/oC,EAAO04B,eAAe,KAAK56D,0BAA6B,EAAA0mE,iBAAiB1mE,MAC7ElwC,GAGF,GAAI,EAAAi3G,YAAYt7F,IAAIqpD,GAAQ,CAG3B,MAAMxgD,EAAMkzE,mBAAmB3rF,KAAKhO,UAAU,CAACmyC,KACzCkrE,EAAK,IAAIhpC,EAAO04B,eACrB,KAAK56D,qDACeA,0CAA6C1rB,MAGlE,OADA42F,EAAGC,WAAY,EACR,IAAIjpC,EAAO+oC,MAAMC,EAAIp7G,EAC7B,CACA,OAAI,EAAAk3G,YAAYv7F,IAAIqpD,GACZ,IAAIoN,EAAO+oC,MACjB,IAAI/oC,EAAO04B,eAAe,KAAK56D,uBAC/BlwC,QAHF,CAOD,GAKKw3G,EAAgD,CAC/C,iBAAA8D,CAAkBpM,EAAKzpF,G,kDAC5B,MAAMzlB,EAAQkvG,EAAIrC,uBAAuBpnF,GACzC,IAAKzlB,EAAO,OACZ,MAAMkwC,EAAOg/D,EAAIr2B,QAAQ74E,GACnBu7G,EAA+B,GAGrC,IACC,IAAK,MAAMl7E,KAAK,IAAAm7E,iBAAgBtM,EAAIr2B,WAC/Bx4C,EAAExtC,OAASq9C,GACdqrE,EAAUplH,KAAK,IAAIi8E,EAAOqpC,SACzBvM,EAAIn7B,IACJ,IAAI3B,EAAOyX,MAAMqlB,EAAIjK,WAAW5kE,EAAEm6E,UAAWtL,EAAIjK,WAAW5kE,EAAEo6E,UAIlE,CAAE,MAAkD,GAAC,OAG/C,EAAAvB,kBAAkBwC,cACxB,MAAMC,EAAOzM,EAAIn7B,IAAIxhD,WACrB,IAAK,MAAMW,KAAK,EAAAgmF,kBAAkB58E,OAAO4T,GACpChd,EAAE6gD,IAAIxhD,aAAeopF,GACzBJ,EAAUplH,KAAK,IAAIi8E,EAAOqpC,SAASvoF,EAAE6gD,IAAK7gD,EAAElzB,QAE7C,OAAOu7G,CACR,E,GAWK7D,EAA0D,CACzD,uBAAAkE,CAAwBC,G,kDAE7B,aADM,EAAA3C,kBAAkBwC,cACjB,EAAAxC,kBAAkBxrG,OAAOmuG,GAAOlpH,IACrCugC,IAAM,WAAIk/C,EAAO0pC,kBACjB5oF,EAAErgC,KAVY,aADFynH,EAWGpnF,GAVVqvE,KAA2BnwB,EAAOwoC,WAAWmB,MACpC,aAAbzB,EAAI/X,KAA4BnwB,EAAOwoC,WAAWE,OAC/C1oC,EAAOwoC,WAAW7sE,SAQH,GAAI,IAAIqkC,EAAOqpC,SAASvoF,EAAE6gD,IAAK7gD,EAAElzB,QAXxD,IAAgBs6G,GAcf,E,GAKK1C,EAA8C,CAC7C,iBAAAoE,CAAkB9M,EAAKzpF,EAAK1C,G,kDACjC,MAAM/iB,EAAQkvG,EAAIrC,uBAAuBpnF,GACzC,IAAKzlB,EAAO,MAAO,GACnB,MAAMkwC,EAAOg/D,EAAIr2B,QAAQ74E,SACnB,EAAAk5G,kBAAkBwC,cAExB,MAAMH,EAAY,EAAArC,kBAAkB+C,WAAW/rE,GAAMv9C,IACnD4X,GAAM,IAAI6nE,EAAOqpC,SAASlxG,EAAEwpE,IAAKxpE,EAAEvK,QAErC,GAAI+iB,EAAQm5F,mBACX,IAAK,MAAM77E,KAAK,EAAA64E,kBAAkB58E,OAAO4T,GACxCqrE,EAAUplH,KAAK,IAAIi8E,EAAOqpC,SAASp7E,EAAE0zC,IAAK1zC,EAAErgC,QAG9C,OAAOu7G,CACR,E,GAUKvD,EAAwC,CACvC,aAAAmE,CAAcjN,EAAKzpF,G,kDACxB,MAAMzlB,EAAQkvG,EAAIrC,uBAAuBpnF,GACzC,IAAKzlB,EAAO,MAAM,IAAIvP,MAAM,mCAC5B,MAAMy/C,EAAOg/D,EAAIr2B,QAAQ74E,GACnBglE,EAAQ90B,EAAKnlC,cACnB,GAAI,EAAAksG,YAAYt7F,IAAIqpD,IAAU,EAAAkyC,YAAYv7F,IAAIqpD,GAC7C,MAAM,IAAIv0E,MAAM,+CAIjB,SAFM,EAAAyoH,kBAAkBwC,cACxB,EAAAxC,kBAAkBM,UAAUtK,EAAIn7B,IAAKm7B,EAAIr2B,WACK,IAA1C,EAAAqgC,kBAAkB58E,OAAO4T,GAAM9yC,OAClC,MAAM,IAAI3M,MAAM,IAAIy/C,oDAErB,OAAOlwC,CACR,E,EAEM,kBAAAo8G,CAAmBlN,EAAKzpF,EAAK42F,G,kDAClC,MAAMr8G,EAAQkvG,EAAIrC,uBAAuBpnF,GACzC,IAAKzlB,EAAO,OACZ,MAAMkwC,EAAOg/D,EAAIr2B,QAAQ74E,SACnB,EAAAk5G,kBAAkBwC,cACxB,EAAAxC,kBAAkBM,UAAUtK,EAAIn7B,IAAKm7B,EAAIr2B,WAEzC,MAAMiR,EAAO,IAAI1X,EAAOkqC,cAClBpM,EAAO,IAAI/2G,IACXE,EAAM,CAAC06E,EAAiBxpE,KAC7B,MAAM+D,EAAM,GAAGylE,EAAIxhD,cAAchoB,EAAEgb,MAAMy0C,QAAQzvD,EAAEgb,MAAMynF,YACrDkD,EAAKv0F,IAAIrN,KACb4hG,EAAK72G,IAAIiV,GACTw7E,EAAK//E,QAAQgqE,EAAKxpE,EAAG8xG,KAEtB,IAAK,MAAM/2F,KAAO,EAAA4zF,kBAAkB+C,WAAW/rE,GAAO72C,EAAIisB,EAAIyuD,IAAKzuD,EAAItlB,OACvE,IAAK,MAAMqgC,KAAK,EAAA64E,kBAAkB58E,OAAO4T,GAAO72C,EAAIgnC,EAAE0zC,IAAK1zC,EAAErgC,OAC7D,OAAO8pF,CACR,E,GAKKguB,EAAsD,CAC3D,yBAAAyE,CAA0BrN,EAAKzpF,GAC9B,MAAMzlB,EAAQkvG,EAAIrC,uBAAuBpnF,GACzC,IAAKzlB,EAAO,MAAO,GACnB,MAAMkwC,EAAOg/D,EAAIr2B,QAAQ74E,GACnB27G,EAAOzM,EAAIn7B,IAAIxhD,WACfuV,EAAkC,GACxC,IAAK,MAAMv9B,KAAK,EAAA2uG,kBAAkB+C,WAAW/rE,GACxC3lC,EAAEwpE,IAAIxhD,aAAeopF,GAAM7zE,EAAI3xC,KAAK,IAAIi8E,EAAOoqC,kBAAkBjyG,EAAEvK,QAExE,OAAO8nC,CACR,GAOD,SAAS20E,EAAW78E,EAAe2iE,EAAiCvV,EAAgBkiB,GACnF,MAAM/2G,EAAO,IAAIi6E,EAAOsqC,eAAe98E,EAAO2iE,GAG9C,OAFApqG,EAAK60F,OAASA,EACVkiB,IAAK/2G,EAAKwkH,cAAgB,IAAIvqC,EAAO04B,eAAeoE,IACjD/2G,CACR,CAEA,MAAMykH,EAAgB,EAAA5F,kBAAkBrkH,IAAK4V,GAC5Ck0G,EAAWl0G,EAAG6pE,EAAOyqC,mBAAmB9uE,SAAU,4BAC7C+uE,EAAgB,EAAApG,SAAS/jH,IAAKmd,GACnC2sG,EAAW3sG,EAAGsiE,EAAOyqC,mBAAmBE,QAAS,kBAC5CC,EAAqB,EAAArG,cAAchkH,IAAKmd,GAC7C2sG,EAAW3sG,EAAGsiE,EAAOyqC,mBAAmBE,QAAS,0BAC5CE,EAAe9tH,OAAOuD,QAAQ,EAAAkkH,kBAAkBjkH,IAAI,EAAEE,EAAMq8G,KACjEuN,EAAW5pH,EAAMu/E,EAAOyqC,mBAAmB9uE,SAAU,gBAAiBmhE,IACjEgO,EAAe/tH,OAAOuD,QAAQ,EAAAmjH,gBAAgBljH,IAAI,EAAEE,EAAMq8G,KAC/DuN,EAAW5pH,EAAMu/E,EAAOyqC,mBAAmBE,QAAS,iBAAkB7N,IAKvE,SAASiO,EAAWC,GACnB,MAAMlN,EAAO,IAAI/2G,IACX2uC,EAA+B,GACrC,IAAK,MAAM5U,KAAK,EAAAgmF,kBAAkBxrG,OAAO,IAAK,CAC7C,IAAK0vG,EAAMzhG,IAAIuX,EAAEqvE,OAAS2N,EAAKv0F,IAAIuX,EAAErgC,MAAO,SAC5Cq9G,EAAK72G,IAAI65B,EAAErgC,MACX,MAAM0vG,EAAkB,YAAXrvE,EAAEqvE,KAAqBnwB,EAAOyqC,mBAAmBd,MAChD,aAAX7oF,EAAEqvE,KAAsBnwB,EAAOyqC,mBAAmB/B,OAClD1oC,EAAOyqC,mBAAmB9uE,SAC7BjG,EAAI3xC,KAAKsmH,EAAWvpF,EAAErgC,KAAM0vG,EAAM,SAASrvE,EAAEqvE,QAC9C,CACA,OAAOz6D,CACR,CAEA,MAAMowE,EAAoD,CACnD,sBAAAmF,CAAuBnO,EAAKzpF,G,kDACjC,MAAM63F,EAAapO,EAAIzlB,OAAOhkE,EAAIu0C,MAAM10B,KAAKtgC,MAAM,EAAGygB,EAAIunF,WAG1D,MAAI,UAAUv9F,KAAK6tG,GACXJ,SAGF,EAAAhE,kBAAkBwC,eACT,IAAA6B,cAAarO,EAAIr2B,UAAWq2B,EAAI7J,SAAS5/E,MAEzC,EAAAugF,WAAWC,MAElB,IACH+W,KACAG,EAAW,IAAIhkH,IAAI,CAAC,UAAW,WAM7B,IACHyjH,KACAE,KACAG,KACAE,EAAW,IAAIhkH,IAAI,CAAC,eAEzB,E,GAKKm/G,EAA+C,CACpD,oBAAAkF,CAAqBtO,GACpB,IACC,OAAO,IAAAuO,eAAcvO,EAAIr2B,WAAWlmF,IAClC4X,GAAM,IAAI6nE,EAAOsrC,aAAanzG,EAAEgb,MAAOhb,EAAEyV,IAAKoyD,EAAOurC,iBAAiBC,QAEzE,CAAE,SACD,MAAO,EACR,CACD,GAsBKxF,EAAkD,CACjD,oBAAAyF,CAAqB3O,EAAKzpF,G,wDAC/B,MAAM5nB,GAAO,IAAAigH,mBAAkB5O,EAAIr2B,UAAWq2B,EAAI7J,SAAS5/E,IAC3D,IAAK5nB,EAAM,aACL,EAAAq7G,kBAAkBwC,cAGxB,MAAMqC,EAAO,EAAA7E,kBAAkB58E,OAAOz+B,EAAKhL,MAAMgT,KAAMqtB,GAAiB,aAAXA,EAAEqvE,WAAuCtyG,IAAhBijC,EAAE8qF,WACxF,IAAIC,EACJ,GAAIF,EAAM,CACT,MAAMG,EAzBT,SAAqBC,GACpB,IAAKA,EAAIv4G,OAAQ,MAAO,GACxB,MAAM0X,EAAkB,GACxB,IAAI3Y,EAAQ,EACRupG,EAAM,GACV,IAAK,MAAMxnC,KAAMy3C,EACL,MAAPz3C,GAAqB,MAAPA,GAAqB,MAAPA,EAAY/hE,IAC5B,MAAP+hE,GAAqB,MAAPA,GAAqB,MAAPA,GAAY/hE,IACtC,MAAP+hE,GAAwB,IAAV/hE,GAAe2Y,EAAMnnB,KAAK+3G,EAAItoG,QAASsoG,EAAM,IAC1DA,GAAOxnC,EAGb,OADIwnC,EAAItoG,QAAQ0X,EAAMnnB,KAAK+3G,EAAItoG,QACxB0X,CACR,CAYkB8gG,CAA0B,QAAd,EAAAL,EAAKC,iBAAS,QAAI,IAC7CC,EAAU,IAAI7rC,EAAOisC,qBAAqB,GAAGxgH,EAAKhL,QAAQqrH,EAAOllH,KAAK,UACtEilH,EAAQK,WAAaJ,EAAOvrH,IAAK8Q,GAAM,IAAI2uE,EAAOmsC,qBAAqB96G,IACvEw6G,EAAQtB,cAAgB,IAAIvqC,EAAO04B,eAAe,sBACnD,KAAO,KAAI,EAAAmM,YAAYt7F,IAAI9d,EAAKhL,KAAKkY,eAKpC,OAHAkzG,EAAU,IAAI7rC,EAAOisC,qBAAqB,GAAGxgH,EAAKhL,aAClDorH,EAAQtB,cAAgB,IAAIvqC,EAAO04B,eAAe,0BAGnD,CAEA,MAAM0T,EAAO,IAAIpsC,EAAOqsC,cAIxB,OAHAD,EAAKE,WAAa,CAACT,GACnBO,EAAKG,gBAAkB,EACvBH,EAAKI,gBAAkBt6G,KAAKC,IAAI1G,EAAKghH,YAAav6G,KAAKF,IAAI,EAAG65G,EAAQK,WAAWlhH,OAAS,IACnFohH,CACR,E,GAKKM,EAAuB,CAAC,WAAY,SAAU,QAAS,OAAQ,SACxD,EAAArG,eAAiB,IAAIrmC,EAAO2sC,qBAAqBD,GAC9D,MAAME,EAAY,IAAIlkG,IAAqBgkG,EAAUnsH,IAAI,CAACihD,EAAG1vC,IAAM,CAAC0vC,EAAG1vC,KAEjEs0G,EAA0D,CACzD,6BAAAyG,CAA8B/P,G,wDAC7B,EAAAgK,kBAAkBwC,cACxB,MAAMwD,EAAU,IAAI9sC,EAAO+sC,sBAAsB,EAAA1G,gBAC3CnzE,EAAO4pE,EAAIr2B,UACjB,IACC,IAAK,MAAMjlC,KAAK,IAAAwrE,gBAAe95E,EAAM00E,KAAqB,CACzD,MAAMv0F,EAAMypF,EAAIjK,WAAWrxD,EAAEruB,OAC7B25F,EAAQ/oH,KAAKsvB,EAAIu0C,KAAMv0C,EAAIunF,UAAWp5D,EAAEx2C,OAAQ4hH,EAAU5xG,IAAIwmC,EAAEl0C,MAAQ,EACzE,CACD,CAAE,MAA4C,GAAC,CAC/C,OAAOw/G,EAAQG,OAChB,E,GAKKC,EAAkB,uBAiBlB3G,EAAgD,CACrD,kBAAA4G,CAAmBrQ,EAAKlvG,EAAO+iB,GAC9B,MAAMy8F,EAA+B,GACrC,IAAK,MAAM1K,KAAQ/xF,EAAQ02F,YAAa,CACvC,GAAI3E,EAAKp4G,OAAS4iH,EAAiB,SAEnC,MAAMt0G,EAAI,yBAAyB0tB,KAAKo8E,EAAK9oG,SAC7C,IAAKhB,EAAG,SACR,MAAMy0G,EAAM,IAAIrtC,EAAOstC,WAAW,iBAAiB10G,EAAE,MAAOonE,EAAOymC,eAAeC,UAClF2G,EAAI31B,KAAO,IAAI1X,EAAOkqC,cACtBmD,EAAI31B,KAAK//E,QAAQmlG,EAAIn7B,IAAK+gC,EAAK90G,MAAOgL,EAAE,IACxCy0G,EAAIhG,YAAc,CAAC3E,GACnB2K,EAAIE,aAAc,EAClBH,EAAQrpH,KAAKspH,EACd,CACA,OAAOD,CACR,GAKD,SAAe7F,EAAmBzK,EAA0B52F,G,kDAC3D,GAAuB,QAAnB42F,EAAIqK,WAAsB,OAC9B,MAAMj0E,EAAO4pE,EAAIr2B,UACjB,IAAIy7B,EACJ,IACCA,GAAW,IAAAsL,iBAAgBt6E,EAC5B,CAAE,SACD,MACD,CACA,MAAM6vE,EAAQb,EAAS3hH,IAAK8Q,IAC3B,MAAM48B,EAAI,IAAI+xC,EAAO2iC,WACpB,IAAI3iC,EAAOyX,MAAMqlB,EAAIjK,WAAWxhG,EAAE8hB,OAAQ2pF,EAAIjK,WAAWxhG,EAAEuc,MAC3Dvc,EAAEuI,QACa,UAAfvI,EAAEm1F,SACCxmB,EAAO6iC,mBAAmBxkH,MAC1B2hF,EAAO6iC,mBAAmBC,SAI9B,OAFA70E,EAAEnrB,OAAS,QACXmrB,EAAE3jC,KAAO+G,EAAE/G,KACJ2jC,IAKR,UACO,EAAA64E,kBAAkBwC,cACxB,MAAM,MAAE7nH,EAAK,QAAEgsH,IA3DOC,EA2DoB9F,IAlDpC,CAAEnmH,MARK,IAAI,EAAAmjH,qBAAsB8I,EAAK7F,WAQ7B4F,QAPCt/E,GAChBu/E,EAAK1F,SAASz+F,IAAI4kB,EAAEx1B,gBACpB,EAAAmsG,YAAYv7F,IAAI4kB,EAAEx1B,gBAClB+0G,EAAK3F,QAAQx+F,IAAI4kB,IACjBu/E,EAAK7F,UAAUt+F,IAAI4kB,IACnBu/E,EAAK5F,SAASv+F,IAAI4kB,IAClBu/E,EAAKnY,MAAMhsF,IAAI4kB,KAoDf,IAAK,MAAMoK,KAAK,IAAAo1E,kBAAiBz6E,EAAMu6E,EAAShsH,GAAQ,CACvD,MAAMwsC,EAAI,IAAI+xC,EAAO2iC,WACpB,IAAI3iC,EAAOyX,MAAMqlB,EAAIjK,WAAWt6D,EAAEplB,OAAQ2pF,EAAIjK,WAAWt6D,EAAEplB,MAAQolB,EAAEvtC,SACrE,qBAAqButC,EAAEuF,yBAAyBvF,EAAEq1E,eAClD5tC,EAAO6iC,mBAAmBC,SAE3B70E,EAAEnrB,OAAS,QACXmrB,EAAE3jC,KAAO4iH,EACTnK,EAAMh/G,KAAKkqC,EACZ,CACD,CAAE,MAAmE,GAAC,CAtEvE,IAAwBy/E,EAwEvBxnG,EAAWjL,IAAI6hG,EAAIn7B,IAAKohC,EACzB,E,6EC3dA,gBAuCA,4BACCtd,EACAgoB,EACAI,EACAC,EAAU,GAEV,MAAMC,EAdP,SAAyBtoB,GACxB,OAAO,IAAA8N,cAAa9N,GAClB/+F,OAAQyR,GAAMA,EAAEg4F,OAAS,EAAAyD,WAAWG,MACpCxzG,IAAK4X,IAAM,CAAGgb,MAAOhb,EAAEgb,MAAOvF,IAAKzV,EAAEyV,MACxC,CAUeogG,CAAgBvoB,GAC9B,IAAKsoB,EAAM/iH,OAAQ,MAAO,GAC1B,MAAMijH,EAAUC,GAAgBH,EAAMjmH,KAAMg5B,GAAMotF,GAAOptF,EAAE3N,OAAS+6F,EAAMptF,EAAElT,KAEtEwlB,GAAS,IAAAo9D,UAAS/K,GAClB/vD,EAAqB,GAC3B,IAAK,IAAI5jC,EAAI,EAAGA,EAAIshC,EAAOpoC,OAAQ8G,IAAK,CACvC,MAAM0vC,EAAIpO,EAAOthC,GACjB,GAAI0vC,EAAE2uD,OAAS,EAAAC,UAAUe,KAAM,SAC/B,IAAK,iBAAiB9zF,KAAKmkC,EAAEtO,MAAO,SACpC,IAAK+6E,EAAOzsE,EAAEruB,OAAQ,SAEtB,MAAM1gB,EAAO2gC,EAAOthC,EAAI,GACxB,IAAKW,GAAQA,EAAK09F,OAAS,EAAAC,UAAUc,OAAuB,MAAdz+F,EAAKygC,KAAc,SACjE,MAAM4K,EAAO0D,EAAEtO,KACf,GAAIu6E,EAAQ3vE,IAASA,EAAK9yC,OAAS,EAAG,SACtC,MAAM4iH,EAAaO,EAAQrwE,EAAM+vE,EAAOC,GACpCF,GAAcA,IAAe9vE,GAChCpI,EAAI3xC,KAAK,CAAEovB,MAAOquB,EAAEruB,MAAOnoB,OAAQ8yC,EAAK9yC,OAAQ8yC,OAAM8vE,cAExD,CACA,OAAOl4E,CACR,EAhFA,gBACA,UACA,UACA,UAUA,SAAgB04E,EAAYvsH,EAAWC,GACtC,MAAM8W,EAAI/W,EAAEmJ,OAAQ4I,EAAI9R,EAAEkJ,OAC1B,IAAK4N,EAAG,OAAOhF,EACf,IAAKA,EAAG,OAAOgF,EACf,IAAIrL,EAAO,IAAIrB,MAAM0H,EAAI,GACzB,IAAK,IAAI8F,EAAI,EAAGA,GAAK9F,EAAG8F,IAAKnM,EAAKmM,GAAKA,EACvC,IAAK,IAAI5H,EAAI,EAAGA,GAAK8G,EAAG9G,IAAK,CAC5B,MAAMgqG,EAAM,CAAChqG,GACb,IAAK,IAAI4H,EAAI,EAAGA,GAAK9F,EAAG8F,IAAK,CAC5B,MAAM20G,EAAOxsH,EAAEiQ,EAAI,KAAOhQ,EAAE4X,EAAI,GAAK,EAAI,EACzCoiG,EAAIpiG,GAAKxH,KAAKC,IAAI5E,EAAKmM,GAAK,EAAGoiG,EAAIpiG,EAAI,GAAK,EAAGnM,EAAKmM,EAAI,GAAK20G,EAC9D,CACA9gH,EAAOuuG,CACR,CACA,OAAOvuG,EAAKqG,EACb,CAIA,SAASu6G,EAAQrwE,EAAc+vE,EAAiBC,GAC/C,IAAIQ,EACAC,EAAWT,EAAU,EACzB,IAAK,MAAMpwG,KAAKmwG,EAAO,CACtB,GAAI37G,KAAKmK,IAAIqB,EAAE1S,OAAS8yC,EAAK9yC,QAAU8iH,EAAS,SAChD,MAAM7/E,EAAImgF,EAAYtwE,EAAMpgC,GACxBuwB,EAAIsgF,IAAYA,EAAWtgF,EAAGqgF,EAAO5wG,EAC1C,CACA,OAAO6wG,GAAYT,EAAUQ,OAAOzwH,CACrC,C,4EChBA,0BAA+B4nG,EAAaioB,GAC3C,MAAMh4E,EAAkB,GACxB,IAAK,MAAM8L,KAAK,IAAAgvD,UAAS/K,GAAM,CAC9B,GAAIjkD,EAAE2uD,OAAS,EAAAC,UAAUe,OAASqd,EAAMnxG,KAAKmkC,EAAEtO,MAAO,SACtD,MAAM/E,EAAIqT,EAAEtO,KACZ,IAAI5lC,EACAogH,EAAK3F,QAAQx+F,IAAI4kB,GAAI7gC,EAAO,QACvBogH,EAAK7F,UAAUt+F,IAAI4kB,GAAI7gC,EAAO,SAC9BogH,EAAK5F,SAASv+F,IAAI4kB,GAAI7gC,EAAO,QAC7BogH,EAAKnY,MAAMhsF,IAAI4kB,GAAI7gC,EAAO,OAC1BogH,EAAK1F,SAASz+F,IAAI4kB,EAAEx1B,iBAAgBrL,EAAO,YAChDA,GAAMooC,EAAI3xC,KAAK,CAAEovB,MAAOquB,EAAEruB,MAAOnoB,OAAQw2C,EAAEtO,KAAKloC,OAAQsC,QAC7D,CACA,OAAOooC,CACR,EAvCA,gBACA,UAmBM84E,EAAQ,mB,4ECbd,6BAAkCt7E,EAAcnf,GAC/C,MAAMqf,GAAS,IAAAo9D,UAASt9D,GAGxB,IAAI0kC,GAAO,EACX,IAAK,IAAI9lE,EAAI,EAAGA,EAAIshC,EAAOpoC,QACtBooC,EAAOthC,GAAGqhB,MAAQY,EADYjiB,IACJ8lE,EAAM9lE,EAGrC,GAAI8lE,EAAM,EAAG,OAGb,IAAIrlE,EAAQ,EACRk8G,GAAa,EACjB,IAAK,IAAI/wG,EAAIk6D,EAAKl6D,GAAK,EAAGA,IAAK,CAC9B,MAAM8jC,EAAIpO,EAAO11B,GACjB,GAAI8jC,EAAE2uD,OAAS,EAAAC,UAAUc,MACzB,GAAe,MAAX1vD,EAAEtO,MAA2B,MAAXsO,EAAEtO,MAA2B,MAAXsO,EAAEtO,KAAc3gC,SACnD,GAAe,MAAXivC,EAAEtO,MAA2B,MAAXsO,EAAEtO,KAAoB3gC,EAAQ,GAAGA,SACvD,GAAe,MAAXivC,EAAEtO,KAAc,CACxB,GAAc,IAAV3gC,EAAa,CAAEk8G,EAAY/wG,EAAG,KAAO,CACzCnL,GACD,CACD,CACA,GAAIk8G,EAAY,EAAG,OAGnB,IAAIhuH,EAAO,GACX,IAAK,IAAIid,EAAI+wG,EAAY,EAAG/wG,GAAK,EAAGA,IAAK,CACxC,MAAM8jC,EAAIpO,EAAO11B,GACjB,GAAI8jC,EAAE2uD,OAAS,EAAAC,UAAUiB,YAAc7vD,EAAE2uD,OAAS,EAAAC,UAAUC,QAA5D,CACI7uD,EAAE2uD,OAAS,EAAAC,UAAUe,OAAM1wG,EAAO+gD,EAAEtO,MACxC,KAF6E,CAG9E,CACA,IAAKzyC,EAAM,OAGX,IAAIgsH,EAAc,EACdx+E,EAAI,EACR,IAAK,IAAIvwB,EAAI+wG,EAAY,EAAG/wG,GAAKk6D,EAAKl6D,IAAK,CAC1C,MAAM8jC,EAAIpO,EAAO11B,GACjB,GAAI8jC,EAAEruB,OAASY,EAAQ,MACnBytB,EAAE2uD,OAAS,EAAAC,UAAUc,QACV,MAAX1vD,EAAEtO,MAA2B,MAAXsO,EAAEtO,MAA2B,MAAXsO,EAAEtO,KAAcjF,IACpC,MAAXuT,EAAEtO,MAA2B,MAAXsO,EAAEtO,MAA2B,MAAXsO,EAAEtO,KAAcjF,IACzC,MAAXuT,EAAEtO,MAAsB,IAANjF,GAASw+E,IACrC,CAEA,MAAO,CAAEhsH,OAAMgsH,cAChB,EAzDA,gBACA,S,4EC+EA,mBAoCA,2BAAgChnB,GAC/B,MAAM1xF,EAAoB,GACpB1Q,EAAQmK,IACb,IAAK,MAAMoG,KAAKpG,EACA,WAAXoG,EAAEu8F,MAAmBp8F,EAAKhQ,KAAK6P,GACnCvQ,EAAKuQ,EAAE+0F,WAIT,OADAtlG,EAAK8/G,EAAe1d,IACb1xF,CACR,EA9HA,gBACA,UACA,UAqBM26G,EAAY,mCAKZC,EAAY,qDAElB,SAASC,EAAU17E,EAActtC,GAChC,MAAM8vC,EAAmB,GAEzB,IAAI98B,EACJ,IAFA81G,EAAUtqE,UAAY,EAEgB,QAA9BxrC,EAAI81G,EAAUpoF,KAAK4M,KAAiB,CAC3C,MAAMzyC,EAAOmY,EAAE,GACTi2G,EAAoBj2G,EAAE,GAAG5Q,QAAQvH,GACjC2nH,EAAWxiH,EAAOgT,EAAEtG,MAAQu8G,EAE5BC,EAAU57E,EAAKlrC,QAAQ,KAAM4Q,EAAEtG,OAC/Bsb,EAAMhoB,GAAQkpH,GAAW,EAAIA,EAAU,EAAI57E,EAAKloC,QACtD0qC,EAAI3xC,KAAK,CACRtD,OACAm6F,OAAQ,OACRuV,KAAM,OACNh9E,MAAOi1F,EACPx6F,MACAw6F,WACAC,OAAQD,EAAW3nH,EAAKuK,OACxB29F,SAAU,IAEZ,CACA,OAAOjzD,CACR,CAEA,SAASq5E,EAAc77E,EAActtC,GACpC,MAAM8vC,EAAmB,GAEzB,IAAI98B,EACJ,IAFA+1G,EAAUvqE,UAAY,EAEgB,QAA9BxrC,EAAI+1G,EAAUroF,KAAK4M,KAAiB,CAC3C,MAAMzyC,EAAOmY,EAAE,GAEf,GAAI,EAAAksG,YAAYv7F,IAAI9oB,EAAKkY,eAAgB,SACzC,MAAMyvG,EAAWxiH,EAAOgT,EAAEtG,MAAQsG,EAAE,GAAG5Q,QAAQvH,GAC/Ci1C,EAAI3xC,KAAK,CACRtD,OACAm6F,OAAQ,WACRuV,KAAM,WACNh9E,MAAOi1F,EACPx6F,IAAKhoB,EAAO+oH,EAAUvqE,UACtBgkE,WACAC,OAAQD,EAAW3nH,EAAKuK,OACxB29F,SAAU,GACVijB,UAAWhzG,EAAE,GAAGpF,QAElB,CACA,OAAOkiC,CACR,CAGA,SAAgBytE,EAAe1d,GAC9B,MAAM0O,GAAU,IAAAZ,cAAa9N,GACvB/vD,EAAmB,GAEzB,IAAK,MAAMv9B,KAAKg8F,EAAS,CACxB,GAAIh8F,EAAEg4F,OAAS,EAAAyD,WAAWc,SAAU,SAEpC,GAAIv8F,EAAEk8F,OAAO3zF,WAAW,MAAO,SAC/B,MAAM2zF,EAASl8F,EAAEk8F,QAAU,WACrBl2G,EAAkB,CACvBsC,KAAM4zG,EACNzZ,OAAQ,GACRuV,KAAM,SACNh9E,MAAOhb,EAAEgb,MACTvF,IAAKzV,EAAEyV,IACPw6F,SAAUjwG,EAAEgb,MACZk1F,OAAQlwG,EAAEgb,MAAQkhF,EAAOrpG,OACzB29F,SAAU,IAGPxwF,EAAEg4F,OAAS,EAAAyD,WAAWC,MACzB11G,EAAKwqG,SAAWimB,EAAUz2G,EAAE+6B,KAAM/6B,EAAEgb,OAC1Bhb,EAAEg4F,OAAS,EAAAyD,WAAWG,OAChC51G,EAAKwqG,SAAWomB,EAAc52G,EAAE+6B,KAAM/6B,EAAEgb,QAEzCh1B,EAAKy8F,OAASz8F,EAAKwqG,SAAS39F,OACzB,GAAG7M,EAAKwqG,SAAS39F,UAAUmN,EAAEg4F,OAAS,EAAAyD,WAAWC,MAAQ,QAAU,UACnE,GACHn+D,EAAI3xC,KAAK5F,EACV,CAEA,OAAOu3C,CACR,C,2IC/GA,0BACA,UACA,UACA,UACA,UAsBM84E,EAAQ,oBAGd,SAASQ,EAAiB97E,EAAcnf,GACvC,IAAI6zC,EAAO,EACPipC,EAAO,EACX,IAAK,IAAI/+F,EAAI,EAAGA,EAAIiiB,GAAUjiB,EAAIohC,EAAKloC,OAAQ8G,IAC9B,OAAZohC,EAAKphC,KACR81D,IACAipC,EAAO/+F,EAAI,GAGb,OAAO,IAAIkuE,EAAO4vB,SAAShoC,EAAM7zC,EAAS88E,EAC3C,CAEA,MAAaoe,EAAb,cACS,KAAAC,OAAS,IAAIxmG,IACb,KAAA45F,OAAS,IAAI55F,IACb,KAAAymG,WAAa,IAAIzmG,IACjB,KAAA0mG,WAAa,IAAI1mG,IACjB,KAAA2mG,OAAQ,CAmKjB,CA/JO,WAAA/F,G,kDACDlnH,KAAKitH,QACJjtH,KAAKktH,WAAUltH,KAAKktH,SAAWltH,KAAKmtH,iBACnCntH,KAAKktH,SACZ,E,CAEM,OAAAC,G,kDACLntH,KAAK8sH,OAAOxQ,QACZt8G,KAAKkgH,OAAO5D,QACZt8G,KAAK+sH,WAAWzQ,QAChBt8G,KAAKgtH,WAAW1Q,QAIhB,MAAMzoG,QAAc+pE,EAAOmT,UAAUq8B,UACpC,qBAAsB,mCAAoC,KAE3D,IAAK,MAAM7tC,KAAO1rE,EACjB,IACC,MAAMye,QAAcsrD,EAAOmT,UAAU91F,GAAG+Y,SAASurE,GACjDv/E,KAAKglH,UAAUzlC,EAAK1tE,OAAOM,KAAKmgB,GAAOyL,SAAS,QACjD,CAAE,SAEF,CAED/9B,KAAKitH,OAAQ,EACbjtH,KAAKktH,cAAWzxH,CACjB,E,CAEQ,IAAA4xH,CAAK9tC,GACZ,OAAOA,EAAItiF,KAAKsZ,cAAc3W,SAAS,OACxC,CAOM,QAAAilH,CAAStlC,G,kDACd,GAAKv/E,KAAKitH,MACV,IACC,MAAM36F,QAAcsrD,EAAOmT,UAAU91F,GAAG+Y,SAASurE,GACjDv/E,KAAKglH,UAAUzlC,EAAK1tE,OAAOM,KAAKmgB,GAAOyL,SAAS,QACjD,CAAE,SAEF,CACD,E,CAGA,SAAAinF,CAAUzlC,EAAiBzuC,GAC1B9wC,KAAK2kH,WAAWplC,GACZv/E,KAAKqtH,KAAK9tC,GAAMv/E,KAAKstH,QAAQ/tC,EAAKzuC,GACjC9wC,KAAKutH,SAAShuC,EAAKzuC,EACzB,CAEQ,OAAA08E,CAAQjuC,EAAiBlhF,EAAc0vG,EAAiBviG,EAAqBiiH,EAAyBjE,G,MAC7G,MAAM7qH,EAAuB,CAAEN,OAAM0vG,OAAMxuB,MAAK/zE,QAAOg+G,aACvDiE,EAAO9rH,KAAKhD,GACZ,MAAMqnC,EAA4B,QAArB,EAAAhmC,KAAK8sH,OAAOl0G,IAAIva,UAAK,QAAI,GACtC2nC,EAAKrkC,KAAKhD,GACVqB,KAAK8sH,OAAOj0G,IAAIxa,EAAM2nC,EACvB,CAEQ,QAAAunF,CAAShuC,EAAiBzuC,GACjC,MAAM48E,EAAwB,GAC9B,IACC,IAAK,MAAM7hF,KAAK,IAAAm7E,iBAAgBl2E,GAAO,CACtC,MAAMtlC,EAAQ,IAAIoyE,EAAOyX,MACxBu3B,EAAiB97E,EAAMjF,EAAEm6E,UACzB4G,EAAiB97E,EAAMjF,EAAEo6E,SAE1BjmH,KAAKwtH,QAAQjuC,EAAK1zC,EAAExtC,KAAMwtC,EAAEkiE,KAAMviG,EAAOkiH,EAAM7hF,EAAE29E,UAClD,CACD,CAAE,MAA4D,GAAC,CAC/DxpH,KAAKkgH,OAAOrnG,IAAI0mE,EAAIxhD,WAAY2vF,GAChC1tH,KAAK2tH,YAAYpuC,EAAKzuC,EACvB,CAEQ,OAAAw8E,CAAQ/tC,EAAiBzuC,GAChC,MAAM48E,EAAwB,GAC9B,IACC,IAAK,MAAMt4G,KAAK,IAAAw4G,iBAAgB98E,GAAO,CACtC,MAAMtlC,EAAQ,IAAIoyE,EAAOyX,MACxBu3B,EAAiB97E,EAAM17B,EAAE2b,OACzB67F,EAAiB97E,EAAM17B,EAAEoW,MAE1BxrB,KAAKwtH,QAAQjuC,EAAKnqE,EAAE/W,KAAM,UAAWmN,EAAOkiH,EAC7C,CACD,CAAE,MAAsB,GAAC,CACzB1tH,KAAKkgH,OAAOrnG,IAAI0mE,EAAIxhD,WAAY2vF,EACjC,CAIQ,WAAAC,CAAYpuC,EAAiBzuC,G,MACpC,MAAM+8E,EAAqB,GAC3B,IACC,IAAK,MAAMzuE,KAAK,IAAAgvD,UAASt9D,GAAO,CAC/B,GAAIsO,EAAE2uD,OAAS,EAAAC,UAAUe,OAASqd,EAAMnxG,KAAKmkC,EAAEtO,MAAO,SACtD,MAAMtlC,EAAQ,IAAIoyE,EAAOyX,MACxBu3B,EAAiB97E,EAAMsO,EAAEruB,OACzB67F,EAAiB97E,EAAMsO,EAAE5zB,MAEpBsF,EAAkB,CAAEzyB,KAAM+gD,EAAEtO,KAAMyuC,MAAK/zE,SAC7CqiH,EAAKlsH,KAAKmvB,GACV,MAAMkV,EAAkC,QAA3B,EAAAhmC,KAAK+sH,WAAWn0G,IAAIwmC,EAAEtO,aAAK,QAAI,GAC5C9K,EAAKrkC,KAAKmvB,GACV9wB,KAAK+sH,WAAWl0G,IAAIumC,EAAEtO,KAAM9K,EAC7B,CACD,CAAE,MAAsB,GAAC,CACzBhmC,KAAKgtH,WAAWn0G,IAAI0mE,EAAIxhD,WAAY8vF,EACrC,CAEA,UAAAlJ,CAAWplC,GACV,MAAMzlE,EAAMylE,EAAIxhD,WACV+vF,EAAQ9tH,KAAKkgH,OAAOtnG,IAAIkB,GAC9B,GAAIg0G,EAAO,CACV,IAAK,MAAM9wF,KAAK8wF,EAAO,CACtB,MAAM9nF,EAAOhmC,KAAK8sH,OAAOl0G,IAAIokB,EAAE3+B,MAC/B,IAAK2nC,EAAM,SACX,MAAM+nF,EAAO/nF,EAAK1hC,OAAQmlD,GAAMA,EAAE81B,IAAIxhD,aAAejkB,GACjDi0G,EAAKnlH,OAAQ5I,KAAK8sH,OAAOj0G,IAAImkB,EAAE3+B,KAAM0vH,GACpC/tH,KAAK8sH,OAAOvmF,OAAOvJ,EAAE3+B,KAC3B,CACA2B,KAAKkgH,OAAO35E,OAAOzsB,EACpB,CACA,MAAM+zG,EAAO7tH,KAAKgtH,WAAWp0G,IAAIkB,GACjC,GAAI+zG,EAAM,CACT,IAAK,MAAM7wF,KAAK6wF,EAAM,CACrB,MAAM7nF,EAAOhmC,KAAK+sH,WAAWn0G,IAAIokB,EAAE3+B,MACnC,IAAK2nC,EAAM,SACX,MAAM+nF,EAAO/nF,EAAK1hC,OAAQmlD,GAAMA,EAAE81B,IAAIxhD,aAAejkB,GACjDi0G,EAAKnlH,OAAQ5I,KAAK+sH,WAAWl0G,IAAImkB,EAAE3+B,KAAM0vH,GACxC/tH,KAAK+sH,WAAWxmF,OAAOvJ,EAAE3+B,KAC/B,CACA2B,KAAKgtH,WAAWzmF,OAAOzsB,EACxB,CACD,CAEA,MAAAguB,CAAOzpC,G,MACN,OAA4B,QAArB,EAAA2B,KAAK8sH,OAAOl0G,IAAIva,UAAK,QAAI,EACjC,CAGA,UAAAopH,CAAWppH,G,MACV,OAAgC,QAAzB,EAAA2B,KAAK+sH,WAAWn0G,IAAIva,UAAK,QAAI,EACrC,CAGA,MAAA6a,CAAOmuG,GACN,MAAMn4G,EAAIm4G,EAAM9wG,cACV+8B,EAAuB,GAC7B,IAAK,MAAMtN,KAAQhmC,KAAK8sH,OAAOhoH,SAC9B,IAAK,MAAM45B,KAAKsH,EACV92B,EAAEtG,SAAU81B,EAAErgC,KAAKkY,cAAcuI,SAAS5P,IAAIokC,EAAI3xC,KAAK+8B,GAG9D,OAAO4U,CACR,EAvKD,sBA0Ka,EAAAoxE,kBAAoB,IAAImI,C,8JC3NrC,0BACA,0BACA,0BACA,UACA,UACA,UAEA,IAAYtoC,GAAZ,SAAYA,GAAc,yBAAS,mBAAM,yBAAS,yBAAS,uCAAgB,yBAAS,2BAAU,mCAAc,uCAAgB,6BAAW,0CAAiB,gCAAY,0BAAS,yBAAS,CAAtL,CAAYA,IAAW,cAAXA,EAAW,KAWvB,MAAaypC,EAKZ,OAAA/mC,GACCjnF,KAAKknF,qBAAqBC,MAC3B,CAEA,WAAArnF,GAPQ,KAAAonF,qBAA+E,IAAItJ,EAAOj7E,aACzF,KAAAykF,oBAAuEpnF,KAAKknF,qBAAqBxxD,KAM1F,CAET,WAAAuyD,CAAYgmC,GAClB,MAAO,CACN7iF,MAAO6iF,EAAQ7iF,MACf0hE,YAAamhB,EAAQ1uC,IACrB6J,sBAAuB,EACvBJ,QAAS,CACRA,QAAS,mBACTtkF,UAAW,CAACupH,GACZ5sC,MAAO,wBAERuH,SAAU,CACTC,MAAOjL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQmlC,EAAQvlC,OACtFK,KAAMnL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQmlC,EAAQvlC,QAGxF,CAEO,WAAArB,CAAY0lB,GAClB,OAAI,EAAAjuB,WAAWqB,qBACP,EAAAkY,QAAQ61B,UAET,EACR,CAIO,SAAAC,CAAUphB,GAEjB,EAvCD,2BA2CA,MAAaqhB,EASZ,WAAAtuH,CAAYyuB,GAFJ,KAAA8/F,KAAkB,IAAIvkH,MAG7B,MAAMwkH,EAAkB,IAAIN,EAC5BhuH,KAAKq4F,QAAUza,EAAOznE,OAAOu0E,eAAe,UAAW,CAAEC,iBAAkB2jC,IAC3E1wC,EAAOuB,SAASyL,gBAAgB,qBAAsB,KAAQ0jC,EAAgBrnC,UAAWjnF,KAAKuuH,eAC9F3wC,EAAOuB,SAASyL,gBAAgB,mBAAqBC,GAAa7qF,KAAKmsF,SAAStB,IAChFjN,EAAOuB,SAASyL,gBAAgB,qBAAsB,CAACpzE,EAAStM,EAAMq0E,IAAQv/E,KAAKs4F,WAAW9gF,EAAStM,EAAMq0E,IAC7G3B,EAAOuB,SAASyL,gBAAgB,4BAA6B,IAAM5qF,KAAKwuH,aACxE5wC,EAAOuB,SAASyL,gBAAgB,iBAAkB,IAAM5qF,KAAKyuH,iBAC7D7wC,EAAOuB,SAASyL,gBAAgB,kBAAmB,IAAM5qF,KAAK0uH,WAC9D9wC,EAAOuB,SAASyL,gBAAgB,gBAAiB,IAAM5qF,KAAKmoG,aAC5DvqB,EAAOuB,SAASyL,gBAAgB,sBAAuB,IAAM5qF,KAAK2uH,eAClE/wC,EAAOuB,SAASyL,gBAAgB,sBAAuB,IAAM5qF,KAAK4uH,eAClEhxC,EAAOuB,SAASyL,gBAAgB,2BAA4B,IAAM5qF,KAAK6uH,oBACvEjxC,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAK8uH,gBACnElxC,EAAOuB,SAASyL,gBAAgB,sBAAuB,IAAM5qF,KAAK+uH,eAClEnxC,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAKgvH,gBACnEpxC,EAAOuB,SAASyL,gBAAgB,sBAAuB,IAAM5qF,KAAKivH,eAClErxC,EAAOuB,SAASyL,gBAAgB,2BAA4B,IAAM5qF,KAAKkvH,oBACvEtxC,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAKmvH,oBACnEvxC,EAAOuB,SAASyL,gBAAgB,yBAA0B,IAAM5qF,KAAKovH,sBACrExxC,EAAOuB,SAASyL,gBAAgB,qBAAsB,IAAM5qF,KAAKqvH,cAEjErvH,KAAK+lE,QAAS,EACd/lE,KAAKqtF,IAAM9+D,EACXvuB,KAAKi4G,WAAQx8G,CACd,CAEA,aAAO2xF,CAAOC,GAIb,OAHK,EAAAgL,UACJ,EAAAA,QAAU,IAAI+1B,EAAQ/gC,IAEhB,EAAAgL,OACR,CAKQ,UAAAk2B,GACP,IAAKvuH,KAAKq4F,SAAgC,IAArBr4F,KAAKquH,KAAKzlH,OAAc,OAC7C,MAAM6lG,EAAOzuG,KAAKquH,KAAKruH,KAAKquH,KAAKzlH,OAAS,GAC1C,IACC5I,KAAKq4F,QAAQi3B,OAAO7gB,EAAM,CAAE9e,QAAQ,EAAO4/B,OAAO,GACnD,CAAE,SAEF,CACD,CAEA,UAAAF,GACC,MAAM5wG,EAAM,EAAAqgE,WAAWiQ,kBACvBnR,EAAO3nE,IAAIq3E,UAAUC,UAAU9uE,EAAIwgE,OACpC,CAEA,WAAAgwC,GACC,MAAM9iG,EAAgC,GAChCqjG,EAAS,2BACfrjG,EAAMxqB,KAAK,CAAEypC,MAAOokF,EAAQluC,YAAa,6DACzCn1D,EAAMxqB,KAAK,CAAEypC,MAAO,4BAA6Bk2C,YAAa,+CAC9D1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,mBAAoBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACtHA,IAGL,EAAAxD,WAAWv5E,MAAQ+8E,EAAUl3C,QAAUokF,IAEzC,CAEA,gBAAAN,GACC,MAAM/iG,EAAgC,GAChC7oB,EAAK,sBACL0rB,EAAU,EAAA8vD,WAAW2wC,gBAAkB,kBAAoB,mBACjEtjG,EAAMxqB,KAAK,CAAEypC,MAAO9nC,EAAIg+E,YAAa,wEACrCn1D,EAAMxqB,KAAK,CAAEypC,MAAO,uBAAwBk2C,YAAa,sCACzD1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,cAAgBryD,EAAS0yD,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAChI,IAAKA,EACJ,OAED,MAAM5oE,EAAS4oE,EAAUl3C,QAAU9nC,EACnC,EAAAw7E,WAAW4wC,cAAch2G,GACzBkkE,EAAOznE,OAAOoqE,uBAAuB,uBAAyB7mE,EAAS,KAAO,SAEhF,CAEA,WAAAk1G,GACC,EAAA9vC,WAAW8vC,aACZ,CAEA,YAAAI,GACC,EAAAlwC,WAAWub,cAAa,EACzB,CAEA,YAAAy0B,GACC,EAAAhwC,WAAWy5B,gBAAgB,gBAAiB,oBAC7C,CAEA,WAAAwW,GACC,EAAAjwC,WAAWy5B,gBAAgB,eAAgB,mBAC5C,CAEO,gBAAA4W,CAAiB7S,GAAiB,GACpCA,GACHt8G,KAAKmoG,YACN,MAAMnqB,EAAY/gF,EAAKuH,KAAK,EAAAs6E,WAAW66B,qBAAqB16B,OAAQ,UAC9D0wC,EAAU/xC,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKw5E,EAAW,eAC/C4xC,EAAUhyC,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKw5E,EAAW,eACrDh+E,KAAKs4F,WAAW,iBAAmBs3B,EAAQ3wC,OAAQsF,EAAYgU,eAAgBq3B,GAC/E5vH,KAAK6vH,WAAWF,EAASprC,EAAYgU,eAAgB,OAAO,GAAQ+jB,GACpEt8G,KAAKs4F,WAAW,eAAiBs3B,EAAQ3wC,OAAQsF,EAAYgU,eAAgBq3B,GAC7E5vH,KAAK6vH,WAAWD,EAASrrC,EAAYgU,eAAgB,OAAO,GAAQ+jB,EACrE,CAEO,kBAAA8S,GACNpvH,KAAKmoG,YACLnoG,KAAK6vH,WAAW,EAAA/wC,WAAW6D,SAASuC,mBAAmB,eAAgBX,EAAYurC,QAAS,IAAI,GAAO,EACxG,CAEQ,aAAArB,GACPzuH,KAAKmoG,YACL,MAAM4nB,EAAS,EAAAjxC,WAAW6D,SAASuC,mBAAmB,WACtDllF,KAAK6vH,WAAWE,EAAQxrC,EAAYurC,QACrC,CAEO,SAAAtB,GACNxuH,KAAKmoG,YACLnoG,KAAK6vH,WAAW,EAAA/wC,WAAW6D,SAASiC,SAAS,SAAUL,EAAYurC,QACpE,CAEO,OAAApB,CAAQpS,GAAiB,GAC3BA,GACHt8G,KAAKmoG,YACN,IAAI6nB,GAAU,EAGd,OAFI,EAAA33B,QAAQ43B,gBAAgB,WAC3BD,EAAU,EAAA33B,QAAQw3B,WAAW,EAAA/wC,WAAW6D,SAASiC,SAAS,SAAUL,EAAYurC,QAAS,IAAI,GAAOxT,IAC9F0T,GAAWhwH,KAAKkwH,YAAY5T,EACpC,CAEO,WAAA4T,CAAY5T,GAAiB,GACnC,MAAM6T,EAAW,EAAArxC,WAAW6D,SAASuC,mBAAmB,WAClD8qC,EAAUhwH,KAAK6vH,WAAWM,EAAU5rC,EAAYurC,QAAS,IAAI,GAAQxT,GACrE8T,EAAWpwH,KAAK6vH,WAAW,EAAA/wC,WAAW6D,SAASiC,SAAS,YAAaL,EAAYurC,QAAS,IAAI,GAAM,GAC1G,OAAOE,GAAWI,CACnB,CAEO,kBAAAC,CAAmBh9G,GACzB,MAAM88G,EAAW,EAAArxC,WAAW6D,SAASuC,mBAAmB7xE,GACxD,OAAOrT,KAAKswH,aAAaH,EAC1B,CAEO,eAAAF,CAAgB58G,GACtB,MAAM88G,EAAW,EAAArxC,WAAW6D,SAASiC,SAASvxE,GAC9C,OAAOrT,KAAKswH,aAAaH,EAC1B,CAEO,YAAAG,CAAa/rH,GACnB,MAAMgsH,EAAU,IAAI,EAAA9tC,SAASl+E,EAAS06E,QACtC,IAAK,MAAMzZ,KAAQ+qD,EAAQ7tC,WAE1B,GADc1iF,KAAKwwH,aAAahrD,EAAM+e,EAAYksC,UAAMh1H,GAC9CyP,MAAQq5E,EAAYmsC,aAC7B,OAAO,EAET,OAAO,CACR,CAEO,SAAAvoB,CAAU1Q,GAAiB,GACjC,MACM6kB,EADS1+B,EAAOmT,UAAUC,iBAAiB,QAC5Bp4E,IAAa,UAC9B6+E,GAAS6kB,KACZt8G,KAAKquH,KAAO,GACZzwC,EAAOuB,SAASC,eAAe,sBAEjC,CAEO,UAAAkZ,CAAW9gF,EAAiBtM,EAAoBq5E,EAAYksC,KAAMlxC,GACxEv/E,KAAKquH,KAAK1sH,KAAK3B,KAAKwwH,aAAah5G,EAAStM,EAAMq0E,GACjD,CAEO,UAAAswC,CAAWc,EAAyBzlH,EAAmB0lH,EAAiB,GAAIC,GAAsB,EAAOC,GAAmB,GAClI,GAAI71H,EAAG8wE,WAAW4kD,EAAY1xC,QAAS,CACjC6xC,GACJ9wH,KAAKmoG,WAAU,GAChB,MAAMooB,EAAU,IAAI,EAAA9tC,SAASkuC,EAAY1xC,QACzC,IAAK,IAAIzZ,KAAQ+qD,EAAQ7tC,WAExB,GADAld,EAAOA,EAAKpqD,UAAU,EAAGoqD,EAAK58D,QAC1B48D,EAAK58D,OAAQ,CAChB,MAAMqlH,EAAUjuH,KAAKwwH,aAAaI,EAASprD,EAAMt6D,OAAMzP,GAClDo1H,GAAc5C,EAAQ/iH,MAAQq5E,EAAYmsC,cAC9C1wH,KAAKquH,KAAK1sH,KAAKssH,EACjB,CAED,OAAO,CACR,CACA,OAAO,CACR,CAEO,OAAAC,GACN,OAAOluH,KAAKquH,IACb,CAEQ,YAAAmC,CAAahrD,EAAct6D,EAAoBq5E,EAAY0L,QAAS1Q,GAC3E,IAAIlB,EAAU,EACVquB,GAAW,EACXhkB,EAAO1oF,KAAK+wH,SAAS7lH,GACrB8lH,GAAkB,EAClBzxC,GAAOr0E,GAAQq5E,EAAY0L,UAC9B/kF,EAAOq5E,EAAY0sC,WAEpB,MAAMC,EAAc1rD,EAAKp0D,OACrB8/G,EAAY5yG,WAAW,MAAQ4yG,EAAYtxH,SAAS,OAEvD4lE,GADAA,EAAOA,EAAKjwD,QAAQ,IAAK,KACbA,QAAQ,IAAK,KAG1B,IAAIy7B,EAASkgF,EAAYl1H,MAAM,SAAU,GASzC,GARIg1C,EAAOpoC,QAAU,IACpBy1E,GAAWrtC,EAAO,GAClB07D,GAAW17D,EAAO,IACb8J,MAAMujC,IAAuB,GAAXquB,GAAgBruB,GAAW,IACjD2yC,GAAkB,IAIhBxrD,EAAK58D,OACR,GAAIooH,EACH,GAAIE,EAAYtxH,SAAS,UAAW,CACnCoxC,EAASw0B,EAAKxpE,MAAM,YACpB,MAAMqX,EAAW29B,EAAOA,EAAOpoC,OAAS,GAClC++D,EAAW1qE,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASqB,iBAAiB/E,OAAQ5rE,GACxEksE,EAAM3B,EAAOC,IAAI7Z,KAAK2D,GAGtB+kC,EAAUruB,EACVnzE,EAAOq5E,EAAYmsC,aACnBhoC,EAAO1oF,KAAK+wH,SAASxsC,EAAYmsC,aAClC,MACS,EAAA5xC,WAAW6D,SAASmC,aAE5BvF,EADgB,EAAAT,WAAW6D,SAASpF,QACtBqjC,mBAAmBviC,GAC7B6yC,EAAY9mE,oBAAoBxkD,QAAQ,UAAY,GACvDsF,EAAOq5E,EAAY4sC,QACnBzoC,EAAO1oF,KAAK+wH,SAASxsC,EAAY4sC,WAEjCjmH,EAAOq5E,EAAYmsC,aACnBhoC,EAAO1oF,KAAK+wH,SAASxsC,EAAYmsC,qBAGzBlrD,EAAKlnD,WAAW,mBAC1BpT,EAAOq5E,EAAY6sC,eACT5rD,EAAKlnD,WAAW,qBAC1BpT,EAAOq5E,EAAY8sC,WACT7rD,EAAKlnD,WAAW,qBAC1BpT,EAAOq5E,EAAY+sC,gBACT9rD,EAAK5/D,QAAQ,cAAgB,IACvCsF,EAAOq5E,EAAYmsC,cAIrB,IAAKnxC,EAAK,CACT,MAAM7vE,EAAI81D,EAAKiQ,YAAY,KAC3B,GAAI/lE,GAAK,EAAG,CACX,MAAMm1E,EAASrf,EAAKpqD,UAAU1L,EAAI,EAAG81D,EAAK58D,QACtC3N,EAAG8wE,WAAW8Y,KACjB35E,EAAOq5E,EAAY0sC,UACnB1xC,EAAM3B,EAAOC,IAAI7Z,KAAK6gB,GAExB,CACD,CAIA,OAHIrf,EAAK5/D,QAAQ,YAAc,GAAK4/D,EAAK5/D,QAAQ,cAAgB,GAAKsF,GAAQq5E,EAAY4sC,WACzFzoC,EAAO,aAED,CAAGt9C,MAAOo6B,EAAM+Z,IAAKA,EAAKlB,QAASA,EAAS7Y,KAAMknC,EAAShkB,KAAMA,EAAMx9E,KAAMA,EACrF,CAGQ,QAAA6lH,CAAS7lH,GAChB,IAAIw9E,EAAO,UACX,OAAQx9E,GACP,KAAKq5E,EAAYC,QAChBkE,EAAO,aACP,MACD,KAAKnE,EAAYgU,eAChB7P,EAAO,WACP,MACD,KAAKnE,EAAY2F,SAChBxB,EAAO,UACP,MACD,KAAKnE,EAAYurC,QAChBpnC,EAAO,UACP,MACD,KAAKnE,EAAY6jB,QAChB1f,EAAO,WACP,MACD,KAAKnE,EAAY8sC,WACjB,KAAK9sC,EAAYmsC,aACjB,KAAKnsC,EAAY6sC,eAChB1oC,EAAO,YAGT,OAAOA,CACR,CAEQ,QAAAyD,CAAS8hC,GAChB,MAAMzoD,EAAOyoD,EAAQ7iF,MAGrB,OAFA,EAAA0zC,WAAWmO,mBAEHghC,EAAQ/iH,MACf,KAAKq5E,EAAYmsC,aACA,EAAA5xC,WAAW6D,SAASpF,QAChC0wC,EAAQ1uC,KACX3B,EAAOznE,OAAO43E,iBAAiBkgC,EAAQ1uC,KAAKv2E,KAAK2rF,IAChD,MAAM1jE,EAAM,IAAI2sD,EAAO4vB,SAASygB,EAAQzoD,KAAO,EAAG,GAClDmvB,EAAO/S,WAAa,CAAC,IAAIhE,EAAO8vB,UAAUz8E,EAAKA,IAC/C,MAAMzlB,EAAQ,IAAIoyE,EAAOyX,MAAMpkE,EAAKA,GACpC0jE,EAAOgZ,YAAYniG,KAGrB,MAED,KAAK+4E,EAAY+sC,gBAChBtxH,KAAK+uH,cACL,MAED,KAAKxqC,EAAY6sC,eAChBpxH,KAAK8uH,eACL,MAED,KAAKvqC,EAAY0sC,UACZhD,EAAQ1uC,MACP,EAAAQ,SAAS5gE,MAAM8uG,EAAQ1uC,IAAIN,QAC9B,EAAAH,WAAWgR,gBAAgBm+B,EAAQ1uC,IAAIN,QAC7BhkF,EAAG8wE,WAAWkiD,EAAQ1uC,IAAIN,SACpCrB,EAAOznE,OAAO43E,iBAAiBkgC,EAAQ1uC,MAGzC,MAED,KAAKgF,EAAY8sC,WAChB,MAAMpgG,EAAMu0C,EAAK5/D,QAAQ,SACnBrB,EAAWihE,EAAKpqD,UAAU,GAAI6V,EAAM,GACpCovB,EAAM,0BAA4B97C,EACxCq5E,EAAOznE,OAAOk7E,iBAAiBhxC,EAAK,qBAAqBr3C,KAAK+tB,IAC7D6mD,EAAOznE,OAAO43E,iBAAiBnQ,EAAOC,IAAI7Z,KAAKz/D,MAEhD,MACD,QACK0pH,EAAQ1uC,KACX3B,EAAOznE,OAAO43E,iBAAiBkgC,EAAQ1uC,KAG3C,CAEO,WAAA8L,CAAY7zE,GACdA,EAAQ5O,OACX5I,KAAKq4F,QAAQhX,MAAQ,YAAY7pE,KAEjCxX,KAAKq4F,QAAQhX,MAAQ,SACvB,CAEQ,WAAAstC,GACP,EAAA7vC,WAAW6vC,aACZ,CAEA,gBAAAE,GACC,MAAMpwG,EAAM,EAAAqgE,WAAWiQ,kBACvB,EAAAjQ,WAAWgR,gBAAgBrxE,EAAIwgE,OAChC,EAnXD,W,iIC7DA,0BACA,0BACA,0BACA,UACA,UACA,UACA,UACA,UAEA,IAAYsyC,GAAZ,SAAYA,GAAU,yBAAS,qBAAO,mBAAM,cAAI,CAAhD,CAAYA,IAAO,UAAPA,EAAO,KAYnB,MAAaC,UAAgB,EAAA/uC,SAS5B,WAAA3iF,GACC0C,QARkB,KAAAivH,eAAiB,WACjB,KAAAC,WAAa,eACb,KAAAC,aAAe,WACf,KAAAC,cAAgB,YACxB,KAAAC,eAAqC,GACrC,KAAAh+G,MAAmB,IAAI/J,KAIlC,CAES,MAAAgoH,G,kDACF,IAAIC,GAAS,EACb,GAAkC,GAA9B,EAAAjzC,WAAWgB,SAASl3E,OAAa,CACjC,MAAMujB,EAAgC,GAC/CA,EAAMxqB,KAAK,CAACypC,MAAO,SAAUk2C,YAAa,0BAC1Cn1D,EAAMxqB,KAAK,CAACypC,MAAO,QAASk2C,YAAa,6BAEnC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAACk1D,MAAO,WAAYK,aAAa,EAAOC,YAAa,2BAA2B34E,KAAWs5E,GAAa,EAAD,yCAM/HyvC,SALSt2H,WAAd6mF,IAA4BA,GAAgC,SAAnBA,EAAUl3C,eAK/B,EAAA0zC,WAAW6D,SAASrD,UAAU,EAAAR,WAAW6D,SAASqB,kBAClF,GACK,KAAO,CACH,MAAM73D,EAAgC,EAAA2yD,WAAWkzC,oBAC3Cp0C,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAACk1D,MAAO,kBAAmBK,aAAa,EAAOC,YAAa,oBAAoB34E,KAAKs5E,IAC1H,IAAKA,IAAcA,EAAUhB,YACzB,OAAO,EACX,MAAMzB,EAASjC,EAAOC,IAAI7Z,KAAKse,EAAUhB,aACzC,EAAAxC,WAAWkB,WAAWH,GACtBkyC,GAAS,GAEjB,CACA,OAAOA,CACX,E,CAEA,OAAAjT,CAAQv/B,EAAiB0yC,GAAkB,GACvC,EAAAnzC,WAAW35E,IAAI2sH,SAAS9oH,KAAK+oH,IAC9BA,IACS,EAAAjzC,WAAW35E,IAAI+sH,WAAW3yC,GACtB0yC,GACAr0C,EAAOznE,OAAO43E,iBAAiB/tF,KAAKmyH,YAGpD,CAEM,IAAAr8G,CAAK6xD,G,kDACP3nE,KAAK6tF,QAAQlmB,GAIb3nE,KAAK6xH,eAAiB,GACtB,IAAIO,GAAK,EACLC,GAAO,EACPzoH,GAAQ,EAEZ,GAAI5J,KAAKsyH,WAAW3qD,GAAW,CAE3B,SADM3nE,KAAKuyH,kBAAkB5qD,GACF,SAAvB3nE,KAAK6xH,eACL,OACJ,MAAMlkC,EAAW,IAAI,EAAAlL,SAErB,IAAK,MAAMt9E,KAAOnF,KAAK6T,MAQnB,GAPA85E,EAASE,QAAQ1oF,EAAIo6E,KACrBoO,EAASlJ,QAAQt/E,EAAI89E,SACrB0K,EAASnK,WACLr+E,EAAI+F,MAAQqmH,EAAQhrC,QAAO38E,GAAQ,GACnCzE,EAAI+F,MAAQqmH,EAAQ/qC,KAAI4rC,GAAK,GAC7BjtH,EAAI+F,MAAQqmH,EAAQjrC,OAAM+rC,GAAO,GAEjCltH,EAAI+F,MAAQqmH,EAAQjrC,KAAM,CAC1B,MAAMksC,EAAoB,EAAA1zC,WAAW6D,SAASpF,QAAQk1C,gBAAgBzyH,KAAK6xH,gBAC3E,EAAA/yC,WAAW6D,SAASpF,QAAQutB,WAAW0nB,EAAQn0C,QAAQl5E,EAAIo6E,IAC/D,CAKA31E,GAAOg0E,EAAOuB,SAASC,eAAe,uBACtCizC,GAAMz0C,EAAOuB,SAASC,eAAe,2BACrCgzC,GAAIx0C,EAAOuB,SAASC,eAAe,oBAC3C,CACJ,E,CAEA,WAAAszC,CAAYnuH,EAAkB0+E,GAC1B,MAAM0K,EAAW,IAAI,EAAAlL,SACflD,EAAM3B,EAAOC,IAAI7Z,KAAKz/D,GAM5B,GAJAopF,EAASE,QAAQtO,GACjBoO,EAASlJ,QAAQxB,GACjB0K,EAASnK,WAELj/E,EAASua,SAAS,YAAa,CAC/B,MAAM0zG,EAAoB,EAAA1zC,WAAW6D,SAASpF,QAAQk1C,gBAAgBluH,GACtE,EAAAu6E,WAAW6D,SAASpF,QAAQutB,WAAW0nB,EAAQn0C,QAAQkB,EAC3D,CACJ,CAEA,QAAAozC,CAASC,GACLA,EAAQrzC,IAAM3B,EAAOC,IAAI7Z,KAAK,IAC9B4uD,EAAQntB,UAAY,GACpBmtB,EAAQv/G,SAAW,GACnBu/G,EAAQ1nH,KAAOqmH,EAAQthC,QACvB2iC,EAAQ3vC,QAAU,GAClB2vC,EAAQ7sD,QAAS,CACrB,CAEA,UAAAusD,CAAW3qD,GACP3nE,KAAK6tF,QAAQlmB,GACb,IAAIkrD,GAAO,EACP5vC,EAAU,GACV+7B,GAAU,EACiBphC,EAAOC,IAAI7Z,KAAK,IAAwCutD,EAAQthC,QAC/FjwF,KAAK6T,MAAQ,GAEb,IAAK,MAAM2xD,KAAQxlE,KAAK0iF,WACpB,GAAyC,GAArCld,EAAK5/D,QAAQ5F,KAAKyxH,gBAAsB,CACxCzS,GAAU,EACN/7B,EAAQr6E,OAAS,IACL5I,KAAK6T,MAAM7T,KAAK6T,MAAMjL,OAAS,GACvCq6E,QAAUA,GAElBA,EAAU,GACV,MACM6vC,EADSttD,EAAKxpE,MAAM,cACC,GACrB42H,EAAU5yH,KAAK+yH,WAAWD,GAChC9yH,KAAK6T,MAAMlS,KAAKixH,GACZA,EAAQ7sD,SACR,EAAAsyB,QAAQC,WAAW,eAAiBr7F,EAAKuH,KAAKouH,EAAQntB,UAAUmtB,EAAQv/G,UAAW,EAAAkxE,YAAY4sC,QAASyB,EAAQrzC,KAChHszC,GAAO,EAEf,MAAW7T,IACP/7B,EAAUA,EAAUzd,EAAO,MAUnC,OAPIyd,EAAQr6E,OAAS,IACL5I,KAAK6T,MAAM7T,KAAK6T,MAAMjL,OAAS,GACvCq6E,QAAUA,GAEb4vC,GACDj1C,EAAOuB,SAASC,eAAe,sBAE5ByzC,CACX,CAEA,UAAAE,CAAWD,GACP,MAAMvuH,EAAWtH,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASqC,uBAAuB/F,OAAO6zC,GAC7E,IAAI5nH,EAAgBqmH,EAAQthC,QAC5B,MAAM58E,EAAWpW,EAAKuW,SAASjP,GACzBkhG,EAAYxoG,EAAKuhB,QAAQs0G,GAU/B,OATIvuH,EAASua,SAAS9e,KAAK0xH,YACvBxmH,EAAOqmH,EAAQ/qC,GAEVjiF,EAASua,SAAS9e,KAAK2xH,cAC5BzmH,EAAOqmH,EAAQjrC,KAEV/hF,EAASua,SAAS9e,KAAK4xH,iBAC5B1mH,EAAOqmH,EAAQhrC,OAEZ,CAAChH,IAAK3B,EAAOC,IAAI7Z,KAAKz/D,GAAWkhG,UAAWA,EAAWpyF,SAAUA,EAAUnI,KAAMA,EAAM+3E,QAAS,GAAIld,OAAQ9qE,EAAG8wE,WAAWxnE,GACrI,CAEM,iBAAAguH,CAAkB5qD,G,kDACpB3nE,KAAK6tF,QAAQlmB,GACb,IAAIpjE,EAAW,GACf,IAAK,MAAMihE,KAAQxlE,KAAK0iF,WACpB,GAAyC,GAArCld,EAAK5/D,QAAQ5F,KAAKyxH,gBAAsB,CACxC,MACMqB,EADSttD,EAAKxpE,MAAM,cACC,GAE3B,GADAuI,EAAWtH,EAAKuH,KAAK,EAAAs6E,WAAWgJ,iBAAiB7I,OAAO6zC,GACpDvuH,EAASua,SAAS9e,KAAK2xH,cAAe,CACtC,MACMxlG,EAAgC,IAD1B,IAAI,EAAAqxD,cAEZw1C,aAAa,EAAAl0C,WAAW6D,SAASzD,mBAAmBD,OAAO9yD,EAAM,UAC/DyxD,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAACk1D,MAAO,cAAeK,aAAa,EAAOC,YAAa,gCAAgC34E,KAAKs5E,IAI9HtiF,KAAK6xH,oBAHgBp2H,WAAd6mF,GAA4BA,EAGbA,EAAUhB,YAFV,SAKlC,CACJ,CAEJ,MAAO,EACX,E,CAEA,UAAA4wC,CAAWvqD,GACP,MAAMsrD,EAAsBh4H,EAAG2Z,aAAa+yD,EAASsX,OAAO,QAC5Dj/E,KAAKkzH,WAAWlzH,KAAKmzH,WAAWxrD,IAChC3nE,KAAKkzH,WAAWD,GAChBjzH,KAAKwjF,UACT,CAEA,UAAA2vC,CAAWxrD,GACP,IAAI7uC,EAAS,GACb,MAAMv0B,EAAWojE,EAASsX,OAC1B,IAAIxgE,EAAM,GACGxhB,EAAKykB,MAAMk0E,UAAUrxF,GAC9BA,EAASua,SAAS9e,KAAK0xH,YACvBjzG,EAAM,EAAAqgE,WAAW6D,SAAS+D,cAAc,EAAApJ,UAAUkJ,IAE7CjiF,EAASua,SAAS9e,KAAK2xH,cAC5BlzG,EAAM,EAAAqgE,WAAW6D,SAAS+D,cAAc,EAAApJ,UAAUgJ,MAE7C/hF,EAASua,SAAS9e,KAAK4xH,iBAC5BnzG,EAAM,EAAAqgE,WAAW6D,SAAS+D,cAAc,EAAApJ,UAAUiJ,QAEtD,MAAMloF,EAAOpB,EAAKuW,SAASm0D,EAASsX,QAC9B/W,EAAYjrE,EAAKuH,KAAKia,EAAIpgB,GAEhC,OADAy6B,EAAS,KAAO94B,KAAKyxH,eAAiB,IAAMvpD,EAAY,MACjDpvC,CACX,EAzNJ,W,2MCrBA,0BACA,0BACA,0BACA,yBACA,UACA,UACA,UACA,UACA,UACA,SACA,UACA,UACA,UASS,4EATgB,cAAY,IACrC,gBACA,UACA,0BAEA,IAAYs6F,EACAC,EACAC,EACAC,GAHZ,SAAYH,GAAiB,yBAAS,yBAAS,mBAAM,sBAAQ,CAA7D,CAAYA,IAAc,iBAAdA,EAAc,KAC1B,SAAYC,GAAiB,yBAAS,6BAAW,mBAAM,sBAAQ,CAA/D,CAAYA,IAAc,iBAAdA,EAAc,KAC1B,SAAYC,GAAoB,yBAAS,iBAAK,kBAAM,CAApD,CAAYA,IAAiB,oBAAjBA,EAAiB,KAC7B,SAAYC,GAAe,yBAAS,mBAAM,4BAAW,CAArD,CAAYA,IAAY,eAAZA,EAAY,KAiBxB,MAAa19B,UAAgB,EAAApT,SAO5B,WAAA3iF,CAAYyE,EAAmB,GAAIivH,GAAyB,EAAM1iF,EAAe,IAChFtuC,QANM,KAAAixH,SAA0B,IAAI3pH,MAC9B,KAAA+9F,YAA8BurB,EAAenjC,QAC5C,KAAAxR,QAAU,EACV,KAAAgpB,aAAuB,EAI1B32D,EAAKloC,OACR5I,KAAKykF,QAAQ3zC,EAAM0iF,GACXjvH,EAASqE,QACjB5I,KAAK6tF,QAAQjQ,EAAOC,IAAI7Z,KAAKz/D,GAAWivH,EAC1C,CAEA,OAAA5gC,CAAQruF,GAEH,EAAAu6E,WAAW40C,UACd91C,EAAOznE,OAAOypE,mBAAmB,4BAIlChC,EAAOznE,OAAO4iF,aAAa,CAC1Bx+D,SAAUqjD,EAAOob,iBAAiB26B,aAClCtyC,MAAO,WACP6X,aAAa,GACX,CAAOC,EAAUvsD,IAAU,EAAD,yCAC5BA,EAAMgnF,wBAAwB,KAC7B,EAAAC,aAAaC,iBACb,EAAAh1C,WAAW2X,IAAI6R,UACft9F,QAAQC,IAAI,4BAKb,MAAM0tF,EAAM,EAAA7Z,WAAW8Z,UAAU3Z,OAC5B0Z,EAAI/vF,QAAW3N,EAAG8wE,WAAW4sB,IACjC/a,EAAOznE,OAAOk7E,iBAAiB,qBAAsB,gBAAgBroF,KAAK+tB,IACzE,EAAA+nD,WAAWub,iBAIb,MAAM/I,EAAYr0F,EAAKuhB,QAAQm6E,GAC/B,EAAA7Z,WAAWH,YACXf,EAAOuB,SAASC,eAAe,kCAG/B+Z,EAASC,OAAO,CAAEplB,UAAW,GAAIx8D,QAAS,eAE1C,EAAAuoE,SAAS6mB,SAAS,EAAA9nB,WAAW6D,SAASuC,qBAAqBjG,QAC3D,EAAAc,SAAS6mB,SAAS,EAAA9nB,WAAW6D,SAASwC,kBAAkBlG,QAExD,MAAM80C,EAAUxvH,EAAS06E,OAEzB,EAAAH,WAAW6D,SAASoC,mBAAmBxgF,GACvC,EAAAu6E,WAAW6D,SAASW,oBAEpB,MAAMjwE,EAAWpW,EAAKuW,SAASjP,EAAS06E,QAClC+0C,EAAU,EAAAj0C,SAAS5gE,MAAM5a,EAAS06E,QAAU,YAAc,OAC1Dg1C,EAAeh8G,KAAKsiC,MAC1B,EAAA89C,QAAQ8P,YACR,EAAA9P,QAAQC,WAAW,aAAe07B,EAAU,KAAO3gH,EAAU,EAAAkxE,YAAYgU,eAAgBh0F,GACzFq5E,EAAOuB,SAASC,eAAe,sBAC/B,EAAAmgC,WAAW2U,QAAQ,EAAAC,eAAeC,KAElC,MAAMnjG,EAAM8iG,EAAQ76G,OAAO,SACrB89E,EAAU+8B,EAAQ34G,UAAU,EAAG6V,GAE/B/c,EAAO,EAAA2/G,aAAaQ,aACpBC,EAAapgH,GAAQ,EAAAqgH,QAAQC,IAAM,OAAStgH,GAAQ,EAAAqgH,QAAQE,OAAS,UAAY,GAEjFC,EAAU,EAAAb,aAAac,aACvBC,EAAgBF,IAAY,EAAAG,QAAQC,UAAYJ,IAAY,EAAAG,QAAQE,aAAeL,IAAY,EAAAG,QAAQG,kBAG7G,GADA3kB,EAAUE,UAAU,eAAgB,CAAEr8F,KAAM0gH,EAAgB,WAAa,gBACrEA,IACY,EAAA91C,WAAW2X,IAAIw+B,sBAAsBj+B,EAAS1F,EAAW/sF,EAAUmwH,GAIjF,OAFA,EAAA51C,WAAW2X,IAAIy+B,kBAAkB3wH,EAAU8uH,EAAe9oB,aAC1D3sB,EAAOuB,SAASC,eAAe,sBAKjC,MAAM9zE,EAAiB,CAAC,OAAQ,IAAM0rF,EAAU,IAAK,QAAS,IAAM1F,EAAY,KAK5EojC,IAAY,EAAAG,QAAQC,UAAYJ,IAAY,EAAAG,QAAQG,mBACvD1pH,EAAK3J,KAAK,aAEX2J,EAAK3J,KAAK,IAAMoyH,EAAU,IAAKO,GAE/B,EAAAx1C,WAAW2X,IAAIy+B,kBAAkB3wH,EAAU8uH,EAAe8B,WAE1D,MAAM76B,EAAK,EAAQ,MAEnB,OAAO,IAAIxxF,QAAQC,IAClB,EAAA8qH,aAAaC,gBAAe,GAC5B,MAAMsB,EAAYn9G,KAAKsiC,MACvB,EAAAukC,WAAW40C,UAAYp5B,EAAGO,SAASlC,EAAKrtF,EAAM,CAACvD,EAAKkzE,EAAQ3gE,KAC3D,MAAM+6G,EAAWp9G,KAAKsiC,MAAQ66E,EACxBp3C,EAAY/gF,EAAKuH,KAAK,EAAAs6E,WAAW66B,qBAAqB16B,OAAQ,UAC9D0wC,EAAU/xC,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKw5E,EAAW,eAC/C4xC,EAAUhyC,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKw5E,EAAW,eACrD,EAAA+B,SAASnsE,UAAU+7G,EAAQ1wC,OAAQhE,GACnC,EAAA8E,SAASnsE,UAAUg8G,EAAQ3wC,OAAQ3kE,GACnCtP,QAAQC,IAAI,WAAagwE,GACzBjwE,QAAQC,IAAI,WAAaqP,GACzB,IAAIs3D,EAAc,EAAAymB,QAAQg4B,mBAAmB,WAK7C,GAJKz+C,IACJA,EAAc,EAAAymB,QAAQ43B,gBAAgB,cAEvC,IAAA71B,4BACIryF,GAAO6pE,EACN7pE,GACH,EAAAswF,QAAQC,WAAWvwF,EAAIyP,QAAS,EAAA+sE,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAK+vD,IAC7E,EAAAj1C,WAAW2X,IAAIy+B,kBAAkB3wH,EAAU8uH,EAAe9oB,QAC1D,EAAAspB,aAAayB,sBACT1jD,EACH,EAAAymB,QAAQ63B,aAAY,GACX,EAAA73B,QAAQq2B,SAAQ,IACzB,EAAAr2B,QAAQ82B,kBAAiB,GAE1BvxC,EAAOuB,SAASC,eAAe,yBAC/BxB,EAAOuB,SAASC,eAAe,sBAC/Br2E,EAAQ,cACF,CACN,MAAMwsH,GAAat6C,GAAU,IAAM,MAAQ3gE,GAAU,IAG/Ck7G,EAAUhkH,GAAc1B,KAAK8hC,MAAU,IAAJpgC,GAAW,IAC9CikH,GAAYx9G,KAAKsiC,MAAQ05E,GAAgB,IACzCyB,GAAYN,EAAYnB,GAAgB,IAExC0B,EAAUF,EAAWC,EADXL,EAAW,IAKrBO,EAAUL,EAAU//G,MAAM,sCAC1BqgH,EAAWN,EAAU//G,MAAM,oDAC3BsgH,EAAYP,EAAU//G,MAAM,sCAQ5BugH,EAAsB,GACtBC,EAAS,yCACf,IAAIC,EACJ,KAA4C,QAApCA,EAAQD,EAAO9xF,KAAKqxF,KAC3BQ,EAAUp0H,KAAKs0H,EAAM,GAAG7kH,QAEzB,MAAM8kH,EAAeX,EAAU//G,MAAM,uCAC/B2gH,EAAgBZ,EAAU//G,MAAM,wCAChC4gH,EAAQR,EAAUzrF,WAAWyrF,EAAQ,IAAM,EAC3CS,EAASR,EAAW1rF,WAAW0rF,EAAS,IAAM,EAC9CS,EAAUR,EAAY3rF,WAAW2rF,EAAU,IAAM,EACjDS,EAASf,EAAOC,GAChBe,EAAShB,EAAOE,GAChBe,EAAMjB,EAAOY,GACbM,EAAOlB,EAAOa,GACdM,EAAQnB,EAAOc,GACfM,EAAQpB,EAAOG,GAGfkB,EAAUrB,EAAOe,EAASC,EAASC,EAAMC,EAAOC,EAAQC,GACxDE,EAAOP,EAAOhsF,QAAQ,GACtBwsF,EAAoB,CAAC,aAAe/C,EAAU,KAAO3gH,GAC3D0jH,EAAQp1H,KAAK,sBAAwB60H,EAAOjsF,QAAQ,GAAK,QACzDwsF,EAAQp1H,KAAK,mBAAqBk1H,EAAQtsF,QAAQ,GAAK,QACnDqrF,GACHmB,EAAQp1H,KAAK,0BAA4B80H,EAAIlsF,QAAQ,GAAK,QAK3D,MAAMysF,EAAgB,IAAIryH,IAC1B,IAAK,MAAMsyH,KAAYlB,EAAW,CACjC,MAAMmB,EAAS,WAAWj8G,KAAKg8G,GACzBE,EAAYD,EAASf,EAAgBD,EACrCkB,EAAUF,EAAS,OAAS,MAClC,IAAIG,EAAU,GACVF,IAAcH,EAAc7vG,IAAIiwG,IACnCC,EAAU,KAAO7B,EAAOrrF,WAAWgtF,EAAU,KAAK5sF,QAAQ,GAAK,OAC/DysF,EAAcnyH,IAAIuyH,IACRD,IACVE,EAAU,kBAEXN,EAAQp1H,MAAMi0H,EAAU,KAAO,IAAM,eAAiB34H,EAAKuW,SAASyjH,GAAYI,EACjF,CACIxB,GACHkB,EAAQp1H,KAAK,UAAYk0H,EAAS,GAAK,KAAOa,EAAKnsF,QAAQ,GAAK,QAC7DurF,GACHiB,EAAQp1H,KAAK,uBAAyBg1H,EAAMpsF,QAAQ,GAAK,QAC1DwsF,EAAQp1H,KAAK,gCAAkCi1H,EAAMrsF,QAAQ,GAAK,QAClEwsF,EAAQp1H,KAAK,kBAAoBqyH,EAAU,KAAO3gH,EAAW,MAAQyjH,EAAO,SAE5E,EAAA/2C,SAASnsE,UAAU,EAAAkrE,WAAW6D,SAASuC,mBAAmB,eAAejG,OAAQ83C,EAAQvyH,KAAK,MAAQ,MAEtG,IAAK,MAAMghE,KAAQuxD,EAAQvmH,MAAM,GAChC,EAAA6nF,QAAQC,WAAW9yB,EAAM,EAAA+e,YAAYgU,eAAgB3a,EAAOC,IAAI7Z,KAAK+vD,IACtE,EAAAj1C,WAAW6D,SAASe,gBAAgBn/E,GACpCq5E,EAAOuB,SAASC,eAAe,uBAC/BxB,EAAOuB,SAASC,eAAe,yBAC/BxB,EAAOuB,SAASC,eAAe,2BAC/BxB,EAAOuB,SAASC,eAAe,2BAC/BxB,EAAOuB,SAASC,eAAe,qBAC/BxB,EAAOuB,SAASC,eAAe,sBAC/B,EAAAN,WAAW2X,IAAIy+B,kBAAkB3wH,EAAU8uH,EAAenpB,MAC1D,EAAA2pB,aAAayB,sBACbvsH,EAAQ,YACT,IACEuuH,KAEL,GACD,CAEO,OAAAhvB,GACN,EAAAxpB,WAAW2X,IAAIgR,aAAc,CAC9B,CAEO,qBAAAwtB,CAAsBj+B,EAAiB1F,EAAmB/sF,EAAsBmwH,EAAmB,EAAAG,QAAQC,UACjH,MAAMn0C,EAAe1jF,EAAKuW,SAASwjF,EAAQzhF,QAAQ,UAAW,KACxDgX,EAAWT,EAAGS,WACd0qE,EAAmB,UAAb1qE,EAAuB,OAAsB,WAAbA,EAAwB,SAAW,MASzEgrG,EAAkB,GAHvB7C,IAAY,EAAAG,QAAQE,YAAc,KAClCL,IAAY,EAAAG,QAAQG,kBAAoB,WACxCr0C,IACwCsW,IACnCE,EAAcl6F,EAAKuH,KAAKwyF,EAASugC,GAEvC,IAAKt8H,EAAG8wE,WAAWorB,GAAc,CAChC,EAAAkB,QAAQC,WAAW,+BAA+BnB,IAAe,EAAA5S,YAAYgU,eAAgBh0F,GAC7F,MAAMizH,EACL9C,IAAY,EAAAG,QAAQE,YAAc,aAClCL,IAAY,EAAAG,QAAQG,kBAAoB,wBACxC,0BAaD,OAZAp3C,EAAOznE,OAAOk7E,iBACb,+BAA+BkmC,MAAoBC,uDACnDA,GACCxuH,KAAKgpF,IACS,4BAAXA,EACHpU,EAAOuB,SAASC,eAAe,gCACV,0BAAX4S,EACVpU,EAAOuB,SAASC,eAAe,oCACV,eAAX4S,GACVpU,EAAOuB,SAASC,eAAe,uBAG1B,CACR,CAEA,IAOC,MAAMuY,EAAS16F,EAAKuH,KAAKwyF,EAAS,OAMlC,GALK/7F,EAAG8wE,WAAW4rB,IAClB18F,EAAGsZ,UAAUojF,EAAQ,CAAEj5E,WAAW,IAI/Bg2G,IAAY,EAAAG,QAAQE,YAEvB95H,EAAGy8F,aAAaP,EAAal6F,EAAKuH,KAAKmzF,EAAQ,KAAKV,MACpDh8F,EAAGy8F,aAAaP,EAAal6F,EAAKuH,KAAKmzF,EAAQ,MAAMV,MACrD,EAAAoB,QAAQC,WAAW,UAAUi/B,QAAsBt6H,EAAKuH,KAAKmzF,EAAQ,KAAKV,gBAAkBA,KAAQ,EAAA1S,YAAYgU,eAAgBh0F,QAC1H,GAAImwH,IAAY,EAAAG,QAAQG,kBAAmB,CAIjD/5H,EAAGy8F,aAAaP,EAAal6F,EAAKuH,KAAKmzF,EAAQ,MAAMV,MACrDh8F,EAAGy8F,aAAaP,EAAal6F,EAAKuH,KAAKmzF,EAAQ,OAAOV,MACtD,IAAK,MAAMwgC,IAAS,CAAC,KAAKxgC,IAAO,MAAMA,KAAQ,CAC9C,MAAMygC,EAAYz6H,EAAKuH,KAAKmzF,EAAQ8/B,GAChCx8H,EAAG8wE,WAAW2rD,IAAYz8H,EAAGypG,WAAWgzB,EAC7C,CACA,EAAAr/B,QAAQC,WAAW,UAAUi/B,QAAsBt6H,EAAKuH,KAAKmzF,EAAQ,MAAMV,iBAAmBA,qBAAwB,EAAA1S,YAAYgU,eAAgBh0F,EACnJ,MAECtJ,EAAGy8F,aAAaP,EAAal6F,EAAKuH,KAAKmzF,EAAQ,MAAMV,MACrDh8F,EAAGy8F,aAAaP,EAAal6F,EAAKuH,KAAKmzF,EAAQ,OAAOV,MAKtDh8F,EAAGy8F,aAAaP,EAAal6F,EAAKuH,KAAKmzF,EAAQ,KAAKV,MACpDh8F,EAAGy8F,aAAaP,EAAal6F,EAAKuH,KAAKmzF,EAAQ,MAAMV,MACrD,EAAAoB,QAAQC,WAAW,UAAUi/B,QAAsBt6H,EAAKuH,KAAKmzF,EAAQ,MAAMV,aAAeA,QAAUA,SAAWA,IAAO,EAAA1S,YAAYgU,eAAgBh0F,GAEnJ,OAAO,CACR,CAAE,MAAOwD,GACR,MAAMywF,EAASzwF,GAAOA,EAAIyP,QAAUzP,EAAIyP,QAAU8b,OAAOvrB,GAGzD,OAFA,EAAAswF,QAAQC,WAAW,8CAA8CE,IAAU,EAAAjU,YAAYgU,eAAgBh0F,GACvGq5E,EAAOznE,OAAOk7E,iBAAiB,8CAA8CmH,MACtE,CACR,CACD,CAEO,iBAAA08B,CAAkB31C,EAAiB4iB,GACzC,IAAK,MAAM3mF,KAAK,EAAAsjE,WAAW2X,IAAIg9B,SAC9B,GAAIj4G,EAAE+jE,IAAIN,QAAUM,EAAIN,OAAQ,CAC/BzjE,EAAE2mF,OAASA,EACX,KACD,CAEF,CAEO,WAAAw1B,CAAYp4C,EAAiBr0E,GAC/BA,GAAQqoH,EAAavpC,KACxBhqF,KAAKyzH,SAAS9xH,KAAK,CAAE49E,IAAKA,EAAKmpB,UAAW4qB,EAAkBsE,IAAKz1B,OAAQkxB,EAAepjC,QAAS/kF,KAAMA,IAEvGlL,KAAK63H,iBAAiBt4C,EAAKr0E,EAE7B,CAEQ,gBAAA2sH,CAAiBp5G,EAAiBvT,GAC3B,EAAA60E,SAAS6F,SAASnnE,GACtB7V,OAAS,IAAM,EAAAm3E,SAASkmB,eAAexnF,EAAIwgE,SACpDj/E,KAAKyzH,SAAS9xH,KAAK,CAAE49E,IAAK9gE,EAAKiqF,UAAW4qB,EAAkBsE,IAAKz1B,OAAQkxB,EAAepjC,QAAS/kF,KAAMA,IAExG,MAAMk4F,EAAO,EAAArjB,SAASiB,eAAeviE,GACrC,IAAK,MAAMq5G,KAAU10B,EACpBpjG,KAAK63H,iBAAiBC,EAAQ5sH,EAEhC,CAEO,aAAA6sH,CAAc7vB,EAAe,KACL,GAA1B,EAAAppB,WAAW2X,IAAIhY,UAClB,EAAA4Z,QAAQ8P,WAAU,GAClBvqB,EAAOuB,SAASC,eAAe,iBAC/B,EAAAN,WAAWwF,aAAa,eAAgB,EAAAC,YAAYgU,gBACpD,EAAAzZ,WAAW2X,IAAIhY,SAAWikB,YAAY1iG,KAAKg4H,cAAe9vB,GAE5D,CAEA,aAAA8vB,GACC,IAAI7tB,EAAkB,EAAArrB,WAAW2X,IAAIg9B,SAAS,GAClC,EAAA30C,WAAW2X,IAAIg9B,SAAS7qH,OACpC,IAAIwhG,GAAU,EAGd,GAAI,EAAAtrB,WAAW2X,IAAIgR,YAClB,EAAA3oB,WAAW2X,IAAIwhC,eADhB,CAKA,IAAK,MAAMz8G,KAAK,EAAAsjE,WAAW2X,IAAIg9B,SAAU,CAExC,GAAIj4G,EAAE2mF,QAAUkxB,EAAepjC,SAAWz0E,EAAE2mF,QAAUkxB,EAAe8B,UAAW,CAC/EhrB,EAAK3uF,EACL4uF,GAAU,EACV,KACD,CACS5uF,EAAE2mF,QAAUkxB,EAAe9oB,QAAU/uF,EAAE2mF,QAAUkxB,EAAenpB,OACxEE,GAAU,EAEZ,CAWA,OAVIA,GACHxsB,EAAOuB,SAASC,eAAe,aAAc,kBAAkB,GAC/D,EAAAN,WAAW2X,IAAIgR,aAAc,EAC7B,EAAA3oB,WAAW2X,IAAIoR,YAAcurB,EAAelpB,OAE5CtsB,EAAOuB,SAASC,eAAe,aAAc,kBAAkB,GAC/D,EAAAN,WAAW2X,IAAIoR,YAAcurB,EAAe9oB,SAIrC,EAAAxrB,WAAW2X,IAAIoR,aACtB,KAAKurB,EAAe9oB,QACfH,EAAGhI,QAAUkxB,EAAepjC,SACvBka,EAAGzB,YACL4qB,EAAkBsE,MACtBztB,EAAGhI,OAASkxB,EAAe8B,UAC3B,EAAAr2C,WAAW2X,IAAI7D,QAAQuX,EAAG5qB,MAK7B,MAED,KAAK6zC,EAAelpB,KACnB,EAAAprB,WAAW2X,IAAIwhC,WArCjB,CAyCD,CAEA,QAAAA,GACCl1B,cAAc,EAAAjkB,WAAW2X,IAAIhY,SAC7B,EAAAK,WAAWwF,aAAa,iBAAkB,EAAAC,YAAYgU,gBACtD,EAAAzZ,WAAW2X,IAAIgR,aAAc,EAC7B,EAAA3oB,WAAW2X,IAAIhY,QAAU,EACzB,EAAAK,WAAW2X,IAAIg9B,SAAW,EAC3B,CAEA,UAAAyE,CAAWjlB,GACV,EAAAn0B,WAAWmO,mBACXrP,EAAOznE,OAAO43E,iBAAiB/tF,KAAKmyH,SAAU,CAAEgG,WAAYv6C,EAAOw6C,WAAWC,SAAUrvH,KAAK2rF,IAC5F,MAAM3vD,EAAMhlC,KAAKqkF,UAAUz7E,OACrBqoB,EAAM0jE,EAAOl+E,SAASg6F,WAAWzrE,GACvC2vD,EAAOW,KAAKA,IACXA,EAAKgjC,OAAOrnG,EAAKgiF,MAGpB,CAEA,cAAAslB,CAAeC,EAAuBC,GAAkB,GACvD,EAAA35C,WAAWmO,mBACPwrC,EACH76C,EAAOznE,OAAO43E,iBAAiB/tF,KAAKmyH,SAAU,CAAEgG,WAAYv6C,EAAOw6C,WAAWC,SAAUrvH,KAAK2rF,IAC5F30F,KAAK04H,mBAAmBF,EAAe7jC,KAGxC/W,EAAOznE,OAAO43E,iBAAiB/tF,KAAKmyH,UAAUnpH,KAAK2rF,IAClD30F,KAAK04H,mBAAmBF,EAAe7jC,IAG1C,CAEA,kBAAA+jC,CAAmBF,EAAuB7jC,GACzC,MAAMgkC,EAAa34H,KAAK44H,kBAAkBJ,GAC1C,IAAKG,EAAWp3G,QAAS,CACxB,MAAMi0E,EAAU,IAAI5X,EAAO6X,cAAc+iC,GACzC7jC,EAAOe,cAAcF,EAASmjC,EAC/B,CACD,CAEA,iBAAAC,CAAkBpzD,GACjB,IAAImzD,EAAa34H,KAAK64H,mBAAmB,UAKzC,OAJIF,EAAWp3G,UACdo3G,EAAa34H,KAAK64H,mBAAmB,UAClCF,EAAWp3G,UACdo3G,EAAa34H,KAAK64H,mBAAmB,WAC/BF,CACR,CAEA,wBAAAG,CAAyBN,GACxB,MACMhzD,EADaxlE,KAAK44H,kBAAkBJ,GAClBznG,MAAMy0C,KAC9BxlE,KAAK+4H,kBAAkBvzD,EAAMgzD,GAC7Bx4H,KAAKg5H,eACN,CAEA,UAAA/lC,CAAW0B,EAA2BiX,GAAwB,GAE7D,GADA5rG,KAAKi5H,YAAYtkC,GACb30F,KAAKk5H,eAAiB,EAAA3zC,YAAY4D,IAAK,CAC1C,MAAMgvB,EAAiBxjB,EAAOrS,UAAUvxD,MAClCqnF,EAAYzjB,EAAOl+E,SAAS4hG,uBAAuBF,GACnDghB,EAAYxkC,EAAOl+E,SAAS4tE,QAAQ+zB,GAC1C,EAAA71B,aAAarpE,OAAOigH,EAAWvtB,EAChC,CACD,CAEA,cAAAjY,CAAegB,GACd30F,KAAKi5H,YAAYtkC,GACb30F,KAAKk5H,eAAiB,EAAA3zC,YAAY4D,KACrC,EAAA5G,aAAa+sC,OAAO36B,EAAOl+E,SAAS4H,SAEtC,CAEA,QAAAu1E,CAASe,GAER,GADA30F,KAAKi5H,YAAYtkC,GACb30F,KAAKk5H,eAAiB,EAAA3zC,YAAY4D,IACrC,EAAA5G,aAAaqR,SAASe,EAAOl+E,SAAS4H,eAChC,GAAIre,KAAKk5H,eAAiB,EAAA3zC,YAAY6zC,KAAM,CAClD,MAAM/6C,EAAUr+E,KAAKq5H,kBAAkB1kC,EAAOl+E,SAAS8oE,IAAIN,QAC3D,EAAAsD,aAAa+2C,aAAaj7C,EAC3B,CACD,CAEA,mBAAAyX,CAAoBnB,GAEnB,GADA30F,KAAKi5H,YAAYtkC,GACb30F,KAAKk5H,eAAiB,EAAA3zC,YAAY4D,IACrC,EAAA5G,aAAag3C,qBAAqB5kC,EAAOl+E,SAAS4H,eAC5C,GAAIre,KAAKk5H,eAAiB,EAAA3zC,YAAYC,KAAM,CAClD,MAAMnH,EAAUr+E,KAAKq5H,kBAAkB1kC,EAAOl+E,SAAS8oE,IAAIN,QAC3D,EAAAsD,aAAai3C,kBAAkBn7C,EAChC,CACD,CAEA,iBAAAg7C,CAAkB1xD,GACjB,OAAOvrE,SAASurE,EAASvsD,UAAUusD,EAAS/+D,OAAS,EAAG++D,EAAS/+D,OAAS,GAC3E,CAEA,YAAA4qF,CAAamB,GAEZ,GADA30F,KAAKi5H,YAAYtkC,GACb30F,KAAKk5H,eAAiB,EAAA3zC,YAAYC,MAAQxlF,KAAKk5H,eAAiB,EAAA3zC,YAAY6zC,KAAM,CACrF,MAAM/6C,EAAUr+E,KAAKq5H,kBAAkB1kC,EAAOl+E,SAAS8oE,IAAIN,QACrD1B,EAAU,IAAI,EAAAC,aACpBD,EAAQzkE,OACR,MAAM2gH,EAA0Bl8C,EAAQqjC,mBAAmBviC,GACvDpjF,EAAG8wE,WAAW0tD,EAAYx6C,SAC7B,EAAAH,WAAWmO,mBACXrP,EAAOznE,OAAO43E,iBAAiB0rC,IAG/B77C,EAAOznE,OAAOypE,mBAAmB,gBAAkB3iF,EAAKuW,SAASimH,EAAYx6C,QAC/E,CACD,CAEA,YAAAyU,CAAaiB,GAEZ,GADA30F,KAAKi5H,YAAYtkC,GACb30F,KAAKk5H,eAAiB,EAAA3zC,YAAY4D,IAAK,CAC1C,MAAMp4D,EAAQ4jE,EAAOrS,UAAUvxD,MACzBvF,EAAMmpE,EAAOrS,UAAU92D,IAC7B,IAAIkuG,EAAY3oG,EAAMy0C,KAClBm0D,EAAqB,GACrBC,EAAiB,EAErB,MAAM70D,EAAQ/kE,KAAK60F,iBAAiBF,GACpC,GAAI5vB,EAAMn8D,OAAQ,CACjB,IAAIixH,GAAsB,EAC1B,IAAK,IAAIr0D,KAAQT,EAAO,CAEnB20D,GAAa3oG,EAAMy0C,OACtBq0D,EAA+B,KAAlBr0D,EAAK54C,OAAO,IAE1B,MAAMktG,EAAuC,KAAlBt0D,EAAK54C,OAAO,GACnCitG,IAAeC,GAAat0D,EAAK58D,SACpC48D,EAAO,IAAMA,IACPq0D,GAAcC,IACpBt0D,EAAOA,EAAKpqD,UAAU,IAEnBu+G,IACHA,GAA0B35H,KAAK+5H,gBAEhCJ,GAA0Bn0D,EAC1Bo0D,EAAiBp0D,EAAK58D,OACtB8wH,GACD,CAEA,GAAIC,EAAW/wH,OAAQ,CACtB,MAAMoxH,EAAW,IAAIp8C,EAAO4vB,SAASz8E,EAAMy0C,KAAM,GAC3CioC,EAAS,IAAI7vB,EAAO4vB,SAAShiF,EAAIg6C,KAAMo0D,EAAiB,GACxDpuH,EAAQ,IAAIoyE,EAAOyX,MAAM2kC,EAAUvsB,GAIzCksB,EAAaA,EAAWpkH,QAAQ,MAAO,QAAQA,QAAQ,MAAO,OAC9D,MAAMigF,EAAU,IAAI5X,EAAO6X,cAAckkC,GACzChlC,EAAOe,cAAcF,EAAShqF,EAC/B,CAED,CACD,CACD,CAEA,YAAAsnF,CAAa6B,EAA2BzpF,GAEvC,GADAlL,KAAKi5H,YAAYtkC,GACb30F,KAAKk5H,eAAiB,EAAA3zC,YAAY4D,IAAK,CAC1C,MAAM8wC,EAAWj6H,KAAKk6H,aAAavlC,GAEnC,GAAIslC,EAAS,GAAGrxH,OAAQ,CACvB,MAAMsqG,EAAgBlzG,KAAKm6H,WAAWF,EAAS,GAAI/uH,GAC7CkvH,EAAO,IAAIx8C,EAAO8vB,UAAUusB,EAAS,GAAGlpG,MAAOkpG,EAAS,GAAGzuG,KAC3DgqE,EAAU,IAAI5X,EAAO6X,cAAcyd,GACzCve,EAAOe,cAAcF,EAAS4kC,EAC/B,CACD,CACD,CAEA,aAAA3mC,CAAckB,GAEb,GADA30F,KAAKi5H,YAAYtkC,GACb30F,KAAKk5H,eAAiB,EAAA3zC,YAAY4D,KAAOnpF,KAAKk5H,eAAiB,EAAA3zC,YAAY80C,MAAQr6H,KAAKk5H,eAAiB,EAAA3zC,YAAY+0C,IAAK,CAC7H,MACM1oG,EAAW+iE,EAAOrS,UAAUiqB,OAElC,IAAI/mC,EADUxlE,KAAK0iF,UAAS,GACX9wD,EAAS4zC,MAC1B,MAAMioC,EAAS,IAAI7vB,EAAO4vB,SAAS57E,EAAS4zC,KAAO,EAAG,GAChD40D,EAAO,IAAIx8C,EAAO8vB,UAAUD,EAAQA,GAGpCjY,GAAU,IAAI5X,EAAO6X,eAAgBy9B,WAAW1tD,GACtDmvB,EAAOe,cAAcF,EAAS4kC,GAC9BzlC,EAAOrS,UAAY83C,CACpB,CACD,CAEA,YAAAF,CAAavlC,GACZ,IAAI4lC,EAAU,GACd,MAAM3oG,EAAW+iE,EAAOrS,UAAUiqB,OAClC,IAAIvnC,EAAYpzC,EAAS4zC,KACrBg1D,EAAY5oG,EAAS4mF,UACrBvzC,EAAUrzC,EAAS4zC,KACnBi1D,EAAU7oG,EAAS4mF,UAEvB,MAAMzzC,EAAQ/kE,KAAK0iF,UAAS,GAC5B,IAAIld,EAAOT,EAAMC,GACb01D,EAAWl1D,EACXm1D,GAAa,EACbC,GAAY,EACZC,GAAa,EACb5pG,EAAM,EAEV,MAAQA,EAAMu0C,EAAKtsD,OAAO,OAAS,GAClCqhH,EAAU/0D,EAAO+0D,EACjBG,EAAWl1D,EACXA,EAAOT,IAAQC,GACf21D,GAAa,EACbC,GAAY,EAEbL,EAAU/0D,EAAO+0D,EAEhBC,EADGx1D,EAAYpzC,EAAS4zC,KACZ,EAEAv0C,EAAM,EAEnB0pG,GAAa,EACbn1D,EAAOT,EAAME,GACb,IAAI61D,GAAY,EAChB,MAAQ7pG,EAAMu0C,EAAKtsD,OAAO,OAAS,GAC7B4hH,IACJP,GAAoB/0D,GACrBk1D,EAAWl1D,EACXA,EAAOT,IAAQE,GACf61D,GAAY,EACZD,GAAa,EAEdN,GAAW/0D,EACXi1D,EAAUxpG,EAAM,EAEhBupG,EAAY,EACZ,MAAMR,EAAW,IAAIp8C,EAAO4vB,SAASxoC,EADzB,GAENyoC,EAAS,IAAI7vB,EAAO4vB,SAASvoC,EAASw1D,GACtCjvH,EAAQ,IAAIoyE,EAAOyX,MAAM2kC,EAAUvsB,GAMzC,OAJsB,GAAlB8sB,EAAQ3xH,SACX2xH,EAAUG,EAASt/G,UANR,EAM6Bq/G,EAN7B,IASL,CAACF,EAAS/uH,EAAOovH,EAAWC,EACpC,CAEA,UAAAV,CAAWlnB,EAAiB/nG,EAAqB,eAAa8qF,QAI7D,OAAO,IAAA+c,gBAAeE,EAAS/nG,EAAMlL,KAAK+5H,eAC3C,CAEA,WAAAxmC,CAAYoB,GACX30F,KAAKi5H,YAAYtkC,GACb30F,KAAKk5H,eAAiB,EAAA3zC,YAAY4D,KACrC,EAAA5G,aAAag2C,eAAe5jC,EAAOl+E,SAAS4H,SAE9C,CAEA,cAAA08G,CAAex7C,GACdv/E,KAAK6tF,QAAQtO,GACb,IAAIy7C,EAAc,GAClB,IAAK,MAAMx1D,KAAQxlE,KAAK0iF,WACvB,GAAIld,EAAKlnD,WAAW,WAAaknD,EAAKlnD,WAAW,UAAYknD,EAAKlnD,WAAW,UAAW,CACvF08G,EAAcx1D,EACd,KACD,CAED,OAAOw1D,CACR,EA9pBD,W,uKCrCA,0BACA,0BACA,0BACA,UACA,UACA,UACA,UACA,UAEA,IAAY7G,GAAZ,SAAYA,GAAiB,iBAAK,mBAAM,mBAAM,eAAI,gBAAK,CAAvD,CAAYA,IAAc,iBAAdA,EAAc,KAM1B,MAAanG,EAKZ,OAAA/mC,GACCjnF,KAAKknF,qBAAqBC,MAC3B,CAEA,WAAArnF,GAPQ,KAAAonF,qBAAkF,IAAItJ,EAAOj7E,aAC5F,KAAAykF,oBAA0EpnF,KAAKknF,qBAAqBxxD,KAM7F,CAET,WAAAuyD,CAAYgzC,GAClB,MAAMvyC,EAAO,EAAA5J,WAAWu9B,gBAAgB4e,EAAW17C,IAAIN,QAEjD+G,EAAa,EAAAlH,WAAW6D,SAASqD,WAAWi1C,EAAW17C,KAAK,GAC5DsG,EAAW5oF,EAAKuH,KAAKwhF,EAAW/G,OAAQhiF,EAAKuW,SAASynH,EAAW17C,IAAIN,SACrEnkF,EAAQG,EAAG8wE,WAAW8Z,GAAY,OAAS,GAEjD,MAAO,CACNinB,YAAamuB,EAAW17C,IACxB6J,sBAAuB,EACvBH,aAAcnuF,EACdkuF,QAAS,CACRA,QAAS,sBACTtkF,UAAW,CAACu2H,EAAW17C,KACvB8B,MAAO,oBAGRuH,SAAU,CACTC,MAAOjL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,QAASJ,IAC/EK,KAAMnL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQJ,KAGhF,CAEO,WAAArB,CAAY4zC,GAClB,GAAI,EAAAn8C,WAAWqB,qBAAsB,CACpC,MAAMomB,EAAyB,IAAIz8F,MACnC,IAAK,MAAM67E,KAAU,EAAA45B,WAAW2b,iBAC/B30B,EAAS5kG,KAAK,CAAE49E,IAAKoG,IAEtB,OAAO4gB,CACR,CAEA,MAAO,EACR,EA7CD,2BAiDA,MAAa40B,EAQZ,WAAAr7H,CAAYyuB,GACX,MAAM6sG,EAAqB,IAAIpN,EAC/BhuH,KAAKu/G,WAAa3hC,EAAOznE,OAAOu0E,eAAe,aAAc,CAAEC,iBAAkBywC,IACjFx9C,EAAOuB,SAASyL,gBAAgB,wBAAyB,IAAMwwC,EAAmBn0C,WAElFrJ,EAAOuB,SAASyL,gBAAgB,sBAAwBC,GAAa7qF,KAAKq7H,SAASxwC,IACnFjN,EAAOuB,SAASyL,gBAAgB,wBAA0BC,GAAa7qF,KAAKs7H,WAAWzwC,IACvFjN,EAAOuB,SAASyL,gBAAgB,0BAA4BC,GAAa7qF,KAAKu7H,aAAa1wC,IAC3FjN,EAAOuB,SAASyL,gBAAgB,sBAAwBC,GAAa7qF,KAAKmsF,SAAStB,IACnFjN,EAAOuB,SAASyL,gBAAgB,qBAAuBC,GAAa7qF,KAAKw7H,QAAQ3wC,IACjFjN,EAAOuB,SAASyL,gBAAgB,qBAAuBC,GAAa7qF,KAAKy7H,QAAQ5wC,IACjFjN,EAAOuB,SAASyL,gBAAgB,wBAA0BC,GAAa7qF,KAAK07H,WAAW7wC,IACvFjN,EAAOuB,SAASyL,gBAAgB,sBAAwBC,GAAa7qF,KAAK27H,SAAS9wC,IACnFjN,EAAOuB,SAASyL,gBAAgB,oBAAsBC,GAAa7qF,KAAKomE,OAAOykB,IAC/EjN,EAAOuB,SAASyL,gBAAgB,gBAAiB,IAAM5qF,KAAK47H,UAC5Dh+C,EAAOuB,SAASyL,gBAAgB,qBAAsB,IAAM5qF,KAAK67H,YACjEj+C,EAAOuB,SAASyL,gBAAgB,mBAAoB,IAAM5qF,KAAK87H,aAC/Dl+C,EAAOuB,SAASyL,gBAAgB,iBAAkB,IAAM5qF,KAAK+7H,WAC7Dn+C,EAAOuB,SAASyL,gBAAgB,0BAA2B,IAAM5qF,KAAKg8H,eACtEp+C,EAAOuB,SAASyL,gBAAgB,2BAA4B,IAAM5qF,KAAKi8H,iBACvEr+C,EAAOuB,SAASyL,gBAAgB,qBAAsB,IAAM5qF,KAAKwrF,WACjE5N,EAAOuB,SAASyL,gBAAgB,mBAAoB,IAAM5qF,KAAK0sF,SAE/D1sF,KAAKk8H,YAAc,GACnBl8H,KAAKm8H,aAAev+C,EAAOC,IAAI7Z,KAAK,IACpChkE,KAAKo8H,cAAgBx+C,EAAOC,IAAI7Z,KAAK,IACrChkE,KAAKkL,KAAOipH,EAAeC,GAC5B,CAEA,aAAOhnC,CAAOC,GAIb,OAHK,EAAAkyB,aACJ,EAAAA,WAAa,IAAI4b,EAAW9tC,IAEtB,EAAAkyB,UACR,CAEA,MAAAn5C,CAAO60D,GACF,EAAAn8C,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAOmC,EAAKuW,SAASynH,EAAW17C,IAAIN,QAASS,OAAQ,4BAA6B12E,KAAK22E,IACnH,GAAIA,EAAS,CACZ,MAAMuwB,EAAW+qB,EAAW17C,IACQ,GAAhCtiF,EAAKuqC,QAAQm4C,GAAS/2E,SACzB+2E,GAAoB1iF,EAAKuqC,QAAQyzF,EAAW17C,IAAIN,SACjD,MAAMgQ,EAAUrR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQy8G,EAAW17C,IAAIN,QAASU,IAC/E,EAAAI,SAAS3Z,OAAO8pC,EAASjxB,OAAQgQ,EAAQhQ,QACzCrB,EAAOznE,OAAO43E,iBAAiBkB,GAE/B,MAAMiuB,EAAgBt/B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK0rG,EAASjxB,OAAS,EAAAH,WAAW4F,aAC7E,GAAI,EAAA3E,SAAS5gE,MAAM+9F,EAAcj+B,QAAS,CACzC,MAAMk+B,EAAev/B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQy8G,EAAW17C,IAAIN,QAASU,EAAU,EAAAb,WAAW4F,aACzG,EAAA3E,SAAS3Z,OAAO82C,EAAcj+B,OAAQk+B,EAAal+B,OACpD,CACArB,EAAOuB,SAASC,eAAe,wBAChC,GAGH,CAEA,QAAAu8C,CAASV,GACJ,EAAAn8C,WAAWuB,sBACd,EAAAvB,WAAWu9C,cAAcpB,EAAW17C,KAAK,EAE3C,CAEA,UAAAm8C,CAAWT,GACV,MAAM9uG,EAAgC,GACtCA,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa,wDACxCn1D,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,iCAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,oBAAqBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAC5H,IAAKA,GAAgC,MAAnBA,EAAUl3C,MAC3B,OACD,MAAM46C,EAAa,EAAAlH,WAAW6D,SAASqD,WAAWi1C,EAAW17C,KAAK,GAClE,EAAAT,WAAWgD,QAAQG,iBAAiB+D,EAAYA,EAAY,CAAC,EAAA9D,cAAcoO,KAAM,EAAApO,cAAc2E,QAAS,EAAAzE,cAAcmO,QACtH,EAAAzR,WAAWgD,QAAQC,gBAErB,CAEA,OAAA05C,CAAQR,GACP,MAAM/8C,EAASjhF,EAAKuhB,QAAQy8G,EAAW17C,IAAIN,QAC3C,IAAI0O,EAAW1wF,EAAKuW,SAAS0qE,GAC7ByP,EAAWA,EAASvyE,UAAU,EAAGuyE,EAAS/kF,OAAS,EAAAk2E,WAAW4F,WAAW97E,QACzE,MAAM0zH,EAAer/H,EAAKuH,KAAKvH,EAAKuhB,QAAQ0/D,GAASyP,GACjD1yF,EAAG8wE,WAAWuwD,KACjB,EAAAx9C,WAAWy9C,WACX,EAAAx8C,SAAS8P,QAAQ,EAAA/Q,WAAW09C,sBAC5B,EAAA19C,WAAW28C,QAAQ79C,EAAOC,IAAI7Z,KAAKs4D,IACnC,EAAAx9C,WAAW29C,YACX7+C,EAAOznE,OAAO43E,iBAAiBnQ,EAAOC,IAAI7Z,KAAK,EAAA8a,WAAW09C,uBAC1D5+C,EAAOuB,SAASC,eAAe,qBAEjC,CAEA,OAAAo8C,CAAQP,GACP,IAAIyB,GAAc,EAClB,MAAMnyH,EAAStN,EAAKuW,SAASvW,EAAKuhB,QAAQy8G,EAAW17C,IAAIN,SAEnD+G,GADWz7E,EAAO6Q,UAAU,EAAG7Q,EAAO3B,OAAS,GAClC,EAAAk2E,WAAW6D,SAASqD,WAAWi1C,EAAW17C,KAAK,IAE7DtkF,EAAG8wE,WAAWia,EAAW/G,UAC7Bj/E,KAAKo8H,cAAgBp2C,EACrB,EAAAjG,SAAS6C,QAAQoD,EAAW/G,QAC5By9C,GAAc,GAGf,MAAMC,EAAe/+C,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKwhF,EAAW/G,OAAQhiF,EAAKuW,SAASynH,EAAW17C,IAAIN,UAE/F,GAAKy9C,GAAgBzhI,EAAG8wE,WAAWkvD,EAAW17C,IAAIN,QAG3C,CACN,MAAM9yD,EAAgC,GACtCA,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa,qCACxCn1D,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,qBAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,gBAAiBM,YAAa,oBAAqB34E,KAAKs5E,IAC9FA,GAAgC,MAAnBA,EAAUl3C,QAE5B,EAAA0zC,WAAWgD,QAAQG,iBAAiBg5C,EAAW17C,IAAKo9C,EAAc,CAAC,EAAAz6C,cAAc2E,OAAQ,EAAA3E,cAAcoO,MAAO,EAAAlO,cAAcU,MAC5H,EAAAhE,WAAWgD,QAAQC,iBAErB,MAbC,EAAAjD,WAAWgD,QAAQG,iBAAiBg5C,EAAW17C,IAAKo9C,EAAc,CAAC,EAAAz6C,cAAc2E,OAAQ,EAAA3E,cAAcoO,MAAO,EAAAlO,cAAcU,MAC5H,EAAAhE,WAAWgD,QAAQC,cAarB,CAEA,KAAA2K,GAEC9O,EAAOuB,SAASC,eAAe,cAAexB,EAAOC,IAAIn0E,MAD7C,yCAEb,CAEA,OAAA8hF,GACC,MAAM/sE,EAAM,EAAAqgE,WAAW6D,SAASuC,qBAChC,EAAApG,WAAWgR,gBAAgBrxE,EAAIwgE,OAChC,CAEA,aAAAg9C,GACC,GAAI,EAAAn9C,WAAWqB,qBAAsB,CACpC,MAAMtsE,EAAsB,GACtB+oH,EAAW,EAAA78C,SAAS6F,SAAS,EAAA9G,WAAW6D,SAASzD,mBAAoB,CAAC,OAAQ,OAAQ,QAC5F,IAAK,MAAM29C,KAAWD,EACwD,GAAzE,EAAA99C,WAAW6D,SAASpF,QAAQu/C,SAAS7/H,EAAKyM,MAAMmzH,EAAQ59C,QAAQ5gF,OACnEwV,EAAMlS,KAAKk7H,GAIb,MAAM9oD,EAAQlgE,EAAMjL,OAEdujB,EAAgC,GACtCA,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa,6BACxCn1D,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,uBAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,sBAAuBM,YAAa,cAAgB5N,EAAMh2C,WAAa,aAAc/0B,KAAKs5E,IACrI,GAAKA,GAAgC,MAAnBA,EAAUl3C,MAA5B,CAEA,IAAK,MAAM44B,KAAQnwD,EAClB,EAAAirE,WAAWgD,QAAQG,iBAAiBje,EAAMA,EAAM,CAAC,EAAAke,cAAc2E,QAAS,EAAAzE,cAAcmO,QAEvF,EAAAzR,WAAWgD,QAAQC,cAJZ,GAMT,CACD,CAEO,OAAAmyC,CAAQhpH,GACdlL,KAAKkL,KAAOA,CACb,CAEO,OAAAg7F,GACN,OAAOlmG,KAAKkL,IACb,CAEO,OAAA6wH,GACN/7H,KAAK+8H,YAAY5I,EAAeC,IACjC,CAEQ,QAAAyH,GACP77H,KAAK+8H,YAAY5I,EAAeiF,KACjC,CAEQ,SAAA0C,GACP97H,KAAK+8H,YAAY5I,EAAe3uC,KACjC,CAEQ,MAAAo2C,GACP57H,KAAK+8H,YAAY5I,EAAe3tC,GACjC,CAEQ,WAAAw1C,GACPh8H,KAAK+8H,YAAY5I,EAAehrC,IACjC,CAEO,WAAA4zC,CAAY7xH,GAClBlL,KAAKkL,KAAOA,EACZlL,KAAKk8H,YAAc,GACnBt+C,EAAOuB,SAASC,eAAe,wBAChC,CAEO,UAAA2nB,CAAWxiG,GAEjB,GADAvE,KAAKm8H,aAAev+C,EAAOC,IAAI7Z,KAAK,IACb,GAAnBz/D,EAASqE,OACZ,OAAO,EAER,GADA5I,KAAKm8H,aAAev+C,EAAOC,IAAI7Z,KAAKz/D,EAAW,EAAAu6E,WAAW4F,aACrDzpF,EAAG8wE,WAAW/rE,KAAKm8H,aAAal9C,QACpC,OAAO,EACR,MAAMlgF,EAAQ9D,EAAGG,UAAU4E,KAAKm8H,aAAal9C,QAC7C,QAAKlgF,GAEEA,EAAM0B,aACd,CAEO,WAAAu8H,CAAYz4H,GAElB,GADAvE,KAAKo8H,cAAgBx+C,EAAOC,IAAI7Z,KAAK,IACd,GAAnBz/D,EAASqE,OACZ,OAAO,EAER,GADA5I,KAAKm8H,aAAev+C,EAAOC,IAAI7Z,KAAKz/D,EAAW,EAAAu6E,WAAWgH,cACrD7qF,EAAG8wE,WAAW/rE,KAAKo8H,cAAcn9C,QACrC,OAAO,EACR,MAAMlgF,EAAQ9D,EAAGG,UAAU4E,KAAKo8H,cAAcn9C,QAC9C,QAAKlgF,GAEEA,EAAM0B,aACd,CAEO,cAAAy6H,GAEN,GADAl7H,KAAKk8H,YAAc,GACf,EAAAp9C,WAAW6D,SAAS1C,UACvB,GAAIjgF,KAAKkL,MAAQipH,EAAe3tC,GAAI,CACnCxmF,KAAKk8H,YAAc,EAAAn8C,SAAS6F,SAAS,EAAA9G,WAAW6D,SAASqC,qBAAqB,MAAO,CAAC,QACtF,MAAMoJ,EAAU,EAAArO,SAAS6F,SAAS,EAAA9G,WAAW6D,SAASuC,qBAAsB,CAAC,SAC7EllF,KAAKk8H,YAAcl8H,KAAKk8H,YAAYhyH,OAAOkkF,EAC5C,MACK,GAAIpuF,KAAKkL,MAAQipH,EAAehrC,IAAK,CAGzC,MAAMyzC,EAAW,EAAA78C,SAAS6F,SAAS,EAAA9G,WAAW6D,SAASzD,mBAAoB,CAAC,OAAQ,OAAQ,QAC5F,IAAK,MAAM29C,KAAWD,EACwD,GAAzE,EAAA99C,WAAW6D,SAASpF,QAAQu/C,SAAS7/H,EAAKyM,MAAMmzH,EAAQ59C,QAAQ5gF,OACnE2B,KAAKk8H,YAAYv6H,KAAKk7H,EAGzB,MACK,GAAI78H,KAAKkL,MAAQipH,EAAeiF,KAAM,CAC1C,MAAM6D,EAAa,EAAAl9C,SAAS6F,SAAS5lF,KAAKm8H,aAAc,CAAC,UACzDn8H,KAAKk8H,YAAcl8H,KAAKk8H,YAAYhyH,OAAO+yH,EAC5C,MACK,GAAIj9H,KAAKkL,MAAQipH,EAAe3uC,KAAM,CAC1C,MAAM03C,EAAYt/C,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAKm8H,aAAal9C,OAAQ,eAClEhkF,EAAG8wE,WAAWmxD,EAAUj+C,SAC3Bj/E,KAAKk8H,YAAYv6H,KAAKu7H,GAEvB,MAAMD,EAAa,EAAAl9C,SAAS6F,SAAS5lF,KAAKm8H,aAAc,CAAC,UACzDn8H,KAAKk8H,YAAcl8H,KAAKk8H,YAAYhyH,OAAO+yH,EAC5C,KACK,CACJ,MAAMjgB,EAAW,EAAAl+B,WAAW6D,SAASyC,cAAcnG,OAEnD,GADAj/E,KAAKk8H,YAAc,GACflf,EAASp0G,QAAU5I,KAAK+mG,WAAWiW,GAAW,CACjD,MAAMkgB,EAAYt/C,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAKm8H,aAAal9C,OAAQ,eAClEhkF,EAAG8wE,WAAWmxD,EAAUj+C,SAC3Bj/E,KAAKk8H,YAAYv6H,KAAKu7H,GAEvB,MAAMC,EAAa,EAAAp9C,SAAS6F,SAAS5lF,KAAKm8H,cAC1C,IAAK,MAAMiB,KAAQD,EAAY,CAC9B,MAAMlmC,EAAMh6F,EAAKyM,MAAM0zH,EAAKn+C,QAAQgY,IACF,GAA9BA,EAAIkO,cAAc,UAA+C,GAA9BlO,EAAIkO,cAAc,UACxDnlG,KAAKk8H,YAAYv6H,KAAKy7H,EACxB,CACD,CACD,CAED,OAAOp9H,KAAKk8H,WACb,CAEQ,QAAA/vC,CAAStB,GACC,IAAI,EAAApI,SAASoI,EAAS5L,QAC9Bo+C,gBACT,EAAAv+C,WAAWmO,mBACXrP,EAAOznE,OAAO43E,iBAAiBlD,EAChC,CAEQ,YAAA0wC,CAAa1wC,GACpB,GAAI,EAAA/L,WAAWqB,qBAAsB,CACpC,MAAMh0D,EAAgC,GACtC,IAAIkkE,EAAc,GAClBA,EAAcA,EAAYnmF,OAAO,WAAajN,EAAKuW,SAASq3E,EAAStL,IAAIN,QAAS,KAClF9yD,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,uBAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,cAAeM,YAAa,sBAAuB34E,KAAKs5E,IAC9FA,GAAgC,MAAnBA,EAAUl3C,QAE5B,EAAA0zC,WAAWgD,QAAQG,iBAAiB4I,EAAStL,IAAKsL,EAAStL,IAAK,CAAC,EAAA2C,cAAc2E,QAAS,EAAAzE,cAAcmO,QACtG,EAAAzR,WAAWgD,QAAQC,iBAErB,CACD,CAEA,QAAAs5C,CAASJ,GACR,MAAMh9C,EAAQ,EAAAa,WAAW6D,SAAS+D,cAAc,EAAApJ,UAAUkJ,IAC1DxmF,KAAKw/G,mBAAmByb,EAAW17C,IAAKtB,EAAO,gCAAiC,oCACjF,CAEA,UAAAq9C,CAAWL,GACV,MAAM3nF,EAAM,EAAAwrC,WAAW6D,SAAS+D,cAAc,EAAApJ,UAAUiJ,OACxDvmF,KAAKw/G,mBAAmByb,EAAW17C,IAAKjsC,EAAK,gCAAiC,mCAC/E,CAEA,kBAAAksE,CAAmBjgC,EAAiBu4C,EAAgBz2C,EAAeM,GAClE,GAAI,EAAA7C,WAAWuB,qBAAsB,CACpC,MAAMl0D,EAAgC,EAAA2yD,WAAWw+C,qBAEjD1/C,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,QAAOK,aAAa,EAAOC,YAAaA,IAAe34E,KAAKs5E,IAChG,IAAKA,IAAcA,EAAUhB,YAC5B,OACD,GAAIgB,EAAUhB,YAAYhjE,WAAW,WAEpC,YADAs/D,EAAOznE,OAAOypE,mBAAmB,sDAGlC,MAAMkqB,EAAUlsB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK89E,EAAUhB,YAAaw2C,EAAQ76H,EAAKuW,SAAS+rE,EAAIN,UAC3F,EAAAH,WAAWgD,QAAQG,iBAAiB1C,EAAKuqB,EAAS,CAAC,EAAA5nB,cAAcsE,GAAI,EAAAtE,cAAcoO,MAAO,EAAAlO,cAAcU,MACxG,EAAAhE,WAAWgD,QAAQC,gBAErB,CACD,EAzUD,c,yICpDA,0BACA,0BACA,0BACA,yBACA,0BACA,UACA,UAEMw7C,EAAiB,OACjBC,EAAwB,IAAI74H,IAAI,CAAC,aAAc,cAC/C84H,EAA2B,IAAI94H,IAAI,CAAC,UACpC+4H,EAAwB,CAAC,MAQ/B,MAAaC,EAMI,IAAA1iH,CAAK0iE,EAAyBigD,G,wDACjC59H,KAAK69H,IAAIlgD,EAAa,OAAQigD,EACxC,E,CAEa,KAAAzsC,CAAMxT,EAAyBigD,G,wDAClC59H,KAAK69H,IAAIlgD,EAAa,QAASigD,EACzC,E,CAIO,YAAA9rC,CAAanU,EAAyBigD,GACzC,MAAME,EAAe7gI,EAAKuH,KAAKm5E,EAAYsB,OAAQ,OAAQ,YACrD8+C,EAAY9gI,EAAKuH,KAAKm5E,EAAYsB,OAAQ,SAChD,GAAI2+C,GAAS59H,KAAKW,OAAOi9H,EAAM3+C,QAAS,CACpC,MAAM++C,EAAM/gI,EAAK4hB,SAASk/G,EAAWH,EAAM3+C,QAC3C,OAAOhkF,EAAG8wE,WAAW9uE,EAAKuH,KAAKs5H,EAAcE,EAAM,SACvD,CACA,MAAMv/G,EAAMm/G,EAAQ3gI,EAAKuH,KAAKs5H,EAAc7gI,EAAK4hB,SAASk/G,EAAWH,EAAM3+C,SAAW6+C,EACtF,OAAO99H,KAAKi+H,WAAWx/G,EAC3B,CAIc,GAAAo/G,CAAIlgD,EAAyBqL,EAA2B40C,G,kDAClE,MAAMM,EAAUvgD,EAAYsB,OACtB5gF,EAAOpB,EAAKuW,SAAS0qH,EAAQ3oH,QAAQ,UAAW,KAEhDojF,EAAM34F,KAAKqvH,aACjB,IAAK12B,IAAQ19F,EAAG8wE,WAAW4sB,GAGvB,OAFA34F,KAAKiL,IAAI,qCAAqC0tF,GAAO,aAAchb,QACnEC,EAAOznE,OAAOk7E,iBAAiB,4CAGnC,MAAMC,EAAY,EAAAxS,WAAWiQ,kBAAkB9P,OAEzC0wB,EAAM3vG,KAAKm+H,WAAWD,GACtBH,EAAY9gI,EAAKuH,KAAK05H,EAAS,SAErC,IAAIE,EACAC,EAAa,GAQjB,GAPIT,GAAS59H,KAAKW,OAAOi9H,EAAM3+C,SAC3Bm/C,EAAS,CAACR,EAAM3+C,QAChBo/C,EAAa,WAAWphI,EAAK4hB,SAASk/G,EAAWH,EAAM3+C,aAEvDm/C,EAASp+H,KAAKs+H,WAAWJ,EAASvuB,EAAKiuB,aAAK,EAALA,EAAO3+C,QAC9Co/C,EAAaT,EAAQ,aAAa3gI,EAAK4hB,SAASk/G,EAAWH,EAAM3+C,SAAW,WAAa,IAEvE,IAAlBm/C,EAAOx1H,OAGP,OAFA5I,KAAKiL,IAAI,GAAG5M,uCAA0CggI,IAAc1gD,QACpEC,EAAOznE,OAAOypE,mBAAmB,GAAGvhF,uCAA0CggI,KAIlF,MAAM16G,EAAS,IAAIhf,IAAIgrG,EAAI4uB,cAK3B3gD,EAAOuB,SAASC,eAAe,qCAC/BxB,EAAOuB,SAASC,eAAe,iBAC/B,EAAAiZ,QAAQ8P,YAERnoG,KAAKiL,IAAI,WAAW0tF,IAAOhb,GAC3B39E,KAAKiL,IAAI,GAAG5M,MAAqB,UAAZ2qF,EAAsB,WAAa,aAAao1C,EAAOx1H,uBAAuBy1H,IAAc1gD,GACjH39E,KAAKinF,UAEL,IAAIx5C,EAAS,EAAG+wF,EAAS,EAAGr/B,EAAU,EAAGs/B,EAAU,EAEnD,IAAK,MAAM3nE,KAAOsnE,EAAQ,CACtB,MAAMJ,EAAM/gI,EAAK4hB,SAAS5hB,EAAKuH,KAAK05H,EAAS,SAAUpnE,GACjD4nE,EAAW9gD,EAAOC,IAAI7Z,KAAKlN,GAE3BxjB,QAAYtzC,KAAK4yF,QAAQ+F,EAAKrH,EAAW4sC,EAASpnE,GAClD6nE,EAAS3+H,KAAK4+H,MAAMtrF,EAAK3vB,GACzBk7G,EAAK7+H,KAAK8+H,WAAWZ,EAASpnE,GAEpC,GAAgB,UAAZkyB,EAAqB,CACrB/tF,EAAGsZ,UAAUtX,EAAKuhB,QAAQqgH,GAAK,CAAEngH,WAAW,IAC5CzjB,EAAG0Z,cAAckqH,EAAI7+H,KAAK++H,UAAUJ,GAAU,KAAM,QACpDF,IACAz+H,KAAKiL,IAAI,cAAc+yH,IAAOU,GAC9B1+H,KAAKinF,UACL,QACJ,CAEA,IAAKhsF,EAAG8wE,WAAW8yD,GAAK,CACpB1/B,IACAn/F,KAAKiL,IAAI,cAAc+yH,+BAAkCU,GACzD1+H,KAAKinF,UACL,QACJ,CACA,MAAM+V,EAAWzlF,KAAK7N,MAAMzO,EAAG2Z,aAAaiqH,EAAI,SAChD,GAAI7+H,KAAKg/H,UAAUhiC,EAAU2hC,GAAS,CAClClxF,IACAztC,KAAKiL,IAAI,cAAc+yH,IAAOU,GAC9B1+H,KAAKinF,UACL,QACJ,CACAu3C,IACAx+H,KAAKiL,IAAI,cAAc+yH,IAAOU,GAC9B,MAAM,QAAEO,EAAO,MAAEC,GAAUl/H,KAAKm/H,YAAYniC,EAAU2hC,EAAQh7G,GAC9D,IAAK,MAAM5N,KAAKkpH,EAASj/H,KAAKiL,IAAI,WAAW8K,IAAK2oH,GAClD,IAAK,MAAMj/H,KAAKy/H,EAAOl/H,KAAKiL,IAAI,WAAWxL,IAAKi/H,GACzB,IAAnBO,EAAQr2H,QAAiC,IAAjBs2H,EAAMt2H,QAC9B5I,KAAKiL,IAAI,8DAA+DyzH,GAC5E1+H,KAAKinF,SACT,CAEA,GAAgB,UAAZ+B,EAAqB,CACrB,MAAM3oC,EAAM,GAAGhiD,cAAiBogI,mCAChCz+H,KAAKiL,IAAIo1C,EAAKs9B,GACdC,EAAOznE,OAAOoqE,uBAAuBlgC,EACzC,KAAO,CACH,MACM8hD,EAAqB,IAAXq8B,GAA4B,IAAZr/B,EAAiB,KAAO,aAClD43B,EAAU,GAAG14H,MAASovC,KAFdA,EAAS+wF,EAASr/B,YAGzBq/B,EAAS,KAAKA,WAAkB,KAChCr/B,EAAU,KAAKA,YAAoB,IACpC,OAAOgD,KACbniG,KAAKiL,IAAI,KAAK8rH,IAAWp5C,GACV,OAAXwkB,EACAvkB,EAAOznE,OAAOoqE,uBAAuBw2C,GAErCn5C,EAAOznE,OAAOypE,mBAAmBm3C,EACzC,CACAn5C,EAAOuB,SAASC,eAAe,qBACnC,E,CAIQ,UAAAiwC,GACJ,MAAM/9B,EAAY,EAAAxS,WAAWiQ,kBAAkB9P,OAC/C,IAAKqS,EAAW,MAAO,GACvB,MAAMmoB,EAA4B,UAAlB3tF,EAAGS,WAAyB,UAAY,MACxD,OAAOtvB,EAAKuH,KAAK8sF,EAAWmoB,EAChC,CAKQ,OAAA7mB,CAAQ+F,EAAarH,EAAmB4sC,EAAiBkB,GAC7D,MAAMlhD,EAASkhD,EAAY7B,EAC3Bv9H,KAAKq/H,KAAKnhD,GACV,MAAM5yE,EAAO,CAAC,OAAQ4yH,EAAS,QAAS5sC,EAAW8tC,GACnD,OAAO,IAAIt2H,QAAQC,IACfuxF,EAAGO,SAASlC,EAAKrtF,EAAM,CAAE8wB,UAAW,UAAoB,KACpD,IAAInoB,EAAY,CAAC,EACjB,IACI,MAAMqrH,EAAUriI,EAAKuH,KAAK05E,EAAQ,eAC9BjjF,EAAG8wE,WAAWuzD,KACdrrH,EAAOsD,KAAK7N,MAAMzO,EAAG2Z,aAAa0qH,EAAS,SACnD,CAAE,SACErrH,EAAO,CAAC,CACZ,CACAjU,KAAKq/H,KAAKnhD,GACVn1E,EAAQkL,GAAQ,CAAC,MAG7B,CAIQ,UAAAqqH,CAAWJ,EAAiBvuB,EAAoB4vB,GACpD,MAAM56G,EAAO1nB,EAAKuH,KAAK05H,EAAS,SAG1BntG,EAAQwuG,QAAAA,EAAW56G,EACzB,IAAK3kB,KAAKmf,MAAM4R,GAAQ,MAAO,GAC/B,MAAMqtG,EAAmB,GACnBn9H,EAAQwd,IACV,IAAK,MAAM9f,KAAS1D,EAAGM,YAAYkjB,EAAK,CAAE3gB,eAAe,IAAS,CAC9D,MAAM08G,EAAOv9G,EAAKuH,KAAKia,EAAK9f,EAAMN,MAClC,GAAIM,EAAM8B,cAAe,CAAEQ,EAAKu5G,GAAO,QAAU,CACjD,IAAK77G,EAAMgC,SAAU,SACrB,MAAMq9H,EAAM/gI,EAAK4hB,SAAS8F,EAAM61F,GAEhC,GAAIwjB,EAAIhiI,MAAM,SAAS0J,KAAKuJ,GAAKA,EAAErP,SAAS29H,IAAkB,SAC9D,GAAIC,EAAsBr2G,IAAIxoB,EAAMN,KAAKkY,eAAgB,SACzD,GAAIknH,EAAyBt2G,IAAIlqB,EAAKuqC,QAAQ7oC,EAAMN,MAAMkY,eAAgB,SAC1E,MAAMipH,EAAWxB,EAAIhiI,MAAMiB,EAAKiD,KAAKsE,KAAK,KACtCmrG,EAAI8vB,QAAQ72H,SAAW+mG,EAAI8vB,QAAQ/5H,KAAKg6H,GAAK1/H,KAAK2/H,UAAUH,EAAUE,KACtE/vB,EAAIiwB,QAAQl6H,KAAKg6H,GAAK1/H,KAAK2/H,UAAUH,EAAUE,KACnDtB,EAAOz8H,KAAK64G,EAChB,GAIJ,OAFAv5G,EAAK8vB,GACLqtG,EAAOrwG,OACAqwG,CACX,CAEQ,UAAAH,CAAWx/G,GACf,IAAKze,KAAKmf,MAAMV,GAAM,OAAO,EAC7B,IAAK,MAAM9f,KAAS1D,EAAGM,YAAYkjB,EAAK,CAAE3gB,eAAe,IAAS,CAC9D,MAAM08G,EAAOv9G,EAAKuH,KAAKia,EAAK9f,EAAMN,MAClC,GAAIM,EAAM8B,eACN,GAAIT,KAAKi+H,WAAWzjB,GAAO,OAAO,OAC/B,GAAI77G,EAAMN,KAAKuB,SAAS,SAC3B,OAAO,CAEf,CACA,OAAO,CACX,CAEQ,UAAAu+H,CAAWD,G,MACf,MAAMvuB,EAAqB,CAAE8vB,QAAS,GAAIG,QAAS,GAAIrB,aAAc,IAAIb,IACnEmC,EAAU5iI,EAAKuH,KAAK05H,EAAS,OAAQ,gBAC3C,GAAIjjI,EAAG8wE,WAAW8zD,GACd,IACI,MAAM//B,EAAMvoF,KAAK7N,MAAMzO,EAAG2Z,aAAairH,EAAS,SAC5C/1H,MAAMC,QAAQ+1F,EAAI2/B,WAAU9vB,EAAI8vB,QAAU3/B,EAAI2/B,SAC9C31H,MAAMC,QAAQ+1F,EAAI8/B,WAAUjwB,EAAIiwB,QAAU9/B,EAAI8/B,SAC9C91H,MAAMC,QAAQ+1F,EAAIggC,iBAAgBnwB,EAAI4uB,aAAez+B,EAAIggC,cACjE,CAAE,MAAO9iG,GACLh9B,KAAKiL,IAAI,8BAA8B40H,MAAsB,QAAV,EAAA7iG,aAAC,EAADA,EAAGxlB,eAAO,QAAIwlB,IAAK4gD,EAAOC,IAAI7Z,KAAK67D,GAC1F,CAEJ,OAAOlwB,CACX,CAEQ,UAAAmvB,CAAWZ,EAAiBkB,GAChC,MAAMpB,EAAM/gI,EAAK4hB,SAAS5hB,EAAKuH,KAAK05H,EAAS,SAAUkB,GACvD,OAAOniI,EAAKuH,KAAK05H,EAAS,OAAQ,WAAYF,EAAM,QACxD,CAMQ,KAAAY,CAAM1jH,EAAUyI,GACpB,GAAI7Z,MAAMC,QAAQmR,GAAM,CACpB,MAAMiR,EAAQjR,EAAI/c,IAAIyI,GAAK5G,KAAK4+H,MAAMh4H,EAAG+c,IAOzC,OANIwI,EAAMvjB,QAAUujB,EAAM/K,MAAMxa,GAAW,OAANA,GAA2B,iBAANA,IACtDulB,EAAM4B,KAAK,CAACtuB,EAAGC,KACX,MAAMqgI,EAAK//H,KAAKggI,OAAOvgI,GAAI2yH,EAAKpyH,KAAKggI,OAAOtgI,GAC5C,OAAOqgI,EAAK3N,GAAM,EAAI2N,EAAK3N,EAAK,EAAI,IAGrCjmG,CACX,CACA,GAAY,OAARjR,GAA+B,iBAARA,EAAkB,CACzC,MAAMo4B,EAAW,CAAC,EAClB,IAAK,MAAMh4B,KAAK3gB,OAAOkf,KAAKqB,GACnByI,EAAOwD,IAAI7L,KAAIg4B,EAAIh4B,GAAKtb,KAAK4+H,MAAM1jH,EAAII,GAAIqI,IACpD,OAAO2vB,CACX,CACA,OAAOp4B,CACX,CAGQ,OAAA+kH,CAAQ/kH,GACZ,MAAMo4B,EAAa,GACnB,GAAIxpC,MAAMC,QAAQmR,GACd,GAAIA,EAAItS,QAAUsS,EAAIkG,MAAMxa,GAAW,OAANA,GAA2B,iBAANA,IAAmBkD,MAAMC,QAAQnD,IACnF0sC,EAAI3xC,QAAQuZ,QAEZ,IAAK,MAAMtU,KAAKsU,EAAKo4B,EAAI3xC,QAAQ3B,KAAKigI,QAAQr5H,SAC/C,GAAY,OAARsU,GAA+B,iBAARA,EAC9B,IAAK,MAAMtU,KAAKjM,OAAOmK,OAAOoW,GAAMo4B,EAAI3xC,QAAQ3B,KAAKigI,QAAQr5H,IAEjE,OAAO0sC,CACX,CAEQ,WAAA6rF,CAAYniC,EAAe2hC,EAAah7G,G,QAC5C,MAAMu8G,EAAO1kH,I,MACT,MAAM9b,EAAI,IAAI4mB,IACd,IAAK,MAAMvQ,KAAK/V,KAAKigI,QAAQzkH,GAAI,CAC7B,MAAM2kH,EAAgB,CAAC,EACvB,IAAK,MAAM7kH,KAAK3gB,OAAOkf,KAAK9D,GAAS4N,EAAOwD,IAAI7L,KAAI6kH,EAAS7kH,GAAKvF,EAAEuF,IACpE,MAAMxB,EAAM9Z,KAAKggI,OAAOG,GACxBzgI,EAAEmZ,IAAIiB,GAAgB,QAAV,EAAApa,EAAEkZ,IAAIkB,UAAI,QAAI,GAAK,EACnC,CACA,OAAOpa,GAEL0gI,EAAKF,EAAIljC,GAAWqjC,EAAKH,EAAIvB,GAC7BM,EAAoB,GAAIC,EAAkB,GAChD,IAAK,MAAO5jH,EAAG9J,KAAM4uH,EAAI,IAAK,IAAI1wH,EAAI,EAAGA,EAAII,KAAKF,IAAI,EAAG4B,GAAc,QAAT,EAAA6uH,EAAGznH,IAAI0C,UAAE,QAAI,IAAK5L,IAAKuvH,EAAQt9H,KAAK2Z,GAClG,IAAK,MAAOA,EAAG9J,KAAM6uH,EAAI,IAAK,IAAI3wH,EAAI,EAAGA,EAAII,KAAKF,IAAI,EAAG4B,GAAc,QAAT,EAAA4uH,EAAGxnH,IAAI0C,UAAE,QAAI,IAAK5L,IAAKwvH,EAAMv9H,KAAK2Z,GAChG,MAAO,CAAE2jH,UAASC,QACtB,CAMQ,MAAAc,CAAO9kH,GACX,OAAO3D,KAAKhO,UAAUvJ,KAAKsgI,SAASplH,GACxC,CAIQ,SAAA6jH,CAAU7jH,GACd,OAAO3D,KAAKhO,UAAUvJ,KAAKsgI,SAASplH,GAAM,KAAM,EACpD,CAEQ,QAAAolH,CAASplH,GACb,GAAIpR,MAAMC,QAAQmR,GAAM,OAAOA,EAAI/c,IAAIyI,GAAK5G,KAAKsgI,SAAS15H,IAC1D,GAAY,OAARsU,GAA+B,iBAARA,EAAkB,CACzC,MAAMo4B,EAAW,CAAC,EAClB,IAAK,MAAMh4B,KAAK3gB,OAAOkf,KAAKqB,GAAK6S,OAAQulB,EAAIh4B,GAAKtb,KAAKsgI,SAASplH,EAAII,IACpE,OAAOg4B,CACX,CACA,OAAOp4B,CACX,CAEQ,SAAA8jH,CAAUv/H,EAAQC,GACtB,OAAOM,KAAKggI,OAAOvgI,KAAOO,KAAKggI,OAAOtgI,EAC1C,CAKQ,SAAAigI,CAAUH,EAAkB79G,GAChC,MAAM4+G,EAAK,IAAM5+G,EACZpM,QAAQ,oBAAqB,QAC7BA,QAAQ,QAAS,MACjBA,QAAQ,MAAO,SACfA,QAAQ,MAAM,MACdA,QAAQ,MAAO,KAAO,IAC3B,OAAO,IAAI4hB,OAAOopG,GAAItlH,KAAKukH,EAC/B,CAEQ,KAAArgH,CAAMlQ,GACV,IAAM,OAAOhU,EAAGI,SAAS4T,GAAGxO,aAAe,CAAE,SAAQ,OAAO,CAAO,CACvE,CAEQ,MAAAE,CAAOsO,GACX,IAAM,OAAOhU,EAAGI,SAAS4T,GAAGtO,QAAU,CAAE,SAAQ,OAAO,CAAO,CAClE,CAEQ,IAAA0+H,CAAKpwH,GACT,IAAMhU,EAAGu8F,OAAOvoF,EAAG,CAAEyP,WAAW,EAAM+4E,OAAO,GAAS,CAAE,MAAoB,GAAC,CACjF,CAEQ,GAAAxsF,CAAIuM,EAAiB+nE,GACzB,EAAA8Y,QAAQC,WAAW9gF,EAAS,EAAA+sE,YAAYgU,eAAgBhZ,EAC5D,CAEQ,OAAA0H,GACJrJ,EAAOuB,SAASC,eAAe,qBACnC,EAzVJ,qBA4Va,EAAA8R,iBAAmB,IAAIysC,C,2JC3XpC,0BACA,0BACA,0BAEA,UACA,UACA,UACA,UACA,UAEA,IAAY6C,EACAC,GADZ,SAAYD,GAAgB,eAAI,kBAAM,CAAtC,CAAYA,IAAa,gBAAbA,EAAa,KACzB,SAAYC,GAAc,qBAAO,mBAAM,kBAAM,CAA7C,CAAYA,IAAW,cAAXA,EAAW,KAEvB,MAAaC,EAiBZ,WAAA5gI,GAhBO,KAAAy/E,IAAM3B,EAAOC,IAAI7Z,KAAK,IACtB,KAAA28D,QAAU/iD,EAAOC,IAAI7Z,KAAK,IAC1B,KAAAlzB,KAAe,GACf,KAAAzyC,KAAe,GACf,KAAAu1G,QAAkB,GAClB,KAAAv1B,QAAkB,EAClB,KAAAusB,IAAc,EACd,KAAAr7D,WAAqB,EACrB,KAAAykF,QAAkB,GAClB,KAAA4M,UAAoB,EACpB,KAAAjxG,OAAiB,EACjB,KAAA48E,QAAkB,EAElB,KAAAs0B,WAAuB,CAAC,WAAW,MAAM,QAAQ,cAAc,SAAS,UAAU,WAAW,WAC7F,KAAAC,kBAA8B,CAAC,gDAAgD,gDAAgD,gDAAgD,8BAA8B,8BAA8B,oBAAoB,kCAAkC,+BAGxS,CAEO,WAAAC,GACN,OAAO/gI,KAAK6gI,WAAW/hH,SAAS9e,KAAKg0H,QAAQz9G,cAC9C,CAEO,YAAAyqH,GACN,MAAM9wH,EAAQlQ,KAAK6gI,WAAWj7H,QAAQ5F,KAAKg0H,SAE3C,OADgBh0H,KAAK8gI,kBAAkB5wH,EAExC,CAEO,UAAA+wH,GACN,OAA4C,GAArCjhI,KAAKg0H,QAAQ7uB,cAAc,QAAoD,GAArCnlG,KAAKg0H,QAAQ7uB,cAAc,MAC7E,CAEO,QAAA+7B,GACN,MAAM9hF,EAAIp/C,KAAKg0H,QAAQz9G,cACvB,MAAY,UAAL6oC,GAAsB,aAALA,GAAyB,SAALA,CAC7C,CAEO,QAAA+hF,GACN,OAA+C,GAAxCnhI,KAAKg0H,QAAQ7uB,cAAc,SACnC,CAEO,MAAAi8B,GACN,OAA6C,GAAtCphI,KAAKg0H,QAAQ7uB,cAAc,OACnC,CAEO,KAAAk8B,CAAMhjI,GACZ,OAA4C,GAArC2B,KAAKg0H,QAAQ7uB,cAAc,QAAgD,GAAjCnlG,KAAK3B,KAAK8mG,cAAc9mG,EAC1E,CAEO,UAAAy9G,GACN,QAAO7gH,EAAG8wE,WAAW/rE,KAAKu/E,IAAIN,OAC/B,CAEO,MAAAlZ,GACN,OAAO/lE,KAAK2vB,KACb,CAEO,OAAApO,GACN,OAAOvhB,KAAK2vB,KACb,CAEA,KAAA2sF,GACCt8G,KAAKu/E,IAAM3B,EAAOC,IAAI7Z,KAAK,IAC3BhkE,KAAK8wC,KAAO,GACZ9wC,KAAK3B,KAAO,GACZ2B,KAAK4zG,QAAU,GACf5zG,KAAKq+E,QAAU,EACfr+E,KAAK4qG,IAAM,EACX5qG,KAAKg0H,QAAU,GACfh0H,KAAK4gI,UAAW,EAChB5gI,KAAK2vB,OAAQ,EACb3vB,KAAKusG,QAAS,CACf,EA1ED,aA6EA,MAAa/uB,UAAqB,EAAAiF,SAMjC,WAAA3iF,GACC0C,QANO,KAAAs7E,QAAUF,EAAOC,IAAI7Z,KAAK,IAC1B,KAAAs9D,UAAY,IAAIx3H,MAChB,KAAAy3H,YAAc,IAAIz3H,MAClB,KAAA03H,WAAqB,EAI7B,CAEA,IAAA1oH,GACK,EAAAgmE,WAAW6D,SAASmC,aACvB9kF,KAAK89E,QAAU,EAAAgB,WAAW6D,SAASzD,mBACnCl/E,KAAK0uF,aAAa1uF,KAAK89E,QAAQmB,QAEjC,CAEO,UAAAwP,CAAW3Q,GACjB99E,KAAK89E,QAAUF,EAAOC,IAAI7Z,KAAK8Z,EAChC,CAEA,gBAAA2jD,GACC,IAAK,MAAMr1B,KAAYpsG,KAAKshI,UAC3Bl1B,EAASu0B,QAAU/iD,EAAOC,IAAI7Z,KAAKhkE,KAAK0hI,eAAet1B,EAAS7sB,IAAIN,SAChEmtB,EAASu0B,QAAQ1hD,OAAOr2E,MAI9B,CAEO,YAAA8lF,CAAa5Q,EAAiB6jD,GAAmB,GACvD7jD,EAAU6jD,EAAU1kI,EAAKuH,KAAKs5E,EAAQ,EAAAgB,WAAW8H,0BAA4B9I,EACzE6jD,GACH3hI,KAAKyuF,WAAW3Q,GAEjB,MAAMqF,EAAUlmF,EAAKuH,KAAKs5E,EAAQ,EAAAgB,WAAWsE,wBAE7C,IAAKnoF,EAAG8wE,WAAWoX,GAGlB,OAFAnjF,KAAKshI,UAAY,QACjB1jD,EAAOznE,OAAOypE,mBAAmB,mCAAqCuD,GAGvE3gF,MAAMqrF,QAAQjQ,EAAOC,IAAI7Z,KAAKmf,IAAS,GACvC,IAAI9E,EAAU,EACdr+E,KAAKshI,UAAY,GACjB,IAAI37C,EAAS,GACTilB,EAAM,EAEV,IAAK,MAAMg3B,KAAW5hI,KAAK0iF,WAAY,CACtC,MAAM0pB,EAAWpsG,KAAK6hI,QAAQD,EAAQvjD,GACd,UAApB+tB,EAAS4nB,SAA2C,QAApB5nB,EAAS4nB,QAC5CruC,EAASymB,EAAS/tG,KACRsnF,EAAO/8E,OACO,OAApBwjG,EAAS4nB,SAA4D,GAAvC5nB,EAAS/tG,KAAK8mG,cAAcxf,GAC7DA,EAAS,IAETymB,EAASw0B,UAAW,EACpBviD,KAES+tB,EAASrmC,UACnBsY,IAEG+tB,EAASt7D,KAAKloC,SACjBwjG,EAASxB,IAAMA,IAGVwB,EAAS80B,aACb90B,EAAS7sB,IAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKs5E,EAAQsuB,EAAS/tG,KAAO,UAClE+tG,EAASu0B,QAAU/iD,EAAOC,IAAI7Z,KAAKhkE,KAAK0hI,eAAet1B,EAAS7sB,IAAIN,SACpEj/E,KAAKshI,UAAU3/H,KAAKyqG,GAEtB,CACD,CAEO,gBAAA01B,GACN,MAAMjuH,EAAsB,IAAI/J,MAChC,IAAK,MAAMsiG,KAAYpsG,KAAKshI,UAC3BztH,EAAMlS,KAAKyqG,EAAS7sB,KAErB,OAAO1rE,CACR,CAEO,YAAA86E,GACN,OAAO3uF,KAAKshI,SACb,CAEO,WAAA32B,GACN,OAAO3qG,KAAKshI,UAAUthI,KAAKshI,UAAU14H,OAAO,EAC7C,CAEO,mBAAAm5H,CAAoBn3B,GAC1B,MAAMo3B,EAAahiI,KAAKshI,UAAU12B,GAClC,IAAK,IAAIl7F,EAAEk7F,EAAKl7F,EAAE1P,KAAKshI,UAAU14H,OAAQ8G,IAAK,CAC7C,MAAM08F,EAAWpsG,KAAKshI,UAAU5xH,GAChC,GAAoD,GAAhD08F,EAAS/tG,KAAK8mG,cAAc68B,EAAW3jI,OAAuD,GAAzC+tG,EAAS4nB,QAAQ7uB,cAAc,OACvF,OAAOiH,CACT,CACA,OAAO41B,CACR,CAEA,QAAAlF,CAASmF,GACR,IAAK,MAAM71B,KAAYpsG,KAAKshI,UAC3B,GAAgD,GAA5Cl1B,EAAS/tG,KAAK8mG,cAAc88B,GAC/B,OAAO,EAET,OAAO,CACR,CAEA,OAAAJ,CAAQD,EAAiBvjD,GACxB,MAAM+tB,EAAW,IAAIs0B,EACf1vF,EAAS4wF,EAAQ5lI,MAAM,UAE7B,GAAIg1C,EAAOpoC,QAAU,EAAG,CAIvB,GAHAwjG,EAASt7D,KAAO8wF,EAChBx1B,EAAS/tB,QAAUA,EAEiB,GAAhCrtC,EAAO,GAAGm0D,cAAc,KAC3BiH,EAASwH,QAAU5zG,KAAKkiI,SAASlxF,EAAO,GACxCo7D,EAAS4nB,QAAU,QAEb,CACN,MAAMmO,EAAQnxF,EAAO,GAAGz7B,QAAQ,IAAI,IAChC4sH,EAAMv5H,OAASooC,EAAO,GAAGpoC,QAC5BwjG,EAASG,QAAS,EAClBH,EAAS4nB,QAAUmO,IAEnB/1B,EAASG,QAAS,EAClBH,EAAS4nB,QAAUhjF,EAAO,GACtBo7D,EAAS20B,gBACZ30B,EAAS78D,WAAY,IAGvB68D,EAAS/tG,KAAO2yC,EAAO,GACsB,GAAzCo7D,EAAS4nB,QAAQ7uB,cAAc,SAClCiH,EAAS4nB,QAAU,OAGyB,GAAzC5nB,EAAS4nB,QAAQ7uB,cAAc,QAAwD,GAAzCiH,EAAS4nB,QAAQ7uB,cAAc,SAChFiH,EAAS7sB,IAAMv/E,KAAKoiI,YAAYh2B,IAE7BA,EAAS80B,aACZ90B,EAAS7sB,IAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAK89E,QAAQmB,OAAOmtB,EAAS/tG,KAAO,SAE9E+tG,EAASwH,QAAU5zG,KAAKkiI,SAASlxF,EAAO,EACzC,CACAo7D,EAASz8E,OAAQ,CAClB,CAEA,OAAOy8E,CACR,CAEA,WAAAg2B,CAAYh2B,GAIX,OAHAA,EAAS7sB,IAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAK89E,QAAQmB,OAAOmtB,EAAS/tG,KAAO,SACxEpD,EAAG8wE,WAAWqgC,EAAS7sB,IAAIN,UAC/BmtB,EAAS7sB,IAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAK89E,QAAQmB,OAAOmtB,EAAS/tG,KAAO,UACvE+tG,EAAS7sB,GACjB,CAEA,QAAA2iD,CAASlxF,EAAkBjgB,GAC1B,IAAImxG,EAAW,GACXxyH,EAAI,EACR,MAAM8b,EAAMwlB,EAAOpoC,OACnB,IAAK8G,EAAEqhB,EAAOrhB,EAAE8b,EAAK9b,IAAK,CACzB,MAAMkwD,EAAM5uB,EAAOthC,GACfwyH,EAASt5H,SACZs5H,GAAsB,KACvBA,GAAsBtiE,CACvB,CACA,OAAOsiE,CACR,CAEA,UAAAG,CAAWj2B,GAEV,OADkBA,EAASG,OAAS,GAAK,KACtBH,EAAS4nB,QAAU,KAAO5nB,EAAS/tG,KAAO,KAAO+tG,EAASwH,OAC9E,CAEA,IAAApwG,CAAK8+H,GACJ,IAAI9uH,EAAWvW,EAAKuW,SAAS8uH,EAAS,QAEtC,OADA9uH,EAAWvW,EAAKuW,SAASA,EAAS,QAC3BA,CACR,CAEA,YAAA+uH,CAAa33B,GACZ,IAAK,MAAMwB,KAAYpsG,KAAKshI,UAC3B,GAAIl1B,EAASxB,KAAOA,EACnB,OAAOwB,EAET,OAAO,IAAIs0B,CACZ,CAEA,eAAA8B,CAAgBC,GACf,IAAK,MAAMr2B,KAAYpsG,KAAKshI,UAC3B,GAAIl1B,EAAS/tB,SAAWokD,EACvB,OAAOr2B,EAET,OAAO,IAAIs0B,CACZ,CAEA,kBAAA9f,CAAmB6hB,GAClB,MAAMr2B,EAAWpsG,KAAKwiI,gBAAgBC,GACtC,OAAKr2B,EAAS7qF,UAEPq8D,EAAOC,IAAI7Z,KAAK,IADfooC,EAAS7sB,GAElB,CAEA,SAAAmjD,GACC,OAAO1iI,KAAKshI,UAAU14H,MACvB,CAEA,QAAA+5H,CAASv2B,GAER,OADepsG,KAAK4iI,gBAAgBx2B,EAAS4nB,QAAQ5nB,EAAS/tG,MAAK,GACrDuK,OAASwjG,EAASxB,KAAO5qG,KAAK0iI,WAC7C,CAEA,WAAAG,GACC7iI,KAAKuhI,YAAc,GAEnB,IAAK,MAAMn1B,KAAYpsG,KAAKshI,UAC3BthI,KAAKuhI,YAAY5/H,KAAK3B,KAAKqiI,WAAWj2B,GAExC,CAEA,QAAAw0B,CAASx0B,GACR,MAAM02B,EAAS9iI,KAAKqsG,YACpB,IAAIzB,EAAMk4B,EAAO12B,EAASxB,KAAKA,IAC/B,KAAOA,GAAK,CACXA,IACA,MAAMm4B,EAAcD,EAAOl4B,GAC3B,GAA2B,OAAvBm4B,EAAY/O,QACf,OAAO,EAEH,GAA2B,UAAvB+O,EAAY/O,QACpB,OAAO,CAET,CACA,OAAO,CACR,CAEA,UAAAgP,CAAWxQ,EAAuByQ,GACjC,GAAIjjI,KAAKshI,UAAU14H,OAAQ,CAC1B,MAAMwjG,EAAWpsG,KAAKkjI,SAAS1Q,EAAQtnH,KAAKsnH,EAAQn0H,MACpD,GAA4C,GAAxCm0H,EAAQtnH,KAAKi6F,cAAc,UAAgB,CAC9C,MAAM29B,EAAS9iI,KAAK4iI,gBAAgBpQ,EAAQtnH,KAAKsnH,EAAQn0H,MAAK,GAC9DykI,EAAOA,EAAOl6H,OAAO,GAAGvK,KAAO4kI,CAChC,CACA72B,EAAS/tG,KAAO4kI,EAChBjjI,KAAKwjF,UACN,CACD,CAEA,aAAA2/C,CAAc3Q,EAAuByQ,GACpC,GAAIjjI,KAAKshI,UAAU14H,OAAQ,CAC1B,MAAMwjG,EAAWpsG,KAAKkjI,SAAS1Q,EAAQtnH,KAAKsnH,EAAQn0H,MAC9C+kI,EAAWnmI,EAAKuH,KAAKvH,EAAKuhB,QAAQ4tF,EAAS7sB,IAAIN,QAAQgkD,EAAc,QAC3EhoI,EAAGy8F,aAAa0U,EAAS7sB,IAAIN,OAAOmkD,GACpC,MAAMC,EAAWrjI,KAAKsjI,uBAAuBF,GAC7CpjI,KAAKshI,UAAUtwH,OAAOo7F,EAASxB,IAAI,EAAE,EAAEy4B,GACvCrjI,KAAKwjF,UACN,CACD,CAEA,UAAAsnB,CAAWF,EAAa24B,GACvB,GAAIvjI,KAAKshI,UAAU14H,QAEdgiG,GAAO,EAAG,CACb,IAAIk4B,EAAS,IAAIh5H,MACjBg5H,EAAOnhI,KAAK4hI,GACZ,IAAI/wG,GAAO,EACX,MAAMsrD,EAAU,EAAAgB,WAAW6D,SAASzD,mBAAmBD,OAEnDnB,EAAQqnB,cAAcloG,EAAKuhB,QAAQ+kH,EAAQtkD,WAC1C,EAAAc,SAAS5gE,MAAMokH,EAAQtkD,UAC1B6jD,EAAS,GACTA,EAAS,EAAA/iD,SAAS6F,SAAS29C,IAE5B/wG,GAAO,GAER,IAAIgxG,EAAKxjI,KAAKshI,UAAU,GACxB,IAAK,MAAMmC,KAAQX,EAAQ,CAC1B,MAAMY,EAAWzmI,EAAKuH,KAAKs5E,EAAQ7gF,EAAKuW,SAASiwH,EAAKxkD,SAClDzsD,GACHv3B,EAAGy8F,aAAa+rC,EAAKxkD,OAAOykD,GAKzB1jI,KAAK2jI,mBAAmB1mI,EAAKuW,SAASiwH,EAAKxkD,WAG/CukD,EAAKxjI,KAAKsjI,uBAAuBI,GACjC94B,IACA5qG,KAAKshI,UAAUtwH,OAAO45F,EAAI,EAAE44B,GAC7B,CACAxjI,KAAKwjF,WACLxjF,KAAKgrG,gBACN,CAED,OAAOJ,CACR,CAEA,kBAAA+4B,CAAmBtwH,GAClB,MAAMyvH,EAAS9iI,KAAKqsG,YACdhuG,EAAOpB,EAAKyM,MAAM2J,GAAUhV,KAClC,IAAK,MAAMolI,KAAQX,EAClB,GAAIW,EAAKplI,MAAQA,EAChB,OAAOolI,EAAKplD,QAGd,OAAO,CACR,CAEA,aAAAulD,CAAcpR,EAAuBqR,EAAiB34H,GACrD,GAAIlL,KAAKshI,UAAU14H,QAAUi7H,EAAQj7H,OAAQ,CAC5C,MAAMk7H,EAAY9jI,KAAKkjI,SAAS1Q,EAAQtnH,KAAKsnH,EAAQn0H,MACrD,GAAIylI,EAAW,CACd,MAAM70C,EAAUjvF,KAAK+jI,kBAAkBF,EAAQ34H,GACzCkhG,EAAWpsG,KAAKsjI,uBAAuBr0C,GAC7CjvF,KAAKshI,UAAUtwH,OAAO8yH,EAAUl5B,IAAI,EAAE,EAAEwB,GACxCpsG,KAAKwjF,UACN,CACD,CACD,CAEA,gBAAAwgD,CAAiBT,EAAiBr4H,GACjC,GAAIlL,KAAKshI,UAAU14H,QAAU26H,EAAQ36H,OAAQ,CAC5C,MAAMqmF,EAAUjvF,KAAK+jI,kBAAkBR,EAAQr4H,GACzCkhG,EAAWpsG,KAAKsjI,uBAAuBr0C,GAC7CjvF,KAAKshI,UAAU3/H,KAAKyqG,GACpBpsG,KAAKwjF,UACN,CACD,CAEA,mBAAAygD,CAAoBzR,EAAuBqR,EAAiBhzH,GAAkB,GAC7E,GAAI7Q,KAAKshI,UAAU14H,QAAUi7H,EAAQj7H,OAAQ,CAC5C,MAAMk7H,EAAY9jI,KAAKkjI,SAAS1Q,EAAQtnH,KAAKsnH,EAAQn0H,MAC/C+tG,EAAWpsG,KAAKkkI,qBAAqBL,GACvCC,EAGH9jI,KAAKshI,UAAUtwH,OAAOH,EAASizH,EAAUl5B,IAAMk5B,EAAUl5B,IAAI,EAAE,EAAEwB,GAEjEpsG,KAAKshI,UAAU3/H,KAAKyqG,GACrBpsG,KAAKwjF,UACN,CACD,CAEA,oBAAA0gD,CAAqBL,GACpB,MAAM50C,EAAUjvF,KAAKmkI,oBAAoBN,GACnCz3B,EAAW,IAAIs0B,EASrB,OARAt0B,EAAS7sB,IAAM3B,EAAOC,IAAI7Z,KAAKirB,GAC/Bmd,EAAS/tG,KAAOwlI,EAGhBz3B,EAAS4nB,QAAU,SACnB5nB,EAASwH,QAAU,gBACnBxH,EAASt7D,KAAO9wC,KAAKqiI,WAAWj2B,GAChCA,EAASz8E,OAAQ,EACVy8E,CACR,CAEA,mBAAA+3B,CAAoB9wH,GACnB,MAAM+wH,EAAcnnI,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASzD,mBAAmBD,OAAO5rE,EAASnJ,OAAO,QAG5F,OAFKjP,EAAG8wE,WAAWq4D,IAClBnpI,EAAG0Z,cAAcyvH,EAAYpkI,KAAKqkI,iBAAiBhxH,GAAU,CAACkpB,KAAK,OAC7D6nG,CACR,CAEA,gBAAAC,CAAiBhxH,GAChB,IAAIixH,EAAK,wBAA0BjxH,EAAW,KAU9C,OATAixH,EAAKA,EAAGp6H,OAAO,wCAAwCmJ,EAAS,8CAChEixH,EAAKA,EAAGp6H,OAAO,2EACfo6H,EAAKA,EAAGp6H,OAAO,qEACfo6H,EAAKA,EAAGp6H,OAAO,uDACfo6H,EAAKA,EAAGp6H,OAAO,0BACfo6H,EAAKA,EAAGp6H,OAAO,2DACfo6H,EAAKA,EAAGp6H,OAAO,0DACfo6H,EAAKA,EAAGp6H,OAAO,gEACfo6H,EAAKA,EAAGp6H,OAAO,kCACRo6H,CACR,CAEA,mBAAAr5B,CAAoBL,EAAazkB,EAAoBj7E,GACpD,MAAMkhG,EAAWpsG,KAAKuiI,aAAa33B,GACnC,GAAIzkB,EAAWv9E,QACVwjG,EAAU,CACb,MAAMm4B,EAAcvkI,KAAKwkI,qBAAqBt5H,EAAKi7E,GAKnD,OAJAo+C,EAAY35B,IAAMA,EAAI,EACtB25B,EAAYlmD,QAAU+tB,EAAS/tB,QAC/Br+E,KAAKshI,UAAUtwH,OAAOuzH,EAAY35B,IAAI,EAAE25B,GACxCvkI,KAAKwjF,WACE+gD,EAAY35B,GACpB,CAED,OAAOA,CACR,CAEA,eAAA65B,CAAgBjS,EAAuB/mC,GACtC,GAAIzrF,KAAKshI,UAAU14H,QAAU6iF,EAAU7iF,OAAQ,CAC9C,IAAIk7H,EAAY9jI,KAAKkjI,SAAS1Q,EAAQtnH,KAAKsnH,EAAQn0H,MACnD,GAAIylI,EAAW,CACVA,EAAU3C,aACb2C,EAAY9jI,KAAK0kI,gBAAgBZ,IAElC,IAAI13B,EAAWpsG,KAAKwkI,qBAAqB,MAAM/4C,GAC/CzrF,KAAKshI,UAAUtwH,OAAO8yH,EAAUl5B,IAAI,EAAE,EAAEwB,GACxCA,EAAWpsG,KAAKwkI,qBAAqB,SAAS/4C,GAC9CzrF,KAAKshI,UAAUtwH,OAAO8yH,EAAUl5B,IAAI,EAAE,EAAEwB,GACxCpsG,KAAKwjF,UACN,CACD,CACD,CAEA,eAAAkhD,CAAgBt4B,GACf,MAAM02B,EAAS9iI,KAAK4iI,gBAAgBx2B,EAAS4nB,QAAQ5nB,EAAS/tG,MAAK,GACnE,OAAOykI,EAAOA,EAAOl6H,OAAO,EAC7B,CAEA,kBAAA+7H,CAAmBl5C,GAClB,GAAIzrF,KAAKshI,UAAU14H,QAAU6iF,EAAU7iF,OAAQ,CAC9C,IAAIwjG,EAAWpsG,KAAKwkI,qBAAqB,SAAS/4C,GAClDzrF,KAAKshI,UAAU3/H,KAAKyqG,GACpBA,EAAWpsG,KAAKwkI,qBAAqB,MAAM/4C,GAC3CzrF,KAAKshI,UAAU3/H,KAAKyqG,GACpBpsG,KAAKwjF,UACN,CACD,CAEA,oBAAAghD,CAAqBt5H,EAAc7M,GAClC,MAAM+tG,EAAW,IAAIs0B,EAIrB,OAHAt0B,EAAS4nB,QAAU9oH,EACnBkhG,EAAS/tG,KAAOA,EAChB+tG,EAASwH,QAAU,eACZxH,CACR,CAEA,UAAAw4B,CAAWpS,GACV,MAAMpmB,EAAWpsG,KAAKkjI,SAAS1Q,EAAQtnH,KAAKsnH,EAAQn0H,MAChD+tG,EAAS+0B,WACZnhI,KAAKgrF,aAAaohB,GAElBpsG,KAAK6kI,oBAAoBz4B,EAAS4nB,QAAQ5nB,EAAS/tG,MACpD2B,KAAKwjF,UACN,CAEA,YAAAwH,CAAaohB,EAAoB04B,GAAqB,GACrD,MAAMhC,EAAS9iI,KAAK4iI,gBAAgBx2B,EAAS4nB,QAAQ5nB,EAAS/tG,MAAK,GACnE,GAAIymI,EAAa,CAChB,MAAM9/F,EAAM89F,EAAOl6H,OACb0sE,EAAQwtD,EAAO,GACfr0B,EAAOq0B,EAAO99F,EAAI,GACxBhlC,KAAK6kI,oBAAoBp2B,EAAKulB,QAAQvlB,EAAKpwG,MAC3C2B,KAAK6kI,oBAAoBvvD,EAAM0+C,QAAQ1+C,EAAMj3E,KAC9C,MACC2B,KAAKshI,UAAUtwH,OAAO8xH,EAAO,GAAGl4B,IAAIk4B,EAAOl6H,OAE7C,CAEA,mBAAAi8H,CAAoB35H,EAAc7M,GACjC,MAAM+tG,EAAWpsG,KAAKkjI,SAASh4H,EAAM7M,GACjC+tG,GACHpsG,KAAKshI,UAAUtwH,OAAOo7F,EAASxB,IAAI,EAErC,CAEA,iBAAAm5B,CAAkB1wH,EAAkBnI,GACnC,MAAMk5H,EAAcnnI,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASzD,mBAAmBD,OAAO5rE,EAASnJ,OAAO,SAE5F,OADAjP,EAAG0Z,cAAcyvH,EAAYpkI,KAAK+kI,eAAe1xH,EAASnI,GAAM,CAACqxB,KAAK,OAC/D6nG,CACR,CAEA,SAAAY,GACC,MAAMC,EAAQ,IAAIhtH,KAGlB,OAFagtH,EAAMt8E,cAAc,KAAKs8E,EAAMx8E,WAAW,GAAG,IAAIw8E,EAAM58E,UAEtD,IADD48E,EAAM98E,WAAa,IAAM88E,EAAMh9E,aAAe,IAAMg9E,EAAMl9E,YAExE,CAEA,cAAAg9E,CAAe1xH,EAAkBnI,GAE1B,IAAIg6H,EADKtnD,EAAOmT,UAAUC,iBAAiB,QACrBp4E,IAAY,QAChB,IAApBssH,aAAQ,EAARA,EAAUt8H,UACbs8H,EAAW,aACZ,IAAI3B,EAAU,oDAQd,OAPAA,EAAUA,EAAQr5H,OAAO,WAAWmJ,EAAS,MAC7CkwH,EAAUA,EAAQr5H,OAAO,qBACzBq5H,EAAUA,EAAQr5H,OAAO,WAAWg7H,OACpC3B,EAAUA,EAAQr5H,OAAO,cAAclK,KAAKglI,YAAY,MACxDzB,EAAUA,EAAQr5H,OAAO,iBACzBq5H,EAAUA,EAAQr5H,OAAO,uDAEjBgB,GACP,KAAKu1H,EAAY9e,MAChB4hB,EAAUA,EAAQr5H,OAAO,oBAEzBq5H,EAAUA,EAAQr5H,OAAO,YACzBq5H,EAAUA,EAAQr5H,OAAO,cACzBq5H,EAAUA,EAAQr5H,OAAO,sBACzBq5H,EAAUA,EAAQr5H,OAAO,UACzB,MAED,KAAKu2H,EAAYlf,KAChBgiB,EAAUA,EAAQr5H,OAAO,aACzBq5H,EAAUA,EAAQr5H,OAAO,4CACzBq5H,EAAUA,EAAQr5H,OAAO,mCACzBq5H,EAAUA,EAAQr5H,OAAO,YACzB,MAED,KAAKu2H,EAAYnf,KAChBiiB,EAAUA,EAAQr5H,OAAO,aACzBq5H,EAAUA,EAAQr5H,OAAO,4BACzBq5H,EAAUA,EAAQr5H,OAAO,MACzBq5H,EAAUA,EAAQr5H,OAAO,OACzBq5H,EAAUA,EAAQr5H,OAAO,YAI3B,OAAOq5H,CACR,CAEA,sBAAAD,CAAuB37D,GACtB,MAAMykC,EAAW,IAAIs0B,EAOrB,OANAt0B,EAAS7sB,IAAM3B,EAAOC,IAAI7Z,KAAK2D,GAC/BykC,EAAS/tG,KAAO2B,KAAKwD,KAAKmkE,GAC1BykC,EAAS4nB,QAAU/2H,EAAKuqC,QAAQmgC,GAAUvsD,UAAU,GACpDgxF,EAASwH,QAAU,YACnBxH,EAASt7D,KAAO9wC,KAAKqiI,WAAWj2B,GAChCA,EAASz8E,OAAQ,EACVy8E,CACR,CAEA,YAAA+4B,CAAah5B,GACZ,OAAOA,EAASjiG,OAAO,OACxB,CAEA,eAAA04H,CAAgB13H,EAAc7M,EAAc+mI,GAAwB,GACnE,MAAMtC,EAASh5H,QACf,IAAIu7H,EAAU,GAEd,IAAK,MAAM5B,KAAQzjI,KAAKqsG,YAEvB,GAAsB,GAAlBg5B,EAAQz8H,QAAmD,GAApC66H,EAAKzP,QAAQ7uB,cAAcj6F,IAA+C,GAAjCu4H,EAAKplI,KAAK8mG,cAAc9mG,GAC3FgnI,EAAU5B,EAAKplI,KACX+mI,GACHtC,EAAOnhI,KAAK8hI,QAEP,GAAI4B,EAAQz8H,OAAQ,CAC1B,GAAyC,GAArC66H,EAAKzP,QAAQ7uB,cAAc,QAAmD,GAApCs+B,EAAKplI,KAAK8mG,cAAckgC,GAAe,CAChFD,GACHtC,EAAOnhI,KAAK8hI,GACb,KACD,CACCX,EAAOnhI,KAAK8hI,EAEd,CAGD,OAAOX,CACR,CAEA,SAAAz2B,GAMC,OAL6B,GAAzBrsG,KAAKshI,UAAU14H,QAClB5I,KAAK8Y,OAEN,EAAAgmE,WAAWwmD,uBAAuB,QAClCtlI,KAAKyhI,mBACEzhI,KAAKshI,SACb,CAEA,eAAA91B,CAAgBD,GACf,MAAM13F,EAAsB,IAAI/J,MAChC,IAAIy7H,GAAoB,EACxB,IAAK,MAAM9B,KAAQzjI,KAAKqsG,YACnBd,IACiB,UAAhBk4B,EAAKzP,QACRuR,GAAW,EACe,OAAhB9B,EAAKzP,UACfuR,GAAW,KAGRA,IAA6B,OAAhB9B,EAAKzP,SAAoC,OAAhByP,EAAKzP,UAAqByP,EAAKlkD,KAAOkkD,EAAKlkD,IAAIN,OAAOr2E,OAAS,GACzGiL,EAAMlS,KAAK8hI,EAAKlkD,KAGlB,OAAO1rE,CACR,CAEA,eAAA2xH,GACC,IAAIjmD,EAAM,EAAAT,WAAW6D,SAASzD,mBAG9B,OAFIK,EAAIN,OAAOr2E,SACd22E,EAAM3B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASzD,mBAAmBD,OAAO,EAAAH,WAAWsE,0BACnF7D,CACR,CAEA,mBAAAkmD,GACC,OAAO7nD,EAAOC,IAAI7Z,KAAK,EAAA8a,WAAWgC,uBAAuB,EAAAhC,WAAW8H,0BACrE,CAEA,gBAAA1H,GACC,OAAO,EAAAJ,WAAW6D,SAASzD,kBAC5B,CAEA,QAAAwmD,CAASlT,EAAuBtnH,GAC/B,MAAMkhG,EAAWpsG,KAAKkjI,SAAS1Q,EAAQtnH,KAAKsnH,EAAQn0H,MAChD+tG,EAASrmC,WACZqmC,EAAS4nB,QAAU9oH,EACnBkhG,EAASG,QAAS,EAClBvsG,KAAKwjF,WAEP,CAEA,UAAAmiD,CAAWnT,EAAuBjmB,GACjC,MAAMH,EAAWpsG,KAAKkjI,SAAS1Q,EAAQtnH,KAAKsnH,EAAQn0H,MACpD,GAAwB,UAApB+tG,EAAS4nB,QAAqB,CACjC,MAAM8O,EAAqB9iI,KAAK4iI,gBAAgBx2B,EAAS4nB,QAAQ5nB,EAAS/tG,MAC1E,IAAK,MAAMolI,KAAQX,EAClBW,EAAKl3B,OAASA,EAEfH,EAASG,OAASA,EAClB,IAAIkC,EAAOq0B,EAAOA,EAAOl6H,OAAO,GAChC6lG,EAAOzuG,KAAK4lI,SAASn3B,GACrBA,EAAKlC,OAASA,EACdvsG,KAAKwjF,UACN,MACS4oB,EAASrmC,WACjBqmC,EAASG,OAASA,EAClBvsG,KAAKwjF,WAEP,CAEA,QAAAA,GACCxjF,KAAKwhI,WAAa,GAClB,IAAK,MAAMp1B,KAAYpsG,KAAKshI,UACvBthI,KAAKwhI,WAAW54H,SACnB5I,KAAKwhI,WAAaxhI,KAAKwhI,WAAWt3H,OAAO,OAC1ClK,KAAKwhI,WAAaxhI,KAAKwhI,WAAWt3H,OAAOlK,KAAKqiI,WAAWj2B,IAG1DnxG,EAAG0Z,cAAc1X,EAAKuH,KAAKxE,KAAK89E,QAAQmB,OAAO,EAAAH,WAAWsE,wBAAwBpjF,KAAKwhI,WAAW,CAACjlG,KAAK,MACzG,CAEA,QAAAspG,CAASrT,EAAuBv7D,GAC/B,MAAMm1C,EAAWpsG,KAAKkjI,SAAS1Q,EAAQtnH,KAAMsnH,EAAQn0H,MACrD,IAAIusG,EAAMwB,EAASxB,IAEnB,GAAIwB,EAAS60B,aACZ,GAAIhqE,GAAaupE,EAAcsF,GAAI,CAClC,MAAM36H,EAAOnL,KAAKshI,UAAU12B,EAAI,GAChC5qG,KAAK+lI,UAAU35B,EAASjhG,EAEzB,KAAO,CACN,MAAMkF,EAAOrQ,KAAKshI,UAAU12B,EAAI,GAChC5qG,KAAK+lI,UAAU35B,EAAS/7F,EACzB,KAEM,CACN,MAAM21H,EAAUhmI,KAAKgmI,QAAQ55B,GACvB65B,EAAUjmI,KAAKimI,QAAQ75B,GAE7B,GAAIn1C,GAAaupE,EAAc0F,MAAQF,EAAQ7E,WAAY,CAC1D,MAAMgF,EAAYnmI,KAAK4iI,gBAAgBpQ,EAAQtnH,KAAKsnH,EAAQn0H,MAAK,GAC3D+nI,EAAYpmI,KAAK4iI,gBAAgBoD,EAAQhS,QAAQgS,EAAQ3nI,MAAK,GAC9DgoI,EAAiBF,EAAUv9H,OAASw9H,EAAUx9H,OAAS,EAE7D,IAAI8G,EAAI,EACR,MAAMmwG,EAAMsmB,EAAU,GAAGv7B,IACzB,IAAKl7F,EAAE,EAAGA,EAAEy2H,EAAUv9H,OAAQ8G,IAAK,CAClC,MAAM+zH,EAAOzjI,KAAKshI,UAAUzhB,GAC5B7/G,KAAKsmI,UAAU7C,EAAK4C,EACrB,CAED,MAAO,GAAIpvE,GAAaupE,EAAcsF,IAAMG,EAAQ9E,WAAY,CAC/D,MAAMgF,EAAYnmI,KAAK4iI,gBAAgBqD,EAAQjS,QAAQiS,EAAQ5nI,MAAK,GAC9D+nI,EAAYpmI,KAAK4iI,gBAAgBpQ,EAAQtnH,KAAKsnH,EAAQn0H,MAAK,GAC3DgoI,EAAiBF,EAAUv9H,OAASw9H,EAAUx9H,OAAS,EAE7D,IAAI8G,EAAI,EACR,MAAMmwG,EAAMsmB,EAAU,GAAGv7B,IACnB5lE,EAAMmhG,EAAUv9H,OACtB,IAAK8G,EAAE,EAAGA,EAAEs1B,EAAKt1B,IAAK,CACrB,MAAM+zH,EAAOzjI,KAAKshI,UAAUzhB,GAC5B7/G,KAAKsmI,UAAU7C,EAAK4C,EACrB,CAED,KAAO,CACN,IAAIvD,EAAS9iI,KAAK4iI,gBAAgBpQ,EAAQtnH,KAAKsnH,EAAQn0H,MAAK,GACxD44D,GAAaupE,EAAcsF,GAC9Bl7B,KAEAk4B,EAASA,EAAOj4F,UAChB+/D,GAAOk4B,EAAOl6H,QAEf,IAAIgsD,EAAQ50D,KAAKshI,UAAU12B,GAC3B,IAAK,MAAM64B,KAAQX,EAClB9iI,KAAK+lI,UAAUnxE,EAAM6uE,GACrBzjI,KAAKwjF,WACL5uB,EAAQ6uE,CAEV,CACD,CACAzjI,KAAKgrG,gBACN,CAEA,cAAAA,GACC,IAAI3sB,EAAU,EACVusB,EAAM,EACV,IAAK,MAAMwB,KAAYpsG,KAAKshI,UAC3Bl1B,EAASxB,IAAMA,IACXwB,EAAS60B,cACZ5iD,IACD+tB,EAAS/tB,QAAUA,EAGpBr+E,KAAKshI,SACN,CAEA,SAAAgF,CAAUl6B,EAAoBr4B,GAC7B,IAAIrkE,EAAI,EACJ+zH,EAAOr3B,EACP/7F,EAAO+7F,EACX,IAAK18F,EAAE08F,EAASxB,IAAKl7F,EAAEqkE,EAAMq4B,EAASxB,IAAKl7F,IAC1CW,EAAOrQ,KAAKshI,UAAU5xH,EAAE,GACxB1P,KAAK+lI,UAAUtC,EAAKpzH,GACpBozH,EAAOpzH,EAERrQ,KAAKshI,SACN,CAEA,OAAAiF,CAAQn6B,GACP,IAAIxB,EAAMwB,EAASxB,IACfz/F,EAAOnL,KAAKshI,YAAY12B,GAC5B,KAA4C,GAArCz/F,EAAK6oH,QAAQ7uB,cAAc,QACjCh6F,EAAOnL,KAAKshI,YAAY12B,GAEzB,OAAOz/F,CACR,CAEA,OAAA86H,CAAQ75B,GACP,IAAIxB,EAAMwB,EAASxB,IACfz/F,EAAOnL,KAAKshI,YAAY12B,GAC5B,KAAOz/F,EAAKy1H,UAAiD,GAArCz1H,EAAK6oH,QAAQ7uB,cAAc,QAClDh6F,EAAOnL,KAAKshI,YAAY12B,GAEzB,OAAOz/F,CACR,CAEA,QAAAy6H,CAASx5B,GACR,IAAIxB,EAAMwB,EAASxB,IAEnB,OADa5qG,KAAKshI,YAAY12B,EAE/B,CAEA,OAAAo7B,CAAQ55B,GACP,IAAIxB,EAAMwB,EAASxB,IACfv6F,EAAOrQ,KAAKshI,YAAY12B,GAC5B,KAAOv6F,EAAKuwH,UACXvwH,EAAOrQ,KAAKshI,YAAY12B,GAIzB,OAFyC,GAArCv6F,EAAK2jH,QAAQ7uB,cAAc,SAC9B90F,EAAOrQ,KAAKshI,YAAY12B,IAClBv6F,CACR,CAEA,SAAA01H,CAAUS,EAAmBC,GAC5B,MAAM/3D,EAAO,IAAIgyD,EACjB1gI,KAAK0mI,SAASh4D,EAAK83D,GACnBxmI,KAAK0mI,SAASF,EAAQC,GACtBzmI,KAAK0mI,SAASD,EAAQ/3D,GACtB1uE,KAAK2mI,aAAaH,EAAQC,EAAQ,EAAAlhD,YAAY6zC,MAC9Cp5H,KAAK2mI,aAAaH,EAAQC,EAAQ,EAAAlhD,YAAY+0C,IAC/C,CAEA,QAAAoM,CAASE,EAAkBC,GAC1BD,EAAO91F,KAAO+1F,EAAS/1F,KACvB81F,EAAOvoI,KAAOwoI,EAASxoI,KACvBuoI,EAAOr3F,UAAYs3F,EAASt3F,UAC5Bq3F,EAAO5S,QAAU6S,EAAS7S,QAC1B4S,EAAOhG,SAAWiG,EAASjG,SAC3BgG,EAAOrnD,IAAMsnD,EAAStnD,IACtBqnD,EAAOhzB,QAAUizB,EAASjzB,QAC1BgzB,EAAOr6B,OAASs6B,EAASt6B,MAC1B,CAEA,YAAAo6B,CAAaH,EAAmBC,EAAmBv7H,GAClD,MAAMqlH,EAAU,IAAI,EAAAp6B,SACd2wC,EAAUvW,EAAQptC,QAAQqjD,EAAQnoD,QAAQnzE,GAAM+zE,OAChD8nD,EAAWD,EAAU,QACrBE,EAAUzW,EAAQptC,QAAQsjD,EAAQpoD,QAAQnzE,GAAM+zE,OAChDgoD,EAAYhsI,EAAG8wE,WAAW+6D,GAC1BI,EAAYjsI,EAAG8wE,WAAWi7D,GAE5BC,GAAaC,GAChBjsI,EAAGy8F,aAAaovC,EAAQC,GACxB9rI,EAAGy8F,aAAasvC,EAAQF,GACxB7rI,EAAGy8F,aAAaqvC,EAASC,GACzB,EAAAjnD,SAAS8P,QAAQk3C,IACPE,EACV,EAAAlnD,SAAS3Z,OAAO0gE,EAAQE,GACdE,GACV,EAAAnnD,SAAS3Z,OAAO4gE,EAAQF,EAE1B,CAEA,QAAA5D,CAASh4H,EAAc7M,GAGtB,IAAK,MAAM+tG,KAAYpsG,KAAKshI,UAC3B,GAA4C,GAAxCp2H,EAAKi6F,cAAciH,EAAS4nB,UAAsD,GAArC31H,EAAK8mG,cAAciH,EAAS/tG,MAC5E,OAAO+tG,EAGT,OAAO,IAAIs0B,CACZ,CAEA,eAAAjO,CAAgBluH,GAEf,IAAK,MAAM6nG,KAAYpsG,KAAKshI,UAC3B,GAAgB,kBAAZ/8H,GAAgCA,GAAY6nG,EAAS7sB,IAAIN,OAC5D,OAAOmtB,EAGT,OAAO,IAAIs0B,CACZ,CAEA,YAAA1N,CAAal1C,EAAiB3xD,EAA+Bg7G,EAAe,GAAIC,GAAwB,GACvGpnI,KAAKyuF,WAAW3Q,GAChB99E,KAAK0uF,aAAa5Q,GAClB,IAAK,MAAM2lD,KAAQzjI,KAAK2uF,eACvB,GAAI80C,EAAKzP,QAAQ7uB,cAAc,UAC9B,GAAIs+B,EAAKl0F,WAAa63F,EACrBj7G,EAAMxqB,KAAK,CAACypC,MAAOq4F,EAAKzP,QAAS1yC,YAAa,uBACxC,CACN,MAAM/B,EAAMv/E,KAAKoiI,YAAYqB,GACzBxoI,EAAG8wE,WAAWwT,EAAIN,SACrB9yD,EAAMxqB,KAAK,CAACypC,MAAO+7F,EAASlqI,EAAKuW,SAAS+rE,EAAIN,QAASqC,YAAa/B,EAAIN,QAC1E,CAGH,CAEA,gBAAAooD,CAAiBvpD,EAAiB3xD,GACjCnsB,KAAKyuF,WAAW3Q,GAChB99E,KAAK0uF,aAAa5Q,GAClB,MAAM2Y,EAAM,IAAI,EAAAZ,QAChB,IAAK,MAAM4tC,KAAQzjI,KAAK2uF,eACH8H,EAAIskC,eAAe0I,EAAKlkD,KAC5B32E,QACfujB,EAAMxqB,KAAK,CAACypC,MAAOnuC,EAAKuW,SAASiwH,EAAKlkD,IAAIN,QAASqC,YAAamiD,EAAKlkD,IAAIN,QAG5E,CAEO,cAAAqoD,CAAe3/D,GACrB,MAAMx7C,EAAgC,GACtC,IAAI9tB,EAAOpB,EAAKuW,SAASm0D,GACzB,MAAM32B,EAAS3yC,EAAKrC,MAAM,KACtBg1C,EAAOpoC,OAAS,IACnBvK,EAAO2yC,EAAO,IAEf,IAAK,MAAMrtC,KAAQ,EAAAm7E,WAAW6D,SAASpF,QAAQoR,eACxChrF,EAAKtF,OAASA,GAASsF,EAAKtF,KAAKigB,WAAWjgB,IACjD8tB,EAAMxqB,KAAK,CAACypC,MAAOnuC,EAAKuW,SAAS7P,EAAK47E,IAAIN,QAASqC,YAAa39E,EAAK47E,IAAIN,SAE3E,OAAO9yD,CACR,CAEO,aAAAo7G,CAAcl0H,GACpB,MAAMm0H,EAAWxnI,KAAK2uF,eACtB,IAAK,MAAMhrF,KAAQ6jI,EAAU,CAC5B,MAAMhkI,EAAOG,EAAKtF,KAClB,GAAMmF,IAAS6P,IAAcrT,KAAKynI,eAAejkI,EAAK6P,IAAarT,KAAKynI,eAAep0H,EAAS7P,IAC/F,OAAO,CACT,CACA,OAAO,CACR,CAEA,cAAAikI,CAAeC,EAAmBC,GACjC,OAAOA,EAAU/+H,OAAS8+H,EAAU9+H,QAAU++H,EAAUrpH,WAAWopH,EAAY,IAChF,CAEO,cAAAhG,CAAen9H,GACrB,MAAMlG,EAAOpB,EAAKuW,SAASjP,GACb,EAAAu6E,WAAW8oD,kBAAkBh/H,OAC3C,IAAK,MAAMo7D,KAAQ,EAAA8a,WAAW8oD,kBAE7B,GADa3qI,EAAKuW,SAASwwD,KACd3lE,EACZ,OAAO2lE,EAGT,MAAO,EACR,EAz3BD,gB,2IC1FA,0BACA,0BACA,0BACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAcA,MAAa6jE,EAKZ,OAAA5gD,GACCjnF,KAAKknF,qBAAqBC,MAC3B,CAEA,WAAArnF,GAPQ,KAAAonF,qBAAoF,IAAItJ,EAAOj7E,aAC9F,KAAAykF,oBAA4EpnF,KAAKknF,qBAAqBxxD,KAO/G,CAEM,WAAA2xD,CAAYmrC,G,kDACjB,MAAMj1C,EAAU,EAAAuB,WAAW6D,SAASpF,QACpC,OAAIi1C,EACIxyH,KAAKqsG,UAAU9uB,EAAQqlD,gBAAgBpQ,EAAQtnH,KAAMsnH,EAAQn0H,OAGjE,EAAAygF,WAAWqB,sBAAwB,EAAArB,WAAW2I,gBACjDlK,EAAQzkE,OACD9Y,KAAKqsG,UAAU9uB,EAAQ8uB,cAGxB,EACR,E,CAEA,SAAAA,CAAUy2B,GACT,MAAM99F,EAAM89F,EAAOl6H,OACb4+H,EAA2B,IAAI19H,MACrC,GAAW,GAAPk7B,EACH,OAAOwiG,EAER,MAAMjqD,EAAU,EAAAuB,WAAW6D,SAASpF,QAC9BqH,EAAW,IAAI,EAAAuR,SACf6f,EAAWp4B,EAAOyK,yBAAyBC,KAC3Cw/C,EAAgBvqD,EAAQqjD,SAASkC,EAAO,IAExCiF,IAAkB,EAAAhoD,SAAS6F,SAAS,EAAA9G,WAAW6D,SAASzD,mBAAoB,CAAC,SAASt2E,OAC5Fg1E,EAAOuB,SAASC,eAAe,aAAc,kBAAmB2oD,GAEhE,IAAIC,EAAO,EACPp9B,EAAM,EACN1hB,EAAU,GAGd,IAAK,MAAMkjB,KAAY02B,EAAQ,CAC9B,IAAI13F,EAAQghE,EAAS/tB,QAAQtgD,WAAa,IAAMquE,EAAS/tG,KACzDusG,EAAMwB,EAASxB,IAEf,IAAIpiB,EAAS,GACb,MAAMo4C,EAAWrjD,EAAQqjD,SAASx0B,GAqBlC,IAnBI47B,EAAO,GAAKpH,KACfp4C,GAAkB,SACfw/C,EAAOhjG,EAAM,GAAK47F,KACrBp4C,GAAkB,UAGlBA,GADGo4C,EACe,SAEA,UAEnBoH,IAEIzqD,EAAQgqD,cAAcn7B,EAAS/tG,QAClCmqF,GAAkB,UAEf4jB,EAASu0B,QAAQ1hD,OAAOr2E,OAAS,IACpC4/E,GAAkB,WAGf4jB,EAASi1B,MAAMj1B,EAAS/tG,OAAUuiI,IAAakH,QAG5C,GAAI17B,EAAS+0B,WAAY,CAC/B34C,GAAkB,cAClBp9C,EAAQghE,EAAS/tG,KAEjB,MAAMykI,EAASvlD,EAAQqlD,gBAAgBx2B,EAAS4nB,QAAS5nB,EAAS/tG,MAClE,IAAI4pI,GAAY,EAChB,IAAK,MAAMxE,KAAQX,EAClB,GAAIW,EAAKl3B,OAAQ,CAChB07B,GAAY,EACZ,KACD,CAEIA,IACJ77B,EAASG,QAAS,GACnBi7B,EAAS7lI,KAAK,CACb49E,IAAK6sB,EAAS7sB,IAAKn0C,MAAOA,EAAO/sC,KAAM+tG,EAAS/tG,KAAM6qF,QAASkjB,EAAS7sB,IAAIN,OAAQgK,aAAcT,EAAQo4C,SAAUx0B,EAASw0B,SAC7H11H,KAAMkhG,EAAS4nB,QAAS31C,QAAS+tB,EAAS/tB,QAASsiD,QAASv0B,EAASu0B,QAAS/1B,IAAKA,EACnFxhB,iBAAkBxL,EAAOyK,yBAAyBE,UAAWgkB,OAAQH,EAASG,QAGhF,MAAWH,EAASi1B,MAAMj1B,EAAS/tG,QAGxB+tG,EAAS60B,cACnBz4C,GAAkB,YACd5D,EAASsjD,YAAY97B,EAAS7sB,IAAK6sB,EAAS/tB,QAAS,EAAAkH,YAAYC,QACpEgD,GAAkB,UACf5D,EAASsjD,YAAY97B,EAAS7sB,IAAK6sB,EAAS/tB,QAAS,EAAAkH,YAAY+0C,OACpE9xC,GAAkB,SAEnBU,EAAU0hB,EAAI7sE,WAAa,IAAMmrD,EAC7BkjB,EAAS0P,aACZ0rB,EAAS7lI,KAAK,CACb49E,IAAK6sB,EAAS7sB,IAAKn0C,MAAOA,EAAO/sC,KAAM+tG,EAAS/tG,KAAM6qF,QAASkjB,EAAS7sB,IAAIN,OAAQgK,aAAcT,EAClGo4C,SAAUx0B,EAASw0B,SAAU11H,KAAMkhG,EAAS4nB,QAAS31C,QAAS+tB,EAAS/tB,QAASsiD,QAASv0B,EAASu0B,QAAS/1B,IAAKA,EAChHxhB,iBAAkB4sB,EAAUzJ,OAAQH,EAASG,SAG9Ci7B,EAAS7lI,KAAK,CACb49E,IAAK6sB,EAAS7sB,IAAKn0C,MAAOA,EAAO/sC,KAAM+tG,EAAS/tG,KAAM6qF,QAAS,UAAWD,aAAc,UAAW23C,SAAUx0B,EAASw0B,SACtH11H,KAAM,UAAWmzE,QAAS+tB,EAAS/tB,QAASsiD,QAASv0B,EAASu0B,QAAS/1B,IAAKA,EAC5ExhB,iBAAkB4sB,EAAUzJ,OAAQH,EAASG,UAGrCH,EAAS80B,YACnB14C,GAAkB,aAClBp9C,EAAQghE,EAAS/tG,KAEjB6qF,EAAUkjB,EAAS7sB,IAAIN,OACnBmtB,EAAS0P,aACZ0rB,EAAS7lI,KAAK,CACb49E,IAAK6sB,EAAS7sB,IAAKn0C,MAAOA,EAAO/sC,KAAM+tG,EAAS/tG,KAAM6qF,QAASA,EAASD,aAAcT,EACtFo4C,SAAUx0B,EAASw0B,SAAU11H,KAAMkhG,EAAS4nB,QAAS31C,QAAS+tB,EAAS/tB,QAASsiD,QAASv0B,EAASu0B,QAAS/1B,IAAKA,EAChHxhB,iBAAkB4sB,EAAUzJ,OAAQH,EAASG,SAG9Ci7B,EAAS7lI,KAAK,CACb49E,IAAK6sB,EAAS7sB,IAAKn0C,MAAOA,EAAO/sC,KAAM+tG,EAAS/tG,KAAM6qF,QAAS,UAAWD,aAAc,UAAW23C,SAAUx0B,EAASw0B,SACtH11H,KAAM,UAAWmzE,QAAS+tB,EAAS/tB,QAASsiD,QAASv0B,EAASu0B,QAAS/1B,IAAKA,EAC5ExhB,iBAAkB4sB,EAAUzJ,OAAQH,EAASG,WAI/CrjB,EAAUkjB,EAAS7sB,IAAIN,OACnBmtB,EAAS78D,WACZnE,EAAQ,KAAOghE,EAAS4nB,QACxB9qC,EAAUkjB,EAAS40B,eACnBx4C,GAASA,iBACTA,EAASA,EAAOjzE,QAAQ,SAAU,MAElC61B,EAAQghE,EAAS/tG,KACjBmqF,GAAkB,QAGnBg/C,EAAS7lI,KAAK,CACb49E,IAAK6sB,EAAS7sB,IAAKn0C,MAAOA,EAAO/sC,KAAM+tG,EAAS/tG,KAAM6qF,QAASA,EAASD,aAAcT,EAAQo4C,SAAUx0B,EAASw0B,SACjH11H,KAAMkhG,EAAS4nB,QAAS31C,QAAS+tB,EAAS/tB,QAASsiD,QAASv0B,EAASu0B,QAAS/1B,IAAKA,EACnFxhB,iBAAkB4sB,EAAUzJ,OAAQH,EAASG,UAGhD,CAE4B,EAAAztB,WAAW6D,SAASzD,mBAAhD,MACMipD,EAAU,EAAArpD,WAAWspD,yBAC3B,GAAIL,GAAqC,GAA3B,EAAAt9C,aAAa0C,YAAuBg7C,EAAQv/H,OAAQ,CACjE,MAAM03E,EAAS,kBACf1C,EAAOznE,OAAOoqE,uBAAuB,YAAc4nD,EAAU,gCAAiC7nD,GAAQt3E,KAAK+tB,IACtGupD,IAAWvpD,IACd,EAAA0zD,aAAa0C,YAAa,EACtB,EAAA1C,aAAayF,QAChB,EAAApR,WAAWupD,gBAAgB,EAAA59C,aAAayF,UAG5C,CAEA,OAAOs3C,CACR,CAEA,WAAAv/C,CAAYuqC,GACX,IAAI9pC,EAAO8pC,EAAQjmB,OAAS,UAAY,iBACpCyJ,EAAWp4B,EAAOyK,yBAAyBC,KAmB/C,OAjBIkqC,EAAQmO,QAAQ1hD,OAAOr2E,OAAS,EACnC8/E,EAAO8pC,EAAQjmB,OAAS,cAAgB,qBAEO,GAArCimB,EAAQtnH,KAAKi6F,cAAc,OACrCzc,EAAO8pC,EAAQjmB,OAAS,WAAa,kBAEa,GAAxCimB,EAAQtnH,KAAKi6F,cAAc,WACrCzc,EAAO8pC,EAAQjmB,OAAS,aAAe,sBACvCyJ,EAAWp4B,EAAOyK,yBAAyBE,WAEO,GAAxCiqC,EAAQtnH,KAAKi6F,cAAc,WAA6D,GAA3CqtB,EAAQtnH,KAAKi6F,cAAc,cAA4D,GAAvCqtB,EAAQtnH,KAAKi6F,cAAc,SAClIzc,EAAO,aAEG8pC,EAAQtnH,KAAKi6F,cAAc,SACrCzc,EAAO,kBAGD,CACNokB,YAAa0lB,EAAQjzC,IACrB2J,QAASspC,EAAQtpC,QACjB99C,MAAOonF,EAAQpnF,MACf69C,aAAcupC,EAAQvpC,aACtBG,iBAAkB4sB,EAClBptB,SAAU,CACTC,MAAOjL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,QAASJ,IAC/EK,KAAMnL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQJ,KAE9EM,QAAS,CACRA,QAAS,wBACTtkF,UAAW,CAAC8tH,GACZnxC,MAAO,aAGV,CAEA,MAAAuG,CAAO4qC,GACNxyH,KAAKsoI,aAAa9V,EAAS,EAAAgO,cAAcsF,GAC1C,CAEA,QAAAn+C,CAAS6qC,GACRxyH,KAAKsoI,aAAa9V,EAAS,EAAAgO,cAAc0F,KAC1C,CAEA,YAAAoC,CAAa9V,EAAuBv7D,GACnC,GAAI,EAAA6nB,WAAWqB,qBAAsB,CACpC,MAAM5C,EAAU,EAAAuB,WAAW6D,SAASpF,QAC9B6uB,EAAW7uB,EAAQ2lD,SAAS1Q,EAAQtnH,KAAMsnH,EAAQn0H,MAClDusG,EAAMwB,EAASxB,IAEyB,GAA1C4nB,EAAQtnH,KAAKi6F,cAAc,aAA8D,GAA1CqtB,EAAQtnH,KAAKi6F,cAAc,aAA6D,GAAzCqtB,EAAQtnH,KAAKi6F,cAAc,WAC5HvnB,EAAOznE,OAAOypE,mBAAmB,6BAEhB,GAAPgrB,GAAY3zC,GAAa,EAAAupE,cAAcsF,GACjDloD,EAAOznE,OAAOypE,mBAAmB,2BAEhB,GAAPgrB,GAAY3zC,GAAa,EAAAupE,cAAcsF,GACjDloD,EAAOznE,OAAOypE,mBAAmB,uBAEiB,GAAxC4yC,EAAQtnH,KAAKi6F,cAAc,WAAkBluC,GAAa,EAAAupE,cAAc0F,MAAQ3oD,EAAQolD,SAASv2B,IAGjGxB,EAAM,GAAKrtB,EAAQmlD,aAAezrE,GAAa,EAAAupE,cAAc0F,KAFvEtoD,EAAOznE,OAAOypE,mBAAmB,0BAMjCrC,EAAQsoD,SAASrT,EAASv7D,GAC1BsmB,EAAQiG,WACR5F,EAAOuB,SAASC,eAAe,2BAEjC,CACD,CAEA,YAAA4L,CAAawnC,GACZ,GAAI,EAAA1zC,WAAWqB,qBAAsB,CACpC,MAAM5C,EAAU,EAAAuB,WAAW6D,SAASpF,QAC9BpxD,EAAgC,GACtCA,EAAMxqB,KAAK,CAAEypC,MAAO,gBAAiBk2C,YAAa,UAAYkxC,EAAQn0H,KAAO,+BAC7E8tB,EAAMxqB,KAAK,CAAEypC,MAAO,qBAAsBk2C,YAAa,UAAYkxC,EAAQn0H,KAAO,yCAClF8tB,EAAMxqB,KAAK,CAAEypC,MAAO,QAASk2C,YAAa,yBAE1C1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,gBAAiBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACxH,GAA6C,GAAzCkwC,EAAQtnH,KAAKi6F,cAAc,WAC9B5nB,EAAQsnD,oBAAoBrS,EAAQtnH,KAAMsnH,EAAQn0H,UAC5C,CACN,IAAKikF,GAAgC,SAAnBA,EAAUl3C,MAC3B,OACI,GAAuB,sBAAnBk3C,EAAUl3C,MAA+B,CACjD,MAAMznC,EAAO45E,EAAQ2lD,SAAS1Q,EAAQtnH,KAAMsnH,EAAQn0H,MACpDk/E,EAAQyN,aAAarnF,GAAM,EAC5B,MACC45E,EAAQqnD,WAAWpS,GACpBj1C,EAAQiG,UACT,CACA5F,EAAOuB,SAASC,eAAe,4BAEjC,CACD,CAEA,UAAAwlD,CAAWpS,GACV,GAAI,EAAA1zC,WAAWqB,qBAAsB,CACpC,MAAM5C,EAAU,EAAAuB,WAAW6D,SAASpF,QAC9BpxD,EAAgC,GACtC,IAAIkkE,EAAc,GAClBA,EAAcA,EAAYnmF,OAAO,WAAasoH,EAAQn0H,KAAM,UAC5D8tB,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,uBAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,cAAeK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACtH,GAA6C,GAAzCkwC,EAAQtnH,KAAKi6F,cAAc,WAC9B5nB,EAAQsnD,oBAAoBrS,EAAQtnH,KAAMsnH,EAAQn0H,UAC5C,CACN,IAAKikF,GAAgC,MAAnBA,EAAUl3C,MAC3B,OACDmyC,EAAQqnD,WAAWpS,GACnBxyH,KAAKinF,SACN,CACArJ,EAAOuB,SAASC,eAAe,4BAEjC,CACD,CAEA,gBAAAmpD,CAAiB/V,GAChBxyH,KAAKs/G,kBAAkBkT,EAAS,GAAI,gBACrC,CAEA,cAAAgW,CAAehW,GACdxyH,KAAKs/G,kBAAkBkT,EAAS,GAAI,cACrC,CAEA,gBAAAiW,CAAiBjW,GAChBxyH,KAAKs/G,kBAAkBkT,EAAS,GAAI,gBACrC,CAEA,YAAAkW,CAAalW,GACZxyH,KAAKs/G,kBAAkBkT,EAAS,aAAc,YAC/C,CAEA,oBAAAmW,CAAqBnW,GACpBxyH,KAAKs/G,kBAAkBkT,EAAS,aAAc,oBAC/C,CAEA,kBAAAoW,CAAmBpW,GAClBxyH,KAAKs/G,kBAAkBkT,EAAS,aAAc,uBAC/C,CAEA,iBAAAlT,CAAkBkT,EAAuB/zG,EAAapL,GACrD,MAAM9O,EAAWtH,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,EAAAhC,WAAW8H,0BAA2BnoE,EAAKpL,GAClG47E,EAAsBrR,EAAOC,IAAI7Z,KAAKz/D,GACtCg5E,EAAU,EAAAuB,WAAW6D,SAASpF,QAGpC,GAFgBA,EAAQomD,mBAAmBtwH,GAE9B,CACZ,MAAM0rE,EAAcnB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASzD,mBAAmBD,OAAQ5rE,IAC7F,EAAAyrE,WAAWgD,QAAQG,iBAAiBlD,EAAaA,EAAa,CAAC,EAAAmD,cAAcC,UAAW,EAAAC,cAAcmO,QACtG,EAAAzR,WAAWgD,QAAQG,iBAAiBgN,EAASlQ,EAAa,CAAC,EAAAmD,cAAcC,UAAW,EAAAC,cAAcU,MAClG,EAAAhE,WAAWgD,QAAQC,cACpB,MACCxE,EAAQutB,WAAW0nB,EAAQ5nB,IAAK3b,GAGjCrR,EAAOuB,SAASC,eAAe,0BAChC,CAEA,iBAAAypD,CAAkBrW,GACjB,GAAI,EAAA1zC,WAAWqB,qBAAsB,CACpC,MAAM5C,EAAU,EAAAuB,WAAW6D,SAASpF,QAC9B92E,EAAoC,CACzC6oF,eAAe,EACfC,UAAW,OACXC,WAAYjS,EAAQkoD,sBACpBr2C,gBAAgB,EAChBC,kBAAkB,EAClBytB,QAAS,CACR,aAAc,CAAC,MAAO,OACtB,YAAa,CAAC,OAGhBl/B,EAAOznE,OAAOs5E,eAAehpF,GAASuC,KAAKs5E,IAC1C,GAAKA,EAAL,CAGA,IAAK,MAAMqN,KAAUrN,EAAUz3C,UAAW,CACzC,MAAMokD,EAAsBrR,EAAOC,IAAI7Z,KAAK2rB,EAAO1Q,QACnD1B,EAAQutB,WAAW0nB,EAAQ5nB,IAAK3b,EACjC,CACArR,EAAOuB,SAASC,eAAe,0BAL/B,GAOF,CACD,CAEA,UAAA0rB,CAAW0nB,GACV,GAAI,EAAA1zC,WAAWqB,qBAAsB,CACpC,MACMh0D,EAAgC,IAD1B,IAAI,EAAAqxD,cAEZw1C,aAAa,EAAAl0C,WAAW6D,SAASpF,QAAQ2B,mBAAmBD,OAAQ9yD,EAAO,IAAI,GACnF,EAAAo2D,aAAaumD,mBAAmBtW,EAASrmG,EAC1C,CACD,CAEA,gBAAA48G,CAAiBvW,GAChB,GAAI,EAAA1zC,WAAWuB,qBAAsB,CACpC,MAAMl0D,EAAgC,EAAA2yD,WAAWw+C,oBAAmB,GACpE,EAAA/6C,aAAaumD,mBAAmBtW,EAASrmG,EAC1C,CACD,CAEA,UAAA68G,CAAWxW,GACVxyH,KAAKipI,UAAUzW,EAAS,EAAAiO,YAAYlf,KACrC,CAEA,UAAA2nB,CAAW1W,GACVxyH,KAAKipI,UAAUzW,EAAS,EAAAiO,YAAYnf,KACrC,CAEA,WAAA6nB,CAAY3W,GACXxyH,KAAKipI,UAAUzW,EAAS,EAAAiO,YAAY9e,MACrC,CAEA,SAAAsnB,CAAUzW,EAAuBtnH,GAChC,GAAI,EAAA4zE,WAAWqB,qBAAsB,CACpC,MAAM5C,EAAU,EAAAuB,WAAW6D,SAASpF,QACpC,IAAIsmD,EAAU,UACV34H,GAAQ,EAAAu1H,YAAYnf,KACvBuiB,EAAU,QACF34H,GAAQ,EAAAu1H,YAAYlf,OAC5BsiB,EAAU,QACXjmD,EAAOznE,OAAOspE,aAAa,CAAE4B,MAAO,cAAevmF,MAAO+oI,EAASnkD,OAAQ,wBAAyB12E,KAAK22E,IACpGA,IACC6yC,IAAYA,EAAQjzC,KAAOhC,EAAQ8uB,YAAYzjG,OAAS,GAC3D20E,EAAQqmD,cAAcpR,EAAS7yC,EAASz0E,GAExCqyE,EAAQymD,iBAAiBrkD,EAASz0E,GACnC0yE,EAAOuB,SAASC,eAAe,6BAGlC,CACD,CAEA,YAAAgqD,CAAa5W,EAAuB3hH,GAAkB,GACrD,GAAI,EAAAiuE,WAAWqB,qBAAsB,CACpC,MAAM5C,EAAU,EAAAuB,WAAW6D,SAASpF,QAM9B8D,EAAQxwE,EAAS,sCAAwC,qBAC/D+sE,EAAOznE,OAAOspE,aAAa,CAAE4B,MAAOA,EAAOvmF,MAAO,WAAY4kF,OAAQ,2BAA4B12E,KAAK22E,IAClGA,IACHpC,EAAQ0mD,oBAAoBzR,EAAS7yC,EAAS9uE,GAC9C+sE,EAAOuB,SAASC,eAAe,6BAGlC,CACD,CAKA,mBAAAiqD,CAAoB7W,EAAuB3hH,GAAkB,GAC5D,IAAK,EAAAiuE,WAAWqB,qBACf,OACD,MAAMmpD,EAAQ,EAAAxqD,WAAWgC,uBAAuB,UAChD,IAAK,EAAAf,SAAS5gE,MAAMmqH,GAEnB,YADA1rD,EAAOznE,OAAOypE,mBAAmB,mCAAqC0pD,GAGvE,MAAMC,EAAUvpI,KAAKwpI,kBAAkBF,GACvC,IAAKC,EAAQ3gI,OAEZ,YADAg1E,EAAOznE,OAAOypE,mBAAmB,8BAAgC0pD,GAGlE,MAAMn9G,EAAgCo9G,EAAQprI,IAAIugC,IAAK,CAAG0M,MAAO1M,EAAErgC,KAAMijF,YAAa5iD,EAAE+qG,QAClFpoD,EAAQxwE,EAAS,8CAAgD,6BACvE+sE,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAOA,EAAOM,YAAa,+CAAgD34E,KAAK+zG,IACpH,IAAKA,EACJ,OACD,MAAM1Z,EAAMpmG,EAAKuH,KAAK8kI,EAAOvsB,EAAI3xE,MAAQ,OACnCpsB,EAAO/hB,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASzD,mBAAmBD,OAAQ89B,EAAI3xE,MAAQ,OAClF,IACCnwC,EAAGy8F,aAAa2L,EAAKrkF,EACtB,CAAE,MAAOjX,GAER,YADA61E,EAAOznE,OAAOk7E,iBAAiB,iCAAmCtpF,EAAIyP,QAEvE,CAGA,EAAAsnE,WAAW6D,SAASpF,QAAQ0mD,oBAAoBzR,EAASzV,EAAI3xE,MAAOv6B,GACpE+sE,EAAOuB,SAASC,eAAe,4BAEjC,CAIA,iBAAAoqD,CAAkB/qH,GACjB,MAAMjf,EAA2C,GACjD,IAAK,MAAMuU,KAAK9Y,EAAGM,YAAYkjB,GAAM,CACpC,IAAK1K,EAAEwC,cAAc3W,SAAS,OAC7B,SACD,MAAMkgG,EAAM7kG,EAAG2Z,aAAa3X,EAAKuH,KAAKia,EAAK1K,GAAI,QAC/C,IAAI01H,EAAO,GACX,IAAK,MAAMjkE,KAAQs6B,EAAI9jG,MAAM,SAASwU,MAAM,EAAG,IAAK,CACnD,MAAMgG,EAAIgvD,EAAKhwD,MAAM,uBACrB,GAAIgB,EAAG,CAAEizH,EAAOjzH,EAAE,GAAGpF,OAAQ,KAAO,CACrC,CACA5R,EAAOmC,KAAK,CAAEtD,KAAMpB,EAAKyM,MAAMqK,GAAG1V,KAAMorI,KAAMA,GAC/C,CACA,OAAOjqI,EAAOuuB,KAAK,CAACtuB,EAAGC,IAAMD,EAAEpB,KAAK8mG,cAAczlG,EAAErB,MACrD,CAEA,gBAAAqrI,CAAiB9lD,GAChB,MAAM+J,EAAW,IAAI,EAAAlL,SACrBkL,EAASE,QAAQjK,GACjB,MAAM7e,EAAQ4oB,EAASjL,WACjBmlC,EAAU5qH,EAAKyM,MAAMk6E,EAAS3E,QAAQ5gF,KAC5C,GAAI0mE,EAAMn8D,QAAU,EAAG,CACLm8D,EAAM,GAAvB,MACM4kE,EAAU,WAAa9hB,EAC7B9iD,EAAM,GAAK4kE,EACXh8C,EAASqrC,eACV,CACD,CAEA,UAAAgK,CAAWxQ,GACV,GAAI,EAAA1zC,WAAWqB,qBAAsB,CACpC,MAAM5C,EAAU,EAAAuB,WAAW6D,SAASpF,QACpCK,EAAOznE,OAAOspE,aAAa,CAAE4B,MAAO,cAAevmF,MAAO03H,EAAQn0H,KAAMqhF,OAAQ,4BAA6B12E,KAAK22E,IACjH,MAAMuwB,EAAWsiB,EAAQjzC,IACzB,GAAII,EAAS,CACZ,MAAMmqB,EAAU7sG,EAAKuH,KAAKvH,EAAKuhB,QAAQg0G,EAAQjzC,IAAIN,QAASU,EAAU,QACtE,GAAI1kF,EAAG8wE,WAAW+9B,IAAYA,EAAQvzF,gBAAkB25F,EAASjxB,OAAO1oE,cACvEqnE,EAAOznE,OAAOypE,mBAAmB,kCAAoCD,GACrE/B,EAAOuB,SAASC,eAAe,sBAAuBozC,OAChD,CAEN,GADAj1C,EAAQylD,WAAWxQ,EAAS7yC,GACa,GAArC6yC,EAAQtnH,KAAKi6F,cAAc,QAAoD,GAArCqtB,EAAQtnH,KAAKi6F,cAAc,OAAa,CACrF,MAAMlW,EAAUrR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK+4E,EAAQ2B,mBAAmBD,OAAQU,EAAQz1E,OAAOjN,EAAKuqC,QAAQ0oE,EAASjxB,WAClH,EAAAc,SAAS3Z,OAAO8pC,EAASjxB,OAAQgQ,EAAQhQ,QACzCj/E,KAAK0pI,iBAAiBz6C,GACtBrR,EAAOznE,OAAO43E,iBAAiBkB,EAChC,CACArR,EAAOuB,SAASC,eAAe,0BAChC,CACD,GAEF,CACD,CAEA,YAAA8M,CAAasmC,GACZ,GAAI,EAAA1zC,WAAWqB,qBAAsB,CACpC,MAAM5C,EAAU,EAAAuB,WAAW6D,SAASpF,QACpCK,EAAOznE,OAAOspE,aAAa,CAAE4B,MAAO,gBAAiBvmF,MAAO03H,EAAQn0H,KAAMqhF,OAAQ,8BAA+B12E,KAAK22E,IACpG6yC,EAAQjzC,IACrBI,IACYpC,EAAQ2lD,SAAS,SAAUvjD,GAC/BthF,KAAKuK,QACfg1E,EAAOznE,OAAOypE,mBAAmB,oCAAsCD,GACvE/B,EAAOuB,SAASC,eAAe,sBAAuBozC,KAEtDj1C,EAAQylD,WAAWxQ,EAAS7yC,GAC5B/B,EAAOuB,SAASC,eAAe,8BAInC,CACD,CAEA,aAAA+jD,CAAc3Q,GACb,GAAI,EAAA1zC,WAAWqB,qBAAsB,CACpC,MAAM5C,EAAU,EAAAuB,WAAW6D,SAASpF,QAC9BqsD,EAAW5pI,KAAK6pI,mBAAmBrX,EAAQn0H,MACjDu/E,EAAOznE,OAAOspE,aAAa,CAAE4B,MAAO,iBAAkBvmF,MAAO8uI,EAAUlqD,OAAQ,kCAAmC12E,KAAK22E,IAClHA,IACHpC,EAAQ4lD,cAAc3Q,EAAS7yC,GAC/B/B,EAAOuB,SAASC,eAAe,6BAGlC,CACD,CAEA,kBAAAyqD,CAAmBnuF,GAClB,IAAIouF,EAASpuF,EACb,MAAM1K,EAAS0K,EAAK1/C,MAAM,YAM1B,OALIg1C,EAAOpoC,OAAS,EACnBkhI,EAAS94F,EAAO,IAAM70C,OAAO60C,EAAO,IAAM,GAAGjT,WAE7C+rG,GAAkB,IAEZA,CACR,CAEA,SAAAr+C,CAAU+mC,GACT,GAAI,EAAA1zC,WAAWqB,qBAAsB,CACpC,MAAM5C,EAAU,EAAAuB,WAAW6D,SAASpF,QACpCK,EAAOznE,OAAOspE,aAAa,CAAE4B,MAAO,oBAAqBvmF,MAAO,UAAW4kF,OAAQ,0BAA2B12E,KAAK22E,IAC9GA,IACgB,GAAf6yC,EAAQ5nB,KAA4B,UAAhB4nB,EAAQtnH,MAAqBsnH,GAAWA,EAAQjzC,IACvEhC,EAAQknD,gBAAgBjS,EAAS7yC,GAEjCpC,EAAQonD,mBAAmBhlD,GAC5B/B,EAAOuB,SAASC,eAAe,6BAGlC,CACD,CAEA,OAAA2qD,CAAQvX,GACP,EAAA1zC,WAAW6D,SAASpF,QAAQmoD,SAASlT,EAAS,OAC9C50C,EAAOuB,SAASC,eAAe,0BAChC,CAEA,OAAA4qD,CAAQxX,GACP,EAAA1zC,WAAW6D,SAASpF,QAAQmoD,SAASlT,EAAS,OAC9C50C,EAAOuB,SAASC,eAAe,0BAChC,CAEA,MAAA6qD,CAAOzX,GACN,EAAA1zC,WAAW6D,SAASpF,QAAQooD,WAAWnT,GAAS,GAChD50C,EAAOuB,SAASC,eAAe,0BAChC,CAEA,OAAA8qD,CAAQ1X,GACP,EAAA1zC,WAAW6D,SAASpF,QAAQooD,WAAWnT,GAAS,GAChD50C,EAAOuB,SAASC,eAAe,0BAChC,CAEA,QAAAgvB,CAASokB,GACRxyH,KAAKmqI,YAAY3X,EAAS,WAC3B,CAEA,OAAA4X,CAAQ5X,GACPxyH,KAAKmqI,YAAY3X,EAAS,UAC3B,CAEA,QAAA6X,CAAS7X,GACRxyH,KAAKmqI,YAAY3X,EAAS,WAC3B,CAEA,OAAA8X,CAAQ9X,GACPxyH,KAAKmqI,YAAY3X,EAAS,UAC3B,CAEA,MAAA+X,CAAO/X,GACNxyH,KAAKmqI,YAAY3X,EAAS,SAC3B,CAEA,WAAA2X,CAAY3X,EAAuB7yC,GAClC,EAAAb,WAAW6D,SAASpF,QAAQmoD,SAASlT,EAAS7yC,GAC9C/B,EAAOuB,SAASC,eAAe,0BAChC,EAjnBD,aAqnBA,MAAaorD,EAQZ,aAAOp9C,CAAOC,GAIb,OAHK,EAAA9K,eACJ,EAAAA,aAAe,IAAIioD,EAAan9C,IAE1B,EAAA9K,YACR,CAEA,WAAAziF,CAAYyuB,GAXJ,KAAAo/D,SAAW,IAAI,EAAAlL,SACf,KAAAmC,SAAW,IAAI,EAAAuR,SACf,KAAAmnB,SAAW,IAAI,EAAAC,SAUtB,MAAM5yB,EAAmB,IAAIk9C,EAE7B7nI,KAAKuiF,aAAe3E,EAAOznE,OAAOu0E,eAAe,eAAgB,CAAEC,qBACnE/M,EAAOuB,SAASyL,gBAAgB,wBAA0B4nC,GAAYxyH,KAAKyqI,SAASjY,IACpF50C,EAAOuB,SAASyL,gBAAgB,wBAA0B4nC,GAAYxyH,KAAK0qI,SAASlY,IACpF50C,EAAOuB,SAASyL,gBAAgB,mCAAqC4nC,GAAYxyH,KAAK2qI,oBAAoBnY,IAC1G50C,EAAOuB,SAASyL,gBAAgB,sBAAwB4nC,GAAYxyH,KAAK4qI,OAAOpY,IAChF50C,EAAOuB,SAASyL,gBAAgB,sBAAuB,IAAM5qF,KAAKkZ,UAClE0kE,EAAOuB,SAASyL,gBAAgB,yBAA0B,IAAM5qF,KAAK6qI,aACrEjtD,EAAOuB,SAASyL,gBAAgB,yBAA0B,IAAM5qF,KAAKk9H,aACrEt/C,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAK8qI,mBAEnEltD,EAAOuB,SAASyL,gBAAgB,sBAAwB4nC,GAAY7nC,EAAiB/C,OAAO4qC,IAC5F50C,EAAOuB,SAASyL,gBAAgB,wBAA0B4nC,GAAY7nC,EAAiBhD,SAAS6qC,IAChG50C,EAAOuB,SAASyL,gBAAgB,0BAA2B,IAAMD,EAAiB1D,WAClFrJ,EAAOuB,SAASyL,gBAAgB,sBAAwB4nC,GAAY7nC,EAAiBmgB,WAAW0nB,IAChG50C,EAAOuB,SAASyL,gBAAgB,4BAA8B4nC,GAAY7nC,EAAiBo+C,iBAAiBvW,IAC5G50C,EAAOuB,SAASyL,gBAAgB,yBAA2B4nC,GAAY7nC,EAAiBw+C,YAAY3W,IACpG50C,EAAOuB,SAASyL,gBAAgB,0BAA4B4nC,GAAY7nC,EAAiBq+C,WAAWxW,IACpG50C,EAAOuB,SAASyL,gBAAgB,0BAA4B4nC,GAAY7nC,EAAiBu+C,WAAW1W,IACpG50C,EAAOuB,SAASyL,gBAAgB,4BAA8B4nC,GAAY7nC,EAAiBy+C,aAAa5W,IACxG50C,EAAOuB,SAASyL,gBAAgB,0CAA4C4nC,GAAY7nC,EAAiBy+C,aAAa5W,GAAS,IAC/H50C,EAAOuB,SAASyL,gBAAgB,mCAAqC4nC,GAAY7nC,EAAiB0+C,oBAAoB7W,IACtH50C,EAAOuB,SAASyL,gBAAgB,iDAAmD4nC,GAAY7nC,EAAiB0+C,oBAAoB7W,GAAS,IAC7I50C,EAAOuB,SAASyL,gBAAgB,6BAA+B4nC,GAAY7nC,EAAiBk+C,kBAAkBrW,IAC9G50C,EAAOuB,SAASyL,gBAAgB,8BAAgC4nC,GAAY7nC,EAAiB69C,eAAehW,IAC5G50C,EAAOuB,SAASyL,gBAAgB,gCAAkC4nC,GAAY7nC,EAAiB89C,iBAAiBjW,IAChH50C,EAAOuB,SAASyL,gBAAgB,gCAAkC4nC,GAAY7nC,EAAiB49C,iBAAiB/V,IAChH50C,EAAOuB,SAASyL,gBAAgB,4BAA8B4nC,GAAY7nC,EAAiB+9C,aAAalW,IACxG50C,EAAOuB,SAASyL,gBAAgB,oCAAsC4nC,GAAY7nC,EAAiBg+C,qBAAqBnW,IACxH50C,EAAOuB,SAASyL,gBAAgB,kCAAoC4nC,GAAY7nC,EAAiBi+C,mBAAmBpW,IACpH50C,EAAOuB,SAASyL,gBAAgB,sBAAwB4nC,GAAY7nC,EAAiBi6C,WAAWpS,IAChG50C,EAAOuB,SAASyL,gBAAgB,4BAA8B4nC,GAAY7nC,EAAiBK,aAAawnC,IACxG50C,EAAOuB,SAASyL,gBAAgB,yBAA2B4nC,GAAY7nC,EAAiBw4C,cAAc3Q,IACtG50C,EAAOuB,SAASyL,gBAAgB,sBAAwB4nC,GAAY7nC,EAAiBq4C,WAAWxQ,IAChG50C,EAAOuB,SAASyL,gBAAgB,4BAA8B4nC,GAAY7nC,EAAiBuB,aAAasmC,IACxG50C,EAAOuB,SAASyL,gBAAgB,uBAAyB4nC,GAAY7nC,EAAiBo/C,QAAQvX,IAC9F50C,EAAOuB,SAASyL,gBAAgB,uBAAyB4nC,GAAY7nC,EAAiBq/C,QAAQxX,IAC9F50C,EAAOuB,SAASyL,gBAAgB,uBAAyB4nC,GAAY7nC,EAAiBu/C,QAAQ1X,IAC9F50C,EAAOuB,SAASyL,gBAAgB,sBAAwB4nC,GAAY7nC,EAAiBs/C,OAAOzX,IAC5F50C,EAAOuB,SAASyL,gBAAgB,yBAA2B4nC,GAAY7nC,EAAiBc,UAAU+mC,IAClG50C,EAAOuB,SAASyL,gBAAgB,wBAA0B4nC,GAAY7nC,EAAiByjB,SAASokB,IAChG50C,EAAOuB,SAASyL,gBAAgB,uBAAyB4nC,GAAY7nC,EAAiBy/C,QAAQ5X,IAC9F50C,EAAOuB,SAASyL,gBAAgB,wBAA0B4nC,GAAY7nC,EAAiB0/C,SAAS7X,IAChG50C,EAAOuB,SAASyL,gBAAgB,uBAAyB4nC,GAAY7nC,EAAiB2/C,QAAQ9X,IAC9F50C,EAAOuB,SAASyL,gBAAgB,sBAAwB4nC,GAAY7nC,EAAiB4/C,OAAO/X,IAC5F50C,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAKwrF,WACnE5N,EAAOuB,SAASyL,gBAAgB,4BAA8B4nC,GAAYxyH,KAAK+qI,aAAavY,IAC5F50C,EAAOuB,SAASyL,gBAAgB,4BAA8B4nC,GAAYxyH,KAAKk+G,aAAasU,IAC5F50C,EAAOuB,SAASyL,gBAAgB,sBAAuB,IAAM5qF,KAAKq+G,UAClEzgC,EAAOuB,SAASyL,gBAAgB,qBAAsB,IAAM5qF,KAAK0sF,SACjE9O,EAAOuB,SAASyL,gBAAgB,8BAAgC4nC,GAAYxyH,KAAKynI,eAAejV,IAChG50C,EAAOuB,SAASyL,gBAAgB,2BAA6B4nC,GAAYxyH,KAAKuzF,YAAYi/B,IAC1F50C,EAAOuB,SAASyL,gBAAgB,8BAAgC4nC,GAAYxyH,KAAKgrI,eAAexY,IAChG50C,EAAOuB,SAASyL,gBAAgB,2BAA4B,IAAM5qF,KAAKqrF,cACxE,CAEA,WAAAkI,CAAYi/B,GACX,GAAIA,EAAS,CACZ,MAAM/7B,EAAM,IAAI,EAAAZ,QACVmlC,EAAcvkC,EAAIskC,eAAevI,EAAQjzC,KAC/C,IAAKy7C,EAEJ,YADAp9C,EAAOznE,OAAOypE,mBAAmB,yBAKlC,IAAIzzD,EAAgC,IADxB,IAAI,EAAAqxD,cAEZ6pD,iBAAiB,EAAAvoD,WAAW6D,SAASpF,QAAQ2B,mBAAmBD,OAAQ9yD,GAC5EA,EAAQA,EAAM7nB,OAAOX,GAAQA,EAAK29E,cAAgBkxC,EAAQjzC,IAAIN,QAE9D,MAAMoC,EAAQ,2BACRM,EAAc,6BACpB/D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,QAAOK,aAAa,EAAMC,YAAaA,IAAe34E,KAAK44E,IAC/F,GAAKA,EAEL,IAAK,MAAMU,KAAaV,EACnBU,EAAUhB,cACbmV,EAAI5I,QAAQjQ,EAAOC,IAAI7Z,KAAKse,EAAUhB,cACtCmV,EAAIqiC,yBAAyBkC,KAIjC,CACD,CAEA,cAAAgQ,CAAexY,GACV,EAAA1zC,WAAWuB,sBACVmyC,EAAQmO,QAAQ1hD,OAAOr2E,OAAS,GACnCg1E,EAAOuB,SAASC,eAAe,cAAeozC,EAAQmO,QAASnO,EAAQjzC,IAG1E,CAEA,sBAAA0rD,CAAuBxsH,EAAapL,GACnC,MAAM8Y,EAAgC,GAgBtC,OAdA,SAAS++G,EAAkBC,GAC1B,MAAMt3H,EAAQ5Y,EAAGM,YAAY4vI,EAAY,CAAErtI,eAAe,IAC1D,IAAK,MAAMkmE,KAAQnwD,EAAO,CACzB,MAAM8zD,EAAW1qE,EAAKuH,KAAK2mI,EAAYnnE,EAAK3lE,MACtC+5B,EAASn7B,EAAKyM,MAAMi+D,GACtB3D,EAAKvjE,cACRyqI,EAAkBvjE,GACRvvC,EAAO/5B,MAAQgV,GACzB8Y,EAAMxqB,KAAK,CAAEypC,MAAO/3B,EAAUiuE,YAAa3Z,GAE7C,CACD,CAEAujE,CAAkBzsH,GACX0N,CACR,CAEA,cAAAs7G,CAAejV,GACd,GAAI,EAAA1zC,WAAWuB,qBAAsB,CACpC,MAAMl0D,EAAgC,EAAA2yD,WAAW6D,SAASpF,QAAQ+pD,eAAe9U,EAAQjzC,IAAIN,QACzE,GAAhB9yD,EAAMvjB,QAAeujB,EAAM,GAAGm1D,YACjC1D,EAAOuB,SAASC,eAAe,cAAeozC,EAAQjzC,IAAK3B,EAAOC,IAAI7Z,KAAK73C,EAAM,GAAGm1D,cAEpF1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,yBAA0BK,aAAa,EAAOC,YAAa,kCAAmC34E,KAAKs5E,MACzIA,IAAcA,EAAUhB,cAE7B1D,EAAOuB,SAASC,eAAe,cAAeozC,EAAQjzC,IAAK3B,EAAOC,IAAI7Z,KAAKse,EAAUhB,cACrF1D,EAAOuB,SAASC,eAAe,2BACxB,IAGV,CACD,CAEA,mBAAAoD,CAAoB4oD,EAAmBppD,EAAemE,GACrD,MAAMtF,EAAU5jF,EAAKuH,KAAK4mI,EAAWjlD,EAAY,EAAArH,WAAW8H,0BACtDjB,EAAS3lF,KAAKqrI,qBAAqBllD,GAGzC,EAAArH,WAAWgD,QAAQG,iBAAiBrE,EAAOC,IAAI7Z,KAAK6c,GAAUjD,EAAOC,IAAI7Z,KAAKge,GAAQ,CAAC,EAAAE,cAAcC,UAAW,EAAAC,cAAc2oB,UAAWplB,EAAQ,UAEjJ,MAAM2lD,EAAW,IAAI,EAAA9tD,aACrB8tD,EAAS58C,aAAa7N,GAEtB,IAAK,MAAM2iD,KAAM8H,EAAS38C,eACzB,GAAI60C,EAAGjkD,IAAItiF,KAAK2L,OAAS,GAAgB,OAAX46H,EAAGnlI,KAAe,CAC/C,MAAMmV,EAAWvW,EAAKuW,SAASgwH,EAAGjkD,IAAItiF,MACtC,IAAIsuI,EAAQ3tD,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKw9E,EAAO,EAAAlD,WAAW8H,yBAA0BpzE,IAClF,MAAMg4H,EAAU5tD,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKq8E,EAASrtE,IAC/C,EAAAusE,SAASmnB,WAAWskC,EAAQvsD,OAAQssD,EAAMtsD,UAC7CssD,EAAQ3tD,EAAOC,IAAI7Z,KAAK,EAAAue,aAAakpD,kBAAkBxuI,EAAKuH,KAAKw9E,EAAO,EAAAlD,WAAW8H,yBAA0BpzE,GAAWmyE,IACxH,EAAA7G,WAAWgD,QAAQG,iBAAiBupD,EAASD,EAAO,CAAC,EAAArpD,cAAcC,UAAW,EAAAC,cAAcU,MAC5F,EAAAhE,WAAWgD,QAAQG,iBAAiBupD,EAASD,EAAO,CAAC,EAAArpD,cAAcC,UAAW,EAAAC,cAAcyoB,QAASr3F,GAEvG,CAGD,EAAAsrE,WAAWgD,QAAQG,iBAAiBrE,EAAOC,IAAI7Z,KAAK,IAAK4Z,EAAOC,IAAI7Z,KAAK,IAAK,CAAC,EAAAke,cAAcC,UAAW,EAAAC,cAAc2oB,UAAWplB,EAAQ,OAGzI,MAAM6lD,EAAU,EAAA1sD,WAAW6D,SAAS0D,aAAazI,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK4mI,EAAWjlD,IAAc,EAAA7I,UAAUkJ,IACxG+kD,EAAQ,EAAAzsD,WAAW6D,SAAS0D,aAAazI,EAAOC,IAAI7Z,KAAKge,GAAQ,EAAA1E,UAAUkJ,IAC3E4H,EAAU,EAAArO,SAAS6F,SAAS4lD,EAAS,CAAC,QAAS,SACrD,IAAK,MAAME,KAAUt9C,EAAS,CAC7B,MAAMu9C,EAAO1uI,EAAKuH,KAAK+mI,EAAMtsD,OAAQhiF,EAAKuW,SAASk4H,EAAOzsD,SACtD,EAAAc,SAASmnB,WAAWwkC,EAAOzsD,OAAQ0sD,IACtC,EAAA7sD,WAAWgD,QAAQG,iBAAiBypD,EAAQ9tD,EAAOC,IAAI7Z,KAAK,EAAAue,aAAakpD,kBAAkBE,EAAMhmD,IAAU,CAAC,EAAAzD,cAAcsE,IAAK,EAAApE,cAAcU,KAE/I,CACD,CAEA,oBAAAuoD,CAAqBhtI,EAAcutI,EAAkB,GACpD,IAAIC,EAAS,GACb,MAAM76F,EAAS3yC,EAAKrC,MAAM,KAC1B,IAAK,MAAM4wC,KAASoE,EAAQ,CAC3B,IAAI4uB,EAAMhzB,EAAMxxB,UAAU,EAAGtL,KAAKC,IAAI68B,EAAMhkC,OAAQgjI,IACpDhsE,EAAMA,EAAIhzC,OAAO,GAAGrR,cAAgBqkD,EAAIxkD,UAAU,GAAG7E,cACrDs1H,EAASA,EAAO3hI,OAAO01D,EACxB,CACA,OAAOisE,CACR,CAEA,MAAAxtB,GACmC,GAA9B,EAAAv/B,WAAWgB,SAASl3E,OAIxB,EAAAk2E,WAAW35E,IAAI2sH,SAAS9oH,KAAK+oH,IAC5B,IAAKA,EACJ,OACD,MACM5lG,EAAgC,IAD1B,IAAI,EAAAqxD,cAEZw1C,aAAa,EAAAl0C,WAAW6D,SAASzD,mBAAmBD,OAAQ9yD,EAAO,IAAI,GAC3EyxD,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,cAAeK,aAAa,EAAMC,YAAa,gCAAiC34E,KAAK44E,IAChI,GAAKA,EAAL,CAGC,IAAK,MAAMU,KAAaV,EACnBU,EAAUhB,aACb,EAAAxC,WAAW35E,IAAI+sH,WAAWt0C,EAAOC,IAAI7Z,KAAKse,EAAUhB,cAEtD1D,EAAOznE,OAAO43E,iBAAiB,EAAAjP,WAAW35E,IAAIgtH,SAC/C,MAlBDv0C,EAAOznE,OAAOypE,mBAAmB,sDAqBnC,CAEQ,YAAAs+B,CAAasU,GAChBA,IACH,EAAA1zC,WAAW6D,SAASpF,QAAQooD,WAAWnT,GAAUA,EAAQjmB,QACzD3uB,EAAOuB,SAASC,eAAe,2BAEjC,CAEA,YAAA2rD,CAAavY,GACZ,GAAI,EAAA1zC,WAAWuB,qBAAsB,CACvB,EAAAN,SAASiB,eAAe,EAAAlC,WAAWuB,sBAAhD,MACMl0D,EAAgC,GAEhCywG,EAAW,EAAA78C,SAAS6F,SAAS,EAAA9G,WAAW6D,SAASzD,mBAAoB,CAAC,OAAQ,SACpF,IAAK,MAAM29C,KAAWD,EAC8D,GAA/E,EAAA99C,WAAW6D,SAASpF,QAAQu/C,SAAS7/H,EAAKuW,SAASqpH,EAAQ59C,OAAQ,UACS,GAA/E,EAAAH,WAAW6D,SAASpF,QAAQu/C,SAAS7/H,EAAKuW,SAASqpH,EAAQ59C,OAAQ,UACnE9yD,EAAMxqB,KAAK,CAAEypC,MAAOnuC,EAAKuW,SAASqpH,EAAQ59C,QAASqC,YAAau7C,EAAQ59C,SAI1E,GAAoB,GAAhB9yD,EAAMvjB,OAET,YADAg1E,EAAOznE,OAAOypE,mBAAmB,qCAIlC5/E,KAAK8oI,mBAAmBtW,EAASrmG,GAAO,EACzC,CACD,CAEA,kBAAA28G,CAAmBtW,EAAuBrmG,EAA+B2/G,GAAsB,GAC9F,GAAI,EAAAhtD,WAAWuB,qBAAsB,CACpC,MAAMgB,EAAQ,mBACRM,EAAc,6BAEpB/D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,QAAOK,aAAa,EAAMC,YAAaA,IAAe34E,KAAK44E,I,MAC/F,IAAKA,EACJ,OACD,IAAI8jB,GAAQ,EACR7kB,EAAU,GAEbA,GADiD,IAA1B,QAApB,EAAA2xC,EAAQvpC,oBAAY,eAAErjF,QAAQ,aACvB,EAAAk5E,WAAW6D,SAASzD,mBAAmBD,OAEvChiF,EAAKuhB,QAAQg0G,EAAQjzC,IAAIN,QAEpC,MAAM1B,EAAU,EAAAuB,WAAW6D,SAASpF,QACpC,IAAK,MAAM+E,KAAaV,EAAW/2C,UAClC,GAAIy3C,EAAUhB,YAAa,CAC1B,MAAM/B,EAAM3B,EAAOC,IAAI7Z,KAAKse,EAAUhB,aACtC,GAAI,EAAAvB,SAAS5gE,MAAMmjE,EAAUhB,aAAc,CAC1C,MAAMztE,EAAQ,EAAAksE,SAAS6F,SAASrG,EAAK,CAAC,OAAQ,SAC9C,IAAK,MAAMvb,KAAQnwD,EAAO,CACzB,MAAM03H,EAAQ3tD,EAAOC,IAAI7Z,KAAKhkE,KAAK+rI,aAAa9uI,EAAKuH,KAAKq8E,EAAS5jF,EAAKuW,SAASwwD,EAAKib,SAAU6sD,IAC1FN,EAAU5tD,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK+6E,EAAIN,OAAQhiF,EAAKuW,SAASwwD,EAAKib,UACzE1B,EAAQutB,WAAW0nB,EAAQ5nB,IAAK2gC,GAChC,EAAAzsD,WAAWgD,QAAQG,iBAAiBupD,EAASD,EAAO,CAAC,EAAArpD,cAAcC,UAAW,EAAAC,cAAcU,MAC5F4iB,GAAQ,CACT,CACD,KAAO,CACN,MAAM6lC,EAAQ3tD,EAAOC,IAAI7Z,KAAKhkE,KAAK+rI,aAAa9uI,EAAKuH,KAAKq8E,EAAS5jF,EAAKuW,SAAS+rE,EAAIN,SAAU6sD,IAC/FvuD,EAAQutB,WAAW0nB,EAAQ5nB,IAAK2gC,GAChC,EAAAzsD,WAAWgD,QAAQG,iBAAiB1C,EAAKgsD,EAAO,CAAC,EAAArpD,cAAcC,UAAW,EAAAC,cAAcU,MACxF4iB,GAAQ,CACT,CACD,CAGGA,GACH,EAAA5mB,WAAWgD,QAAQC,gBAEtB,CACD,CAEA,iBAAA0pD,CAAkB9jE,EAAkBwe,GACnC,IAAI6lD,EAAcrkE,EAClB,GAAI1sE,EAAG8wE,WAAWpE,IAAa,EAAAmX,WAAW6D,SAASpF,QAAQomD,mBAAmBh8D,GAAW,CACxF,MAAMskE,EAAWtkE,EAAS8N,YAAY,KAErCu2D,GADiB,IAAdC,EACWtkE,EAAW,IAAMwe,EAEjBxe,EAASvsD,UAAU,EAAG6wH,GAAY,IAAM9lD,EAAaxe,EAASvsD,UAAU6wH,EAExF,CACA,OAAOD,CACR,CAEA,YAAAD,CAAapkE,EAAkBmkE,GAAsB,GACpD,IAAIE,EAAcrkE,EAClB,GAAI1sE,EAAG8wE,WAAWpE,KAAcmkE,EAAY,CAC3C,MAAMz4H,EAAWpW,EAAKuW,SAASm0D,GACzBhvC,EAAQ,gCACRnjB,EAAQmyD,EAASnyD,MAAMmjB,GAC7B,IAAIuzC,EAAc,GACdggE,EAAY,EACZC,EAAQ94H,EAASrX,MAAM,KAAK,GAChC,MAAMi7F,EAAM5jF,EAASrX,MAAM,KAAK,GAEhC,GAAIwZ,EAAO,CACV22H,EAAQ32H,EAAM,GACd,MAAMrE,EAAMqE,EAAM,GAClB02H,EAAY/vI,OAAOgV,GAAO,CAC3B,CAGA,IAFA+6D,EAAc,GAAGigE,IAAQD,KAAaj1C,IACtC+0C,EAAc/uI,EAAKuH,KAAKvH,EAAKuhB,QAAQmpD,GAAWuE,GACzCjxE,EAAG8wE,WAAWigE,IACpBE,IACAhgE,EAAc,GAAGigE,IAAQD,KAAaj1C,IACtC+0C,EAAc/uI,EAAKuH,KAAKvH,EAAKuhB,QAAQmpD,GAAWuE,EAElD,CACA,OAAO8/D,CACR,CAEA,KAAAt/C,GAEC9O,EAAOuB,SAASC,eAAe,cAAexB,EAAOC,IAAIn0E,MAD7C,sCAEb,CAEA,OAAA8hF,GACC,MAAM/sE,EAAM,EAAAqgE,WAAW6D,SAASzD,mBAChC,EAAAJ,WAAWgR,gBAAgBrxE,EAAIwgE,OAChC,CAEA,QAAA2U,CAASw4C,GACR,MAAMhgC,EAAqBpsG,KAAKqsI,iBAAiBD,GACjDpsI,KAAKs5H,aAAaltB,EAAS/tB,QAC5B,CAEA,gBAAAguD,CAAiBD,GAChB,MAAM7uD,EAAU,EAAAuB,WAAW6D,SAASpF,QACpC,IAAI+uD,EAAUrvI,EAAKuW,SAAS44H,EAAa,QACzCE,EAAUrvI,EAAKuW,SAAS84H,EAAS,QACjC,MAAMlgC,EAAqB7uB,EAAQ2lD,SAAS,MAAOoJ,GAMnD,OALIlgC,EAAS/tB,QACZ,EAAAga,QAAQC,WAAWg0C,EAAU,KAAOlgC,EAAS/tB,QAAQtgD,WAAY,EAAAwmD,YAAY2F,SAAUkiB,EAAS7sB,KAEhG,EAAA8Y,QAAQC,WAAWg0C,EAAU,6CAA8C,EAAA/nD,YAAY2F,SAAUtM,EAAOC,IAAI7Z,KAAKooE,IAE3GhgC,CACR,CAEA,MAAAkjB,CAAO8c,GACqBpsI,KAAKqsI,iBAAiBD,GAKjDxuD,EAAOuB,SAASC,eAAe,qBAChC,CAEA,cAAAm5C,CAAe6T,GACd,MAAMhgC,EAAqBpsG,KAAKqsI,iBAAiBD,GAG3C7sD,EAFU,EAAAT,WAAW6D,SAASpF,QACXgpD,QAAQn6B,GACZ7sB,IAEfkX,EAAM,IAAI,EAAAZ,QACVmlC,EAAcvkC,EAAIskC,eAAex7C,GAEnCy7C,EAAYpyH,SACf6tF,EAAI5I,QAAQue,EAAS7sB,KACrBkX,EAAI8hC,eAAeyC,GAAa,GAElC,CAEA,eAAA8P,GACC,GAAI,EAAAhsD,WAAWqB,qBAAsB,CACpC,MAAMh0D,EAAgC,GACtCA,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa,uCACxCn1D,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,mBAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,oBAAqBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACvHA,GAAgC,MAAnBA,EAAUl3C,OAE5B,EAAA0zC,WAAWupD,gBAAgB,EAAAvpD,WAAW6D,SAASqC,yBAEjD,CACD,CAEO,SAAAk4C,GACN,MAAMz+G,EAAM,EAAAqgE,WAAW6D,SAASuC,qBAC1Bg4C,EAAYjgI,EAAKuH,KAAKia,EAAIwgE,OAAQ,cACpChkF,EAAG8wE,WAAWmxD,IAEjBt/C,EAAOznE,OAAO43E,iBAAiBnQ,EAAOC,IAAI7Z,KAAKk5D,IAC/Cr0H,WAAW,IAAM,EAAAi2E,WAAWmO,mBAAoB,IAEhDrP,EAAOznE,OAAOoqE,uBAAuB,sBAEvC,CAEO,MAAArnE,CAAOwiC,EAAe,GAAIkwD,GAAwB,GACpD,EAAA9sB,WAAWqB,uBACK,GAAfzkC,EAAK9yC,OACRg1E,EAAOznE,OAAOspE,aAAa,CAAE4B,MAAO,iBAAkBvmF,MAAO,aAAc4kF,OAAQ,yBAA0B12E,KAAKiqF,KAC7GA,aAAU,EAAVA,EAAYrqF,SACf5I,KAAKusI,SAASt5C,EAAY2Y,KAG5B5rG,KAAKusI,SAAS7wF,EAAMkwD,GAGvB,CAEO,SAAAi/B,CAAUnvF,EAAe,GAAIkwD,GAAwB,GACvD,EAAA9sB,WAAWqB,uBACK,GAAfzkC,EAAK9yC,OACRg1E,EAAOznE,OAAOspE,aAAa,CAAE4B,MAAO,2BAA4BvmF,MAAO,aAAc4kF,OAAQ,0CAA2C12E,KAAKiqF,KACxIA,aAAU,EAAVA,EAAYrqF,SACf5I,KAAKusI,SAASt5C,EAAY2Y,GAAc,KAG1C5rG,KAAKusI,SAAS7wF,EAAMkwD,GAAc,GAGrC,CAEQ,QAAA2gC,CAAS7wF,EAAckwD,GAAwB,EAAOL,GAAmB,GAChF,GAAI7vD,EAAK9yC,OAAQ,CAChB,GAAIgjG,EAAc,CACjB5rG,KAAKs9G,SAAS3R,YAAY,EAAA7sB,WAAW6D,SAASzD,mBAAoBxjC,EAAM,CAAC,OAAQ,QAAS,GAAG,GAC7F,MAAMlV,EAAUxmC,KAAKs9G,SAASlS,aAExBohC,EAA2B,GACjC,IAAK,MAAMh3H,KAASgxB,EACfxmC,KAAKysI,kBAAkB/wF,EAAMlmC,EAAMgwD,OACtCgnE,EAAa7qI,KAAK6T,GAKhBg3H,EAAa5jI,QAAU,IAC1B,EAAAokG,SAAS7gB,SAASqgD,EAAa,IAC/B,EAAAx/B,SAASO,UAAU7xD,EAAM8wF,GAE3B,MAECxsI,KAAKs9G,SAASjS,oBAAoB3vD,EAAM6vD,GACxC,EAAAyB,SAASO,UAAU7xD,EAAM17C,KAAKs9G,SAASlS,cAGxC,EAAA4B,SAASM,cAAc5xD,GACvBkiC,EAAOuB,SAASC,eAAe,wBAC/BxB,EAAOuB,SAASC,eAAe,sBAChC,CACD,CAEA,iBAAAqtD,CAAkBv8B,EAAkB1qC,GACnC,MAAMx0B,EAASw0B,EAAKxpE,MAAM,KAC1B,OAAOg1C,EAAOpoC,OAAS,GAA0C,GAArCooC,EAAO,GAAGm0D,cAAc+K,EACrD,CAEQ,UAAAw8B,CAAWla,GAClB,OAA6C,GAAzCA,EAAQtnH,KAAKi6F,cAAc,aAC9BvnB,EAAOznE,OAAOoqE,uBAAuB,oBAAsBiyC,EAAQn0H,OAC5D,EAGT,CAMQ,YAAAsuI,CAAana,GACpB,MAAuB,UAAhBA,EAAQtnH,MAAoC,aAAhBsnH,EAAQtnH,MAAuC,SAAhBsnH,EAAQtnH,IAC3E,CAEQ,QAAAu/H,CAASjY,GAChB,GAAIxyH,KAAK0sI,WAAWla,IAAYA,EAAQtnH,KAAKi6F,cAAc,WAAaqtB,EAAQtnH,KAAKi6F,cAAc,QAAS,CAK3G,GAHuB,GAAnBqtB,EAAQn0C,SAAiBr+E,KAAK2sI,aAAana,KAC9CA,EAAQjzC,IAAM,EAAAT,WAAW6D,SAASpF,QAAQioD,mBAC3CxlI,KAAK2tF,SAASE,QAAQ2kC,EAAQjzC,KACP,GAAnBizC,EAAQn0C,UAAiBr+E,KAAK2tF,SAASi/C,WAAW,EAAArnD,YAAY4D,KAEjE,YADAvL,EAAOznE,OAAOypE,mBAAmB,gBAGlC,EAAAd,WAAW6D,SAASgB,gBAAgB6uC,EAAQjzC,IAAKizC,EAAQn0C,SAEzDT,EAAOznE,OAAO43E,iBAAiBykC,EAAQjzC,KACvC12E,WAAW,IAAM,EAAAi2E,WAAWmO,mBAAoB,EACjD,CACD,CAEQ,QAAAy9C,CAASlY,GAChB,GAAIxyH,KAAK0sI,WAAWla,GACnB,GAAuB,GAAnBA,EAAQn0C,SAAiBr+E,KAAK2sI,aAAana,GAExC,CAEN,GADAxyH,KAAK2tF,SAASk/C,YAAYra,EAAQjzC,IAAIN,SACjCj/E,KAAK2tF,SAASi/C,WAAW,EAAArnD,YAAY4D,KAEzC,YADAvL,EAAOznE,OAAOypE,mBAAmB,gBAG9B3kF,EAAG8wE,WAAW,EAAA+S,WAAW6D,SAASuC,qBAAqBjG,SAC1Dj/E,KAAKs5H,aAAa9G,EAAQn0C,QAE5B,MAVCr+E,KAAKs5H,aAAa9G,EAAQn0C,QAY7B,CAEO,oBAAAk7C,CAAqB6S,GAC3B,MAAMhgC,EAAqBpsG,KAAKqsI,iBAAiBD,GACjDpsI,KAAKw5H,kBAAkBptB,EAAS/tB,QACjC,CAEO,YAAAi7C,CAAaj7C,GACnB,MAAMyuD,EAAU9sI,KAAK4kF,SAASzB,QAAQ9E,EAAS,EAAAkH,YAAYC,MACvDvqF,EAAG8wE,WAAW+gE,EAAQ7tD,SAIzBrB,EAAOuB,SAASC,eACf,cACAxB,EAAOC,IAAI7Z,KAAK8oE,EAAQ7tD,SAEzBp2E,WAAW,IAAM,EAAAi2E,WAAWmO,mBAAoB,IAGhDrP,EAAOznE,OAAOypE,mBAAmB,gBAAkB3iF,EAAKuW,SAASs5H,EAAQ7tD,QAC3E,CAEO,iBAAAu6C,CAAkBn7C,GACxB,MAAM0uD,EAAW/sI,KAAK4kF,SAASooD,UAAU3uD,GACrCpjF,EAAG8wE,WAAWghE,EAAS9tD,SAE1BrB,EAAOznE,OAAO43E,iBAAiBg/C,GAC/BlkI,WAAW,IAAM,EAAAi2E,WAAWmO,mBAAoB,IAEhDrP,EAAOznE,OAAOypE,mBAAmB,sCACnC,CAEQ,mBAAA+qD,CAAoBnY,GAC3B,GAAIxyH,KAAK0sI,WAAWla,GACnB,GAAuB,GAAnBA,EAAQn0C,SAAiBr+E,KAAK2sI,aAAana,GAExC,CAEN,GADAxyH,KAAK2tF,SAASE,QAAQ2kC,EAAQjzC,MACzBv/E,KAAK2tF,SAASi/C,WAAW,EAAArnD,YAAY4D,KAEzC,YADAvL,EAAOznE,OAAOypE,mBAAmB,gBAG9B3kF,EAAG8wE,WAAW,EAAA+S,WAAW6D,SAASuC,qBAAqBjG,SAC1Dj/E,KAAKw5H,kBAAkBhH,EAAQn0C,QAEjC,MAVCr+E,KAAKw5H,kBAAkBhH,EAAQn0C,QAYlC,CAEQ,MAAAusD,CAAOpY,GACd,GAAIxyH,KAAK0sI,WAAWla,GAAU,CAE7B,GADAxyH,KAAK2tF,SAASE,QAAQ2kC,EAAQjzC,MACzBv/E,KAAK2tF,SAASi/C,WAAW,EAAArnD,YAAY4D,KAEzC,YADAvL,EAAOznE,OAAOypE,mBAAmB,gBAGlC,GAAI3kF,EAAG8wE,WAAW,EAAA+S,WAAW6D,SAASuC,qBAAqBjG,QAAS,CACnE,MAAMguD,EAASjtI,KAAK4kF,SAASzB,QAAQqvC,EAAQn0C,QAAS,EAAAkH,YAAY+0C,KAC9Dr/H,EAAG8wE,WAAWkhE,EAAOhuD,SACxB,EAAAH,WAAWmO,mBACXrP,EAAOznE,OAAO43E,iBAAiBk/C,IAE/BrvD,EAAOznE,OAAOypE,mBAAmB,2BACnC,CACD,CACD,CAEQ,WAAAyL,GACP,MAAM1K,EAAe,EAAA7B,WAAWspD,yBAC5BznD,EAAa/3E,OAAS,EACzB5I,KAAKuiF,aAAalB,MAAQ,aAAaV,KAEvC3gF,KAAKuiF,aAAalB,MAAQ,UAE5B,EAllBD,gB,iKClpBA,0BACA,0BACA,UACA,UACA,UACA,yBACA,0BAEA,IAAI6rD,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEJ,IAAYnZ,EACAoZ,EACA9Y,GAFZ,SAAYN,GAAU,uBAAQ,iBAAK,sBAAQ,CAA3C,CAAYA,IAAO,UAAPA,EAAO,KACnB,SAAYoZ,GAAY,qBAAO,oBAAO,CAAtC,CAAYA,IAAS,YAATA,EAAS,KACrB,SAAY9Y,GAAU,iCAAa,2BAAU,iCAAa,4CAAmB,CAA7E,CAAYA,IAAO,UAAPA,EAAO,KAGnB,MAAa+Y,EAQT,YAAoBvgD,GALpB,KAAAkjC,QAAU,IAAI,EAAAp6B,SAMVn2F,KAAK0yF,KAAOrF,EACZrtF,KAAK6tI,QAAUtZ,EAAQC,IACvBx0H,KAAK8tI,UAAYH,EAAUI,MAC3B/tI,KAAK00H,QAAU10H,KAAKguI,oBAEpBd,EAAkBtvD,EAAOznE,OAAO83H,oBAAoBrwD,EAAOswD,mBAAmBC,KAAM,IACpFjB,EAAgBp8F,KAAO,SACvBo8F,EAAgBhkD,QAAU,mBAC1BgkD,EAAgBlkD,QAAU,+BAC1BkkD,EAAgBt7C,OAEhBu7C,EAAmBvvD,EAAOznE,OAAO83H,oBAAoBrwD,EAAOswD,mBAAmBC,KAAM,IACrFhB,EAAiBjkD,QAAU,0BAC3BikD,EAAiBnkD,QAAU,oBAC3BmkD,EAAiBv7C,OAEjBw7C,EAAkBxvD,EAAOznE,OAAO83H,oBAAoBrwD,EAAOswD,mBAAmBC,KAAM,IACpFf,EAAgBlkD,QAAU,uBAC1BkkD,EAAgBpkD,QAAU,mBAC1BokD,EAAgBx7C,OAEhBy7C,EAAoBzvD,EAAOznE,OAAO83H,oBAAoBrwD,EAAOswD,mBAAmBC,KAAM,IACtFd,EAAkBnkD,QAAU,iBAC5BmkD,EAAkBrkD,QAAU,qBAC5BqkD,EAAkBz7C,OAElB07C,EAAsB1vD,EAAOznE,OAAO83H,oBAAoBrwD,EAAOswD,mBAAmBC,KAAM,IACxFb,EAAoBpkD,QAAU,8CAC9BokD,EAAoBtkD,QAAU,uBAC9BskD,EAAoB17C,OAEpB27C,EAA4B3vD,EAAOznE,OAAO83H,oBAAoBrwD,EAAOswD,mBAAmBE,MAAOjyI,OAAOkyI,UAAY,GAClHd,EAA0BrkD,QAAU,qBACpCqkD,EAA0BvkD,QAAU,mCACpCukD,EAA0B37C,OAE1B47C,EAAgC5vD,EAAOznE,OAAO83H,oBAAoBrwD,EAAOswD,mBAAmBE,MAAOjyI,OAAOkyI,UAAY,GACtHb,EAA8BtkD,QAAU,qBACxCskD,EAA8BxkD,QAAU,uCACxCwkD,EAA8B57C,OAE9B87C,EAA+B9vD,EAAOznE,OAAO83H,oBAAoBrwD,EAAOswD,mBAAmBE,MAAOjyI,OAAOkyI,UAAY,GACrHX,EAA6BxkD,QAAU,oBACvCwkD,EAA6B1kD,QAAU,qCACvC0kD,EAA6B97C,OAE7B67C,EAA2B7vD,EAAOznE,OAAO83H,oBAAoBrwD,EAAOswD,mBAAmBE,MAAOjyI,OAAOkyI,UAAY,GACjHZ,EAAyBvkD,QAAU,2BACnCukD,EAAyBzkD,QAAU,kCACnCykD,EAAyB77C,OAEzB5xF,KAAK4jG,SAELhmB,EAAOuB,SAASyL,gBAAgB,gBAAiB,IAAM5qF,KAAK4jG,UAC5DhmB,EAAOuB,SAASyL,gBAAgB,mBAAoB,IAAM5qF,KAAKsuI,aAC/D1wD,EAAOuB,SAASyL,gBAAgB,qBAAsB,IAAM5qF,KAAKuuI,eACjE3wD,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAKwuI,iBACnE5wD,EAAOuB,SAASyL,gBAAgB,mCAAoC,IAAM5qF,KAAKyuI,6BAC/E7wD,EAAOuB,SAASyL,gBAAgB,uCAAwC,IAAM5qF,KAAK0uI,iCACnF9wD,EAAOuB,SAASyL,gBAAgB,kCAAmC,IAAM5qF,KAAK2uI,4BAC9E/wD,EAAOuB,SAASyL,gBAAgB,qCAAsC,IAAM5qF,KAAK4uI,gCACjFhxD,EAAOuB,SAASyL,gBAAgB,+BAAgC,IAAM5qF,KAAK6uI,wBAC/E,CAEA,aAAOzhD,CAAOC,GAIV,OAHK,EAAAwmC,eACD,EAAAA,aAAe,IAAI+Z,EAAavgD,IAE7B,EAAAwmC,YACX,CAEO,qBAAAgb,GACH7uI,KAAK8zH,gBAAe,EACxB,CAEO,mBAAAwB,GACH4X,EAAgBp8F,KAAO,SACvBo8F,EAAgBhkD,QAAU,mBAC1B,EAAApK,WAAW40C,UAAY,CAC3B,CAEO,cAAAI,CAAegb,GAAwB,GAC1C,GAAI,EAAAhwD,WAAW40C,UAAW,CACtB,IAAIqb,EAAW,GACf,MAAMp2C,EAAM,EAAA7Z,WAAWkwD,QAGfD,EADC,UADDjjH,EAAGS,WAEQ,iBAAiBosE,QAGjB,aAAaA,KAErB,EAAQ,MAChBz0D,KAAK6qG,GACR/uI,KAAKs1H,qBACT,MACI4X,EAAgBp8F,KAAO,kBACvBo8F,EAAgBhkD,QAAU,gBACtB4lD,GACAlxD,EAAOuB,SAASC,eAAe,2BAE3C,CAEA,6BAAAsvD,GACI,MAAMnqI,EAAWtH,EAAKuH,KAAK,EAAAs6E,WAAWmwD,qBAAqBhwD,OAAO,gBAClE,GAAIhkF,EAAG8wE,WAAWxnE,GACdq5E,EAAOuB,SAASC,eAAe,uBAAwBxB,EAAOC,IAAI7Z,KAAKz/D,QACpE,CACH,MAAMuwB,EAAM,oEACZ8oD,EAAOuB,SAASC,eAAe,cAAexB,EAAOC,IAAIn0E,MAAMorB,GACnE,CACJ,CAEA,wBAAA65G,GAEI/wD,EAAOuB,SAASC,eAAe,cAAexB,EAAOC,IAAIn0E,MAD7C,+EAEZ,EAAAo1E,WAAWowD,oBAAoB,EAAApwD,WAAWqwD,UAC9C,CAEA,4BAAAP,GAEIhxD,EAAOuB,SAASC,eAAe,cAAexB,EAAOC,IAAIn0E,MAD7C,wEAEZ,EAAAo1E,WAAWswD,sBAAsB,EAAAtwD,WAAWqwD,UAChD,CAEA,yBAAAV,GAEI7wD,EAAOuB,SAASC,eAAe,cAAexB,EAAOC,IAAIn0E,MAD7C,yEAEZ,EAAAo1E,WAAWub,cACf,CAEA,SAAAi0C,GACI,MAAMniH,EAAgC,GACtCA,EAAMxqB,KAAK,CAACypC,MAAO,iBAAkBk2C,YAAa,0CAClDn1D,EAAMxqB,KAAK,CAACypC,MAAO,kBAAmBk2C,YAAa,gDACnDn1D,EAAMxqB,KAAK,CAACypC,MAAO,kBAAmBk2C,YAAa,iDACnD1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAACk1D,MAAO,iBAAkBK,aAAa,EAAOC,YAAa,kBAAkB34E,KAAKs5E,IACjH,IAAKA,EACD,OAEJ,IAAIpuE,EAAgBqgH,EAAQv+B,OAExB9hF,EADoB,mBAApBouE,EAAUl3C,MACHmpF,EAAQC,IACU,oBAApBlyC,EAAUl3C,MACRmpF,EAAQv+B,OAERu+B,EAAQE,OACnB,EAAAZ,aAAawb,YAAYn7H,IAEjC,CAEA,WAAAq6H,GACI,MAAMpiH,EAAgC,GACtCA,EAAMxqB,KAAK,CAACypC,MAAO,qBAAsBk2C,YAAa,qCACtDn1D,EAAMxqB,KAAK,CAACypC,MAAO,sBAAuBk2C,YAAa,oCACvD1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAACk1D,MAAO,eAAgBK,aAAa,EAAOC,YAAa,qBAAqB34E,KAAKs5E,IAClH,IAAKA,EACD,OAEJ,MAAMpuE,EAAsC,uBAApBouE,EAAUl3C,MAAiCuiG,EAAU2B,MAAQ3B,EAAUI,MAC/F,EAAAla,aAAa0b,cAAcr7H,IAEnC,CAEO,UAAAmgH,GACH,OAAOr0H,KAAK6tI,OAChB,CAEA,WAAAwB,CAAYxB,GACR7tI,KAAK6tI,QAAUA,EACf7tI,KAAKwvI,gBACT,CAEA,cAAAA,GACQxvI,KAAK6tI,SAAWtZ,EAAQC,IACxB4Y,EAAgBt8F,KAAO,cAChB9wC,KAAK6tI,SAAWtZ,EAAQE,OAC/B2Y,EAAgBt8F,KAAO,eAEvBs8F,EAAgBt8F,KAAO,iBAE/B,CAEO,YAAA2+F,GACH,OAAOzvI,KAAK8tI,SAChB,CAEA,aAAAyB,CAAczB,GACM9tI,KAAK8tI,UACrB9tI,KAAK8tI,UAAYA,EACjB9tI,KAAK0vI,mBACL1vI,KAAKuwH,QAAQof,gBAAgB,EAAApqD,YAAY6zC,MACzCx7C,EAAOuB,SAASC,eAAe,0BACnC,CAEA,gBAAAswD,GACQ1vI,KAAK8tI,WAAaH,EAAU2B,MAC5BjC,EAAkBv8F,KAAO,qBAEzBu8F,EAAkBv8F,KAAO,mBAEjC,CAEO,UAAA6jF,GACH,OAAO30H,KAAK00H,OAChB,CAEA,UAAAkb,CAAW17H,GACPlU,KAAK00H,QAAUxgH,EACflU,KAAK6vI,mBAAmB37H,GACxBlU,KAAK8vI,oBACT,CAEA,aAAAtB,GAoBIxuI,KAAK4vI,WAAW5vI,KAAK+vI,YAAY/vI,KAAK00H,SAC1C,CAEQ,WAAAqb,CAAY77H,GAChB,OAAQA,GACJ,KAAK2gH,EAAQmb,YAAmB,OAAOnb,EAAQC,SAC/C,KAAKD,EAAQC,SAAmB,OAAOD,EAAQE,YAC/C,KAAKF,EAAQE,YAAmB,OAAOF,EAAQG,kBAC/C,QAAgC,OAAOH,EAAQmb,YAEvD,CAEQ,mBAAAC,GACJ,MAAMC,EAAM,EAAApxD,WAAW66B,qBACvB,GAAKu2B,GAAQA,EAAIjxD,OAAOr2E,OACxB,OAAO3L,EAAKuW,SAAS08H,EAAIjxD,OAAO1pE,QAAQ,UAAW,IACvD,CAEQ,eAAA46H,CAAgBj8H,EAAgB2gH,EAAQC,UAC5C,MAAMob,EAAM,EAAApxD,WAAW66B,qBACvB,IAAKu2B,IAAQA,EAAIjxD,OAAOr2E,OAAQ,OAChC,MAAMquF,EAAwB,UAAlBnrE,EAAGS,WAAyB,OAA2B,WAAlBT,EAAGS,WAA0B,SAAW,MACzF,GAAIrY,IAAS2gH,EAAQE,YACjB,OAAO93H,EAAKuH,KAAK0rI,EAAIjxD,OAAQ,KAAOgY,GAExC,GAAI/iF,IAAS2gH,EAAQG,kBACjB,OAAO/3H,EAAKuH,KAAK0rI,EAAIjxD,OAAQ,WAAagY,GAE9C,MAAM54F,EAAO2B,KAAKiwI,sBAClB,OAAK5xI,EACEpB,EAAKuH,KAAK0rI,EAAIjxD,OAAQ5gF,EAAO44F,QADpC,CAEJ,CAEO,cAAAm5C,CAAel8H,EAAgB2gH,EAAQC,UAC1C,MAAM7lH,EAAIjP,KAAKmwI,gBAAgBj8H,GAC/B,QAASjF,GAAKhU,EAAG8wE,WAAW98D,EAChC,CAEA,kBAAA6gI,GACQ9vI,KAAK00H,UAAYG,EAAQC,SACzBwY,EAAoBx8F,KAAO,iCACpB9wC,KAAK00H,UAAYG,EAAQG,kBAChCsY,EAAoBx8F,KAAO,yCACpB9wC,KAAK00H,UAAYG,EAAQE,YAChCuY,EAAoBx8F,KAAO,uCAE3Bw8F,EAAoBx8F,KAAO,oCAEnC,CAEQ,iBAAAk9F,GACJ,IACI,MAAMroD,EAAS,EAAA7G,WAAWuB,qBAIpBvlF,GAHS6qF,EAAO1G,OAAOr2E,OACvBg1E,EAAOmT,UAAUC,iBAAiB,WAAYrL,GAC9C/H,EAAOmT,UAAUC,iBAAiB,aACnBp4E,IAAY,WACjC,MAAc,aAAV9d,EAA6B+5H,EAAQC,SAC3B,sBAAVh6H,EAAsC+5H,EAAQG,kBACpC,gBAAVl6H,EAAgC+5H,EAAQE,YACrCF,EAAQmb,WACnB,CAAE,SACE,OAAOnb,EAAQmb,WACnB,CACJ,CAEQ,kBAAAH,CAAmB37H,GACvB,IACI,MAAMyxE,EAAS,EAAA7G,WAAWuB,qBACpBvlF,EAAQoZ,IAAS2gH,EAAQC,SAAW,WAC5B5gH,IAAS2gH,EAAQG,kBAAoB,oBACrC9gH,IAAS2gH,EAAQE,YAAc,cAC/B,cACVpvC,EAAO1G,OAAOr2E,OACdg1E,EAAOmT,UACFC,iBAAiB,WAAYrL,GAC7Bie,OAAO,UAAW9oG,EAAO8iF,EAAOyyD,oBAAoBC,iBAEzD1yD,EAAOmT,UACFC,iBAAiB,YACjB4S,OAAO,UAAW9oG,EAAO8iF,EAAOyyD,oBAAoBE,OAEjE,CAAE,SAEF,CACJ,CAEA,MAAA3sC,GACI,GAAI,EAAA9kB,WAAW6D,SAAS1C,UAAW,CAC/B,MAAM17E,EAAW,EAAAu6E,WAAW6D,SAASyC,cAAcnG,OAC7CuxD,EAAWvzI,EAAKuW,SAASjP,GAC/B4oI,EAAiBr8F,KAAO0/F,EACxBrD,EAAiBv7C,OAEjB5xF,KAAKwvI,iBACLxvI,KAAK0vI,mBACL1vI,KAAK8vI,qBACL1C,EAAgBx7C,OAChB07C,EAAoB17C,MACxB,CACA5xF,KAAKywI,oBAAoB,IACzBzwI,KAAK0wI,wBAAwB,IAC7B1wI,KAAK2wI,mBAAmB,IACxB3wI,KAAK4wI,wBAAwB,GACjC,CAEA,mBAAAH,CAAoB3tE,GACArnE,MAAXqnE,GAAwBA,EAAQl6D,OACjC2kI,EAA0Bz8F,KAAOgyB,EAC1B,EAAAgc,WAAW6hB,iBAAiB/3F,OACnC2kI,EAA0Bz8F,KAAO,EAAAguC,WAAW6hB,iBAE5C4sC,EAA0Bz8F,KAAO,EAEzC,CAEA,uBAAA4/F,CAAwB5tE,GACLrnE,MAAXqnE,GAAwBA,EAAQl6D,OAChC4kI,EAA8B18F,KAAOgyB,EAC9B,EAAAgc,WAAWhc,QAAQl6D,OAC1B4kI,EAA8B18F,KAAO,EAAAguC,WAAWhc,QAEhD0qE,EAA8B18F,KAAO,EAE7C,CAEA,kBAAA6/F,CAAmB7tE,GACArnE,MAAXqnE,GAAwBA,EAAQl6D,OAChC6kI,EAAyB38F,KAAOgyB,EACzB,EAAAgc,WAAW+xD,mBAAmBjoI,OACrC6kI,EAAyB38F,KAAO,EAAAguC,WAAW+xD,mBAE3CpD,EAAyB38F,KAAO,EAExC,CAEA,uBAAA8/F,CAAwB9tE,GACLrnE,MAAXqnE,GAAwBA,EAAQl6D,OAChC8kI,EAA6B58F,KAAOgyB,EAC7B,EAAAgc,WAAWgyD,qBAAqBloI,OACvC8kI,EAA6B58F,KAAO,EAAAguC,WAAWgyD,qBAE/CpD,EAA6B58F,KAAO,EAE5C,EAlYJ,gB,4ECaA,oBAAyBu8C,G,UAExBuU,EAAkE,QAA9C,EAA0B,QAA1B,EAAa,QAAb,EAAAvU,EAAIrlD,iBAAS,eAAEmzE,mBAAW,eAAEr4C,eAAkB,QAAI,GACtEytC,EAAU,sBACX,EAIA,cAUA,qBACClyG,EACA0yI,EACAC,GAEAC,EAAK5yI,GAAM,EAAM0yI,EAAS,CAAEA,eAAWt1I,EAAWu1I,EACnD,E,MA1CA,E,QAAA,sBAKA,IAAIpvC,EAAmB,GAqBvB,SAAgB2O,EACflyG,EACA46B,EACA+3G,GAEAC,EAAK5yI,GAAM,EAAO46B,EAAY+3G,EAC/B,CAYA,SAASC,EACR5yI,EACA6yI,EACAj4G,EACA+3G,GAEA,IArCCpzD,EAAO3nE,IAAIk7H,qBACXvzD,EAAOmT,UAAUC,iBAAiB,OAAOp4E,IAAa,oBAAoB,GAoC9C,OAE7B,MAAMilB,EAAU,CACfnI,MAAOr3B,EACPkB,MAAO2xI,QAAWz1I,EAClBmL,EAAGg7F,EACHhkB,OAAQA,EAAO9a,QACfv2C,SAAU1wB,QAAQ0wB,SAClBiwB,GAAIohC,EAAO3nE,IAAIm7H,UACfC,QAASzzD,EAAO3nE,IAAIq7H,UACpBC,MAAOt4G,EACPu4G,QAASR,GAIV,IACM9uC,MA/DU,8CA+DM,CACpBx5F,OAAQ,OACRkwB,QAAS,CAAE,eAAgB,oBAC3BuI,KAAM5pB,KAAKhO,UAAUs0B,KACnB30B,MAAM,OACV,CAAE,SAEF,CACD,C,4IC5FA,0BACA,0BACA,0BACA,UACA,UACA,UAEA,IAAYuoI,EACAlsD,GADZ,SAAYksD,GAAgB,iCAAa,qBAAO,uBAAQ,oBAAO,CAA/D,CAAYA,IAAa,gBAAbA,EAAa,KACzB,SAAYlsD,GAAc,yBAAS,iBAAK,iBAAK,iBAAK,mBAAM,mBAAM,iBAAK,eAAI,iBAAK,mBAAM,iBAAK,CAAvF,CAAYA,IAAW,cAAXA,EAAW,KAEvB,iBAkBI,WAAAzlF,CAAYyE,EAAmB,GAAIivH,GAAyB,EAAM1iF,EAAe,IAjBzE,KAAAyuC,IAAkB3B,EAAOC,IAAI7Z,KAAK,IAClC,KAAAz/D,SAAmB,GACnB,KAAAusC,KAAe,GACf,KAAA4gG,eAAyB,GACzB,KAAAC,cAAgB,KAChB,KAAAC,QAAyBH,EAAcI,YACvC,KAAA3xI,IAAc,GACd,KAAA6kE,MAAQ,IAAIj7D,MACZ,KAAAgoI,gBAAkB,IAAIhoI,MACtB,KAAAioI,SAAWxsD,EAAY0K,QACxB,KAAAz8E,SAAmB,GAClB,KAAAw+H,YAAc,IAAIloI,MAAM,UAAW,MAAO,MAAO,MAAO,OAAQ,OAAQ,MAAO,KAAM,MAAO,OAAQ,OACpG,KAAAi8D,QAAkB,EAClB,KAAAksE,SAAqB,GACtB,KAAAC,aAAuB,EACvB,KAAAC,WAAqB,EAGpBrhG,EAAKloC,OACL5I,KAAKykF,QAAQ3zC,EAAM0iF,GACdjvH,EAASqE,QACd5I,KAAK6tF,QAAQjQ,EAAOC,IAAI7Z,KAAKz/D,GAAWivH,EAChD,CAEA,SAAAv/B,CAAUU,GACN,GAAI/W,EAAOznE,OAAOu+E,iBAAkB,CAChC,MAAMC,EAAS/W,EAAOznE,OAAOu+E,iBACzBC,GACA30F,KAAKoyI,mBAAmBz9C,EAEhC,CACJ,CAEA,kBAAAy9C,CAAmBz9C,GACf,MAAM+pB,EAAU,EAAA5/B,WAAWgC,uBAAuB,UAClD,IAAK7lF,EAAG8wE,WAAW2yC,GAEf,YADA9gC,EAAOznE,OAAOypE,mBAAmB,uCAGrC,MAAMzzD,EAAgC,GAGhCwyF,EAAY,EAAA5+B,SAAS6F,SAAShI,EAAOC,IAAI7Z,KAAK06C,GAFvC,CAAC,QAGd,IAAK,MAAME,KAAYD,EAAW,CAC9B,IAAIx9B,EAAQ,GAEZ,MAAMpiD,EAAY/+B,KAAK4tF,cAAcgxB,EAAS3/B,QAC1B,KAAhBlgD,EAAU,KACVoiD,EAAQpiD,EAAU3jB,UAAU,IAEhC,MAAMstE,EAAO,EAAA5J,WAAWu9B,gBAAgBuC,EAAS3/B,QAC3C7zC,EAAQnuC,EAAKuW,SAASorG,EAAS3/B,QACvBrB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK,EAAAs6E,WAAWuzD,mBAAmBpzD,OAAQ,YAAa,QAASyJ,IACvF9K,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK,EAAAs6E,WAAWuzD,mBAAmBpzD,OAAQ,YAAa,OAAQyJ,IAClGv8D,EAAMxqB,KAAK,CAAEypC,MAAOA,EAAOk2C,YAAaH,EAAOqX,OAAQomB,EAAS3/B,QACpE,CAEA,GAAoB,GAAhB9yD,EAAMvjB,OAEN,YADAg1E,EAAOznE,OAAOypE,mBAAmB,qCAIrC,MAAMF,EAAS,gBAEf9B,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,UAAY3B,EAAQiC,YAAa,UAAYjC,EAAS,eAAgB12E,KAAKs5E,IAC9GA,GAEDA,EAAUkW,QACVx4F,KAAKsyI,cAAc39C,EAAQrS,EAAUkW,SAGjD,CAEA,aAAA85C,CAAc39C,EAA2B49C,GACrC,MAEMvpD,EAAU,WAAWupD,OAFL59C,EAAOl+E,SAAS8oE,IAAIN,WAK1C,IAAA/6C,MAAK8kD,EAAS,CAACzpF,EAAO07E,EAAQ3gE,KAC1B,GAAI/a,EAEA,YADAyL,QAAQzL,MAAM,sCAAsCA,EAAMiY,WAI9D,GAAI8C,EAEA,YADAtP,QAAQzL,MAAM,yBAAyB+a,KAI3C,MAAM9O,EAAQ,IAAIoyE,EAAOyX,MAAMV,EAAOl+E,SAASw+E,OAAO,GAAGzpF,MAAMulB,MAAO4jE,EAAOl+E,SAASw+E,OAAON,EAAOl+E,SAAS0+E,UAAY,GAAG3pF,MAAMggB,KAC5HgqE,EAAU,IAAI5X,EAAO6X,cAAcxa,GACzC0Z,EAAOe,cAAcF,EAAShqF,IAEtC,CAEA,UAAA0nH,CAAWpiF,GACP9wC,KAAK8wC,KAAO9wC,KAAK8wC,KAAK5mC,OAAO4mC,EACjC,CAEA,QAAA0yC,GACIvoF,EAAG0Z,cAAc3U,KAAKu/E,IAAIN,OAAQj/E,KAAKqkF,UAAW,CAAE9nD,KAAM,MAC9D,CAEA,aAAAy8F,GACI,IAAIloF,EAAO,GACX,IAAK,MAAM00B,KAAQxlE,KAAK+kE,MAChBj0B,EAAKloC,SACLkoC,GAAQ9wC,KAAKE,KACjB4wC,GAAQ00B,EAEZvqE,EAAG0Z,cAAc3U,KAAKu/E,IAAIN,OAAQnuC,EAAM,CAAEvU,KAAM,MACpD,CAEA,WAAAy4D,CAAYL,EAA2BC,GAAmB,GACtD,GAAIA,GACA,GAAI50F,KAAKiyI,SAASrpI,OAAQ,CACtB,IAAIkoC,EAAO,GACX,IAAK,MAAM00B,KAAQxlE,KAAKiyI,SAChBnhG,EAAKloC,SACLkoC,GAAQ9wC,KAAKE,KACjB4wC,GAAQ00B,EAEZ,MAAMw0D,EAAWrlC,EAAOrS,UAAUiqB,OAC5BkB,EAAS9Y,EAAOrS,UAAU92D,IAC1B4uG,EAAO,IAAIx8C,EAAO8vB,UAAUssB,EAAUvsB,GACtCjY,EAAU,IAAI5X,EAAO6X,cAAc3kD,GACzC6jD,EAAOe,cAAcF,EAAS4kC,GAG9B,MAAMoY,EAAU,IAAI50D,EAAO4vB,SAASxtG,KAAKkyI,aAAelyI,KAAKiyI,SAASrpI,OAAS,EAAG5I,KAAKiyI,SAASjyI,KAAKiyI,SAASrpI,OAAS,GAAGA,QACpH6pI,EAAU,IAAI70D,EAAO8vB,UAAUssB,EAAUwY,GAC/C79C,EAAOrS,UAAYmwD,CACvB,OAGA,GAAIzyI,KAAK+kE,MAAMn8D,OAAQ,CACnB5I,KAAK8wC,KAAO,GACZ,IAAK,MAAM00B,KAAQxlE,KAAK+kE,MACpB/kE,KAAK8wC,MAAQ00B,EAAOxlE,KAAKE,GAEjC,CAER,CAEA,SAAA40F,CAAUF,GAAmB,GACrBA,EACA50F,KAAKiyI,SAASlkH,KAAK,SAAUtuB,EAAGC,GAC5B,OAAOD,EAAE8W,cAAc4uF,cAAczlG,EAAE6W,cAC3C,GAEAvW,KAAK+kE,MAAMh3C,KAAK,SAAUtuB,EAAGC,GACzB,OAAOD,EAAE8W,cAAc4uF,cAAczlG,EAAE6W,cAC3C,EACR,CAEA,WAAAw+E,CAAYH,GAAmB,GAC3B,IAAIM,EAAW,GACf,MAAMw9C,EAAoB,IAAI5oI,MAC9B,IAAIoG,EAAgB,EAEpB,GAAI0kF,EAAS,CACT,IAAK,MAAMpvB,KAAQxlE,KAAKiyI,SAChBzsE,GAAQ0vB,GAA2B,GAAf1vB,EAAK58D,QACzB8pI,EAAQ/wI,KAAKuO,GACjBglF,EAAW1vB,EACXt1D,IAGJ,IAAK,MAAMyiI,KAAOD,EAAQ7nG,UACtB7qC,KAAKiyI,SAASjhI,OAAO2hI,EAAK,EAElC,KACK,CACD,IAAK,MAAMntE,KAAQxlE,KAAK+kE,MAChBS,GAAQ0vB,GAA2B,GAAf1vB,EAAK58D,QACzB8pI,EAAQ/wI,KAAKuO,GACjBglF,EAAW1vB,EACXt1D,IAGJ,IAAK,MAAMyiI,KAAOD,EAAQ7nG,UACtB7qC,KAAK+kE,MAAM/zD,OAAO2hI,EAAK,EAE/B,CACJ,CAEA,UAAAliC,CAAW9+E,GACP,IAAI+6E,EAAU,EACV8L,EAAY,EACZxzE,EAAM,EACV,IAAK,MAAMwgC,KAAQxlE,KAAK+kE,MAAO,CAC3B,GAAI//B,EAAMwgC,EAAK58D,QAAU+oB,EAAQ,CAC7B6mF,EAAY7mF,EAASqT,EAAM,EAC3B,KACJ,CACAA,GAAOwgC,EAAK58D,OAAS,EACrB8jG,GACJ,CACA,OAAO,IAAI9uB,EAAO4vB,SAASd,EAAS8L,EACxC,CAEA,gBAAA3jB,CAAiBF,GACb30F,KAAKiyI,SAAW,GAChB,MAAMlhH,EAAQ4jE,EAAOrS,UAAUvxD,MAC/B/wB,KAAKkyI,aAAenhH,EAAMy0C,KAC1B,MAAMh6C,EAAMmpE,EAAOrS,UAAU92D,IAC7BxrB,KAAKmyI,WAAa3mH,EAAIg6C,KACtB,IAAI91D,EAAI,EACR,IAAKA,EAAIqhB,EAAMy0C,KAAM91D,GAAK8b,EAAIg6C,KAAM91D,IAChC1P,KAAKiyI,SAAStwI,KAAK3B,KAAK+kE,MAAMr1D,IAElC,OAAO1P,KAAKiyI,QAChB,CAEO,aAAA5U,GACH,GAAIr9H,KAAK8wC,KAAKloC,QACN5I,KAAK8wC,KAAKlrC,QAAQ,OAAW,EAAG,CAChC5F,KAAK8wC,KAAO9wC,KAAK8wC,KAAKv7B,QAAQ,QAAS,IACvC,IAEI,OADAta,EAAG0Z,cAAc3U,KAAKu/E,IAAIN,OAAQj/E,KAAK8wC,KAAM,CAAEvU,KAAM,OAC9C,CACX,CAAE,MAAOx0B,GAEL,OADAiD,QAAQC,IAAI,sBAAwBjL,KAAKu/E,IAAIN,OAAS,KAAOl3E,EAAIyP,UAC1D,CACX,CACJ,CAEJ,OAAO,CACX,CAEA,YAAAo7H,CAAa1nI,GACT,OAAOlL,KAAKgyI,YAAY9mI,EAC5B,CAEA,MAAA2nI,CAAOn3H,EAAa83G,GAAyB,GACzCxzH,KAAK8wC,KAAOp1B,EACZ1b,KAAK8yI,WAAWtf,EACpB,CAEA,OAAA3lC,CAAQ7pB,EAAkBwvD,GAAyB,GAa/C,OAZAxzH,KAAK+lE,QAAS,EACd/lE,KAAKs8G,QACLt8G,KAAKu/E,IAAMvb,EACXhkE,KAAKuE,SAAWy/D,EAAKib,OACrBj/E,KAAK6sI,YAAY7sI,KAAKuE,UAElBy/D,EAAKib,OAAOr2E,QAAU3N,EAAG8wE,WAAW/H,EAAKib,UACzCj/E,KAAK8wC,KAAO71C,EAAG2Z,aAAa5U,KAAKuE,SAAU,QACvCvE,KAAK8wC,KAAKloC,QACV5I,KAAK8yI,WAAWtf,GACpBxzH,KAAK+lE,QAAS,GAEX/lE,KAAK+lE,MAChB,CAEA,OAAAxkD,GACI,QAAOvhB,KAAKuE,SAASqE,OAAS,EAClC,CAEA,OAAA67E,CAAQ3zC,EAAc0iF,GAAyB,GACvC1iF,EAAKloC,SACL5I,KAAK8wC,KAAOA,EACZ9wC,KAAK8yI,WAAWtf,GAChBxzH,KAAK+lE,QAAS,EAEtB,CAEA,WAAAkzD,CAAYtkC,EAA2B6+B,GAAyB,GAC5DxzH,KAAKs8G,QACLt8G,KAAKu/E,IAAMoV,EAAOl+E,SAAS8oE,IAC3Bv/E,KAAKuE,SAAWowF,EAAOl+E,SAAS8oE,IAAIN,OACpC,MAAMlgD,EAAY41D,EAAOl+E,SAASw+E,OAAO,GACnCC,EAAWP,EAAOl+E,SAASw+E,OAAON,EAAOl+E,SAAS0+E,UAAY,GAC9DC,EAAY,IAAIxX,EAAOyX,MAAMt2D,EAAUvzB,MAAMulB,MAAOmkE,EAAS1pF,MAAMggB,KACzExrB,KAAK8wC,KAAO6jD,EAAOl+E,SAAS4tE,QAAQ+Q,GACpCp1F,KAAK6sI,YAAY7sI,KAAKuE,UACtBvE,KAAK8yI,WAAWtf,EACpB,CAEA,WAAAqZ,CAAYx5H,GACRrT,KAAKwT,SAAWvW,EAAKuW,SAASH,EAAU,QAExCrT,KAAK+xI,SAAWxsD,EAAY4D,IACE,QAA1BlsF,EAAKuqC,QAAQn0B,GACbrT,KAAK+xI,SAAWxsD,EAAYwtD,IACG,QAA1B91I,EAAKuqC,QAAQn0B,GAClBrT,KAAK+xI,SAAWxsD,EAAYytD,IACG,SAA1B/1I,EAAKuqC,QAAQn0B,GAClBrT,KAAK+xI,SAAWxsD,EAAY6zC,KACG,OAA1Bn8H,EAAKuqC,QAAQn0B,GAClBrT,KAAK+xI,SAAWxsD,EAAYiB,GACG,QAA1BvpF,EAAKuqC,QAAQn0B,GAClBrT,KAAK+xI,SAAWxsD,EAAY+0C,IACG,SAA1Br9H,EAAKuqC,QAAQn0B,GAClBrT,KAAK+xI,SAAWxsD,EAAYC,KACG,QAA1BvoF,EAAKuqC,QAAQn0B,GAClBrT,KAAK+xI,SAAWxsD,EAAY0tD,IACG,SAA1Bh2I,EAAKuqC,QAAQn0B,GAClBrT,KAAK+xI,SAAWxsD,EAAY80C,KACG,QAA1Bp9H,EAAKuqC,QAAQn0B,KAClBrT,KAAK+xI,SAAWxsD,EAAY2tD,IACpC,CAEA,UAAAp3B,GACI,OAAO97G,KAAK+lE,MAChB,CAEA,UAAA6mE,CAAW1hI,GACP,OAAOA,GAAQlL,KAAK+xI,QACxB,CAEA,WAAA7Y,GACI,OAAOl5H,KAAK+xI,QAChB,CAEA,MAAA5f,GACI,OAAOnyH,KAAKu/E,GAChB,CAEA,WAAA4zD,GACI,OAAOnzI,KAAKwT,QAChB,CAEA,KAAA8oG,GACIt8G,KAAKu/E,IAAM3B,EAAOC,IAAI7Z,KAAK,IAC3BhkE,KAAKuE,SAAW,GAChBvE,KAAK8wC,KAAO,GACZ9wC,KAAK4xI,QAAUH,EAAcI,YAC7B7xI,KAAKE,IAAM,GACXF,KAAK+kE,MAAQ,EACjB,CAEA,UAAA+tE,CAAWtf,GAAyB,GAIhC,GAHwB,GAApBxzH,KAAK8wC,KAAKloC,QACV5I,KAAK6tF,QAAQ7tF,KAAKu/E,IAAKi0C,GAEvBxzH,KAAK8wC,KAAKloC,OAAQ,CAClB,MAAMwqI,EAAYpzI,KAAK8wC,KAAK90C,MAAM,QAC5Bq3I,EAAWrzI,KAAK8wC,KAAK90C,MAAM,MAC3Bs3I,EAAWtzI,KAAK8wC,KAAK90C,MAAM,MAEjCgE,KAAK4xI,QAAUH,EAAcI,YAC7B7xI,KAAKE,IAAM,GAEPkzI,EAAUxqI,OAAS,GACnB5I,KAAK4xI,QAAUH,EAAc8B,OAC7BvzI,KAAKE,IAAM,QACJmzI,EAASzqI,OAAS,GACzB5I,KAAK4xI,QAAUH,EAAc+B,MAC7BxzI,KAAKE,IAAM,MACJozI,EAAS1qI,OAAS,IACzB5I,KAAK4xI,QAAUH,EAAcgC,MAC7BzzI,KAAKE,IAAM,MAEXszH,GACAxzH,KAAKwzH,eACb,CACJ,CAEA,aAAAkgB,GACI,GAAI1zI,KAAK4xI,SAAWH,EAAc8B,OAAQ,CACtC,MAAMI,EAAa,IAAIx8G,OAAOn3B,KAAKE,IAAK,KACxCF,KAAK0xI,eAAiB1xI,KAAK8wC,KAAKv7B,QAAQo+H,EAAY3zI,KAAK2xI,cAC7D,MACI3xI,KAAK0xI,eAAiB1xI,KAAK8wC,KAE/B,OAAO9wC,KAAK0xI,cAChB,CAEA,eAAAkC,CAAgB9iG,GACZ,GAAI9wC,KAAK4xI,SAAWH,EAAc8B,OAAQ,CACtC,MAAMI,EAAa,IAAIx8G,OAAOn3B,KAAK2xI,cAAe,KAClD3xI,KAAK0xI,eAAiB5gG,EAAKv7B,QAAQo+H,EAAY3zI,KAAKE,IACxD,MACIF,KAAK0xI,eAAiB5gG,EAE1B,OAAO9wC,KAAK0xI,cAChB,CAEA,aAAAle,GACIxzH,KAAK+kE,MAAQ,GACT/kE,KAAK4xI,SAAWH,EAAcI,aAAe7xI,KAAK8wC,KAAKloC,OACvD5I,KAAK+kE,MAAQ/kE,KAAK8wC,KAAK90C,MAAMgE,KAAKE,KAC3BF,KAAK8wC,KAAKloC,QACjB5I,KAAK+kE,MAAMpjE,KAAK3B,KAAK8wC,KAE7B,CAEA,OAAAuzC,CAAQwvD,GAAsB,GAC1B,OAAIA,GACkC,GAA9B7zI,KAAK0xI,eAAe9oI,QACpB5I,KAAK0zI,gBAEF1zI,KAAK0xI,gBAET1xI,KAAK8wC,IAChB,CAEA,aAAAgjG,GACI,OAAO9zI,KAAK+kE,MAAMn8D,MACtB,CAEA,QAAA85E,CAASmxD,GAAsB,GAC3B,GAAIA,EAAY,CACZ,GAAmC,GAA/B7zI,KAAK8xI,gBAAgBlpI,OACrB,IAAK,MAAM48D,KAAQxlE,KAAK+kE,MACpB/kE,KAAK8xI,gBAAgBnwI,KAAK6jE,EAAKt7D,OAAOlK,KAAK2xI,gBAGnD,OAAO3xI,KAAK8xI,eAChB,CACA,OAAO9xI,KAAK+kE,KAChB,CAEA,OAAAgvE,CAAQC,GACJ,OAAOh0I,KAAK+kE,MAAMivE,EACtB,CAEA,kBAAAnb,CAAmBob,GACf,MAAMlvE,EAAQ/kE,KAAK0iF,WACnB,IAAIyS,EAAY,EAChB,IAAK,MAAM3vB,KAAQT,EAAO,CACtB,GAAIS,EAAKlnD,WAAW21H,GAAgB,CAChC,MAAMja,EAAW,IAAIp8C,EAAO4vB,SAASrY,EAAW,GAC1CsY,EAAS,IAAI7vB,EAAO4vB,SAASrY,EAAW3vB,EAAK58D,QAEnD,OADa,IAAIg1E,EAAO8vB,UAAUssB,EAAUvsB,EAEhD,CACAtY,GACJ,CACA,MAAMlkE,EAAM,IAAI2sD,EAAO4vB,SAAS,EAAG,GACnC,OAAO,IAAI5vB,EAAO8vB,UAAUz8E,EAAKA,EACrC,CAEA,kBAAAijH,GACI,OAAOl0I,KAAKE,IAAI0I,MACpB,CAEA,YAAAmxH,GACI,OAAO/5H,KAAKE,GAChB,CAEA,sBAAAi0I,GACI,OAAOn0I,KAAKE,GAChB,CAEA,YAAAk0I,GACI,OAAOp0I,KAAKkyI,YAChB,CAEA,OAAA/uD,CAAQsgD,EAAcv4H,EAAoBq6E,EAAYC,MAClD,IAAInyE,EAAmB,MAUvB,OATIowH,EAAO,GACHA,EAAO,GACPpwH,GAAsB,KACjBowH,EAAO,MACZpwH,GAAsB,KAC1BA,EAAWA,EAAWowH,EAAK1lG,WAAa,IAAM/9B,KAAK4yI,aAAa1nI,IAEhEmI,EAAW,aAER,EAAAyrE,WAAW6D,SAASuC,mBAAmB7xE,EAClD,CAEA,WAAA60H,CAAY3oD,EAAiBkkD,EAAcv4H,EAAoBq6E,EAAYC,MACvE,IAAKvqF,EAAG8wE,WAAWwT,EAAIN,QACnB,OAAO,EACX,MAAMkE,EAAUnjF,KAAKmjF,QAAQsgD,EAAMv4H,GACnC,OAAIA,GAAQq6E,EAAYC,OAChBxlF,KAAKq0I,cAAclxD,EAAQlE,OAAQ,GAIpChkF,EAAG8wE,WAAWoX,EAAQlE,OACjC,CAEA,aAAAo1D,CAAc9vI,EAAkBqL,GAC5B,IAAK3U,EAAG8wE,WAAWxnE,GACf,OAAO,EACX,MACM+vI,EAAQ,IADK,EAAQ,MACb,CAAe/vI,GAE7B,IAAIihE,EACAwuE,EAAa,EACbtuC,GAAQ,EAEZ,KAAOlgC,EAAO8uE,EAAMjkI,QAChB,GAAI2jI,KAAgBpkI,EAAK,CACrB81F,GAAQ,EACR,KACJ,CAIJ,OAFI4uC,EAAMjkI,QACNikI,EAAM7jI,QACHi1F,CACX,CAEO,aAAA9X,CAAcrpF,GACjB,IAAKtJ,EAAG8wE,WAAWxnE,GACf,MAAO,GACX,MACM+vI,EAAQ,IADK,EAAQ,MACb,CAAe/vI,GAE7B,IAAIihE,EAAO,GASX,OAPOA,EAAO8uE,EAAMjkI,OAIhBikI,EAAMjkI,QACNikI,EAAM7jI,QAEH+0D,EAAKznC,WAAW3sB,MAC3B,CAEA,iBAAA2nH,CAAkBrsB,EAAiB57D,GAC/B9wC,KAAK+kE,MAAM2nC,GAAW57D,CAC1B,E,8ICjhBJ,0BACA,0BACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,0BACA,6BACA,QAWA,MAAakrE,EAKZ,OAAA/0B,GACCjnF,KAAKknF,qBAAqBC,MAC3B,CAEA,WAAArnF,GAPQ,KAAAonF,qBAAgF,IAAItJ,EAAOj7E,aAC1F,KAAAykF,oBAAwEpnF,KAAKknF,qBAAqBxxD,KAM3F,CAEV,WAAA2xD,CAAYktD,G,kDACjB,OAAIA,EACIv0I,KAAKwnF,WAAW+sD,EAASh1D,KAE7B,EAAAT,WAAWqB,sBAAwB,EAAArB,WAAW2I,gBAAkB,EAAA3I,WAAW6D,SAASmC,WAChF9kF,KAAKwnF,WAAW,EAAA1I,WAAW6D,SAAS3D,qBAErC,EACR,E,CAEA,WAAA0I,CAAY6sD,GACXA,EAAS5sD,UAAW,EACpB4sD,EAAS3sD,QAAS,EAClB,MAAMC,EAAW0sD,EAASh1D,IAAIN,OACfhiF,EAAKuhB,QAAQqpE,IACV,EAAA/I,WAAW6D,SAAS3D,oBAAoBC,SAGzDs1D,EAAS3sD,QAAS,GAEf2sD,EAASrpI,MAAQ0yE,EAAO2L,SAASC,UAChC,EAAAzJ,SAASiI,mBAAmBusD,EAASh1D,OACxCg1D,EAAS5sD,UAAW,GAEX,EAAA5H,SAASiI,mBAAmBpK,EAAOC,IAAI7Z,KAAK6jB,MACtD0sD,EAAS5sD,UAAW,EAEtB,CAEA,WAAAM,CAAYssD,GACX,MAAMrsD,EAAW,IAAItK,EAAOuK,SAASosD,EAASh1D,IAAKg1D,EAASrpI,OAAS0yE,EAAO2L,SAASC,UAAY5L,EAAOyK,yBAAyBE,UAAY3K,EAAOyK,yBAAyBC,MACxK,EAAAxJ,WAAW01D,mBACfx0I,KAAK0nF,YAAY6sD,GAClB,IAAI/rD,EAAS+rD,EAAS5sD,SAAW,WAAa,GAC1C4sD,EAAS3sD,SACZY,GAAkB,UACnB,MAAMjK,EAAUg2D,EAASh2D,QAAU,UAAY,GAC/C,IAAIk2D,EAAU,GAEd,GAAIF,EAASrpI,OAAS0yE,EAAO2L,SAASK,KAAM,CAC3C,MAAM5D,EAAa,EAAAlH,WAAW6D,SAASqD,WAAWuuD,EAASh1D,KAAKN,OAC5DhkF,EAAG8wE,WAAWia,KACjByuD,EAAU,QAEXvsD,EAASc,QAAU,CAAEA,QAAS,oBAAqB3H,MAAO,YAAa38E,UAAW,CAAC6vI,IACnFrsD,EAASe,aAAe,OAAST,EAASjK,EAAUk2D,EAEhDF,EAASh1D,IAAIN,OAAOr/E,SAAS,OAChCsoF,EAASU,SAAW,CACnBC,MAAOjL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,QAAS,eAC/EC,KAAMnL,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQ,gBAG9EZ,EAASU,SAAW,CACnBC,MAAOjL,EAAOC,IAAI7Z,KAAKuwE,EAASh2D,QAC/Bk2D,EAAUx3I,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,QAAS,qBAAuB7rF,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,QAAS,gBACjJ2rD,EAAUx3I,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,QAAS,iBAAmB7rF,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,QAAS,aAC9IC,KAAMnL,EAAOC,IAAI7Z,KAAKuwE,EAASh2D,QAC9Bk2D,EAAUx3I,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQ,qBAAuB7rF,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQ,gBAC/I2rD,EAAUx3I,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQ,iBAAmB7rF,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQ,aAI/I,KAAO,CACD,EAAAhK,WAAW2wC,iBACX,EAAA3wC,WAAW6D,SAAS+C,eAAe6uD,EAASh1D,OAC/Ck1D,EAAU,QAGZ,MAAMC,EAAaH,EAASG,WAAa,aAAe,GACxDxsD,EAASc,QAAU,CAAEA,QAAS,oBAAqB3H,MAAO,YAAa38E,UAAW,CAAC6vI,IACnFrsD,EAASe,aAAe,MAAQT,EAASksD,EAAan2D,EAAUk2D,EAEhEvsD,EAASU,SAAW,CACnBC,MAAOjL,EAAOC,IAAI7Z,KAAKywE,EAAUx3I,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQ,mBAAqB7rF,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQ,eACpKC,KAAMnL,EAAOC,IAAI7Z,KAAKywE,EAAUx3I,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQ,mBAAqB7rF,EAAKuH,KAAKskF,WAAY,KAAM,KAAM,YAAa,OAAQ,eAErK,CAEA,OAAOZ,CACR,CAEA,UAAAV,CAAW/oE,GAEV,IAAI4qE,EAAUv/E,QACd,MAAM5L,EAAU,EAAA6hF,SAASuJ,kBAAkB7qE,GAErCk2H,GAAY,eAElB,IAAK,MAAMh2I,KAAST,EACnB,KAAKS,EAAM4gF,IAAIN,OAAOr/E,SAAS,EAAAk/E,WAAWgH,cAAkBnnF,EAAMuM,MAAQ0yE,EAAO2L,SAASC,WAAa,EAAAzJ,SAASkmB,eAAetnG,EAAM4gF,IAAIN,SAAU,CAClJ,IAAIV,GAAU,EACVm2D,GAAa,EACZ,EAAA51D,WAAW01D,oBACfj2D,EAAU,EAAAwB,SAASgK,WAAWprF,EAAM4gF,KAAK,GACzCm1D,IAAa/1I,EAAMuM,MAAQ0yE,EAAO2L,SAASC,YAAaxpF,KAAK48G,cAAcj+G,EAAM4gF,OAElF8J,EAAQ1nF,KAAK,CAAE49E,IAAK5gF,EAAM4gF,IAAKr0E,KAAMvM,EAAMuM,KAAMqzE,QAASA,EAASm2D,WAAYA,EAAY9sD,QAAQ,EAAOD,UAAU,GACrH,CAMD,GAAIlpE,EAAIwgE,QAAU,EAAAH,WAAW6D,SAAS3D,oBAAoBC,OAAQ,CACjE,IAAI6K,GAAa,EACZ,EAAAhL,WAAW01D,oBACf1qD,EAAa,EAAA/J,SAASgK,WAAWtrE,GAAK,IACvCm/D,EAAOuB,SAASC,eAAe,aAAc,eAAgB0K,EAC9D,CAEA,GAAI,EAAAhL,WAAW01D,kBAAmB,CACjC,MAAMI,GAAU,eACVC,EAAW,UAAOpmG,SAASmmG,EAAQz/H,KAAKw/H,GAAY,gBAAgBt8H,OAAO,YACjF,EAAAymE,WAAWwF,aAAa,qBAAqBuwD,aAC9C,CAEA,OAAOxrD,CACR,CAEA,cAAAyrD,CAAer2H,GACd,MAAMs1D,EAAQ,EAAAgM,SAASimB,UAAU,EAAAlnB,WAAW6D,SAAS3D,qBACrD,IAAK,EAAAF,WAAWi2D,cAAgBhhE,EAAQ,MAAQ,EAAA+K,WAAW01D,kBAAmB,CAC7E,MAAMroH,EAAgC,GAChC6oH,EAAS,yBACf7oH,EAAMxqB,KAAK,CAAEypC,MAAO4pG,EAAQ1zD,YAAa,2DACzCn1D,EAAMxqB,KAAK,CAAEypC,MAAO,sBAAuBk2C,YAAa,4CAExD1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,mBAAoBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAC1G7mF,MAAb6mF,GACoB,0BAAnBA,EAAUl3C,OACb,EAAA0zC,WAAWm2D,iBAAgB,KAG9B,EAAAn2D,WAAWi2D,cAAe,CAC3B,CACD,CAEA,aAAAn4B,CAAcn+F,GACb,MAAM5K,EAAQ,EAAAksE,SAAS6F,SAASnnE,GAChC,IAAK,MAAMulD,KAAQnwD,EAClB,IAAKmwD,EAAKib,OAAOr/E,SAAS,QACzB,OAAO,EAET,OAAO,CACR,CAEA,WAAAs1I,CAAYX,GACX,GAAI,EAAAz1D,WAAWqB,qBAAsB,CACpC,MAAM15E,EAAoC,CACzC6oF,eAAe,EACfC,UAAW,0BACXC,WAAY,EAAA1Q,WAAWuB,qBACvB+O,gBAAgB,EAChBC,kBAAkB,EAClBytB,QAAS,CACR,aAAc,CAAC,MAAO,MAAO,OAAQ,OACrC,YAAa,CAAC,OAIhBl/B,EAAOznE,OAAOs5E,eAAehpF,GAASuC,KAAK44E,IAC1C,IAAKA,EACJ,OAED,IAAInjE,EAAM,EAAAqgE,WAAW6D,SAAS3D,oBAAoBC,OAC9Cs1D,IACH91H,EAAM81H,EAASh1D,IAAIN,OACfs1D,EAASrpI,MAAQ0yE,EAAO2L,SAASK,OACpCnrE,EAAMxhB,EAAKuhB,QAAQ+1H,EAASh1D,IAAIN,UAGlC,IAAK,MAAM89B,KAAOn7B,EAAY,CAC7B,MAAMvuE,EAAWpW,EAAKuW,SAASupG,EAAI99B,QAC7BomB,EAAUznB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKia,EAAKpL,IAC/C,EAAAyrE,WAAWgD,QAAQG,iBAAiB86B,EAAK1X,EAAS,CAAC,EAAAnjB,cAAcoO,MAAO,EAAAlO,cAAcU,KACvF,CACA,EAAAhE,WAAWgD,QAAQC,gBAErB,CACD,CAEA,cAAAk7B,CAAes3B,GACd,GAAI,EAAAz1D,WAAWqB,qBAAsB,CACpC,MAAM15E,EAAoC,CACzC6oF,eAAe,EACfC,UAAW,yBACXC,WAAY,EAAA1Q,WAAWuB,qBACvB+O,gBAAgB,EAChBC,kBAAkB,GAGnBzR,EAAOznE,OAAOs5E,eAAehpF,GAASuC,KAAK44E,IAC1C,GAAKA,EAAL,CAGA,IAAK,MAAMm7B,KAAOn7B,EAAY,CAC7B,MAAMpjE,EAAUvhB,EAAKuW,SAASupG,EAAI99B,QAClC,IAAIxgE,EAAM,EAAAqgE,WAAW6D,SAAS3D,oBAAoBC,OAC9Cs1D,IACH91H,EAAMxhB,EAAKuhB,QAAQ+1H,EAASh1D,IAAIN,SAEjC,MAAMomB,EAAUznB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKia,EAAKD,IAC/C,EAAAsgE,WAAWgD,QAAQG,iBAAiB86B,EAAK1X,EAAS,CAAC,EAAAnjB,cAAcoO,MAAO,EAAAlO,cAAcU,KACvF,CACA,EAAAhE,WAAWgD,QAAQC,cAVnB,GAYF,CACD,CAEA,MAAA3b,CAAOmuE,GACF,EAAAz1D,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAOmC,EAAKuW,SAAS+gI,EAASh1D,IAAIN,QAASS,OAAQ,4BAA6B12E,KAAK22E,IACjH,GAAIA,EAAS,CACZ,MAAMuwB,EAAWqkC,EAASh1D,IACU,GAAhCtiF,EAAKuqC,QAAQm4C,GAAS/2E,SACzB+2E,GAAoB1iF,EAAKuqC,QAAQ+sG,EAASh1D,IAAIN,SAC/C,MAAMgQ,EAAUrR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQ+1H,EAASh1D,IAAIN,QAASU,IAC7E,EAAAI,SAAS3Z,OAAO8pC,EAASjxB,OAAQgQ,EAAQhQ,QAEzCrB,EAAOznE,OAAO43E,iBAAiBkB,EAAS,CAAEkpC,WAAYv6C,EAAOw6C,WAAWC,SAExE,MAAMnb,EAAgBt/B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK0rG,EAASjxB,OAAS,EAAAH,WAAW4F,aAC7E,GAAI,EAAA3E,SAAS5gE,MAAM+9F,EAAcj+B,QAAS,CACzC,MAAMk+B,EAAev/B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQ+1H,EAASh1D,IAAIN,QAASU,EAAU,EAAAb,WAAW4F,aACvG,EAAA3E,SAAS3Z,OAAO82C,EAAcj+B,OAAQk+B,EAAal+B,OACpD,CACArB,EAAOuB,SAASC,eAAe,sBAChC,GAGH,CAEA,SAAAg+B,CAAUm3B,GACL,EAAAz1D,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAOmC,EAAKuW,SAAS+gI,EAASh1D,IAAIN,QAASS,OAAQ,iCAAkC12E,KAAK22E,IACtH,GAAIA,EAAS,CACZ,MAAMuwB,EAAWqkC,EAASh1D,IACpB0P,EAAUrR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKvH,EAAKuhB,QAAQ+1H,EAASh1D,IAAIN,QAASU,IAC7E,EAAAI,SAAS3Z,OAAO8pC,EAASjxB,OAAQgQ,EAAQhQ,QACzCrB,EAAOuB,SAASC,eAAe,sBAChC,GAGH,CAEA,OAAAt8C,CAAQyxG,GACH,EAAAz1D,WAAWqB,uBACd,EAAArB,WAAWgD,QAAQG,iBAAiBsyD,EAASh1D,IAAKg1D,EAASh1D,IAAK,CAAC,EAAA2C,cAAcoO,MAAO,EAAAlO,cAAc8M,OAAQ,GAAI,OAChH,EAAApQ,WAAWgD,QAAQC,aAAa,KAElC,EAtQD,uBA0QA,MAAaozD,EAMZ,WAAAr1I,CAAYyuB,GAHJ,KAAA+uF,SAAW,IAAI,EAAAC,SAItB,MAAM5yB,EAAmB,IAAIqxB,EAC7Bh8G,KAAKkyF,SAAWtU,EAAOznE,OAAOu0E,eAAe,WAAY,CAAEC,mBAAkByqD,iBAAiB,EAAM9lD,eAAe,IACnH1R,EAAOuB,SAASyL,gBAAgB,sBAAuB,IAAMD,EAAiB1D,WAC9ErJ,EAAOuB,SAASyL,gBAAgB,uBAAyB2pD,GAAa5pD,EAAiBuqD,YAAYX,IACnG32D,EAAOuB,SAASyL,gBAAgB,0BAA4B2pD,GAAa5pD,EAAiBsyB,eAAes3B,IACzG32D,EAAOuB,SAASyL,gBAAgB,kBAAoB2pD,GAAa5pD,EAAiBvkB,OAAOmuE,IACzF32D,EAAOuB,SAASyL,gBAAgB,qBAAuB2pD,GAAa5pD,EAAiByyB,UAAUm3B,IAC/F32D,EAAOuB,SAASyL,gBAAgB,mBAAqB2pD,GAAa5pD,EAAiB7nD,QAAQyxG,IAE3F32D,EAAOuB,SAASyL,gBAAgB,oBAAsB2pD,GAAav0I,KAAKmsF,SAASooD,IACjF32D,EAAOuB,SAASyL,gBAAgB,2BAA4B,IAAM5qF,KAAKq1I,mBACvEz3D,EAAOuB,SAASyL,gBAAgB,mBAAqB2pD,GAAav0I,KAAK4yF,QAAQ2hD,IAC/E32D,EAAOuB,SAASyL,gBAAgB,sBAAwB2pD,GAAav0I,KAAK6yF,WAAW0hD,IACrF32D,EAAOuB,SAASyL,gBAAgB,6BAA+B2pD,GAAav0I,KAAKs1I,kBAAkBf,IACnG32D,EAAOuB,SAASyL,gBAAgB,+BAAiC2pD,GAAav0I,KAAKu1I,oBAAoBhB,IACvG32D,EAAOuB,SAASyL,gBAAgB,oBAAqB,IAAM5qF,KAAK29G,YAChE//B,EAAOuB,SAASyL,gBAAgB,kBAAmB,IAAM5qF,KAAKkZ,UAC9D0kE,EAAOuB,SAASyL,gBAAgB,oBAAqB,IAAM5qF,KAAKw1I,UAAS,IACzE53D,EAAOuB,SAASyL,gBAAgB,uBAAwB,IAAM5qF,KAAKw1I,UAAS,IAC5E53D,EAAOuB,SAASyL,gBAAgB,sBAAwB2pD,GAAav0I,KAAKysG,QAAQ8nC,GAAU,IAC5F32D,EAAOuB,SAASyL,gBAAgB,mBAAqB2pD,GAAav0I,KAAKysG,QAAQ8nC,GAAU,IACzF32D,EAAOuB,SAASyL,gBAAgB,qBAAuB2pD,GAAav0I,KAAKypG,OAAO8qC,GAAU,IAC1F32D,EAAOuB,SAASyL,gBAAgB,kBAAoB2pD,GAAav0I,KAAKypG,OAAO8qC,GAAU,IACvF32D,EAAOuB,SAASyL,gBAAgB,sBAAuB,CAAC2pD,EAAUkB,IAAaz1I,KAAK+qF,WAAWwpD,EAAUkB,IACzG73D,EAAOuB,SAASyL,gBAAgB,qBAAsB,CAAC2pD,EAAUkB,IAAaz1I,KAAK+qF,WAAWwpD,EAAUkB,IACxG73D,EAAOuB,SAASyL,gBAAgB,0BAA4B2pD,GAAav0I,KAAK01I,eAAenB,IAC7F32D,EAAOuB,SAASyL,gBAAgB,8BAA+B,IAAM5qF,KAAKmrF,sBAC1EvN,EAAOuB,SAASyL,gBAAgB,oBAAsB2pD,GAAav0I,KAAK21I,SAASpB,IACjF32D,EAAOuB,SAASyL,gBAAgB,uBAAyB2pD,GAAav0I,KAAKqrF,YAAYkpD,IACvF32D,EAAOuB,SAASyL,gBAAgB,0BAA4B2pD,GAAav0I,KAAK41I,eAAerB,IAC7F32D,EAAOuB,SAASyL,gBAAgB,4BAA8B2pD,GAAav0I,KAAK61I,iBAAiBtB,IACjG32D,EAAOuB,SAASyL,gBAAgB,mBAAqB2pD,GAAav0I,KAAKwrF,QAAQ+oD,IAC/E32D,EAAOuB,SAASyL,gBAAgB,sBAAwB2pD,GAAav0I,KAAKusF,WAAWgoD,IACrF32D,EAAOuB,SAASyL,gBAAgB,wBAA0B2pD,GAAav0I,KAAK0rF,aAAa6oD,IACzF32D,EAAOuB,SAASyL,gBAAgB,kBAAoB2pD,GAAav0I,KAAK4nF,OAAO2sD,IAC7E32D,EAAOuB,SAASyL,gBAAgB,0BAA4B2pD,GAAav0I,KAAKm+G,eAAeo2B,IAC7F32D,EAAOuB,SAASyL,gBAAgB,kBAAoB2pD,GAAav0I,KAAKq+G,OAAOk2B,IAC7E32D,EAAOuB,SAASyL,gBAAgB,mBAAqB2pD,GAAav0I,KAAKy7H,QAAQ8Y,IAC/E32D,EAAOuB,SAASyL,gBAAgB,sBAAwB2pD,GAAav0I,KAAK07H,WAAW6Y,IACrF32D,EAAOuB,SAASyL,gBAAgB,oBAAsB2pD,GAAav0I,KAAK27H,SAAS4Y,IACjF32D,EAAOuB,SAASyL,gBAAgB,kBAAoB2pD,GAAav0I,KAAK81I,OAAOvB,IAE7Ev0I,KAAKktF,eAAYzxF,CAClB,CAEA,aAAO2xF,CAAOC,GAIb,OAHK,EAAA6E,WACJ,EAAAA,SAAW,IAAIijD,EAAS9nD,IAElB,EAAA6E,QACR,CAEM,MAAA4jD,CAAOvB,G,kDACZ,GAAI,EAAAz1D,WAAWqB,qBAAsB,CACpC,MAAMm8C,EAAer/H,EAAKuhB,QAAQ+1H,EAASh1D,IAAIN,QACzC9yD,QAAsC,EAAA2yD,WAAW+/B,eAAe,wBAAyB,SAAU,GAAI,CAAC,QAC9G,IAAK,MAAMl7G,KAAQwoB,EAClB,GAAIxoB,EAAK29E,YAAa,CACrB,MAAM4uB,EAAWtyB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKb,EAAK29E,YAAa39E,EAAKynC,QAC5D0+D,EAAUlsB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK83H,EAAc34H,EAAKynC,QAC7D,EAAA0zC,WAAWgD,QAAQG,iBAAiBiuB,EAAUpG,EAAS,CAAC,EAAA5nB,cAAcoO,MAAO,EAAAlO,cAAcU,KAC5F,CAED,EAAAhE,WAAWgD,QAAQC,cACpB,CACD,E,CAEA,QAAAyzD,CAASO,GAAoB,GAC5B,EAAAj3D,WAAWm2D,gBAAgBc,GAC3Bn4D,EAAOuB,SAASC,eAAe,aAAc,oBAAqB22D,EACnE,CAEA,QAAApa,CAAS4Y,GACJ,EAAAz1D,WAAWuB,sBACd,EAAAvB,WAAWu9C,cAAckY,EAASh1D,IAEpC,CAEA,UAAAm8C,CAAW6Y,GACV,MAAMpoH,EAAgC,GACtCA,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa,wDACxCn1D,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,iCAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,oBAAqBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAC5H,IAAKA,GAAgC,MAAnBA,EAAUl3C,MAC3B,OACD,MAAM46C,EAAa,EAAAlH,WAAW6D,SAASqD,WAAWuuD,EAASh1D,KAC3D,EAAAT,WAAWgD,QAAQG,iBAAiB+D,EAAYA,EAAY,CAAC,EAAA9D,cAAcoO,KAAM,EAAApO,cAAc2E,QAAS,EAAAzE,cAAcmO,QACtH,EAAAzR,WAAWgD,QAAQC,gBAErB,CAEA,OAAA05C,CAAQ8Y,GAEP,GADA,EAAAz1D,WAAWy9C,WACP,EAAAx8C,SAAS5gE,MAAMo1H,EAASh1D,IAAIN,QAAS,CACxC,MAAMprE,EAAQ,EAAAksE,SAAS6F,SAAS2uD,EAASh1D,KACrC1rE,EAAMjL,QACT,EAAAm3E,SAAS8P,QAAQ,EAAA/Q,WAAW09C,sBAC7B,IAAK,MAAMx4D,KAAQnwD,EACd,EAAAirE,WAAW6D,SAASoD,aAAa/hB,IACpC,EAAA8a,WAAW28C,QAAQz3D,EAEtB,MACC,EAAA+b,SAAS8P,QAAQ,EAAA/Q,WAAW09C,sBAC5B,EAAA19C,WAAW28C,QAAQ8Y,EAASh1D,KAE7B,EAAAT,WAAW29C,YACX7+C,EAAOznE,OAAO43E,iBAAiBnQ,EAAOC,IAAI7Z,KAAK,EAAA8a,WAAW09C,uBAC1D5+C,EAAOuB,SAASC,eAAe,oBAChC,CAEA,MAAAi/B,CAAOk2B,GACN,EAAAz1D,WAAW35E,IAAI25G,QAAQy1B,EAASh1D,KAAK,EACtC,CAEA,cAAA4+B,CAAeo2B,GACd,GAAI,EAAAz1D,WAAWuB,qBAAsB,CACvB,EAAAN,SAASiB,eAAe,EAAAlC,WAAWuB,sBAAhD,MACMl0D,EAAgC,EAAA2yD,WAAWw+C,qBAC3Cj8C,EAAQ,mBACRM,EAAc,6BAEpB/D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,QAAOK,aAAa,EAAOC,YAAaA,IAAe34E,KAAKs5E,IAChG,IAAKA,IAAcA,EAAUhB,YAC5B,OACD,GAAIgB,EAAUhB,YAAYhjE,WAAW,WAEpC,YADAs/D,EAAOznE,OAAOypE,mBAAmB,sDAGlC,MAAMqF,EAAS,EAAAnG,WAAW6D,SAAS+D,cAAc,EAAApJ,UAAUiJ,OAC3D,GAAI,EAAAxG,SAAS5gE,MAAMo1H,EAASh1D,IAAIN,QAAS,CACxC,MAAMwM,EAAY7N,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK89E,EAAUhB,YAAa2D,EAAQhoF,EAAKuW,SAAS+gI,EAASh1D,IAAIN,UACtG,EAAAH,WAAWgD,QAAQG,iBAAiBsyD,EAASh1D,IAAKkM,EAAW,CAAC,EAAAvJ,cAAcoO,MAAO,EAAAlO,cAAcU,KAClG,KAAO,CACN,MAAMgnB,EAAUlsB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK89E,EAAUhB,YAAa2D,EAAQhoF,EAAKuW,SAAS+gI,EAASh1D,IAAIN,UACpG,EAAAH,WAAWgD,QAAQG,iBAAiBsyD,EAASh1D,IAAKuqB,EAAS,CAAC,EAAA5nB,cAAcoO,MAAO,EAAAlO,cAAcU,KAChG,CACA,EAAAhE,WAAWgD,QAAQC,gBAErB,CACD,CAEA,YAAA2J,CAAa6oD,GACZ,GAAIv0I,KAAKktF,UAAW,CACnB,MAAMh6E,EAAKjW,EAAKuH,KAAKxE,KAAKktF,UAAUjO,OAAQhiF,EAAKuW,SAAS+gI,EAASh1D,IAAIN,SACvEj/E,KAAKg2I,oBAAoBzB,EAASh1D,IAAIN,OAAQ/rE,GAC9C0qE,EAAOuB,SAASC,eAAe,sBAChC,MACCxB,EAAOznE,OAAOoqE,uBAAuB,qBAEvC,CAEA,MAAAqH,CAAO2sD,GACN,IAAIhqI,EAAStN,EAAKuhB,QAAQ+1H,EAASh1D,IAAIN,QAEvC,GAAI10E,GADoB,EAAAu0E,WAAW6D,SAAS3D,oBACdC,OAAQ,CACrC10E,EAAStN,EAAKuhB,QAAQjU,GACtB,MAAM2I,EAAKjW,EAAKuH,KAAK+F,EAAQtN,EAAKuW,SAAS+gI,EAASh1D,IAAIN,SACxDj/E,KAAKg2I,oBAAoBzB,EAASh1D,IAAIN,OAAQ/rE,GAC9C0qE,EAAOuB,SAASC,eAAe,sBAChC,MACCxB,EAAOznE,OAAOoqE,uBAAuB,qBAEvC,CAEA,mBAAAy1D,CAAoB7jI,EAAce,GAEjC,GADA,EAAA6sE,SAAS3Z,OAAOj0D,EAAMe,IACjB,EAAA6sE,SAAS5gE,MAAMhN,GAAO,CAC1B,MAAM8jI,EAAe9jI,EAAO,EAAA2sE,WAAW4F,WACvC,GAAIzpF,EAAG8wE,WAAWkqE,GAAe,CAChC,MAAMjmD,EAAW98E,EAAK,EAAA4rE,WAAW4F,WACjC,EAAA3E,SAAS3Z,OAAO6vE,EAAcjmD,EAC/B,CACA,MAAMhK,EAAa7zE,EAAO,EAAA2sE,WAAWgH,YACrC,GAAI7qF,EAAG8wE,WAAWia,GAAa,CAC9B,MAAMgK,EAAW98E,EAAK,EAAA4rE,WAAWgH,YACjC,EAAA/F,SAAS3Z,OAAO4f,EAAYgK,EAC7B,CACD,CACD,CAEA,OAAAxE,CAAQ+oD,GACP,GAAIA,EAASh1D,IAAIN,OAAOr2E,OAAQ,CAC/B,IAAIi8E,EAAS0vD,EAASh1D,IAAIN,OACrB,EAAAc,SAAS5gE,MAAM0lE,KACnBA,EAAS5nF,EAAKuhB,QAAQqmE,IACvB,EAAA/F,WAAWgR,gBAAgBjL,EAC5B,CACD,CAEA,UAAA0H,CAAWgoD,GACV,MAAMx2D,EAAW,EAAAe,WAAW6D,SAAS3D,oBAAoBC,OACrDhkF,EAAG8wE,WAAWgS,IACjB,EAAAe,WAAWgR,gBAAgB/R,EAE7B,CAEA,OAAA6U,CAAQ2hD,GACHA,EAASh1D,IAAIN,OAAOr2E,SAGX,IAAI,EAAAitF,SACZjD,QAAQ2hD,EAASh1D,IAEvB,CAEQ,eAAA81D,GACP,GAAI,EAAAv2D,WAAW6D,SAAS1C,UAAW,CAClC,MAAMi2D,EAAU,EAAAp3D,WAAW6D,SAASyC,cACpCplF,KAAKmsF,SAAS,CAAE5M,IAAK22D,EAAShrI,KAAM0yE,EAAO2L,SAASK,KAAMrL,SAAS,EAAOm2D,YAAY,EAAO9sD,QAAQ,EAAOD,UAAU,KAC1G,IAAI,EAAAkO,SACZjD,QAAQsjD,EACb,CACD,CAEA,cAAAN,CAAerB,GACdt5I,EAAGE,KAAKo5I,EAASh1D,IAAIN,OAAQ,CAACl3E,EAAKhJ,KAClC,GAAIgJ,EACH61E,EAAOznE,OAAOoqE,uBAAuB,oBAAsBx4E,OACrD,CACN,MAAMouI,EAAUn2I,KAAKo2I,cAAcr3I,EAAMs3I,MAAM,EAAM,GAC/C7yI,EAAOvG,EAAKuW,SAAS+gI,EAASh1D,IAAIN,QACxC,IAAIq3D,EAAS,GACb,IACC,MAAMrzD,EAAUhoF,EAAG2Z,aAAa2/H,EAASh1D,IAAIN,OAAQ,QAGrDq3D,EAAS,MAFKrzD,EAAQr6E,OAASq6E,EAAQjnF,MAAM,cAAc4M,OAAS,GAE5C,YADTq6E,EAAQztE,MAAM,SAAW,IAAI5M,OACC,SAC9C,CAAE,MAAyD,GAAC,CAC5Dg1E,EAAOznE,OAAOoqE,uBAAuB/8E,EAAO,KAAO2yI,EAAUG,EAC9D,GAEF,CAEA,gBAAAT,CAAiBtB,GAChB,MACMvvG,EADQ,EAAA+6C,SAAS6F,SAAS2uD,EAASh1D,KACf32E,OACpBpF,EAAOvG,EAAKuW,SAAS+gI,EAASh1D,IAAIN,QACxCrB,EAAOznE,OAAOoqE,uBAAuB/8E,EAAO,KAAOwhC,EAAM,SAC1D,CAEA,aAAAoxG,CAAc9jH,EAAeikH,EAAaC,GACzC,MAAMC,EAASF,EAAK,IAAO,KAE3B,GAAIzmI,KAAKmK,IAAIqY,GAASmkH,EACrB,OAAOnkH,EAAQ,KAGhB,MAAMyoB,EAAQw7F,EACX,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC3C,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACrD,IAAIpgG,GAAK,EACT,MAAMpgC,EAAI,YAAMygI,GAEhB,GACClkH,GAASmkH,IACPtgG,QACMrmC,KAAK8hC,MAAM9hC,KAAKmK,IAAIqY,GAASvc,GAAKA,GAAK0gI,GAAUtgG,EAAI4E,EAAMnyC,OAAS,GAG7E,OAAO0pB,EAAMiY,QAAQisG,GAAM,IAAMz7F,EAAM5E,EACxC,CAEA,UAAA08C,CAAW0hD,GACV,GAAIA,EAASh1D,IAAIN,OAAOr2E,OAAQ,CAC/B,MACM8tI,EAAaz5I,EAAKuW,SAAS+gI,EAASh1D,IAAIN,QAC9C,IAAI5+B,EAAM,GAGV,GAFAA,EAAMA,EAAIn2C,OAAO,gCAAkCwsI,EAAY,MAE3D,EAAA7iB,aAAaQ,cAAgB,EAAAE,QAAQC,IAAK,CAC7C,MAAMxuB,EAAY,EAAAjmB,SAASimB,UAAUuuC,EAASh1D,KAC9C,GAAIymB,EAAY,GAAI,CACnB,MAAM75E,EAAgC,GAChC6oH,EAAS,gBACf7oH,EAAMxqB,KAAK,CAAEypC,MAAO4pG,EAAQ1zD,YAAa0kB,EAAY,qDACrD75E,EAAMxqB,KAAK,CAAEypC,MAAO,gBAAiBk2C,YAAa,iCAElD1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,cAAeK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACjHA,GAIL,EAAAuxC,aAAawb,YAAY/sD,EAAUl3C,OAAS4pG,EAAS,EAAAzgB,QAAQv+B,OAAS,EAAAu+B,QAAQC,KAC9E,EAAAX,aAAa6b,mBACb,EAAAx9C,SAASykD,iBAAiBpC,IALzB,EAAAriD,SAASykD,iBAAiBpC,IAO7B,MACC,EAAAriD,SAASykD,iBAAiBpC,EAE5B,MACC,EAAAriD,SAASykD,iBAAiBpC,EAE5B,CACD,CAEA,gBAAAoC,CAAiBpC,GAChB,MAAMpoH,EAAgC,GAChCuqH,EAAaz5I,EAAKuW,SAAS+gI,EAASh1D,IAAIN,QAC9C,IAAI5+B,EAAM,GACVA,EAAMA,EAAIn2C,OAAO,gCAAkCwsI,EAAY,MAC/DvqH,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAajhC,IACxCl0B,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,0BAA6Bo1D,EAAa,MAEjF94D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,mBAAoBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACtHA,GAAgC,MAAnBA,EAAUl3C,QAE5B,EAAA0zC,WAAW2X,IAAIkhC,YAAY4c,EAASh1D,IAAK,EAAAg0C,aAAa1qB,WACtD,EAAA/pB,WAAW2X,IAAIshC,kBAEjB,CAEA,MAAA7+G,GACK,EAAA4lE,WAAWqB,sBACV,EAAArB,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,aAAc4kF,OAAQ,yBAA0B12E,KAAKiqF,IACpFA,IACHjzF,KAAKs9G,SAAS3R,YAAY,EAAA7sB,WAAW6D,SAAS3D,oBAAqBiU,EAAY,IAC/E,EAAA+Z,SAASO,UAAUta,EAAYjzF,KAAKs9G,SAASlS,cAC7CxtB,EAAOuB,SAASC,eAAe,wBAC/BxB,EAAOuB,SAASC,eAAe,yBAKpC,CAEQ,QAAAu+B,GACH,EAAA7+B,WAAW6D,SAAS1C,YACvBrC,EAAOznE,OAAO43E,iBAAiB,EAAAjP,WAAW6D,SAASyC,eACnDxH,EAAOuB,SAASC,eAAe,iBAEjC,CAEQ,WAAAiM,CAAYR,GACnB,MAAMtmF,EAAWsmF,EAAS5L,OAC1B,GAAI4L,GAAYtmF,EAASqE,OAAQ,CAChC,MAAMyK,EAAWpW,EAAKuW,SAASq3E,EAAS5L,QACxC,GAAI5rE,EAASzK,OAEZ,YADA5I,KAAKkyF,SAAS7Q,MAAQ,SAAShuE,KAGjC,CACArT,KAAKkyF,SAAS7Q,MAAQ,MACvB,CAEQ,QAAA8K,CAASooD,GAChBv0I,KAAKqrF,YAAYkpD,EAASh1D,KAC1B,EAAAT,WAAWmO,mBACPsnD,EAASrpI,MAAQ0yE,EAAO2L,SAASK,MACpC5pF,KAAKktF,eAAYzxF,EACjBmiF,EAAOznE,OAAO43E,iBAAiBwmD,EAASh1D,KACxC,EAAAT,WAAW6D,SAASe,gBAAgB6wD,EAASh1D,KAC7C3B,EAAOuB,SAASC,eAAe,yBAC/BxB,EAAOuB,SAASC,eAAe,kBAE/Bp/E,KAAKktF,UAAYqnD,EAASh1D,GAE5B,CAEQ,UAAAwL,CAAWwpD,EAAoBkB,GACtC,GAAI,EAAA32D,WAAWqB,qBAAsB,CAGpC,IAAI33C,EAAWitG,GAAYA,EAAS7sI,OAAU6sI,EAAYlB,EAAW,CAACA,GAAY,GAGlF,GAFIA,IAAa/rG,EAAQ9iC,KAAK05C,GAAKA,EAAEmgC,IAAIN,QAAUs1D,EAASh1D,IAAIN,UAC/Dz2C,EAAU,CAAC+rG,KAAa/rG,IACH,GAAlBA,EAAQ5/B,OACX,OAED,MAAMujB,EAAgC,GACtC,IAAIk1D,EACJ,GAAI74C,EAAQ5/B,OAAS,EACpBy4E,EAAQ,eACRl1D,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa,UAAY94C,EAAQ5/B,OAAS,qBACrEujB,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,yCACjC,CACN,MAAMniE,EAAQ,EAAA4gE,SAAS5gE,MAAMqpB,EAAQ,GAAG+2C,IAAIN,QACtC8uB,EAAO5uF,EAAQ,YAAc,OAC7B9L,EAAWpW,EAAKuW,SAASg1B,EAAQ,GAAG+2C,IAAIN,QAC9CoC,EAAQliE,EAAQ,mBAAqB,cACrCgN,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa,UAAYysB,EAAO,KAAQ16F,EAAW,OAC9E8Y,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,iBAAmBjuE,GAC3D,CAEAuqE,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAOA,EAAOK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAC9G,GAAKA,GAAgC,MAAnBA,EAAUl3C,MAA5B,CAEA,IAAK,MAAM7S,KAAUiQ,EACpB,EAAAs2C,WAAWgD,QAAQG,iBAAiB1pD,EAAOgnD,IAAKhnD,EAAOgnD,IAAK,CAAC,EAAA2C,cAAcoO,MAAO,EAAAlO,cAAcmO,QACjG,EAAAzR,WAAWgD,QAAQC,cAHZ,GAKT,CACD,CAEO,sBAAA60D,CAAuBrC,GACzB,EAAAz1D,WAAWqB,uBACV,EAAAJ,SAAS5gE,MAAMo1H,EAASh1D,IAAIN,QAC/Bj/E,KAAKmyF,iBAAiBoiD,EAASh1D,KAE/Bv/E,KAAK62I,iBAAiBtC,EAASh1D,IAAIN,QAGtC,CAIO,iBAAAq2D,CAAkBf,GACxB,MAAM52D,EAAc39E,KAAK82I,sBAAsBvC,GAC3C52D,GACH,EAAAuT,iBAAiBj2E,KAAK0iE,EAAa42D,EAASh1D,IAC9C,CAEO,mBAAAg2D,CAAoBhB,GAC1B,MAAM52D,EAAc39E,KAAK82I,sBAAsBvC,GAC/C,IAAK52D,EAAa,OAElB,IAAK,EAAAuT,iBAAiBY,aAAanU,EAAa42D,EAASh1D,KAExD,YADA,EAAA2R,iBAAiBC,MAAMxT,EAAa42D,EAASh1D,KAG9C,MAAMw3D,EAAW95I,EAAKuW,SAAS+gI,EAASh1D,IAAIN,QAC5CrB,EAAOznE,OAAOypE,mBACb,6DAA6Dm3D,mDAC7D,CAAEhlD,OAAO,GAAQ,SAChB/oF,KAAKgpF,IACS,UAAXA,GACH,EAAAd,iBAAiBC,MAAMxT,EAAa42D,EAASh1D,MAEhD,CAEQ,qBAAAu3D,CAAsBvC,GAC7B,GAAKA,GAAaA,EAASh1D,KAAQtkF,EAAG8wE,WAAWwoE,EAASh1D,IAAIN,QAA9D,CAIA,GAAK,EAAAH,WAAW6D,SAASmC,WAIzB,OAAO,EAAAhG,WAAW6D,SAASqC,uBAH1BpH,EAAOznE,OAAOypE,mBAAmB,8CAFlC,MAFChC,EAAOznE,OAAOypE,mBAAmB,2DAQnC,CAEO,cAAA81D,CAAenB,GACrB,GAAI,EAAAz1D,WAAWqB,qBAAsB,CACpC,MAAMh0D,EAAgC,GACtC,IAAIkkE,EAAc,GAClB,MAAMh9E,EAAWpW,EAAKuW,SAAS+gI,EAASh1D,IAAIN,QACtC/zE,EAAO,EAAA60E,SAAS5gE,MAAMo1H,EAASh1D,IAAIN,QAAU,YAAc,OACjEoR,EAAcA,EAAYnmF,OAAO,mBAAoBgB,EAAM,KAAOmI,EAAU,MAC5E8Y,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,0BAA4BjuE,IAEnEuqE,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,mBAAoBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IACtHA,GAAgC,MAAnBA,EAAUl3C,QAE5BprC,KAAK42I,uBAAuBrC,GAC5B,EAAAz1D,WAAWgD,QAAQC,iBAErB,CACD,CAEO,oBAAAi1D,CAAqBzC,GAC3B,GAAI,EAAAz1D,WAAWqB,qBAAsB,CACpC,MAAMh0D,EAAgC,GACtC,IAAIkkE,EAAc,GAClB,MAAMh9E,EAAWpW,EAAKuW,SAAS+gI,EAASh1D,IAAIN,QAC5CoR,EAAcA,EAAYnmF,OAAO,oBAAsBmJ,EAAU,MACjE8Y,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,0BAA4BjuE,IAEnEuqE,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,0BAA2BK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAC7HA,GAAgC,MAAnBA,EAAUl3C,QAE5BprC,KAAKmyF,iBAAiBoiD,EAASh1D,KAC/B,EAAAT,WAAWgD,QAAQC,iBAErB,CACD,CAEO,gBAAAoQ,CAAiB1zE,GACFxhB,EAAKuW,SAASiL,EAAIwgE,QAAvC,MACMg4D,EAAsBntI,QAI5B,GAHA,EAAAooF,SAASglD,WAAWz4H,EAAKw4H,GAAS,GACpBA,EAAQruI,OAGrB,IAAK,MAAM6V,KAAOw4H,EACjB,EAAAn4D,WAAWgD,QAAQG,iBAAiBxjE,EAAI8gE,IAAK9gE,EAAI8gE,IAAK,CAAC,EAAA2C,cAAcoO,KAAM,EAAApO,cAAcC,SAAU,EAAAD,cAAcW,UAAW,EAAAX,cAAc2E,QAAS,EAAAzE,cAAcmO,OAGpK,CAEO,gBAAAsmD,CAAiB5sD,GACvB,MAAMktD,EAAUv5D,EAAOC,IAAI7Z,KAAKimB,EAAU,EAAAnL,WAAW4F,YACrD,EAAA5F,WAAWgD,QAAQG,iBAAiBk1D,EAASA,EAAS,CAAC,EAAAj1D,cAAcoO,KAAM,EAAApO,cAAcC,SAAU,EAAAD,cAAcW,UAAW,EAAAX,cAAc2E,QAAS,EAAAzE,cAAcmO,OAClK,CAEO,kBAAApF,GACN,GAAI,EAAArM,WAAWqB,sBAAwB,EAAArB,WAAW6D,SAAS1C,UAAW,CACrE,MAAM9zD,EAAgC,GACtC,IAAIkkE,EAAc,GAClBA,EAAcA,EAAYnmF,OAAO,sCACjCiiB,EAAMxqB,KAAK,CAAEypC,MAAO,MAAOk2C,YAAa+O,IACxClkE,EAAMxqB,KAAK,CAAEypC,MAAO,KAAMk2C,YAAa,6CAEvC1D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,uBAAwBK,aAAa,EAAOC,YAAa,qBAAsB34E,KAAKs5E,IAC/H,IAAKA,GAAgC,MAAnBA,EAAUl3C,MAC3B,OACD,MAAMg0F,EAAY,EAAAtgD,WAAW6D,SAAS3D,oBAClCogD,EAAUngD,OAAOr2E,SACpB5I,KAAKmyF,iBAAiBitC,GACtB,EAAAtgD,WAAWgD,QAAQC,iBAGtB,CACD,CAEO,QAAA4zD,CAASpB,GACX,EAAAz1D,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,OAAQ4kF,OAAQ,wCAAyC12E,KAAKouI,IAC7FA,IACH,EAAAt4D,WAAWgD,QAAQG,iBAAiBsyD,EAASh1D,IAAK3B,EAAOC,IAAI7Z,KAAK,IAAK,CAAC,EAAAke,cAAcoO,MAAO,EAAAlO,cAAc0mB,MAAOsuC,EAASr5G,YAC3H,EAAA+gD,WAAWgD,QAAQC,aAAa,KAIpC,CAEO,UAAAm1D,CAAWz4H,EAAiBw4H,EAAqB3hE,GACvD,MAAMyI,EAAWzI,EAAQ,EAAAwJ,WAAW6D,SAAS3D,oBAAsBvgE,EAC7DvgB,EAAU,EAAA6hF,SAASuJ,kBAAkBvL,GAE3C,IAAK,MAAMp/E,KAAST,EACnB,GAAIS,EAAMuM,MAAQ0yE,EAAO2L,SAASC,UAAW,CAC5C,MAAMnrF,EAAOpB,EAAKuW,SAAS7U,EAAM4gF,IAAIN,QACjC,EAAAc,SAASkmB,eAAetnG,EAAM4gF,IAAIN,SAAmB,QAAR5gF,GAA0B,UAARA,EAClE44I,EAAQt1I,KAAK,CAAE49E,IAAK5gF,EAAM4gF,IAAKr0E,KAAMvM,EAAMuM,KAAMqzE,SAAS,EAAOm2D,YAAY,EAAO9sD,QAAQ,EAAOD,UAAU,IAE7G3nF,KAAKk3I,WAAWv4I,EAAM4gF,IAAK03D,GAAS,EACtC,CAEF,CAEQ,MAAAxtC,CAAO8qC,EAAoB10B,GAC9B,EAAA/gC,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,UAAW4kF,OAAQ,yBAA0B12E,KAAK4mF,IACrF,GAAIA,EAAQ,CACX,IAAI3F,EAAU,EAAAnL,WAAW6D,SAAS3D,oBAAoBC,OAClDs1D,IAAa10B,IAChB51B,EAAU,EAAAlK,SAASymB,WAAW+tC,EAASh1D,IAAIN,SAC5CgL,EAAUhtF,EAAKuH,KAAKylF,EAAS2F,GAC7B,EAAA7P,SAAS6C,QAAQqH,GACjBrM,EAAOuB,SAASC,eAAe,sBAChC,GAGH,CAEQ,OAAAqtB,CAAQ8nC,EAAoB10B,GAC/B,EAAA/gC,WAAWqB,sBACdvC,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,WAAY4kF,OAAQ,yBAA0B12E,KAAK22E,IACtF,GAAIA,EAAS,CACZ,IAAIsK,EAAU,EAAAnL,WAAW6D,SAAS3D,oBAAoBC,OAClDs1D,IAAa10B,IAChB51B,EAAU,EAAAlK,SAASymB,WAAW+tC,EAASh1D,IAAIN,SAC5C,IAAI16E,EAAWtH,EAAKuH,KAAKylF,EAAStK,EAAU,QACxC1iF,EAAKuqC,QAAQm4C,KAChBp7E,EAAWtH,EAAKuH,KAAKylF,EAAStK,IAC/B,EAAAI,SAASnsE,UAAUrP,EAAU,gBAC7Bq5E,EAAOuB,SAASC,eAAe,sBAChC,GAGH,EArkBD,Y,wIClSA,0BACA,0BACA,0BACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,yBAEA,IAAYkX,GAAZ,SAAYA,GAAe,yBAAS,oBAAO,CAA3C,CAAYA,IAAY,eAAZA,EAAY,KAoCxB,MAAaH,UAAiB,EAAA1T,SAa7B,WAAA3iF,GACC0C,QAZO,KAAA60I,OAAkB,GAClB,KAAAC,UAAyB,GACzB,KAAAC,gBAAkB,GAClB,KAAAvxB,UAAY,EACZ,KAAAC,QAAU,EACV,KAAArhC,SAAW,GACX,KAAA4yD,cAAgB,GAChB,KAAAC,UAAY,GACZ,KAAAC,cAA4B,GAC5B,KAAAp6B,SAAW,IAAI,EAAAC,QAIvB,CAEA,SAAApqB,CAAUwB,GACT,GAAI,EAAA7V,WAAW6D,SAAS1C,YACvBjgF,KAAK6tF,QAAQ8G,EAAOl+E,SAAS8oE,KAC7Bv/E,KAAK23I,eAAehjD,GAChB30F,KAAKgmH,UAAY,GAAG,CACvB,MAAM4xB,EAAQ53I,KAAK03I,cAAc,GAC3Br5D,EAAUu5D,EAAMv5D,QACtB,GAAIA,EAAS,CACZ,MAAMd,EAAU,IAAI,EAAAC,aACpBD,EAAQzkE,OACR,MAAM8qE,EAAWrG,EAAQqjC,mBAAmBviC,GAC5C,EAAAS,WAAWmO,mBACXrP,EAAOznE,OAAO43E,iBAAiBnK,EAAU,CAAEu0C,WAAYv6C,EAAOw6C,WAAWC,SAAUrvH,KAAKssF,IACvF,MAAMrkE,EAAM,IAAI2sD,EAAO4vB,SAASxtG,KAAK03I,cAAc,GAAGnjC,SAAW,EAAG,GAC9D/oG,EAAQ,IAAIoyE,EAAOyX,MAAMpkE,EAAKA,GACpCqkE,EAAK1T,WAAa,CAAC,IAAIhE,EAAO8vB,UAAUz8E,EAAKA,IAC7CqkE,EAAKqY,YAAYniG,IAInB,MAA6B,GAAlBosI,EAAMrjC,UAChBv0G,KAAK63I,qBAAqBD,EAAM77I,KAElC,CAEF,CAEA,oBAAA87I,CAAqBn8F,GACpB,MAAM8wF,EAA2B,GACjC,IAAIv5C,EAAav3C,EAAKnlC,cAClBmF,EAAMu3E,EAENA,EAAW30E,WAAW,OACzB20E,EAAav3C,EAAKtgC,UAAU,GAC5BM,EAAM1b,KAAK83I,qBAEV7kD,EADiB,UAAdA,EACUv3E,EAEA,KAAOggC,EAAKtgC,UAAU,IAIrCpb,KAAKs9G,SAAS3R,YAAY,EAAA7sB,WAAW6D,SAASqB,iBAAkBiP,EAAY,CAAC,SAAU,GAAG,GAAO,GACjG,MAAMzsD,EAAUxmC,KAAKs9G,SAASlS,aAE9B,IAAK,MAAM51F,KAASgxB,EACfxmC,KAAK+3I,cAAcr8H,EAAKlG,EAAMm3F,cACjC6/B,EAAa7qI,KAAK6T,GAKhBg3H,EAAa5jI,QAAU,IAC1B,EAAAokG,SAAS7gB,SAASqgD,EAAa,IAC/B,EAAAx/B,SAASO,UAAUta,EAAYu5C,GAC/B,EAAAx/B,SAASM,cAAcra,GACvBrV,EAAOuB,SAASC,eAAe,wBAC/BxB,EAAOuB,SAASC,eAAe,uBAEjC,CAEA,aAAA24D,CAAc7nC,EAAkB1qC,GAC/B,MAAMx0B,EAASw0B,EAAKxpE,MAAM,KAC1B,GAAIg1C,EAAOpoC,OAAS,EAAG,CACTooC,EAAO,GAAGh1C,MAAM,KAA7B,MACMgmD,EAAoBhR,EAAO,GAAGykC,YAAY,KAEhD,OAA0E,GAD9DzkC,EAAO,GAAG51B,UAAU,EAAG4mC,GACxBmjD,cAAc+K,OAAUz0G,EAAW,CAAEu8I,YAAa,QAC9D,CACA,OAAO,CACR,CAEA,kBAAAF,GACC,IAAIp8H,EAAM,GACV,MAAMqpD,EAAQ/kE,KAAK0iF,WACnB,GAAI3d,EAAMn8D,OAAS5I,KAAKkyI,aAAc,CACrC,IAAIxiI,EAAI1P,KAAKkyI,aAAe,EAC5B,MAAM/K,EAASnnI,KAAK03I,cAAc,GAAGvQ,OACrC,KAAOz3H,EAAIq1D,EAAMn8D,QAAQ,CACxB,MAAM48D,EAAOT,EAAMr1D,KACbuoI,EAAWj4I,KAAKk4I,cAAc1yE,GACpC,KAAIyyE,EAAS9Q,OAASA,GAGrB,MAFAzrH,GAAO,IAAMu8H,EAASl8I,IAIxB,CACD,CAEA,OADA2f,EAAMA,EAAI0uC,oBAAoBh5C,OACvBsK,CACR,CAEA,aAAA44E,CAAcK,GACT,EAAA7V,WAAW6D,SAAS1C,YACvBjgF,KAAK6tF,QAAQ8G,EAAOl+E,SAAS8oE,KAC7Bv/E,KAAK23I,eAAehjD,GAChB30F,KAAKgmH,UAAY,IACpB,EAAAlnC,WAAWmO,mBACXrP,EAAOznE,OAAO43E,iBAAiB,EAAAjP,WAAW6D,SAASyC,cAAe,CAAE+yC,WAAYv6C,EAAOw6C,WAAWC,SAAUrvH,KAAKssF,IAChH,MAAM6iD,EAAM,IAAI,EAAA11D,SAAS,EAAA3D,WAAW6D,SAASyC,cAAcnG,QACrD+6C,EAAWme,EAAI1nC,WAAWzwG,KAAKgmH,SAAW,GAC1CvY,EAAS0qC,EAAI1nC,WAAWzwG,KAAKimH,QAC7Bz6G,EAAQ,IAAIoyE,EAAOyX,MAAM2kC,EAAUvsB,GACzCnY,EAAK1T,WAAa,CAAC,IAAIhE,EAAO8vB,UAAUssB,EAAUvsB,IAClDnY,EAAKqY,YAAYniG,MAIrB,CAEA,YAAAgpF,CAAaG,GACZ,GAAI,EAAA7V,WAAW6D,SAAS1C,UAAW,CAClC,MAAMw5C,EAAcz5H,KAAKo4I,gBAAgBzjD,GACzC,GAAI8kC,EAAYx6C,OAAOr2E,OAAS,EAI/B,GAHA5I,KAAK6tF,QAAQ8G,EAAOl+E,SAAS8oE,KAC7Bv/E,KAAK23I,eAAehjD,GAEhB30F,KAAKgmH,UAAY,EAAG,CACvB,IAAIr/B,EAAU,GACVsxD,EAAWj4I,KAAK03I,cAAc,GAElC,GAAIO,EAAU,CACb,IAAIlnH,EAAQ/wB,KAAKo0I,eACbiE,EAAaJ,EAAS9Q,OAAS,EACnC,KAAO8Q,EAAS9Q,OAAS,GAAG,CAC3B,MAAM3hE,EAAOxlE,KAAK0iF,WAAW3xD,KAC7BknH,EAAWj4I,KAAKk4I,cAAc1yE,GAC1ByyE,EAAS9Q,OAASkR,IACrB1xD,EAAUsxD,EAASl8I,KAAO,IAAM4qF,EAChC0xD,EAAaJ,EAAS9Q,OAExB,CACD,CACAxgD,EAAU,SAAWA,EAAQv1E,OAE7B,MAAMqlF,EAAM,IAAI,EAAAZ,QAChBY,EAAI5I,QAAQ4rC,GACZhjC,EAAI8hC,eAAe5xC,EACpB,MAEC/I,EAAOznE,OAAOoqE,uBAAuB,yBAGtC3C,EAAOznE,OAAOoqE,uBAAuB,6BAEvC,CACD,CAEO,eAAA63D,CAAgBzjD,GACtB,MAAMhtB,EAAWgtB,EAAOl+E,SAAS8oE,IAAIN,OAC/BZ,EAAUjiF,SAASurE,EAASvsD,UAAUusD,EAAS/+D,OAAS,EAAG++D,EAAS/+D,OAAS,IAC7E20E,EAAU,IAAI,EAAAC,aAEpB,OADAD,EAAQzkE,OACDykE,EAAQqjC,mBAAmBviC,EACnC,CAEA,cAAAs5D,CAAehjD,GACd,MAAM5vB,EAAQ/kE,KAAK60F,iBAAiBF,GACpC30F,KAAK03I,cAAgB,GACrB13I,KAAKgmH,UAAY,EACjBhmH,KAAKimH,QAAU,EAGf,IAAK,MAAMzgD,KAAQT,EAAO,CAEzB,MAAMkzE,EAAWj4I,KAAKk4I,cAAc1yE,IAChCxlE,KAAKgmH,SAAW,GAAKiyB,EAASK,OAASt4I,KAAKgmH,YAC/ChmH,KAAKgmH,SAAWiyB,EAASK,SAEtBt4I,KAAKimH,OAAS,GAAKgyB,EAASM,KAAOv4I,KAAKimH,UAC3CjmH,KAAKimH,OAASgyB,EAASM,MAExBv4I,KAAK03I,cAAc/1I,KAAKs2I,EACzB,CACD,CAEA,QAAA7hD,CAASzB,GAER,GADA30F,KAAKi5H,YAAYtkC,GACb30F,KAAKk5H,eAAiB,EAAA3zC,YAAY6zC,KAGrC,GAFAp5H,KAAKw4I,cAAcx4I,KAAKmyH,SAASlzC,QAE7Bj/E,KAAKy4I,gBAAiB,CACzBz4I,KAAK04I,YAAY14I,KAAK4kF,UACtB,MAAMl+D,EAAW1mB,KAAK24I,wBAAwBhkD,EAAOrS,UAAUiqB,QAE/D,GAAI7lF,GAAY,EAAG,CAClB,MAAMkyH,EAAc54I,KAAK64I,oBAAoBnyH,GAE7C,GAAIkyH,GAAe,EAAG,CACrB,MAAM1oD,EAASlwF,KAAK84I,SAASF,GAC7B,GAAI1oD,EAAO6oD,QAAU,EAAG,CACvB,MAAMC,EAAc,EAAAl6D,WAAW6D,SAASpF,QAAQqjC,mBAAmB1wB,EAAO6oD,SAC1E,EAAAj6D,WAAWmO,mBACXrP,EAAOznE,OAAO43E,iBAAiBirD,EAAa,CAAE7gB,WAAYv6C,EAAOw6C,WAAWC,SAAUrvH,KAAK2rF,IAC1F,MAAM1jE,EAAM,IAAI2sD,EAAO4vB,SAAStd,EAAO+oD,SAAW,EAAG,GACrDtkD,EAAO/S,WAAa,CAAC,IAAIhE,EAAO8vB,UAAUz8E,EAAKA,IAC/C,MAAMzlB,EAAQ,IAAIoyE,EAAOyX,MAAMpkE,EAAKA,GACpC0jE,EAAOgZ,YAAYniG,IAErB,MACCxL,KAAK63I,qBAAqB3nD,EAAOx0E,IAEnC,CACD,CACD,MAECkiE,EAAOznE,OAAOoqE,uBAAuB,sBAGxC,CAEA,QAAAu4D,CAASF,GACR,MAAM1oD,EAASlwF,KAAKq3I,OAAOuB,GAC3B,KAAyB,GAAlB1oD,EAAO6oD,SAAgBH,EAAc,OAC3CA,EACkB,MAEI54I,KAAKq3I,OAAOuB,GACvB1lI,GAAKg9E,EAAO/9E,QAGxB,OAAO+9E,CACR,CAEA,OAAArC,CAAQ7pB,EAAkBwvD,GAAyB,GAClD,QAAIxvD,EAAKib,OAAOr2E,SACfpG,MAAMqrF,QAAQ7pB,EAAMwvD,GACpBxzH,KAAKw4I,cAAcx0E,EAAKib,SACjB,EAGT,CAEA,aAAAu5D,CAAcj0I,GACTA,EAASqE,SACZ5I,KAAKwT,SAAWvW,EAAKuW,SAASjP,EAAU,QACxCvE,KAAKwT,SAAWvW,EAAKuW,SAASxT,KAAKwT,SAAU,SAC7CxT,KAAKwT,SAAWvW,EAAKuW,SAASxT,KAAKwT,SAAU,SAC7CxT,KAAKwT,SAAWvW,EAAKuW,SAASxT,KAAKwT,SAAU,QAC7CxT,KAAKwT,SAAWvW,EAAKuW,SAASxT,KAAKwT,SAAU,QAC7CxT,KAAKwT,SAAWvW,EAAKuW,SAASxT,KAAKwT,SAAU,QAC7CxT,KAAK4kF,SAAW,EAAA9F,WAAW6D,SAASuC,mBAAmBllF,KAAKwT,SAAW,SAASyrE,OAChFj/E,KAAKw3I,cAAgB,EAAA14D,WAAW6D,SAASuC,mBAAmBllF,KAAKwT,SAAW,SAASyrE,OACrFj/E,KAAKy3I,UAAY,EAAA34D,WAAW6D,SAASyC,cAAcnG,OAErD,CAEA,mBAAAi6D,CAAoBvkD,GAcnB,OAbA30F,KAAKi5H,YAAYtkC,GACjB30F,KAAKu3I,gBAAkB,GACGv3I,KAAKk5H,cAC3Bl5H,KAAKk5H,eAAiB,EAAA3zC,YAAY6zC,MAAQp5H,KAAKk5H,eAAiB,EAAA3zC,YAAYytD,MAC3EhzI,KAAKk5H,eAAiB,EAAA3zC,YAAYytD,KACrChzI,KAAKw4I,cAAc,EAAA15D,WAAW6D,SAAS2C,cAAcrG,QACrDj/E,KAAKm5I,2BAA2Bn5I,KAAKmyH,SAASlzC,OAAQ0V,EAAOrS,aAE7DtiF,KAAKw4I,cAAcx4I,KAAKmyH,SAASlzC,QACjCj/E,KAAKm5I,2BAA2Bn5I,KAAKw3I,cAAe7iD,EAAOrS,YAE5DtiF,KAAKo5I,uBAECp5I,KAAKu3I,gBAAgB3uI,MAC7B,CAEA,YAAAyqF,CAAasB,EAA2B0kD,GACvC,GAAI,EAAAv6D,WAAW6D,SAAS1C,UAAW,CAClC,MACM/0E,EAAOlL,KAAKk5H,cACZziC,EAAM,IAAI,EAAAZ,QAEhB,GAAI3qF,GAAQ,EAAAq6E,YAAY4D,KAAOj+E,GAAQ,EAAAq6E,YAAY0K,QAAS,CAC3D,MAAMzkF,EAAQ,IAAIoyE,EAAOyX,MAAMV,EAAOrS,UAAUvxD,MAAO4jE,EAAOrS,UAAU92D,KAClE9P,EAAMi5E,EAAOl+E,SAAS4tE,QAAQ74E,GACpC,IAAIynG,EAAUjzG,KAAKs5I,oBAAoB59H,EAAK29H,GAC5CpmC,EAAUjzG,KAAKu5I,cAActmC,GAC7B,MAAMzd,EAAU,IAAI5X,EAAO6X,cAAcwd,GACzCte,EAAOe,cAAcF,EAAShqF,EAE/B,KAAO,CACN,MAAMguI,EAAe,EAAA16D,WAAW6D,SAAS0C,cACnC8mB,EAAW,EAAArtB,WAAW6D,SAASpF,QAAQ/5E,KAAKg2I,EAAav6D,QACzDmtB,EAAW,EAAAttB,WAAW6D,SAASpF,QAAQ2lD,SAAS,MAAO/2B,GAG7D,GAFAnsG,KAAK4kF,SAAW5kF,KAAKmjF,QAAQipB,EAAS/tB,SAASY,OAE3Cj/E,KAAKk5I,oBAAoBvkD,GAAS,CACrC,IAAIse,EAAUjzG,KAAKy5I,cAAcJ,GACjC5iD,EAAIo8C,OAAO5/B,GACXA,EAAUxc,EAAI0jC,WAAWlnB,GACzB,MAAMymC,EAAe15I,KAAKu5I,cAActmC,GACxCxc,EAAI5I,QAAQ2rD,GACZ/iD,EAAIyhC,WAAWwhB,EAChB,CACD,CACD,MAEC97D,EAAOznE,OAAOoqE,uBAAuB,mBAEvC,CAEA,aAAAg5D,CAActmC,GACb,MAAO,0BAGPA,eAGD,CAEA,aAAAwmC,CAAcJ,GACb,IAAIloI,EAAM,EACN8hG,EAAU,GACV0mC,EAAU,EACVxS,GAAU,EAEd,IAAK,MAAM3hE,KAAQxlE,KAAK03I,cAAe,CACtC,GAAwC,GAApClyE,EAAKzpE,KAAKopG,cAAc,SAC3B,SACD,IAAIppG,EAAOypE,EAAKzpE,KAEhB,KADe,GAAXorI,GAAgB3hE,EAAK2hE,OAASA,KAAQA,EAAS3hE,EAAK2hE,QACpD3hE,EAAKh6C,IAAMmuH,GAAWn0E,EAAK2hE,QAAUA,EAAQ,CAC5CkS,GAAW/iD,EAAaC,QACa,GAApC/wB,EAAKt6D,KAAKi6F,cAAc,UAAiBppG,EAAK6wB,OAAO,KAAO7wB,EAAK6wB,OAAO,GAAGrR,cAC9Exf,EAAO,QACqC,GAApCypE,EAAKt6D,KAAKi6F,cAAc,SAChCppG,EAAO,UACqC,GAApCypE,EAAKt6D,KAAKi6F,cAAc,SAChCppG,EAAO,UACmC,GAAlCypE,EAAKt6D,KAAKi6F,cAAc,OAChCppG,EAAO,QACqC,GAApCypE,EAAKt6D,KAAKi6F,cAAc,UAAgC,GAAfppG,EAAK6M,SACtD7M,EAAO,KAAKA,KACY,GAAfA,EAAK6M,SACf7M,EAAO,KAAKA,KAEb,MAAM69I,EAAa,KAAK79I,WAAcoV,KAClC8hG,EAAQrqG,SACXqqG,GAAW,MACZA,GAAW2mC,EACXzoI,GACD,CACAwoI,EAAUn0E,EAAKh6C,GAChB,CACA,OAAOynF,CACR,CAEA,mBAAAqmC,CAAoB59H,EAAa29H,GAChC,IAAIpmC,EAAU,GACVl3G,EAAO,GACX,MAAMi1C,EAAShxC,KAAK65I,cAAcn+H,EAAInF,eACtC,IAAIpF,EAAM,EACV,IAAK,MAAMy7B,KAASoE,EAAQ,CAC3Bj1C,EAAO6wC,EACP,MAAMktG,GAASh/F,MAAM1+C,SAASwwC,IAC1BysG,GAAW/iD,EAAaC,QAE1Bx6F,EADG+9I,EACI,QACY,KAATltG,EACH,UACmB,GAAhBA,EAAMhkC,QAAgBkxI,EAGzB,UAFA,KAAOltG,EAIW,GAAhBA,EAAMhkC,QAAgBkxI,IAChC/9I,EAAO,KAAO6wC,GAGf,MAAMmtG,EAAU,KAAKh+I,WAAcoV,KAC/B8hG,EAAQrqG,SACXqqG,GAAW,MACZA,GAAW8mC,EACX5oI,GACD,CACA,OAAO8hG,CACR,CAEA,aAAA4mC,CAAcn+H,GACb,MAAMspB,EAAMtpB,EAAI9S,OAChB,IAAI8G,EAAI,EACR,MAAMshC,EAAmB,GACzB,IAEKgpG,EAFDp6E,EAAM,IAEV,SAAKo6E,GAAW,yBAAS,qBAAO,qBAAO,qBAAO,wBAAS,CAAvD,CAAKA,IAAAA,EAAQ,KACb,IAAI9uI,EAAiB8uI,EAAS/pD,QAC1Bv8C,EAAqBsmG,EAAS/pD,QAElC,KAAOvgF,EAAIs1B,GAAK,CACf,MAAM5vB,EAAIsG,EAAIhM,KAEbxE,EADGkK,GAAK,KAAOA,GAAK,IACb4kI,EAASC,MACL7kI,GAAK,KAAOA,GAAK,KAASA,GAAK,KAAOA,GAAK,IAC/C4kI,EAASE,MACD,KAAL9kI,EACH4kI,EAASG,MAETH,EAASI,QAEblvI,GAAQwoC,GAAYA,GAAYsmG,EAAS/pD,SAAWv8C,GAAYsmG,EAASG,OAC5EnpG,EAAOrvC,KAAKi+D,GAEXA,EADG10D,GAAQ8uI,EAASG,MACd,GAEA/kI,EACPs+B,EAAWsmG,EAAS/pD,SACV/kF,GAAQ8uI,EAASG,QAC3Bv6E,GAAYxqD,GAEbs+B,EAAWxoC,CACZ,CAIA,OAHI00D,EAAIh3D,QACPooC,EAAOrvC,KAAKi+D,GAEN5uB,CACR,CAEA,aAAAknG,CAAc1yE,GACb,MAAMyyE,EAAqB,CAAEl8I,KAAM,GAAIg1B,MAAO,EAAGvF,IAAK,EAAG8sH,OAAQ,EAAGC,KAAM,EAAGl6D,QAAS,EAAGk2B,SAAU,EAAGrpG,KAAM,GAAImvI,OAAO,EAAOptB,OAAO,EAAO5/E,KAAM,GAAI85F,OAAQ,GACxJn2F,EAASw0B,EAAKxpE,MAAM,KAC1B,IAAIs+I,EAAW,EACf,GAAItpG,EAAOpoC,OAAS,EAAG,CAElB48D,EAAKp0D,OAAOkN,WAAW,MAC1B25H,EAASl8I,KAAO,IAChBk8I,EAAS9Q,OAASn2F,EAAO,GAAGpoC,OAC5B0xI,EAAW,IAEXrC,EAASl8I,KAAOi1C,EAAO,GAAG5/B,OAC1B6mI,EAAS9Q,OAASn2F,EAAO,GAAG93B,OAAO,MAAQ,GAE5C,MAAMk9D,EAAOplC,EAAOspG,GAAUt+I,MAAM,SAChCo6E,EAAKxtE,QAAU,IAClBqvI,EAASlnH,OAASqlD,EAAK,GACvB6hE,EAASzsH,KAAO4qD,EAAK,GACrB6hE,EAASK,QAAUliE,EAAK,GACxB6hE,EAASM,MAAQniE,EAAK,GACtB6hE,EAAS55D,SAAWjI,EAAK,GACzB6hE,EAAS1jC,UAAYn+B,EAAK,GAC1B6hE,EAAS/sI,KAAOkrE,EAAK,GACjBA,EAAKxtE,OAAS,GACbwtE,EAAK,GAAGxtE,SACXqvI,EAASoC,OAAQ,GAEfjkE,EAAKxtE,OAAS,GACbwtE,EAAK,GAAGxtE,OAAS,IACpBqvI,EAAShrB,OAAQ,GAGrB,CACA,OAAOgrB,CACR,CAEA,gBAAA5hD,CAAiB1B,GAChB,GAAI30F,KAAKk5I,oBAAoBvkD,GAAS,CACrC,MAAMthF,EAAWrT,KAAKwT,SAAW,IAAMxT,KAAKgmH,SAASjoF,WAAa,IAAM/9B,KAAKimH,OAAOloF,WAAa,QACjG/9B,KAAKu6I,kBAAkBlnI,EAAUrT,KAAKu3I,gBACvC,MAEC35D,EAAOznE,OAAOoqE,uBAAuB,mBAEvC,CAEA,iBAAAg6D,CAAkBh2I,EAAkB0+E,GACnBrF,EAAOC,IAAIn0E,MAAM,YAAcnF,GAA/C,MACMi2I,EAAUv9I,EAAK8L,QACpB60E,EAAOmT,UACLC,iBAAiB,iBACjBp4E,IAAI,WAAakT,EAAGs1E,UACjBz5B,EAAWiW,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKg2I,EAASj2I,IACpDtJ,EAAG0Z,cAAcgzD,EAASsX,OAAQgE,GAClCrF,EAAOmT,UAAU4pB,iBAAiBhzC,GAAU3+D,KAAKyN,IAChD,EAAAqoE,WAAWmO,mBACXrP,EAAOznE,OAAO43E,iBAAiBt3E,EAAU,CAAE0hH,WAAYv6C,EAAOw6C,WAAWC,UAE3E,CAEA,YAAAoiB,CAAa3pG,EAActlB,EAAc,GACpCA,IACHslB,EAAOA,EAAK11B,UAAU,EAAGoQ,IAE1B,MAAM+nD,EAASziC,EAAK90C,MAAM,UACpB0+I,EAAU5pG,EAAK90C,MAAM,UACrB2+I,EAAQ7pG,EAAK90C,MAAM,UACnB4+I,EAAS9pG,EAAK90C,MAAM,UAG1B,OAFkE,GAA7Cu3E,EAAO3qE,OAAS,GAAM8xI,EAAQ9xI,OAAS,IACI,GAA3C+xI,EAAM/xI,OAAS,GAAMgyI,EAAOhyI,OAAS,GAE3D,CAEA,kBAAAiyI,CAAmBn/H,GAClB,OAAOA,EAAI9S,MACZ,CAEA,0BAAAuwI,CAA2B2B,EAAkBx4D,GAC5C,IAAIy4D,EAAW,EACXC,EAAS,EACb,MAAMh3E,EAAO,IAAI,EAAAye,SAASq4D,GAC1B,IAAIG,EAAY,EACZC,GAAY,EAEhB,IAAK,MAAM11E,KAAQxB,EAAK0e,UAAS,GAAO,CACvC,MAAM19C,EAAMhlC,KAAK66I,mBAAmBr1E,GACpC,GAAI01E,EAAW,CACd,GAAI54D,EAAU92D,IAAIg6C,MAAQy1E,EAAW,CACpCD,GAAU14D,EAAU92D,IAAIgtF,UAAYx4G,KAAKy6I,aAAaj1E,EAAM8c,EAAU92D,IAAIgtF,WAAa,EACvF,KACD,CACAwiC,GAAUh2G,EAAMhlC,KAAKy6I,aAAaj1E,GACvB,GAAPxgC,IACHg2G,GAAU,EACZ,MACK,GAAI14D,EAAUvxD,MAAMy0C,MAAQy1E,EAAW,CAC3C,MAAME,EAAY31E,EAAKpqD,UAAU,EAAGknE,EAAUvxD,MAAMynF,WAGpD,GADAuiC,GADa/6I,KAAK66I,mBAAmBM,GAClBn7I,KAAKy6I,aAAaj1E,EAAM8c,EAAUvxD,MAAMynF,WACvDl2B,EAAU92D,IAAIg6C,MAAQy1E,EAAW,CACpC,MAAMG,EAAS51E,EAAKpqD,UAAUknE,EAAUvxD,MAAMynF,UAAWl2B,EAAU92D,IAAIgtF,WAEvEwiC,EAASD,EAAWK,EAAOxyI,OAAS5I,KAAKy6I,aAAaW,GACtD,KACD,CACAJ,EAASD,EAAW/1G,EAAMs9C,EAAUvxD,MAAMynF,UAAYx4G,KAAKy6I,aAAaj1E,GACxE01E,GAAY,CACb,MAECH,GAAY/1G,EADIhlC,KAAKy6I,aAAaj1E,GAEvB,GAAPxgC,IACH+1G,GAAY,GAEdE,GACD,CAEAj7I,KAAKgmH,SAAW+0B,EAChB/6I,KAAKimH,OAAS+0B,CACf,CAEA,iBAAA5B,GACC,MAAMp1E,EAAO,IAAI,EAAAye,SAASziF,KAAK4kF,UACzB1kF,EAAM8jE,EAAKmwE,yBACjB,IAAIhiI,EAAO,EACPe,EAAK,EACLrO,GAAM,EACV7E,KAAK03I,cAAgB,GACrB13I,KAAKu3I,gBAAkB,GAEvB,IAAK,MAAM/xE,KAAQxB,EAAK0e,WAAY,CACnCvwE,EAAO,EACPe,EAAK,EACLrO,GAAM,EAEN,MAAMmsC,EAASw0B,EAAKxpE,MAAM,KAC1B,GAAIg1C,EAAOpoC,OAAS,EAAG,CACtB,MAAMwtE,EAAOplC,EAAO,GAAGh1C,MAAM,SACzBo6E,EAAKxtE,OAAS,IACjBuJ,GAAQikE,EAAK,GACbljE,GAAMkjE,EAAK,GACPjkE,GAAQnS,KAAKgmH,UAAY9yG,GAAMlT,KAAKimH,SACvCjmH,KAAK03I,cAAc/1I,KAAK3B,KAAKk4I,cAAc1yE,IAC3CxlE,KAAKu3I,gBAAkBv3I,KAAKu3I,gBAAgBrtI,OAAOs7D,EAAMtlE,IAG5D,CACD,CACD,CAEA,mBAAA24I,CAAoBnyH,GACnB,IAAIkyH,EAAc,EAElB,IAAK,MAAMtB,KAAat3I,KAAKs3I,UAAW,CACvC,GAAIA,EAAU+D,QAAU30H,GAAYA,GAAY4wH,EAAUgE,KACzD,OAAO1C,EACD,GAAIlyH,EAAW4wH,EAAUgE,KAC/B,OAAQ,EAET1C,GACD,CAEA,OAAQ,CACT,CAEA,uBAAAD,CAAwB/mH,GACvB,IAAIujE,EAAY,EACZzuE,EAAW,EAEf,IAAK,MAAM8+C,KAAQxlE,KAAK0iF,WAAY,CACnC,GAAIyS,GAAavjE,EAAS4zC,KACzB,OAAO9+C,EAAWkL,EAAS4mF,UAE5B9xF,GAAY8+C,EAAK58D,OACjBusF,GACD,CACA,OAAQ,CACT,CAEA,aAAAsjD,GACCz4I,KAAKs3I,UAAY,GACjB,MAAMiE,EAAUv7I,KAAKw7I,mBAAmB,KAClCC,EAAUz7I,KAAKw7I,mBAAmB,KAExC,OADAx7I,KAAKs3I,UAAUvpH,KAAK,SAAUtuB,EAAGC,GAAK,OAAOD,EAAEsxB,MAAQrxB,EAAEqxB,KAAM,GACxDwqH,EAAUE,CAClB,CAEA,kBAAAD,CAAmBzpE,GAClB,MACM2pE,EAA2B,MAAZ3pE,EAAkB,MAAW,MAC5C4pE,EAAyB,MAAZ5pE,EAAkB,MAAW,MAG1C/gC,EADO,IAAI,EAAAyxC,SAASziF,KAAKw3I,eAAe,GAC1BnzD,SAAQ,GAAMroF,MAAM0/I,GACxC,IAAIE,EAAa,EACb52G,EAAM,EACN62G,EAAa,EAEjB,IAAK,IAAIjvG,KAASoE,EAAQ,CAEzB,GADApE,EAAQA,EAAMr3B,QAAQ,UAAW,IAC7BqmI,EAAY,CACf,MAAMtE,EAAuB,CAAEvmH,MAAO,EAAGvF,IAAK,EAAG6vH,OAAQ,EAAGC,KAAM,GAC5DllE,EAAOxpC,EAAM5wC,MAAM2/I,GACzBrE,EAAUvmH,MAAQiU,EAClBsyG,EAAU9rH,IAAMwZ,EAAMoxC,EAAK,GAAGxtE,OAAS,EACvC0uI,EAAU+D,OAASQ,EACnBvE,EAAUgE,KAAOO,EAAazlE,EAAK,GAAGxtE,OAAS,EAC/C5I,KAAKs3I,UAAU31I,KAAK21I,EACrB,CAEA,IAAI13E,EAAMhzB,EAAMr3B,QAAQ,UAAW,IACnCqqD,EAAMA,EAAIrqD,QAAQ,UAAW,IAC7BqqD,EAAMA,EAAIrqD,QAAQ,UAAW,IAC7BqqD,EAAMA,EAAIrqD,QAAQ,UAAW,IAC7ByvB,GAAO46B,EAAIh3D,OACXgzI,IACAC,GAAcjvG,EAAMhkC,OA5BI,CA6BzB,CACA,OAAOgzI,EAAa,CACrB,CAEA,WAAAlD,CAAY9zD,GACX,MAAMk3D,EAAS,WACf97I,KAAKq3I,OAAS,GAEd,MAAMrzE,EAAO,IAAI,EAAAye,SAASmC,GAC1B,IAAIm3D,EAAS,EAEb,IAAK,IAAIrsI,EAAI,EAAGA,EAAIs0D,EAAK0e,WAAW95E,OAAQ8G,IAAK,CAChD,MAAM81D,EAAOxB,EAAK+vE,QAAQrkI,GAE1B,GADe81D,EAAKxpE,MAAM,UACf4M,OAAS,EAAG,CACtB,MAAMyxI,EAAe,CAAE3+H,IAAK,GAAIvJ,KAAM,EAAGe,GAAI,EAAG8oI,MAAO,EAAGC,IAAK,EAAGlD,QAAS,EAAGE,SAAU,EAAGhsB,OAAO,GAE5FivB,EAAM12E,EAAKxpE,MAAM8/I,GACjBK,EAAY32E,EAAKp0D,OAAOwb,OAAO,GAMrC,GALI,YAAY3R,KAAKkhI,KACpBD,EAAI,GAAKC,EACTD,EAAIlrI,OAAO,EAAG,IAEfqpI,EAAMptB,MAASivB,EAAItzI,QAAU,GAAgB,QAAXszI,EAAI,IACjCA,EAAI,GAAKH,IACb1B,EAAM3+H,IAAMwgI,EAAI,GAAG9qI,OACnBipI,EAAMloI,MAAQ+pI,EAAI,GAClB7B,EAAMnnI,GAAK6oI,GAAUG,EAAI,GACzB7B,EAAM2B,OAASE,EAAI,GACnB7B,EAAM4B,KAAOC,EAAI,GACjB7B,EAAMtB,SAAWmD,EAAI,GACrB7B,EAAMpB,UAAYiD,EAAI,IAClB,EAAAroB,aAAa4b,gBAAkB,EAAA9B,UAAUI,OAASsM,EAAMptB,QAC3DjtH,KAAKq3I,OAAO11I,KAAK04I,GAEdA,EAAM3+H,IAAI4C,WAAW,MAAM,CAC9B,MAAM6oH,EAAS3hE,EAAKtsD,OAAO,MAE3B,IADAmhI,EAAM3+H,IAAM,GACLyrH,EAAS,GAAG,CAClBz3H,IACA,MAAM0sI,EAAWp4E,EAAK+vE,QAAQrkI,GAE9B,GADY0sI,EAASljI,OAAO,OACjBiuH,EACV,MACD,MACM95F,EADK+uG,EAASpgJ,MAAM,OACV,GAAGoV,OACnBipI,EAAM3+H,IAAM2+H,EAAM3+H,IAAM,IAAM2xB,CAC/B,CACAgtG,EAAM3+H,IAAM2+H,EAAM3+H,IAAItK,OACtB1B,GACD,CAEF,CACD,CACA,QAAO1P,KAAKq3I,OAAOzuI,MACpB,CAEA,SAAAokI,CAAUvJ,EAAc/vH,GAAmB,GAC1C,MAAMq5H,EAAuB/sI,KAAKmjF,QAAQsgD,EAAM,EAAAl+C,YAAY6zC,MAC5D,IAAKn+H,EAAG8wE,WAAWghE,EAAS9tD,SAAWvrE,EAAS,CAC/C,MAAMkxE,EAAW5kF,KAAKmjF,QAAQsgD,GAC1BxoI,EAAG8wE,WAAW6Y,EAAS3F,UAC1Bj/E,KAAK04I,YAAY9zD,EAAS3F,QAC1Bj/E,KAAKq8I,eAAez3D,EAAUlxE,GAEhC,CACA,OAAOq5H,CACR,CAEA,cAAAuP,CAAe/3I,GACd,GAAItJ,EAAG8wE,WAAWxnE,GAAW,CAC5B,MAAMxF,EAAQ9D,EAAGI,SAASkJ,GAC1B,GAAIxF,EACH,OAAOA,EAAMw9I,KACf,CACA,OAAO,IAAItkI,KAAK,KAAM,EAAG,EAC1B,CAEA,cAAAokI,CAAez3D,EAAsBlxE,GAAmB,GACvD1T,KAAKw4I,cAAc5zD,EAAS3F,QAC5B,MAAMu9D,EAAgBx8I,KAAKs8I,eAAe13D,EAAS3F,QAC7Cw9D,EAAkBz8I,KAAKs8I,eAAet8I,KAAKy3I,WACjD,IAAK/jI,GAAW+oI,EAAYD,GAAWvhJ,EAAG8wE,WAAW/rE,KAAKw3I,eACzD,OAAO55D,EAAOC,IAAI7Z,KAAKhkE,KAAKw3I,eACxB,IAAK9jI,IAAYzY,EAAG8wE,WAAW/rE,KAAKy3I,WACxC,OAAO7yD,EAER,MAAM5gB,EAAO,IAAI,EAAAye,SAASziF,KAAKy3I,WAAW,GAE1C,IAAIiF,EAAW,GACXX,EAAS,EAGT5pI,EAAO,EACPe,EAAK,EACL+5G,GAAQ,EACZ,MAAM0vB,GAAW,IAAIC,aAAcC,OAAO74E,EAAKqgB,SAAQ,IAEvD,GAAIrkF,KAAKq3I,OAAOzuI,OAAQ,CACvB,IAAK,IAAI8G,EAAI,EAAGA,EAAI1P,KAAKq3I,OAAOzuI,OAAQ8G,IAAK,CAC5CyC,EAAOnS,KAAKq3I,OAAO3nI,GAAGyC,KACtBe,EAAKlT,KAAKq3I,OAAO3nI,GAAGwD,GACpB+5G,EAAQjtH,KAAKq3I,OAAO3nI,GAAGu9G,MAEvB,MAAM6vB,EAAKH,EAASnsI,MAAM2B,EAAMe,EAAK,GAC/BokI,GAAY,IAAIyF,aAAcC,OAAOF,GAErCG,EAAKN,EAASnsI,MAAMurI,EAAQ5pI,GAC5B+qI,GAAU,IAAIH,aAAcC,OAAOC,GAGxCP,EADGzvB,EACQyvB,EAASxyI,OAAOgzI,EAAS,MAAO5F,EAAW,OAC9C,EAAAzjB,aAAa4b,gBAAkB,EAAA9B,UAAUI,MACtC2O,EAASxyI,OAAOgzI,EAAS,MAAO5F,EAAW,OAE3CoF,EAASxyI,OAAOgzI,EAAS5F,GAErCyE,EAAS7oI,EAAK,CACf,CACA,MAAMiqI,EAAKR,EAASnsI,MAAMurI,EAAQY,EAAS/zI,QACrCykC,GAAO,IAAI0vG,aAAcC,OAAOG,GACtCT,EAAWA,EAASxyI,OAAOmjC,EAC5B,MACCqvG,EAAW14E,EAAKqgB,SAAQ,GAKzB,OAFAppF,EAAG0Z,cAAc3U,KAAKw3I,cAAexzE,EAAK4vE,gBAAgB8I,IAC1D18I,KAAKq3I,OAAS,GACPz5D,EAAOC,IAAI7Z,KAAKhkE,KAAKw3I,cAC7B,CAEA,eAAA7H,CAAgByN,GACf,MAAMn1G,EAAO,IAAIn+B,MAAM,IAAM9J,KAAK4yI,aAAawK,IACzCvpI,EAAQ,EAAAksE,SAAS6F,SAAS,EAAA9G,WAAW6D,SAASuC,qBAAsBj9C,GAC1E,IAAK,MAAM+7B,KAAQnwD,EAAO,CACzB,MAAMm2F,EAAS/sG,EAAKuW,SAASwwD,EAAKib,QAAQ7jE,UAAU,EAAG,GACjDijE,EAAUliF,OAAOC,SAAS4tG,GAChChqG,KAAKgtI,UAAU3uD,GAAS,EACzB,CACD,EAnxBD,Y,yBCJA,SAASg/D,EAAUjyG,EAAekyG,EAAmBpqH,GACpD,OAAQkY,EAAMxiC,OAAS00I,EAAYpqH,GAAO,CAC3C,CAOA,SAASqqH,EAAkBnyI,EAAqBkyI,EAAmBE,EAAkBC,GACpF,MAAMC,EAAQ,IAAIp3H,IACZq3H,EAAS,IAAIvyI,GAAO2iB,KAAK,CAACtuB,EAAGC,IAAMD,EAAEgqD,EAAI/pD,EAAE+pD,GAC3Cm0F,EAAqB,GAC3B,IAAIC,EAAS,EACb,IAAK,MAAMrsI,KAAKmsI,EAAQ,CACvB,MAAMG,EAAKT,EAAU7rI,EAAE45B,MAAOkyG,EAAW,GACnCS,EAAOvsI,EAAEi4C,EAAIq0F,EACbE,EAAQxsI,EAAEi4C,EAAIq0F,EACpB,IAAIlzC,GAAO,EACX,IAAK,IAAI70F,EAAI,EAAGA,EAAI6nI,EAASh1I,OAAQmN,IACpC,GAAIgoI,GAAQH,EAAS7nI,GAAKynI,EAAU,CAAE5yC,EAAM70F,EAAG,KAAO,CAEvD,IAAa,IAAT60F,EACH,GAAIgzC,EAASh1I,OAAS60I,EACrB7yC,EAAMgzC,EAASh1I,OACfg1I,EAASj8I,KAAKq8I,OACR,CAENpzC,EAAM,EACN,IAAK,IAAI70F,EAAI,EAAGA,EAAI6nI,EAASh1I,OAAQmN,IAAS6nI,EAAS7nI,GAAK6nI,EAAShzC,KAAMA,EAAM70F,GACjF6nI,EAAShzC,GAAO96F,KAAKF,IAAIguI,EAAShzC,GAAMozC,EACzC,MAEAJ,EAAShzC,GAAOozC,EAEjBN,EAAM7kI,IAAIrH,EAAGo5F,GACTA,EAAMizC,IAAQA,EAASjzC,EAC5B,CACA,MAAO,CAAE8yC,QAAOO,KAAMJ,EAAS,EAChC,CAqEA,SAAgBK,EAAW1sI,GAC1B,OAAO,EAAIA,EAAE+0F,SAASh7F,OAAO,CAACmzB,EAAGtpB,IAAMspB,EAAIw/G,EAAW9oI,GAAI,EAC3D,C,iDArEA,sBAA2BuP,EAAgB7e,EAAsB,CAAC,G,wBACjE,MAAMq4I,EAAwB,QAAb,EAAAr4I,EAAKq4I,gBAAQ,QAAI,GAC5BC,EAA0B,QAAd,EAAAt4I,EAAKs4I,iBAAS,QAAI,GAC9BC,EAAoB,QAAX,EAAAv4I,EAAKu4I,cAAM,QAAI,GACxBC,EAAsB,QAAZ,EAAAx4I,EAAKw4I,eAAO,QAAI,GAC1BhB,EAA0B,QAAd,EAAAx3I,EAAKw3I,iBAAS,QAAI,IAC9BE,EAAwB,QAAb,EAAA13I,EAAK03I,gBAAQ,QAAI,EAC5Be,EAAoC,QAAnB,EAAAz4I,EAAKy4I,sBAAc,QAAI,EACxCC,EAA8B,QAAhB,EAAA14I,EAAK04I,mBAAW,QAAI,KAAO,EAE/C,IAAIC,EAAW,EACXzmE,EAAW,EACf,MAAM0mE,EAA0B,GAE1BC,EAAQ,CAAC5iJ,EAAgBoU,K,MAC1BA,EAAQ6nE,IAAUA,EAAW7nE,GACjC,MAAMyuI,EAAU7iJ,EAAKwqG,SAAS39F,OAAS,EACjCi2I,EAAYD,GAAWJ,EAAYziJ,EAAKygD,IAExC+pD,EAAWs4C,EAAY,GAAK9iJ,EAAKwqG,SAASpoG,IAAKiX,GAAMupI,EAAMvpI,EAAGjF,EAAQ,IAC5E,IAAIs5C,EACoB,IAApB88C,EAAS39F,QACZ6gD,EAAI40F,EAASI,EAAWN,EACxBM,KAEAh1F,GAAK88C,EAAS,GAAG98C,EAAI88C,EAASA,EAAS39F,OAAS,GAAG6gD,GAAK,EAEzD,MAAMq1F,EAAuB,CAC5BtiG,GAAIzgD,EAAKygD,GAAIpR,MAAOrvC,EAAKqvC,MAAOlgC,KAAMnP,EAAKmP,KAAM6lB,MAAOh1B,EAAKg1B,MAAOvF,IAAKzvB,EAAKyvB,IAC9Ei+B,IAAGtd,EAAG,EAAGyyG,UAASC,YAAWt4C,YAG9B,OADc,QAAd,EAACm4C,EAAQvuI,UAAK,QAAbuuI,EAAQvuI,GAAW,IAAIxO,KAAKm9I,GACtBA,GAGFC,EAAOJ,EAAMh6H,EAAM,GAMzB,IAAIk7F,EAAMw+B,EACV,IAAK,IAAIxyG,EAAI,EAAGA,GAAKmsC,EAAUnsC,IAAK,CACnC,MAAMzgC,EAAkB,QAAV,EAAAszI,EAAQ7yG,UAAE,QAAI,IACtB,MAAE6xG,EAAK,KAAEO,GAASK,EAAU,EAC/Bf,EAAkBnyI,EAAOkyI,EAAWE,EAAUe,GAC9C,CAAEb,MAAO,IAAIp3H,IAA2B23H,KAAM,GACjD,IAAK,MAAMzsI,KAAKpG,EAAOoG,EAAE26B,EAAI0zE,GAAmB,QAAZ,EAAA69B,EAAM9kI,IAAIpH,UAAE,QAAI,GAAK8sI,EACzDz+B,GAAOu+B,GAAaH,EAAO,GAAKK,CACjC,CAEA,MAAMU,EAASlvI,KAAKF,IAAI,EAAG6uI,GAC3B,MAAO,CACN95H,KAAMo6H,EACNE,MAAgB,EAATZ,GAAcW,EAAS,GAAKb,EAAWA,EAC9Ce,OAAQr/B,EAAMw+B,EACdF,WAEF,EAGA,mBAAgBrvI,EAAQ/S,EAAkBu3C,EAAoB,IAC7DA,EAAI3xC,KAAK5F,GACT,IAAK,MAAMqZ,KAAKrZ,EAAKwqG,SAAUz3F,EAAQsG,EAAGk+B,GAC1C,OAAOA,CACR,EAEA,eAIA,oBAAgB6rG,EAASx6H,EAAgB63B,GACxC,GAAI73B,EAAK63B,KAAOA,EAAI,OAAO73B,EAC3B,IAAK,MAAMvP,KAAKuP,EAAK4hF,SAAU,CAC9B,MAAMxyF,EAAIorI,EAAS/pI,EAAGonC,GACtB,GAAIzoC,EAAG,OAAOA,CACf,CAED,EAIA,sBAAgBqrI,EAAWrjJ,EAAgBsjJ,GAAe,EAAO/rG,EAAgB,IAC3E+rG,IAAgBtjJ,EAAKwqG,SAAS39F,QAAQ0qC,EAAI3xC,KAAK5F,EAAKygD,IACzD,IAAK,MAAMpnC,KAAKrZ,EAAKwqG,SAAU64C,EAAWhqI,EAAGiqI,EAAc/rG,GAC3D,OAAOA,CACR,EASA,4BAAiC3uB,EAAgB26H,EAAY,EAAGC,EAAe,GAAIC,EAAY,IAC9F,MAAM3mI,EAAM,IAAIlU,IAChB,GAAIu5I,EAAWv5H,IAAS46H,EAAc,OAAO1mI,EAC7C,MAAM5X,EAAO,CAACuQ,EAAarB,KACtBqB,EAAE+0F,SAAS39F,SAAWuH,GAASmvI,GAAa9tI,EAAE+0F,SAAS39F,OAAS42I,IAAY3mI,EAAIhU,IAAI2M,EAAEgrC,IAC1FhrC,EAAE+0F,SAASx1F,QAASqE,GAAMnU,EAAKmU,EAAGjF,EAAQ,KAG3C,OADAlP,EAAK0jB,EAAM,GACJ9L,CACR,C,yBCjHA,SAAS4mI,EAASj6E,GACjB,MAAM91D,EAAI81D,EAAKtsD,OAAO,MACtB,OAAOxJ,EAAI,EAAIrJ,IAAWqJ,CAC3B,C,iDA1DA,qBAA0BohC,EAAchrC,EAAqB,CAAC,G,MAC7D,MAAM45I,EAA4B,QAAnB,EAAA55I,EAAK65I,sBAAc,SAC5BC,EAAoB,GACpBn6I,EAAmD,GAEzD,IAAK,MAAMq6F,KAAOhvD,EAAK90C,MAAM,SAAU,CACtC,IAAK8jG,EAAI1uF,OAAQ,SACjB,MAAM0vG,EAAUhhB,EAAI1uF,OACpB,GAAI0vG,EAAQxiG,WAAW,MAAQ,UAAUrD,KAAK6lG,GAAU,SAExD,MAAM++B,EAAK//C,EAAIl6F,QAAQ,KACvB,GAAIi6I,EAAK,EAAG,SAGZ,IAAIz0G,EACA00G,EACJ,GAAIh/B,EAAQxiG,WAAW,KAAM,CAC5B8sB,EAAQ,IACR,MAAMiC,EAAOyyD,EAAItvF,MAAMsvF,EAAIl6F,QAAQ,KAAO,GAC1Ck6I,EAAYzyG,EAAK78B,MAAM68B,EAAKznC,QAAQ,KAAO,EAC5C,MACCwlC,EAAQ00D,EAAItvF,MAAM,EAAGqvI,GAAIzuI,OACzB0uI,EAAYhgD,EAAItvF,MAAMqvI,EAAK,GAG5B,MAAME,EAASD,EAAU9jJ,MAAM,SACzB+0B,EAAQ30B,SAAS2jJ,EAAO,GAAI,KAAO,EACnCv0H,EAAMpvB,SAAS2jJ,EAAO,GAAI,KAAO,EACjC70I,GAAQ60I,EAAO,IAAM,IAAI3uI,OAE/B,GAAIsuI,GAAmB,UAATx0I,EAAkB,SAEhC,MAAMi8H,EAASrnC,EAAI5mF,OAAO,MACpBnd,EAAiB,CAAEygD,GAAI,EAAGpR,QAAOlgC,OAAM6lB,QAAOvF,MAAK+6E,SAAU,IAEnE,KAAO9gG,EAAMmD,QAAUnD,EAAMA,EAAMmD,OAAS,GAAGu+H,QAAUA,GAAQ1hI,EAAM2J,MACnE3J,EAAMmD,OAAQnD,EAAMA,EAAMmD,OAAS,GAAG7M,KAAKwqG,SAAS5kG,KAAK5F,GACxD6jJ,EAAMj+I,KAAK5F,GAChB0J,EAAM9D,KAAK,CAAE5F,OAAMorI,UACpB,CAEA,IAAIxiH,EAIJ,OAHqB,IAAjBi7H,EAAMh3I,OAAc+b,EAAOi7H,EAAM,GAC5BA,EAAMh3I,OAAS,IAAG+b,EAAO,CAAE63B,GAAI,EAAGpR,MAAO,OAAQlgC,KAAM,OAAQ6lB,MAAO,EAAGvF,IAAK,EAAG+6E,SAAUq5C,IAChGj7H,GAKL,SAAmBA,GAClB,IAAItU,EAAO,EACX,MAAMpP,EAAQuQ,IAAkBA,EAAEgrC,GAAKnsC,IAAQmB,EAAE+0F,SAASx1F,QAAQ9P,IAClEA,EAAK0jB,EACN,CATWq7H,CAAUr7H,GACbA,CACR,EAkBA,uBAA4BmsB,EAAc00B,GACzC,MAAMT,EAAQj0B,EAAK90C,MAAM,SACzB,GAAIwpE,EAAO,GAAKA,GAAQT,EAAMn8D,OAAQ,MAAO,GAC7C,MAAMpF,EAAOi8I,EAAS16E,EAAMS,IAC5B,IAAK1gC,SAASthC,GAAO,OAAOuhE,EAAMS,GAClC,MAAMlyB,EAAM,CAACyxB,EAAMS,IACnB,IAAK,IAAI91D,EAAI81D,EAAO,EAAG91D,EAAIq1D,EAAMn8D,OAAQ8G,IAAK,CAC7C,MAAMuwI,EAAMR,EAAS16E,EAAMr1D,IAC3B,GAAKo1B,SAASm7G,GAAd,CACA,GAAIA,GAAOz8I,EAAM,MACjB8vC,EAAI3xC,KAAKojE,EAAMr1D,GAFqC,MAA9B4jC,EAAI3xC,KAAKojE,EAAMr1D,GAGtC,CACA,OAAO4jC,EAAI9uC,KAAK,KACjB,C,4EChFA,yBAA8B07I,GAC7B,MAAM90I,GAAQ,IAAA0D,SAAQoxI,EAAOv7H,MACvB00F,EAAkB,GAClBvmE,EAAmB,GAEzB,IAAK,MAAMthC,KAAKpG,EACf,IAAK,MAAMgK,KAAK5D,EAAE+0F,SACjB8S,EAAM13G,KACL,0BAA0B6P,EAAEi4C,UAAUj4C,EAAE26B,EAVxB,WAUgD/2B,EAAEq0C,UAAUr0C,EAAE+2B,EAXjE,QAgBhB,IAAK,MAAM36B,KAAKpG,EAAO,CACtB,MAAM+0I,EAAM,QACV3uI,EAAEotI,QAAU,YAAc,UAC1BptI,EAAEqtI,UAAY,aAAe,IAKzBuB,EAAOtwI,KAAKC,IACjBD,KAAKF,IAAI,GAAIswI,EAAO/B,SAAW,GAC/BruI,KAAKF,IAAI,GAAqB,EAAjB4B,EAAE45B,MAAMxiC,OAAa,KAE7BozF,EACL,yBAAyBxqF,EAAEi4C,EAAI22F,EAAO,GAAG71G,QAAQ,UAAU/4B,EAAE26B,EAAI,aACvDi0G,0BAELnuC,EAASzgG,EAAEqtI,UACd,8BAA8BrtI,EAAEi4C,UAAUj4C,EAAE26B,EAhC7B,GAgC+C,aAC9D,GACH2G,EAAOnxC,KACN,aAAaw+I,eAAiB3uI,EAAEgrC,mBAAmBhrC,EAAEuf,oBAAoBvf,EAAEga,sBAAsBha,EAAEotI,QAAU,EAAI,MACjH5iD,EACA,YAAYxqF,EAAEi4C,SAASj4C,EAAE26B,EAvCZ,4BAuCiDkpC,EAAI7jE,EAAE45B,gBACpE6mE,EACA,OAEF,CAQA,MAEC,qDAAWiuC,EAAOjB,kBAAkBiB,EAAOhB,+DACvB7lC,EAAM70G,KAAK,MAAMsuC,EAAOtuC,KAAK,eAGnD,EAhEA,gBAEA,SAAS6wE,EAAI32C,GACZ,OAAOA,EAAEnpB,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAClEA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,QACzC,C,4ECsTA,6BAAkC83E,GAIjCA,EAAIsF,cAAchxF,KACjBi8E,EAAOuB,SAASyL,gBAAgB,oBAAsBrL,I,MACrD,MAAMhnD,EAASgnD,QAAAA,EAAqC,QAA9B,EAAA3B,EAAOznE,OAAOu+E,wBAAgB,eAAEj+E,SAAS8oE,IAC1DhnD,EA5CR,SAAuB80D,EAA8BgzD,GAEpD,MAAM/vI,EAAOstE,EAAOmT,UAAUuvD,cAAcjvI,KAAMw6B,GAAMA,EAAE0zC,IAAIxhD,aAAesiH,EAAQtiH,YACrF,IAAI+S,EACJ,GAAIxgC,EACHwgC,EAAOxgC,EAAK+zE,eAEZ,IAAMvzC,EAAO71C,EAAG2Z,aAAayrI,EAAQphE,OAAQ,OAAS,CACtD,SAAuF,YAA/ErB,EAAOznE,OAAOk7E,iBAAiB,6BAA+BgvD,EAAQphE,OAAiB,CAEhGshE,EAAUlzD,EAAKv8C,EAAMuvG,EAAS,GAC/B,CAqCGG,CAAcnzD,EAAK90D,GAHlBqlD,EAAOznE,OAAOoqE,uBAAuB,uDAKvC3C,EAAOuB,SAASyL,gBAAgB,6BAA8B,IAnChE,SAAgCyC,GAC/B,MAAMsH,EAAS/W,EAAOznE,OAAOu+E,iBAC7B,IAAKC,GAAyC,SAA/BA,EAAOl+E,SAASsuG,WAE9B,YADAnnC,EAAOznE,OAAOoqE,uBAAuB,4CAGtC,MAAMm6B,EAAM/lB,EAAOl+E,SACbsmG,EAAMpoB,EAAOrS,UACnB,IAAIxxC,EACAgsB,EACJ,GAAKigD,EAAIx7F,QAMRuvB,GAAO,IAAA2vG,aAAY/lC,EAAIr2B,UAAW04B,EAAIxQ,OAAO/mC,MAC7C1I,EAAS,iBAPQ,CACjB,MAAMiI,EAAkB,GACxB,IAAK,IAAIr1D,EAAIqtG,EAAIhsF,MAAMy0C,KAAM91D,GAAKqtG,EAAIvxF,IAAIg6C,KAAM91D,IAAKq1D,EAAMpjE,KAAK+4G,EAAIzlB,OAAOvlF,GAAGohC,MAC9EA,EAAOi0B,EAAMvgE,KAAK,MAClBs4D,EAAS,cACV,CAIAyjF,EAAUlzD,EAAKv8C,EAAM4pE,EAAIn7B,IAAKziB,EAC/B,CAesE4jF,CAAuBrzD,IAE7F,E,gBAzUA,0BACA,0BACA,0BACA,UACA,UACA,UAeA,IAAI4qB,EACA7kG,EACAutI,GAAa,EACbC,GAAe,EASnB,SAASC,IACR,IAAKztI,EAAO,MAAO,GACnB,MAAM8sI,GAAS,IAAAY,YAAW1tI,EAAMuR,KAAM,CACrCw5H,SAAU/qI,EAAM+qI,SAChBK,YAAchiG,GAAOppC,EAAOyrI,UAAU13H,IAAIq1B,KAE3C,OAAO,IAAAukG,eAAcb,EACtB,CAGA,SAASc,EAAiBC,GACzB,MAAM/iE,EAASjhF,EAAKuhB,QAAQyiI,GAC5B,IAAK,QAAQhmI,KAAKijE,GAAS,OAC3B,MAAMt0E,EAAQs0E,EAAO3oE,QAAQ,QAAS,IACtC,OAAOta,EAAG8wE,WAAWniE,GAASA,OAAQnO,CACvC,CA6IA,SAASylJ,IACHjpC,GAAU7kG,IACf6kG,EAAM52B,MAAQjuE,EAAMiuE,MAChBs/D,EACH1oC,EAAMkpC,QAAQC,YAAY,CAAEl2I,KAAM,SAAUm2I,IAAKR,IAAaz8E,OAAO,IAErEw8E,GAAe,EAEjB,CAMA,SAASL,EAAUlzD,EAA8Bv8C,EAAcuvG,EAAqBiB,IAuBpF,SAAqBj0D,GAtKrB,IAAc77E,EAuKTymG,IACJ0oC,GAAa,EACbC,GAAe,EACf3oC,EAAQr6B,EAAOznE,OAAOorI,mBACrB,eAAgB,aAChB,CAAEppB,WAAYv6C,EAAOw6C,WAAWC,OAAQmpB,eAAe,GACvD,CAAEC,eAAe,EAAMC,yBAAyB,IAEjDzpC,EAAMkpC,QAAQQ,KA9KP,qLADMnwI,EAlCd,WACC,IAAIktB,EAAI,GAER,IAAK,IAAIhvB,EAAI,EAAGA,EAAI,GAAIA,IAAKgvB,GADf,iEAC0B5uB,KAAK0hC,MAAsBpN,GAAhBt0B,KAAK8xI,WACxD,OAAOljH,CACR,CA4M2BmjH,2tEAzIVrwI,0xIA0IhBymG,EAAM6pC,aAAa,KAAQ7pC,OAAQx8G,EAAW2X,OAAQ3X,EAAWklJ,GAAa,QAAUllJ,EAAW4xF,EAAIsF,eACvGslB,EAAMkpC,QAAQY,oBAAqBvrI,IAClC,GAAgB,WAAZA,aAAC,EAADA,EAAGtL,MAGN,OAFAy1I,GAAa,OACTC,IAAgBA,GAAe,EAAOM,MA9L7C,IAAoBzJ,EAAmB1mH,EAAevF,EAiMpD,GAAKpY,EACL,GAAgB,YAAZoD,aAAC,EAADA,EAAGtL,OAAqBkI,EAAMqkI,UAlMhBA,EAmMNrkI,EAAMqkI,UAnMmB1mH,EAmMRva,EAAEua,MAnMqBvF,EAmMdhV,EAAEgV,IAlMzCoyD,EAAOmT,UAAU4pB,iBAAiB/8B,EAAOC,IAAI7Z,KAAKyzE,IAAYzuI,KAAM0xG,IACnE98B,EAAOznE,OAAO43E,iBAAiB2sB,EAAK,CAAEyd,WAAYv6C,EAAOw6C,WAAW4pB,IAAKR,eAAe,IAASx4I,KAAMi5I,IACtG,MAAMz2I,EAAQ,IAAIoyE,EAAOyX,MAAMqlB,EAAIjK,WAAW1/E,GAAQ2pF,EAAIjK,WAAWjlF,EAAM,IAC3Ey2H,EAAG3/D,UAAY,IAAI1E,EAAO8vB,UAAUliG,EAAMulB,MAAOvlB,EAAMggB,KACvDy2H,EAAGt0C,YAAYniG,EAAOoyE,EAAOskE,qBAAqBC,mBA+L5C,GAAgB,YAAZ3rI,aAAC,EAADA,EAAGtL,MACTkI,EAAMyrI,UAAU13H,IAAI3Q,EAAEgmC,IAAKppC,EAAMyrI,UAAUt4G,OAAO/vB,EAAEgmC,IACnDppC,EAAMyrI,UAAUh6I,IAAI2R,EAAEgmC,IAC3By7D,SAAAA,EAAOkpC,QAAQC,YAAY,CAAEl2I,KAAM,SAAUm2I,IAAKR,IAAaz8E,OAAO,SAChE,GAAgB,eAAZ5tD,aAAC,EAADA,EAAGtL,OAAoC,iBAAZsL,aAAC,EAADA,EAAGtL,MAAwB,CAChE,MAAMnP,GAAO,IAAAojJ,UAAS/rI,EAAMuR,KAAMnO,EAAEgmC,IAChCzgD,IACY,cAAXya,EAAEtL,MAEL,IAAAk0I,YAAWrjJ,GAAM,GAAOgV,QAASyrC,GAAOppC,EAAOyrI,UAAUt4G,OAAOiW,KAGhE,IAAA4iG,YAAWrjJ,GAAM,GAAMgV,QAASyrC,GAAOppC,EAAOyrI,UAAUh6I,IAAI23C,IAE7Dy7D,SAAAA,EAAOkpC,QAAQC,YAAY,CAAEl2I,KAAM,SAAUm2I,IAAKR,IAAaz8E,OAAO,IAExE,KAAuB,mBAAZ5tD,aAAC,EAADA,EAAGtL,OACbkI,EAAMyrI,UAAUviC,QAChBrE,SAAAA,EAAOkpC,QAAQC,YAAY,CAAEl2I,KAAM,SAAUm2I,IAAKR,IAAaz8E,OAAO,KAChD,qBAAZ5tD,aAAC,EAADA,EAAGtL,OAGbkI,EAAMyrI,UAAY,IAAIl6I,KAAI,IAAAy6I,YAAWhsI,EAAMuR,MAAM,GAAMrgB,OAAQk4C,GAAOA,IAAOppC,EAAOuR,KAAK63B,KACzFy7D,SAAAA,EAAOkpC,QAAQC,YAAY,CAAEl2I,KAAM,SAAUm2I,IAAKR,IAAaz8E,OAAO,KAChD,cAAZ5tD,aAAC,EAADA,EAAGtL,QACbkI,EAAM+qI,SAAWruI,KAAKF,IA7PH,GA6PsBE,KAAKC,IA5P3B,IA4P8CqD,EAAM+qI,UAAY3nI,EAAE+b,OAAS,KAC9F0lF,SAAAA,EAAOkpC,QAAQC,YAAY,CAAEl2I,KAAM,SAAUm2I,IAAKR,IAAaz8E,OAAO,WAErE3oE,EAAW4xF,EAAIsF,eACnB,CAvECyvD,CAAY/0D,GACZ4qB,EAAOqX,OAAO1xC,EAAOw6C,WAAWC,QAAQ,GAExCxvH,WAAW,K,MACV,MAAM8b,GAAO,IAAA09H,WAAUvxG,GAClBnsB,GAILvR,EAAQ,CACPuR,OACAk6H,WAAW,IAAAyD,kBAAiB39H,GAC5B8yH,UAAWuJ,EAAiBX,EAAQphE,QACpCoC,MAAO,gBAAkBpkF,EAAKuW,SAAS6sI,EAAQphE,QAAUqiE,EACzDnD,SAAyB,QAAf,EAAA/qI,aAAK,EAALA,EAAO+qI,gBAAQ,QAzMF,IA2MxB+C,KAVCtjE,EAAOznE,OAAOoqE,uBAAuB,kCAWpC,EACJ,C,wJCtLA,2BAAsCvc,G,kDAClC,MAAM6wC,EAAqBj3B,EAAOznE,OAAOosI,UAAUzhI,IAAI3iB,IAAIqkJ,GAAMA,EAAG3tC,MAAMljG,OACpEzB,EAAQ2kG,EAAK4tC,UAAUC,GAAOA,EAAI94I,iBAAiBg0E,EAAO+kE,cAAgBD,EAAI94I,MAAM21E,IAAItiF,OAAS+mE,EAAK/mE,OAC7F,IAAXiT,UACM0tE,EAAOznE,OAAOosI,UAAU9xI,MAAMokG,EAAK3kG,IAEjD,E,kBAtDA,0BACA,0BACA,0BACA,yBACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,IAAY0yI,EACAC,EACAC,EACAC,EACAC,GAJZ,SAAYJ,GAAS,yBAAS,qBAAO,yBAAS,uBAAQ,uBAAQ,kBAAM,CAApE,CAAYA,IAAM,SAANA,EAAM,KAClB,SAAYC,GAAO,yBAAS,mCAAc,yBAAS,2BAAU,qBAAO,uBAAQ,uBAAQ,kBAAM,CAA1F,CAAYA,IAAI,OAAJA,EAAI,KAChB,SAAYC,GAAS,yBAAS,yBAAS,2BAAU,uBAAQ,oBAAO,CAAhE,CAAYA,IAAM,SAANA,EAAM,KAClB,SAAYC,GAAS,yBAAS,mBAAM,mBAAM,mBAAM,yBAAS,mCAAc,mDAAsB,uCAAgB,0BAAU,CAAvH,CAAYA,IAAM,SAANA,EAAM,KAClB,SAAYC,GAAS,qBAAO,kBAAM,CAAlC,CAAYA,IAAM,SAANA,EAAM,KAsClB,MAAaC,EAyET,WAAAnjJ,CAAYutF,GAvEL,KAAAya,SAAuB,IAAIh+F,MAC3B,KAAAo5I,WAAa,CAAC,UAAW,QAAS,UAAW,SAAU,SAAU,QACjE,KAAAv7C,OAAS,CAAC,UAAW,eAAgB,UAAW,WAAY,QAAS,SAAU,SAAU,QACzF,KAAAw7C,SAAW,CAAC,UAAW,OAAQ,OAAQ,OAAQ,UAAW,eAAgB,uBAAwB,iBAAkB,YAE3G,KAAAz+D,WAAa,OACb,KAAAoB,YAAc,QACd,KAAAs9D,eAAiB,gBACjB,KAAApU,QAAU,UACV,KAAAqU,SAAW,cACX,KAAAC,SAAW,cAEX,KAAAC,SAAW,cACX,KAAAC,sBAAwB,gBACxB,KAAAC,8BAAgC,6BAChC,KAAAC,eAAiB,aACjB,KAAAC,sBAAwB,mBACxB,KAAAC,eAAiB,YACjB,KAAAC,uBAAyB,iBACzB,KAAAC,gBAAkB,gBAClB,KAAA1gE,uBAAyB,eACzB,KAAAwD,yBAA2B,OAC3B,KAAAm9D,kBAAoB,iCACpB,KAAAC,sBAAwB,oBACxB,KAAAC,+BAAiC,6BACjC,KAAAC,6BAA+BlkJ,KAAK+jJ,kBAAoB/jJ,KAAK0jJ,eAAiB1jJ,KAAKikJ,+BACnF,KAAAE,6BAA+BnkJ,KAAK+jJ,kBAAoB/jJ,KAAK0jJ,eAAiB1jJ,KAAKgkJ,sBACnF,KAAAI,uCAAyCpkJ,KAAK+jJ,kBAAoB/jJ,KAAK2jJ,sBAAwB3jJ,KAAKgkJ,sBACpG,KAAAK,gCAAkCrkJ,KAAK+jJ,kBAAoB/jJ,KAAK4jJ,eAAiB5jJ,KAAKgkJ,sBAE/F,KAAArhE,SAAW,IAAI,EAAA2hE,SACf,KAAAxiE,QAAU,IAAI,EAAAyiE,QACd,KAAA9tD,IAAM,IAAI,EAAAZ,QACV,KAAA1wF,IAAM,IAAI,EAAAqsH,QACV,KAAA1xC,SAAyB,IAAIh2E,MAC7B,KAAAg5D,QAAkB,GAClB,KAAA+9B,cAAwB,GACxB,KAAAF,iBAA2B,GAC3B,KAAAC,kBAA4B,GAC5B,KAAA4jD,eAAyB,GACzB,KAAA3T,mBAA6B,GAC7B,KAAA4T,iBAA2B,GAC3B,KAAA3T,qBAA+B,GAC/B,KAAAx/C,UAAwB1T,EAAOC,IAAI7Z,KAAK,IACxC,KAAA0gF,WAAqB,EACrB,KAAAhxB,UAAoB,EACpB,KAAAprB,SAAmB,EACnB,KAAA/iG,OAAiB,EACjB,KAAAwvI,cAAwB,EAEvB,KAAA4P,gBAAsC,EACtC,KAAAp4H,SAAmB,GACnB,KAAAq4H,QAAkB,GAClB,KAAA1f,SAAmB,GACnB,KAAAznD,UAAY,IAAI,EAAAC,UAChB,KAAAqS,UAA0B,IAAIjmF,MAC9B,KAAAqyF,aAAyB,IAAIryF,MAC7B,KAAA+6I,aAA2BjnE,EAAOC,IAAI7Z,KAAK,IAE3C,KAAA2Z,YAA0BC,EAAOC,IAAI7Z,KAAK,IAC1C,KAAAm2C,gBAA8Bv8B,EAAOC,IAAI7Z,KAAK,IAC9C,KAAA8gF,cAA4BlnE,EAAOC,IAAI7Z,KAAK,IAC5C,KAAA+gF,QAAsBnnE,EAAOC,IAAI7Z,KAAK,IAEtC,KAAAghF,eAAkC,IAAIl7I,MACtC,KAAAm7I,eAAyB,EACzB,KAAAC,mBAA6B,EAC7B,KAAAC,UAAoB,EAEpB,KAAAC,SAAqB,CAAEp/C,UAAW,EAAGi3B,WAAY,EAAGooB,WAAY,EAAGC,SAAU,EAAGC,SAAU,GA01C1F,KAAAC,iBAAkB,EAv1CtBxlJ,KAAK0yF,KAAOrF,CAChB,CAEA,aAAOD,CAAOC,GAeV,OAdK,EAAAvO,aACD,EAAAA,WAAa,IAAImkE,EAAW51D,GACxBzP,EAAOmT,UAAUuB,mBACjB,EAAAxT,WAAA,cAA2BlB,EAAOmT,UAAUuB,iBAAiB,GAAG/S,KAGpE,EAAAT,WAAA,SAAsBhzD,EAAGS,WACzB,EAAAuyD,WAAA,QAAqBhzD,EAAG25H,UAExB,EAAA3mE,WAAW4mE,aACX,EAAA5mE,WAAWH,YACX,EAAAG,WAAW6mE,mBACX,EAAA7mE,WAAW8mE,gBAER,EAAA9mE,UACX,CAEA,aAAAu9C,CAAc98C,EAAiBsmE,GAA0B,GACrD,GAAI,EAAA/mE,WAAWuB,qBAAsB,CACjC,MAAM2F,EAAahmF,KAAK2iF,SAASqD,WAAWzG,EAAKsmE,GAC3ChyI,EAAQ,EAAAksE,SAAS6F,SAASI,GAChC,GAAInyE,EAAMjL,OAAS,EAAG,CAClB,MAAMujB,EAAgC,GACtC,IAAK,MAAM63C,KAAQnwD,EACfsY,EAAMxqB,KAAK,CAAEypC,MAAOnuC,EAAKuW,SAASwwD,EAAKib,QAASqC,YAAatd,EAAKib,SAGtE,MAAMoC,EAAQ,kBACRM,EAAc,2BAEpB/D,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,QAAOK,aAAa,EAAOC,YAAaA,IAAe34E,KAAKs5E,IACxFA,GAAcA,EAAUhB,aAEzBgB,EAAUhB,aACV1D,EAAOznE,OAAO43E,iBAAiBnQ,EAAOC,IAAI7Z,KAAKse,EAAUhB,eAErE,MACI1D,EAAOznE,OAAO43E,iBAAiBnQ,EAAOC,IAAI7Z,KAAKnwD,EAAM,GAAGorE,QAEhE,CACJ,CAEA,kBAAAu9C,GACI,OAAOv/H,EAAKuH,KAAK,EAAAs6E,WAAW6D,SAASqB,iBAAiB/E,OAAQ,kBAClE,CAEA,QAAAs9C,GACIv8H,KAAKolJ,SAAW,CAAEp/C,UAAW,EAAGi3B,WAAY,EAAGooB,WAAY,EAAGC,SAAU,EAAGC,SAAU,EACzF,CAEA,SAAA9oB,GACI,MAAMqpB,EAAc9lJ,KAAKw8H,qBACzB,IAAIv5C,EAAUhoF,EAAG2Z,aAAakxI,EAAa,QACvChtH,EAAS,UAAY94B,KAAKolJ,SAASp/C,UAAY,KACnDltE,GAAU,iBAAmB94B,KAAKolJ,SAASnoB,WAAa,KACxDnkG,GAAU,oBAAsB94B,KAAKolJ,SAASE,SAAW,KACzDxsH,GAAU,uBAAyB94B,KAAKolJ,SAASC,WAAa,KAC9DvsH,GAAU,0BAA4B94B,KAAKolJ,SAASG,SAAW,KAC/DzsH,GAAU,OAEVmqD,EAAUnqD,EAASmqD,EACnBhoF,EAAG0Z,cAAcmxI,EAAa7iE,EAAS,OAC3C,CAEA,OAAAw4C,CAAQ9tC,GACJ,MAAM5P,EAAW,EAAAe,WAAW6D,SAAS3D,oBAAoBC,OACnDiH,EAAUyH,EAAS1O,OAAO7jE,UAAU2iE,EAASn1E,OAAS,EAAG+kF,EAAS1O,OAAOr2E,QACzEqtI,EAAeh5I,EAAKuH,KAAKu5E,EAAUmI,EAAU,EAAApH,WAAW4F,YACxDsB,EAAa/oF,EAAKuH,KAAKu5E,EAAUmI,EAAU,EAAApH,WAAWgH,aACtDjyE,EAAQ,EAAAksE,SAAS6F,SAAShI,EAAOC,IAAI7Z,KAAKgiB,IAChD,IAAK,MAAMH,KAAYhyE,EAAO,CAC1B,MAAMkyI,EAAa9oJ,EAAKuH,KAAKyxI,EAAch5I,EAAKuW,SAASqyE,EAAS5G,SAC9DhkF,EAAG8wE,WAAWg6E,IACd/lJ,KAAKgmJ,SAAS/oJ,EAAKuW,SAASm6E,EAAS1O,QAAS8mE,EAAYlgE,EAAS5G,OAE3E,CAEJ,CAEA,QAAA+mE,CAASr4D,EAAkB3pB,EAAc6hB,GACrC,MAAMogE,EAAcjmJ,KAAKw8H,qBACnB0pB,EAAW,IAAI,EAAAzjE,SAASze,GACxBmiF,EAAW,IAAI,EAAA1jE,SAASoD,GACxBugE,EAAWD,EAASzjE,WAAW95E,OACrC,IAAI4M,EAAQ,EACR6wI,EAAW,EACXjtD,EAAS,GACTktD,EAAa,GAEjB,IAAK,IAAI52I,EAAI,EAAGA,EAAI02I,EAAU12I,IAAK,CAC/B,MAAM62I,EAAWL,EAASxjE,WAAWhzE,GAC/B82I,EAAWL,EAASzjE,WAAWhzE,GACjC62I,GAAYC,EACZhxI,KAEA6wI,IACAC,GAAcC,EAAW,KAAOC,EAAW,OAEnD,CACAptD,EAASzL,EAAW,aAAey4D,EAA1Bz4D,aAAyDn4E,EAAzDm4E,gBAAwF04D,EAAW,KACxGC,EAAW19I,SACXwwF,GAAUktD,EAAa,MAE3BtmJ,KAAKolJ,SAASp/C,YACdhmG,KAAKolJ,SAASC,YAAc7vI,EAC5BxV,KAAKolJ,SAASG,UAAYc,EACtBA,EACArmJ,KAAKolJ,SAASE,WAEdtlJ,KAAKolJ,SAASnoB,aAElBhiI,EAAGyvG,eAAeu7C,EAAa7sD,EACnC,CAEA,UAAApZ,CAAWrY,GACP3nE,KAAKmF,IAAI0oF,QAAQlmB,EACrB,CAEA,SAAA8+E,GACI,OAAOzmJ,KAAKmF,IAAI22G,YACpB,CAEA,YAAAzhB,CAAaqsD,GAAuB,G,MAChC,GAAsB,GAAlB1mJ,KAAKmlJ,UAAgB,CACrB,EAAA9sD,QAAQ8P,WAAU,GAClBnoG,KAAKusB,SAAWT,EAAGS,WACnB,MAAMo6H,EAAwB,UAAjB3mJ,KAAKusB,SAAuB,MAAQvsB,KAAKusB,SACtDvsB,KAAK4kJ,QAAU94H,EAAG25H,UAClB,MAAMmB,EAAW5mJ,KAAK6mJ,iBAAiB7mJ,KAAK8mJ,4BACxCF,IAAU5mJ,KAAK6kJ,aAAejnE,EAAOC,IAAI7Z,KAAK4iF,IAClD5mJ,KAAK8iE,QAA6D,QAAnD,EAAA8a,EAAOx2C,WAAWwrG,aAAa5yI,KAAKojJ,uBAAe,eAAEjoC,YAAYr4C,QAE5E4jF,IACA1mJ,KAAKskF,aAAa,aAAeqiE,EAAM,EAAApiE,YAAYC,SACnDxkF,KAAKskF,aAAa,sBAAwBtkF,KAAK4kJ,QAAS,EAAArgE,YAAYC,SACpExkF,KAAKskF,aAAa,gCAAkCtkF,KAAK6kJ,aAAa5lE,OAAQ,EAAAsF,YAAYC,UAG9FxkF,KAAKskF,aAAa,qCAAsC,EAAAC,YAAYC,SACpExkF,KAAK+mJ,oBACL/mJ,KAAKy5B,YACT,CACJ,CAEA,UAAAA,GAC0B,GAAlBz5B,KAAKmlJ,YACLnlJ,KAAKmlJ,WAAaziD,YAAY1iG,KAAKgnJ,aAAc,KAEzD,CAEA,WAAAp4B,GACI5uH,KAAKskF,aAAa,yBAA0B,EAAAC,YAAYC,SACxD,IAAK,MAAMhpE,KAAK,EAAAsjE,WAAWgpB,SACnBtsF,EAAE2mF,QAAUygD,EAAOt4C,UACnB9uF,EAAE2mF,OAASygD,EAAO14C,MAG1B,EAAAprB,WAAA,SAAqB,CACzB,CAEA,iBAAAioE,GACI,EAAAjoE,WAAWmoE,uBACX,EAAAnoE,WAAWooE,mBACX,EAAApoE,WAAWqoE,wBACf,CAEA,gBAAAD,GACI,MAAM/8C,EAAK,EAAArrB,WAAWqwD,UACtB,EAAArwD,WAAWsoE,mBAAmBj9C,EAAI64C,EAAOqE,KAAMvE,EAAOwE,MAAO1E,EAAO2E,MAAO1E,EAAK2E,aAAczE,EAAO0E,SACzG,CAEA,sBAAAN,GACI,MAAMh9C,EAAK,EAAArrB,WAAWqwD,UACtB,EAAArwD,WAAWsoE,mBAAmBj9C,EAAI64C,EAAOqE,KAAMvE,EAAOwE,MAAO1E,EAAO2E,MAAO1E,EAAK2E,aAAczE,EAAO2E,eACzG,CAEA,oBAAAT,GACI,MAAM98C,EAAK,EAAArrB,WAAWqwD,UACK,SAAvB,EAAArwD,WAAWvyD,WACX,EAAAuyD,WAAWsoE,mBAAmBj9C,EAAI64C,EAAOqE,KAAMvE,EAAO6E,SAAU/E,EAAO2E,MAAO1E,EAAK2E,aAAczE,EAAO6E,MACxG,EAAA9oE,WAAWsoE,mBAAmBj9C,EAAI64C,EAAOqE,KAAMvE,EAAO6E,SAAU/E,EAAO2E,MAAO1E,EAAK2E,aAAczE,EAAO8E,MACxG,EAAA/oE,WAAWsoE,mBAAmBj9C,EAAI64C,EAAOqE,KAAMvE,EAAO6E,SAAU/E,EAAO2E,MAAO1E,EAAK2E,aAAczE,EAAO+E,OAE5G,EAAAhpE,WAAWsoE,mBAAmBj9C,EAAI64C,EAAOqE,KAAMvE,EAAO6E,SAAU/E,EAAO2E,MAAO1E,EAAK2E,aAAczE,EAAO/T,SACxG,EAAAlwD,WAAWsoE,mBAAmBj9C,EAAI64C,EAAOqE,KAAMvE,EAAOwE,MAAO1E,EAAO2E,MAAO1E,EAAK2E,aAAczE,EAAOgF,cACrG,EAAAjpE,WAAWsoE,mBAAmBj9C,EAAI64C,EAAOqE,KAAMvE,EAAOwE,MAAO1E,EAAO2E,MAAO1E,EAAK2E,aAAczE,EAAOiF,qBACzG,CAEA,qBAAAC,CAAsB99C,EAAcxoG,GACL,SAAvB,EAAAm9E,WAAWvyD,WACX,EAAAuyD,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOvyD,OAAQqyD,EAAO2E,MAAO1E,EAAKtyD,OAAQwyD,EAAO6E,MACzF,EAAA9oE,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOvyD,OAAQqyD,EAAO2E,MAAO1E,EAAKtyD,OAAQwyD,EAAO8E,MACzF,EAAA/oE,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOvyD,OAAQqyD,EAAO2E,MAAO1E,EAAKtyD,OAAQwyD,EAAO+E,OAE7F,EAAAhpE,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOvyD,OAAQqyD,EAAO2E,MAAO1E,EAAKtyD,OAAQwyD,EAAO/T,SACzF,EAAAlwD,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOvyD,OAAQqyD,EAAO2E,MAAO1E,EAAKtyD,OAAQwyD,EAAOgF,cACzF,EAAAjpE,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOvyD,OAAQqyD,EAAO2E,MAAO1E,EAAKtyD,OAAQwyD,EAAOiF,qBAC7F,CAEA,iBAAAE,CAAkB/9C,EAAcxoG,GAC5B,EAAAm9E,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOvyD,OAAQqyD,EAAO2E,MAAO1E,EAAKtyD,OAAQwyD,EAAO0E,SAC7F,CAEA,mBAAAU,CAAoBh+C,EAAcxoG,GAC9B,EAAAm9E,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOvyD,OAAQqyD,EAAO2E,MAAO1E,EAAKtyD,OAAQwyD,EAAO2E,eAC7F,CAEA,uBAAAU,CAAwBj+C,EAAcxoG,GAClC,EAAAm9E,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOwE,MAAO1E,EAAO2E,MAAO1E,EAAK8E,SAAU5E,EAAOiF,sBAC1F,EAAAlpE,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOwE,MAAO1E,EAAO2E,MAAO1E,EAAK8E,SAAU5E,EAAOgF,cAC1F,EAAAjpE,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAO6E,SAAU/E,EAAO2E,MAAO1E,EAAK8E,SAAU5E,EAAO/T,SAClE,SAAvB,EAAAlwD,WAAWvyD,WACX,EAAAuyD,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAO6E,SAAU/E,EAAO2E,MAAO1E,EAAK8E,SAAU5E,EAAO+E,MAC7F,EAAAhpE,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAO6E,SAAU/E,EAAO2E,MAAO1E,EAAK8E,SAAU5E,EAAO8E,MAC7F,EAAA/oE,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAO6E,SAAU/E,EAAO2E,MAAO1E,EAAK8E,SAAU5E,EAAO6E,MAErG,CAEA,mBAAAS,CAAoBl+C,EAAcxoG,GAC9B,EAAAm9E,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOwE,MAAO1E,EAAO2E,MAAO1E,EAAK8E,SAAU5E,EAAO0E,SAC9F,CAEA,qBAAAa,CAAsBn+C,EAAcxoG,GAChC,EAAAm9E,WAAWsoE,mBAAmBj9C,EAAIxoG,EAAMmhJ,EAAOwE,MAAO1E,EAAO2E,MAAO1E,EAAK8E,SAAU5E,EAAO2E,eAC9F,CAEA,kBAAAN,CAAmBmB,EAAgB5mJ,EAAcuJ,EAAci3F,EAAgBuG,EAAiB8/C,GAC5F,MAAMr+C,EAAK,CAAEj/F,KAAMA,EAAMi3F,OAAQA,EAAQuG,UAAWA,EAAW8/C,UAAWA,EAAWC,OAAQ,GAAItyF,MAAO,GAAIuyF,QAAS,GAAI5lF,QAASylF,EAAKzlF,SAEvI,OAAQ0lF,GACJ,KAAKzF,EAAO6E,KACZ,KAAK7E,EAAO8E,KACZ,KAAK9E,EAAO+E,KACR,EAAAhpE,WAAW6pE,aAAax+C,GACxB,MACJ,KAAK44C,EAAO/T,QACR,EAAAlwD,WAAW8pE,OAAOz+C,GAClB,MACJ,KAAK44C,EAAOgF,aACR,EAAAjpE,WAAW+pE,SAAS1+C,EAAI,EAAArrB,WAAW4kE,eAAgB,GAAI,EAAA5kE,WAAW0kE,sBAAuB,CAAC,SAC1F,MACJ,KAAKT,EAAOiF,qBACR,EAAAlpE,WAAW+pE,SAAS1+C,EAAI,EAAArrB,WAAW4kE,eAAgB,GAAI,EAAA5kE,WAAW2kE,8BAA+B,CAAC,UAAW,QAC7G,MACJ,KAAKV,EAAO0E,SAIR,EAAA3oE,WAAW+pE,SAAS1+C,EAAI,EAAArrB,WAAW6kE,sBAAuB,aAAc,EAAA7kE,WAAW+kE,uBAAwB,CAAC,EAAA/kE,WAAW8H,yBAA0B,OAAQ,uBACzJ,MACJ,KAAKm8D,EAAO2E,eACR,EAAA5oE,WAAW+pE,SAAS1+C,EAAI,EAAArrB,WAAW8kE,eAAgB,YAAa,EAAA9kE,WAAWglE,gBAAiB,CAAC,KAIjGniJ,GAAQqhJ,EAAOqE,KACfrnJ,KAAK8nG,SAASnmG,KAAKwoG,GAEnBnqG,KAAK8nG,SAAS1vF,QAAQ+xF,EAC9B,CAEA,QAAA0+C,CAAS1+C,EAAc2+C,EAAcnjE,EAAgB9a,EAAkB69E,GACnEv+C,EAAGs+C,OAAS,EAAA3pE,WAAWilE,kBAAoB+E,EAAO,EAAAhqE,WAAWmlE,+BAAiCp5E,EAC9F,MAAMk+E,EAAS,EAAAjqE,WAAWiQ,kBAAkB9P,OAC5CkrB,EAAGh0C,MAAQl5D,EAAKuH,KAAKukJ,EAAQpjE,EAAQ9a,GACrCs/B,EAAGu+C,QAAU,GACb,IAAK,MAAM30I,KAAK20I,EACZv+C,EAAGu+C,QAAQ/mJ,KAAK1E,EAAKuH,KAAKmhF,EAAQ5xE,GAE1C,CAEA,MAAA60I,CAAOz+C,GACH,IAAIxR,EAAM,GACV,OAAQ,EAAA7Z,WAAWvyD,UACf,IAAK,QACDosE,EAAM,WACN,MACJ,IAAK,SACDA,EAAM,WACN,MACJ,QACIA,EAAM,EAAA7Z,WAAWkqE,eACjB7+C,EAAGj/F,KAAO43I,EAAOwE,MAEzBn9C,EAAGs+C,OAAS,EAAA3pE,WAAWolE,6BAA+BvrD,EACtD,MAAMowD,EAAS,EAAAjqE,WAAWiQ,kBAAkB9P,OAC5CkrB,EAAGh0C,MAAQl5D,EAAKuH,KAAKukJ,EAAQ,EAAAjqE,WAAWkwD,QAC5C,CAEA,YAAAga,GACI,IACI,MACMC,EADYhuJ,EAAG2Z,aAAa,kBAAmB,QACtBY,MAAM,8BACrC,GAAIyzI,EAAc,CACd,MAAMriJ,EAAIqiJ,EAAa,GACvB,GAAU,UAANriJ,EAAe,MAAO,mBAC1B,GAAU,UAANA,EAAe,MAAO,kBAC9B,CACJ,CAAE,MAAOo2B,GACT,CACA,MAAO,mBACX,CAEA,YAAA2rH,CAAax+C,GACT,IAAI++C,EAAa,GACbC,EAAM,GACV,GAA4B,UAAxB,EAAArqE,WAAWvyD,SACX,OAAQ49E,EAAGq+C,WACP,KAAKzF,EAAO6E,KAAMsB,EAAaC,EAAM,EAAArqE,WAAWukE,SAAU,MAC1D,KAAKN,EAAO8E,KAAMqB,EAAaC,EAAM,EAAArqE,WAAWwkE,SAAU,MAC1D,KAAKP,EAAO+E,KAAMoB,EAAaC,EAAM,EAAArqE,WAAWykE,SAGxDp5C,EAAGs+C,OAAS,EAAA3pE,WAAWolE,6BAA+BgF,EACtD,MAAMH,EAAS,EAAAjqE,WAAWiQ,kBAAkB9P,OAC5CkrB,EAAGh0C,MAAQl5D,EAAKuH,KAAKukJ,EAAQI,EACjC,CAEA,gBAAAtC,CAAiBpoI,GACb,MAAM5K,EAAQ,EAAAksE,SAAS6F,SAASnnE,GAChC,IAAK,MAAMulD,KAAQnwD,EAAMg3B,UAErB,GADiB5tC,EAAKuW,SAASwwD,EAAKib,QACvB3gE,WAAWte,KAAKojJ,gBAEzB,OADApjJ,KAAK8iE,QAAU9iE,KAAKopJ,gBAAgBplF,GAC7BA,EAAKib,OAGpB,MAAO,EACX,CAEA,YAAA+nE,GACI,IAAI78C,EAAK,EAAArrB,WAAWgpB,SAAS,GACnB,EAAAhpB,WAAWgpB,SACrB,IAAIuhD,GAAU,EAEd,IAAK,MAAM7tI,KAAK,EAAAsjE,WAAWgpB,SACvB,GAAI,EAAAhpB,WAAWwpB,QAQX9sF,EAAE2mF,OAASygD,EAAO0G,WAEjB,CACD,GAAI9tI,EAAE2mF,QAAUygD,EAAO3yD,SAAWz0E,EAAE2mF,QAAUygD,EAAO2E,OAAS/rI,EAAE2mF,QAAUygD,EAAOt4C,QAAS,CACtFH,EAAK3uF,EACL6tI,GAAU,EACV,KACJ,CACS7tI,EAAE2mF,QAAUygD,EAAOr4C,QAAU/uF,EAAE2mF,QAAUygD,EAAO0G,QAAU9tI,EAAE2mF,QAAUygD,EAAO14C,OAClFm/C,GAAU,EAElB,CAEJ,GAAIA,EAWA,OAVAzrE,EAAOuB,SAASC,eAAe,aAAc,oBAAoB,GACjE,EAAAN,WAAA,SAAsB,GACtBikB,cAAc,EAAAjkB,WAAWqmE,WACzB,EAAArmE,WAAA,UAAuB,EACnB,EAAAA,WAAWwpB,QACX,EAAAxpB,WAAWwF,aAAa,yBAA0B,EAAAC,YAAYC,SAE9D,EAAA1F,WAAWwF,aAAa,wBAAyB,EAAAC,YAAYC,SACjE,EAAA1F,WAAA,SAAqB,OACrBlB,EAAOuB,SAASC,eAAe,iBAKnC,GAFIxB,EAAOuB,SAASC,eAAe,aAAc,oBAAoB,IAEjE,EAAAN,WAAWwpB,QAMf,OAHI,EAAAxpB,WAAWv5E,OACX,EAAAu5E,WAAWwF,aAAa,EAAAxF,WAAWokE,WAAW/4C,EAAGhI,QAAU,IAAM,EAAArjB,WAAW6oB,OAAOwC,EAAGzB,WAAa,IAAM,EAAA5pB,WAAWqkE,SAASh5C,EAAGq+C,WAAY,EAAAjkE,YAAYC,SAEpJ2lB,EAAGhI,QACP,KAAKygD,EAAO2E,MACR,OAAQp9C,EAAGzB,WACP,KAAKm6C,EAAK2E,aAON,MAAM+B,EAAS,EAAAzqE,WAAWiQ,kBAAkB9P,OAC5C,GAAIkrB,EAAGu+C,QAAQ9/I,QAAU2gJ,EAAQ,CAC7B,IAAIC,GAAa,EACjB,IAAK,MAAM7jE,KAAUwkB,EAAGu+C,QAAS,CAC7B,MAAM30I,EAAI9W,EAAKuH,KAAK+kJ,EAAQ5jE,GAK5B,IAAK,EAAA7G,WAAW2qE,cAAc11I,GAAI,CAC9By1I,GAAa,EACb,KACJ,CACJ,CACKA,EAMDr/C,EAAGzB,UAAYm6C,EAAK8E,SALhB,EAAA7oE,WAAW4qE,cAAcv/C,GACzBA,EAAGzB,UAAYm6C,EAAK8G,QAEpBx/C,EAAGhI,OAASygD,EAAO14C,IAI/B,MAAWjvG,EAAG8wE,WAAWo+B,EAAGh0C,OACpB,EAAA2oB,WAAW4qE,cAAcv/C,GACzBA,EAAGzB,UAAYm6C,EAAK8G,QAEpBx/C,EAAGhI,OAASygD,EAAO14C,KAEvBC,EAAGzB,UAAYm6C,EAAK8E,SAExB,MAEJ,KAAK9E,EAAK8E,SACF1sJ,EAAG8wE,WAAWo+B,EAAGh0C,OACbg0C,EAAGj/F,MAAQ43I,EAAOwE,MAClBn9C,EAAGzB,UAAYm6C,EAAKyE,MAEpBn9C,EAAGhI,OAASygD,EAAO14C,MAIvBC,EAAGhI,OAASygD,EAAOt4C,QACnB,EAAAxrB,WAAWjU,SAASs/B,IAExB,MAEJ,KAAK04C,EAAKtyD,OAWN,GAVIt1F,EAAG8wE,WAAWo+B,EAAGh0C,SACjB,EAAA2oB,WAAWwF,aAAa,aAAe6lB,EAAGh0C,MAAO,EAAAouB,YAAYC,SAC7DvpF,EAAGypG,WAAWyF,EAAGh0C,QAQjBg0C,EAAGu+C,QAAQ9/I,OACX,IAAK,MAAM+8E,KAAUwkB,EAAGu+C,QAAS,CAC7B,MAAM30I,EAAI9W,EAAKuH,KAAKvH,EAAKuhB,QAAQ2rF,EAAGh0C,OAAQwvB,GACxC1qF,EAAG8wE,WAAWh4D,IACd,EAAAgsE,SAAS0mB,OAAO1yF,EAExB,CAEJo2F,EAAGhI,OAASygD,EAAO14C,KACnB,MAEJ,KAAK24C,EAAKyE,MACNn9C,EAAGhI,OAASygD,EAAOt4C,QACnB,EAAAxrB,WAAW8qE,MAAMz/C,GACjB,MAEJ,KAAK04C,EAAK8G,QACN,GAAIx/C,EAAGrnC,QAAQl6D,OACX,EAAAk2E,WAAW+qE,cAAc1/C,GACzBA,EAAGhI,OAASygD,EAAO14C,UAEnB,OAAQC,EAAGq+C,WACP,KAAKzF,EAAO/T,QACR,EAAAlwD,WAAWgrE,gBAAgB3/C,GAC3B,MAEJ,KAAK44C,EAAO0E,SACR,EAAA3oE,WAAWowD,oBAAoB/kC,GAC/B,MAEJ,KAAK44C,EAAO2E,eACJ,EAAA5oE,WAAWv5E,OAAO,EAAAu5E,WAAWwF,aAAa,2BAA4B,EAAAC,YAAYC,SACtF,EAAA1F,WAAWswD,sBAAsBjlC,IAQzD,KAAKy4C,EAAOt4C,SAIpB,CAEA,aAAAo/C,CAAcv/C,GACV,OAAOA,EAAGq+C,WAAazF,EAAO/T,SAAW7kC,EAAGq+C,WAAazF,EAAO0E,UAAYt9C,EAAGq+C,WAAazF,EAAO2E,cACvG,CAEA,OAAAvY,GACI,MAAO,CAAEjkI,KAAM43I,EAAO7yD,QAASkS,OAAQygD,EAAO3yD,QAASyY,UAAWm6C,EAAK5yD,QAASu4D,UAAWzF,EAAO9yD,QAASw4D,OAAQ,GAAItyF,MAAO,GAAIuyF,QAAS,GAAI5lF,QAAS,GAC5J,CAEA,aAAA+mF,CAAc1/C,GACV,OAAQA,EAAGq+C,WACP,KAAKzF,EAAO/T,QACR,EAAAnb,aAAa4c,oBAAoBtmC,EAAGrnC,SACpC,MACJ,KAAKigF,EAAO0E,SACR,EAAA5zB,aAAa8c,mBAAmBxmC,EAAGrnC,SACnC,EAAAgc,WAAWirE,kBAAkB5/C,EAAGrnC,SAChC,MACJ,KAAKigF,EAAO2E,eACR,EAAA7zB,aAAa+c,wBAAwBzmC,EAAGrnC,SACxC,EAAAgc,WAAWkrE,oBAAoB7/C,EAAGrnC,SAG9C,CAEA,eAAAgnF,CAAgB3/C,G,MACkB,QAA9B,IAAArrB,WAAWmrE,gBAAgB9/C,UAAG,SAAEnhG,KAAK85D,IACjC,EAAAgc,WAAWorE,uBAAuB//C,GAC7BnhG,KAAKmhJ,IACEA,IACA,EAAArrE,WAAWspE,wBAAwBj+C,EAAI64C,EAAOoH,OAC9C,EAAAtrE,WAAWmpE,sBAAsB99C,EAAI64C,EAAOoH,QAEhDjgD,EAAGhI,OAASygD,EAAO14C,KACnB,EAAAprB,WAAW+qE,cAAc1/C,OAGhCjhG,MAAM3J,IACH4qG,EAAGhI,OAASygD,EAAOr4C,SAE3BJ,EAAGhI,OAASygD,EAAOt4C,OACvB,CAEA,sBAAA4/C,CAAuB//C,GACnB,OAAO,IAAIrhG,QAAQ,CAACC,EAASE,KAEX,aAEQ2P,IAAI5Y,KAAKmkJ,6BAA8B,SAAUj0H,GACnEA,EAAI5sB,GAAG,OAAQ,SAAUq4B,GACrB,IAAI0uH,GAAQ,EACZ,GAAIlgD,EAAGhI,QAAUygD,EAAO14C,KAAM,CAC1B,MAAMp1E,EAAM5E,EAAIuK,YAChB,EAAAqkD,WAAA,kBAA+BhqD,EAAI1Z,UAAU0Z,EAAI2gD,YAAY,KAAO,GACpE,MAAM60E,EAAa,EAAAxrE,WAAW6hB,iBACxB4pD,EAAc,EAAAzrE,WAAW8hB,kBAC/BuJ,EAAGrnC,QAAU,EAAAgc,WAAW8hB,kBACpB,EAAA9hB,WAAWv5E,OAAO,EAAAu5E,WAAWwF,aAAa,qBAAuBgmE,EAAa,OAASC,EAAa,EAAAhmE,YAAYC,SAEhH8lE,GAAcC,EACV,EAAAzrE,WAAW0rE,eAAeD,EAAaD,GAAc,IACrDD,GAAQ,GAEJpvJ,EAAG8wE,WAAWo+B,EAAGh0C,OAUrB,EAAA2oB,WAAWv5E,OACX,EAAAu5E,WAAWwF,aAAa,sDAAwDgmE,EAAa,WAAaC,EAAc,KAAM,EAAAhmE,YAAYC,SAR9I6lE,GAAQ,EAUZlgD,EAAGhI,OAASygD,EAAO14C,IACvB,CACAnhG,EAAQshJ,EACZ,EACJ,GAAG/mJ,GAAG,QAAS,SAAUyE,GACrBkB,EAAOlB,EACX,GACQyjB,OAEhB,CAEA,mBAAA0jH,CAAoB/kC,GAChB,MAAMsgD,EAAatgD,EAAGhI,QAAUygD,EAAO3yD,QACvC,EAAAnR,WAAW4rE,wBAAwBvgD,GAC9BnhG,KAAKmhJ,IACEA,GACA,EAAArrE,WAAWupE,oBAAoBl+C,EAAI64C,EAAOoH,OAC1C,EAAAtrE,WAAWopE,kBAAkB/9C,EAAI64C,EAAOoH,OACpCK,IACAtgD,EAAGq+C,UAAYzF,EAAO0E,SACtB,EAAA3oE,WAAWrlD,eAERgxH,GACP7sE,EAAOznE,OAAOoqE,uBAAuB,2BAA6B,EAAAzB,WAAW+xD,mBAAqB,kBAEtG1mC,EAAGhI,OAASygD,EAAO14C,KACnB,EAAAprB,WAAW+qE,cAAc1/C,IAErC,CAEA,uBAAAugD,CAAwBvgD,GACpB,OAAO,IAAIrhG,QAAQ,CAACC,EAASE,KAEX,aAEQ2P,IAAI5Y,KAAKokJ,uCAAwC,SAAUl0H,GAC7EA,EAAI5sB,GAAG,OAAQ,SAAUq4B,GACrB,IAAI0uH,GAAQ,EACZ,GAAIlgD,EAAGhI,QAAUygD,EAAO14C,KAAM,CAC1B,MAAMp1E,EAAM5E,EAAIuK,YAChB,EAAAqkD,WAAA,mBAAgChqD,EAAI1Z,UAAU0Z,EAAI2gD,YAAY,KAAO,GACrE00B,EAAGrnC,QAAU,EAAAgc,WAAW+xD,mBACxB,MAAM8Z,EAAiB,EAAA7rE,WAAW8rE,oBAC9B,EAAA9rE,WAAWv5E,OACX,EAAAu5E,WAAWwF,aAAa,8BAAgCqmE,EAAiB,OAAS,EAAA7rE,WAAW+xD,mBAAoB,EAAAtsD,YAAYC,SAE7HmmE,GACA,EAAA7rE,WAAA,eAA4B6rE,EACxB,EAAA7rE,WAAW0rE,eAAe,EAAA1rE,WAAW+xD,mBAAoB8Z,GAAkB,IAC3EN,GAAQ,IAIZA,GAAQ,EAEZlgD,EAAGhI,OAASygD,EAAO14C,IACvB,CACAnhG,EAAQshJ,EACZ,EACJ,GAAG/mJ,GAAG,QAAS,SAAUyE,GACrBkB,EAAOlB,EACX,GACQyjB,OAEhB,CAEA,qBAAA4jH,CAAsBjlC,GAClB,MAAMsgD,EAAatgD,EAAGhI,QAAUygD,EAAO3yD,QACvC,EAAAnR,WAAW+rE,0BAA0B1gD,GAChCnhG,KAAKmhJ,IACEA,GACA,EAAArrE,WAAWkrE,oBAAoB,EAAAlrE,WAAWgyD,sBAC1C,EAAAhyD,WAAWwpE,sBAAsBn+C,EAAI64C,EAAOoH,OAC5C,EAAAtrE,WAAWqpE,oBAAoBh+C,EAAI64C,EAAOoH,OAC1CjgD,EAAGhI,OAASygD,EAAO14C,KACnB,EAAAprB,WAAW+qE,cAAc1/C,IAClBsgD,GACP7sE,EAAOznE,OAAOoqE,uBAAuB,oBAAsB,EAAAzB,WAAWgyD,qBAAuB,kBAEjG3mC,EAAGhI,OAASygD,EAAO14C,KACnB,EAAAprB,WAAW+qE,cAAc1/C,IAErC,CAEA,yBAAA0gD,CAA0B1gD,GACtB,OAAO,IAAIrhG,QAAQ,CAACC,EAASE,KACX,aAEQ2P,IAAI5Y,KAAKqkJ,gCAAiC,SAAUn0H,GACtEA,EAAI5sB,GAAG,OAAQ,SAAUq4B,GACrB,IAAI0uH,GAAQ,EACZ,GAAIlgD,EAAGhI,QAAUygD,EAAO14C,KAAM,CAC1B,MAAMp1E,EAAM5E,EAAIuK,YAChB,EAAAqkD,WAAA,qBAAkChqD,EAAI1Z,UAAU0Z,EAAI2gD,YAAY,KAAO,GACvE00B,EAAGrnC,QAAU,EAAAgc,WAAWgyD,qBACxB,MAAM6Z,EAAiB,EAAA7rE,WAAWgsE,sBAC9B,EAAAhsE,WAAWv5E,OACX,EAAAu5E,WAAWwF,aAAa,uBAAyBqmE,EAAiB,OAAS,EAAA7rE,WAAWgyD,qBAAsB,EAAAvsD,YAAYC,SACxHmmE,GACA,EAAA7rE,WAAA,iBAA8B6rE,EAC1B,EAAA7rE,WAAW0rE,eAAe,EAAA1rE,WAAWgyD,qBAAsB6Z,GAAkB,IAC7EN,GAAQ,IAIZA,GAAQ,EAEZlgD,EAAGhI,OAASygD,EAAO14C,IACvB,CACAnhG,EAAQshJ,EACZ,EACJ,GAAG/mJ,GAAG,QAAS,SAAUyE,GACrBkB,EAAOlB,EACX,GACQyjB,OAEhB,CAEA,QAAAq/C,CAASs/B,GACL,MAAM3/B,EAAa,EAAQ,MAE3B,MAAa,EAAD,yCACR,MAAM/rD,EAAMxhB,EAAKuhB,QAAQ2rF,EAAGh0C,OACtB9iD,EAAY82F,EAAGq+C,YAAczF,EAAO/T,SAAW7kC,EAAGj/F,OAAS43I,EAAOwE,MAClErqJ,EAAKuW,SAAS22F,EAAGs+C,QACjBxrJ,EAAKuW,SAAS22F,EAAGh0C,OACjBrhC,EAAMq1E,EAAGs+C,OAETsC,EAAa,IAAIvgF,EAAW,CAC9B11C,IAAKA,EACLj3B,UAAW4gB,EACXpL,SAAUA,IAEd,IACI,EAAAyrE,WAAWwF,aAAa,gBAAkBxvD,EAAK,EAAAyvD,YAAYC,eACrDumE,EAAWlgF,WACjB,EAAAiU,WAAWwF,aAAa,kBAAoBxvD,EAAK,EAAAyvD,YAAYC,SACzD2lB,EAAGj/F,MAAQ43I,EAAOwE,OAAU,EAAAxoE,WAAWwpB,QAGhC,EAAAxpB,WAAW4qE,cAAcv/C,IAChCA,EAAGzB,UAAYm6C,EAAK8G,QACpBx/C,EAAGhI,OAASygD,EAAO2E,OAEnBp9C,EAAGhI,OAASygD,EAAO14C,MANnBC,EAAGzB,UAAYm6C,EAAKyE,MACpBn9C,EAAGhI,OAASygD,EAAO2E,MAO3B,CACA,MAAOhoJ,GACH4qG,EAAGhI,OAASygD,EAAOr4C,OACnB,EAAAzrB,WAAWwF,aAAa,oBAAsBxvD,EAAM,KAAOv1B,EAAO,EAAAglF,YAAYC,QAClF,CACJ,EAAE,EA9BF,EA+BJ,CAKQ,aAAAilE,CAAcx6I,GAClB,IACI,IAAKhU,EAAG8wE,WAAW98D,GAAI,OAAO,EAC9B,MAAM+7I,EAAK/vJ,EAAGI,SAAS4T,GACvB,OAAO+7I,EAAGvqJ,cAAgBxF,EAAGM,YAAY0T,GAAGrG,OAAS,EAAIoiJ,EAAG3U,KAAO,CACvE,CAAE,SACE,OAAO,CACX,CACJ,CAMQ,aAAA4U,CAAc5nD,EAAaC,GAC3BroG,EAAG8wE,WAAWu3B,KACVroG,EAAGI,SAASioG,GAAK7iG,cAAe,EAAAs/E,SAAS0mB,OAAOnD,GAC/CroG,EAAGypG,WAAWpB,IAEvB,IACIroG,EAAGqqG,WAAWjC,EAAKC,EACvB,CAAE,MAAOtmE,GACL/hC,EAAGi9F,OAAOmL,EAAKC,EAAK,CAAE5kF,WAAW,IAC7BzjB,EAAGI,SAASgoG,GAAK5iG,cAAe,EAAAs/E,SAAS0mB,OAAOpD,GAC/CpoG,EAAGypG,WAAWrB,EACvB,CACJ,CASQ,cAAA6nD,CAAentI,EAAiBQ,GACpC,OAAO,IAAIzV,QAAQ,CAACC,EAASE,KACzB,MAAMkiJ,EAA2B,UAAlBr/H,EAAGS,YAA4C,WAAlBT,EAAGS,WACzC6+H,EAAiBC,IACfA,GAAKrrJ,KAAKskF,aAAa,6BAA+B+mE,EAAM,uBAAwB,EAAA9mE,YAAYC,SACpF,EAAQ,KACxBxmE,CAAQD,EAAS,CAAEU,IAAKF,IAAWvV,KAAK,IAAMD,KAAWG,MAAMD,IAEnE,IAAKkiJ,EAA2B,YAAjBC,IACf,MAAM,SAAEvwD,GAAa,EAAQ,MAI7BA,EAHiC,UAAlB/uE,EAAGS,WACZtvB,EAAKuH,KAAK3I,QAAQoa,IAAIq1I,QAAU,cAAe,WAAY,WAC3D,MACW,CAAC,MAAOvtI,EAAS,KAAMQ,GAAU,CAAEgtI,aAAa,GAASxjJ,IAClEA,EAAKqjJ,EAAcrjJ,EAAIyP,SAAW8b,OAAOvrB,IACxCgB,OAGjB,CAEA,KAAA6gJ,CAAMz/C,GACF,MAAa,EAAD,yCACR,MAAMqhD,EAAYvuJ,EAAKuhB,QAAQ2rF,EAAGh0C,OAC5Bs1F,EAAgBthD,EAAGq+C,YAAczF,EAAO/T,SAAW7kC,EAAGj/F,OAAS43I,EAAOwE,MACtEziD,EAAS4mD,EACTxuJ,EAAKuH,KAAKgnJ,EAAWvuJ,EAAKuW,SAAS22F,EAAGs+C,SACtCt+C,EAAGh0C,MASH2kD,EAAS79G,EAAKuH,KAAKgnJ,EAAW,iBACpC,IACQvwJ,EAAG8wE,WAAW+uC,IAAS,EAAA/6B,SAAS0mB,OAAOqU,GAC3C7/G,EAAGsZ,UAAUumG,EAAQ,CAAEp8F,WAAW,IAElC1e,KAAKskF,aAAa,cAAgBugB,EAAQ,EAAAtgB,YAAYC,SAOtD,MAAMknE,EAAmB,WACnB5iJ,QAAQwiE,KAAK,CACftrE,KAAKkrJ,eAAermD,EAAQiW,GAC5B,IAAIhyG,QAAc,CAAC6iJ,EAAU1iJ,IACzBJ,WAAW,IAAMI,EAAO,IAAIhN,MAAM,yBAC3ByvJ,EAAmB,IAAQ,MAAOA,MAEjD1rJ,KAAKskF,aAAa,aAAeugB,EAAQ,EAAAtgB,YAAYC,SAGrD,IAAIonE,EAAU9wC,EACd,GAAI2wC,EAAe,CACf,MAAMI,EAAY5uJ,EAAKuH,KAAKs2G,EAAQ79G,EAAKuW,SAASqxF,EAAQ,SACtD5pG,EAAG8wE,WAAW8/E,KAAYD,EAAUC,EAC5C,CACA,IAAK,MAAM93I,KAAK9Y,EAAGM,YAAYqwJ,GAAU,CACrC,MAAMtoD,EAAOmoD,GAAuB,aAAN13I,EACxB9W,EAAKuH,KAAKgnJ,EAAW,EAAA1sE,WAAWkwD,SAChC/xI,EAAKuH,KAAKgnJ,EAAWz3I,GAC3B,EAAA+qE,WAAWmsE,cAAchuJ,EAAKuH,KAAKonJ,EAAS73I,GAAIuvF,EACpD,CAEA,EAAAvjB,SAAS0mB,OAAOqU,GAChB3Q,EAAGhI,OAASygD,EAAO14C,KACnB,EAAAnqB,SAAS8P,QAAQgV,EACrB,CACA,MAAO98F,GACH/H,KAAKskF,aAAa,yBAA2BugB,EAAS,KAAO98F,EAAK,EAAAw8E,YAAYC,SAC1EvpF,EAAG8wE,WAAW+uC,IAAS,EAAA/6B,SAAS0mB,OAAOqU,GAC3C3Q,EAAGhI,OAASygD,EAAOr4C,MACvB,CACJ,EAAE,EAzDF,EA0DJ,CAEO,YAAAjmB,CAAajkC,EAAan1C,EAAoB,EAAAq5E,YAAYksC,MAC7D,EAAAp4B,QAAQC,WAAWj4C,EAAKn1C,OAAMzP,GAC9BmiF,EAAOuB,SAASC,eAAe,qBACnC,CAEA,SAAAT,GACI,GAAIf,EAAOmT,UAAUuB,iBAGjB,GAFAtyF,KAAK29E,YAAc39E,KAAK8kJ,cACxB9kJ,KAAKunF,cAAa,GACdvnF,KAAKy9E,UAAUmB,UAAU5+E,KAAK29E,YAAa,SAAU,CACrD,IAAImuE,GAAS,EAETC,EADU/rJ,KAAKy9E,UAAUoB,KAAKC,WAAW,GACpBq7B,gBAWzB,GATI4xC,EAAanjJ,OAAS,IAAM3N,EAAG8wE,WAAWggF,GAC1C/rJ,KAAKgsJ,mBAAmBpuE,EAAOC,IAAI7Z,KAAK,KAEZ,GAAvB+nF,EAAanjJ,SAElBmjJ,EADkB,EAAAhsE,SAASiB,eAAehhF,KAAK8kJ,eACtB,GAAG7lE,OAC5B6sE,GAAS,GAGTC,EASA,OARI9wJ,EAAG8wE,WAAWggF,GACd/rJ,KAAKm6G,gBAAkBv8B,EAAOC,IAAI7Z,KAAK+nF,GAEvC/rJ,KAAKm6G,gBAAkBv8B,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAK29E,YAAYsB,OAAQ8sE,IAE1ED,GACA9rJ,KAAKisJ,oBAAoBjsJ,KAAK29E,aAClC39E,KAAKowF,aAAapwF,KAAKm6G,kBAChB,CAEf,MACIn6G,KAAKisJ,oBAAoBjsJ,KAAK29E,aAGtC,OAAO,CACX,CAEA,YAAAioE,GACI,MAAM/kE,EAAU5jF,EAAKuH,KAAK,EAAAs6E,WAAWuzD,mBAAmBpzD,OAAQ,WAChE,GAAIhkF,EAAG8wE,WAAW8U,GAAU,CACxB,MAAMmB,EAAQ/kF,EAAKuH,KAAKxE,KAAK29E,YAAYsB,OAAQ,WACjD,IAAKhkF,EAAG8wE,WAAWiW,GACf,QAAK,EAAAjC,SAAS4kB,cAAc9jB,EAASmB,KACjCpE,EAAOznE,OAAOypE,mBAAmB,8BAC1B,GAIf5/E,KAAKksJ,aAAa,gBAAiBlqE,EAAOnB,GAC1C7gF,KAAKksJ,aAAa,aAAclqE,EAAOnB,EAC3C,CACA,OAAO,CACX,CAEA,YAAAqrE,CAAa7tI,EAAkB2jE,EAAenB,GAC1C,MAAMsrE,EAASlvJ,EAAKuH,KAAKw9E,EAAO3jE,GAChC,IAAKpjB,EAAG8wE,WAAWogF,GAAS,CACxB,MAAMC,EAAWnvJ,EAAKuH,KAAKq8E,EAASxiE,GACpCpjB,EAAGy8F,aAAa00D,EAAUD,EAC9B,CACJ,CAEA,UAAAzG,GACI1lJ,KAAKqsJ,mBACLrsJ,KAAKssJ,qBACLtsJ,KAAKusJ,0BACLvsJ,KAAKwsJ,uBACT,CAEA,qBAAAA,GACI,GAAI5uE,EAAOmT,UAAUuB,iBAAkB,CACnC,MAAMpyC,EAAS09B,EAAOmT,UAAUC,iBAAiB,WAAYhxF,KAAK8kJ,eAC5D91H,EAAUkxB,EAAOtnC,IAAY,WAC9BoW,EAODhvB,KAAKm6G,gBAAkBv8B,EAAOC,IAAI7Z,KAAKh1C,GANnChvB,KAAK+vF,UAAUnnF,SACf5I,KAAKm6G,gBAAkBn6G,KAAK+vF,UAAU,GACtC7vC,EAAO0jD,OAAO,UAAW5jG,KAAKm6G,gBAAgBl7B,OAAQrB,EAAOyyD,oBAAoBC,iBACjFtwI,KAAKskF,aAAa,qBAAuBtkF,KAAKm6G,gBAAgBl7B,OAAQ,EAAAsF,YAAYC,SAK9F,CACJ,CAEA,uBAAA+nE,GACI,MAAMrsG,EAAS09B,EAAOmT,UAAUC,iBAAiB,YACjD,IAAInzF,EAEA+/E,EAAOmT,UAAUuB,kBAAoB,EAAAvS,SAAS4lB,oBAAoB3lG,KAAK8kJ,eACvEjnJ,EAAYmC,KAAK8kJ,cAAc7lE,QAE/BphF,EAAYqiD,EAAOtnC,IAAY,cAAgB,GAC1C/a,IACDA,EAAYZ,EAAKuH,KAAKxE,KAAKsxF,UAAUrS,OAAQ,eAIrDj/E,KAAK29E,YAAcC,EAAOC,IAAI7Z,KAAKnmE,GAC/BA,EAAU+K,OAAS,GACnBs3C,EAAO0jD,OAAO,YAAa/lG,EAAW+/E,EAAOyyD,oBAAoBE,OACzE,CAEA,aAAAkc,GACI7uE,EAAOznE,OAAOk7E,iBAAiB,gBAAiB,+BAA+BroF,KAAK+tB,IAChF,EAAAshE,QAAQy2B,gBAEhB,CAEA,kBAAA49B,CAAmB3D,GACf,IAAI74I,EAAQ,EACZ,IAAK,MAAM+mF,KAAOj3F,KAAKglJ,eAAgB,CAEnC,GADA,EAAAlmE,WAAWwpB,QACPygD,EAAOzqI,WAAW24E,EAAI1X,IAAIN,QAC1B,MACJ/uE,GACJ,CACA,OAAOA,CACX,CAEA,eAAAk5I,CAAgBuD,GACZ,MAAMluI,EAAMkuI,EAAO1tE,OAEnB,OADgBxgE,EAAIrD,UAAUqD,EAAIg3D,YAAYz1E,KAAKojJ,gBAAkB,EAAIpjJ,KAAKojJ,eAAex6I,OAEjG,CAEA,cAAA4hJ,CAAeoC,EAAkBC,GAC7B,IAAKD,EAAShkJ,SAAWikJ,EAASjkJ,OAC9B,OAAO,EAEX,MAAMkkJ,EAAQF,EAAS5wJ,MAAM,KACvB+wJ,EAAQF,EAAS7wJ,MAAM,KACvBmV,EAAM27I,EAAMlkJ,OAASmkJ,EAAMnkJ,OAASkkJ,EAAMlkJ,OAASmkJ,EAAMnkJ,OAC/D,IAAK,IAAI8G,EAAI,EAAGA,EAAIyB,EAAKzB,IAAK,CAC1B,MAAMs9I,EAAK5wJ,SAAS,EAAA0iF,WAAWmuE,MAAMH,EAAMp9I,KACrCw9I,EAAK9wJ,SAAS,EAAA0iF,WAAWmuE,MAAMF,EAAMr9I,KAC3C,GAAIs9I,EAAKE,EAAI,OAAO,EACpB,GAAIA,EAAKF,EAAI,OAAQ,CACzB,CACA,OAAO,CACX,CAEA,KAAAC,CAAMnqF,GACF,IAAIxkC,EAAMwkC,EAIV,MAH+B,KAA3BA,EAAQ1nD,UAAU,EAAG,KACrBkjB,EAAMwkC,EAAQ1nD,UAAU,EAAG0nD,EAAQl6D,SAEhC01B,CACX,CAEA,OAAAs6D,GACI,OAAOhb,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK,EAAAs6E,WAAWiQ,kBAAkB9P,OAAQ,EAAAH,WAAWkwD,SACrF,CAEA,eAAAjgD,GACI,OAAOnR,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAKivI,qBAAqBhwD,OAAQj/E,KAAK0jJ,gBAC5E,CAEA,kBAAAzU,GACI,OAAOrxD,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAK8mJ,2BAA2B7nE,OAAQj/E,KAAKojJ,eAAiB,IAAMpjJ,KAAK8iE,SAC9G,CAEA,wBAAAgkF,GACI,IAAIroI,EAAMxhB,EAAKuH,KAAKxE,KAAK4kJ,QAAS,UAAW,cAM7C,OALK3pJ,EAAG8wE,WAAWttD,IACM,SAAjBze,KAAKusB,WACL9N,EAAMxhB,EAAKuH,KAAKxE,KAAK4kJ,QAAS,iBAAkB,eAGjDhnE,EAAOC,IAAI7Z,KAAKvlD,EAC3B,CAEA,wBAAA0uI,GACI,OAAOvvE,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKxE,KAAK+uF,kBAAkB9P,OAAQj/E,KAAK2jJ,uBACzE,CAEA,eAAAsG,CAAgB9/C,EAAc5kG,GAAiB,GAC3C,EAAAw6E,SAASglB,UAAUoF,EAAGh0C,MAAO,KAC7B,EAAA2oB,WAAA,iBAA8B,GAC9B,MAAMwb,EAAK,EAAQ,MACnB,OAAO,IAAIxxF,QAASC,IAChB,IAAIkyE,EAAS,GACTmyE,GAAU,EAId,MAAMC,EAAS,KACX,GAAID,EAAS,OACbA,GAAU,EAGV,MAAMroF,EAAQkW,EAAOj/E,MAAM,SAASmC,IAAIugC,GAAKA,EAAEttB,QAAQ9M,OAAOo6B,GAAKA,EAAE91B,QACrE,EAAAk2E,WAAA,iBAA8B/Z,EAAMn8D,OAASm8D,EAAMA,EAAMn8D,OAAS,GAAK,GACnErD,GAAO,EAAAu5E,WAAWwF,aAAa,mBAAqB,EAAAxF,WAAW6hB,iBAAmB,IAAK,EAAApc,YAAYC,SACvGz7E,EAAQ,EAAA+1E,WAAW6hB,mBAEvB,IAAI/0F,EACJ,IACIA,EAAQ0uF,EAAGmJ,MAAM0G,EAAGh0C,MAAO,CAAC,aAChC,CAAE,MAAOpuD,GAGL,OAFA,EAAA+2E,WAAWwF,aAAa,gCAAkCv8E,EAAK,EAAAw8E,YAAYC,cAC3E6oE,GAEJ,CACAzhJ,EAAMqvE,OAAO33E,GAAG,OAAS2Q,IAAWgnE,GAAUhnE,EAAK8pB,aAGnDnyB,EAAMtI,GAAG,QAAS,IAAM+pJ,KACxBzhJ,EAAMtI,GAAG,QAAUyE,IACf,EAAA+2E,WAAWwF,aAAa,gCAAkCv8E,EAAK,EAAAw8E,YAAYC,SAC3E6oE,OAGZ,CAEA,qBAAAjtE,GACI,OAAOxC,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK,EAAAs6E,WAAWuzD,mBAAmBpzD,OAAQ,EAAAH,WAAW4kE,eAAgB,EAAA5kE,WAAW8kE,gBACjH,CAEA,gBAAAvR,GACI,OAAOryI,KAAKglJ,eAAehlJ,KAAKilJ,gBAAgB1lE,GACpD,CAEA,gBAAAomE,GACI,MAAMlgD,EAAYzlG,KAAK8mJ,2BACvB,IAAI1jD,EAAqB,IAAIt5F,MAC7B9J,KAAKglJ,eAAiB,GACtB5hD,EAAO,EAAArjB,SAASiB,eAAeykB,GAC/B,IAAI6nD,EAAgB,GACpBttJ,KAAKilJ,gBAAkB,EACvB,IAAIx1H,EAAU,EAEd,IAAK,MAAMhR,KAAO2kF,EAEd,GADanmG,EAAKuW,SAASiL,EAAIwgE,QACtB3gE,WAAWte,KAAKojJ,gBAAiB,CACtC,MAAMtgF,EAAU9iE,KAAKopJ,gBAAgB3qI,IACT,GAAxB6uI,EAAc1kJ,QAAe5I,KAAKwqJ,eAAe1nF,EAASwqF,GAAiB,KAC3EA,EAAgBxqF,EAChB9iE,KAAKilJ,eAAiBx1H,GAE1BzvB,KAAKglJ,eAAerjJ,KAAK,CAAE49E,IAAK9gE,EAAKqkD,QAASA,EAASyqF,QAAQ,IAC/D99H,GACJ,CAGAzvB,KAAKilJ,gBAAkB,IACvBjlJ,KAAKglJ,eAAehlJ,KAAKilJ,gBAAgBsI,QAAS,EAC7CvtJ,KAAK8iE,QAAQl6D,SACd5I,KAAK8iE,QAAUwqF,GAG3B,CAEA,eAAArY,CAAgBc,GACZ/1I,KAAK2kJ,eAAiB5O,EACPn4D,EAAOmT,UAAUC,iBAAiB,YAC1C4S,OAAO,OAAQmyC,EAAUn4D,EAAOyyD,oBAAoBE,QAC3D3yD,EAAOuB,SAASC,eAAe,aAAc,oBAAqB22D,EACtE,CAEA,eAAAvB,GACI,MAAMt0F,EAAS09B,EAAOmT,UAAUC,iBAAiB,YAEjD,OADgB9wC,EAAOtnC,IAAY,cAC5BsnC,EAAOtnC,IAAa,OAC/B,CAEA,aAAA82G,CAAci1B,GACV3kJ,KAAK2kJ,eAAiBA,EACP/mE,EAAOmT,UAAUC,iBAAiB,UAC1C4S,OAAO,OAAQ+gD,EAAgB/mE,EAAOyyD,oBAAoBE,OACrE,CAEA,aAAA9gB,GACI,MAAMvvE,EAAS09B,EAAOmT,UAAUC,iBAAiB,UAEjD,OADgB9wC,EAAOtnC,IAAY,cAC5BsnC,EAAOtnC,IAAa,OAC/B,CAEA,gBAAAyzI,GACIrsJ,KAAK2kJ,eAAiB3kJ,KAAKyvH,eAC/B,CAEA,iBAAAs6B,CAAkBjnF,GACd9iE,KAAKwkJ,eAAiB1hF,EACP8a,EAAOmT,UAAUC,iBAAiB,UAC1C4S,OAAO,aAAc9gC,EAAS8a,EAAOyyD,oBAAoBE,OACpE,CAEA,iBAAAqa,GACI,MAAM1qG,EAAS09B,EAAOmT,UAAUC,iBAAiB,UAEjD,OADgB9wC,EAAOtnC,IAAY,cAC5BsnC,EAAOtnC,IAAY,aAC9B,CAEA,mBAAAoxI,CAAoBlnF,GAChB9iE,KAAKwkJ,eAAiB1hF,EACP8a,EAAOmT,UAAUC,iBAAiB,UAC1C4S,OAAO,YAAa9gC,EAAS8a,EAAOyyD,oBAAoBE,OACnE,CAEA,mBAAAua,GACI,MAAM5qG,EAAS09B,EAAOmT,UAAUC,iBAAiB,UAEjD,OADgB9wC,EAAOtnC,IAAY,aAC5BsnC,EAAOtnC,IAAY,YAC9B,CAEA,kBAAA0zI,GACI,MAAMpsG,EAAS09B,EAAOmT,UAAUC,iBAAiB,QAC3Ck0C,EAAWhlF,EAAOtnC,IAAY,QAC/BssH,EAUDllI,KAAKklI,SAAWA,EAThBtnD,EAAOznE,OAAOk7E,iBAAiB,6BAA8B,mBAAmBroF,KAAK+tB,IACjF6mD,EAAOznE,OAAOspE,aAAa,CAAE3kF,MAAO,YAAa4kF,OAAQ,mCAAoC12E,KAAKk8H,IAC1FA,IACA,EAAApmD,WAAA,SAAsBomD,EACtBhlF,EAAO0jD,OAAO,OAAQshC,EAAUtnD,EAAOyyD,oBAAoBE,YAO/E,CAEA,mBAAA0b,CAAoB9xC,GAChB,MAAM52B,EAAwB,CAC1B,WAAc,CACV,CACI,KAAQ,WACR,KAAQ,QACR,gBAAmB42B,EAAgBl7B,UAI/Cj/E,KAAKy9E,UAAU+F,SAASxjF,KAAK29E,YAAYsB,OAAQ,QAASsE,GAC1DvjF,KAAKgsJ,mBAAmB7xC,EAC5B,CAEA,YAAA/pB,CAAao9D,GACTxtJ,KAAKisJ,oBAAoBuB,GACzBxtJ,KAAK2iF,SAAS7sE,KAAK03I,GACnB5vE,EAAOuB,SAASC,eAAe,uBAC/BxB,EAAOuB,SAASC,eAAe,2BAC/BxB,EAAOuB,SAASC,eAAe,qBAC/BxB,EAAOuB,SAASC,eAAe,wBACnC,CAEA,kBAAA4sE,CAAmB7xC,GACXn6G,KAAKy9E,UAAUoB,OACD7+E,KAAKy9E,UAAUoB,KAAKC,WAAW,GACvCq7B,gBAAkBA,EAAgBl7B,OACxCj/E,KAAKy9E,UAAU7pE,YAEvB,CAEA,kBAAA+lG,GACI,OAAO35G,KAAKm6G,eAChB,CAEA,sBAAAiuB,GACI,OAAOpoI,KAAK2iF,SAAS8C,SACzB,CAEA,YAAAgC,GACI,QAAOznF,KAAK+vF,UAAUnnF,MAC1B,CAEA,cAAAk/E,GACI,OAAO9nF,KAAK29E,WAChB,CAEA,YAAA4J,CAAakmE,GAKT,OAJIztJ,KAAK29E,YAAYsB,OAAOr2E,SACxB5I,KAAK+vF,UAAY,GACjB/vF,KAAK0tJ,sBAAsBD,EAAaztJ,KAAK29E,cAE1C39E,KAAK+vF,SAChB,CAEA,qBAAA29D,CAAsBD,EAAsBhvI,GACxC,GAAIA,EAAIwgE,OAAOr2E,OAAQ,CACnB,IAAI+kJ,EAAqB,GACpB1yJ,EAAG8wE,WAAWttD,EAAIwgE,UACnBxgE,EAAMze,KAAK8kJ,eAEf6I,EAAO,EAAA5tE,SAASiB,eAAeviE,GAC/B,IAAK,MAAMyxH,KAAOyd,EACV,EAAA7uE,WAAWsJ,oBAAoB8nD,GAC1Bud,IAAe,EAAA1tE,SAAS0J,oBAAoBymD,IAC7ClwI,KAAK+vF,UAAUpuF,KAAKuuI,GAExBlwI,KAAK0tJ,sBAAsBD,EAAavd,EAGpD,CACJ,CAEA,kBAAA/vD,G,MACI,SAAyB,QAAlB,EAAAngF,KAAK8kJ,qBAAa,eAAE7lE,OAAOr2E,OACtC,CAEA,kBAAAy3E,GACI,OAAIrgF,KAAK8kJ,cACE9kJ,KAAK8kJ,cAETlnE,EAAOC,IAAI7Z,KAAK,GAC3B,CAEA,yBAAA4c,GACI,OAAO3lF,EAAG8wE,WAAW/rE,KAAK8gF,yBAC9B,CAEA,sBAAAA,CAAuBe,EAAkB,IACrC,IAAI+rE,EAAQ,GACZ,MAAMt8D,EAAYtxF,KAAK+uF,kBAAkB9P,OACnC4uE,EAAY,aAOlB,OANIv8D,IAEIs8D,EADA/rE,EAAQj5E,OACA3L,EAAKuH,KAAK8sF,EAAWu8D,EAAWhsE,GAEhC5kF,EAAKuH,KAAK8sF,EAAWu8D,IAE9BD,CACX,CAEA,mBAAAxlE,CAAoB6B,GAChB,MAAMmZ,EAAO,EAAArjB,SAASiB,eAAeiJ,GACrC,IAAIooC,GAAO,EACPD,GAAK,EACLxoH,GAAQ,EAEZ,IAAK,MAAM6U,KAAO2kF,EACsE,GAAhFnmG,EAAKuW,SAASiL,EAAIwgE,QAAQkmB,cAAc,EAAArmB,WAAW8H,0BACnDyrC,GAAO,EAE+C,GAAjDp1H,EAAKuW,SAASiL,EAAIwgE,QAAQkmB,cAAc,MAC7CitB,GAAK,EAEoD,GAApDn1H,EAAKuW,SAASiL,EAAIwgE,QAAQkmB,cAAc,WAC7Cv7F,GAAQ,GAIhB,OAAOyoH,GAAQD,GAAMxoH,CACzB,CAEA,WAAAkkJ,CAAY7jE,GACR,MAAMmZ,EAAO,EAAArjB,SAASiB,eAAeiJ,GACrC,IAAIooC,GAAO,EACPD,GAAK,EACLxoH,GAAQ,EACRC,GAAS,EACTwkH,GAAO,EAEX,IAAK,MAAM5vG,KAAO2kF,EAAM,CACpB,MAAM5kF,EAAUvhB,EAAKuW,SAASiL,EAAIwgE,QACgC,GAA9DzgE,EAAQ2mF,cAAc,EAAArmB,WAAW8H,0BACjCyrC,GAAO,EAE6B,GAA/B7zG,EAAQ2mF,cAAc,MAC3BitB,GAAK,EAEkC,GAAlC5zG,EAAQ2mF,cAAc,SAC3Bv7F,GAAQ,EAEQ,UAAX4U,GAAuB,EAAAuhE,SAASinB,SAASvoF,GAC9C5U,GAAS,EAEO,QAAX2U,GAAqB,EAAAuhE,SAASinB,SAASvoF,KAC5C4vG,GAAO,EAEf,CAEA,OAAOgE,GAAQD,GAAMxoH,GAASC,GAAUwkH,CAC5C,CAEA,eAAA0/B,GAEI,QADY,EAAAjvE,WAAWuzD,qBAEnBryI,KAAKskF,aAAa,8BAA+B,EAAAC,YAAYC,UACtD,EAGf,CAEA,YAAAwpE,GACI,EAAAlvE,WAAWspE,wBAAwB,EAAAtpE,WAAWqwD,UAAW6T,EAAOoH,OAChE,EAAAtrE,WAAWmpE,sBAAsB,EAAAnpE,WAAWqwD,UAAW6T,EAAOoH,OAC9D,EAAAtrE,WAAWub,cACf,CAEA,aAAA4zD,GACI,EAAAnvE,WAAWopE,kBAAkB,EAAAppE,WAAWqwD,UAAW6T,EAAOqE,MAC1D,EAAAvoE,WAAWupE,oBAAoB,EAAAvpE,WAAWqwD,UAAW6T,EAAOqE,MAC5DrnJ,KAAKq6F,cACT,CAEA,oBAAA6zD,GACI,EAAApvE,WAAWqpE,oBAAoB,EAAArpE,WAAWqwD,UAAW6T,EAAOqE,MAC5D,EAAAvoE,WAAWwpE,sBAAsB,EAAAxpE,WAAWqwD,UAAW6T,EAAOqE,MAC9DrnJ,KAAKq6F,cACT,CAEA,eAAAguC,CAAgB1qD,GACZ,MAAM00C,EAAOz0C,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAKm5E,EAAYsB,OAAQ,EAAAH,WAAW8H,2BAC3D,EAAA9H,WAAWgD,QAAQG,iBAAiBowC,EAAMA,EAAM,CAAC,EAAAnwC,cAAcC,UAAW,EAAAC,cAAc8M,OAAQ,MAAO,OAC/Gga,OAAS,EAAA1B,WAAW0D,WACvB,EAAApsB,WAAWgD,QAAQC,cACvB,CAEA,WAAA4sC,GACI,EAAA7vC,WAAWgD,QAAQwmB,SACvB,CAWA,gBAAArb,CAAiBkhE,GAAqB,GAClC,KAAInuJ,KAAKwlJ,iBAAoB2I,KAC7BnuJ,KAAKwlJ,iBAAkB,EACnB5nE,EAAOmT,UAAUuB,kBAAkB,CACnC,IAAIztF,GAAM,EACV,MAAMm9E,EAAQpE,EAAOmT,UAAUuB,iBAAiB,GAAG/S,IAC7C4sE,EAASlvJ,EAAKuH,KAAKw9E,EAAM/C,OAAQ,UAAW,iBAI5C4B,EAAU7gF,KAAK0yF,KAAK07D,aACpBhC,EAAWnvJ,EAAKuH,KAAKq8E,EAAQ5B,OAAQ,UAAW,iBACtD,GAAIhkF,EAAG8wE,WAAWogF,IACd,GAAInsJ,KAAKy9E,UAAUmB,UAAUoD,EAAO,cAC3BhiF,KAAKy9E,UAAUoB,KAAKvxC,eAAe,mCAAoC,CACxE,MAAM+gH,EAAeruJ,KAAKy9E,UAAUoB,KACpC7+E,KAAKy9E,UAAUmB,UAAUiC,EAAS,YAClC,MAAMytE,EAAetuJ,KAAKy9E,UAAUoB,KAE9B0vE,EAAY,OAAH,wBACRF,GACAC,GAEPtuJ,KAAKy9E,UAAU+F,SAASxB,EAAM/C,OAAQ,WAAYsvE,EACtD,OAGJ1pJ,GAAM,GAENA,GAAOspJ,KACP,EAAApuE,SAAS+kB,SAASsnD,EAAUD,GAC5BnsJ,KAAKskF,aAAa,4CAA8C8nE,EAAW,OAASD,EAAQ,EAAA5nE,YAAYC,SAEhH,CACJ,CAEA,eAAAsL,CAAgBrxE,GACZ,IAAI+vI,EAAc,GAQlB,GAPqB,SAAjB1iI,EAAGS,WACHiiI,EAAc,eACU,SAAjB1iI,EAAGS,WACViiI,EAAc,WACU,UAAjB1iI,EAAGS,aACViiI,EAAc,QAEC,IAAfA,EAAmB,CAEnB,MAAMj9D,EAAMi9D,EAAc,KAAO/vI,EAAM,IAC5B,EAAQ,MAChBylB,KAAKqtD,EAAK,CAACxpF,EAAKkzE,EAAQ3gE,KACvBtP,QAAQC,IAAI,WAAagwE,GACzBjwE,QAAQC,IAAI,WAAaqP,IAEjC,MACIsjE,EAAOznE,OAAOoqE,uBAAuB,kCAE7C,CAEA,WAAAkuE,CAAYptE,GACR,OAAOzD,EAAOznE,OAAOorI,mBACjB,UACAlgE,EACA,CACI82C,WAAYv6C,EAAOw6C,WAAWC,OAC9BmpB,eAAe,GAG3B,CAEA,eAAAjpC,CAAgBl3B,EAAehuE,GAC3B,MAAM6mG,EAAU,EAAAp7B,WAAWgC,uBAAuB,QAC5C6b,EAAW1/F,EAAKyM,MAAM2J,GAAUhV,KAChC86G,EAASl8G,EAAKuH,KAAK01G,EAAS,WAAYvd,EAAW,OACnDmc,EAAW77G,EAAKuH,KAAK01G,EAAS,QAASvd,EAAW,SACpD1hG,EAAG8wE,WAAWotC,GACdv7B,EAAOuB,SAASC,eAAe,uBAAwBxB,EAAOC,IAAI7Z,KAAKm1C,IAElEl+G,EAAG8wE,WAAW+sC,IACnB94G,KAAK0uJ,YAAYrtE,EAAOpmF,EAAG2Z,aAAakkG,EAAU,QAE1D,CAEA,WAAA41C,CAAYrtE,EAAesgE,GACvB,MAAM1pC,EAAQj4G,KAAKyuJ,YAAYptE,GAC3B42B,IACAA,EAAMkpC,QAAQQ,KAAOA,EAE7B,CAEA,eAAAtlC,CAAgB93G,GACZ,MAAM8O,EAAWpW,EAAKuW,SAASjP,GAE/B,IAAImkF,EAAO,WAiCX,OA/BIA,EADAr1E,EAASzT,SAAS,SACX,WACAyT,EAASzT,SAAS,QAClB,UACAyT,EAASzT,SAAS,SAAWyT,EAASzT,SAAS,QAC/C,UACAyT,EAASzT,SAAS,SAClB,WACY,WAAZyT,EACA,cACAA,EAASzT,SAAS,QAClB,UACAyT,EAASzT,SAAS,OAClB,SACAyT,EAASzT,SAAS,SAClB,qBACAyT,EAASzT,SAAS,SAClB,WACAyT,EAASzT,SAAS,QAClB,UACAyT,EAASzT,SAAS,SAClB,WACAyT,EAASzT,SAAS,OAClB,aACAyT,EAASzT,SAAS,SAClB,WACAyT,EAASzT,SAAS,SAAWyT,EAASzT,SAAS,QAAUyT,EAASzT,SAAS,UAC3E,cAEA,WAGJ8oF,CACX,CAEA,YAAA+E,CAAaqqC,GACT,IAAI10B,EAAqB,GACzB,GAAI00B,EAAOlvH,OAAQ,CACf,MAAMi8E,EAAS5nF,EAAKuH,KAAK,EAAAs6E,WAAWuB,qBAAqBpB,OAAQ64C,GACjE10B,EAAO,EAAArjB,SAASiB,eAAepD,EAAOC,IAAI7Z,KAAK6gB,GACnD,MACIue,EAAO,EAAArjB,SAASiB,eAAe,EAAAlC,WAAWuB,sBAC9C,MAAMl0D,EAAgC,GACtC,IAAK,MAAM1N,KAAO2kF,EAAM,CACpB,MAAM/vF,EAAWpW,EAAKuW,SAASiL,EAAIwgE,QACnC9yD,EAAMxqB,KAAK,CAAEypC,MAAO/3B,EAAUiuE,YAAa7iE,EAAIwgE,QACnD,CACA,OAAO9yD,CACX,CAEA,kBAAAmxG,CAAmBqxB,GAAoB,GAGnC,OAFa,EAAA5uE,SAASiB,eAAe,EAAAlC,WAAWuB,sBAEzCrgF,KAAK4uJ,0BAA0B,EAAA9vE,WAAWuB,qBADX,GACwC,EAAGsuE,EACrF,CAEA,yBAAAC,CAA0BnwI,EAAiB0N,EAA+BnR,EAAgB,EAAG2zI,GAAoB,GAC7G,MAAMvrD,EAAO,EAAArjB,SAASiB,eAAeviE,GACrC,IAAI0oH,EAAS,GAEb,IAAK,IAAIz3H,EAAI,EAAGA,EAAIsL,EAAOtL,IACvBy3H,GAFW,MAIXA,EAAOv+H,OAAS,IAAGu+H,EAAS,IAAMA,GACtC,MAAM0nB,EAAM,IAAI,EAAArxE,aAChB,IAAK,MAAM/+D,KAAO2kF,EAAM,CACpB,MAAM5vF,EAAWvW,EAAKuW,SAASiL,EAAIwgE,QAC7B6vE,EAAYt7I,EAAS+H,cACvB,EAAAujE,WAAWsJ,oBAAoB3pE,GAC3BkwI,GACAxiI,EAAMxqB,KAAK,CAAEypC,MAAO+7F,EAAS3zH,EAAU8tE,YAAa,4BACpDutE,EAAI77B,aAAa/1H,EAAKuH,KAAKia,EAAIwgE,OAAQ,EAAAH,WAAW8H,0BAA2Bz6D,EAAO,IAAMg7G,EAZvF,OAYwG,IAE3Gh7G,EAAMxqB,KAAK,CAAEypC,MAAO+7F,EAAS3zH,EAAU8tE,YAAa7iE,EAAIwgE,UAG5D9yD,EAAMxqB,KAAK,CAAEypC,MAAO+7F,EAAS,YAAc2nB,EAAWxtE,YAAa,6CACnEthF,KAAK4uJ,0BAA0BnwI,EAAK0N,EAAOnR,EAAQ,EAAG2zI,GAE9D,CACA,OAAOxiI,CACX,CAEA,WAAA6lG,GACI,MAAM7lG,EAAgC,GACtC,IAAK,MAAMozD,KAAOv/E,KAAK8/E,SAAU,CAC7B,MAAMtsE,EAAWvW,EAAKuW,SAAS+rE,EAAIN,QACnC9yD,EAAMxqB,KAAK,CAAEypC,MAAO53B,EAAU8tE,YAAa/B,EAAIN,QACnD,CACA,OAAO9yD,CACX,CAEA,sBAAAm5G,CAAuBt9F,GACnB,MAAM+mH,EAAiB,CACnB,wBACA,mBACA,mBACA,oBAiCJ,GAAsC,GAAlC,EAAAjwE,WAAWqd,aAAavzF,OAAa,CACrC,MAAMrE,EAAWtH,EAAKuH,KAAK,EAAAs6E,WAAWgC,uBAAuB,EAAAhC,WAAW8H,2BACpE3rF,EAAG8wE,WAAWxnE,IAjCtB,SAASinF,EAAQ/sE,GACb,IACI,MAAM5K,EAAQ5Y,EAAGM,YAAYkjB,GAC7B,IAAK,MAAMulD,KAAQnwD,EAAO,CACtB,MAAM8zD,EAAW1qE,EAAKuH,KAAKia,EAAKulD,GAChC,GAAI+qF,EAAejwI,SAAS6oD,GACxB,SAEJ,IAAI5oE,EACJ,IACIA,EAAQ9D,EAAGI,SAASssE,EACxB,CAAE,MAAO5/D,GACL,GAAiB,UAAbA,EAAIG,KAEJ,SAEA,MAAMH,CAEd,CACA,MAAMinJ,EAAmB,SAAS/zI,KAAK+oD,GACnCjlE,EAAM0B,cACN+qF,EAAQ7jB,GACD1qE,EAAKuqC,QAAQw8B,KAAUh8B,GAAcgnH,GAC5C,EAAAlwE,WAAWqd,aAAax6F,KAAKgmE,EAErC,CACJ,CAAE,MAAO5/D,GACLiD,QAAQzL,MAAM,iDAAmDwI,EAAcyP,QACnF,CACJ,CAKQg0E,CAAQjnF,EAEhB,CACJ,CAEA,eAAAqjI,GACI,OAAO5nI,KAAKm8F,YAChB,CAEa,cAAA0iB,CAAen/B,EAAgBmC,EAAiBoD,EAAgBh9C,G,kDACzE,MAAMy2E,EAAUzhH,EAAKuH,KAAK,EAAAs6E,WAAWgC,yBAA0Be,EAASoD,GAClE94D,EAAgC,GAEhCwyF,EAAY,EAAA5+B,SAAS6F,SAAShI,EAAOC,IAAI7Z,KAAK06C,GAAUz2E,GACxD0lD,EAAW,IAAI,EAAAlL,SACrB,IAAK,MAAMm8B,KAAYD,EAAW,CAC9B,IAAIx9B,EAAQ,GAEZ,MAAMpiD,EAAY4uD,EAASC,cAAcgxB,EAAS3/B,QAC9B,KAAhBlgD,EAAU,KACVoiD,EAAQpiD,EAAU3jB,UAAU,IAEhC,MAAMstE,EAAO,EAAA5J,WAAWu9B,gBAAgBuC,EAAS3/B,QAC3C7zC,EAAQnuC,EAAKuW,SAASorG,EAAS3/B,QACvBrB,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK,EAAAs6E,WAAWuzD,mBAAmBpzD,OAAQ,YAAa,QAASyJ,IACvF9K,EAAOC,IAAI7Z,KAAK/mE,EAAKuH,KAAK,EAAAs6E,WAAWuzD,mBAAmBpzD,OAAQ,YAAa,OAAQyJ,IAClGv8D,EAAMxqB,KAAK,CAAEypC,MAAOA,EAAOk2C,YAAaH,GAC5C,CAEA,GAAoB,GAAhBh1D,EAAMvjB,OAEN,OADAg1E,EAAOznE,OAAOypE,mBAAmB,qCAC1B,GACJ,CACH,MAAMgC,QAAmBhE,EAAOznE,OAAOsrE,cAAct1D,EAAO,CAAEk1D,MAAO,UAAY3B,EAAQgC,aAAa,EAAMC,YAAa,UAAYjC,EAAS,eAC9I,GAAIkC,EACA,IAAK,MAAMj+E,KAAQi+E,EACfj+E,EAAK29E,YAAco9B,EAG3B,OAAO98B,GAAc,EACzB,CACJ,E,CAEA,eAAAqtE,CAAgB1vE,GACZ,IAAIoH,EAAUpH,EAAIN,OAMlB,OAJI0H,EADkB,UAAlB76D,EAAGS,WACOo6D,EAAQpxE,QAAQ,MAAO,QAEvBoxE,EAAQpxE,QAAQ,MAAO,KAE9BoxE,CACX,EAxrDJ,c,UCpDAv9E,EAAOvO,QACP,SAASizE,EAAQ9mE,EAAIipB,GACnB,GAAIjpB,GAAMipB,EAAI,OAAO69C,EAAO9mE,EAAP8mE,CAAW79C,GAEhC,GAAkB,mBAAPjpB,EACT,MAAM,IAAI2I,UAAU,yBAMtB,OAJAhV,OAAOkf,KAAK7S,GAAI+J,QAAQ,SAAUuK,GAChC4zI,EAAQ5zI,GAAKtU,EAAGsU,EAClB,GAEO4zI,EAEP,SAASA,IAEP,IADA,IAAI5jJ,EAAO,IAAIxB,MAAMpF,UAAUkE,QACtB8G,EAAI,EAAGA,EAAIpE,EAAK1C,OAAQ8G,IAC/BpE,EAAKoE,GAAKhL,UAAUgL,GAEtB,IAAI4uB,EAAMt3B,EAAG0L,MAAM1S,KAAMsL,GACrB2kB,EAAK3kB,EAAKA,EAAK1C,OAAO,GAM1B,MALmB,mBAAR01B,GAAsBA,IAAQrO,GACvCt1B,OAAOkf,KAAKoW,GAAIlf,QAAQ,SAAUuK,GAChCgjB,EAAIhjB,GAAK2U,EAAG3U,EACd,GAEKgjB,CACT,CACF,C,cChCA,IA8wBI6wH,EA9wBAl0J,EAAK,EAAQ,MACbm0J,EAAO,EAAQ,MACfC,EAAY,EAAQ,MACpB58I,EAAQ,EAAQ,MAChB2H,EAAO,EAAQ,MACfzX,EAAe,qBACfijE,EAAY,kBACZx6C,EAAc,oBACdmF,EAAW,iBAiCf,SAAS++H,EAAOz0I,EAAIpU,EAAStJ,GACJ,mBAAZsJ,IACTtJ,EAAWsJ,EACXA,EAAU,MAEG,MAAXA,IAAiBA,EAAU,CAAC,GACP,MAArBA,EAAQmqB,YAAmBnqB,EAAQmqB,WAAY,GACxB,MAAvBnqB,EAAQyX,cAAqBzX,EAAQyX,aAAc,GAC1B,MAAzBzX,EAAQ8oJ,gBAAuB9oJ,EAAQ8oJ,eAAgB,GACzB,MAA9B9oJ,EAAQ+oJ,qBAA4B/oJ,EAAQ+oJ,oBAAqB,GACtC,MAA3B/oJ,EAAQgpJ,kBAAyBhpJ,EAAQgpJ,iBAAkB,GAC/C,MAAZtyJ,IAAkBA,EAAWuyJ,GACjCz0J,EAAG00J,MAAM90I,EAAI,SAAS9S,EAAKhJ,GACzB,GAAIgJ,EAAK,OAAO5K,EAAS4K,GAEzB6nJ,EADaP,EAAU59H,aAAa5W,EAAI,CAAC+V,WAAW,IACrB7xB,EAAMs3I,KAAM5vI,EAAStJ,EACtD,EACF,CAkBA,SAASyyJ,EAAuBC,EAAQC,EAAWrpJ,EAAStJ,GACnC,mBAAZsJ,IACTtJ,EAAWsJ,EACXA,EAAU,MAEG,MAAXA,IAAiBA,EAAU,CAAC,GACP,MAArBA,EAAQmqB,YAAmBnqB,EAAQmqB,WAAY,GACxB,MAAvBnqB,EAAQyX,cAAqBzX,EAAQyX,aAAc,GAC1B,MAAzBzX,EAAQ8oJ,gBAAuB9oJ,EAAQ8oJ,eAAgB,GAC3D,IAAIA,IAAkB9oJ,EAAQ8oJ,cAI9B,GAHkC,MAA9B9oJ,EAAQ+oJ,qBAA4B/oJ,EAAQ+oJ,oBAAqB,GACtC,MAA3B/oJ,EAAQgpJ,kBAAyBhpJ,EAAQgpJ,iBAAkB,GAC/C,MAAZtyJ,IAAkBA,EAAWuyJ,GACR,iBAAdI,EAAwB,MAAM,IAAI7zJ,MAAM,+CACnD,GAAI6zJ,EAAY3zJ,OAAOo1B,iBACrB,MAAM,IAAIt1B,MAAM,0HAIlB4zJ,EAAO/+H,MAQP,IAEIi/H,EAAajgJ,KAAKC,IAAIigJ,MAA0CF,GAChEz+H,EAAS89H,EAAUY,GACnBE,EAAkBH,EAAYz+H,EAAOzoB,OACzCsnJ,EAAmBL,EAAQx+H,EAAQ,EAAG0+H,EAAYE,EAAiB,SAASloJ,GAC1E,GAAIA,EAAK,OAAO5K,EAAS4K,GACzB,IAAK,IAAI2H,EAAIqgJ,EAPe,GAOuBrgJ,GAAK,EAAGA,GAAK,EAC9D,GAA+B,YAA3B2hB,EAAO8+H,aAAazgJ,GAAxB,CAEA,IAAI0gJ,EAAc/+H,EAAO7gB,MAAMd,GAI3B2gJ,EAAaD,EAAYE,aAAa,GAC1C,GAAmB,IAAfD,EACF,OAAOlzJ,EAAS,IAAIlB,MAAM,8DAAgEo0J,IAK5F,IAAIE,EAAaH,EAAYE,aAAa,IAGtCE,EAAyBJ,EAAYD,aAAa,IAElDM,EAAgBL,EAAYE,aAAa,IACzCI,EAAwBN,EAAYxnJ,OA3Bd,GA4B1B,GAAI6nJ,IAAkBC,EACpB,OAAOvzJ,EAAS,IAAIlB,MAAM,qCAAuCy0J,EAAwB,YAAcD,IAIzG,IAAI78C,EAAU27C,EAAgBoB,EAAaP,EAAa,GAAIA,EAAYxnJ,QAAQ,GAClDwnJ,EAAY5/I,MAAM,IAEhD,GAAqB,QAAf+/I,GAAoD,aAA3BC,EAC7B,OAAOrzJ,EAAS,KAAM,IAAIyzJ,EAAQf,EAAQW,EAAwBV,EAAWS,EAAY38C,EAASntG,EAAQmqB,UAAWnqB,EAAQyX,YAAaqxI,EAAe9oJ,EAAQ+oJ,mBAAoB/oJ,EAAQgpJ,kBAM/L,IAAIoB,EAAmB1B,EAAU,IAC7B2B,EAAmBb,EAAkBvgJ,EAAImhJ,EAAiBjoJ,OAqC9D,YApCAsnJ,EAAmBL,EAAQgB,EAAkB,EAAGA,EAAiBjoJ,OAAQkoJ,EAAkB,SAAS/oJ,GAClG,GAAIA,EAAK,OAAO5K,EAAS4K,GAGzB,GAAyC,YAArC8oJ,EAAiBV,aAAa,GAChC,OAAOhzJ,EAAS,IAAIlB,MAAM,6DAI5B,IAAI80J,EAAmBC,EAAaH,EAAkB,GAIlDI,EAAmB9B,EAAU,IACjCe,EAAmBL,EAAQoB,EAAkB,EAAGA,EAAiBroJ,OAAQmoJ,EAAkB,SAAShpJ,GAClG,OAAIA,EAAY5K,EAAS4K,GAGgB,YAArCkpJ,EAAiBd,aAAa,GACzBhzJ,EAAS,IAAIlB,MAAM,6DAS5Bs0J,EAAaS,EAAaC,EAAkB,IAG5CT,EAAyBQ,EAAaC,EAAkB,IAEjD9zJ,EAAS,KAAM,IAAIyzJ,EAAQf,EAAQW,EAAwBV,EAAWS,EAAY38C,EAASntG,EAAQmqB,UAAWnqB,EAAQyX,YAAaqxI,EAAe9oJ,EAAQ+oJ,mBAAoB/oJ,EAAQgpJ,kBAC/L,EACF,EAxEmD,CA2ErDtyJ,EAAS,IAAIlB,MAAM,uDACrB,EACF,CAGA,SAAS20J,EAAQf,EAAQW,EAAwBnpF,EAAUkpF,EAAY38C,EAAShjF,EAAW1S,EAAaqxI,EAAeC,EAAoBC,GACzI,IAAI13I,EAAO/X,KACX2C,EAAa0G,KAAK0O,GAClBA,EAAK83I,OAASA,EAEd93I,EAAK83I,OAAOvsJ,GAAG,QAAS,SAASyE,GAE/BmpJ,EAAUn5I,EAAMhQ,EAClB,GACAgQ,EAAK83I,OAAOtsJ,KAAK,QAAS,WACxBwU,EAAK7V,KAAK,QACZ,GACA6V,EAAKo5I,gBAAkBX,EACvBz4I,EAAKsvD,SAAWA,EAChBtvD,EAAKw4I,WAAaA,EAClBx4I,EAAK67F,QAAUA,EACf77F,EAAKq5I,YAAc,EACnBr5I,EAAK6Y,YAAcA,EACnB7Y,EAAKmG,cAAgBA,EACrBnG,EAAKw3I,gBAAkBA,EACvBx3I,EAAKy3I,qBAAuBA,EAC5Bz3I,EAAK03I,kBAAoBA,EACzB13I,EAAKjN,QAAS,EACdiN,EAAKs5I,cAAe,EAEft5I,EAAKmG,aAAanG,EAAKu5I,YAC9B,CAOA,SAASC,EAAsBx5I,EAAMhQ,GAC/BgQ,EAAK6Y,WAAW7Y,EAAKtH,QACzBygJ,EAAUn5I,EAAMhQ,EAClB,CACA,SAASmpJ,EAAUn5I,EAAMhQ,GACnBgQ,EAAKs5I,eACTt5I,EAAKs5I,cAAe,EACpBt5I,EAAK7V,KAAK,QAAS6F,GACrB,CA6VA,SAASypJ,IACT,CAWA,SAASC,EAAkBrvG,EAAMnG,GAU/B,OAAO,IAAIhkC,KAPqB,MAApBmqC,GAAQ,EAAI,MADXA,GAAQ,EAAI,IAAO,EADf,GAAPA,EAOCnG,GAAQ,GAAK,GADXA,GAAQ,EAAI,GADI,GAAR,GAAPA,GADI,EAMpB,CAEA,SAASy1G,EAAiBrzI,GACxB,OAAgC,IAA5BA,EAASzY,QAAQ,MACZ,mCAAqCyY,EAE1C,aAAapD,KAAKoD,IAAa,MAAMpD,KAAKoD,GACrC,kBAAoBA,GAEc,IAAvCA,EAASriB,MAAM,KAAK4J,QAAQ,MACvB,0BAA4ByY,EAG9B,IACT,CAEA,SAAS6xI,EAAmBL,EAAQx+H,EAAQM,EAAQ/oB,EAAQgpB,EAAUz0B,GACpE,GAAe,IAAXyL,EAEF,OAAO1F,aAAa,WAAa/F,EAAS,KAAMgyJ,EAAU,GAAK,GAEjEU,EAAOzyJ,KAAKi0B,EAAQM,EAAQ/oB,EAAQgpB,EAAU,SAAS7pB,EAAK+pB,GAC1D,OAAI/pB,EAAY5K,EAAS4K,GACrB+pB,EAAYlpB,EACPzL,EAAS,IAAIlB,MAAM,wBAE5BkB,GACF,EACF,CAGA,SAASw0J,EAAsBC,GAC7BhsF,EAAUv8D,KAAKrJ,MACfA,KAAK6xJ,gBAAkB,EACvB7xJ,KAAK8xJ,kBAAoBF,CAC3B,CAkBA,SAASG,IACPpvJ,EAAa0G,KAAKrJ,MAClBA,KAAK2wB,SAAW,CAClB,CAgFA,SAASqhI,EAAezjI,GACtBnD,EAAY/hB,KAAKrJ,MACjBA,KAAKuuB,QAAUA,EACfvuB,KAAKuuB,QAAQuC,MACb9wB,KAAKiyJ,aAAc,CACrB,CAYA,SAAStB,EAAat/H,EAAQN,EAAOvF,EAAK0mI,GACxC,GAAIA,EACF,OAAO7gI,EAAO0M,SAAS,OAAQhN,EAAOvF,GAGtC,IADA,IAAIhsB,EAAS,GACJkQ,EAAIqhB,EAAOrhB,EAAI8b,EAAK9b,IAC3BlQ,GAPM,sQAOU6xB,EAAO3hB,IAEzB,OAAOlQ,CAEX,CAEA,SAASwxJ,EAAa3/H,EAAQM,GAI5B,IAAIwgI,EAAU9gI,EAAO8+H,aAAax+H,GAGlC,OAAiB,WAFHN,EAAO8+H,aAAax+H,EAAS,GAEZwgI,CAGjC,CAcA,SAASzC,EAAgB3nJ,GACvB,GAAIA,EAAK,MAAMA,CACjB,CAjxBAlN,EAAQyV,KAUR,SAAcrT,EAAMwJ,EAAStJ,GACJ,mBAAZsJ,IACTtJ,EAAWsJ,EACXA,EAAU,MAEG,MAAXA,IAAiBA,EAAU,CAAC,GACP,MAArBA,EAAQmqB,YAAmBnqB,EAAQmqB,WAAY,GACxB,MAAvBnqB,EAAQyX,cAAqBzX,EAAQyX,aAAc,GAC1B,MAAzBzX,EAAQ8oJ,gBAAuB9oJ,EAAQ8oJ,eAAgB,GACzB,MAA9B9oJ,EAAQ+oJ,qBAA4B/oJ,EAAQ+oJ,oBAAqB,GACtC,MAA3B/oJ,EAAQgpJ,kBAAyBhpJ,EAAQgpJ,iBAAkB,GAC/C,MAAZtyJ,IAAkBA,EAAWuyJ,GACjCz0J,EAAGqV,KAAKrT,EAAM,IAAK,SAAS8K,EAAK8S,GAC/B,GAAI9S,EAAK,OAAO5K,EAAS4K,GACzBunJ,EAAOz0I,EAAIpU,EAAS,SAASsB,EAAKkW,GAC5BlW,GAAK9M,EAAGwV,MAAMoK,EAAI60I,GACtBvyJ,EAAS4K,EAAKkW,EAChB,EACF,EACF,EA5BApjB,EAAQy0J,OAASA,EACjBz0J,EAAQu3J,WAgDR,SAAoB/gI,EAAQ5qB,EAAStJ,GACZ,mBAAZsJ,IACTtJ,EAAWsJ,EACXA,EAAU,MAEG,MAAXA,IAAiBA,EAAU,CAAC,GAChCA,EAAQmqB,WAAY,EACO,MAAvBnqB,EAAQyX,cAAqBzX,EAAQyX,aAAc,GAC1B,MAAzBzX,EAAQ8oJ,gBAAuB9oJ,EAAQ8oJ,eAAgB,GACzB,MAA9B9oJ,EAAQ+oJ,qBAA4B/oJ,EAAQ+oJ,oBAAqB,GACtC,MAA3B/oJ,EAAQgpJ,kBAAyBhpJ,EAAQgpJ,iBAAkB,GAG/DG,EADaP,EAAU79H,iBAAiBH,EAAQ,CAACC,aAAc,QAChCD,EAAOzoB,OAAQnC,EAAStJ,EACzD,EA7DAtC,EAAQ+0J,uBAAyBA,EACjC/0J,EAAQ42J,kBAAoBA,EAC5B52J,EAAQ62J,iBAAmBA,EAC3B72J,EAAQ+1J,QAAUA,EAClB/1J,EAAQ22J,MAAQA,EAChB32J,EAAQk3J,mBAAqBA,EA4K7B33I,EAAKsX,SAASk/H,EAASjuJ,GA4BvBiuJ,EAAQznJ,UAAUsH,MAAQ,WACnBzQ,KAAK8K,SACV9K,KAAK8K,QAAS,EACd9K,KAAK6vJ,OAAO59H,QACd,EAYA2+H,EAAQznJ,UAAUiV,UAAY,WAC5B,IAAKpe,KAAKke,YAAa,MAAM,IAAIjiB,MAAM,+CACvC+D,KAAKsxJ,YACP,EACAV,EAAQznJ,UAAUmoJ,WAAa,WAC7B,IAAIv5I,EAAO/X,KACX,GAAI+X,EAAKw4I,aAAex4I,EAAKq5I,aAS7B,IAAIr5I,EAAKs5I,aAAT,CACA,IAAIhgI,EAAS89H,EAAU,IACvBe,EAAmBn4I,EAAK83I,OAAQx+H,EAAQ,EAAGA,EAAOzoB,OAAQmP,EAAKo5I,gBAAiB,SAASppJ,GACvF,GAAIA,EAAK,OAAOwpJ,EAAsBx5I,EAAMhQ,GAC5C,IAAIgQ,EAAKs5I,aAAT,CACA,IAAI1yJ,EAAQ,IAAI6yJ,EAEZhoC,EAAYn4F,EAAO8+H,aAAa,GACpC,GAAkB,WAAd3mC,EAA0B,OAAO+nC,EAAsBx5I,EAAM,IAAI9b,MAAM,sDAAwDutH,EAAUzrF,SAAS,MAiCtJ,GA/BAp/B,EAAM0gB,cAAgBgS,EAAOi/H,aAAa,GAE1C3xJ,EAAM0zJ,uBAAyBhhI,EAAOi/H,aAAa,GAEnD3xJ,EAAM2zJ,sBAAwBjhI,EAAOi/H,aAAa,GAElD3xJ,EAAM4zJ,kBAAoBlhI,EAAOi/H,aAAa,IAE9C3xJ,EAAM6zJ,gBAAkBnhI,EAAOi/H,aAAa,IAE5C3xJ,EAAM8zJ,gBAAkBphI,EAAOi/H,aAAa,IAE5C3xJ,EAAM8T,MAAQ4e,EAAO8+H,aAAa,IAElCxxJ,EAAM+zJ,eAAiBrhI,EAAO8+H,aAAa,IAE3CxxJ,EAAMg0J,iBAAmBthI,EAAO8+H,aAAa,IAE7CxxJ,EAAMi0J,eAAiBvhI,EAAOi/H,aAAa,IAE3C3xJ,EAAMk0J,iBAAmBxhI,EAAOi/H,aAAa,IAE7C3xJ,EAAMm0J,kBAAoBzhI,EAAOi/H,aAAa,IAG9C3xJ,EAAMo0J,uBAAyB1hI,EAAOi/H,aAAa,IAEnD3xJ,EAAMsgB,uBAAyBoS,EAAO8+H,aAAa,IAEnDxxJ,EAAMq0J,4BAA8B3hI,EAAO8+H,aAAa,IAEtB,GAA9BxxJ,EAAM2zJ,sBAA8B,OAAOf,EAAsBx5I,EAAM,IAAI9b,MAAM,uCAErF8b,EAAKo5I,iBAAmB,GAExB9/H,EAAS89H,EAAUxwJ,EAAMi0J,eAAiBj0J,EAAMk0J,iBAAmBl0J,EAAMm0J,mBACzE5C,EAAmBn4I,EAAK83I,OAAQx+H,EAAQ,EAAGA,EAAOzoB,OAAQmP,EAAKo5I,gBAAiB,SAASppJ,GACvF,GAAIA,EAAK,OAAOwpJ,EAAsBx5I,EAAMhQ,GAC5C,IAAIgQ,EAAKs5I,aAAT,CAEA,IAAIa,KAAwC,KAA9BvzJ,EAAM2zJ,uBACpB3zJ,EAAM0f,SAAWtG,EAAKw3I,cAAgBoB,EAAat/H,EAAQ,EAAG1yB,EAAMi0J,eAAgBV,GAC9C7gI,EAAO7gB,MAAM,EAAG7R,EAAMi0J,gBAG5D,IAAIK,EAAmBt0J,EAAMi0J,eAAiBj0J,EAAMk0J,iBAChDK,EAAmB7hI,EAAO7gB,MAAM7R,EAAMi0J,eAAgBK,GAC1Dt0J,EAAMw0J,YAAc,GAEpB,IADA,IAAIzjJ,EAAI,EACDA,EAAIwjJ,EAAiBtqJ,OAAS,GAAG,CACtC,IAAIwqJ,EAAWF,EAAiB5C,aAAa5gJ,EAAI,GAC7C2jJ,EAAWH,EAAiB5C,aAAa5gJ,EAAI,GAC7C4jJ,EAAY5jJ,EAAI,EAChB6jJ,EAAUD,EAAYD,EAC1B,GAAIE,EAAUL,EAAiBtqJ,OAAQ,OAAO2oJ,EAAsBx5I,EAAM,IAAI9b,MAAM,uDACpF,IAAIu3J,EAAarE,EAAUkE,GAC3BH,EAAiB1gI,KAAKghI,EAAY,EAAGF,EAAWC,GAChD50J,EAAMw0J,YAAYxxJ,KAAK,CACrB66C,GAAI42G,EACJn/I,KAAMu/I,IAER9jJ,EAAI6jJ,CACN,CAWA,GARA50J,EAAM80J,YAAc17I,EAAKw3I,cAAgBoB,EAAat/H,EAAQ4hI,EAAkBA,EAAmBt0J,EAAMm0J,kBAAmBZ,GACnF7gI,EAAO7gB,MAAMyiJ,EAAkBA,EAAmBt0J,EAAMm0J,mBAEjGn0J,EAAMi1G,QAAUj1G,EAAM80J,YAEtB17I,EAAKo5I,iBAAmB9/H,EAAOzoB,OAC/BmP,EAAKq5I,aAAe,EAEsB,aAAtCzyJ,EAAMg0J,kBACgC,aAAtCh0J,EAAM+zJ,gBACgC,aAAtC/zJ,EAAMq0J,4BAA4C,CAGpD,IAAIU,EAAkB,KACtB,IAAShkJ,EAAI,EAAGA,EAAI/Q,EAAMw0J,YAAYvqJ,OAAQ8G,IAE5C,GAAsB,KADlBikJ,EAAah1J,EAAMw0J,YAAYzjJ,IACpB8sC,GAAe,CAC5Bk3G,EAAkBC,EAAW1/I,KAC7B,KACF,CAEF,GAAuB,MAAnBy/I,EACF,OAAOnC,EAAsBx5I,EAAM,IAAI9b,MAAM,oDAE/C,IAAIiU,EAAQ,EAEZ,GAA+B,aAA3BvR,EAAMg0J,iBAAiC,CACzC,GAAIziJ,EAAQ,EAAIwjJ,EAAgB9qJ,OAC9B,OAAO2oJ,EAAsBx5I,EAAM,IAAI9b,MAAM,8EAE/C0C,EAAMg0J,iBAAmB3B,EAAa0C,EAAiBxjJ,GACvDA,GAAS,CACX,CAEA,GAA6B,aAAzBvR,EAAM+zJ,eAA+B,CACvC,GAAIxiJ,EAAQ,EAAIwjJ,EAAgB9qJ,OAC9B,OAAO2oJ,EAAsBx5I,EAAM,IAAI9b,MAAM,4EAE/C0C,EAAM+zJ,eAAiB1B,EAAa0C,EAAiBxjJ,GACrDA,GAAS,CACX,CAEA,GAA0C,aAAtCvR,EAAMq0J,4BAA4C,CACpD,GAAI9iJ,EAAQ,EAAIwjJ,EAAgB9qJ,OAC9B,OAAO2oJ,EAAsBx5I,EAAM,IAAI9b,MAAM,mFAE/C0C,EAAMq0J,4BAA8BhC,EAAa0C,EAAiBxjJ,GAClEA,GAAS,CACX,CAEF,CAIA,GAAI6H,EAAKw3I,cACP,IAAS7/I,EAAI,EAAGA,EAAI/Q,EAAMw0J,YAAYvqJ,OAAQ8G,IAAK,CACjD,IAAIikJ,EACJ,GAAsB,SADlBA,EAAah1J,EAAMw0J,YAAYzjJ,IACpB8sC,GAAe,CAC5B,GAAIm3G,EAAW1/I,KAAKrL,OAAS,EAE3B,SAGF,GAAqC,IAAjC+qJ,EAAW1/I,KAAK2/I,UAAU,GAG5B,SAGF,IAAIC,EAAeF,EAAW1/I,KAAKk8I,aAAa,GAChD,GAAI19I,EAAMM,SAASse,EAAO7gB,MAAM,EAAG7R,EAAMi0J,mBAAqBiB,EAG5D,SAGFl1J,EAAM0f,SAAWsyI,EAAagD,EAAW1/I,KAAM,EAAG0/I,EAAW1/I,KAAKrL,QAAQ,GAC1E,KACF,CACF,CAIF,GAAImP,EAAKy3I,oBAAkD,IAA5B7wJ,EAAM4zJ,kBAAyB,CAC5D,IAAIuB,EAAyBn1J,EAAMg0J,iBAKnC,GAJIh0J,EAAMo1J,gBAERD,GAA0B,IAExBn1J,EAAM+zJ,iBAAmBoB,EAAwB,CACnD,IAAIzzG,EAAM,0DAA4D1hD,EAAM+zJ,eAAiB,OAAS/zJ,EAAMg0J,iBAC5G,OAAOpB,EAAsBx5I,EAAM,IAAI9b,MAAMokD,GAC/C,CACF,CAEA,GAAItoC,EAAKw3I,cAAe,CACjBx3I,EAAK03I,kBAER9wJ,EAAM0f,SAAW1f,EAAM0f,SAAS9I,QAAQ,MAAO,MAEjD,IAAIopF,EAAe+yD,EAAiB/yJ,EAAM0f,SAAUtG,EAAKi8I,yBACzD,GAAoB,MAAhBr1D,EAAsB,OAAO4yD,EAAsBx5I,EAAM,IAAI9b,MAAM0iG,GACzE,CACA5mF,EAAK7V,KAAK,QAASvD,GAEdoZ,EAAKmG,aAAanG,EAAKu5I,YApIC,CAqI/B,EAjL6B,CAkL/B,EAtL6B,OAP3BpuJ,aAAa,WACP6U,EAAK6Y,WAAW7Y,EAAKtH,QACrBsH,EAAKs5I,cACTt5I,EAAK7V,KAAK,MACZ,EA0LJ,EAEA0uJ,EAAQznJ,UAAUwW,eAAiB,SAAShhB,EAAO8H,EAAStJ,GAC1D,IAAI4a,EAAO/X,KAEPi0J,EAAgB,EAChBC,EAAcv1J,EAAM+zJ,eACxB,GAAgB,MAAZv1J,EACFA,EAAWsJ,EACXA,EAAU,CAAC,MACN,CAEL,GAAuB,MAAnBA,EAAQ0tJ,QAAiB,CAC3B,IAAKx1J,EAAMo1J,cACT,MAAM,IAAI93J,MAAM,+DAElB,IAAwB,IAApBwK,EAAQ0tJ,QAAmB,MAAM,IAAIl4J,MAAM,kCAAoCwK,EAAQ0tJ,SAC3F,GAAIx1J,EAAMy1J,iBACmB,IAAvB3tJ,EAAQ4tJ,WAAsB,MAAM,IAAIp4J,MAAM,sEAEtD,CACA,GAA0B,MAAtBwK,EAAQ4tJ,WAAoB,CAC9B,IAAK11J,EAAMy1J,eACT,MAAM,IAAIn4J,MAAM,mEAElB,IAA6B,IAAvBwK,EAAQ4tJ,aAA+C,IAAvB5tJ,EAAQ4tJ,WAC5C,MAAM,IAAIp4J,MAAM,qCAAuCwK,EAAQ4tJ,WAEnE,CACA,GAAqB,MAAjB5tJ,EAAQsqB,OAAgC,MAAftqB,EAAQ+kB,IAAa,CAChD,GAAI7sB,EAAMy1J,iBAAyC,IAAvB3tJ,EAAQ4tJ,WAClC,MAAM,IAAIp4J,MAAM,yFAElB,GAAI0C,EAAMo1J,gBAAqC,IAApBttJ,EAAQ0tJ,QACjC,MAAM,IAAIl4J,MAAM,oFAEpB,CACA,GAAqB,MAAjBwK,EAAQsqB,MAAe,CAEzB,IADAkjI,EAAgBxtJ,EAAQsqB,OACJ,EAAG,MAAM,IAAI90B,MAAM,qBACvC,GAAIg4J,EAAgBt1J,EAAM+zJ,eAAgB,MAAM,IAAIz2J,MAAM,uCAC5D,CACA,GAAmB,MAAfwK,EAAQ+kB,IAAa,CAEvB,IADA0oI,EAAcztJ,EAAQ+kB,KACJ,EAAG,MAAM,IAAIvvB,MAAM,mBACrC,GAAIi4J,EAAcv1J,EAAM+zJ,eAAgB,MAAM,IAAIz2J,MAAM,sCACxD,GAAIi4J,EAAcD,EAAe,MAAM,IAAIh4J,MAAM,8BACnD,CACF,CAIA,IAAK8b,EAAKjN,OAAQ,OAAO3N,EAAS,IAAIlB,MAAM,WAC5C,GAAI0C,EAAMo1J,gBACgB,IAApBttJ,EAAQ0tJ,QAAmB,OAAOh3J,EAAS,IAAIlB,MAAM,sDAG3D8b,EAAK83I,OAAO/+H,MACZ,IAAIO,EAAS89H,EAAU,IACvBe,EAAmBn4I,EAAK83I,OAAQx+H,EAAQ,EAAGA,EAAOzoB,OAAQjK,EAAMq0J,4BAA6B,SAASjrJ,GACpG,IACE,GAAIA,EAAK,OAAO5K,EAAS4K,GAEzB,IAAIyhH,EAAYn4F,EAAO8+H,aAAa,GACpC,GAAkB,WAAd3mC,EACF,OAAOrsH,EAAS,IAAIlB,MAAM,0CAA4CutH,EAAUzrF,SAAS,MAY3F,IAMIs2H,EANAzB,EAAiBvhI,EAAOi/H,aAAa,IAErCuC,EAAmBxhI,EAAOi/H,aAAa,IAGvCgE,EAAqB31J,EAAMq0J,4BAA8B3hI,EAAOzoB,OAASgqJ,EAAiBC,EAE9F,GAAgC,IAA5Bl0J,EAAM4zJ,kBAER8B,GAAa,MACR,IAAgC,IAA5B11J,EAAM4zJ,kBAIf,OAAOp1J,EAAS,IAAIlB,MAAM,mCAAqC0C,EAAM4zJ,oBAFrE8B,EAAmC,MAAtB5tJ,EAAQ4tJ,YAAqB5tJ,EAAQ4tJ,UAGpD,CACA,IAAIE,EAAgBD,EAChBE,EAAcD,EAAgB51J,EAAM+zJ,eACxC,GAA6B,IAAzB/zJ,EAAM+zJ,gBAIJ8B,EAAcz8I,EAAKsvD,SACrB,OAAOlqE,EAAS,IAAIlB,MAAM,oCACtBs4J,EAAgB,MAAQ51J,EAAM+zJ,eAAiB,MAAQ36I,EAAKsvD,WAGpE,IAAI3nD,EAAa3H,EAAK83I,OAAO79H,iBAAiB,CAC5CjB,MAAOwjI,EAAgBN,EACvBzoI,IAAK+oI,EAAgBL,IAEnBO,EAAiB/0I,EACrB,GAAI20I,EAAY,CACd,IAAIt3I,GAAY,EACZ23I,EAAgBtF,EAAKuF,mBACzBj1I,EAAWpc,GAAG,QAAS,SAASyE,GAE9B7E,aAAa,WACN6Z,GAAW23I,EAAcxyJ,KAAK,QAAS6F,EAC9C,EACF,GACA2X,EAAWulB,KAAKyvH,GAEZ38I,EAAKy3I,oBACPiF,EAAiB,IAAI9C,EAAsBhzJ,EAAMg0J,kBACjD+B,EAAcpxJ,GAAG,QAAS,SAASyE,GAEjC7E,aAAa,WACN6Z,GAAW03I,EAAevyJ,KAAK,QAAS6F,EAC/C,EACF,GACA2sJ,EAAczvH,KAAKwvH,IAGnBA,EAAiBC,EAGnBD,EAAezyJ,QAAU,WACvB+a,GAAY,EACR23I,IAAkBD,GAAgBC,EAAcE,OAAOH,GAC3D/0I,EAAWk1I,OAAOF,GAElBh1I,EAAW1d,SACb,CACF,CACA7E,EAAS,KAAMs3J,EACjB,CAAE,QACA18I,EAAK83I,OAAO59H,OACd,CACF,EACF,EAIAu/H,EAAMroJ,UAAU0rJ,eAAiB,WAC/B,OAAOpD,EAAkBzxJ,KAAKyyJ,gBAAiBzyJ,KAAKwyJ,gBACtD,EACAhB,EAAMroJ,UAAU4qJ,YAAc,WAC5B,SAAqC,EAA7B/zJ,KAAKsyJ,sBACf,EACAd,EAAMroJ,UAAUirJ,aAAe,WAC7B,OAAkC,IAA3Bp0J,KAAKuyJ,iBACd,EA2CAn4I,EAAKsX,SAASigI,EAAuB/rF,GAMrC+rF,EAAsBxoJ,UAAUmhB,WAAa,SAASqR,EAAOtJ,EAAUpC,GAErE,GADAjwB,KAAK6xJ,iBAAmBl2H,EAAM/yB,OAC1B5I,KAAK6xJ,gBAAkB7xJ,KAAK8xJ,kBAAmB,CACjD,IAAIzxG,EAAM,0CAA4CrgD,KAAK8xJ,kBAAoB,kBAAoB9xJ,KAAK6xJ,gBACxG,OAAO5hI,EAAG,IAAIh0B,MAAMokD,GACtB,CACApwB,EAAG,KAAM0L,EACX,EACAg2H,EAAsBxoJ,UAAU2rJ,OAAS,SAAS7kI,GAChD,GAAIjwB,KAAK6xJ,gBAAkB7xJ,KAAK8xJ,kBAAmB,CACjD,IAAIzxG,EAAM,4CAA8CrgD,KAAK8xJ,kBAAoB,cAAgB9xJ,KAAK6xJ,gBACtG,OAAO5hI,EAAG,IAAIh0B,MAAMokD,GACtB,CACApwB,GACF,EAEA7V,EAAKsX,SAASqgI,EAAoBpvJ,GAKlCovJ,EAAmB5oJ,UAAU2nB,IAAM,WACjC9wB,KAAK2wB,UAAY,CACnB,EACAohI,EAAmB5oJ,UAAU8oB,MAAQ,WACnC,IAAIla,EAAO/X,KAGX,GAFA+X,EAAK4Y,UAAY,IAEb5Y,EAAK4Y,SAAW,GAApB,CACA,GAAI5Y,EAAK4Y,SAAW,EAAG,MAAM,IAAI10B,MAAM,iBAEvC8b,EAAKtH,MAEL,SAAqB1I,GACnB,GAAIA,EAAK,OAAOgQ,EAAK7V,KAAK,QAAS6F,GACnCgQ,EAAK7V,KAAK,QACZ,EAR6B,CAS/B,EACA6vJ,EAAmB5oJ,UAAU6oB,iBAAmB,SAASvrB,GACvD,IAAIsqB,EAAQtqB,EAAQsqB,MAChBvF,EAAM/kB,EAAQ+kB,IAClB,GAAIuF,IAAUvF,EAAK,CACjB,IAAIupI,EAAc,IAAI3pI,EAItB,OAHAloB,aAAa,WACX6xJ,EAAYvpI,KACd,GACOupI,CACT,CACA,IAAIj5I,EAAS9b,KAAKg1J,oBAAoBjkI,EAAOvF,GAEzCzO,GAAY,EACZk4I,EAAiB,IAAIjD,EAAehyJ,MACxC8b,EAAOxY,GAAG,QAAS,SAASyE,GAC1B7E,aAAa,WACN6Z,GAAWk4I,EAAe/yJ,KAAK,QAAS6F,EAC/C,EACF,GACAktJ,EAAejzJ,QAAU,WACvB8Z,EAAO84I,OAAOK,GACdA,EAAehjI,QACfnW,EAAO9Z,SACT,EAEA,IAAIkzJ,EAAc,IAAIvD,EAAsBnmI,EAAMuF,GAYlD,OAXAkkI,EAAe3xJ,GAAG,QAAS,SAASyE,GAClC7E,aAAa,WACN6Z,GAAWm4I,EAAYhzJ,KAAK,QAAS6F,EAC5C,EACF,GACAmtJ,EAAYlzJ,QAAU,WACpB+a,GAAY,EACZk4I,EAAeL,OAAOM,GACtBD,EAAejzJ,SACjB,EAEO8Z,EAAOmpB,KAAKgwH,GAAgBhwH,KAAKiwH,EAC1C,EACAnD,EAAmB5oJ,UAAU6rJ,oBAAsB,SAASjkI,EAAOvF,GACjE,MAAM,IAAIvvB,MAAM,kBAClB,EACA81J,EAAmB5oJ,UAAU/L,KAAO,SAASi0B,EAAQM,EAAQ/oB,EAAQgpB,EAAUz0B,GAC7E,IAAIuiB,EAAa1f,KAAKgyB,iBAAiB,CAACjB,MAAOa,EAAUpG,IAAKoG,EAAWhpB,IACrEgqB,EAAc,IAAIrC,EAClBwB,EAAU,EACda,EAAYvH,OAAS,SAASsQ,EAAOtJ,EAAUpC,GAC7C0L,EAAMnJ,KAAKnB,EAAQM,EAASI,EAAS,EAAG4J,EAAM/yB,QAC9CmpB,GAAW4J,EAAM/yB,OACjBqnB,GACF,EACA2C,EAAYtvB,GAAG,SAAUnG,GACzBuiB,EAAWpc,GAAG,QAAS,SAAS/D,GAC9BpC,EAASoC,EACX,GACAmgB,EAAWulB,KAAKrS,EAClB,EACAm/H,EAAmB5oJ,UAAUsH,MAAQ,SAAStT,GAC5C+F,aAAa/F,EACf,EAEAid,EAAKsX,SAASsgI,EAAgB5mI,GAO9B4mI,EAAe7oJ,UAAU2rJ,OAAS,SAAS7kI,GACzCjwB,KAAKiyB,QACLhC,GACF,EACA+hI,EAAe7oJ,UAAU8oB,MAAQ,SAAShC,GACpCjwB,KAAKiyJ,cACTjyJ,KAAKiyJ,aAAc,EACnBjyJ,KAAKuuB,QAAQ0D,QACf,EA8BEk9H,EADgC,mBAAvBt9I,OAAOsjJ,YACJ,SAASnwH,GACnB,OAAOnzB,OAAOsjJ,YAAYnwH,EAC5B,EAEY,SAASA,GACnB,OAAO,IAAInzB,OAAOmzB,EACpB,C,uBCtxBF57B,EAAOvO,QAAUu6J,QAAQ,S,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,S,sBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,S,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,gB,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,S,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,S,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,K,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,O,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,Q,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,M,sBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,K,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,O,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,S,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,M,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,M,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,M,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,O,uBCAzBhsJ,EAAOvO,QAAUu6J,QAAQ,O,gFCAzB,MAAM,EAA+BA,QAAQ,WCAvC,EAA+BA,QAAQ,oBCAvC,EAA+BA,QAAQ,aCAvC,EAA+BA,QAAQ,gBCAvC,EAA+BA,QAAQ,eCAvC,EAA+BA,QAAQ,eCAvC,EAA+BA,QAAQ,wBC4C7C,MAAMC,UAAqB,EAAAjqI,YAC1B,GAAW,IAAIzmB,IAAI,IACnB,GAAS,IAAIA,IAAI,IACjB,GAAW,IAAIA,IAAI,IACnB,GAEA,GAAAE,CAAIiX,GACHw5I,EAAex5I,GAEX9b,MAAK,EAASmnB,IAAIrL,KAItB9b,MAAK,EAAS6E,IAAIiX,GAElB9b,MAAK,IAAgBu1J,EAAuBv1J,KAAMA,MAAK,GACvDw1J,EAAmB,CAClBC,kBAAmBz1J,KACnB8b,SACAqS,QAASnuB,MAAK,EACd8c,MAAO9c,MAAK,EACZ01J,QAAS11J,MAAK,EACd21J,WAAY31J,MAAK,IAGlB8b,EAAOmpB,KAAKjlC,KAAM,CAACwrB,KAAK,IACzB,CAEA,MAAAoqI,CAAO95I,GAGN,OAFAw5I,EAAex5I,KAEV9b,MAAK,EAASmnB,IAAIrL,KAIvBA,EAAO84I,OAAO50J,OACP,EACR,EAGD,MAAMu1J,EAAyB54J,MAAO84J,EAAmBtnI,KACxD0nI,EAAmBJ,EAAmBK,GACtC,MAAMC,EAAa,IAAIC,gBAEvB,UACOltJ,QAAQwiE,KAAK,CAClB2qF,EAAkBR,EAAmBM,GACrCG,EAAqBT,EAAmBtnI,EAAS4nI,IAEnD,CAAE,QACDA,EAAW74I,QACX24I,EAAmBJ,GAAoBK,EACxC,GAGKG,EAAoBt5J,MAAO84J,GAAoBU,mBAC9C,IAAAh8H,UAASs7H,EAAmB,CAACU,SAAQC,SAAS,KAG/CF,EAAuBv5J,MAAO84J,EAAmBtnI,GAAUgoI,aAChE,UAAW,MAAOE,KAAkB,IAAA/yJ,IAAGmyJ,EAAmB,SAAU,CAACU,WAChEhoI,EAAQhH,IAAIkvI,IACfA,EAAcn0J,KAAKo0J,IAKhBhB,EAAiBx5I,IACtB,GAA4B,mBAAjBA,GAAQmpB,KAClB,MAAM,IAAIt1B,UAAU,6CAA6CmM,SAI7D05I,EAAqB74J,OAAQ84J,oBAAmB35I,SAAQqS,UAASrR,QAAO44I,UAASC,iBACtFE,EAAmBJ,EAAmBc,GACtC,MAAMR,EAAa,IAAIC,gBAEvB,UACOltJ,QAAQwiE,KAAK,CAClBkrF,EAA0Bb,EAAY75I,GACtC26I,EAAiB,CAAChB,oBAAmB35I,SAAQqS,UAASrR,QAAO44I,UAASK,eACtEW,EAAoB,CAAC56I,SAAQqS,UAASrR,QAAO44I,UAASK,gBAExD,CAAE,QACDA,EAAW74I,QACX24I,EAAmBJ,GAAoBc,EACxC,CAEIpoI,EAAQkoH,OAASv5H,EAAMu5H,KAAOqf,EAAQrf,OACtB,IAAfv5H,EAAMu5H,MAAcqf,EAAQrf,KAAO,EACtCsgB,EAAYlB,GAEZhwH,EAAUgwH,KAMPmB,EAAer3J,GAAyB,+BAAhBA,GAAO2I,KAE/BsuJ,EAA4B75J,MAAOg5J,EAAY75I,KACpD,UACO65I,EACNgB,EAAY76I,EACb,CAAE,MAAOvc,GACJq3J,EAAar3J,GAChBo3J,EAAY76I,GAEZ+6I,EAAY/6I,EAAQvc,EAEtB,GAGKk3J,EAAmB95J,OAAQ84J,oBAAmB35I,SAAQqS,UAASrR,QAAO44I,UAASK,YAAaI,cACjG,UACO,IAAAh8H,UAASre,EAAQ,CAACq6I,SAAQC,SAAS,EAAMj6I,UAAU,EAAMC,UAAU,IACrE+R,EAAQhH,IAAIrL,IACfgB,EAAMjY,IAAIiX,EAEZ,CAAE,MAAOvc,GACR,GAAI42J,EAAOT,UAAYvnI,EAAQhH,IAAIrL,GAClC,OAGG86I,EAAar3J,GAChBm2J,EAAQ7wJ,IAAIiX,GAEZ+6I,EAAYpB,EAAmBl2J,EAEjC,GAGKm3J,EAAsB/5J,OAAQmf,SAAQqS,UAASrR,QAAO44I,UAASK,YAAaI,oBAC3E,IAAA5yJ,MAAKuY,EAAQw6I,EAAa,CAACH,WACjChoI,EAAQoY,OAAOzqB,GACfgB,EAAMypB,OAAOzqB,GACb45I,EAAQnvH,OAAOzqB,IAGVw6I,EAAc12H,OAAO,UAErB6F,EAAY3pB,IACbA,EAAOM,UACVN,EAAO0P,OAIHmrI,EAAc76I,KACfA,EAAOK,UAAYL,EAAOM,WAC7BN,EAAO9Z,WAMH60J,EAAc,CAAC/6I,EAAQvc,KACvBuc,EAAOiB,YACXjB,EAAOvY,KAAK,QAASqY,GACrBE,EAAO9Z,QAAQzC,KAIXqc,EAAO,OAEPi6I,EAAqB,CAACJ,EAAmBzhF,KAC9C,MAAM8iF,EAAerB,EAAkBsB,kBAClB,IAAjBD,GAAsBA,IAAiB36J,OAAO8I,mBACjDwwJ,EAAkB7vH,gBAAgBkxH,EAAe9iF,IAO7C8hF,EAA8B,EAI9BS,EAAmC,E,cC3NzC55J,eAAeq6J,EAAOC,EAAYC,EAAiBvvF,GAClD,GAAwB,iBAAbA,EACV,MAAM,IAAIh4D,UAAU,iCAAiCg4D,GAGtD,IAEC,aADoB,EAAWsvF,GAAYtvF,IAC9BuvF,IACd,CAAE,MAAO33J,GACR,GAAmB,WAAfA,EAAM2I,KACT,OAAO,EAGR,MAAM3I,CACP,CACD,CAEA,SAAS43J,EAAWF,EAAYC,EAAiBvvF,GAChD,GAAwB,iBAAbA,EACV,MAAM,IAAIh4D,UAAU,iCAAiCg4D,GAGtD,IACC,OAAO,EAAGsvF,GAAYtvF,GAAUuvF,IACjC,CAAE,MAAO33J,GACR,GAAmB,WAAfA,EAAM2I,KACT,OAAO,EAGR,MAAM3I,CACP,CACD,CAEsBy3J,EAAOz2J,UAAK9E,EAAW,OAAQ,UAA9C,MACMgF,EAAcu2J,EAAOz2J,UAAK9E,EAAW,OAAQ,eAG7C27J,GAFYJ,EAAOz2J,UAAK9E,EAAW,QAAS,kBAC/B07J,EAAW52J,UAAK9E,EAAW,WAAY,UAClC07J,EAAW52J,UAAK9E,EAAW,WAAY,gBCxChE,GDyCuB07J,EAAW52J,UAAK9E,EAAW,YAAa,kBCzChC25J,QAAQ,cCAvC,EAA+BA,QAAQ,sBCAvC,EAA+BA,QAAQ,YCOtC,SAASvwD,EAAOwyD,GACtB,OAAOA,aAAqBtiI,KAAM,IAAAuiI,eAAcD,GAAaA,CAC9D,EAJyB,IAAA35I,WAAU,EAAAm9E,U,cCLpB,SAAS08D,EAAMt6J,GAG7B,OAF6BA,EAAKqhB,WAAW,WAGrCrhB,EAGDA,EAAKsY,QAAQ,MAAO,IAC5B,CCRO,MAAM2X,EAAoBljB,GAA0B,MAAfA,EAAQ,GCU9CwtJ,EAA4B,CACjC,kBACA,gBACA,cACA,WAEKC,EAAyB,CAC9B/wI,UAAU,EACVC,KAAK,GA+BA+wI,EAAwB,CAAC7jJ,EAAO4T,KACrC,MAAMxG,EAAWpN,EAAM8jJ,QAAQ3zF,GAvBR,EAACA,EAAMv8C,KAC9B,MAAMjkB,EAAO+zJ,EAAM,WAAc9vI,EAAK,UAAau8C,EAAK2D,YAExD,OAAO3D,EAAKif,QACVjnF,MAAM,SACNsI,OAAOkhE,GAAQA,IAASA,EAAKlnD,WAAW,MACxCngB,IAAI6L,GAVoB,EAACA,EAASxG,IAAS0pB,EAAkBljB,GAC7D,IAAM,QAAWxF,KAAKhB,EAAMwG,EAAQwG,MAAM,IAC1C,QAAWhM,KAAKhB,EAAMwG,GAQP4tJ,CAAmB5tJ,EAASxG,KAiBNq0J,CAAgB7zF,EAAMv8C,IACvDkc,EAAU,IAAY9+B,IAAIoc,GAEhC,OAAO62I,IAENA,EAnBqB,EAACA,EAAiBrwI,KAExC,GADAA,EAAM8vI,EAAM9vI,GACR,aAAgBqwI,GAAkB,CACrC,GAAIP,EAAMO,GAAiBx5I,WAAWmJ,GACrC,OAAO,WAAcA,EAAKqwI,GAG3B,MAAM,IAAI77J,MAAM,QAAQ67J,mBAAiCrwI,IAC1D,CAEA,OAAOqwI,GASYC,CADlBD,EAAkBjzD,EAAOizD,GACyBrwI,KAC3CqwI,GAAkBn0H,EAAQA,QAAQ4zH,EAAMO,MAI3CE,EAAmB,CAACvxJ,EAAU,CAAC,KAAM,CAC1CghB,IAAKo9E,EAAOp+F,EAAQghB,MAAQ,QAC5BI,eAAgBtf,QAAQ9B,EAAQohB,gBAChC5B,KAA8B,iBAAjBxf,EAAQwf,KAAoBxf,EAAQwf,KAAO9pB,OAAO8I,kBAC/D0e,OAAQ,IAAIld,EAAQkd,QAAU,MAAO6zI,KC5ChCS,EAAgC,CAACtwF,EAAUlgD,KAChD,MAAMxqB,EAAOiwB,EAAkBy6C,GAAYA,EAASn3D,MAAM,GAAKm3D,EAC/D,OAAO,aAAoB1qE,GAAQA,EAAO,OAAcwqB,EAAKxqB,IAGxDi7J,EAAmB,EAAEC,gBAAetkJ,QAAOuzB,iBAChD,MAAMgxH,EAAgBhxH,GAAYx+B,OAAS,EAAI,IAAIw+B,EAAWx+B,OAAS,EAAI,IAAIw+B,EAAW5iC,KAAK,QAAU4iC,EAAW,KAAO,GAC3H,OAAOvzB,EACJA,EAAM1V,IAAI6lE,GAAQ,QAAex/D,KAAK2zJ,EAAe,MAAM,UAAiBn0F,GAAQA,EAAO,GAAGA,IAAOo0F,QACrG,CAAC,QAAe5zJ,KAAK2zJ,EAAe,MAAKC,EAAgB,KAAKA,IAAkB,OAG9EC,EAAkB17J,MAAO27J,GAC9B7wI,MAAM,QACN5T,QACAuzB,cACG,CAAC,WACgBt+B,QAAQgY,IAAIw3I,EAAen6J,IAAIxB,eAC3C8D,EAAYw3J,EAA8BE,EAAe1wI,IAASywI,EAAiB,CAACC,gBAAetkJ,QAAOuzB,eAAe+wH,KAGpHxmJ,OAGR4mJ,EAAsB,CAACD,GAC5B7wI,MAAM,QACN5T,QACAuzB,cACG,CAAC,IAAMkxH,EAAeX,QAAQQ,GAAiBf,EAAgBa,EAA8BE,EAAe1wI,IAAQywI,EAAiB,CAACC,gBAAetkJ,QAAOuzB,eAAe+wH,GAEzKK,EAAkBv3I,IApCIA,KAC3B,GAAIA,EAASvb,KAAKsE,GAA8B,iBAAZA,GACnC,MAAM,IAAI2F,UAAU,qDAoCrBgR,CADAM,EAAW,IAAI,IAAItc,IAAI,CAACsc,GAAUtP,UAE3BsP,GAoBF,EAAmB,CAACxa,EAAU,CAAC,KAjBdghB,KACtB,IAAKA,EACJ,OAGD,IAAItsB,EACJ,IACCA,EAAO,WAAYssB,EACpB,CAAE,MACD,MACD,CAEA,IAAKtsB,EAAKsF,cACT,MAAM,IAAIxE,MAAM,mDAYjBw8J,EAPAhyJ,EAAU,IACNA,EACHkd,OAAQld,EAAQkd,QAAU,GAC1B+0I,kBAAmBjyJ,EAAQiyJ,oBAAqB,EAChDjxI,IAAKo9E,EAAOp+F,EAAQghB,OAGEA,KAEhBhhB,GAGFkyJ,EAAqBC,GAAaj8J,MAAOskB,EAAUxa,IAAYmyJ,EAAUJ,EAAgBv3I,GAAW,EAAiBxa,IACrHoyJ,EAAyBD,GAAa,CAAC33I,EAAUxa,IAAYmyJ,EAAUJ,EAAgBv3I,GAAW,EAAiBxa,IAEnHqyJ,EAAyBryJ,IAC9B,MAAM,YAACsyJ,EAAW,UAAEC,GAAavyJ,EAE3Bwa,EAAW83I,EAAcP,EAAgBO,GAAe,GAK9D,OAJIC,GACH/3I,EAAStf,KDzE4B,iBC4E/Bsf,GAGFkE,EAAYxoB,UACjB,MAAMs8J,EAAsBH,EAAuBryJ,GACnD,OAAOyyJ,GACND,EAAoBrwJ,OAAS,QDpCOjM,OAAOskB,EAAUxa,KACtD,MAAM,IAACghB,EAAG,eAAEI,EAAc,KAAE5B,EAAI,OAAEtC,GAAUq0I,EAAiBvxJ,GAEvDo9B,QAAc,EAAS5iB,EAAU,CACtCwG,MACAI,iBACA5B,OACAtC,YACG8zI,IAGE5jJ,QAAc/K,QAAQgY,IAC3B+iB,EAAM1lC,IAAIxB,UAAkB,CAC3BgrE,WACAsb,cAAe,WAAoBtb,EAAU,YAI/C,OAAO+vF,EAAsB7jJ,EAAO4T,ICkBK0xI,CAAuBF,EAAqBxyJ,KAIhF2yJ,GAAgB3yJ,IACrB,MAAMwyJ,EAAsBH,EAAuBryJ,GACnD,OAAOyyJ,GACND,EAAoBrwJ,OAAS,GDtBW,EAACqY,EAAUxa,KACpD,MAAM,IAACghB,EAAG,eAAEI,EAAc,KAAE5B,EAAI,OAAEtC,GAAUq0I,EAAiBvxJ,GAUvDoN,EARQ,OAAcoN,EAAU,CACrCwG,MACAI,iBACA5B,OACAtC,YACG8zI,IAGgBt5J,IAAIwpE,IAAY,CACnCA,WACAsb,QAAS,eAAgBtb,EAAU,WAGpC,OAAO+vF,EAAsB7jJ,EAAO4T,ICMD4xI,CAA2BJ,EAAqBxyJ,KAI9EyyJ,GAAuBhiF,IAC5B,MAAMwkC,EAAO,IAAI/2G,IAEjB,OAAO20J,IACN,MAAMC,EAAU,YAAmBD,EAAer8J,MAAQq8J,GAE1D,QAAI59C,EAAKv0F,IAAIoyI,IAAariF,GAAaA,EAAUqiF,KAIjD79C,EAAK72G,IAAI00J,GAEF,MAIHC,GAAuB,CAACrgF,EAAS70E,IAAW60E,EAAQxnE,OAAOrN,OAAOg1J,GAAkBh1J,EAAOg1J,IAE3FG,GAA0B,CAACx4I,EAAUxa,KAC1C,MAAM/H,EAAQ,GAEd,KAAOuiB,EAASrY,OAAS,GAAG,CAC3B,MAAMsH,EAAQ+Q,EAASwhI,UAAUz4I,GAAWkjB,EAAkBljB,IAE9D,IAAe,IAAXkG,EAAc,CACjBxR,EAAMiD,KAAK,CAACsf,WAAUxa,YACtB,KACD,CAEA,MAAMizJ,EAAgBz4I,EAAS/Q,GAAOM,MAAM,GAE5C,IAAK,MAAMkU,KAAQhmB,EAClBgmB,EAAKje,QAAQkd,OAAOhiB,KAAK+3J,GAGZ,IAAVxpJ,GACHxR,EAAMiD,KAAK,CACVsf,SAAUA,EAASzQ,MAAM,EAAGN,GAC5BzJ,QAAS,IACLA,EACHkd,OAAQ,IACJld,EAAQkd,OACX+1I,MAMJz4I,EAAWA,EAASzQ,MAAMN,EAAQ,EACnC,CAEA,OAAOxR,GAGFi7J,GAAmC,CAAClzJ,EAASghB,KAAQ,IACtDA,EAAM,CAACA,OAAO,CAAC,KACf3d,MAAMC,QAAQtD,GAAW,CAACoN,MAAOpN,GAAWA,IAG3Cqb,GAAgBnlB,MAAOskB,EAAUxa,KACtC,MAAMmzJ,EAAYH,GAAwBx4I,EAAUxa,IAE9C,IAACghB,EAAG,kBAAEixI,GAAqBjyJ,EAEjC,IAAKiyJ,EACJ,OAAOkB,EAGR,MAAMC,EAAyBF,GAAiCjB,EAAmBjxI,GAEnF,OAAO3e,QAAQgY,IACd84I,EAAUz7J,IAAIxB,UACb,IAAI,SAACskB,EAAQ,QAAExa,GAAWie,EAU1B,OAPCzD,EACAxa,EAAQkd,cACC7a,QAAQgY,IAAI,CACrBu3I,EAAgBp3I,EAAU44I,GAC1BxB,EAAgB5xJ,EAAQkd,OAAQ,CAAC8D,UAG3B,CAACxG,WAAUxa,eAKfqzJ,GAAoB,CAAC74I,EAAUxa,KACpC,MAAMmzJ,EAAYH,GAAwBx4I,EAAUxa,IAC9C,IAACghB,EAAG,kBAAEixI,GAAqBjyJ,EAEjC,IAAKiyJ,EACJ,OAAOkB,EAGR,MAAMG,EAA6BJ,GAAiCjB,EAAmBjxI,GAEvF,OAAOmyI,EAAUz7J,IAAIumB,IACpB,IAAI,SAACzD,EAAQ,QAAExa,GAAWie,EAG1B,OAFAzD,EAAWs3I,EAAoBt3I,EAAU84I,GACzCtzJ,EAAQkd,OAAS40I,EAAoB9xJ,EAAQkd,OAAQ,CAAC8D,QAC/C,CAACxG,WAAUxa,cAIP6Z,GAASq4I,EAAmBh8J,MAAOskB,EAAUxa,KACzD,MACC/H,EACA4F,SACSwE,QAAQgY,IAAI,CACrBgB,GAAcb,EAAUxa,GACxB0e,EAAU1e,KAGL0yE,QAAgBrwE,QAAQgY,IAAIpiB,EAAMP,IAAIumB,GAAQ,EAASA,EAAKzD,SAAUyD,EAAKje,WACjF,OAAO+yJ,GAAqBrgF,EAAS70E,KAGzB01J,GAAanB,EAAuB,CAAC53I,EAAUxa,KAC3D,MAAM/H,EAAQo7J,GAAkB74I,EAAUxa,GACpCnC,EAAS80J,GAAc3yJ,GACvB0yE,EAAUz6E,EAAMP,IAAIumB,GAAQ,OAAcA,EAAKzD,SAAUyD,EAAKje,UACpE,OAAO+yJ,GAAqBrgF,EAAS70E,MA6BzB,qBAAC4d,KA1Bc22I,EAAuB,CAAC53I,EAAUxa,KAC7D,MAAM/H,EAAQo7J,GAAkB74I,EAAUxa,GACpCnC,EAAS80J,GAAc3yJ,GAO7B,OTpPc,SAAsB0nB,GACpC,IAAKrkB,MAAMC,QAAQokB,GAClB,MAAM,IAAIxe,UAAU,mCAAmCwe,QAGxD,IAAK,MAAMrS,KAAUqS,EACpBmnI,EAAex5I,GAGhB,MAAM/Z,EAAaosB,EAAQzoB,KAAK,EAAEu0J,wBAAwBA,GACpD7nI,EAkBkB,EAACjE,EAASpsB,KAClC,GAAuB,IAAnBosB,EAAQvlB,OAEX,OAAO,MAGR,MAAMsxJ,EAAiB/rI,EACrB7pB,OAAO,EAAE21J,wBAAwBA,IAAuBl4J,GACxD5D,IAAI,EAAEg8J,2BAA2BA,GACnC,OAAOrqJ,KAAKF,OAAOsqJ,IA3BGE,CAAiBjsI,EAASpsB,GAC1C0zJ,EAAoB,IAAIJ,EAAa,CAC1CtzJ,aACAs4J,sBAAuBjoI,EACvB+nI,sBAAuB/nI,IAGxB,IAAK,MAAMtW,KAAUqS,EACpBsnI,EAAkB5wJ,IAAIiX,GAOvB,OAJuB,IAAnBqS,EAAQvlB,QACX68B,EAAUgwH,GAGJA,CACR,CSqNgB6E,CADC57J,EAAMP,IAAIumB,GAAQ,SAAgBA,EAAKzD,SAAUyD,EAAKje,WACjCnC,OAAOg1J,GAAkBh1J,EAAOg1J,MAQtCT,EAC/B,CAAC53I,EAAUxa,IAAYwa,EAASvb,KAAKsE,GAAW,mBAA0BA,EAASvD,KAGnDkyJ,EAAmB72I,IACf+2I,EAAuBiB,IAStB,G,eCe/B,MAAMS,GAAW36H,OAAO,SCxRxB7B,SAAQ,IAAIpjC,OAAOwO,UAGnB,MAAMqxJ,WAAyBv+J,MACrC,WAAA6D,CAAY0X,GAAS,MAACyf,GAAS,CAAC,GAG/B,GAFAz0B,QAEIgV,aAAmBgjJ,GACtB,OAAOhjJ,EAGR,GAAuB,iBAAZA,EACV,MAAM,IAAI7H,UAAU,qBAGrB3P,KAAK3B,KAAO,mBACZ2B,KAAKwX,QAAUA,EACfxX,KAAKi3B,MAAQA,CACd,CAEA,iBAAIwjI,GACH,OAAO,CACR,ECVD,SAASC,GAAU12F,EAAMv8C,GACxB,GCVc,SAAmBkzI,GACjC,IAAIlzI,EAAM,QASV,OAPAkzI,EAAQ,UAAaA,GAEI,UAArB,aACHlzI,EAAMA,EAAIlR,cACVokJ,EAAQA,EAAMpkJ,eAGRokJ,IAAUlzI,CAClB,CDDKmzI,CAAU52F,GACb,MAAM,IAAIw2F,GAAiB,2FAG5B,IEfc,SAAsBK,EAAWC,GAC/C,MAAMC,EAAW,WAAcD,EAAYD,GAE3C,OAAOtyJ,QACNwyJ,GACa,OAAbA,IACCA,EAASz8I,WAAW,KAAK,UAC1By8I,IAAa,UAAaF,GAE5B,CFMMG,CAAah3F,EAAMv8C,GACvB,MAAM,IAAI+yI,GAAiB,oHAE7B,CAEA,SAASS,GAAkBh6I,GAW1B,OAVAA,EAAWnX,MAAMC,QAAQkX,GAAYA,EAAW,CAACA,IAE7B9iB,IAAI6L,GACE,UAArB,aAAoD,IAApB,GAAOA,GACnCutJ,EAAMvtJ,GAGPA,EAIT,CAEOrN,eAAeu+J,GAAYj6I,GAAU,MAACw2E,EAAK,OAAE0jE,EAAM,IAAE1zI,EAAM,QAAa,WAAEw/C,EAAa,UAAaxgE,GAAW,CAAC,GACtHA,EAAU,CACTiyJ,mBAAmB,EACnBtxI,WAAW,EACX5oB,qBAAqB,EACrBipB,SACGhhB,GAGJwa,EAAWg6I,GAAkBh6I,GAE7B,MACMpN,SADcyM,GAAOW,EAAUxa,IACjBsnB,KAAK,CAACtuB,EAAGC,IAAMA,EAAEylG,cAAc1lG,IAE9B,IAAjBoU,EAAMjL,QACTq+D,EAAW,CACVm0F,WAAY,EACZC,aAAc,EACdC,QAAS,IAIX,IAAID,EAAe,EAEnB,MAuBME,QFnFQ5+J,eACd6+J,EACAC,GACA,YACC34J,EAAc3G,OAAO8I,kBAAiB,YACtCy2J,GAAc,EAAI,OAClBvF,GACG,CAAC,GAEL,OAAO,IAAIrtJ,QAAQ,CAAC6yJ,EAAUC,KAC7B,QAAkCngK,IAA9B+/J,EAAS57H,OAAOi8H,gBAA8DpgK,IAAnC+/J,EAAS57H,OAAO4rC,eAC9D,MAAM,IAAI77D,UAAU,qFAAqF6rJ,MAG1G,GAAsB,mBAAXC,EACV,MAAM,IAAI9rJ,UAAU,+BAGrB,KAAOxT,OAAO2/J,cAAch5J,IAAgBA,GAAe,GAAMA,IAAgB3G,OAAO8I,mBACvF,MAAM,IAAI0K,UAAU,kFAAkF7M,eAAyBA,MAGhI,MAAMtD,EAAS,GACTwkG,EAAS,GACT+3D,EAAoB,IAAIz1I,IAC9B,IAAI01I,GAAa,EACbC,GAAa,EACbC,GAAiB,EACjBC,EAAiB,EACjBC,EAAe,EACnB,MAAMP,OAAyCpgK,IAA9B+/J,EAAS57H,OAAOi8H,UAA0BL,EAAS57H,OAAO4rC,iBAAmBgwF,EAAS57H,OAAOi8H,YAExGQ,EAAiB,KACtBpzJ,EAAOktJ,EAAOplB,SAGTqlB,EAAU,KACfD,GAAQmG,oBAAoB,QAASD,IAGhCtzJ,EAAUjO,IACf6gK,EAAS7gK,GACTs7J,KAGKntJ,EAAS8nI,IACdirB,GAAa,EACbC,GAAa,EACbL,EAAQ7qB,GACRqlB,KAGGD,IACCA,EAAOT,SACVzsJ,EAAOktJ,EAAOplB,QAGfolB,EAAOoG,iBAAiB,QAASF,EAAgB,CAAC94J,MAAM,KAGzD,MAAM8M,EAAO1T,UACZ,GAAIs/J,EACH,OAGD,MAAMO,QAAiBX,EAASxrJ,OAE1BH,EAAQksJ,EASd,GARAA,IAQII,EAAS59J,MAGZ,GAFAs9J,GAAiB,EAEM,IAAnBC,IAAyBF,EAAY,CACxC,IAAKP,GAAe13D,EAAOp7F,OAAS,EAEnC,YADAK,EAAO,IAAIwzJ,eAAez4D,IAM3B,GAFAi4D,GAAa,EAEkB,IAA3BF,EAAkB1lB,KAErB,YADAttI,EAAQvJ,GAIT,MAAMk9J,EAAa,GAGnB,IAAK,MAAOxsJ,EAAOpV,KAAU0E,EAAOtB,UAC/B69J,EAAkBnjJ,IAAI1I,KAAWqqJ,IAIrCmC,EAAW/6J,KAAK7G,GAGjBiO,EAAQ2zJ,EACT,OAKDP,IAGA,WACC,IACC,MAAMpvD,QAAgByvD,EAAS1hK,MAE/B,GAAImhK,EACH,OAGD,MAAMnhK,QAAc2gK,EAAO1uD,EAAS78F,GAGhCpV,IAAUy/J,IACbwB,EAAkBljJ,IAAI3I,EAAOpV,GAG9B0E,EAAO0Q,GAASpV,EAEhBqhK,UACM9rJ,GACP,CAAE,MAAO9Q,GACR,GAAIm8J,EACHzyJ,EAAO1J,OACD,CACNykG,EAAOriG,KAAKpC,GACZ48J,IAMA,UACO9rJ,GACP,CAAE,MAAO9Q,GACR0J,EAAO1J,EACR,CACD,CACD,CACA,EArCD,IA8CD,WACC,IAAK,IAAI2Q,EAAQ,EAAGA,EAAQpN,EAAaoN,IAAS,CACjD,UAEOG,GACP,CAAE,MAAO9Q,GACR0J,EAAO1J,GACP,KACD,CAEA,GAAI28J,GAAkBF,EACrB,KAEF,CACA,EAdD,IAgBF,CE3F4BW,CAAK9oJ,EAvBjBlX,UACdqnE,EAAO,UAAav8C,EAAKu8C,GAEpByzB,GACJijE,GAAU12F,EAAMv8C,GAGZ0zI,SACE,KAAcn3F,EAAM,CAACtlD,WAAW,EAAM+4E,OAAO,IAGpD4jE,GAAgB,EAEhBp0F,EAAW,CACVm0F,WAAYvnJ,EAAMjL,OAClByyJ,eACAC,QAASD,EAAexnJ,EAAMjL,OAC9B3L,KAAM+mE,IAGAA,GAGuCv9D,GAI/C,OAFA80J,EAAaxtI,KAAK,CAACtuB,EAAGC,IAAMD,EAAE0lG,cAAczlG,IAErC67J,CACR,CAEO,SAAS70D,GAAWzlF,GAAU,MAACw2E,EAAK,OAAE0jE,EAAM,IAAE1zI,EAAM,WAAkBhhB,GAAW,CAAC,GACxFA,EAAU,CACTiyJ,mBAAmB,EACnBtxI,WAAW,EACX5oB,qBAAqB,EACrBipB,SACGhhB,GAGJwa,EAAWg6I,GAAkBh6I,GAE7B,MAGMs6I,EAHQvB,GAAW/4I,EAAUxa,GACjCsnB,KAAK,CAACtuB,EAAGC,IAAMA,EAAEylG,cAAc1lG,IAENtB,IAAI6lE,IAC9BA,EAAO,UAAav8C,EAAKu8C,GAEpByzB,GACJijE,GAAU12F,EAAMv8C,GAGZ0zI,GACJ,SAAUn3F,EAAM,CAACtlD,WAAW,EAAM+4E,OAAO,IAGnCzzB,IAKR,OAFAu3F,EAAaxtI,KAAK,CAACtuB,EAAGC,IAAMD,EAAE0lG,cAAczlG,IAErC67J,CACR,C,+sBGzGA,IAAIqB,EAAgB,SAAS/wH,EAAGnsC,GAI9B,OAHAk9J,EAAgBjiK,OAAOkiK,gBAClB,CAAE7sF,UAAW,cAAgBlmE,OAAS,SAAU+hC,EAAGnsC,GAAKmsC,EAAEmkC,UAAYtwE,CAAG,GAC1E,SAAUmsC,EAAGnsC,GAAK,IAAK,IAAIuP,KAAKvP,EAAO/E,OAAOwO,UAAUmkC,eAAejkC,KAAK3J,EAAGuP,KAAI48B,EAAE58B,GAAKvP,EAAEuP,GAAI,EAC7F2tJ,EAAc/wH,EAAGnsC,EAC1B,EAEO,SAASo9J,EAAUjxH,EAAGnsC,GAC3B,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIiQ,UAAU,uBAAyB2jB,OAAO5zB,GAAK,iCAE7D,SAASq9J,IAAO/8J,KAAKF,YAAc+rC,CAAG,CADtC+wH,EAAc/wH,EAAGnsC,GAEjBmsC,EAAE1iC,UAAkB,OAANzJ,EAAa/E,OAAOsP,OAAOvK,IAAMq9J,EAAG5zJ,UAAYzJ,EAAEyJ,UAAW,IAAI4zJ,EACjF,CAEO,IAAIC,EAAW,WAQpB,OAPAA,EAAWriK,OAAOe,QAAU,SAAkB0jD,GAC1C,IAAK,IAAI1gB,EAAGhvB,EAAI,EAAG8B,EAAI9M,UAAUkE,OAAQ8G,EAAI8B,EAAG9B,IAE5C,IAAK,IAAIT,KADTyvB,EAAIh6B,UAAUgL,GACO/U,OAAOwO,UAAUmkC,eAAejkC,KAAKq1B,EAAGzvB,KAAImwC,EAAEnwC,GAAKyvB,EAAEzvB,IAE9E,OAAOmwC,CACX,EACO49G,EAAStqJ,MAAM1S,KAAM0E,UAC9B,EAEO,SAASu4J,EAAOv+H,EAAG1B,GACxB,IAAIoiB,EAAI,CAAC,EACT,IAAK,IAAInwC,KAAKyvB,EAAO/jC,OAAOwO,UAAUmkC,eAAejkC,KAAKq1B,EAAGzvB,IAAM+tB,EAAEp3B,QAAQqJ,GAAK,IAC9EmwC,EAAEnwC,GAAKyvB,EAAEzvB,IACb,GAAS,MAALyvB,GAAqD,mBAAjC/jC,OAAOuiK,sBACtB,KAAIxtJ,EAAI,EAAb,IAAgBT,EAAItU,OAAOuiK,sBAAsBx+H,GAAIhvB,EAAIT,EAAErG,OAAQ8G,IAC3DstB,EAAEp3B,QAAQqJ,EAAES,IAAM,GAAK/U,OAAOwO,UAAUg0J,qBAAqB9zJ,KAAKq1B,EAAGzvB,EAAES,MACvE0vC,EAAEnwC,EAAES,IAAMgvB,EAAEzvB,EAAES,IAF4B,CAItD,OAAO0vC,CACT,CAEO,SAASg+G,EAAWC,EAAY9kI,EAAQze,EAAK2vH,GAClD,IAA2H59F,EAAvHz2B,EAAI1Q,UAAUkE,OAAQmN,EAAIX,EAAI,EAAImjB,EAAkB,OAATkxG,EAAgBA,EAAO9uI,OAAO2iK,yBAAyB/kI,EAAQze,GAAO2vH,EACrH,GAAuB,iBAAZ8zB,SAAoD,mBAArBA,QAAQC,SAAyBznJ,EAAIwnJ,QAAQC,SAASH,EAAY9kI,EAAQze,EAAK2vH,QACpH,IAAK,IAAI/5H,EAAI2tJ,EAAWz0J,OAAS,EAAG8G,GAAK,EAAGA,KAASm8B,EAAIwxH,EAAW3tJ,MAAIqG,GAAKX,EAAI,EAAIy2B,EAAE91B,GAAKX,EAAI,EAAIy2B,EAAEtT,EAAQze,EAAK/D,GAAK81B,EAAEtT,EAAQze,KAAS/D,GAChJ,OAAOX,EAAI,GAAKW,GAAKpb,OAAOC,eAAe29B,EAAQze,EAAK/D,GAAIA,CAC9D,CAEO,SAAS0nJ,EAAQC,EAAYC,GAClC,OAAO,SAAUplI,EAAQze,GAAO6jJ,EAAUplI,EAAQze,EAAK4jJ,EAAa,CACtE,CAEO,SAASE,EAAaC,EAAMC,EAAcT,EAAYU,EAAWC,EAAcC,GACpF,SAASC,EAAOnqJ,GAAK,QAAe,IAAXA,GAA6B,mBAANA,EAAkB,MAAM,IAAIpE,UAAU,qBAAsB,OAAOoE,CAAG,CAKtH,IAJA,IAGIsH,EAHA0yF,EAAOgwD,EAAUhwD,KAAMj0F,EAAe,WAATi0F,EAAoB,MAAiB,WAATA,EAAoB,MAAQ,QACrFx1E,GAAUulI,GAAgBD,EAAOE,EAAkB,OAAIF,EAAOA,EAAK10J,UAAY,KAC/Eg1J,EAAaL,IAAiBvlI,EAAS59B,OAAO2iK,yBAAyB/kI,EAAQwlI,EAAU1/J,MAAQ,CAAC,GAC/FO,GAAO,EACL8Q,EAAI2tJ,EAAWz0J,OAAS,EAAG8G,GAAK,EAAGA,IAAK,CAC7C,IAAI6e,EAAU,CAAC,EACf,IAAK,IAAItf,KAAK8uJ,EAAWxvI,EAAQtf,GAAW,WAANA,EAAiB,CAAC,EAAI8uJ,EAAU9uJ,GACtE,IAAK,IAAIA,KAAK8uJ,EAAU9xF,OAAQ19C,EAAQ09C,OAAOh9D,GAAK8uJ,EAAU9xF,OAAOh9D,GACrEsf,EAAQ6vI,eAAiB,SAAUrqJ,GAAK,GAAInV,EAAM,MAAM,IAAI+Q,UAAU,0DAA2DsuJ,EAAkBt8J,KAAKu8J,EAAOnqJ,GAAK,MAAQ,EAC5K,IAAIvU,GAAS,EAAI69J,EAAW3tJ,IAAa,aAATq+F,EAAsB,CAAEn1F,IAAKulJ,EAAWvlJ,IAAKC,IAAKslJ,EAAWtlJ,KAAQslJ,EAAWrkJ,GAAMyU,GACtH,GAAa,aAATw/E,EAAqB,CACrB,QAAoB,IAAhBvuG,EAAmB,SACvB,GAAe,OAAXA,GAAqC,iBAAXA,EAAqB,MAAM,IAAImQ,UAAU,oBACnE0L,EAAI6iJ,EAAO1+J,EAAOoZ,QAAMulJ,EAAWvlJ,IAAMyC,IACzCA,EAAI6iJ,EAAO1+J,EAAOqZ,QAAMslJ,EAAWtlJ,IAAMwC,IACzCA,EAAI6iJ,EAAO1+J,EAAOsZ,QAAOklJ,EAAa5lJ,QAAQiD,EACtD,MACSA,EAAI6iJ,EAAO1+J,MACH,UAATuuG,EAAkBiwD,EAAa5lJ,QAAQiD,GACtC8iJ,EAAWrkJ,GAAOuB,EAE/B,CACIkd,GAAQ59B,OAAOC,eAAe29B,EAAQwlI,EAAU1/J,KAAM8/J,GAC1Dv/J,GAAO,CACT,CAEO,SAASy/J,EAAkB1hI,EAASqhI,EAAcljK,GAEvD,IADA,IAAIwjK,EAAW55J,UAAUkE,OAAS,EACzB8G,EAAI,EAAGA,EAAIsuJ,EAAap1J,OAAQ8G,IACrC5U,EAAQwjK,EAAWN,EAAatuJ,GAAGrG,KAAKszB,EAAS7hC,GAASkjK,EAAatuJ,GAAGrG,KAAKszB,GAEnF,OAAO2hI,EAAWxjK,OAAa,CACjC,CAEO,SAASyjK,EAAU90G,GACxB,MAAoB,iBAANA,EAAiBA,EAAI,GAAGv/C,OAAOu/C,EAC/C,CAEO,SAAS+0G,EAAkBzqJ,EAAG1V,EAAMwM,GAEzC,MADoB,iBAATxM,IAAmBA,EAAOA,EAAKijF,YAAc,IAAIp3E,OAAO7L,EAAKijF,YAAa,KAAO,IACrF3mF,OAAOC,eAAemZ,EAAG,OAAQ,CAAE4E,cAAc,EAAM7d,MAAO+P,EAAS,GAAGX,OAAOW,EAAQ,IAAKxM,GAAQA,GAC/G,CAEO,SAASogK,EAAWC,EAAaC,GACtC,GAAuB,iBAAZpB,SAAoD,mBAArBA,QAAQqB,SAAyB,OAAOrB,QAAQqB,SAASF,EAAaC,EAClH,CAEO,SAASjiI,EAAUC,EAASC,EAAYC,EAAGC,GAEhD,OAAO,IAAKD,IAAMA,EAAI/zB,UAAU,SAAUC,EAASE,GAC/C,SAAS8zB,EAAUjiC,GAAS,IAAMwU,EAAKwtB,EAAUzsB,KAAKvV,GAAS,CAAE,MAAOkiC,GAAK/zB,EAAO+zB,EAAI,CAAE,CAC1F,SAASC,EAASniC,GAAS,IAAMwU,EAAKwtB,EAAiB,MAAEhiC,GAAS,CAAE,MAAOkiC,GAAK/zB,EAAO+zB,EAAI,CAAE,CAC7F,SAAS1tB,EAAK9P,GAJlB,IAAe1E,EAIa0E,EAAOZ,KAAOmK,EAAQvJ,EAAO1E,QAJ1CA,EAIyD0E,EAAO1E,MAJhDA,aAAiB+hC,EAAI/hC,EAAQ,IAAI+hC,EAAE,SAAU9zB,GAAWA,EAAQjO,EAAQ,IAIjBkO,KAAK+zB,EAAWE,EAAW,CAC7G3tB,GAAMwtB,EAAYA,EAAUpqB,MAAMiqB,EAASC,GAAc,KAAKvsB,OAClE,EACF,CAEO,SAASwuJ,EAAYliI,EAASwE,GACnC,IAAsGptB,EAAGo4B,EAAGiT,EAAxG/jC,EAAI,CAAE+vB,MAAO,EAAG0zH,KAAM,WAAa,GAAW,EAAP1/G,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAG2/G,KAAM,GAAIC,IAAK,IAAet/B,EAAI/kI,OAAOsP,QAA4B,mBAAbg1J,SAA0BA,SAAWtkK,QAAQwO,WACtL,OAAOu2H,EAAErvH,KAAO6uJ,EAAK,GAAIx/B,EAAS,MAAIw/B,EAAK,GAAIx/B,EAAU,OAAIw/B,EAAK,GAAsB,mBAAXt/H,SAA0B8/F,EAAE9/F,OAAOi8H,UAAY,WAAa,OAAO77J,IAAM,GAAI0/H,EAC1J,SAASw/B,EAAK1tJ,GAAK,OAAO,SAAU5K,GAAK,OACzC,SAAcujG,GACV,GAAIp2F,EAAG,MAAM,IAAIpE,UAAU,mCAC3B,KAAO+vH,IAAMA,EAAI,EAAGv1B,EAAG,KAAO9uF,EAAI,IAAKA,OACnC,GAAItH,EAAI,EAAGo4B,IAAMiT,EAAY,EAAR+qD,EAAG,GAASh+D,EAAU,OAAIg+D,EAAG,GAAKh+D,EAAS,SAAOiT,EAAIjT,EAAU,SAAMiT,EAAE/1C,KAAK8iC,GAAI,GAAKA,EAAE97B,SAAW+uC,EAAIA,EAAE/1C,KAAK8iC,EAAGg+D,EAAG,KAAKvrG,KAAM,OAAOwgD,EAE3J,OADIjT,EAAI,EAAGiT,IAAG+qD,EAAK,CAAS,EAARA,EAAG,GAAQ/qD,EAAEtkD,QACzBqvG,EAAG,IACP,KAAK,EAAG,KAAK,EAAG/qD,EAAI+qD,EAAI,MACxB,KAAK,EAAc,OAAX9uF,EAAE+vB,QAAgB,CAAEtwC,MAAOqvG,EAAG,GAAIvrG,MAAM,GAChD,KAAK,EAAGyc,EAAE+vB,QAASe,EAAIg+D,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAK9uF,EAAE2jJ,IAAI5vJ,MAAOiM,EAAE0jJ,KAAK3vJ,MAAO,SACxC,QACI,MAAkBgwC,GAAZA,EAAI/jC,EAAE0jJ,MAAYn2J,OAAS,GAAKw2C,EAAEA,EAAEx2C,OAAS,KAAkB,IAAVuhG,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAE9uF,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAV8uF,EAAG,MAAc/qD,GAAM+qD,EAAG,GAAK/qD,EAAE,IAAM+qD,EAAG,GAAK/qD,EAAE,IAAM,CAAE/jC,EAAE+vB,MAAQ++D,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAY9uF,EAAE+vB,MAAQgU,EAAE,GAAI,CAAE/jC,EAAE+vB,MAAQgU,EAAE,GAAIA,EAAI+qD,EAAI,KAAO,CACpE,GAAI/qD,GAAK/jC,EAAE+vB,MAAQgU,EAAE,GAAI,CAAE/jC,EAAE+vB,MAAQgU,EAAE,GAAI/jC,EAAE2jJ,IAAIr9J,KAAKwoG,GAAK,KAAO,CAC9D/qD,EAAE,IAAI/jC,EAAE2jJ,IAAI5vJ,MAChBiM,EAAE0jJ,KAAK3vJ,MAAO,SAEtB+6F,EAAKhpE,EAAK93B,KAAKszB,EAASthB,EAC5B,CAAE,MAAO2hB,GAAKmtE,EAAK,CAAC,EAAGntE,GAAImP,EAAI,CAAG,CAAE,QAAUp4B,EAAIqrC,EAAI,CAAG,CACzD,GAAY,EAAR+qD,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAErvG,MAAOqvG,EAAG,GAAKA,EAAG,QAAU,EAAGvrG,MAAM,EAC9E,CAtBgD0Q,CAAK,CAACkC,EAAG5K,GAAK,CAAG,CAuBnE,CAEO,IAAIu4J,EAAkBxkK,OAAOsP,OAAS,SAAUuR,EAAGhF,EAAG8E,EAAG8jJ,QACnD3jK,IAAP2jK,IAAkBA,EAAK9jJ,GAC3B,IAAImuH,EAAO9uI,OAAO2iK,yBAAyB9mJ,EAAG8E,GACzCmuH,KAAS,QAASA,GAAQjzH,EAAEpR,WAAaqkI,EAAKrtH,UAAYqtH,EAAK9wH,gBAChE8wH,EAAO,CAAE/wH,YAAY,EAAME,IAAK,WAAa,OAAOpC,EAAE8E,EAAI,IAE9D3gB,OAAOC,eAAe4gB,EAAG4jJ,EAAI31B,EAC9B,EAAI,SAAUjuH,EAAGhF,EAAG8E,EAAG8jJ,QACX3jK,IAAP2jK,IAAkBA,EAAK9jJ,GAC3BE,EAAE4jJ,GAAM5oJ,EAAE8E,EACX,EAEM,SAAS+jJ,EAAa7oJ,EAAGgF,GAC9B,IAAK,IAAIvM,KAAKuH,EAAa,YAANvH,GAAoBtU,OAAOwO,UAAUmkC,eAAejkC,KAAKmS,EAAGvM,IAAIkwJ,EAAgB3jJ,EAAGhF,EAAGvH,EAC7G,CAEO,SAASqwJ,EAAS9jJ,GACvB,IAAIkjB,EAAsB,mBAAXkB,QAAyBA,OAAOi8H,SAAUrlJ,EAAIkoB,GAAKljB,EAAEkjB,GAAIhvB,EAAI,EAC5E,GAAI8G,EAAG,OAAOA,EAAEnN,KAAKmS,GACrB,GAAIA,GAAyB,iBAAbA,EAAE5S,OAAqB,MAAO,CAC1CyH,KAAM,WAEF,OADImL,GAAK9L,GAAK8L,EAAE5S,SAAQ4S,OAAS,GAC1B,CAAE1gB,MAAO0gB,GAAKA,EAAE9L,KAAM9Q,MAAO4c,EACxC,GAEJ,MAAM,IAAI7L,UAAU+uB,EAAI,0BAA4B,kCACtD,CAEO,SAAS6gI,EAAO/jJ,EAAGhK,GACxB,IAAIgF,EAAsB,mBAAXopB,QAAyBpkB,EAAEokB,OAAOi8H,UACjD,IAAKrlJ,EAAG,OAAOgF,EACf,IAAmBzF,EAAYinB,EAA3BttB,EAAI8G,EAAEnN,KAAKmS,GAAOgkJ,EAAK,GAC3B,IACI,WAAmB,IAAXhuJ,GAAgBA,KAAM,MAAQuE,EAAIrG,EAAEW,QAAQzR,MAAM4gK,EAAG79J,KAAKoU,EAAEjb,MACxE,CACA,MAAOyE,GAASy9B,EAAI,CAAEz9B,MAAOA,EAAS,CACtC,QACI,IACQwW,IAAMA,EAAEnX,OAAS4X,EAAI9G,EAAU,SAAI8G,EAAEnN,KAAKqG,EAClD,CACA,QAAU,GAAIstB,EAAG,MAAMA,EAAEz9B,KAAO,CACpC,CACA,OAAOigK,CACT,CAGO,SAASC,IACd,IAAK,IAAID,EAAK,GAAI9vJ,EAAI,EAAGA,EAAIhL,UAAUkE,OAAQ8G,IAC3C8vJ,EAAKA,EAAGt1J,OAAOq1J,EAAO76J,UAAUgL,KACpC,OAAO8vJ,CACT,CAGO,SAASE,IACd,IAAK,IAAIhhI,EAAI,EAAGhvB,EAAI,EAAGiwJ,EAAKj7J,UAAUkE,OAAQ8G,EAAIiwJ,EAAIjwJ,IAAKgvB,GAAKh6B,UAAUgL,GAAG9G,OACxE,IAAImN,EAAIjM,MAAM40B,GAAIpjB,EAAI,EAA3B,IAA8B5L,EAAI,EAAGA,EAAIiwJ,EAAIjwJ,IACzC,IAAK,IAAIjQ,EAAIiF,UAAUgL,GAAI4H,EAAI,EAAGsoJ,EAAKngK,EAAEmJ,OAAQ0O,EAAIsoJ,EAAItoJ,IAAKgE,IAC1DvF,EAAEuF,GAAK7b,EAAE6X,GACjB,OAAOvB,CACT,CAEO,SAAS8pJ,EAAc3sJ,EAAIf,EAAM2tJ,GACtC,GAAIA,GAA6B,IAArBp7J,UAAUkE,OAAc,IAAK,IAA4B42J,EAAxB9vJ,EAAI,EAAG/J,EAAIwM,EAAKvJ,OAAY8G,EAAI/J,EAAG+J,KACxE8vJ,GAAQ9vJ,KAAKyC,IACRqtJ,IAAIA,EAAK11J,MAAMX,UAAUqH,MAAMnH,KAAK8I,EAAM,EAAGzC,IAClD8vJ,EAAG9vJ,GAAKyC,EAAKzC,IAGrB,OAAOwD,EAAGhJ,OAAOs1J,GAAM11J,MAAMX,UAAUqH,MAAMnH,KAAK8I,GACpD,CAEO,SAAS4tJ,EAAQn5J,GACtB,OAAO5G,gBAAgB+/J,GAAW//J,KAAK4G,EAAIA,EAAG5G,MAAQ,IAAI+/J,EAAQn5J,EACpE,CAEO,SAASo5J,EAAiBrjI,EAASC,EAAYE,GACpD,IAAK8C,OAAO4rC,cAAe,MAAM,IAAI77D,UAAU,wCAC/C,IAAoDD,EAAhDgwH,EAAI5iG,EAAUpqB,MAAMiqB,EAASC,GAAc,IAAQ1tB,EAAI,GAC3D,OAAOQ,EAAI/U,OAAOsP,QAAiC,mBAAlBg2J,cAA+BA,cAAgBtlK,QAAQwO,WAAY+1J,EAAK,QAASA,EAAK,SAAUA,EAAK,SACtI,SAAqBnrJ,GAAK,OAAO,SAAUnN,GAAK,OAAOkC,QAAQC,QAAQnC,GAAGoC,KAAK+K,EAAG9K,EAAS,CAAG,GADgEyG,EAAEkwB,OAAO4rC,eAAiB,WAAc,OAAOxrE,IAAM,EAAG0P,EAEtN,SAASwvJ,EAAK1tJ,EAAGuC,GAAS2rH,EAAEluH,KAAM9B,EAAE8B,GAAK,SAAU5K,GAAK,OAAO,IAAIkC,QAAQ,SAAUrJ,EAAGC,GAAKwP,EAAEvN,KAAK,CAAC6P,EAAG5K,EAAGnH,EAAGC,IAAM,GAAK6vB,EAAO/d,EAAG5K,EAAI,EAAI,EAAOmN,IAAGrE,EAAE8B,GAAKuC,EAAErE,EAAE8B,KAAO,CACvK,SAAS+d,EAAO/d,EAAG5K,GAAK,KACVmP,EADqB2pH,EAAEluH,GAAG5K,IACnB9L,iBAAiBilK,EAAUj3J,QAAQC,QAAQgN,EAAEjb,MAAM8L,GAAGoC,KAAKk3J,EAASj3J,GAAUk3J,EAAOjxJ,EAAE,GAAG,GAAI6G,EADtE,CAAE,MAAOinB,GAAKmjI,EAAOjxJ,EAAE,GAAG,GAAI8tB,EAAI,CAC/E,IAAcjnB,CADmE,CAEjF,SAASmqJ,EAAQplK,GAASy0B,EAAO,OAAQz0B,EAAQ,CACjD,SAASmO,EAAOnO,GAASy0B,EAAO,QAASz0B,EAAQ,CACjD,SAASqlK,EAAOpsJ,EAAGnN,GAASmN,EAAEnN,GAAIsI,EAAEyB,QAASzB,EAAEtG,QAAQ2mB,EAAOrgB,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACnF,CAEO,SAASkxJ,EAAiB5kJ,GAC/B,IAAI9L,EAAGT,EACP,OAAOS,EAAI,CAAC,EAAGwvJ,EAAK,QAASA,EAAK,QAAS,SAAUliI,GAAK,MAAMA,CAAG,GAAIkiI,EAAK,UAAWxvJ,EAAEkwB,OAAOi8H,UAAY,WAAc,OAAO77J,IAAM,EAAG0P,EAC1I,SAASwvJ,EAAK1tJ,EAAGuC,GAAKrE,EAAE8B,GAAKgK,EAAEhK,GAAK,SAAU5K,GAAK,OAAQqI,GAAKA,GAAK,CAAEnU,MAAOilK,EAAQvkJ,EAAEhK,GAAG5K,IAAKhI,MAAM,GAAUmV,EAAIA,EAAEnN,GAAKA,CAAG,EAAImN,CAAG,CACvI,CAEO,SAASssJ,EAAc7kJ,GAC5B,IAAKokB,OAAO4rC,cAAe,MAAM,IAAI77D,UAAU,wCAC/C,IAAiCD,EAA7B8G,EAAIgF,EAAEokB,OAAO4rC,eACjB,OAAOh1D,EAAIA,EAAEnN,KAAKmS,IAAMA,EAAqC8jJ,EAAS9jJ,GAA2B9L,EAAI,CAAC,EAAGwvJ,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWxvJ,EAAEkwB,OAAO4rC,eAAiB,WAAc,OAAOxrE,IAAM,EAAG0P,GAC9M,SAASwvJ,EAAK1tJ,GAAK9B,EAAE8B,GAAKgK,EAAEhK,IAAM,SAAU5K,GAAK,OAAO,IAAIkC,QAAQ,SAAUC,EAASE,IACvF,SAAgBF,EAASE,EAAQ4iC,EAAGjlC,GAAKkC,QAAQC,QAAQnC,GAAGoC,KAAK,SAASpC,GAAKmC,EAAQ,CAAEjO,MAAO8L,EAAGhI,KAAMitC,GAAM,EAAG5iC,EAAS,CADbk3J,CAAOp3J,EAASE,GAA7BrC,EAAI4U,EAAEhK,GAAG5K,IAA8BhI,KAAMgI,EAAE9L,MAAQ,EAAI,CAAG,CAEjK,CAEO,SAASwlK,EAAqBC,EAAQzgE,GAE3C,OADInlG,OAAOC,eAAkBD,OAAOC,eAAe2lK,EAAQ,MAAO,CAAEzlK,MAAOglG,IAAiBygE,EAAOzgE,IAAMA,EAClGygE,CACT,CAEA,IAAIC,EAAqB7lK,OAAOsP,OAAS,SAAUuR,EAAG5U,GACpDjM,OAAOC,eAAe4gB,EAAG,UAAW,CAAE9C,YAAY,EAAM5d,MAAO8L,GAChE,EAAI,SAAS4U,EAAG5U,GACf4U,EAAW,QAAI5U,CACjB,EAEI65J,EAAU,SAASjlJ,GAMrB,OALAilJ,EAAU9lK,OAAOoiD,qBAAuB,SAAUvhC,GAChD,IAAIgkJ,EAAK,GACT,IAAK,IAAIlkJ,KAAKE,EAAO7gB,OAAOwO,UAAUmkC,eAAejkC,KAAKmS,EAAGF,KAAIkkJ,EAAGA,EAAG52J,QAAU0S,GACjF,OAAOkkJ,CACT,EACOiB,EAAQjlJ,EACjB,EAEO,SAASklJ,EAAav7J,GAC3B,GAAIA,GAAOA,EAAIC,WAAY,OAAOD,EAClC,IAAI3F,EAAS,CAAC,EACd,GAAW,MAAP2F,EAAa,IAAK,IAAImW,EAAImlJ,EAAQt7J,GAAMuK,EAAI,EAAGA,EAAI4L,EAAE1S,OAAQ8G,IAAkB,YAAT4L,EAAE5L,IAAkByvJ,EAAgB3/J,EAAQ2F,EAAKmW,EAAE5L,IAE7H,OADA8wJ,EAAmBhhK,EAAQ2F,GACpB3F,CACT,CAEO,SAAS0F,EAAgBC,GAC9B,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAEnI,QAASmI,EACpD,CAEO,SAASw7J,EAAuBC,EAAUxtJ,EAAO26F,EAAMh6F,GAC5D,GAAa,MAATg6F,IAAiBh6F,EAAG,MAAM,IAAIpE,UAAU,iDAC5C,GAAqB,mBAAVyD,EAAuBwtJ,IAAaxtJ,IAAUW,GAAKX,EAAM+T,IAAIy5I,GAAW,MAAM,IAAIjxJ,UAAU,4EACvG,MAAgB,MAATo+F,EAAeh6F,EAAa,MAATg6F,EAAeh6F,EAAE1K,KAAKu3J,GAAY7sJ,EAAIA,EAAEjZ,MAAQsY,EAAMwF,IAAIgoJ,EACtF,CAEO,SAASC,EAAuBD,EAAUxtJ,EAAOtY,EAAOizG,EAAMh6F,GACnE,GAAa,MAATg6F,EAAc,MAAM,IAAIp+F,UAAU,kCACtC,GAAa,MAATo+F,IAAiBh6F,EAAG,MAAM,IAAIpE,UAAU,iDAC5C,GAAqB,mBAAVyD,EAAuBwtJ,IAAaxtJ,IAAUW,GAAKX,EAAM+T,IAAIy5I,GAAW,MAAM,IAAIjxJ,UAAU,2EACvG,MAAiB,MAATo+F,EAAeh6F,EAAE1K,KAAKu3J,EAAU9lK,GAASiZ,EAAIA,EAAEjZ,MAAQA,EAAQsY,EAAMyF,IAAI+nJ,EAAU9lK,GAASA,CACtG,CAEO,SAASgmK,EAAsB1tJ,EAAOwtJ,GAC3C,GAAiB,OAAbA,GAA0C,iBAAbA,GAA6C,mBAAbA,EAA0B,MAAM,IAAIjxJ,UAAU,0CAC/G,MAAwB,mBAAVyD,EAAuBwtJ,IAAaxtJ,EAAQA,EAAM+T,IAAIy5I,EACtE,CAEO,SAASG,EAAwB9qJ,EAAKnb,EAAO6B,GAClD,GAAI7B,QAAoC,CACtC,GAAqB,iBAAVA,GAAuC,mBAAVA,EAAsB,MAAM,IAAI6U,UAAU,oBAClF,IAAIqxJ,EAAS7sF,EACb,GAAIx3E,EAAO,CACT,IAAKijC,OAAOqhI,aAAc,MAAM,IAAItxJ,UAAU,uCAC9CqxJ,EAAUlmK,EAAM8kC,OAAOqhI,aACzB,CACA,QAAqB,IAAjBD,EAAoB,CACtB,IAAKphI,OAAOohI,QAAS,MAAM,IAAIrxJ,UAAU,kCACzCqxJ,EAAUlmK,EAAM8kC,OAAOohI,SACnBrkK,IAAOw3E,EAAQ6sF,EACrB,CACA,GAAuB,mBAAZA,EAAwB,MAAM,IAAIrxJ,UAAU,0BACnDwkE,IAAO6sF,EAAU,WAAa,IAAM7sF,EAAM9qE,KAAKrJ,KAAO,CAAE,MAAOg9B,GAAK,OAAOl0B,QAAQG,OAAO+zB,EAAI,CAAE,GACpG/mB,EAAIxQ,MAAM9D,KAAK,CAAE7G,MAAOA,EAAOkmK,QAASA,EAASrkK,MAAOA,GAC1D,MACSA,GACPsZ,EAAIxQ,MAAM9D,KAAK,CAAEhF,OAAO,IAE1B,OAAO7B,CACT,CAEA,IAAIomK,EAA8C,mBAApBC,gBAAiCA,gBAAkB,SAAU5hK,EAAO6hK,EAAY5pJ,GAC5G,IAAIwlB,EAAI,IAAI/gC,MAAMub,GAClB,OAAOwlB,EAAE3+B,KAAO,kBAAmB2+B,EAAEz9B,MAAQA,EAAOy9B,EAAEokI,WAAaA,EAAYpkI,CACjF,EAEO,SAASqkI,EAAmBprJ,GACjC,SAASqrJ,EAAKtkI,GACZ/mB,EAAI1W,MAAQ0W,EAAIsrJ,SAAW,IAAIL,EAAiBlkI,EAAG/mB,EAAI1W,MAAO,4CAA8Cy9B,EAC5G/mB,EAAIsrJ,UAAW,CACjB,CACA,IAAIxrJ,EAAG2oB,EAAI,EAkBX,OAjBA,SAASruB,IACP,KAAO0F,EAAIE,EAAIxQ,MAAM2J,OACnB,IACE,IAAK2G,EAAEpZ,OAAe,IAAN+hC,EAAS,OAAOA,EAAI,EAAGzoB,EAAIxQ,MAAM9D,KAAKoU,GAAIjN,QAAQC,UAAUC,KAAKqH,GACjF,GAAI0F,EAAEirJ,QAAS,CACb,IAAIxhK,EAASuW,EAAEirJ,QAAQ33J,KAAK0M,EAAEjb,OAC9B,GAAIib,EAAEpZ,MAAO,OAAO+hC,GAAK,EAAG51B,QAAQC,QAAQvJ,GAAQwJ,KAAKqH,EAAM,SAAS2sB,GAAc,OAATskI,EAAKtkI,GAAW3sB,GAAQ,EACvG,MACKquB,GAAK,CACZ,CACA,MAAO1B,GACLskI,EAAKtkI,EACP,CAEF,GAAU,IAAN0B,EAAS,OAAOzoB,EAAIsrJ,SAAWz4J,QAAQG,OAAOgN,EAAI1W,OAASuJ,QAAQC,UACvE,GAAIkN,EAAIsrJ,SAAU,MAAMtrJ,EAAI1W,KAC9B,CACO8Q,EACT,CAEO,SAASmxJ,EAAiCvkK,EAAMwkK,GACrD,MAAoB,iBAATxkK,GAAqB,WAAWge,KAAKhe,GACrCA,EAAKsY,QAAQ,mDAAoD,SAAUiB,EAAGkrJ,EAAK71H,EAAGorD,EAAK0qE,GAC9F,OAAOD,EAAMD,EAAc,OAAS,OAAQ51H,GAAOorD,GAAQ0qE,EAAW91H,EAAIorD,EAAM,IAAM0qE,EAAGprJ,cAAgB,KAAxCC,CACrE,GAEGvZ,CACT,CAEA,SACE6/J,YACAE,WACAC,SACAG,aACAK,UACAG,eACAS,oBACAE,YACAC,oBACAC,aACA/hI,YACAmiI,cACAM,kBACAE,eACAC,WACAC,SACAE,WACAC,iBACAG,gBACAE,UACAC,mBACAI,mBACAC,gBACAC,uBACAI,eACAx7J,kBACAy7J,yBACAE,yBACAC,wBACAC,0BACAM,qBACAG,mC,+y9IC9YEI,EAA2B,CAAC,EAGhC,SAASllH,EAAoBmlH,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBpmK,IAAjBqmK,EACH,OAAOA,EAAajnK,QAGrB,IAAIuO,EAASw4J,EAAyBC,GAAY,CACjDrlH,GAAIqlH,EACJvjF,QAAQ,EACRzjF,QAAS,CAAC,GAUX,OANAknK,EAAoBF,GAAUx4J,KAAKD,EAAOvO,QAASuO,EAAQA,EAAOvO,QAAS6hD,GAG3EtzC,EAAOk1E,QAAS,EAGTl1E,EAAOvO,OACf,CCxBA6hD,EAAoB7Q,EAAI,CAAChxC,EAASmnK,KACjC,IAAI,IAAIloJ,KAAOkoJ,EACXtlH,EAAoBlhC,EAAEwmJ,EAAYloJ,KAAS4iC,EAAoBlhC,EAAE3gB,EAASif,IAC5Enf,OAAOC,eAAeC,EAASif,EAAK,CAAEpB,YAAY,EAAME,IAAKopJ,EAAWloJ,MCJ3E4iC,EAAoBlhC,EAAI,CAACN,EAAKC,IAAUxgB,OAAOwO,UAAUmkC,eAAejkC,KAAK6R,EAAKC,GCClFuhC,EAAoB3mC,EAAKlb,IACH,oBAAX+kC,QAA0BA,OAAOqiI,aAC1CtnK,OAAOC,eAAeC,EAAS+kC,OAAOqiI,YAAa,CAAEnnK,MAAO,WAE7DH,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,KCLvD4hD,EAAoBwlH,IAAO94J,IAC1BA,EAAOy6B,MAAQ,GACVz6B,EAAOm9F,WAAUn9F,EAAOm9F,SAAW,IACjCn9F,G,qFCiBR,oBAAyBikF,GACrB,EAAA8nD,SAAS/nD,OAAOC,GAChB,EAAA+gC,QAAQhhC,OAAOC,GACf,EAAA41D,WAAW71D,OAAOC,GAClB,EAAA/C,aAAa8C,OAAOC,GACpB,EAAA8tC,WAAW/tC,OAAOC,GAClB,EAAAm9C,aAAap9C,OAAOC,GACpB,EAAAgwB,OAAOjwB,OAAOC,GACd,EAAA6f,SAAS9f,OAAOC,GAChB,MAAM28B,EAAO,EAAA7S,SAAS/pB,OAAOC,GAC7B,EAAAoF,YAAYrF,OAAOC,GACnB,EAAAugD,aAAaxgD,OAAOC,IACpB,IAAA80E,mBAAkB90E,IAClB,IAAA+0E,0BAAyB/0E,IACzB,IAAAg1E,2BAA0Bh1E,IAC1B,IAAAi1E,mBAAkBj1E,GAClBgjB,EAAUkyD,SAASl1E,GAInB28B,EAAK5O,kBAELx9B,EAAOuB,SAASC,eAAe,aAAc,oBAAqB,EAAAN,WAAW01D,mBAO7EnnD,EAAIsF,cAAchxF,KAAKi8E,EAAOmT,UAAUyxE,uBAAuBxlI,IAC3D,MAAMi6D,EAAMh6F,EAAKuqC,QAAQxK,EAAEvmB,SAAS4H,UAAU9H,cAC9C,GAAY,SAAR0gF,GAA0B,SAARA,GAA0B,SAARA,EACpC,OACJ,MAAM18C,EAAM,IAAItiC,KAGV0xH,EAAU,eAFFpvF,EAAIoO,cAAgB,KAAOpO,EAAIkO,WAAa,GAAK,IAAMlO,EAAI8N,UACrE,IAAM9N,EAAI4N,WAAa,IAAM5N,EAAI0N,aAAe,IAAM1N,EAAIwN,aAExDn4C,EAAME,KAAKC,IAAIitB,EAAEvmB,SAAS0+E,UAAW,IAC3C,IAAK,IAAIzlF,EAAI,EAAGA,EAAIE,EAAKF,IAAK,CAC1B,MAAM81D,EAAOxoC,EAAEvmB,SAASw+E,OAAOvlF,GAC/B,GAAI,kBAAkBuL,KAAKuqD,EAAK10B,MAG5B,YAFI00B,EAAK10B,KAAKqkE,YAAcw0B,GACxB3sG,EAAEylI,UAAU35J,QAAQC,QAAQ,CAAC60E,EAAO8yB,SAASn7F,QAAQiwD,EAAKh6D,MAAOm+H,MAG7E,KAGA,EAAA7qD,WAAW2wC,gBACX,EAAA3wC,WAAWub,eAEX,EAAAvb,WAAWwF,aAAa,+BAChC,E,gBAxEA,0BACA,0BACA,UACA,UACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,UACA,UACA,UACA,yB","sources":["webpack://nlp/./node_modules/@nodelib/fs.scandir/out/adapters/fs.js","webpack://nlp/./node_modules/@nodelib/fs.scandir/out/constants.js","webpack://nlp/./node_modules/@nodelib/fs.scandir/out/index.js","webpack://nlp/./node_modules/@nodelib/fs.scandir/out/providers/async.js","webpack://nlp/./node_modules/@nodelib/fs.scandir/out/providers/common.js","webpack://nlp/./node_modules/@nodelib/fs.scandir/out/providers/sync.js","webpack://nlp/./node_modules/@nodelib/fs.scandir/out/settings.js","webpack://nlp/./node_modules/@nodelib/fs.scandir/out/utils/fs.js","webpack://nlp/./node_modules/@nodelib/fs.scandir/out/utils/index.js","webpack://nlp/./node_modules/@nodelib/fs.stat/out/adapters/fs.js","webpack://nlp/./node_modules/@nodelib/fs.stat/out/index.js","webpack://nlp/./node_modules/@nodelib/fs.stat/out/providers/async.js","webpack://nlp/./node_modules/@nodelib/fs.stat/out/providers/sync.js","webpack://nlp/./node_modules/@nodelib/fs.stat/out/settings.js","webpack://nlp/./node_modules/@nodelib/fs.walk/out/index.js","webpack://nlp/./node_modules/@nodelib/fs.walk/out/providers/async.js","webpack://nlp/./node_modules/@nodelib/fs.walk/out/providers/stream.js","webpack://nlp/./node_modules/@nodelib/fs.walk/out/providers/sync.js","webpack://nlp/./node_modules/@nodelib/fs.walk/out/readers/async.js","webpack://nlp/./node_modules/@nodelib/fs.walk/out/readers/common.js","webpack://nlp/./node_modules/@nodelib/fs.walk/out/readers/reader.js","webpack://nlp/./node_modules/@nodelib/fs.walk/out/readers/sync.js","webpack://nlp/./node_modules/@nodelib/fs.walk/out/settings.js","webpack://nlp/./node_modules/agent-base/dist/src/index.js","webpack://nlp/./node_modules/agent-base/dist/src/promisify.js","webpack://nlp/./node_modules/braces/index.js","webpack://nlp/./node_modules/braces/lib/compile.js","webpack://nlp/./node_modules/braces/lib/constants.js","webpack://nlp/./node_modules/braces/lib/expand.js","webpack://nlp/./node_modules/braces/lib/parse.js","webpack://nlp/./node_modules/braces/lib/stringify.js","webpack://nlp/./node_modules/braces/lib/utils.js","webpack://nlp/./node_modules/buffer-crc32/index.js","webpack://nlp/./node_modules/copy-dir/index.js","webpack://nlp/./node_modules/copy-dir/libs/copydir.js","webpack://nlp/./node_modules/copy-dir/libs/copydirSync.js","webpack://nlp/./node_modules/debug/src/browser.js","webpack://nlp/./node_modules/debug/src/common.js","webpack://nlp/./node_modules/debug/src/index.js","webpack://nlp/./node_modules/debug/src/node.js","webpack://nlp/./node_modules/end-of-stream/index.js","webpack://nlp/./node_modules/extract-zip/index.js","webpack://nlp/./node_modules/fast-glob/node_modules/glob-parent/index.js","webpack://nlp/./node_modules/fast-glob/out/index.js","webpack://nlp/./node_modules/fast-glob/out/managers/tasks.js","webpack://nlp/./node_modules/fast-glob/out/providers/async.js","webpack://nlp/./node_modules/fast-glob/out/providers/filters/deep.js","webpack://nlp/./node_modules/fast-glob/out/providers/filters/entry.js","webpack://nlp/./node_modules/fast-glob/out/providers/filters/error.js","webpack://nlp/./node_modules/fast-glob/out/providers/matchers/matcher.js","webpack://nlp/./node_modules/fast-glob/out/providers/matchers/partial.js","webpack://nlp/./node_modules/fast-glob/out/providers/provider.js","webpack://nlp/./node_modules/fast-glob/out/providers/stream.js","webpack://nlp/./node_modules/fast-glob/out/providers/sync.js","webpack://nlp/./node_modules/fast-glob/out/providers/transformers/entry.js","webpack://nlp/./node_modules/fast-glob/out/readers/async.js","webpack://nlp/./node_modules/fast-glob/out/readers/reader.js","webpack://nlp/./node_modules/fast-glob/out/readers/stream.js","webpack://nlp/./node_modules/fast-glob/out/readers/sync.js","webpack://nlp/./node_modules/fast-glob/out/settings.js","webpack://nlp/./node_modules/fast-glob/out/utils/array.js","webpack://nlp/./node_modules/fast-glob/out/utils/errno.js","webpack://nlp/./node_modules/fast-glob/out/utils/fs.js","webpack://nlp/./node_modules/fast-glob/out/utils/index.js","webpack://nlp/./node_modules/fast-glob/out/utils/path.js","webpack://nlp/./node_modules/fast-glob/out/utils/pattern.js","webpack://nlp/./node_modules/fast-glob/out/utils/stream.js","webpack://nlp/./node_modules/fast-glob/out/utils/string.js","webpack://nlp/./node_modules/fastq/queue.js","webpack://nlp/./node_modules/fd-slicer/index.js","webpack://nlp/./node_modules/fill-range/index.js","webpack://nlp/./node_modules/follow-redirects/debug.js","webpack://nlp/./node_modules/follow-redirects/index.js","webpack://nlp/./node_modules/get-stream/buffer-stream.js","webpack://nlp/./node_modules/get-stream/index.js","webpack://nlp/./node_modules/has-flag/index.js","webpack://nlp/./node_modules/https-proxy-agent/dist/agent.js","webpack://nlp/./node_modules/https-proxy-agent/dist/index.js","webpack://nlp/./node_modules/https-proxy-agent/dist/parse-proxy-response.js","webpack://nlp/./node_modules/ignore/index.js","webpack://nlp/./node_modules/is-extglob/index.js","webpack://nlp/./node_modules/is-glob/index.js","webpack://nlp/./node_modules/is-number/index.js","webpack://nlp/./node_modules/merge2/index.js","webpack://nlp/./node_modules/micromatch/index.js","webpack://nlp/./node_modules/mime-db/index.js","webpack://nlp/./node_modules/mime-types/index.js","webpack://nlp/./node_modules/moment-duration-format/lib/moment-duration-format.js","webpack://nlp/./node_modules/moment/locale/af.js","webpack://nlp/./node_modules/moment/locale/ar-dz.js","webpack://nlp/./node_modules/moment/locale/ar-kw.js","webpack://nlp/./node_modules/moment/locale/ar-ly.js","webpack://nlp/./node_modules/moment/locale/ar-ma.js","webpack://nlp/./node_modules/moment/locale/ar-ps.js","webpack://nlp/./node_modules/moment/locale/ar-sa.js","webpack://nlp/./node_modules/moment/locale/ar-tn.js","webpack://nlp/./node_modules/moment/locale/ar.js","webpack://nlp/./node_modules/moment/locale/az.js","webpack://nlp/./node_modules/moment/locale/be.js","webpack://nlp/./node_modules/moment/locale/bg.js","webpack://nlp/./node_modules/moment/locale/bm.js","webpack://nlp/./node_modules/moment/locale/bn-bd.js","webpack://nlp/./node_modules/moment/locale/bn.js","webpack://nlp/./node_modules/moment/locale/bo.js","webpack://nlp/./node_modules/moment/locale/br.js","webpack://nlp/./node_modules/moment/locale/bs.js","webpack://nlp/./node_modules/moment/locale/ca.js","webpack://nlp/./node_modules/moment/locale/cs.js","webpack://nlp/./node_modules/moment/locale/cv.js","webpack://nlp/./node_modules/moment/locale/cy.js","webpack://nlp/./node_modules/moment/locale/da.js","webpack://nlp/./node_modules/moment/locale/de-at.js","webpack://nlp/./node_modules/moment/locale/de-ch.js","webpack://nlp/./node_modules/moment/locale/de.js","webpack://nlp/./node_modules/moment/locale/dv.js","webpack://nlp/./node_modules/moment/locale/el.js","webpack://nlp/./node_modules/moment/locale/en-au.js","webpack://nlp/./node_modules/moment/locale/en-ca.js","webpack://nlp/./node_modules/moment/locale/en-gb.js","webpack://nlp/./node_modules/moment/locale/en-ie.js","webpack://nlp/./node_modules/moment/locale/en-il.js","webpack://nlp/./node_modules/moment/locale/en-in.js","webpack://nlp/./node_modules/moment/locale/en-nz.js","webpack://nlp/./node_modules/moment/locale/en-sg.js","webpack://nlp/./node_modules/moment/locale/eo.js","webpack://nlp/./node_modules/moment/locale/es-do.js","webpack://nlp/./node_modules/moment/locale/es-mx.js","webpack://nlp/./node_modules/moment/locale/es-us.js","webpack://nlp/./node_modules/moment/locale/es.js","webpack://nlp/./node_modules/moment/locale/et.js","webpack://nlp/./node_modules/moment/locale/eu.js","webpack://nlp/./node_modules/moment/locale/fa.js","webpack://nlp/./node_modules/moment/locale/fi.js","webpack://nlp/./node_modules/moment/locale/fil.js","webpack://nlp/./node_modules/moment/locale/fo.js","webpack://nlp/./node_modules/moment/locale/fr-ca.js","webpack://nlp/./node_modules/moment/locale/fr-ch.js","webpack://nlp/./node_modules/moment/locale/fr.js","webpack://nlp/./node_modules/moment/locale/fy.js","webpack://nlp/./node_modules/moment/locale/ga.js","webpack://nlp/./node_modules/moment/locale/gd.js","webpack://nlp/./node_modules/moment/locale/gl.js","webpack://nlp/./node_modules/moment/locale/gom-deva.js","webpack://nlp/./node_modules/moment/locale/gom-latn.js","webpack://nlp/./node_modules/moment/locale/gu.js","webpack://nlp/./node_modules/moment/locale/he.js","webpack://nlp/./node_modules/moment/locale/hi.js","webpack://nlp/./node_modules/moment/locale/hr.js","webpack://nlp/./node_modules/moment/locale/hu.js","webpack://nlp/./node_modules/moment/locale/hy-am.js","webpack://nlp/./node_modules/moment/locale/id.js","webpack://nlp/./node_modules/moment/locale/is.js","webpack://nlp/./node_modules/moment/locale/it-ch.js","webpack://nlp/./node_modules/moment/locale/it.js","webpack://nlp/./node_modules/moment/locale/ja.js","webpack://nlp/./node_modules/moment/locale/jv.js","webpack://nlp/./node_modules/moment/locale/ka.js","webpack://nlp/./node_modules/moment/locale/kk.js","webpack://nlp/./node_modules/moment/locale/km.js","webpack://nlp/./node_modules/moment/locale/kn.js","webpack://nlp/./node_modules/moment/locale/ko.js","webpack://nlp/./node_modules/moment/locale/ku-kmr.js","webpack://nlp/./node_modules/moment/locale/ku.js","webpack://nlp/./node_modules/moment/locale/ky.js","webpack://nlp/./node_modules/moment/locale/lb.js","webpack://nlp/./node_modules/moment/locale/lo.js","webpack://nlp/./node_modules/moment/locale/lt.js","webpack://nlp/./node_modules/moment/locale/lv.js","webpack://nlp/./node_modules/moment/locale/me.js","webpack://nlp/./node_modules/moment/locale/mi.js","webpack://nlp/./node_modules/moment/locale/mk.js","webpack://nlp/./node_modules/moment/locale/ml.js","webpack://nlp/./node_modules/moment/locale/mn.js","webpack://nlp/./node_modules/moment/locale/mr.js","webpack://nlp/./node_modules/moment/locale/ms-my.js","webpack://nlp/./node_modules/moment/locale/ms.js","webpack://nlp/./node_modules/moment/locale/mt.js","webpack://nlp/./node_modules/moment/locale/my.js","webpack://nlp/./node_modules/moment/locale/nb.js","webpack://nlp/./node_modules/moment/locale/ne.js","webpack://nlp/./node_modules/moment/locale/nl-be.js","webpack://nlp/./node_modules/moment/locale/nl.js","webpack://nlp/./node_modules/moment/locale/nn.js","webpack://nlp/./node_modules/moment/locale/oc-lnc.js","webpack://nlp/./node_modules/moment/locale/pa-in.js","webpack://nlp/./node_modules/moment/locale/pl.js","webpack://nlp/./node_modules/moment/locale/pt-br.js","webpack://nlp/./node_modules/moment/locale/pt.js","webpack://nlp/./node_modules/moment/locale/ro.js","webpack://nlp/./node_modules/moment/locale/ru.js","webpack://nlp/./node_modules/moment/locale/sd.js","webpack://nlp/./node_modules/moment/locale/se.js","webpack://nlp/./node_modules/moment/locale/si.js","webpack://nlp/./node_modules/moment/locale/sk.js","webpack://nlp/./node_modules/moment/locale/sl.js","webpack://nlp/./node_modules/moment/locale/sq.js","webpack://nlp/./node_modules/moment/locale/sr-cyrl.js","webpack://nlp/./node_modules/moment/locale/sr.js","webpack://nlp/./node_modules/moment/locale/ss.js","webpack://nlp/./node_modules/moment/locale/sv.js","webpack://nlp/./node_modules/moment/locale/sw.js","webpack://nlp/./node_modules/moment/locale/ta.js","webpack://nlp/./node_modules/moment/locale/te.js","webpack://nlp/./node_modules/moment/locale/tet.js","webpack://nlp/./node_modules/moment/locale/tg.js","webpack://nlp/./node_modules/moment/locale/th.js","webpack://nlp/./node_modules/moment/locale/tk.js","webpack://nlp/./node_modules/moment/locale/tl-ph.js","webpack://nlp/./node_modules/moment/locale/tlh.js","webpack://nlp/./node_modules/moment/locale/tr.js","webpack://nlp/./node_modules/moment/locale/tzl.js","webpack://nlp/./node_modules/moment/locale/tzm-latn.js","webpack://nlp/./node_modules/moment/locale/tzm.js","webpack://nlp/./node_modules/moment/locale/ug-cn.js","webpack://nlp/./node_modules/moment/locale/uk.js","webpack://nlp/./node_modules/moment/locale/ur.js","webpack://nlp/./node_modules/moment/locale/uz-latn.js","webpack://nlp/./node_modules/moment/locale/uz.js","webpack://nlp/./node_modules/moment/locale/vi.js","webpack://nlp/./node_modules/moment/locale/x-pseudo.js","webpack://nlp/./node_modules/moment/locale/yo.js","webpack://nlp/./node_modules/moment/locale/zh-cn.js","webpack://nlp/./node_modules/moment/locale/zh-hk.js","webpack://nlp/./node_modules/moment/locale/zh-mo.js","webpack://nlp/./node_modules/moment/locale/zh-tw.js","webpack://nlp/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://nlp/./node_modules/moment/moment.js","webpack://nlp/./node_modules/ms/index.js","webpack://nlp/./node_modules/n-readlines/readlines.js","webpack://nlp/./node_modules/nodejs-file-downloader/Download.js","webpack://nlp/./node_modules/nodejs-file-downloader/Downloader.js","webpack://nlp/./node_modules/nodejs-file-downloader/makeRequest.js","webpack://nlp/./node_modules/nodejs-file-downloader/utils/FileProcessor.js","webpack://nlp/./node_modules/nodejs-file-downloader/utils/delay.js","webpack://nlp/./node_modules/nodejs-file-downloader/utils/fileName.js","webpack://nlp/./node_modules/nodejs-file-downloader/utils/rpur.js","webpack://nlp/./node_modules/nodejs-file-downloader/utils/stream.js","webpack://nlp/./node_modules/nodejs-file-downloader/utils/string.js","webpack://nlp/./node_modules/nodejs-file-downloader/utils/url.js","webpack://nlp/./node_modules/once/once.js","webpack://nlp/./node_modules/pend/index.js","webpack://nlp/./node_modules/picomatch/index.js","webpack://nlp/./node_modules/picomatch/lib/constants.js","webpack://nlp/./node_modules/picomatch/lib/parse.js","webpack://nlp/./node_modules/picomatch/lib/picomatch.js","webpack://nlp/./node_modules/picomatch/lib/scan.js","webpack://nlp/./node_modules/picomatch/lib/utils.js","webpack://nlp/./node_modules/pump/index.js","webpack://nlp/./node_modules/queue-microtask/index.js","webpack://nlp/./node_modules/reusify/reusify.js","webpack://nlp/./node_modules/run-parallel/index.js","webpack://nlp/./node_modules/sanitize-filename/index.js","webpack://nlp/./node_modules/supports-color/index.js","webpack://nlp/./node_modules/to-regex-range/index.js","webpack://nlp/./node_modules/truncate-utf8-bytes/index.js","webpack://nlp/./node_modules/truncate-utf8-bytes/lib/truncate.js","webpack://nlp/./src/analyzer.ts","webpack://nlp/./src/analyzerView.ts","webpack://nlp/./src/command.ts","webpack://nlp/./src/compile.ts","webpack://nlp/./src/dirfuncs.ts","webpack://nlp/./src/fileOps.ts","webpack://nlp/./src/findFile.ts","webpack://nlp/./src/findView.ts","webpack://nlp/./src/format/codeRegion.ts","webpack://nlp/./src/format/formatProvider.ts","webpack://nlp/./src/format/formatter.ts","webpack://nlp/./src/format/regions.ts","webpack://nlp/./src/format/rulesRegion.ts","webpack://nlp/./src/format/tokenizer.ts","webpack://nlp/./src/format/types.ts","webpack://nlp/./src/helpView.ts","webpack://nlp/./src/jsonState.ts","webpack://nlp/./src/kbView.ts","webpack://nlp/./src/language/completion.ts","webpack://nlp/./src/language/diagnostics.ts","webpack://nlp/./src/language/engineDiagnostics.ts","webpack://nlp/./src/language/engineErrors.ts","webpack://nlp/./src/language/folding.ts","webpack://nlp/./src/language/kbConcepts.ts","webpack://nlp/./src/language/nlpxxData.ts","webpack://nlp/./src/language/providers.ts","webpack://nlp/./src/language/quickfix.ts","webpack://nlp/./src/language/semanticTokens.ts","webpack://nlp/./src/language/signature.ts","webpack://nlp/./src/language/symbols.ts","webpack://nlp/./src/language/workspaceIndex.ts","webpack://nlp/./src/logView.ts","webpack://nlp/./src/modFile.ts","webpack://nlp/./src/nlp.ts","webpack://nlp/./src/outputView.ts","webpack://nlp/./src/regression.ts","webpack://nlp/./src/sequence.ts","webpack://nlp/./src/sequenceView.ts","webpack://nlp/./src/status.ts","webpack://nlp/./src/telemetry/telemetry.ts","webpack://nlp/./src/textFile.ts","webpack://nlp/./src/textView.ts","webpack://nlp/./src/treeFile.ts","webpack://nlp/./src/treeview/layout.ts","webpack://nlp/./src/treeview/parseTree.ts","webpack://nlp/./src/treeview/renderSvg.ts","webpack://nlp/./src/treeview/treeGraphView.ts","webpack://nlp/./src/visualText.ts","webpack://nlp/./node_modules/wrappy/wrappy.js","webpack://nlp/./node_modules/yauzl/index.js","webpack://nlp/external commonjs \"vscode\"","webpack://nlp/external node-commonjs \"assert\"","webpack://nlp/external node-commonjs \"buffer\"","webpack://nlp/external node-commonjs \"child_process\"","webpack://nlp/external node-commonjs \"crypto\"","webpack://nlp/external node-commonjs \"events\"","webpack://nlp/external node-commonjs \"fs\"","webpack://nlp/external node-commonjs \"http\"","webpack://nlp/external node-commonjs \"https\"","webpack://nlp/external node-commonjs \"net\"","webpack://nlp/external node-commonjs \"os\"","webpack://nlp/external node-commonjs \"path\"","webpack://nlp/external node-commonjs \"stream\"","webpack://nlp/external node-commonjs \"tls\"","webpack://nlp/external node-commonjs \"tty\"","webpack://nlp/external node-commonjs \"url\"","webpack://nlp/external node-commonjs \"util\"","webpack://nlp/external node-commonjs \"zlib\"","webpack://nlp/external node-commonjs \"node:fs\"","webpack://nlp/external node-commonjs \"node:fs/promises\"","webpack://nlp/external node-commonjs \"node:path\"","webpack://nlp/external node-commonjs \"node:process\"","webpack://nlp/external node-commonjs \"node:events\"","webpack://nlp/external node-commonjs \"node:stream\"","webpack://nlp/external node-commonjs \"node:stream/promises\"","webpack://nlp/./node_modules/@sindresorhus/merge-streams/index.js","webpack://nlp/./node_modules/path-type/index.js","webpack://nlp/external node-commonjs \"node:util\"","webpack://nlp/external node-commonjs \"node:child_process\"","webpack://nlp/external node-commonjs \"node:url\"","webpack://nlp/./node_modules/globby/node_modules/unicorn-magic/node.js","webpack://nlp/./node_modules/slash/index.js","webpack://nlp/./node_modules/globby/utilities.js","webpack://nlp/./node_modules/globby/ignore.js","webpack://nlp/./node_modules/globby/index.js","webpack://nlp/./node_modules/p-map/index.js","webpack://nlp/./node_modules/presentable-error/index.js","webpack://nlp/./node_modules/del/index.js","webpack://nlp/./node_modules/is-path-cwd/index.js","webpack://nlp/./node_modules/is-path-inside/index.js","webpack://nlp/./node_modules/tslib/tslib.es6.mjs","webpack://nlp/webpack/bootstrap","webpack://nlp/webpack/runtime/define property getters","webpack://nlp/webpack/runtime/hasOwnProperty shorthand","webpack://nlp/webpack/runtime/make namespace object","webpack://nlp/webpack/runtime/node module decorator","webpack://nlp/./src/extension.ts"],"sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\r\nconst fs = require(\"fs\");\r\nexports.FILE_SYSTEM_ADAPTER = {\r\n lstat: fs.lstat,\r\n stat: fs.stat,\r\n lstatSync: fs.lstatSync,\r\n statSync: fs.statSync,\r\n readdir: fs.readdir,\r\n readdirSync: fs.readdirSync\r\n};\r\nfunction createFileSystemAdapter(fsMethods) {\r\n if (fsMethods === undefined) {\r\n return exports.FILE_SYSTEM_ADAPTER;\r\n }\r\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\r\n}\r\nexports.createFileSystemAdapter = createFileSystemAdapter;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\r\nconst NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');\r\nif (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {\r\n throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\r\n}\r\nconst MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\r\nconst MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\r\nconst SUPPORTED_MAJOR_VERSION = 10;\r\nconst SUPPORTED_MINOR_VERSION = 10;\r\nconst IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\r\nconst IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\r\n/**\r\n * IS `true` for Node.js 10.10 and greater.\r\n */\r\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Settings = exports.scandirSync = exports.scandir = void 0;\r\nconst async = require(\"./providers/async\");\r\nconst sync = require(\"./providers/sync\");\r\nconst settings_1 = require(\"./settings\");\r\nexports.Settings = settings_1.default;\r\nfunction scandir(path, optionsOrSettingsOrCallback, callback) {\r\n if (typeof optionsOrSettingsOrCallback === 'function') {\r\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\r\n return;\r\n }\r\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\r\n}\r\nexports.scandir = scandir;\r\nfunction scandirSync(path, optionsOrSettings) {\r\n const settings = getSettings(optionsOrSettings);\r\n return sync.read(path, settings);\r\n}\r\nexports.scandirSync = scandirSync;\r\nfunction getSettings(settingsOrOptions = {}) {\r\n if (settingsOrOptions instanceof settings_1.default) {\r\n return settingsOrOptions;\r\n }\r\n return new settings_1.default(settingsOrOptions);\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\r\nconst fsStat = require(\"@nodelib/fs.stat\");\r\nconst rpl = require(\"run-parallel\");\r\nconst constants_1 = require(\"../constants\");\r\nconst utils = require(\"../utils\");\r\nconst common = require(\"./common\");\r\nfunction read(directory, settings, callback) {\r\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\r\n readdirWithFileTypes(directory, settings, callback);\r\n return;\r\n }\r\n readdir(directory, settings, callback);\r\n}\r\nexports.read = read;\r\nfunction readdirWithFileTypes(directory, settings, callback) {\r\n settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\r\n if (readdirError !== null) {\r\n callFailureCallback(callback, readdirError);\r\n return;\r\n }\r\n const entries = dirents.map((dirent) => ({\r\n dirent,\r\n name: dirent.name,\r\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\r\n }));\r\n if (!settings.followSymbolicLinks) {\r\n callSuccessCallback(callback, entries);\r\n return;\r\n }\r\n const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\r\n rpl(tasks, (rplError, rplEntries) => {\r\n if (rplError !== null) {\r\n callFailureCallback(callback, rplError);\r\n return;\r\n }\r\n callSuccessCallback(callback, rplEntries);\r\n });\r\n });\r\n}\r\nexports.readdirWithFileTypes = readdirWithFileTypes;\r\nfunction makeRplTaskEntry(entry, settings) {\r\n return (done) => {\r\n if (!entry.dirent.isSymbolicLink()) {\r\n done(null, entry);\r\n return;\r\n }\r\n settings.fs.stat(entry.path, (statError, stats) => {\r\n if (statError !== null) {\r\n if (settings.throwErrorOnBrokenSymbolicLink) {\r\n done(statError);\r\n return;\r\n }\r\n done(null, entry);\r\n return;\r\n }\r\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\r\n done(null, entry);\r\n });\r\n };\r\n}\r\nfunction readdir(directory, settings, callback) {\r\n settings.fs.readdir(directory, (readdirError, names) => {\r\n if (readdirError !== null) {\r\n callFailureCallback(callback, readdirError);\r\n return;\r\n }\r\n const tasks = names.map((name) => {\r\n const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\r\n return (done) => {\r\n fsStat.stat(path, settings.fsStatSettings, (error, stats) => {\r\n if (error !== null) {\r\n done(error);\r\n return;\r\n }\r\n const entry = {\r\n name,\r\n path,\r\n dirent: utils.fs.createDirentFromStats(name, stats)\r\n };\r\n if (settings.stats) {\r\n entry.stats = stats;\r\n }\r\n done(null, entry);\r\n });\r\n };\r\n });\r\n rpl(tasks, (rplError, entries) => {\r\n if (rplError !== null) {\r\n callFailureCallback(callback, rplError);\r\n return;\r\n }\r\n callSuccessCallback(callback, entries);\r\n });\r\n });\r\n}\r\nexports.readdir = readdir;\r\nfunction callFailureCallback(callback, error) {\r\n callback(error);\r\n}\r\nfunction callSuccessCallback(callback, result) {\r\n callback(null, result);\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.joinPathSegments = void 0;\r\nfunction joinPathSegments(a, b, separator) {\r\n /**\r\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\r\n */\r\n if (a.endsWith(separator)) {\r\n return a + b;\r\n }\r\n return a + separator + b;\r\n}\r\nexports.joinPathSegments = joinPathSegments;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\r\nconst fsStat = require(\"@nodelib/fs.stat\");\r\nconst constants_1 = require(\"../constants\");\r\nconst utils = require(\"../utils\");\r\nconst common = require(\"./common\");\r\nfunction read(directory, settings) {\r\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\r\n return readdirWithFileTypes(directory, settings);\r\n }\r\n return readdir(directory, settings);\r\n}\r\nexports.read = read;\r\nfunction readdirWithFileTypes(directory, settings) {\r\n const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\r\n return dirents.map((dirent) => {\r\n const entry = {\r\n dirent,\r\n name: dirent.name,\r\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\r\n };\r\n if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\r\n try {\r\n const stats = settings.fs.statSync(entry.path);\r\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\r\n }\r\n catch (error) {\r\n if (settings.throwErrorOnBrokenSymbolicLink) {\r\n throw error;\r\n }\r\n }\r\n }\r\n return entry;\r\n });\r\n}\r\nexports.readdirWithFileTypes = readdirWithFileTypes;\r\nfunction readdir(directory, settings) {\r\n const names = settings.fs.readdirSync(directory);\r\n return names.map((name) => {\r\n const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\r\n const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\r\n const entry = {\r\n name,\r\n path: entryPath,\r\n dirent: utils.fs.createDirentFromStats(name, stats)\r\n };\r\n if (settings.stats) {\r\n entry.stats = stats;\r\n }\r\n return entry;\r\n });\r\n}\r\nexports.readdir = readdir;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst path = require(\"path\");\r\nconst fsStat = require(\"@nodelib/fs.stat\");\r\nconst fs = require(\"./adapters/fs\");\r\nclass Settings {\r\n constructor(_options = {}) {\r\n this._options = _options;\r\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\r\n this.fs = fs.createFileSystemAdapter(this._options.fs);\r\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\r\n this.stats = this._getValue(this._options.stats, false);\r\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\r\n this.fsStatSettings = new fsStat.Settings({\r\n followSymbolicLink: this.followSymbolicLinks,\r\n fs: this.fs,\r\n throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\r\n });\r\n }\r\n _getValue(option, value) {\r\n return option !== null && option !== void 0 ? option : value;\r\n }\r\n}\r\nexports.default = Settings;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createDirentFromStats = void 0;\r\nclass DirentFromStats {\r\n constructor(name, stats) {\r\n this.name = name;\r\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\r\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\r\n this.isDirectory = stats.isDirectory.bind(stats);\r\n this.isFIFO = stats.isFIFO.bind(stats);\r\n this.isFile = stats.isFile.bind(stats);\r\n this.isSocket = stats.isSocket.bind(stats);\r\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\r\n }\r\n}\r\nfunction createDirentFromStats(name, stats) {\r\n return new DirentFromStats(name, stats);\r\n}\r\nexports.createDirentFromStats = createDirentFromStats;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.fs = void 0;\r\nconst fs = require(\"./fs\");\r\nexports.fs = fs;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\r\nconst fs = require(\"fs\");\r\nexports.FILE_SYSTEM_ADAPTER = {\r\n lstat: fs.lstat,\r\n stat: fs.stat,\r\n lstatSync: fs.lstatSync,\r\n statSync: fs.statSync\r\n};\r\nfunction createFileSystemAdapter(fsMethods) {\r\n if (fsMethods === undefined) {\r\n return exports.FILE_SYSTEM_ADAPTER;\r\n }\r\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\r\n}\r\nexports.createFileSystemAdapter = createFileSystemAdapter;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.statSync = exports.stat = exports.Settings = void 0;\r\nconst async = require(\"./providers/async\");\r\nconst sync = require(\"./providers/sync\");\r\nconst settings_1 = require(\"./settings\");\r\nexports.Settings = settings_1.default;\r\nfunction stat(path, optionsOrSettingsOrCallback, callback) {\r\n if (typeof optionsOrSettingsOrCallback === 'function') {\r\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\r\n return;\r\n }\r\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\r\n}\r\nexports.stat = stat;\r\nfunction statSync(path, optionsOrSettings) {\r\n const settings = getSettings(optionsOrSettings);\r\n return sync.read(path, settings);\r\n}\r\nexports.statSync = statSync;\r\nfunction getSettings(settingsOrOptions = {}) {\r\n if (settingsOrOptions instanceof settings_1.default) {\r\n return settingsOrOptions;\r\n }\r\n return new settings_1.default(settingsOrOptions);\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.read = void 0;\r\nfunction read(path, settings, callback) {\r\n settings.fs.lstat(path, (lstatError, lstat) => {\r\n if (lstatError !== null) {\r\n callFailureCallback(callback, lstatError);\r\n return;\r\n }\r\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\r\n callSuccessCallback(callback, lstat);\r\n return;\r\n }\r\n settings.fs.stat(path, (statError, stat) => {\r\n if (statError !== null) {\r\n if (settings.throwErrorOnBrokenSymbolicLink) {\r\n callFailureCallback(callback, statError);\r\n return;\r\n }\r\n callSuccessCallback(callback, lstat);\r\n return;\r\n }\r\n if (settings.markSymbolicLink) {\r\n stat.isSymbolicLink = () => true;\r\n }\r\n callSuccessCallback(callback, stat);\r\n });\r\n });\r\n}\r\nexports.read = read;\r\nfunction callFailureCallback(callback, error) {\r\n callback(error);\r\n}\r\nfunction callSuccessCallback(callback, result) {\r\n callback(null, result);\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.read = void 0;\r\nfunction read(path, settings) {\r\n const lstat = settings.fs.lstatSync(path);\r\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\r\n return lstat;\r\n }\r\n try {\r\n const stat = settings.fs.statSync(path);\r\n if (settings.markSymbolicLink) {\r\n stat.isSymbolicLink = () => true;\r\n }\r\n return stat;\r\n }\r\n catch (error) {\r\n if (!settings.throwErrorOnBrokenSymbolicLink) {\r\n return lstat;\r\n }\r\n throw error;\r\n }\r\n}\r\nexports.read = read;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst fs = require(\"./adapters/fs\");\r\nclass Settings {\r\n constructor(_options = {}) {\r\n this._options = _options;\r\n this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\r\n this.fs = fs.createFileSystemAdapter(this._options.fs);\r\n this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\r\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\r\n }\r\n _getValue(option, value) {\r\n return option !== null && option !== void 0 ? option : value;\r\n }\r\n}\r\nexports.default = Settings;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\r\nconst async_1 = require(\"./providers/async\");\r\nconst stream_1 = require(\"./providers/stream\");\r\nconst sync_1 = require(\"./providers/sync\");\r\nconst settings_1 = require(\"./settings\");\r\nexports.Settings = settings_1.default;\r\nfunction walk(directory, optionsOrSettingsOrCallback, callback) {\r\n if (typeof optionsOrSettingsOrCallback === 'function') {\r\n new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\r\n return;\r\n }\r\n new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\r\n}\r\nexports.walk = walk;\r\nfunction walkSync(directory, optionsOrSettings) {\r\n const settings = getSettings(optionsOrSettings);\r\n const provider = new sync_1.default(directory, settings);\r\n return provider.read();\r\n}\r\nexports.walkSync = walkSync;\r\nfunction walkStream(directory, optionsOrSettings) {\r\n const settings = getSettings(optionsOrSettings);\r\n const provider = new stream_1.default(directory, settings);\r\n return provider.read();\r\n}\r\nexports.walkStream = walkStream;\r\nfunction getSettings(settingsOrOptions = {}) {\r\n if (settingsOrOptions instanceof settings_1.default) {\r\n return settingsOrOptions;\r\n }\r\n return new settings_1.default(settingsOrOptions);\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst async_1 = require(\"../readers/async\");\r\nclass AsyncProvider {\r\n constructor(_root, _settings) {\r\n this._root = _root;\r\n this._settings = _settings;\r\n this._reader = new async_1.default(this._root, this._settings);\r\n this._storage = [];\r\n }\r\n read(callback) {\r\n this._reader.onError((error) => {\r\n callFailureCallback(callback, error);\r\n });\r\n this._reader.onEntry((entry) => {\r\n this._storage.push(entry);\r\n });\r\n this._reader.onEnd(() => {\r\n callSuccessCallback(callback, this._storage);\r\n });\r\n this._reader.read();\r\n }\r\n}\r\nexports.default = AsyncProvider;\r\nfunction callFailureCallback(callback, error) {\r\n callback(error);\r\n}\r\nfunction callSuccessCallback(callback, entries) {\r\n callback(null, entries);\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst stream_1 = require(\"stream\");\r\nconst async_1 = require(\"../readers/async\");\r\nclass StreamProvider {\r\n constructor(_root, _settings) {\r\n this._root = _root;\r\n this._settings = _settings;\r\n this._reader = new async_1.default(this._root, this._settings);\r\n this._stream = new stream_1.Readable({\r\n objectMode: true,\r\n read: () => { },\r\n destroy: () => {\r\n if (!this._reader.isDestroyed) {\r\n this._reader.destroy();\r\n }\r\n }\r\n });\r\n }\r\n read() {\r\n this._reader.onError((error) => {\r\n this._stream.emit('error', error);\r\n });\r\n this._reader.onEntry((entry) => {\r\n this._stream.push(entry);\r\n });\r\n this._reader.onEnd(() => {\r\n this._stream.push(null);\r\n });\r\n this._reader.read();\r\n return this._stream;\r\n }\r\n}\r\nexports.default = StreamProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst sync_1 = require(\"../readers/sync\");\r\nclass SyncProvider {\r\n constructor(_root, _settings) {\r\n this._root = _root;\r\n this._settings = _settings;\r\n this._reader = new sync_1.default(this._root, this._settings);\r\n }\r\n read() {\r\n return this._reader.read();\r\n }\r\n}\r\nexports.default = SyncProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst events_1 = require(\"events\");\r\nconst fsScandir = require(\"@nodelib/fs.scandir\");\r\nconst fastq = require(\"fastq\");\r\nconst common = require(\"./common\");\r\nconst reader_1 = require(\"./reader\");\r\nclass AsyncReader extends reader_1.default {\r\n constructor(_root, _settings) {\r\n super(_root, _settings);\r\n this._settings = _settings;\r\n this._scandir = fsScandir.scandir;\r\n this._emitter = new events_1.EventEmitter();\r\n this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\r\n this._isFatalError = false;\r\n this._isDestroyed = false;\r\n this._queue.drain = () => {\r\n if (!this._isFatalError) {\r\n this._emitter.emit('end');\r\n }\r\n };\r\n }\r\n read() {\r\n this._isFatalError = false;\r\n this._isDestroyed = false;\r\n setImmediate(() => {\r\n this._pushToQueue(this._root, this._settings.basePath);\r\n });\r\n return this._emitter;\r\n }\r\n get isDestroyed() {\r\n return this._isDestroyed;\r\n }\r\n destroy() {\r\n if (this._isDestroyed) {\r\n throw new Error('The reader is already destroyed');\r\n }\r\n this._isDestroyed = true;\r\n this._queue.killAndDrain();\r\n }\r\n onEntry(callback) {\r\n this._emitter.on('entry', callback);\r\n }\r\n onError(callback) {\r\n this._emitter.once('error', callback);\r\n }\r\n onEnd(callback) {\r\n this._emitter.once('end', callback);\r\n }\r\n _pushToQueue(directory, base) {\r\n const queueItem = { directory, base };\r\n this._queue.push(queueItem, (error) => {\r\n if (error !== null) {\r\n this._handleError(error);\r\n }\r\n });\r\n }\r\n _worker(item, done) {\r\n this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\r\n if (error !== null) {\r\n done(error, undefined);\r\n return;\r\n }\r\n for (const entry of entries) {\r\n this._handleEntry(entry, item.base);\r\n }\r\n done(null, undefined);\r\n });\r\n }\r\n _handleError(error) {\r\n if (this._isDestroyed || !common.isFatalError(this._settings, error)) {\r\n return;\r\n }\r\n this._isFatalError = true;\r\n this._isDestroyed = true;\r\n this._emitter.emit('error', error);\r\n }\r\n _handleEntry(entry, base) {\r\n if (this._isDestroyed || this._isFatalError) {\r\n return;\r\n }\r\n const fullpath = entry.path;\r\n if (base !== undefined) {\r\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\r\n }\r\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\r\n this._emitEntry(entry);\r\n }\r\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\r\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\r\n }\r\n }\r\n _emitEntry(entry) {\r\n this._emitter.emit('entry', entry);\r\n }\r\n}\r\nexports.default = AsyncReader;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\r\nfunction isFatalError(settings, error) {\r\n if (settings.errorFilter === null) {\r\n return true;\r\n }\r\n return !settings.errorFilter(error);\r\n}\r\nexports.isFatalError = isFatalError;\r\nfunction isAppliedFilter(filter, value) {\r\n return filter === null || filter(value);\r\n}\r\nexports.isAppliedFilter = isAppliedFilter;\r\nfunction replacePathSegmentSeparator(filepath, separator) {\r\n return filepath.split(/[/\\\\]/).join(separator);\r\n}\r\nexports.replacePathSegmentSeparator = replacePathSegmentSeparator;\r\nfunction joinPathSegments(a, b, separator) {\r\n if (a === '') {\r\n return b;\r\n }\r\n /**\r\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\r\n */\r\n if (a.endsWith(separator)) {\r\n return a + b;\r\n }\r\n return a + separator + b;\r\n}\r\nexports.joinPathSegments = joinPathSegments;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst common = require(\"./common\");\r\nclass Reader {\r\n constructor(_root, _settings) {\r\n this._root = _root;\r\n this._settings = _settings;\r\n this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\r\n }\r\n}\r\nexports.default = Reader;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst fsScandir = require(\"@nodelib/fs.scandir\");\r\nconst common = require(\"./common\");\r\nconst reader_1 = require(\"./reader\");\r\nclass SyncReader extends reader_1.default {\r\n constructor() {\r\n super(...arguments);\r\n this._scandir = fsScandir.scandirSync;\r\n this._storage = [];\r\n this._queue = new Set();\r\n }\r\n read() {\r\n this._pushToQueue(this._root, this._settings.basePath);\r\n this._handleQueue();\r\n return this._storage;\r\n }\r\n _pushToQueue(directory, base) {\r\n this._queue.add({ directory, base });\r\n }\r\n _handleQueue() {\r\n for (const item of this._queue.values()) {\r\n this._handleDirectory(item.directory, item.base);\r\n }\r\n }\r\n _handleDirectory(directory, base) {\r\n try {\r\n const entries = this._scandir(directory, this._settings.fsScandirSettings);\r\n for (const entry of entries) {\r\n this._handleEntry(entry, base);\r\n }\r\n }\r\n catch (error) {\r\n this._handleError(error);\r\n }\r\n }\r\n _handleError(error) {\r\n if (!common.isFatalError(this._settings, error)) {\r\n return;\r\n }\r\n throw error;\r\n }\r\n _handleEntry(entry, base) {\r\n const fullpath = entry.path;\r\n if (base !== undefined) {\r\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\r\n }\r\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\r\n this._pushToStorage(entry);\r\n }\r\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\r\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\r\n }\r\n }\r\n _pushToStorage(entry) {\r\n this._storage.push(entry);\r\n }\r\n}\r\nexports.default = SyncReader;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst path = require(\"path\");\r\nconst fsScandir = require(\"@nodelib/fs.scandir\");\r\nclass Settings {\r\n constructor(_options = {}) {\r\n this._options = _options;\r\n this.basePath = this._getValue(this._options.basePath, undefined);\r\n this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\r\n this.deepFilter = this._getValue(this._options.deepFilter, null);\r\n this.entryFilter = this._getValue(this._options.entryFilter, null);\r\n this.errorFilter = this._getValue(this._options.errorFilter, null);\r\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\r\n this.fsScandirSettings = new fsScandir.Settings({\r\n followSymbolicLinks: this._options.followSymbolicLinks,\r\n fs: this._options.fs,\r\n pathSegmentSeparator: this._options.pathSegmentSeparator,\r\n stats: this._options.stats,\r\n throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\r\n });\r\n }\r\n _getValue(option, value) {\r\n return option !== null && option !== void 0 ? option : value;\r\n }\r\n}\r\nexports.default = Settings;\r\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nconst events_1 = require(\"events\");\r\nconst debug_1 = __importDefault(require(\"debug\"));\r\nconst promisify_1 = __importDefault(require(\"./promisify\"));\r\nconst debug = debug_1.default('agent-base');\r\nfunction isAgent(v) {\r\n return Boolean(v) && typeof v.addRequest === 'function';\r\n}\r\nfunction isSecureEndpoint() {\r\n const { stack } = new Error();\r\n if (typeof stack !== 'string')\r\n return false;\r\n return stack.split('\\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1);\r\n}\r\nfunction createAgent(callback, opts) {\r\n return new createAgent.Agent(callback, opts);\r\n}\r\n(function (createAgent) {\r\n /**\r\n * Base `http.Agent` implementation.\r\n * No pooling/keep-alive is implemented by default.\r\n *\r\n * @param {Function} callback\r\n * @api public\r\n */\r\n class Agent extends events_1.EventEmitter {\r\n constructor(callback, _opts) {\r\n super();\r\n let opts = _opts;\r\n if (typeof callback === 'function') {\r\n this.callback = callback;\r\n }\r\n else if (callback) {\r\n opts = callback;\r\n }\r\n // Timeout for the socket to be returned from the callback\r\n this.timeout = null;\r\n if (opts && typeof opts.timeout === 'number') {\r\n this.timeout = opts.timeout;\r\n }\r\n // These aren't actually used by `agent-base`, but are required\r\n // for the TypeScript definition files in `@types/node` :/\r\n this.maxFreeSockets = 1;\r\n this.maxSockets = 1;\r\n this.maxTotalSockets = Infinity;\r\n this.sockets = {};\r\n this.freeSockets = {};\r\n this.requests = {};\r\n this.options = {};\r\n }\r\n get defaultPort() {\r\n if (typeof this.explicitDefaultPort === 'number') {\r\n return this.explicitDefaultPort;\r\n }\r\n return isSecureEndpoint() ? 443 : 80;\r\n }\r\n set defaultPort(v) {\r\n this.explicitDefaultPort = v;\r\n }\r\n get protocol() {\r\n if (typeof this.explicitProtocol === 'string') {\r\n return this.explicitProtocol;\r\n }\r\n return isSecureEndpoint() ? 'https:' : 'http:';\r\n }\r\n set protocol(v) {\r\n this.explicitProtocol = v;\r\n }\r\n callback(req, opts, fn) {\r\n throw new Error('\"agent-base\" has no default implementation, you must subclass and override `callback()`');\r\n }\r\n /**\r\n * Called by node-core's \"_http_client.js\" module when creating\r\n * a new HTTP request with this Agent instance.\r\n *\r\n * @api public\r\n */\r\n addRequest(req, _opts) {\r\n const opts = Object.assign({}, _opts);\r\n if (typeof opts.secureEndpoint !== 'boolean') {\r\n opts.secureEndpoint = isSecureEndpoint();\r\n }\r\n if (opts.host == null) {\r\n opts.host = 'localhost';\r\n }\r\n if (opts.port == null) {\r\n opts.port = opts.secureEndpoint ? 443 : 80;\r\n }\r\n if (opts.protocol == null) {\r\n opts.protocol = opts.secureEndpoint ? 'https:' : 'http:';\r\n }\r\n if (opts.host && opts.path) {\r\n // If both a `host` and `path` are specified then it's most\r\n // likely the result of a `url.parse()` call... we need to\r\n // remove the `path` portion so that `net.connect()` doesn't\r\n // attempt to open that as a unix socket file.\r\n delete opts.path;\r\n }\r\n delete opts.agent;\r\n delete opts.hostname;\r\n delete opts._defaultAgent;\r\n delete opts.defaultPort;\r\n delete opts.createConnection;\r\n // Hint to use \"Connection: close\"\r\n // XXX: non-documented `http` module API :(\r\n req._last = true;\r\n req.shouldKeepAlive = false;\r\n let timedOut = false;\r\n let timeoutId = null;\r\n const timeoutMs = opts.timeout || this.timeout;\r\n const onerror = (err) => {\r\n if (req._hadError)\r\n return;\r\n req.emit('error', err);\r\n // For Safety. Some additional errors might fire later on\r\n // and we need to make sure we don't double-fire the error event.\r\n req._hadError = true;\r\n };\r\n const ontimeout = () => {\r\n timeoutId = null;\r\n timedOut = true;\r\n const err = new Error(`A \"socket\" was not created for HTTP request before ${timeoutMs}ms`);\r\n err.code = 'ETIMEOUT';\r\n onerror(err);\r\n };\r\n const callbackError = (err) => {\r\n if (timedOut)\r\n return;\r\n if (timeoutId !== null) {\r\n clearTimeout(timeoutId);\r\n timeoutId = null;\r\n }\r\n onerror(err);\r\n };\r\n const onsocket = (socket) => {\r\n if (timedOut)\r\n return;\r\n if (timeoutId != null) {\r\n clearTimeout(timeoutId);\r\n timeoutId = null;\r\n }\r\n if (isAgent(socket)) {\r\n // `socket` is actually an `http.Agent` instance, so\r\n // relinquish responsibility for this `req` to the Agent\r\n // from here on\r\n debug('Callback returned another Agent instance %o', socket.constructor.name);\r\n socket.addRequest(req, opts);\r\n return;\r\n }\r\n if (socket) {\r\n socket.once('free', () => {\r\n this.freeSocket(socket, opts);\r\n });\r\n req.onSocket(socket);\r\n return;\r\n }\r\n const err = new Error(`no Duplex stream was returned to agent-base for \\`${req.method} ${req.path}\\``);\r\n onerror(err);\r\n };\r\n if (typeof this.callback !== 'function') {\r\n onerror(new Error('`callback` is not defined'));\r\n return;\r\n }\r\n if (!this.promisifiedCallback) {\r\n if (this.callback.length >= 3) {\r\n debug('Converting legacy callback function to promise');\r\n this.promisifiedCallback = promisify_1.default(this.callback);\r\n }\r\n else {\r\n this.promisifiedCallback = this.callback;\r\n }\r\n }\r\n if (typeof timeoutMs === 'number' && timeoutMs > 0) {\r\n timeoutId = setTimeout(ontimeout, timeoutMs);\r\n }\r\n if ('port' in opts && typeof opts.port !== 'number') {\r\n opts.port = Number(opts.port);\r\n }\r\n try {\r\n debug('Resolving socket for %o request: %o', opts.protocol, `${req.method} ${req.path}`);\r\n Promise.resolve(this.promisifiedCallback(req, opts)).then(onsocket, callbackError);\r\n }\r\n catch (err) {\r\n Promise.reject(err).catch(callbackError);\r\n }\r\n }\r\n freeSocket(socket, opts) {\r\n debug('Freeing socket %o %o', socket.constructor.name, opts);\r\n socket.destroy();\r\n }\r\n destroy() {\r\n debug('Destroying agent %o', this.constructor.name);\r\n }\r\n }\r\n createAgent.Agent = Agent;\r\n // So that `instanceof` works correctly\r\n createAgent.prototype = createAgent.Agent.prototype;\r\n})(createAgent || (createAgent = {}));\r\nmodule.exports = createAgent;\r\n//# sourceMappingURL=index.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction promisify(fn) {\r\n return function (req, opts) {\r\n return new Promise((resolve, reject) => {\r\n fn.call(this, req, opts, (err, rtn) => {\r\n if (err) {\r\n reject(err);\r\n }\r\n else {\r\n resolve(rtn);\r\n }\r\n });\r\n });\r\n };\r\n}\r\nexports.default = promisify;\r\n//# sourceMappingURL=promisify.js.map","'use strict';\r\n\r\nconst stringify = require('./lib/stringify');\r\nconst compile = require('./lib/compile');\r\nconst expand = require('./lib/expand');\r\nconst parse = require('./lib/parse');\r\n\r\n/**\r\n * Expand the given pattern or create a regex-compatible string.\r\n *\r\n * ```js\r\n * const braces = require('braces');\r\n * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']\r\n * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']\r\n * ```\r\n * @param {String} `str`\r\n * @param {Object} `options`\r\n * @return {String}\r\n * @api public\r\n */\r\n\r\nconst braces = (input, options = {}) => {\r\n let output = [];\r\n\r\n if (Array.isArray(input)) {\r\n for (const pattern of input) {\r\n const result = braces.create(pattern, options);\r\n if (Array.isArray(result)) {\r\n output.push(...result);\r\n } else {\r\n output.push(result);\r\n }\r\n }\r\n } else {\r\n output = [].concat(braces.create(input, options));\r\n }\r\n\r\n if (options && options.expand === true && options.nodupes === true) {\r\n output = [...new Set(output)];\r\n }\r\n return output;\r\n};\r\n\r\n/**\r\n * Parse the given `str` with the given `options`.\r\n *\r\n * ```js\r\n * // braces.parse(pattern, [, options]);\r\n * const ast = braces.parse('a/{b,c}/d');\r\n * console.log(ast);\r\n * ```\r\n * @param {String} pattern Brace pattern to parse\r\n * @param {Object} options\r\n * @return {Object} Returns an AST\r\n * @api public\r\n */\r\n\r\nbraces.parse = (input, options = {}) => parse(input, options);\r\n\r\n/**\r\n * Creates a braces string from an AST, or an AST node.\r\n *\r\n * ```js\r\n * const braces = require('braces');\r\n * let ast = braces.parse('foo/{a,b}/bar');\r\n * console.log(stringify(ast.nodes[2])); //=> '{a,b}'\r\n * ```\r\n * @param {String} `input` Brace pattern or AST.\r\n * @param {Object} `options`\r\n * @return {Array} Returns an array of expanded values.\r\n * @api public\r\n */\r\n\r\nbraces.stringify = (input, options = {}) => {\r\n if (typeof input === 'string') {\r\n return stringify(braces.parse(input, options), options);\r\n }\r\n return stringify(input, options);\r\n};\r\n\r\n/**\r\n * Compiles a brace pattern into a regex-compatible, optimized string.\r\n * This method is called by the main [braces](#braces) function by default.\r\n *\r\n * ```js\r\n * const braces = require('braces');\r\n * console.log(braces.compile('a/{b,c}/d'));\r\n * //=> ['a/(b|c)/d']\r\n * ```\r\n * @param {String} `input` Brace pattern or AST.\r\n * @param {Object} `options`\r\n * @return {Array} Returns an array of expanded values.\r\n * @api public\r\n */\r\n\r\nbraces.compile = (input, options = {}) => {\r\n if (typeof input === 'string') {\r\n input = braces.parse(input, options);\r\n }\r\n return compile(input, options);\r\n};\r\n\r\n/**\r\n * Expands a brace pattern into an array. This method is called by the\r\n * main [braces](#braces) function when `options.expand` is true. Before\r\n * using this method it's recommended that you read the [performance notes](#performance))\r\n * and advantages of using [.compile](#compile) instead.\r\n *\r\n * ```js\r\n * const braces = require('braces');\r\n * console.log(braces.expand('a/{b,c}/d'));\r\n * //=> ['a/b/d', 'a/c/d'];\r\n * ```\r\n * @param {String} `pattern` Brace pattern\r\n * @param {Object} `options`\r\n * @return {Array} Returns an array of expanded values.\r\n * @api public\r\n */\r\n\r\nbraces.expand = (input, options = {}) => {\r\n if (typeof input === 'string') {\r\n input = braces.parse(input, options);\r\n }\r\n\r\n let result = expand(input, options);\r\n\r\n // filter out empty strings if specified\r\n if (options.noempty === true) {\r\n result = result.filter(Boolean);\r\n }\r\n\r\n // filter out duplicates if specified\r\n if (options.nodupes === true) {\r\n result = [...new Set(result)];\r\n }\r\n\r\n return result;\r\n};\r\n\r\n/**\r\n * Processes a brace pattern and returns either an expanded array\r\n * (if `options.expand` is true), a highly optimized regex-compatible string.\r\n * This method is called by the main [braces](#braces) function.\r\n *\r\n * ```js\r\n * const braces = require('braces');\r\n * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))\r\n * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'\r\n * ```\r\n * @param {String} `pattern` Brace pattern\r\n * @param {Object} `options`\r\n * @return {Array} Returns an array of expanded values.\r\n * @api public\r\n */\r\n\r\nbraces.create = (input, options = {}) => {\r\n if (input === '' || input.length < 3) {\r\n return [input];\r\n }\r\n\r\n return options.expand !== true\r\n ? braces.compile(input, options)\r\n : braces.expand(input, options);\r\n};\r\n\r\n/**\r\n * Expose \"braces\"\r\n */\r\n\r\nmodule.exports = braces;\r\n","'use strict';\r\n\r\nconst fill = require('fill-range');\r\nconst utils = require('./utils');\r\n\r\nconst compile = (ast, options = {}) => {\r\n const walk = (node, parent = {}) => {\r\n const invalidBlock = utils.isInvalidBrace(parent);\r\n const invalidNode = node.invalid === true && options.escapeInvalid === true;\r\n const invalid = invalidBlock === true || invalidNode === true;\r\n const prefix = options.escapeInvalid === true ? '\\\\' : '';\r\n let output = '';\r\n\r\n if (node.isOpen === true) {\r\n return prefix + node.value;\r\n }\r\n\r\n if (node.isClose === true) {\r\n console.log('node.isClose', prefix, node.value);\r\n return prefix + node.value;\r\n }\r\n\r\n if (node.type === 'open') {\r\n return invalid ? prefix + node.value : '(';\r\n }\r\n\r\n if (node.type === 'close') {\r\n return invalid ? prefix + node.value : ')';\r\n }\r\n\r\n if (node.type === 'comma') {\r\n return node.prev.type === 'comma' ? '' : invalid ? node.value : '|';\r\n }\r\n\r\n if (node.value) {\r\n return node.value;\r\n }\r\n\r\n if (node.nodes && node.ranges > 0) {\r\n const args = utils.reduce(node.nodes);\r\n const range = fill(...args, { ...options, wrap: false, toRegex: true, strictZeros: true });\r\n\r\n if (range.length !== 0) {\r\n return args.length > 1 && range.length > 1 ? `(${range})` : range;\r\n }\r\n }\r\n\r\n if (node.nodes) {\r\n for (const child of node.nodes) {\r\n output += walk(child, node);\r\n }\r\n }\r\n\r\n return output;\r\n };\r\n\r\n return walk(ast);\r\n};\r\n\r\nmodule.exports = compile;\r\n","'use strict';\r\n\r\nmodule.exports = {\r\n MAX_LENGTH: 10000,\r\n\r\n // Digits\r\n CHAR_0: '0', /* 0 */\r\n CHAR_9: '9', /* 9 */\r\n\r\n // Alphabet chars.\r\n CHAR_UPPERCASE_A: 'A', /* A */\r\n CHAR_LOWERCASE_A: 'a', /* a */\r\n CHAR_UPPERCASE_Z: 'Z', /* Z */\r\n CHAR_LOWERCASE_Z: 'z', /* z */\r\n\r\n CHAR_LEFT_PARENTHESES: '(', /* ( */\r\n CHAR_RIGHT_PARENTHESES: ')', /* ) */\r\n\r\n CHAR_ASTERISK: '*', /* * */\r\n\r\n // Non-alphabetic chars.\r\n CHAR_AMPERSAND: '&', /* & */\r\n CHAR_AT: '@', /* @ */\r\n CHAR_BACKSLASH: '\\\\', /* \\ */\r\n CHAR_BACKTICK: '`', /* ` */\r\n CHAR_CARRIAGE_RETURN: '\\r', /* \\r */\r\n CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */\r\n CHAR_COLON: ':', /* : */\r\n CHAR_COMMA: ',', /* , */\r\n CHAR_DOLLAR: '$', /* . */\r\n CHAR_DOT: '.', /* . */\r\n CHAR_DOUBLE_QUOTE: '\"', /* \" */\r\n CHAR_EQUAL: '=', /* = */\r\n CHAR_EXCLAMATION_MARK: '!', /* ! */\r\n CHAR_FORM_FEED: '\\f', /* \\f */\r\n CHAR_FORWARD_SLASH: '/', /* / */\r\n CHAR_HASH: '#', /* # */\r\n CHAR_HYPHEN_MINUS: '-', /* - */\r\n CHAR_LEFT_ANGLE_BRACKET: '<', /* < */\r\n CHAR_LEFT_CURLY_BRACE: '{', /* { */\r\n CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */\r\n CHAR_LINE_FEED: '\\n', /* \\n */\r\n CHAR_NO_BREAK_SPACE: '\\u00A0', /* \\u00A0 */\r\n CHAR_PERCENT: '%', /* % */\r\n CHAR_PLUS: '+', /* + */\r\n CHAR_QUESTION_MARK: '?', /* ? */\r\n CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */\r\n CHAR_RIGHT_CURLY_BRACE: '}', /* } */\r\n CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */\r\n CHAR_SEMICOLON: ';', /* ; */\r\n CHAR_SINGLE_QUOTE: '\\'', /* ' */\r\n CHAR_SPACE: ' ', /* */\r\n CHAR_TAB: '\\t', /* \\t */\r\n CHAR_UNDERSCORE: '_', /* _ */\r\n CHAR_VERTICAL_LINE: '|', /* | */\r\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\\uFEFF' /* \\uFEFF */\r\n};\r\n","'use strict';\r\n\r\nconst fill = require('fill-range');\r\nconst stringify = require('./stringify');\r\nconst utils = require('./utils');\r\n\r\nconst append = (queue = '', stash = '', enclose = false) => {\r\n const result = [];\r\n\r\n queue = [].concat(queue);\r\n stash = [].concat(stash);\r\n\r\n if (!stash.length) return queue;\r\n if (!queue.length) {\r\n return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;\r\n }\r\n\r\n for (const item of queue) {\r\n if (Array.isArray(item)) {\r\n for (const value of item) {\r\n result.push(append(value, stash, enclose));\r\n }\r\n } else {\r\n for (let ele of stash) {\r\n if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;\r\n result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele);\r\n }\r\n }\r\n }\r\n return utils.flatten(result);\r\n};\r\n\r\nconst expand = (ast, options = {}) => {\r\n const rangeLimit = options.rangeLimit === undefined ? 1000 : options.rangeLimit;\r\n\r\n const walk = (node, parent = {}) => {\r\n node.queue = [];\r\n\r\n let p = parent;\r\n let q = parent.queue;\r\n\r\n while (p.type !== 'brace' && p.type !== 'root' && p.parent) {\r\n p = p.parent;\r\n q = p.queue;\r\n }\r\n\r\n if (node.invalid || node.dollar) {\r\n q.push(append(q.pop(), stringify(node, options)));\r\n return;\r\n }\r\n\r\n if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {\r\n q.push(append(q.pop(), ['{}']));\r\n return;\r\n }\r\n\r\n if (node.nodes && node.ranges > 0) {\r\n const args = utils.reduce(node.nodes);\r\n\r\n if (utils.exceedsLimit(...args, options.step, rangeLimit)) {\r\n throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');\r\n }\r\n\r\n let range = fill(...args, options);\r\n if (range.length === 0) {\r\n range = stringify(node, options);\r\n }\r\n\r\n q.push(append(q.pop(), range));\r\n node.nodes = [];\r\n return;\r\n }\r\n\r\n const enclose = utils.encloseBrace(node);\r\n let queue = node.queue;\r\n let block = node;\r\n\r\n while (block.type !== 'brace' && block.type !== 'root' && block.parent) {\r\n block = block.parent;\r\n queue = block.queue;\r\n }\r\n\r\n for (let i = 0; i < node.nodes.length; i++) {\r\n const child = node.nodes[i];\r\n\r\n if (child.type === 'comma' && node.type === 'brace') {\r\n if (i === 1) queue.push('');\r\n queue.push('');\r\n continue;\r\n }\r\n\r\n if (child.type === 'close') {\r\n q.push(append(q.pop(), queue, enclose));\r\n continue;\r\n }\r\n\r\n if (child.value && child.type !== 'open') {\r\n queue.push(append(queue.pop(), child.value));\r\n continue;\r\n }\r\n\r\n if (child.nodes) {\r\n walk(child, node);\r\n }\r\n }\r\n\r\n return queue;\r\n };\r\n\r\n return utils.flatten(walk(ast));\r\n};\r\n\r\nmodule.exports = expand;\r\n","'use strict';\r\n\r\nconst stringify = require('./stringify');\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst {\r\n MAX_LENGTH,\r\n CHAR_BACKSLASH, /* \\ */\r\n CHAR_BACKTICK, /* ` */\r\n CHAR_COMMA, /* , */\r\n CHAR_DOT, /* . */\r\n CHAR_LEFT_PARENTHESES, /* ( */\r\n CHAR_RIGHT_PARENTHESES, /* ) */\r\n CHAR_LEFT_CURLY_BRACE, /* { */\r\n CHAR_RIGHT_CURLY_BRACE, /* } */\r\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\r\n CHAR_RIGHT_SQUARE_BRACKET, /* ] */\r\n CHAR_DOUBLE_QUOTE, /* \" */\r\n CHAR_SINGLE_QUOTE, /* ' */\r\n CHAR_NO_BREAK_SPACE,\r\n CHAR_ZERO_WIDTH_NOBREAK_SPACE\r\n} = require('./constants');\r\n\r\n/**\r\n * parse\r\n */\r\n\r\nconst parse = (input, options = {}) => {\r\n if (typeof input !== 'string') {\r\n throw new TypeError('Expected a string');\r\n }\r\n\r\n const opts = options || {};\r\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\r\n if (input.length > max) {\r\n throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\r\n }\r\n\r\n const ast = { type: 'root', input, nodes: [] };\r\n const stack = [ast];\r\n let block = ast;\r\n let prev = ast;\r\n let brackets = 0;\r\n const length = input.length;\r\n let index = 0;\r\n let depth = 0;\r\n let value;\r\n\r\n /**\r\n * Helpers\r\n */\r\n\r\n const advance = () => input[index++];\r\n const push = node => {\r\n if (node.type === 'text' && prev.type === 'dot') {\r\n prev.type = 'text';\r\n }\r\n\r\n if (prev && prev.type === 'text' && node.type === 'text') {\r\n prev.value += node.value;\r\n return;\r\n }\r\n\r\n block.nodes.push(node);\r\n node.parent = block;\r\n node.prev = prev;\r\n prev = node;\r\n return node;\r\n };\r\n\r\n push({ type: 'bos' });\r\n\r\n while (index < length) {\r\n block = stack[stack.length - 1];\r\n value = advance();\r\n\r\n /**\r\n * Invalid chars\r\n */\r\n\r\n if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\r\n continue;\r\n }\r\n\r\n /**\r\n * Escaped chars\r\n */\r\n\r\n if (value === CHAR_BACKSLASH) {\r\n push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });\r\n continue;\r\n }\r\n\r\n /**\r\n * Right square bracket (literal): ']'\r\n */\r\n\r\n if (value === CHAR_RIGHT_SQUARE_BRACKET) {\r\n push({ type: 'text', value: '\\\\' + value });\r\n continue;\r\n }\r\n\r\n /**\r\n * Left square bracket: '['\r\n */\r\n\r\n if (value === CHAR_LEFT_SQUARE_BRACKET) {\r\n brackets++;\r\n\r\n let next;\r\n\r\n while (index < length && (next = advance())) {\r\n value += next;\r\n\r\n if (next === CHAR_LEFT_SQUARE_BRACKET) {\r\n brackets++;\r\n continue;\r\n }\r\n\r\n if (next === CHAR_BACKSLASH) {\r\n value += advance();\r\n continue;\r\n }\r\n\r\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\r\n brackets--;\r\n\r\n if (brackets === 0) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n\r\n /**\r\n * Parentheses\r\n */\r\n\r\n if (value === CHAR_LEFT_PARENTHESES) {\r\n block = push({ type: 'paren', nodes: [] });\r\n stack.push(block);\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n\r\n if (value === CHAR_RIGHT_PARENTHESES) {\r\n if (block.type !== 'paren') {\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n block = stack.pop();\r\n push({ type: 'text', value });\r\n block = stack[stack.length - 1];\r\n continue;\r\n }\r\n\r\n /**\r\n * Quotes: '|\"|`\r\n */\r\n\r\n if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\r\n const open = value;\r\n let next;\r\n\r\n if (options.keepQuotes !== true) {\r\n value = '';\r\n }\r\n\r\n while (index < length && (next = advance())) {\r\n if (next === CHAR_BACKSLASH) {\r\n value += next + advance();\r\n continue;\r\n }\r\n\r\n if (next === open) {\r\n if (options.keepQuotes === true) value += next;\r\n break;\r\n }\r\n\r\n value += next;\r\n }\r\n\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n\r\n /**\r\n * Left curly brace: '{'\r\n */\r\n\r\n if (value === CHAR_LEFT_CURLY_BRACE) {\r\n depth++;\r\n\r\n const dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\r\n const brace = {\r\n type: 'brace',\r\n open: true,\r\n close: false,\r\n dollar,\r\n depth,\r\n commas: 0,\r\n ranges: 0,\r\n nodes: []\r\n };\r\n\r\n block = push(brace);\r\n stack.push(block);\r\n push({ type: 'open', value });\r\n continue;\r\n }\r\n\r\n /**\r\n * Right curly brace: '}'\r\n */\r\n\r\n if (value === CHAR_RIGHT_CURLY_BRACE) {\r\n if (block.type !== 'brace') {\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n\r\n const type = 'close';\r\n block = stack.pop();\r\n block.close = true;\r\n\r\n push({ type, value });\r\n depth--;\r\n\r\n block = stack[stack.length - 1];\r\n continue;\r\n }\r\n\r\n /**\r\n * Comma: ','\r\n */\r\n\r\n if (value === CHAR_COMMA && depth > 0) {\r\n if (block.ranges > 0) {\r\n block.ranges = 0;\r\n const open = block.nodes.shift();\r\n block.nodes = [open, { type: 'text', value: stringify(block) }];\r\n }\r\n\r\n push({ type: 'comma', value });\r\n block.commas++;\r\n continue;\r\n }\r\n\r\n /**\r\n * Dot: '.'\r\n */\r\n\r\n if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\r\n const siblings = block.nodes;\r\n\r\n if (depth === 0 || siblings.length === 0) {\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n\r\n if (prev.type === 'dot') {\r\n block.range = [];\r\n prev.value += value;\r\n prev.type = 'range';\r\n\r\n if (block.nodes.length !== 3 && block.nodes.length !== 5) {\r\n block.invalid = true;\r\n block.ranges = 0;\r\n prev.type = 'text';\r\n continue;\r\n }\r\n\r\n block.ranges++;\r\n block.args = [];\r\n continue;\r\n }\r\n\r\n if (prev.type === 'range') {\r\n siblings.pop();\r\n\r\n const before = siblings[siblings.length - 1];\r\n before.value += prev.value + value;\r\n prev = before;\r\n block.ranges--;\r\n continue;\r\n }\r\n\r\n push({ type: 'dot', value });\r\n continue;\r\n }\r\n\r\n /**\r\n * Text\r\n */\r\n\r\n push({ type: 'text', value });\r\n }\r\n\r\n // Mark imbalanced braces and brackets as invalid\r\n do {\r\n block = stack.pop();\r\n\r\n if (block.type !== 'root') {\r\n block.nodes.forEach(node => {\r\n if (!node.nodes) {\r\n if (node.type === 'open') node.isOpen = true;\r\n if (node.type === 'close') node.isClose = true;\r\n if (!node.nodes) node.type = 'text';\r\n node.invalid = true;\r\n }\r\n });\r\n\r\n // get the location of the block on parent.nodes (block's siblings)\r\n const parent = stack[stack.length - 1];\r\n const index = parent.nodes.indexOf(block);\r\n // replace the (invalid) block with it's nodes\r\n parent.nodes.splice(index, 1, ...block.nodes);\r\n }\r\n } while (stack.length > 0);\r\n\r\n push({ type: 'eos' });\r\n return ast;\r\n};\r\n\r\nmodule.exports = parse;\r\n","'use strict';\r\n\r\nconst utils = require('./utils');\r\n\r\nmodule.exports = (ast, options = {}) => {\r\n const stringify = (node, parent = {}) => {\r\n const invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);\r\n const invalidNode = node.invalid === true && options.escapeInvalid === true;\r\n let output = '';\r\n\r\n if (node.value) {\r\n if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\r\n return '\\\\' + node.value;\r\n }\r\n return node.value;\r\n }\r\n\r\n if (node.value) {\r\n return node.value;\r\n }\r\n\r\n if (node.nodes) {\r\n for (const child of node.nodes) {\r\n output += stringify(child);\r\n }\r\n }\r\n return output;\r\n };\r\n\r\n return stringify(ast);\r\n};\r\n\r\n","'use strict';\r\n\r\nexports.isInteger = num => {\r\n if (typeof num === 'number') {\r\n return Number.isInteger(num);\r\n }\r\n if (typeof num === 'string' && num.trim() !== '') {\r\n return Number.isInteger(Number(num));\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Find a node of the given type\r\n */\r\n\r\nexports.find = (node, type) => node.nodes.find(node => node.type === type);\r\n\r\n/**\r\n * Find a node of the given type\r\n */\r\n\r\nexports.exceedsLimit = (min, max, step = 1, limit) => {\r\n if (limit === false) return false;\r\n if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\r\n return ((Number(max) - Number(min)) / Number(step)) >= limit;\r\n};\r\n\r\n/**\r\n * Escape the given node with '\\\\' before node.value\r\n */\r\n\r\nexports.escapeNode = (block, n = 0, type) => {\r\n const node = block.nodes[n];\r\n if (!node) return;\r\n\r\n if ((type && node.type === type) || node.type === 'open' || node.type === 'close') {\r\n if (node.escaped !== true) {\r\n node.value = '\\\\' + node.value;\r\n node.escaped = true;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Returns true if the given brace node should be enclosed in literal braces\r\n */\r\n\r\nexports.encloseBrace = node => {\r\n if (node.type !== 'brace') return false;\r\n if ((node.commas >> 0 + node.ranges >> 0) === 0) {\r\n node.invalid = true;\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Returns true if a brace node is invalid.\r\n */\r\n\r\nexports.isInvalidBrace = block => {\r\n if (block.type !== 'brace') return false;\r\n if (block.invalid === true || block.dollar) return true;\r\n if ((block.commas >> 0 + block.ranges >> 0) === 0) {\r\n block.invalid = true;\r\n return true;\r\n }\r\n if (block.open !== true || block.close !== true) {\r\n block.invalid = true;\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Returns true if a node is an open or close node\r\n */\r\n\r\nexports.isOpenOrClose = node => {\r\n if (node.type === 'open' || node.type === 'close') {\r\n return true;\r\n }\r\n return node.open === true || node.close === true;\r\n};\r\n\r\n/**\r\n * Reduce an array of text nodes.\r\n */\r\n\r\nexports.reduce = nodes => nodes.reduce((acc, node) => {\r\n if (node.type === 'text') acc.push(node.value);\r\n if (node.type === 'range') node.type = 'text';\r\n return acc;\r\n}, []);\r\n\r\n/**\r\n * Flatten an array\r\n */\r\n\r\nexports.flatten = (...args) => {\r\n const result = [];\r\n\r\n const flat = arr => {\r\n for (let i = 0; i < arr.length; i++) {\r\n const ele = arr[i];\r\n\r\n if (Array.isArray(ele)) {\r\n flat(ele);\r\n continue;\r\n }\r\n\r\n if (ele !== undefined) {\r\n result.push(ele);\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n flat(args);\r\n return result;\r\n};\r\n","var Buffer = require('buffer').Buffer;\r\n\r\nvar CRC_TABLE = [\r\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419,\r\n 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4,\r\n 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07,\r\n 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,\r\n 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856,\r\n 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\r\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4,\r\n 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\r\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3,\r\n 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a,\r\n 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599,\r\n 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\r\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190,\r\n 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f,\r\n 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e,\r\n 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\r\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed,\r\n 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\r\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,\r\n 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,\r\n 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a,\r\n 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5,\r\n 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010,\r\n 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\r\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17,\r\n 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6,\r\n 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615,\r\n 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,\r\n 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344,\r\n 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\r\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a,\r\n 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\r\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1,\r\n 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c,\r\n 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,\r\n 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\r\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe,\r\n 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31,\r\n 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c,\r\n 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\r\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b,\r\n 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\r\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,\r\n 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,\r\n 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278,\r\n 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7,\r\n 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66,\r\n 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\r\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605,\r\n 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8,\r\n 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,\r\n 0x2d02ef8d\r\n];\r\n\r\nif (typeof Int32Array !== 'undefined') {\r\n CRC_TABLE = new Int32Array(CRC_TABLE);\r\n}\r\n\r\nfunction ensureBuffer(input) {\r\n if (Buffer.isBuffer(input)) {\r\n return input;\r\n }\r\n\r\n var hasNewBufferAPI =\r\n typeof Buffer.alloc === \"function\" &&\r\n typeof Buffer.from === \"function\";\r\n\r\n if (typeof input === \"number\") {\r\n return hasNewBufferAPI ? Buffer.alloc(input) : new Buffer(input);\r\n }\r\n else if (typeof input === \"string\") {\r\n return hasNewBufferAPI ? Buffer.from(input) : new Buffer(input);\r\n }\r\n else {\r\n throw new Error(\"input must be buffer, number, or string, received \" +\r\n typeof input);\r\n }\r\n}\r\n\r\nfunction bufferizeInt(num) {\r\n var tmp = ensureBuffer(4);\r\n tmp.writeInt32BE(num, 0);\r\n return tmp;\r\n}\r\n\r\nfunction _crc32(buf, previous) {\r\n buf = ensureBuffer(buf);\r\n if (Buffer.isBuffer(previous)) {\r\n previous = previous.readUInt32BE(0);\r\n }\r\n var crc = ~~previous ^ -1;\r\n for (var n = 0; n < buf.length; n++) {\r\n crc = CRC_TABLE[(crc ^ buf[n]) & 0xff] ^ (crc >>> 8);\r\n }\r\n return (crc ^ -1);\r\n}\r\n\r\nfunction crc32() {\r\n return bufferizeInt(_crc32.apply(null, arguments));\r\n}\r\ncrc32.signed = function () {\r\n return _crc32.apply(null, arguments);\r\n};\r\ncrc32.unsigned = function () {\r\n return _crc32.apply(null, arguments) >>> 0;\r\n};\r\n\r\nmodule.exports = crc32;\r\n","var copydir = require('./libs/copydir');\r\nvar copydirSync = require('./libs/copydirSync');\r\n\r\ncopydir.sync = copydirSync;\r\n\r\nmodule.exports = copydir;\r\n","var fs = require('fs');\r\nvar path = require('path');\r\n/*\r\n options: {\r\n utimes: false, // Boolean | Object, keep utimes if true\r\n mode: false, // Boolean | Number, keep file mode if true\r\n cover: true, // Boolean, cover if file exists\r\n filter: true, // Boolean | Function, file filter\r\n }\r\n*/\r\nfunction copydir(from, to, options, callback) {\r\n if (typeof options === 'function') {\r\n if(!callback) {\r\n callback = options;\r\n options = {\r\n filter: function() { return true; }\r\n };\r\n } else {\r\n options = {\r\n filter: options\r\n };\r\n }\r\n }\r\n if(typeof callback !== 'function') {\r\n callback = function() {};\r\n }\r\n if(typeof options.cover === 'undefined') {\r\n options.cover = true;\r\n }\r\n options.filter = typeof options.filter === 'function' ? options.filter : function(state, filepath, filename) {\r\n return options.filter;\r\n };\r\n fs.lstat(from, function(err, stats) {\r\n if (err) {\r\n callback(err);\r\n } else {\r\n var statsname = stats.isDirectory() ? 'directory' :\r\n stats.isFile() ? 'file' :\r\n stats.isSymbolicLink() ? 'symbolicLink' :\r\n '';\r\n var valid = options.filter(statsname, from, path.basename(from));\r\n if (statsname === 'directory' || statsname === 'symbolicLink') {\r\n // Directory or SymbolicLink\r\n if(valid) {\r\n fs.stat(to, function(err) {\r\n if(err) {\r\n if(err.code === 'ENOENT') {\r\n fs.mkdir(to, function(err) {\r\n if(err) {\r\n callback(err);\r\n } else {\r\n options.debug && console.log('>> ' + to);\r\n rewrite(to, options, stats, function(err) {\r\n if(err) {\r\n callback(err);\r\n } else {\r\n listDirectory(from, to, options, callback);\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n callback(err);\r\n }\r\n } else {\r\n rewrite(to, options, stats, function(err) {\r\n if(err) {\r\n callback(err);\r\n } else {\r\n listDirectory(from, to, options, callback);\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n callback();\r\n }\r\n } else if(stats.isFile()) {\r\n // File\r\n if(valid) {\r\n if(options.cover) {\r\n writeFile(from, to, options, stats, callback);\r\n } else {\r\n fs.stat(to, function(err) {\r\n if(err) {\r\n if(err.code === 'ENOENT') {\r\n writeFile(from, to, options, stats, callback);\r\n } else {\r\n callback(err);\r\n }\r\n } else {\r\n callback();\r\n }\r\n });\r\n }\r\n } else {\r\n callback();\r\n }\r\n } else {\r\n callback(new Error('stats invalid: '+ from));\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction listDirectory(from, to, options, callback) {\r\n fs.readdir(from, function(err, files) {\r\n if(err) {\r\n callback(err);\r\n } else {\r\n copyFromArray(files, from, to, options, callback);\r\n }\r\n });\r\n}\r\n\r\nfunction copyFromArray(files, from, to, options, callback) {\r\n if(files.length === 0) {\r\n callback(null);\r\n } else {\r\n var f = files.shift();\r\n copydir(path.join(from, f), path.join(to, f), options, function(err) {\r\n if(err) {\r\n callback(err);\r\n } else {\r\n copyFromArray(files, from, to, options, callback);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction chmod(f, mode, callback) {\r\n if(mode) {\r\n fs.chmod(f, mode, callback);\r\n } else {\r\n callback();\r\n }\r\n}\r\n\r\nfunction utimes(f, mode, callback) {\r\n if(mode) {\r\n fs.utimes(f, mode.atime, mode.mtime, callback);\r\n } else {\r\n callback();\r\n }\r\n}\r\n\r\nfunction writeFile(from, to, options, stats, callback) {\r\n fs.readFile(from, 'binary', function(err, data) {\r\n if(err) {\r\n callback(err);\r\n } else {\r\n fs.writeFile(to, data, 'binary', function(err) {\r\n if(err) {\r\n callback(err);\r\n } else {\r\n options.debug && console.log('>> ' + to);\r\n rewrite(to, options, stats, callback);\r\n }\r\n });\r\n }\r\n });\r\n}\r\n\r\nfunction rewrite(f, options, stats, callback) {\r\n if(options.cover) {\r\n chmod(f, options.mode === true ? stats.mode : options.mode, function(err) {\r\n if(err) {\r\n callback(err);\r\n } else {\r\n utimes(f, options.utimes === true ? {\r\n atime: stats.atime,\r\n mtime: stats.mtime\r\n } : options.utimes, callback);\r\n }\r\n });\r\n } else {\r\n callback();\r\n }\r\n}\r\n\r\nmodule.exports = copydir;","var fs = require('fs');\r\nvar path = require('path');\r\n/*\r\n options: {\r\n utimes: false, // Boolean | Object, keep utimes if true\r\n mode: false, // Boolean | Number, keep file mode if true\r\n cover: true, // Boolean, cover if file exists\r\n filter: true, // Boolean | Function, file filter\r\n }\r\n*/\r\nfunction copydirSync(from, to, options) {\r\n if (typeof options === 'function') {\r\n options = {\r\n filter: options\r\n };\r\n }\r\n if(typeof options === 'undefined') options = {};\r\n if(typeof options.cover === 'undefined') {\r\n options.cover = true;\r\n }\r\n options.filter = typeof options.filter === 'function' ? options.filter : function(state, filepath, filename) {\r\n return options.filter;\r\n };\r\n var stats = fs.lstatSync(from);\r\n var statsname = stats.isDirectory() ? 'directory' :\r\n stats.isFile() ? 'file' :\r\n stats.isSymbolicLink() ? 'symbolicLink' :\r\n '';\r\n var valid = options.filter(statsname, from, path.basename(from));\r\n if (statsname === 'directory' || statsname === 'symbolicLink') {\r\n // Directory or SymbolicLink\r\n if(valid) {\r\n try {\r\n fs.statSync(to);\r\n } catch(err) {\r\n if(err.code === 'ENOENT') {\r\n fs.mkdirSync(to);\r\n options.debug && console.log('>> ' + to);\r\n } else {\r\n throw err;\r\n }\r\n }\r\n rewriteSync(to, options, stats);\r\n listDirectorySync(from, to, options);\r\n }\r\n } else if(stats.isFile()) {\r\n // File\r\n if(valid) {\r\n if(options.cover) {\r\n writeFileSync(from, to, options, stats);\r\n } else {\r\n try {\r\n fs.statSync(to);\r\n } catch(err) {\r\n if(err.code === 'ENOENT') {\r\n writeFileSync(from, to, options, stats);\r\n } else {\r\n throw err;\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n throw new Error('stats invalid: '+ from);\r\n }\r\n};\r\n\r\nfunction listDirectorySync(from, to, options) {\r\n var files = fs.readdirSync(from);\r\n copyFromArraySync(files, from, to, options);\r\n}\r\n\r\nfunction copyFromArraySync(files, from, to, options) {\r\n if(files.length === 0) return true;\r\n var f = files.shift();\r\n copydirSync(path.join(from, f), path.join(to, f), options);\r\n copyFromArraySync(files, from, to, options);\r\n}\r\n\r\nfunction writeFileSync(from, to, options, stats) {\r\n fs.writeFileSync(to, fs.readFileSync(from, 'binary'), 'binary');\r\n options.debug && console.log('>> ' + to);\r\n rewriteSync(to, options, stats);\r\n}\r\n\r\nfunction rewriteSync(f, options, stats, callback) {\r\n if(options.cover) {\r\n var mode = options.mode === true ? stats.mode : options.mode;\r\n var utimes = options.utimes === true ? {\r\n atime: stats.atime,\r\n mtime: stats.mtime\r\n } : options.utimes;\r\n mode && fs.chmodSync(f, mode);\r\n utimes && fs.utimesSync(f, utimes.atime, utimes.mtime);\r\n }\r\n return true;\r\n}\r\n\r\nmodule.exports = copydirSync;\r\n","/* eslint-env browser */\r\n\r\n/**\r\n * This is the web browser implementation of `debug()`.\r\n */\r\n\r\nexports.formatArgs = formatArgs;\r\nexports.save = save;\r\nexports.load = load;\r\nexports.useColors = useColors;\r\nexports.storage = localstorage();\r\nexports.destroy = (() => {\r\n\tlet warned = false;\r\n\r\n\treturn () => {\r\n\t\tif (!warned) {\r\n\t\t\twarned = true;\r\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\r\n\t\t}\r\n\t};\r\n})();\r\n\r\n/**\r\n * Colors.\r\n */\r\n\r\nexports.colors = [\r\n\t'#0000CC',\r\n\t'#0000FF',\r\n\t'#0033CC',\r\n\t'#0033FF',\r\n\t'#0066CC',\r\n\t'#0066FF',\r\n\t'#0099CC',\r\n\t'#0099FF',\r\n\t'#00CC00',\r\n\t'#00CC33',\r\n\t'#00CC66',\r\n\t'#00CC99',\r\n\t'#00CCCC',\r\n\t'#00CCFF',\r\n\t'#3300CC',\r\n\t'#3300FF',\r\n\t'#3333CC',\r\n\t'#3333FF',\r\n\t'#3366CC',\r\n\t'#3366FF',\r\n\t'#3399CC',\r\n\t'#3399FF',\r\n\t'#33CC00',\r\n\t'#33CC33',\r\n\t'#33CC66',\r\n\t'#33CC99',\r\n\t'#33CCCC',\r\n\t'#33CCFF',\r\n\t'#6600CC',\r\n\t'#6600FF',\r\n\t'#6633CC',\r\n\t'#6633FF',\r\n\t'#66CC00',\r\n\t'#66CC33',\r\n\t'#9900CC',\r\n\t'#9900FF',\r\n\t'#9933CC',\r\n\t'#9933FF',\r\n\t'#99CC00',\r\n\t'#99CC33',\r\n\t'#CC0000',\r\n\t'#CC0033',\r\n\t'#CC0066',\r\n\t'#CC0099',\r\n\t'#CC00CC',\r\n\t'#CC00FF',\r\n\t'#CC3300',\r\n\t'#CC3333',\r\n\t'#CC3366',\r\n\t'#CC3399',\r\n\t'#CC33CC',\r\n\t'#CC33FF',\r\n\t'#CC6600',\r\n\t'#CC6633',\r\n\t'#CC9900',\r\n\t'#CC9933',\r\n\t'#CCCC00',\r\n\t'#CCCC33',\r\n\t'#FF0000',\r\n\t'#FF0033',\r\n\t'#FF0066',\r\n\t'#FF0099',\r\n\t'#FF00CC',\r\n\t'#FF00FF',\r\n\t'#FF3300',\r\n\t'#FF3333',\r\n\t'#FF3366',\r\n\t'#FF3399',\r\n\t'#FF33CC',\r\n\t'#FF33FF',\r\n\t'#FF6600',\r\n\t'#FF6633',\r\n\t'#FF9900',\r\n\t'#FF9933',\r\n\t'#FFCC00',\r\n\t'#FFCC33'\r\n];\r\n\r\n/**\r\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\r\n * and the Firebug extension (any Firefox version) are known\r\n * to support \"%c\" CSS customizations.\r\n *\r\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\r\n */\r\n\r\n// eslint-disable-next-line complexity\r\nfunction useColors() {\r\n\t// NB: In an Electron preload script, document will be defined but not fully\r\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\r\n\t// explicitly\r\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\t// Internet Explorer and Edge do not support colors.\r\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tlet m;\r\n\r\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\r\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\r\n\t// eslint-disable-next-line no-return-assign\r\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\r\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\r\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\r\n\t\t// Is firefox >= v31?\r\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\r\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\r\n\t\t// Double check webkit in userAgent just in case we are in a worker\r\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\r\n}\r\n\r\n/**\r\n * Colorize log arguments if enabled.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction formatArgs(args) {\r\n\targs[0] = (this.useColors ? '%c' : '') +\r\n\t\tthis.namespace +\r\n\t\t(this.useColors ? ' %c' : ' ') +\r\n\t\targs[0] +\r\n\t\t(this.useColors ? '%c ' : ' ') +\r\n\t\t'+' + module.exports.humanize(this.diff);\r\n\r\n\tif (!this.useColors) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst c = 'color: ' + this.color;\r\n\targs.splice(1, 0, c, 'color: inherit');\r\n\r\n\t// The final \"%c\" is somewhat tricky, because there could be other\r\n\t// arguments passed either before or after the %c, so we need to\r\n\t// figure out the correct index to insert the CSS into\r\n\tlet index = 0;\r\n\tlet lastC = 0;\r\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\r\n\t\tif (match === '%%') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tindex++;\r\n\t\tif (match === '%c') {\r\n\t\t\t// We only are interested in the *last* %c\r\n\t\t\t// (the user may have provided their own)\r\n\t\t\tlastC = index;\r\n\t\t}\r\n\t});\r\n\r\n\targs.splice(lastC, 0, c);\r\n}\r\n\r\n/**\r\n * Invokes `console.debug()` when available.\r\n * No-op when `console.debug` is not a \"function\".\r\n * If `console.debug` is not available, falls back\r\n * to `console.log`.\r\n *\r\n * @api public\r\n */\r\nexports.log = console.debug || console.log || (() => {});\r\n\r\n/**\r\n * Save `namespaces`.\r\n *\r\n * @param {String} namespaces\r\n * @api private\r\n */\r\nfunction save(namespaces) {\r\n\ttry {\r\n\t\tif (namespaces) {\r\n\t\t\texports.storage.setItem('debug', namespaces);\r\n\t\t} else {\r\n\t\t\texports.storage.removeItem('debug');\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t// Swallow\r\n\t\t// XXX (@Qix-) should we be logging these?\r\n\t}\r\n}\r\n\r\n/**\r\n * Load `namespaces`.\r\n *\r\n * @return {String} returns the previously persisted debug modes\r\n * @api private\r\n */\r\nfunction load() {\r\n\tlet r;\r\n\ttry {\r\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\r\n\t} catch (error) {\r\n\t\t// Swallow\r\n\t\t// XXX (@Qix-) should we be logging these?\r\n\t}\r\n\r\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\r\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\r\n\t\tr = process.env.DEBUG;\r\n\t}\r\n\r\n\treturn r;\r\n}\r\n\r\n/**\r\n * Localstorage attempts to return the localstorage.\r\n *\r\n * This is necessary because safari throws\r\n * when a user disables cookies/localstorage\r\n * and you attempt to access it.\r\n *\r\n * @return {LocalStorage}\r\n * @api private\r\n */\r\n\r\nfunction localstorage() {\r\n\ttry {\r\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\r\n\t\t// The Browser also has localStorage in the global context.\r\n\t\treturn localStorage;\r\n\t} catch (error) {\r\n\t\t// Swallow\r\n\t\t// XXX (@Qix-) should we be logging these?\r\n\t}\r\n}\r\n\r\nmodule.exports = require('./common')(exports);\r\n\r\nconst {formatters} = module.exports;\r\n\r\n/**\r\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\r\n */\r\n\r\nformatters.j = function (v) {\r\n\ttry {\r\n\t\treturn JSON.stringify(v);\r\n\t} catch (error) {\r\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\r\n\t}\r\n};\r\n","\r\n/**\r\n * This is the common logic for both the Node.js and web browser\r\n * implementations of `debug()`.\r\n */\r\n\r\nfunction setup(env) {\r\n\tcreateDebug.debug = createDebug;\r\n\tcreateDebug.default = createDebug;\r\n\tcreateDebug.coerce = coerce;\r\n\tcreateDebug.disable = disable;\r\n\tcreateDebug.enable = enable;\r\n\tcreateDebug.enabled = enabled;\r\n\tcreateDebug.humanize = require('ms');\r\n\tcreateDebug.destroy = destroy;\r\n\r\n\tObject.keys(env).forEach(key => {\r\n\t\tcreateDebug[key] = env[key];\r\n\t});\r\n\r\n\t/**\r\n\t* The currently active debug mode names, and names to skip.\r\n\t*/\r\n\r\n\tcreateDebug.names = [];\r\n\tcreateDebug.skips = [];\r\n\r\n\t/**\r\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\r\n\t*\r\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\r\n\t*/\r\n\tcreateDebug.formatters = {};\r\n\r\n\t/**\r\n\t* Selects a color for a debug namespace\r\n\t* @param {String} namespace The namespace string for the debug instance to be colored\r\n\t* @return {Number|String} An ANSI color code for the given namespace\r\n\t* @api private\r\n\t*/\r\n\tfunction selectColor(namespace) {\r\n\t\tlet hash = 0;\r\n\r\n\t\tfor (let i = 0; i < namespace.length; i++) {\r\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\r\n\t\t\thash |= 0; // Convert to 32bit integer\r\n\t\t}\r\n\r\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\r\n\t}\r\n\tcreateDebug.selectColor = selectColor;\r\n\r\n\t/**\r\n\t* Create a debugger with the given `namespace`.\r\n\t*\r\n\t* @param {String} namespace\r\n\t* @return {Function}\r\n\t* @api public\r\n\t*/\r\n\tfunction createDebug(namespace) {\r\n\t\tlet prevTime;\r\n\t\tlet enableOverride = null;\r\n\t\tlet namespacesCache;\r\n\t\tlet enabledCache;\r\n\r\n\t\tfunction debug(...args) {\r\n\t\t\t// Disabled?\r\n\t\t\tif (!debug.enabled) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst self = debug;\r\n\r\n\t\t\t// Set `diff` timestamp\r\n\t\t\tconst curr = Number(new Date());\r\n\t\t\tconst ms = curr - (prevTime || curr);\r\n\t\t\tself.diff = ms;\r\n\t\t\tself.prev = prevTime;\r\n\t\t\tself.curr = curr;\r\n\t\t\tprevTime = curr;\r\n\r\n\t\t\targs[0] = createDebug.coerce(args[0]);\r\n\r\n\t\t\tif (typeof args[0] !== 'string') {\r\n\t\t\t\t// Anything else let's inspect with %O\r\n\t\t\t\targs.unshift('%O');\r\n\t\t\t}\r\n\r\n\t\t\t// Apply any `formatters` transformations\r\n\t\t\tlet index = 0;\r\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\r\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\r\n\t\t\t\tif (match === '%%') {\r\n\t\t\t\t\treturn '%';\r\n\t\t\t\t}\r\n\t\t\t\tindex++;\r\n\t\t\t\tconst formatter = createDebug.formatters[format];\r\n\t\t\t\tif (typeof formatter === 'function') {\r\n\t\t\t\t\tconst val = args[index];\r\n\t\t\t\t\tmatch = formatter.call(self, val);\r\n\r\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\r\n\t\t\t\t\targs.splice(index, 1);\r\n\t\t\t\t\tindex--;\r\n\t\t\t\t}\r\n\t\t\t\treturn match;\r\n\t\t\t});\r\n\r\n\t\t\t// Apply env-specific formatting (colors, etc.)\r\n\t\t\tcreateDebug.formatArgs.call(self, args);\r\n\r\n\t\t\tconst logFn = self.log || createDebug.log;\r\n\t\t\tlogFn.apply(self, args);\r\n\t\t}\r\n\r\n\t\tdebug.namespace = namespace;\r\n\t\tdebug.useColors = createDebug.useColors();\r\n\t\tdebug.color = createDebug.selectColor(namespace);\r\n\t\tdebug.extend = extend;\r\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\r\n\r\n\t\tObject.defineProperty(debug, 'enabled', {\r\n\t\t\tenumerable: true,\r\n\t\t\tconfigurable: false,\r\n\t\t\tget: () => {\r\n\t\t\t\tif (enableOverride !== null) {\r\n\t\t\t\t\treturn enableOverride;\r\n\t\t\t\t}\r\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\r\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\r\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn enabledCache;\r\n\t\t\t},\r\n\t\t\tset: v => {\r\n\t\t\t\tenableOverride = v;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Env-specific initialization logic for debug instances\r\n\t\tif (typeof createDebug.init === 'function') {\r\n\t\t\tcreateDebug.init(debug);\r\n\t\t}\r\n\r\n\t\treturn debug;\r\n\t}\r\n\r\n\tfunction extend(namespace, delimiter) {\r\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\r\n\t\tnewDebug.log = this.log;\r\n\t\treturn newDebug;\r\n\t}\r\n\r\n\t/**\r\n\t* Enables a debug mode by namespaces. This can include modes\r\n\t* separated by a colon and wildcards.\r\n\t*\r\n\t* @param {String} namespaces\r\n\t* @api public\r\n\t*/\r\n\tfunction enable(namespaces) {\r\n\t\tcreateDebug.save(namespaces);\r\n\t\tcreateDebug.namespaces = namespaces;\r\n\r\n\t\tcreateDebug.names = [];\r\n\t\tcreateDebug.skips = [];\r\n\r\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\r\n\t\t\t.trim()\r\n\t\t\t.replace(/\\s+/g, ',')\r\n\t\t\t.split(',')\r\n\t\t\t.filter(Boolean);\r\n\r\n\t\tfor (const ns of split) {\r\n\t\t\tif (ns[0] === '-') {\r\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\r\n\t\t\t} else {\r\n\t\t\t\tcreateDebug.names.push(ns);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the given string matches a namespace template, honoring\r\n\t * asterisks as wildcards.\r\n\t *\r\n\t * @param {String} search\r\n\t * @param {String} template\r\n\t * @return {Boolean}\r\n\t */\r\n\tfunction matchesTemplate(search, template) {\r\n\t\tlet searchIndex = 0;\r\n\t\tlet templateIndex = 0;\r\n\t\tlet starIndex = -1;\r\n\t\tlet matchIndex = 0;\r\n\r\n\t\twhile (searchIndex < search.length) {\r\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\r\n\t\t\t\t// Match character or proceed with wildcard\r\n\t\t\t\tif (template[templateIndex] === '*') {\r\n\t\t\t\t\tstarIndex = templateIndex;\r\n\t\t\t\t\tmatchIndex = searchIndex;\r\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsearchIndex++;\r\n\t\t\t\t\ttemplateIndex++;\r\n\t\t\t\t}\r\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\r\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\r\n\t\t\t\ttemplateIndex = starIndex + 1;\r\n\t\t\t\tmatchIndex++;\r\n\t\t\t\tsearchIndex = matchIndex;\r\n\t\t\t} else {\r\n\t\t\t\treturn false; // No match\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Handle trailing '*' in template\r\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\r\n\t\t\ttemplateIndex++;\r\n\t\t}\r\n\r\n\t\treturn templateIndex === template.length;\r\n\t}\r\n\r\n\t/**\r\n\t* Disable debug output.\r\n\t*\r\n\t* @return {String} namespaces\r\n\t* @api public\r\n\t*/\r\n\tfunction disable() {\r\n\t\tconst namespaces = [\r\n\t\t\t...createDebug.names,\r\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\r\n\t\t].join(',');\r\n\t\tcreateDebug.enable('');\r\n\t\treturn namespaces;\r\n\t}\r\n\r\n\t/**\r\n\t* Returns true if the given mode name is enabled, false otherwise.\r\n\t*\r\n\t* @param {String} name\r\n\t* @return {Boolean}\r\n\t* @api public\r\n\t*/\r\n\tfunction enabled(name) {\r\n\t\tfor (const skip of createDebug.skips) {\r\n\t\t\tif (matchesTemplate(name, skip)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (const ns of createDebug.names) {\r\n\t\t\tif (matchesTemplate(name, ns)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t* Coerce `val`.\r\n\t*\r\n\t* @param {Mixed} val\r\n\t* @return {Mixed}\r\n\t* @api private\r\n\t*/\r\n\tfunction coerce(val) {\r\n\t\tif (val instanceof Error) {\r\n\t\t\treturn val.stack || val.message;\r\n\t\t}\r\n\t\treturn val;\r\n\t}\r\n\r\n\t/**\r\n\t* XXX DO NOT USE. This is a temporary stub function.\r\n\t* XXX It WILL be removed in the next major release.\r\n\t*/\r\n\tfunction destroy() {\r\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\r\n\t}\r\n\r\n\tcreateDebug.enable(createDebug.load());\r\n\r\n\treturn createDebug;\r\n}\r\n\r\nmodule.exports = setup;\r\n","/**\r\n * Detect Electron renderer / nwjs process, which is node, but we should\r\n * treat as a browser.\r\n */\r\n\r\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\r\n\tmodule.exports = require('./browser.js');\r\n} else {\r\n\tmodule.exports = require('./node.js');\r\n}\r\n","/**\r\n * Module dependencies.\r\n */\r\n\r\nconst tty = require('tty');\r\nconst util = require('util');\r\n\r\n/**\r\n * This is the Node.js implementation of `debug()`.\r\n */\r\n\r\nexports.init = init;\r\nexports.log = log;\r\nexports.formatArgs = formatArgs;\r\nexports.save = save;\r\nexports.load = load;\r\nexports.useColors = useColors;\r\nexports.destroy = util.deprecate(\r\n\t() => {},\r\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\r\n);\r\n\r\n/**\r\n * Colors.\r\n */\r\n\r\nexports.colors = [6, 2, 3, 4, 5, 1];\r\n\r\ntry {\r\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\r\n\t// eslint-disable-next-line import/no-extraneous-dependencies\r\n\tconst supportsColor = require('supports-color');\r\n\r\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\r\n\t\texports.colors = [\r\n\t\t\t20,\r\n\t\t\t21,\r\n\t\t\t26,\r\n\t\t\t27,\r\n\t\t\t32,\r\n\t\t\t33,\r\n\t\t\t38,\r\n\t\t\t39,\r\n\t\t\t40,\r\n\t\t\t41,\r\n\t\t\t42,\r\n\t\t\t43,\r\n\t\t\t44,\r\n\t\t\t45,\r\n\t\t\t56,\r\n\t\t\t57,\r\n\t\t\t62,\r\n\t\t\t63,\r\n\t\t\t68,\r\n\t\t\t69,\r\n\t\t\t74,\r\n\t\t\t75,\r\n\t\t\t76,\r\n\t\t\t77,\r\n\t\t\t78,\r\n\t\t\t79,\r\n\t\t\t80,\r\n\t\t\t81,\r\n\t\t\t92,\r\n\t\t\t93,\r\n\t\t\t98,\r\n\t\t\t99,\r\n\t\t\t112,\r\n\t\t\t113,\r\n\t\t\t128,\r\n\t\t\t129,\r\n\t\t\t134,\r\n\t\t\t135,\r\n\t\t\t148,\r\n\t\t\t149,\r\n\t\t\t160,\r\n\t\t\t161,\r\n\t\t\t162,\r\n\t\t\t163,\r\n\t\t\t164,\r\n\t\t\t165,\r\n\t\t\t166,\r\n\t\t\t167,\r\n\t\t\t168,\r\n\t\t\t169,\r\n\t\t\t170,\r\n\t\t\t171,\r\n\t\t\t172,\r\n\t\t\t173,\r\n\t\t\t178,\r\n\t\t\t179,\r\n\t\t\t184,\r\n\t\t\t185,\r\n\t\t\t196,\r\n\t\t\t197,\r\n\t\t\t198,\r\n\t\t\t199,\r\n\t\t\t200,\r\n\t\t\t201,\r\n\t\t\t202,\r\n\t\t\t203,\r\n\t\t\t204,\r\n\t\t\t205,\r\n\t\t\t206,\r\n\t\t\t207,\r\n\t\t\t208,\r\n\t\t\t209,\r\n\t\t\t214,\r\n\t\t\t215,\r\n\t\t\t220,\r\n\t\t\t221\r\n\t\t];\r\n\t}\r\n} catch (error) {\r\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\r\n}\r\n\r\n/**\r\n * Build up the default `inspectOpts` object from the environment variables.\r\n *\r\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\r\n */\r\n\r\nexports.inspectOpts = Object.keys(process.env).filter(key => {\r\n\treturn /^debug_/i.test(key);\r\n}).reduce((obj, key) => {\r\n\t// Camel-case\r\n\tconst prop = key\r\n\t\t.substring(6)\r\n\t\t.toLowerCase()\r\n\t\t.replace(/_([a-z])/g, (_, k) => {\r\n\t\t\treturn k.toUpperCase();\r\n\t\t});\r\n\r\n\t// Coerce string value into JS value\r\n\tlet val = process.env[key];\r\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\r\n\t\tval = true;\r\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\r\n\t\tval = false;\r\n\t} else if (val === 'null') {\r\n\t\tval = null;\r\n\t} else {\r\n\t\tval = Number(val);\r\n\t}\r\n\r\n\tobj[prop] = val;\r\n\treturn obj;\r\n}, {});\r\n\r\n/**\r\n * Is stdout a TTY? Colored output is enabled when `true`.\r\n */\r\n\r\nfunction useColors() {\r\n\treturn 'colors' in exports.inspectOpts ?\r\n\t\tBoolean(exports.inspectOpts.colors) :\r\n\t\ttty.isatty(process.stderr.fd);\r\n}\r\n\r\n/**\r\n * Adds ANSI color escape codes if enabled.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction formatArgs(args) {\r\n\tconst {namespace: name, useColors} = this;\r\n\r\n\tif (useColors) {\r\n\t\tconst c = this.color;\r\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\r\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\r\n\r\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\r\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\r\n\t} else {\r\n\t\targs[0] = getDate() + name + ' ' + args[0];\r\n\t}\r\n}\r\n\r\nfunction getDate() {\r\n\tif (exports.inspectOpts.hideDate) {\r\n\t\treturn '';\r\n\t}\r\n\treturn new Date().toISOString() + ' ';\r\n}\r\n\r\n/**\r\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\r\n */\r\n\r\nfunction log(...args) {\r\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\r\n}\r\n\r\n/**\r\n * Save `namespaces`.\r\n *\r\n * @param {String} namespaces\r\n * @api private\r\n */\r\nfunction save(namespaces) {\r\n\tif (namespaces) {\r\n\t\tprocess.env.DEBUG = namespaces;\r\n\t} else {\r\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\r\n\t\t// string 'null' or 'undefined'. Just delete instead.\r\n\t\tdelete process.env.DEBUG;\r\n\t}\r\n}\r\n\r\n/**\r\n * Load `namespaces`.\r\n *\r\n * @return {String} returns the previously persisted debug modes\r\n * @api private\r\n */\r\n\r\nfunction load() {\r\n\treturn process.env.DEBUG;\r\n}\r\n\r\n/**\r\n * Init logic for `debug` instances.\r\n *\r\n * Create a new `inspectOpts` object in case `useColors` is set\r\n * differently for a particular `debug` instance.\r\n */\r\n\r\nfunction init(debug) {\r\n\tdebug.inspectOpts = {};\r\n\r\n\tconst keys = Object.keys(exports.inspectOpts);\r\n\tfor (let i = 0; i < keys.length; i++) {\r\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\r\n\t}\r\n}\r\n\r\nmodule.exports = require('./common')(exports);\r\n\r\nconst {formatters} = module.exports;\r\n\r\n/**\r\n * Map %o to `util.inspect()`, all on a single line.\r\n */\r\n\r\nformatters.o = function (v) {\r\n\tthis.inspectOpts.colors = this.useColors;\r\n\treturn util.inspect(v, this.inspectOpts)\r\n\t\t.split('\\n')\r\n\t\t.map(str => str.trim())\r\n\t\t.join(' ');\r\n};\r\n\r\n/**\r\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\r\n */\r\n\r\nformatters.O = function (v) {\r\n\tthis.inspectOpts.colors = this.useColors;\r\n\treturn util.inspect(v, this.inspectOpts);\r\n};\r\n","var once = require('once');\r\n\r\nvar noop = function() {};\r\n\r\nvar isRequest = function(stream) {\r\n\treturn stream.setHeader && typeof stream.abort === 'function';\r\n};\r\n\r\nvar isChildProcess = function(stream) {\r\n\treturn stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3\r\n};\r\n\r\nvar eos = function(stream, opts, callback) {\r\n\tif (typeof opts === 'function') return eos(stream, null, opts);\r\n\tif (!opts) opts = {};\r\n\r\n\tcallback = once(callback || noop);\r\n\r\n\tvar ws = stream._writableState;\r\n\tvar rs = stream._readableState;\r\n\tvar readable = opts.readable || (opts.readable !== false && stream.readable);\r\n\tvar writable = opts.writable || (opts.writable !== false && stream.writable);\r\n\tvar cancelled = false;\r\n\r\n\tvar onlegacyfinish = function() {\r\n\t\tif (!stream.writable) onfinish();\r\n\t};\r\n\r\n\tvar onfinish = function() {\r\n\t\twritable = false;\r\n\t\tif (!readable) callback.call(stream);\r\n\t};\r\n\r\n\tvar onend = function() {\r\n\t\treadable = false;\r\n\t\tif (!writable) callback.call(stream);\r\n\t};\r\n\r\n\tvar onexit = function(exitCode) {\r\n\t\tcallback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);\r\n\t};\r\n\r\n\tvar onerror = function(err) {\r\n\t\tcallback.call(stream, err);\r\n\t};\r\n\r\n\tvar onclose = function() {\r\n\t\tprocess.nextTick(onclosenexttick);\r\n\t};\r\n\r\n\tvar onclosenexttick = function() {\r\n\t\tif (cancelled) return;\r\n\t\tif (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close'));\r\n\t\tif (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close'));\r\n\t};\r\n\r\n\tvar onrequest = function() {\r\n\t\tstream.req.on('finish', onfinish);\r\n\t};\r\n\r\n\tif (isRequest(stream)) {\r\n\t\tstream.on('complete', onfinish);\r\n\t\tstream.on('abort', onclose);\r\n\t\tif (stream.req) onrequest();\r\n\t\telse stream.on('request', onrequest);\r\n\t} else if (writable && !ws) { // legacy streams\r\n\t\tstream.on('end', onlegacyfinish);\r\n\t\tstream.on('close', onlegacyfinish);\r\n\t}\r\n\r\n\tif (isChildProcess(stream)) stream.on('exit', onexit);\r\n\r\n\tstream.on('end', onend);\r\n\tstream.on('finish', onfinish);\r\n\tif (opts.error !== false) stream.on('error', onerror);\r\n\tstream.on('close', onclose);\r\n\r\n\treturn function() {\r\n\t\tcancelled = true;\r\n\t\tstream.removeListener('complete', onfinish);\r\n\t\tstream.removeListener('abort', onclose);\r\n\t\tstream.removeListener('request', onrequest);\r\n\t\tif (stream.req) stream.req.removeListener('finish', onfinish);\r\n\t\tstream.removeListener('end', onlegacyfinish);\r\n\t\tstream.removeListener('close', onlegacyfinish);\r\n\t\tstream.removeListener('finish', onfinish);\r\n\t\tstream.removeListener('exit', onexit);\r\n\t\tstream.removeListener('end', onend);\r\n\t\tstream.removeListener('error', onerror);\r\n\t\tstream.removeListener('close', onclose);\r\n\t};\r\n};\r\n\r\nmodule.exports = eos;\r\n","const debug = require('debug')('extract-zip')\r\n// eslint-disable-next-line node/no-unsupported-features/node-builtins\r\nconst { createWriteStream, promises: fs } = require('fs')\r\nconst getStream = require('get-stream')\r\nconst path = require('path')\r\nconst { promisify } = require('util')\r\nconst stream = require('stream')\r\nconst yauzl = require('yauzl')\r\n\r\nconst openZip = promisify(yauzl.open)\r\nconst pipeline = promisify(stream.pipeline)\r\n\r\nclass Extractor {\r\n constructor (zipPath, opts) {\r\n this.zipPath = zipPath\r\n this.opts = opts\r\n }\r\n\r\n async extract () {\r\n debug('opening', this.zipPath, 'with opts', this.opts)\r\n\r\n this.zipfile = await openZip(this.zipPath, { lazyEntries: true })\r\n this.canceled = false\r\n\r\n return new Promise((resolve, reject) => {\r\n this.zipfile.on('error', err => {\r\n this.canceled = true\r\n reject(err)\r\n })\r\n this.zipfile.readEntry()\r\n\r\n this.zipfile.on('close', () => {\r\n if (!this.canceled) {\r\n debug('zip extraction complete')\r\n resolve()\r\n }\r\n })\r\n\r\n this.zipfile.on('entry', async entry => {\r\n /* istanbul ignore if */\r\n if (this.canceled) {\r\n debug('skipping entry', entry.fileName, { cancelled: this.canceled })\r\n return\r\n }\r\n\r\n debug('zipfile entry', entry.fileName)\r\n\r\n if (entry.fileName.startsWith('__MACOSX/')) {\r\n this.zipfile.readEntry()\r\n return\r\n }\r\n\r\n const destDir = path.dirname(path.join(this.opts.dir, entry.fileName))\r\n\r\n try {\r\n await fs.mkdir(destDir, { recursive: true })\r\n\r\n const canonicalDestDir = await fs.realpath(destDir)\r\n const relativeDestDir = path.relative(this.opts.dir, canonicalDestDir)\r\n\r\n if (relativeDestDir.split(path.sep).includes('..')) {\r\n throw new Error(`Out of bound path \"${canonicalDestDir}\" found while processing file ${entry.fileName}`)\r\n }\r\n\r\n await this.extractEntry(entry)\r\n debug('finished processing', entry.fileName)\r\n this.zipfile.readEntry()\r\n } catch (err) {\r\n this.canceled = true\r\n this.zipfile.close()\r\n reject(err)\r\n }\r\n })\r\n })\r\n }\r\n\r\n async extractEntry (entry) {\r\n /* istanbul ignore if */\r\n if (this.canceled) {\r\n debug('skipping entry extraction', entry.fileName, { cancelled: this.canceled })\r\n return\r\n }\r\n\r\n if (this.opts.onEntry) {\r\n this.opts.onEntry(entry, this.zipfile)\r\n }\r\n\r\n const dest = path.join(this.opts.dir, entry.fileName)\r\n\r\n // convert external file attr int into a fs stat mode int\r\n const mode = (entry.externalFileAttributes >> 16) & 0xFFFF\r\n // check if it's a symlink or dir (using stat mode constants)\r\n const IFMT = 61440\r\n const IFDIR = 16384\r\n const IFLNK = 40960\r\n const symlink = (mode & IFMT) === IFLNK\r\n let isDir = (mode & IFMT) === IFDIR\r\n\r\n // Failsafe, borrowed from jsZip\r\n if (!isDir && entry.fileName.endsWith('/')) {\r\n isDir = true\r\n }\r\n\r\n // check for windows weird way of specifying a directory\r\n // https://github.com/maxogden/extract-zip/issues/13#issuecomment-154494566\r\n const madeBy = entry.versionMadeBy >> 8\r\n if (!isDir) isDir = (madeBy === 0 && entry.externalFileAttributes === 16)\r\n\r\n debug('extracting entry', { filename: entry.fileName, isDir: isDir, isSymlink: symlink })\r\n\r\n const procMode = this.getExtractedMode(mode, isDir) & 0o777\r\n\r\n // always ensure folders are created\r\n const destDir = isDir ? dest : path.dirname(dest)\r\n\r\n const mkdirOptions = { recursive: true }\r\n if (isDir) {\r\n mkdirOptions.mode = procMode\r\n }\r\n debug('mkdir', { dir: destDir, ...mkdirOptions })\r\n await fs.mkdir(destDir, mkdirOptions)\r\n if (isDir) return\r\n\r\n debug('opening read stream', dest)\r\n const readStream = await promisify(this.zipfile.openReadStream.bind(this.zipfile))(entry)\r\n\r\n if (symlink) {\r\n const link = await getStream(readStream)\r\n debug('creating symlink', link, dest)\r\n await fs.symlink(link, dest)\r\n } else {\r\n await pipeline(readStream, createWriteStream(dest, { mode: procMode }))\r\n }\r\n }\r\n\r\n getExtractedMode (entryMode, isDir) {\r\n let mode = entryMode\r\n // Set defaults, if necessary\r\n if (mode === 0) {\r\n if (isDir) {\r\n if (this.opts.defaultDirMode) {\r\n mode = parseInt(this.opts.defaultDirMode, 10)\r\n }\r\n\r\n if (!mode) {\r\n mode = 0o755\r\n }\r\n } else {\r\n if (this.opts.defaultFileMode) {\r\n mode = parseInt(this.opts.defaultFileMode, 10)\r\n }\r\n\r\n if (!mode) {\r\n mode = 0o644\r\n }\r\n }\r\n }\r\n\r\n return mode\r\n }\r\n}\r\n\r\nmodule.exports = async function (zipPath, opts) {\r\n debug('creating target directory', opts.dir)\r\n\r\n if (!path.isAbsolute(opts.dir)) {\r\n throw new Error('Target directory is expected to be absolute')\r\n }\r\n\r\n await fs.mkdir(opts.dir, { recursive: true })\r\n opts.dir = await fs.realpath(opts.dir)\r\n return new Extractor(zipPath, opts).extract()\r\n}\r\n","'use strict';\r\n\r\nvar isGlob = require('is-glob');\r\nvar pathPosixDirname = require('path').posix.dirname;\r\nvar isWin32 = require('os').platform() === 'win32';\r\n\r\nvar slash = '/';\r\nvar backslash = /\\\\/g;\r\nvar enclosure = /[\\{\\[].*[\\}\\]]$/;\r\nvar globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\r\nvar escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\r\n\r\n/**\r\n * @param {string} str\r\n * @param {Object} opts\r\n * @param {boolean} [opts.flipBackslashes=true]\r\n * @returns {string}\r\n */\r\nmodule.exports = function globParent(str, opts) {\r\n var options = Object.assign({ flipBackslashes: true }, opts);\r\n\r\n // flip windows path separators\r\n if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {\r\n str = str.replace(backslash, slash);\r\n }\r\n\r\n // special case for strings ending in enclosure containing path separator\r\n if (enclosure.test(str)) {\r\n str += slash;\r\n }\r\n\r\n // preserves full path in case of trailing path separator\r\n str += 'a';\r\n\r\n // remove path parts that are globby\r\n do {\r\n str = pathPosixDirname(str);\r\n } while (isGlob(str) || globby.test(str));\r\n\r\n // remove escape chars and return result\r\n return str.replace(escaped, '$1');\r\n};\r\n","\"use strict\";\r\nconst taskManager = require(\"./managers/tasks\");\r\nconst async_1 = require(\"./providers/async\");\r\nconst stream_1 = require(\"./providers/stream\");\r\nconst sync_1 = require(\"./providers/sync\");\r\nconst settings_1 = require(\"./settings\");\r\nconst utils = require(\"./utils\");\r\nasync function FastGlob(source, options) {\r\n assertPatternsInput(source);\r\n const works = getWorks(source, async_1.default, options);\r\n const result = await Promise.all(works);\r\n return utils.array.flatten(result);\r\n}\r\n// https://github.com/typescript-eslint/typescript-eslint/issues/60\r\n// eslint-disable-next-line no-redeclare\r\n(function (FastGlob) {\r\n FastGlob.glob = FastGlob;\r\n FastGlob.globSync = sync;\r\n FastGlob.globStream = stream;\r\n FastGlob.async = FastGlob;\r\n function sync(source, options) {\r\n assertPatternsInput(source);\r\n const works = getWorks(source, sync_1.default, options);\r\n return utils.array.flatten(works);\r\n }\r\n FastGlob.sync = sync;\r\n function stream(source, options) {\r\n assertPatternsInput(source);\r\n const works = getWorks(source, stream_1.default, options);\r\n /**\r\n * The stream returned by the provider cannot work with an asynchronous iterator.\r\n * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.\r\n * This affects performance (+25%). I don't see best solution right now.\r\n */\r\n return utils.stream.merge(works);\r\n }\r\n FastGlob.stream = stream;\r\n function generateTasks(source, options) {\r\n assertPatternsInput(source);\r\n const patterns = [].concat(source);\r\n const settings = new settings_1.default(options);\r\n return taskManager.generate(patterns, settings);\r\n }\r\n FastGlob.generateTasks = generateTasks;\r\n function isDynamicPattern(source, options) {\r\n assertPatternsInput(source);\r\n const settings = new settings_1.default(options);\r\n return utils.pattern.isDynamicPattern(source, settings);\r\n }\r\n FastGlob.isDynamicPattern = isDynamicPattern;\r\n function escapePath(source) {\r\n assertPatternsInput(source);\r\n return utils.path.escape(source);\r\n }\r\n FastGlob.escapePath = escapePath;\r\n function convertPathToPattern(source) {\r\n assertPatternsInput(source);\r\n return utils.path.convertPathToPattern(source);\r\n }\r\n FastGlob.convertPathToPattern = convertPathToPattern;\r\n let posix;\r\n (function (posix) {\r\n function escapePath(source) {\r\n assertPatternsInput(source);\r\n return utils.path.escapePosixPath(source);\r\n }\r\n posix.escapePath = escapePath;\r\n function convertPathToPattern(source) {\r\n assertPatternsInput(source);\r\n return utils.path.convertPosixPathToPattern(source);\r\n }\r\n posix.convertPathToPattern = convertPathToPattern;\r\n })(posix = FastGlob.posix || (FastGlob.posix = {}));\r\n let win32;\r\n (function (win32) {\r\n function escapePath(source) {\r\n assertPatternsInput(source);\r\n return utils.path.escapeWindowsPath(source);\r\n }\r\n win32.escapePath = escapePath;\r\n function convertPathToPattern(source) {\r\n assertPatternsInput(source);\r\n return utils.path.convertWindowsPathToPattern(source);\r\n }\r\n win32.convertPathToPattern = convertPathToPattern;\r\n })(win32 = FastGlob.win32 || (FastGlob.win32 = {}));\r\n})(FastGlob || (FastGlob = {}));\r\nfunction getWorks(source, _Provider, options) {\r\n const patterns = [].concat(source);\r\n const settings = new settings_1.default(options);\r\n const tasks = taskManager.generate(patterns, settings);\r\n const provider = new _Provider(settings);\r\n return tasks.map(provider.read, provider);\r\n}\r\nfunction assertPatternsInput(input) {\r\n const source = [].concat(input);\r\n const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\r\n if (!isValidSource) {\r\n throw new TypeError('Patterns must be a string (non empty) or an array of strings');\r\n }\r\n}\r\nmodule.exports = FastGlob;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\r\nconst utils = require(\"../utils\");\r\nfunction generate(input, settings) {\r\n const patterns = processPatterns(input, settings);\r\n const ignore = processPatterns(settings.ignore, settings);\r\n const positivePatterns = getPositivePatterns(patterns);\r\n const negativePatterns = getNegativePatternsAsPositive(patterns, ignore);\r\n const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\r\n const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\r\n const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);\r\n const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);\r\n return staticTasks.concat(dynamicTasks);\r\n}\r\nexports.generate = generate;\r\nfunction processPatterns(input, settings) {\r\n let patterns = input;\r\n /**\r\n * The original pattern like `{,*,**,a/*}` can lead to problems checking the depth when matching entry\r\n * and some problems with the micromatch package (see fast-glob issues: #365, #394).\r\n *\r\n * To solve this problem, we expand all patterns containing brace expansion. This can lead to a slight slowdown\r\n * in matching in the case of a large set of patterns after expansion.\r\n */\r\n if (settings.braceExpansion) {\r\n patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns);\r\n }\r\n /**\r\n * If the `baseNameMatch` option is enabled, we must add globstar to patterns, so that they can be used\r\n * at any nesting level.\r\n *\r\n * We do this here, because otherwise we have to complicate the filtering logic. For example, we need to change\r\n * the pattern in the filter before creating a regular expression. There is no need to change the patterns\r\n * in the application. Only on the input.\r\n */\r\n if (settings.baseNameMatch) {\r\n patterns = patterns.map((pattern) => pattern.includes('/') ? pattern : `**/${pattern}`);\r\n }\r\n /**\r\n * This method also removes duplicate slashes that may have been in the pattern or formed as a result of expansion.\r\n */\r\n return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern));\r\n}\r\n/**\r\n * Returns tasks grouped by basic pattern directories.\r\n *\r\n * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.\r\n * This is necessary because directory traversal starts at the base directory and goes deeper.\r\n */\r\nfunction convertPatternsToTasks(positive, negative, dynamic) {\r\n const tasks = [];\r\n const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\r\n const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\r\n const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\r\n const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\r\n tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\r\n /*\r\n * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory\r\n * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.\r\n */\r\n if ('.' in insideCurrentDirectoryGroup) {\r\n tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));\r\n }\r\n else {\r\n tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\r\n }\r\n return tasks;\r\n}\r\nexports.convertPatternsToTasks = convertPatternsToTasks;\r\nfunction getPositivePatterns(patterns) {\r\n return utils.pattern.getPositivePatterns(patterns);\r\n}\r\nexports.getPositivePatterns = getPositivePatterns;\r\nfunction getNegativePatternsAsPositive(patterns, ignore) {\r\n const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\r\n const positive = negative.map(utils.pattern.convertToPositivePattern);\r\n return positive;\r\n}\r\nexports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\r\nfunction groupPatternsByBaseDirectory(patterns) {\r\n const group = {};\r\n return patterns.reduce((collection, pattern) => {\r\n const base = utils.pattern.getBaseDirectory(pattern);\r\n if (base in collection) {\r\n collection[base].push(pattern);\r\n }\r\n else {\r\n collection[base] = [pattern];\r\n }\r\n return collection;\r\n }, group);\r\n}\r\nexports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\r\nfunction convertPatternGroupsToTasks(positive, negative, dynamic) {\r\n return Object.keys(positive).map((base) => {\r\n return convertPatternGroupToTask(base, positive[base], negative, dynamic);\r\n });\r\n}\r\nexports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\r\nfunction convertPatternGroupToTask(base, positive, negative, dynamic) {\r\n return {\r\n dynamic,\r\n positive,\r\n negative,\r\n base,\r\n patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\r\n };\r\n}\r\nexports.convertPatternGroupToTask = convertPatternGroupToTask;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst async_1 = require(\"../readers/async\");\r\nconst provider_1 = require(\"./provider\");\r\nclass ProviderAsync extends provider_1.default {\r\n constructor() {\r\n super(...arguments);\r\n this._reader = new async_1.default(this._settings);\r\n }\r\n async read(task) {\r\n const root = this._getRootDirectory(task);\r\n const options = this._getReaderOptions(task);\r\n const entries = await this.api(root, task, options);\r\n return entries.map((entry) => options.transform(entry));\r\n }\r\n api(root, task, options) {\r\n if (task.dynamic) {\r\n return this._reader.dynamic(root, options);\r\n }\r\n return this._reader.static(task.patterns, options);\r\n }\r\n}\r\nexports.default = ProviderAsync;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst utils = require(\"../../utils\");\r\nconst partial_1 = require(\"../matchers/partial\");\r\nclass DeepFilter {\r\n constructor(_settings, _micromatchOptions) {\r\n this._settings = _settings;\r\n this._micromatchOptions = _micromatchOptions;\r\n }\r\n getFilter(basePath, positive, negative) {\r\n const matcher = this._getMatcher(positive);\r\n const negativeRe = this._getNegativePatternsRe(negative);\r\n return (entry) => this._filter(basePath, entry, matcher, negativeRe);\r\n }\r\n _getMatcher(patterns) {\r\n return new partial_1.default(patterns, this._settings, this._micromatchOptions);\r\n }\r\n _getNegativePatternsRe(patterns) {\r\n const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\r\n return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\r\n }\r\n _filter(basePath, entry, matcher, negativeRe) {\r\n if (this._isSkippedByDeep(basePath, entry.path)) {\r\n return false;\r\n }\r\n if (this._isSkippedSymbolicLink(entry)) {\r\n return false;\r\n }\r\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\r\n if (this._isSkippedByPositivePatterns(filepath, matcher)) {\r\n return false;\r\n }\r\n return this._isSkippedByNegativePatterns(filepath, negativeRe);\r\n }\r\n _isSkippedByDeep(basePath, entryPath) {\r\n /**\r\n * Avoid unnecessary depth calculations when it doesn't matter.\r\n */\r\n if (this._settings.deep === Infinity) {\r\n return false;\r\n }\r\n return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\r\n }\r\n _getEntryLevel(basePath, entryPath) {\r\n const entryPathDepth = entryPath.split('/').length;\r\n if (basePath === '') {\r\n return entryPathDepth;\r\n }\r\n const basePathDepth = basePath.split('/').length;\r\n return entryPathDepth - basePathDepth;\r\n }\r\n _isSkippedSymbolicLink(entry) {\r\n return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\r\n }\r\n _isSkippedByPositivePatterns(entryPath, matcher) {\r\n return !this._settings.baseNameMatch && !matcher.match(entryPath);\r\n }\r\n _isSkippedByNegativePatterns(entryPath, patternsRe) {\r\n return !utils.pattern.matchAny(entryPath, patternsRe);\r\n }\r\n}\r\nexports.default = DeepFilter;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst utils = require(\"../../utils\");\r\nclass EntryFilter {\r\n constructor(_settings, _micromatchOptions) {\r\n this._settings = _settings;\r\n this._micromatchOptions = _micromatchOptions;\r\n this.index = new Map();\r\n }\r\n getFilter(positive, negative) {\r\n const [absoluteNegative, relativeNegative] = utils.pattern.partitionAbsoluteAndRelative(negative);\r\n const patterns = {\r\n positive: {\r\n all: utils.pattern.convertPatternsToRe(positive, this._micromatchOptions)\r\n },\r\n negative: {\r\n absolute: utils.pattern.convertPatternsToRe(absoluteNegative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true })),\r\n relative: utils.pattern.convertPatternsToRe(relativeNegative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true }))\r\n }\r\n };\r\n return (entry) => this._filter(entry, patterns);\r\n }\r\n _filter(entry, patterns) {\r\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\r\n if (this._settings.unique && this._isDuplicateEntry(filepath)) {\r\n return false;\r\n }\r\n if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\r\n return false;\r\n }\r\n const isMatched = this._isMatchToPatternsSet(filepath, patterns, entry.dirent.isDirectory());\r\n if (this._settings.unique && isMatched) {\r\n this._createIndexRecord(filepath);\r\n }\r\n return isMatched;\r\n }\r\n _isDuplicateEntry(filepath) {\r\n return this.index.has(filepath);\r\n }\r\n _createIndexRecord(filepath) {\r\n this.index.set(filepath, undefined);\r\n }\r\n _onlyFileFilter(entry) {\r\n return this._settings.onlyFiles && !entry.dirent.isFile();\r\n }\r\n _onlyDirectoryFilter(entry) {\r\n return this._settings.onlyDirectories && !entry.dirent.isDirectory();\r\n }\r\n _isMatchToPatternsSet(filepath, patterns, isDirectory) {\r\n const isMatched = this._isMatchToPatterns(filepath, patterns.positive.all, isDirectory);\r\n if (!isMatched) {\r\n return false;\r\n }\r\n const isMatchedByRelativeNegative = this._isMatchToPatterns(filepath, patterns.negative.relative, isDirectory);\r\n if (isMatchedByRelativeNegative) {\r\n return false;\r\n }\r\n const isMatchedByAbsoluteNegative = this._isMatchToAbsoluteNegative(filepath, patterns.negative.absolute, isDirectory);\r\n if (isMatchedByAbsoluteNegative) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n _isMatchToAbsoluteNegative(filepath, patternsRe, isDirectory) {\r\n if (patternsRe.length === 0) {\r\n return false;\r\n }\r\n const fullpath = utils.path.makeAbsolute(this._settings.cwd, filepath);\r\n return this._isMatchToPatterns(fullpath, patternsRe, isDirectory);\r\n }\r\n _isMatchToPatterns(filepath, patternsRe, isDirectory) {\r\n if (patternsRe.length === 0) {\r\n return false;\r\n }\r\n // Trying to match files and directories by patterns.\r\n const isMatched = utils.pattern.matchAny(filepath, patternsRe);\r\n // A pattern with a trailling slash can be used for directory matching.\r\n // To apply such pattern, we need to add a tralling slash to the path.\r\n if (!isMatched && isDirectory) {\r\n return utils.pattern.matchAny(filepath + '/', patternsRe);\r\n }\r\n return isMatched;\r\n }\r\n}\r\nexports.default = EntryFilter;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst utils = require(\"../../utils\");\r\nclass ErrorFilter {\r\n constructor(_settings) {\r\n this._settings = _settings;\r\n }\r\n getFilter() {\r\n return (error) => this._isNonFatalError(error);\r\n }\r\n _isNonFatalError(error) {\r\n return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\r\n }\r\n}\r\nexports.default = ErrorFilter;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst utils = require(\"../../utils\");\r\nclass Matcher {\r\n constructor(_patterns, _settings, _micromatchOptions) {\r\n this._patterns = _patterns;\r\n this._settings = _settings;\r\n this._micromatchOptions = _micromatchOptions;\r\n this._storage = [];\r\n this._fillStorage();\r\n }\r\n _fillStorage() {\r\n for (const pattern of this._patterns) {\r\n const segments = this._getPatternSegments(pattern);\r\n const sections = this._splitSegmentsIntoSections(segments);\r\n this._storage.push({\r\n complete: sections.length <= 1,\r\n pattern,\r\n segments,\r\n sections\r\n });\r\n }\r\n }\r\n _getPatternSegments(pattern) {\r\n const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\r\n return parts.map((part) => {\r\n const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\r\n if (!dynamic) {\r\n return {\r\n dynamic: false,\r\n pattern: part\r\n };\r\n }\r\n return {\r\n dynamic: true,\r\n pattern: part,\r\n patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\r\n };\r\n });\r\n }\r\n _splitSegmentsIntoSections(segments) {\r\n return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\r\n }\r\n}\r\nexports.default = Matcher;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst matcher_1 = require(\"./matcher\");\r\nclass PartialMatcher extends matcher_1.default {\r\n match(filepath) {\r\n const parts = filepath.split('/');\r\n const levels = parts.length;\r\n const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\r\n for (const pattern of patterns) {\r\n const section = pattern.sections[0];\r\n /**\r\n * In this case, the pattern has a globstar and we must read all directories unconditionally,\r\n * but only if the level has reached the end of the first group.\r\n *\r\n * fixtures/{a,b}/**\r\n * ^ true/false ^ always true\r\n */\r\n if (!pattern.complete && levels > section.length) {\r\n return true;\r\n }\r\n const match = parts.every((part, index) => {\r\n const segment = pattern.segments[index];\r\n if (segment.dynamic && segment.patternRe.test(part)) {\r\n return true;\r\n }\r\n if (!segment.dynamic && segment.pattern === part) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (match) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\nexports.default = PartialMatcher;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst path = require(\"path\");\r\nconst deep_1 = require(\"./filters/deep\");\r\nconst entry_1 = require(\"./filters/entry\");\r\nconst error_1 = require(\"./filters/error\");\r\nconst entry_2 = require(\"./transformers/entry\");\r\nclass Provider {\r\n constructor(_settings) {\r\n this._settings = _settings;\r\n this.errorFilter = new error_1.default(this._settings);\r\n this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\r\n this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\r\n this.entryTransformer = new entry_2.default(this._settings);\r\n }\r\n _getRootDirectory(task) {\r\n return path.resolve(this._settings.cwd, task.base);\r\n }\r\n _getReaderOptions(task) {\r\n const basePath = task.base === '.' ? '' : task.base;\r\n return {\r\n basePath,\r\n pathSegmentSeparator: '/',\r\n concurrency: this._settings.concurrency,\r\n deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\r\n entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\r\n errorFilter: this.errorFilter.getFilter(),\r\n followSymbolicLinks: this._settings.followSymbolicLinks,\r\n fs: this._settings.fs,\r\n stats: this._settings.stats,\r\n throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\r\n transform: this.entryTransformer.getTransformer()\r\n };\r\n }\r\n _getMicromatchOptions() {\r\n return {\r\n dot: this._settings.dot,\r\n matchBase: this._settings.baseNameMatch,\r\n nobrace: !this._settings.braceExpansion,\r\n nocase: !this._settings.caseSensitiveMatch,\r\n noext: !this._settings.extglob,\r\n noglobstar: !this._settings.globstar,\r\n posix: true,\r\n strictSlashes: false\r\n };\r\n }\r\n}\r\nexports.default = Provider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst stream_1 = require(\"stream\");\r\nconst stream_2 = require(\"../readers/stream\");\r\nconst provider_1 = require(\"./provider\");\r\nclass ProviderStream extends provider_1.default {\r\n constructor() {\r\n super(...arguments);\r\n this._reader = new stream_2.default(this._settings);\r\n }\r\n read(task) {\r\n const root = this._getRootDirectory(task);\r\n const options = this._getReaderOptions(task);\r\n const source = this.api(root, task, options);\r\n const destination = new stream_1.Readable({ objectMode: true, read: () => { } });\r\n source\r\n .once('error', (error) => destination.emit('error', error))\r\n .on('data', (entry) => destination.emit('data', options.transform(entry)))\r\n .once('end', () => destination.emit('end'));\r\n destination\r\n .once('close', () => source.destroy());\r\n return destination;\r\n }\r\n api(root, task, options) {\r\n if (task.dynamic) {\r\n return this._reader.dynamic(root, options);\r\n }\r\n return this._reader.static(task.patterns, options);\r\n }\r\n}\r\nexports.default = ProviderStream;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst sync_1 = require(\"../readers/sync\");\r\nconst provider_1 = require(\"./provider\");\r\nclass ProviderSync extends provider_1.default {\r\n constructor() {\r\n super(...arguments);\r\n this._reader = new sync_1.default(this._settings);\r\n }\r\n read(task) {\r\n const root = this._getRootDirectory(task);\r\n const options = this._getReaderOptions(task);\r\n const entries = this.api(root, task, options);\r\n return entries.map(options.transform);\r\n }\r\n api(root, task, options) {\r\n if (task.dynamic) {\r\n return this._reader.dynamic(root, options);\r\n }\r\n return this._reader.static(task.patterns, options);\r\n }\r\n}\r\nexports.default = ProviderSync;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst utils = require(\"../../utils\");\r\nclass EntryTransformer {\r\n constructor(_settings) {\r\n this._settings = _settings;\r\n }\r\n getTransformer() {\r\n return (entry) => this._transform(entry);\r\n }\r\n _transform(entry) {\r\n let filepath = entry.path;\r\n if (this._settings.absolute) {\r\n filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\r\n filepath = utils.path.unixify(filepath);\r\n }\r\n if (this._settings.markDirectories && entry.dirent.isDirectory()) {\r\n filepath += '/';\r\n }\r\n if (!this._settings.objectMode) {\r\n return filepath;\r\n }\r\n return Object.assign(Object.assign({}, entry), { path: filepath });\r\n }\r\n}\r\nexports.default = EntryTransformer;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst fsWalk = require(\"@nodelib/fs.walk\");\r\nconst reader_1 = require(\"./reader\");\r\nconst stream_1 = require(\"./stream\");\r\nclass ReaderAsync extends reader_1.default {\r\n constructor() {\r\n super(...arguments);\r\n this._walkAsync = fsWalk.walk;\r\n this._readerStream = new stream_1.default(this._settings);\r\n }\r\n dynamic(root, options) {\r\n return new Promise((resolve, reject) => {\r\n this._walkAsync(root, options, (error, entries) => {\r\n if (error === null) {\r\n resolve(entries);\r\n }\r\n else {\r\n reject(error);\r\n }\r\n });\r\n });\r\n }\r\n async static(patterns, options) {\r\n const entries = [];\r\n const stream = this._readerStream.static(patterns, options);\r\n // After #235, replace it with an asynchronous iterator.\r\n return new Promise((resolve, reject) => {\r\n stream.once('error', reject);\r\n stream.on('data', (entry) => entries.push(entry));\r\n stream.once('end', () => resolve(entries));\r\n });\r\n }\r\n}\r\nexports.default = ReaderAsync;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst path = require(\"path\");\r\nconst fsStat = require(\"@nodelib/fs.stat\");\r\nconst utils = require(\"../utils\");\r\nclass Reader {\r\n constructor(_settings) {\r\n this._settings = _settings;\r\n this._fsStatSettings = new fsStat.Settings({\r\n followSymbolicLink: this._settings.followSymbolicLinks,\r\n fs: this._settings.fs,\r\n throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\r\n });\r\n }\r\n _getFullEntryPath(filepath) {\r\n return path.resolve(this._settings.cwd, filepath);\r\n }\r\n _makeEntry(stats, pattern) {\r\n const entry = {\r\n name: pattern,\r\n path: pattern,\r\n dirent: utils.fs.createDirentFromStats(pattern, stats)\r\n };\r\n if (this._settings.stats) {\r\n entry.stats = stats;\r\n }\r\n return entry;\r\n }\r\n _isFatalError(error) {\r\n return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\r\n }\r\n}\r\nexports.default = Reader;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst stream_1 = require(\"stream\");\r\nconst fsStat = require(\"@nodelib/fs.stat\");\r\nconst fsWalk = require(\"@nodelib/fs.walk\");\r\nconst reader_1 = require(\"./reader\");\r\nclass ReaderStream extends reader_1.default {\r\n constructor() {\r\n super(...arguments);\r\n this._walkStream = fsWalk.walkStream;\r\n this._stat = fsStat.stat;\r\n }\r\n dynamic(root, options) {\r\n return this._walkStream(root, options);\r\n }\r\n static(patterns, options) {\r\n const filepaths = patterns.map(this._getFullEntryPath, this);\r\n const stream = new stream_1.PassThrough({ objectMode: true });\r\n stream._write = (index, _enc, done) => {\r\n return this._getEntry(filepaths[index], patterns[index], options)\r\n .then((entry) => {\r\n if (entry !== null && options.entryFilter(entry)) {\r\n stream.push(entry);\r\n }\r\n if (index === filepaths.length - 1) {\r\n stream.end();\r\n }\r\n done();\r\n })\r\n .catch(done);\r\n };\r\n for (let i = 0; i < filepaths.length; i++) {\r\n stream.write(i);\r\n }\r\n return stream;\r\n }\r\n _getEntry(filepath, pattern, options) {\r\n return this._getStat(filepath)\r\n .then((stats) => this._makeEntry(stats, pattern))\r\n .catch((error) => {\r\n if (options.errorFilter(error)) {\r\n return null;\r\n }\r\n throw error;\r\n });\r\n }\r\n _getStat(filepath) {\r\n return new Promise((resolve, reject) => {\r\n this._stat(filepath, this._fsStatSettings, (error, stats) => {\r\n return error === null ? resolve(stats) : reject(error);\r\n });\r\n });\r\n }\r\n}\r\nexports.default = ReaderStream;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst fsStat = require(\"@nodelib/fs.stat\");\r\nconst fsWalk = require(\"@nodelib/fs.walk\");\r\nconst reader_1 = require(\"./reader\");\r\nclass ReaderSync extends reader_1.default {\r\n constructor() {\r\n super(...arguments);\r\n this._walkSync = fsWalk.walkSync;\r\n this._statSync = fsStat.statSync;\r\n }\r\n dynamic(root, options) {\r\n return this._walkSync(root, options);\r\n }\r\n static(patterns, options) {\r\n const entries = [];\r\n for (const pattern of patterns) {\r\n const filepath = this._getFullEntryPath(pattern);\r\n const entry = this._getEntry(filepath, pattern, options);\r\n if (entry === null || !options.entryFilter(entry)) {\r\n continue;\r\n }\r\n entries.push(entry);\r\n }\r\n return entries;\r\n }\r\n _getEntry(filepath, pattern, options) {\r\n try {\r\n const stats = this._getStat(filepath);\r\n return this._makeEntry(stats, pattern);\r\n }\r\n catch (error) {\r\n if (options.errorFilter(error)) {\r\n return null;\r\n }\r\n throw error;\r\n }\r\n }\r\n _getStat(filepath) {\r\n return this._statSync(filepath, this._fsStatSettings);\r\n }\r\n}\r\nexports.default = ReaderSync;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\r\nconst fs = require(\"fs\");\r\nconst os = require(\"os\");\r\n/**\r\n * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.\r\n * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107\r\n */\r\nconst CPU_COUNT = Math.max(os.cpus().length, 1);\r\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = {\r\n lstat: fs.lstat,\r\n lstatSync: fs.lstatSync,\r\n stat: fs.stat,\r\n statSync: fs.statSync,\r\n readdir: fs.readdir,\r\n readdirSync: fs.readdirSync\r\n};\r\nclass Settings {\r\n constructor(_options = {}) {\r\n this._options = _options;\r\n this.absolute = this._getValue(this._options.absolute, false);\r\n this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\r\n this.braceExpansion = this._getValue(this._options.braceExpansion, true);\r\n this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\r\n this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\r\n this.cwd = this._getValue(this._options.cwd, process.cwd());\r\n this.deep = this._getValue(this._options.deep, Infinity);\r\n this.dot = this._getValue(this._options.dot, false);\r\n this.extglob = this._getValue(this._options.extglob, true);\r\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\r\n this.fs = this._getFileSystemMethods(this._options.fs);\r\n this.globstar = this._getValue(this._options.globstar, true);\r\n this.ignore = this._getValue(this._options.ignore, []);\r\n this.markDirectories = this._getValue(this._options.markDirectories, false);\r\n this.objectMode = this._getValue(this._options.objectMode, false);\r\n this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\r\n this.onlyFiles = this._getValue(this._options.onlyFiles, true);\r\n this.stats = this._getValue(this._options.stats, false);\r\n this.suppressErrors = this._getValue(this._options.suppressErrors, false);\r\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\r\n this.unique = this._getValue(this._options.unique, true);\r\n if (this.onlyDirectories) {\r\n this.onlyFiles = false;\r\n }\r\n if (this.stats) {\r\n this.objectMode = true;\r\n }\r\n // Remove the cast to the array in the next major (#404).\r\n this.ignore = [].concat(this.ignore);\r\n }\r\n _getValue(option, value) {\r\n return option === undefined ? value : option;\r\n }\r\n _getFileSystemMethods(methods = {}) {\r\n return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\r\n }\r\n}\r\nexports.default = Settings;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.splitWhen = exports.flatten = void 0;\r\nfunction flatten(items) {\r\n return items.reduce((collection, item) => [].concat(collection, item), []);\r\n}\r\nexports.flatten = flatten;\r\nfunction splitWhen(items, predicate) {\r\n const result = [[]];\r\n let groupIndex = 0;\r\n for (const item of items) {\r\n if (predicate(item)) {\r\n groupIndex++;\r\n result[groupIndex] = [];\r\n }\r\n else {\r\n result[groupIndex].push(item);\r\n }\r\n }\r\n return result;\r\n}\r\nexports.splitWhen = splitWhen;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isEnoentCodeError = void 0;\r\nfunction isEnoentCodeError(error) {\r\n return error.code === 'ENOENT';\r\n}\r\nexports.isEnoentCodeError = isEnoentCodeError;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createDirentFromStats = void 0;\r\nclass DirentFromStats {\r\n constructor(name, stats) {\r\n this.name = name;\r\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\r\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\r\n this.isDirectory = stats.isDirectory.bind(stats);\r\n this.isFIFO = stats.isFIFO.bind(stats);\r\n this.isFile = stats.isFile.bind(stats);\r\n this.isSocket = stats.isSocket.bind(stats);\r\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\r\n }\r\n}\r\nfunction createDirentFromStats(name, stats) {\r\n return new DirentFromStats(name, stats);\r\n}\r\nexports.createDirentFromStats = createDirentFromStats;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\r\nconst array = require(\"./array\");\r\nexports.array = array;\r\nconst errno = require(\"./errno\");\r\nexports.errno = errno;\r\nconst fs = require(\"./fs\");\r\nexports.fs = fs;\r\nconst path = require(\"./path\");\r\nexports.path = path;\r\nconst pattern = require(\"./pattern\");\r\nexports.pattern = pattern;\r\nconst stream = require(\"./stream\");\r\nexports.stream = stream;\r\nconst string = require(\"./string\");\r\nexports.string = string;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;\r\nconst os = require(\"os\");\r\nconst path = require(\"path\");\r\nconst IS_WINDOWS_PLATFORM = os.platform() === 'win32';\r\nconst LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\\\\r\n/**\r\n * All non-escaped special characters.\r\n * Posix: ()*?[]{|}, !+@ before (, ! at the beginning, \\\\ before non-special characters.\r\n * Windows: (){}[], !+@ before (, ! at the beginning.\r\n */\r\nconst POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\()|\\\\(?![!()*+?@[\\]{|}]))/g;\r\nconst WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()[\\]{}]|^!|[!+@](?=\\())/g;\r\n/**\r\n * The device path (\\\\.\\ or \\\\?\\).\r\n * https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#dos-device-paths\r\n */\r\nconst DOS_DEVICE_PATH_RE = /^\\\\\\\\([.?])/;\r\n/**\r\n * All backslashes except those escaping special characters.\r\n * Windows: !()+@{}\r\n * https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions\r\n */\r\nconst WINDOWS_BACKSLASHES_RE = /\\\\(?![!()+@[\\]{}])/g;\r\n/**\r\n * Designed to work only with simple paths: `dir\\\\file`.\r\n */\r\nfunction unixify(filepath) {\r\n return filepath.replace(/\\\\/g, '/');\r\n}\r\nexports.unixify = unixify;\r\nfunction makeAbsolute(cwd, filepath) {\r\n return path.resolve(cwd, filepath);\r\n}\r\nexports.makeAbsolute = makeAbsolute;\r\nfunction removeLeadingDotSegment(entry) {\r\n // We do not use `startsWith` because this is 10x slower than current implementation for some cases.\r\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\r\n if (entry.charAt(0) === '.') {\r\n const secondCharactery = entry.charAt(1);\r\n if (secondCharactery === '/' || secondCharactery === '\\\\') {\r\n return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\r\n }\r\n }\r\n return entry;\r\n}\r\nexports.removeLeadingDotSegment = removeLeadingDotSegment;\r\nexports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath;\r\nfunction escapeWindowsPath(pattern) {\r\n return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\r\n}\r\nexports.escapeWindowsPath = escapeWindowsPath;\r\nfunction escapePosixPath(pattern) {\r\n return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\r\n}\r\nexports.escapePosixPath = escapePosixPath;\r\nexports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern;\r\nfunction convertWindowsPathToPattern(filepath) {\r\n return escapeWindowsPath(filepath)\r\n .replace(DOS_DEVICE_PATH_RE, '//$1')\r\n .replace(WINDOWS_BACKSLASHES_RE, '/');\r\n}\r\nexports.convertWindowsPathToPattern = convertWindowsPathToPattern;\r\nfunction convertPosixPathToPattern(filepath) {\r\n return escapePosixPath(filepath);\r\n}\r\nexports.convertPosixPathToPattern = convertPosixPathToPattern;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isAbsolute = exports.partitionAbsoluteAndRelative = exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\r\nconst path = require(\"path\");\r\nconst globParent = require(\"glob-parent\");\r\nconst micromatch = require(\"micromatch\");\r\nconst GLOBSTAR = '**';\r\nconst ESCAPE_SYMBOL = '\\\\';\r\nconst COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\r\nconst REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[[^[]*]/;\r\nconst REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/;\r\nconst GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\([^(]*\\)/;\r\nconst BRACE_EXPANSION_SEPARATORS_RE = /,|\\.\\./;\r\n/**\r\n * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string.\r\n * The latter is due to the presence of the device path at the beginning of the UNC path.\r\n */\r\nconst DOUBLE_SLASH_RE = /(?!^)\\/{2,}/g;\r\nfunction isStaticPattern(pattern, options = {}) {\r\n return !isDynamicPattern(pattern, options);\r\n}\r\nexports.isStaticPattern = isStaticPattern;\r\nfunction isDynamicPattern(pattern, options = {}) {\r\n /**\r\n * A special case with an empty string is necessary for matching patterns that start with a forward slash.\r\n * An empty string cannot be a dynamic pattern.\r\n * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.\r\n */\r\n if (pattern === '') {\r\n return false;\r\n }\r\n /**\r\n * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check\r\n * filepath directly (without read directory).\r\n */\r\n if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\r\n return true;\r\n }\r\n if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\r\n return true;\r\n }\r\n if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\r\n return true;\r\n }\r\n if (options.braceExpansion !== false && hasBraceExpansion(pattern)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexports.isDynamicPattern = isDynamicPattern;\r\nfunction hasBraceExpansion(pattern) {\r\n const openingBraceIndex = pattern.indexOf('{');\r\n if (openingBraceIndex === -1) {\r\n return false;\r\n }\r\n const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1);\r\n if (closingBraceIndex === -1) {\r\n return false;\r\n }\r\n const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);\r\n return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);\r\n}\r\nfunction convertToPositivePattern(pattern) {\r\n return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\r\n}\r\nexports.convertToPositivePattern = convertToPositivePattern;\r\nfunction convertToNegativePattern(pattern) {\r\n return '!' + pattern;\r\n}\r\nexports.convertToNegativePattern = convertToNegativePattern;\r\nfunction isNegativePattern(pattern) {\r\n return pattern.startsWith('!') && pattern[1] !== '(';\r\n}\r\nexports.isNegativePattern = isNegativePattern;\r\nfunction isPositivePattern(pattern) {\r\n return !isNegativePattern(pattern);\r\n}\r\nexports.isPositivePattern = isPositivePattern;\r\nfunction getNegativePatterns(patterns) {\r\n return patterns.filter(isNegativePattern);\r\n}\r\nexports.getNegativePatterns = getNegativePatterns;\r\nfunction getPositivePatterns(patterns) {\r\n return patterns.filter(isPositivePattern);\r\n}\r\nexports.getPositivePatterns = getPositivePatterns;\r\n/**\r\n * Returns patterns that can be applied inside the current directory.\r\n *\r\n * @example\r\n * // ['./*', '*', 'a/*']\r\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\r\n */\r\nfunction getPatternsInsideCurrentDirectory(patterns) {\r\n return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\r\n}\r\nexports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\r\n/**\r\n * Returns patterns to be expanded relative to (outside) the current directory.\r\n *\r\n * @example\r\n * // ['../*', './../*']\r\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\r\n */\r\nfunction getPatternsOutsideCurrentDirectory(patterns) {\r\n return patterns.filter(isPatternRelatedToParentDirectory);\r\n}\r\nexports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\r\nfunction isPatternRelatedToParentDirectory(pattern) {\r\n return pattern.startsWith('..') || pattern.startsWith('./..');\r\n}\r\nexports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\r\nfunction getBaseDirectory(pattern) {\r\n return globParent(pattern, { flipBackslashes: false });\r\n}\r\nexports.getBaseDirectory = getBaseDirectory;\r\nfunction hasGlobStar(pattern) {\r\n return pattern.includes(GLOBSTAR);\r\n}\r\nexports.hasGlobStar = hasGlobStar;\r\nfunction endsWithSlashGlobStar(pattern) {\r\n return pattern.endsWith('/' + GLOBSTAR);\r\n}\r\nexports.endsWithSlashGlobStar = endsWithSlashGlobStar;\r\nfunction isAffectDepthOfReadingPattern(pattern) {\r\n const basename = path.basename(pattern);\r\n return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\r\n}\r\nexports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\r\nfunction expandPatternsWithBraceExpansion(patterns) {\r\n return patterns.reduce((collection, pattern) => {\r\n return collection.concat(expandBraceExpansion(pattern));\r\n }, []);\r\n}\r\nexports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\r\nfunction expandBraceExpansion(pattern) {\r\n const patterns = micromatch.braces(pattern, { expand: true, nodupes: true, keepEscaping: true });\r\n /**\r\n * Sort the patterns by length so that the same depth patterns are processed side by side.\r\n * `a/{b,}/{c,}/*` – `['a///*', 'a/b//*', 'a//c/*', 'a/b/c/*']`\r\n */\r\n patterns.sort((a, b) => a.length - b.length);\r\n /**\r\n * Micromatch can return an empty string in the case of patterns like `{a,}`.\r\n */\r\n return patterns.filter((pattern) => pattern !== '');\r\n}\r\nexports.expandBraceExpansion = expandBraceExpansion;\r\nfunction getPatternParts(pattern, options) {\r\n let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));\r\n /**\r\n * The scan method returns an empty array in some cases.\r\n * See micromatch/picomatch#58 for more details.\r\n */\r\n if (parts.length === 0) {\r\n parts = [pattern];\r\n }\r\n /**\r\n * The scan method does not return an empty part for the pattern with a forward slash.\r\n * This is another part of micromatch/picomatch#58.\r\n */\r\n if (parts[0].startsWith('/')) {\r\n parts[0] = parts[0].slice(1);\r\n parts.unshift('');\r\n }\r\n return parts;\r\n}\r\nexports.getPatternParts = getPatternParts;\r\nfunction makeRe(pattern, options) {\r\n return micromatch.makeRe(pattern, options);\r\n}\r\nexports.makeRe = makeRe;\r\nfunction convertPatternsToRe(patterns, options) {\r\n return patterns.map((pattern) => makeRe(pattern, options));\r\n}\r\nexports.convertPatternsToRe = convertPatternsToRe;\r\nfunction matchAny(entry, patternsRe) {\r\n return patternsRe.some((patternRe) => patternRe.test(entry));\r\n}\r\nexports.matchAny = matchAny;\r\n/**\r\n * This package only works with forward slashes as a path separator.\r\n * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes.\r\n */\r\nfunction removeDuplicateSlashes(pattern) {\r\n return pattern.replace(DOUBLE_SLASH_RE, '/');\r\n}\r\nexports.removeDuplicateSlashes = removeDuplicateSlashes;\r\nfunction partitionAbsoluteAndRelative(patterns) {\r\n const absolute = [];\r\n const relative = [];\r\n for (const pattern of patterns) {\r\n if (isAbsolute(pattern)) {\r\n absolute.push(pattern);\r\n }\r\n else {\r\n relative.push(pattern);\r\n }\r\n }\r\n return [absolute, relative];\r\n}\r\nexports.partitionAbsoluteAndRelative = partitionAbsoluteAndRelative;\r\nfunction isAbsolute(pattern) {\r\n return path.isAbsolute(pattern);\r\n}\r\nexports.isAbsolute = isAbsolute;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.merge = void 0;\r\nconst merge2 = require(\"merge2\");\r\nfunction merge(streams) {\r\n const mergedStream = merge2(streams);\r\n streams.forEach((stream) => {\r\n stream.once('error', (error) => mergedStream.emit('error', error));\r\n });\r\n mergedStream.once('close', () => propagateCloseEventToSources(streams));\r\n mergedStream.once('end', () => propagateCloseEventToSources(streams));\r\n return mergedStream;\r\n}\r\nexports.merge = merge;\r\nfunction propagateCloseEventToSources(streams) {\r\n streams.forEach((stream) => stream.emit('close'));\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isEmpty = exports.isString = void 0;\r\nfunction isString(input) {\r\n return typeof input === 'string';\r\n}\r\nexports.isString = isString;\r\nfunction isEmpty(input) {\r\n return input === '';\r\n}\r\nexports.isEmpty = isEmpty;\r\n","'use strict'\r\n\r\n/* eslint-disable no-var */\r\n\r\nvar reusify = require('reusify')\r\n\r\nfunction fastqueue (context, worker, _concurrency) {\r\n if (typeof context === 'function') {\r\n _concurrency = worker\r\n worker = context\r\n context = null\r\n }\r\n\r\n if (!(_concurrency >= 1)) {\r\n throw new Error('fastqueue concurrency must be equal to or greater than 1')\r\n }\r\n\r\n var cache = reusify(Task)\r\n var queueHead = null\r\n var queueTail = null\r\n var _running = 0\r\n var errorHandler = null\r\n\r\n var self = {\r\n push: push,\r\n drain: noop,\r\n saturated: noop,\r\n pause: pause,\r\n paused: false,\r\n\r\n get concurrency () {\r\n return _concurrency\r\n },\r\n set concurrency (value) {\r\n if (!(value >= 1)) {\r\n throw new Error('fastqueue concurrency must be equal to or greater than 1')\r\n }\r\n _concurrency = value\r\n\r\n if (self.paused) return\r\n for (; queueHead && _running < _concurrency;) {\r\n _running++\r\n release()\r\n }\r\n },\r\n\r\n running: running,\r\n resume: resume,\r\n idle: idle,\r\n length: length,\r\n getQueue: getQueue,\r\n unshift: unshift,\r\n empty: noop,\r\n kill: kill,\r\n killAndDrain: killAndDrain,\r\n error: error\r\n }\r\n\r\n return self\r\n\r\n function running () {\r\n return _running\r\n }\r\n\r\n function pause () {\r\n self.paused = true\r\n }\r\n\r\n function length () {\r\n var current = queueHead\r\n var counter = 0\r\n\r\n while (current) {\r\n current = current.next\r\n counter++\r\n }\r\n\r\n return counter\r\n }\r\n\r\n function getQueue () {\r\n var current = queueHead\r\n var tasks = []\r\n\r\n while (current) {\r\n tasks.push(current.value)\r\n current = current.next\r\n }\r\n\r\n return tasks\r\n }\r\n\r\n function resume () {\r\n if (!self.paused) return\r\n self.paused = false\r\n if (queueHead === null) {\r\n _running++\r\n release()\r\n return\r\n }\r\n for (; queueHead && _running < _concurrency;) {\r\n _running++\r\n release()\r\n }\r\n }\r\n\r\n function idle () {\r\n return _running === 0 && self.length() === 0\r\n }\r\n\r\n function push (value, done) {\r\n var current = cache.get()\r\n\r\n current.context = context\r\n current.release = release\r\n current.value = value\r\n current.callback = done || noop\r\n current.errorHandler = errorHandler\r\n\r\n if (_running >= _concurrency || self.paused) {\r\n if (queueTail) {\r\n queueTail.next = current\r\n queueTail = current\r\n } else {\r\n queueHead = current\r\n queueTail = current\r\n self.saturated()\r\n }\r\n } else {\r\n _running++\r\n worker.call(context, current.value, current.worked)\r\n }\r\n }\r\n\r\n function unshift (value, done) {\r\n var current = cache.get()\r\n\r\n current.context = context\r\n current.release = release\r\n current.value = value\r\n current.callback = done || noop\r\n current.errorHandler = errorHandler\r\n\r\n if (_running >= _concurrency || self.paused) {\r\n if (queueHead) {\r\n current.next = queueHead\r\n queueHead = current\r\n } else {\r\n queueHead = current\r\n queueTail = current\r\n self.saturated()\r\n }\r\n } else {\r\n _running++\r\n worker.call(context, current.value, current.worked)\r\n }\r\n }\r\n\r\n function release (holder) {\r\n if (holder) {\r\n cache.release(holder)\r\n }\r\n var next = queueHead\r\n if (next && _running <= _concurrency) {\r\n if (!self.paused) {\r\n if (queueTail === queueHead) {\r\n queueTail = null\r\n }\r\n queueHead = next.next\r\n next.next = null\r\n worker.call(context, next.value, next.worked)\r\n if (queueTail === null) {\r\n self.empty()\r\n }\r\n } else {\r\n _running--\r\n }\r\n } else if (--_running === 0) {\r\n self.drain()\r\n }\r\n }\r\n\r\n function kill () {\r\n queueHead = null\r\n queueTail = null\r\n self.drain = noop\r\n }\r\n\r\n function killAndDrain () {\r\n queueHead = null\r\n queueTail = null\r\n self.drain()\r\n self.drain = noop\r\n }\r\n\r\n function error (handler) {\r\n errorHandler = handler\r\n }\r\n}\r\n\r\nfunction noop () {}\r\n\r\nfunction Task () {\r\n this.value = null\r\n this.callback = noop\r\n this.next = null\r\n this.release = noop\r\n this.context = null\r\n this.errorHandler = null\r\n\r\n var self = this\r\n\r\n this.worked = function worked (err, result) {\r\n var callback = self.callback\r\n var errorHandler = self.errorHandler\r\n var val = self.value\r\n self.value = null\r\n self.callback = noop\r\n if (self.errorHandler) {\r\n errorHandler(err, val)\r\n }\r\n callback.call(self.context, err, result)\r\n self.release(self)\r\n }\r\n}\r\n\r\nfunction queueAsPromised (context, worker, _concurrency) {\r\n if (typeof context === 'function') {\r\n _concurrency = worker\r\n worker = context\r\n context = null\r\n }\r\n\r\n function asyncWrapper (arg, cb) {\r\n worker.call(this, arg)\r\n .then(function (res) {\r\n cb(null, res)\r\n }, cb)\r\n }\r\n\r\n var queue = fastqueue(context, asyncWrapper, _concurrency)\r\n\r\n var pushCb = queue.push\r\n var unshiftCb = queue.unshift\r\n\r\n queue.push = push\r\n queue.unshift = unshift\r\n queue.drained = drained\r\n\r\n return queue\r\n\r\n function push (value) {\r\n var p = new Promise(function (resolve, reject) {\r\n pushCb(value, function (err, result) {\r\n if (err) {\r\n reject(err)\r\n return\r\n }\r\n resolve(result)\r\n })\r\n })\r\n\r\n // Let's fork the promise chain to\r\n // make the error bubble up to the user but\r\n // not lead to a unhandledRejection\r\n p.catch(noop)\r\n\r\n return p\r\n }\r\n\r\n function unshift (value) {\r\n var p = new Promise(function (resolve, reject) {\r\n unshiftCb(value, function (err, result) {\r\n if (err) {\r\n reject(err)\r\n return\r\n }\r\n resolve(result)\r\n })\r\n })\r\n\r\n // Let's fork the promise chain to\r\n // make the error bubble up to the user but\r\n // not lead to a unhandledRejection\r\n p.catch(noop)\r\n\r\n return p\r\n }\r\n\r\n function drained () {\r\n var p = new Promise(function (resolve) {\r\n process.nextTick(function () {\r\n if (queue.idle()) {\r\n resolve()\r\n } else {\r\n var previousDrain = queue.drain\r\n queue.drain = function () {\r\n if (typeof previousDrain === 'function') previousDrain()\r\n resolve()\r\n queue.drain = previousDrain\r\n }\r\n }\r\n })\r\n })\r\n\r\n return p\r\n }\r\n}\r\n\r\nmodule.exports = fastqueue\r\nmodule.exports.promise = queueAsPromised\r\n","var fs = require('fs');\r\nvar util = require('util');\r\nvar stream = require('stream');\r\nvar Readable = stream.Readable;\r\nvar Writable = stream.Writable;\r\nvar PassThrough = stream.PassThrough;\r\nvar Pend = require('pend');\r\nvar EventEmitter = require('events').EventEmitter;\r\n\r\nexports.createFromBuffer = createFromBuffer;\r\nexports.createFromFd = createFromFd;\r\nexports.BufferSlicer = BufferSlicer;\r\nexports.FdSlicer = FdSlicer;\r\n\r\nutil.inherits(FdSlicer, EventEmitter);\r\nfunction FdSlicer(fd, options) {\r\n options = options || {};\r\n EventEmitter.call(this);\r\n\r\n this.fd = fd;\r\n this.pend = new Pend();\r\n this.pend.max = 1;\r\n this.refCount = 0;\r\n this.autoClose = !!options.autoClose;\r\n}\r\n\r\nFdSlicer.prototype.read = function(buffer, offset, length, position, callback) {\r\n var self = this;\r\n self.pend.go(function(cb) {\r\n fs.read(self.fd, buffer, offset, length, position, function(err, bytesRead, buffer) {\r\n cb();\r\n callback(err, bytesRead, buffer);\r\n });\r\n });\r\n};\r\n\r\nFdSlicer.prototype.write = function(buffer, offset, length, position, callback) {\r\n var self = this;\r\n self.pend.go(function(cb) {\r\n fs.write(self.fd, buffer, offset, length, position, function(err, written, buffer) {\r\n cb();\r\n callback(err, written, buffer);\r\n });\r\n });\r\n};\r\n\r\nFdSlicer.prototype.createReadStream = function(options) {\r\n return new ReadStream(this, options);\r\n};\r\n\r\nFdSlicer.prototype.createWriteStream = function(options) {\r\n return new WriteStream(this, options);\r\n};\r\n\r\nFdSlicer.prototype.ref = function() {\r\n this.refCount += 1;\r\n};\r\n\r\nFdSlicer.prototype.unref = function() {\r\n var self = this;\r\n self.refCount -= 1;\r\n\r\n if (self.refCount > 0) return;\r\n if (self.refCount < 0) throw new Error(\"invalid unref\");\r\n\r\n if (self.autoClose) {\r\n fs.close(self.fd, onCloseDone);\r\n }\r\n\r\n function onCloseDone(err) {\r\n if (err) {\r\n self.emit('error', err);\r\n } else {\r\n self.emit('close');\r\n }\r\n }\r\n};\r\n\r\nutil.inherits(ReadStream, Readable);\r\nfunction ReadStream(context, options) {\r\n options = options || {};\r\n Readable.call(this, options);\r\n\r\n this.context = context;\r\n this.context.ref();\r\n\r\n this.start = options.start || 0;\r\n this.endOffset = options.end;\r\n this.pos = this.start;\r\n this.destroyed = false;\r\n}\r\n\r\nReadStream.prototype._read = function(n) {\r\n var self = this;\r\n if (self.destroyed) return;\r\n\r\n var toRead = Math.min(self._readableState.highWaterMark, n);\r\n if (self.endOffset != null) {\r\n toRead = Math.min(toRead, self.endOffset - self.pos);\r\n }\r\n if (toRead <= 0) {\r\n self.destroyed = true;\r\n self.push(null);\r\n self.context.unref();\r\n return;\r\n }\r\n self.context.pend.go(function(cb) {\r\n if (self.destroyed) return cb();\r\n var buffer = new Buffer(toRead);\r\n fs.read(self.context.fd, buffer, 0, toRead, self.pos, function(err, bytesRead) {\r\n if (err) {\r\n self.destroy(err);\r\n } else if (bytesRead === 0) {\r\n self.destroyed = true;\r\n self.push(null);\r\n self.context.unref();\r\n } else {\r\n self.pos += bytesRead;\r\n self.push(buffer.slice(0, bytesRead));\r\n }\r\n cb();\r\n });\r\n });\r\n};\r\n\r\nReadStream.prototype.destroy = function(err) {\r\n if (this.destroyed) return;\r\n err = err || new Error(\"stream destroyed\");\r\n this.destroyed = true;\r\n this.emit('error', err);\r\n this.context.unref();\r\n};\r\n\r\nutil.inherits(WriteStream, Writable);\r\nfunction WriteStream(context, options) {\r\n options = options || {};\r\n Writable.call(this, options);\r\n\r\n this.context = context;\r\n this.context.ref();\r\n\r\n this.start = options.start || 0;\r\n this.endOffset = (options.end == null) ? Infinity : +options.end;\r\n this.bytesWritten = 0;\r\n this.pos = this.start;\r\n this.destroyed = false;\r\n\r\n this.on('finish', this.destroy.bind(this));\r\n}\r\n\r\nWriteStream.prototype._write = function(buffer, encoding, callback) {\r\n var self = this;\r\n if (self.destroyed) return;\r\n\r\n if (self.pos + buffer.length > self.endOffset) {\r\n var err = new Error(\"maximum file length exceeded\");\r\n err.code = 'ETOOBIG';\r\n self.destroy();\r\n callback(err);\r\n return;\r\n }\r\n self.context.pend.go(function(cb) {\r\n if (self.destroyed) return cb();\r\n fs.write(self.context.fd, buffer, 0, buffer.length, self.pos, function(err, bytes) {\r\n if (err) {\r\n self.destroy();\r\n cb();\r\n callback(err);\r\n } else {\r\n self.bytesWritten += bytes;\r\n self.pos += bytes;\r\n self.emit('progress');\r\n cb();\r\n callback();\r\n }\r\n });\r\n });\r\n};\r\n\r\nWriteStream.prototype.destroy = function() {\r\n if (this.destroyed) return;\r\n this.destroyed = true;\r\n this.context.unref();\r\n};\r\n\r\nutil.inherits(BufferSlicer, EventEmitter);\r\nfunction BufferSlicer(buffer, options) {\r\n EventEmitter.call(this);\r\n\r\n options = options || {};\r\n this.refCount = 0;\r\n this.buffer = buffer;\r\n this.maxChunkSize = options.maxChunkSize || Number.MAX_SAFE_INTEGER;\r\n}\r\n\r\nBufferSlicer.prototype.read = function(buffer, offset, length, position, callback) {\r\n var end = position + length;\r\n var delta = end - this.buffer.length;\r\n var written = (delta > 0) ? delta : length;\r\n this.buffer.copy(buffer, offset, position, end);\r\n setImmediate(function() {\r\n callback(null, written);\r\n });\r\n};\r\n\r\nBufferSlicer.prototype.write = function(buffer, offset, length, position, callback) {\r\n buffer.copy(this.buffer, position, offset, offset + length);\r\n setImmediate(function() {\r\n callback(null, length, buffer);\r\n });\r\n};\r\n\r\nBufferSlicer.prototype.createReadStream = function(options) {\r\n options = options || {};\r\n var readStream = new PassThrough(options);\r\n readStream.destroyed = false;\r\n readStream.start = options.start || 0;\r\n readStream.endOffset = options.end;\r\n // by the time this function returns, we'll be done.\r\n readStream.pos = readStream.endOffset || this.buffer.length;\r\n\r\n // respect the maxChunkSize option to slice up the chunk into smaller pieces.\r\n var entireSlice = this.buffer.slice(readStream.start, readStream.pos);\r\n var offset = 0;\r\n while (true) {\r\n var nextOffset = offset + this.maxChunkSize;\r\n if (nextOffset >= entireSlice.length) {\r\n // last chunk\r\n if (offset < entireSlice.length) {\r\n readStream.write(entireSlice.slice(offset, entireSlice.length));\r\n }\r\n break;\r\n }\r\n readStream.write(entireSlice.slice(offset, nextOffset));\r\n offset = nextOffset;\r\n }\r\n\r\n readStream.end();\r\n readStream.destroy = function() {\r\n readStream.destroyed = true;\r\n };\r\n return readStream;\r\n};\r\n\r\nBufferSlicer.prototype.createWriteStream = function(options) {\r\n var bufferSlicer = this;\r\n options = options || {};\r\n var writeStream = new Writable(options);\r\n writeStream.start = options.start || 0;\r\n writeStream.endOffset = (options.end == null) ? this.buffer.length : +options.end;\r\n writeStream.bytesWritten = 0;\r\n writeStream.pos = writeStream.start;\r\n writeStream.destroyed = false;\r\n writeStream._write = function(buffer, encoding, callback) {\r\n if (writeStream.destroyed) return;\r\n\r\n var end = writeStream.pos + buffer.length;\r\n if (end > writeStream.endOffset) {\r\n var err = new Error(\"maximum file length exceeded\");\r\n err.code = 'ETOOBIG';\r\n writeStream.destroyed = true;\r\n callback(err);\r\n return;\r\n }\r\n buffer.copy(bufferSlicer.buffer, writeStream.pos, 0, buffer.length);\r\n\r\n writeStream.bytesWritten += buffer.length;\r\n writeStream.pos = end;\r\n writeStream.emit('progress');\r\n callback();\r\n };\r\n writeStream.destroy = function() {\r\n writeStream.destroyed = true;\r\n };\r\n return writeStream;\r\n};\r\n\r\nBufferSlicer.prototype.ref = function() {\r\n this.refCount += 1;\r\n};\r\n\r\nBufferSlicer.prototype.unref = function() {\r\n this.refCount -= 1;\r\n\r\n if (this.refCount < 0) {\r\n throw new Error(\"invalid unref\");\r\n }\r\n};\r\n\r\nfunction createFromBuffer(buffer, options) {\r\n return new BufferSlicer(buffer, options);\r\n}\r\n\r\nfunction createFromFd(fd, options) {\r\n return new FdSlicer(fd, options);\r\n}\r\n","/*!\r\n * fill-range \r\n *\r\n * Copyright (c) 2014-present, Jon Schlinkert.\r\n * Licensed under the MIT License.\r\n */\r\n\r\n'use strict';\r\n\r\nconst util = require('util');\r\nconst toRegexRange = require('to-regex-range');\r\n\r\nconst isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\r\n\r\nconst transform = toNumber => {\r\n return value => toNumber === true ? Number(value) : String(value);\r\n};\r\n\r\nconst isValidValue = value => {\r\n return typeof value === 'number' || (typeof value === 'string' && value !== '');\r\n};\r\n\r\nconst isNumber = num => Number.isInteger(+num);\r\n\r\nconst zeros = input => {\r\n let value = `${input}`;\r\n let index = -1;\r\n if (value[0] === '-') value = value.slice(1);\r\n if (value === '0') return false;\r\n while (value[++index] === '0');\r\n return index > 0;\r\n};\r\n\r\nconst stringify = (start, end, options) => {\r\n if (typeof start === 'string' || typeof end === 'string') {\r\n return true;\r\n }\r\n return options.stringify === true;\r\n};\r\n\r\nconst pad = (input, maxLength, toNumber) => {\r\n if (maxLength > 0) {\r\n let dash = input[0] === '-' ? '-' : '';\r\n if (dash) input = input.slice(1);\r\n input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'));\r\n }\r\n if (toNumber === false) {\r\n return String(input);\r\n }\r\n return input;\r\n};\r\n\r\nconst toMaxLen = (input, maxLength) => {\r\n let negative = input[0] === '-' ? '-' : '';\r\n if (negative) {\r\n input = input.slice(1);\r\n maxLength--;\r\n }\r\n while (input.length < maxLength) input = '0' + input;\r\n return negative ? ('-' + input) : input;\r\n};\r\n\r\nconst toSequence = (parts, options, maxLen) => {\r\n parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\r\n parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\r\n\r\n let prefix = options.capture ? '' : '?:';\r\n let positives = '';\r\n let negatives = '';\r\n let result;\r\n\r\n if (parts.positives.length) {\r\n positives = parts.positives.map(v => toMaxLen(String(v), maxLen)).join('|');\r\n }\r\n\r\n if (parts.negatives.length) {\r\n negatives = `-(${prefix}${parts.negatives.map(v => toMaxLen(String(v), maxLen)).join('|')})`;\r\n }\r\n\r\n if (positives && negatives) {\r\n result = `${positives}|${negatives}`;\r\n } else {\r\n result = positives || negatives;\r\n }\r\n\r\n if (options.wrap) {\r\n return `(${prefix}${result})`;\r\n }\r\n\r\n return result;\r\n};\r\n\r\nconst toRange = (a, b, isNumbers, options) => {\r\n if (isNumbers) {\r\n return toRegexRange(a, b, { wrap: false, ...options });\r\n }\r\n\r\n let start = String.fromCharCode(a);\r\n if (a === b) return start;\r\n\r\n let stop = String.fromCharCode(b);\r\n return `[${start}-${stop}]`;\r\n};\r\n\r\nconst toRegex = (start, end, options) => {\r\n if (Array.isArray(start)) {\r\n let wrap = options.wrap === true;\r\n let prefix = options.capture ? '' : '?:';\r\n return wrap ? `(${prefix}${start.join('|')})` : start.join('|');\r\n }\r\n return toRegexRange(start, end, options);\r\n};\r\n\r\nconst rangeError = (...args) => {\r\n return new RangeError('Invalid range arguments: ' + util.inspect(...args));\r\n};\r\n\r\nconst invalidRange = (start, end, options) => {\r\n if (options.strictRanges === true) throw rangeError([start, end]);\r\n return [];\r\n};\r\n\r\nconst invalidStep = (step, options) => {\r\n if (options.strictRanges === true) {\r\n throw new TypeError(`Expected step \"${step}\" to be a number`);\r\n }\r\n return [];\r\n};\r\n\r\nconst fillNumbers = (start, end, step = 1, options = {}) => {\r\n let a = Number(start);\r\n let b = Number(end);\r\n\r\n if (!Number.isInteger(a) || !Number.isInteger(b)) {\r\n if (options.strictRanges === true) throw rangeError([start, end]);\r\n return [];\r\n }\r\n\r\n // fix negative zero\r\n if (a === 0) a = 0;\r\n if (b === 0) b = 0;\r\n\r\n let descending = a > b;\r\n let startString = String(start);\r\n let endString = String(end);\r\n let stepString = String(step);\r\n step = Math.max(Math.abs(step), 1);\r\n\r\n let padded = zeros(startString) || zeros(endString) || zeros(stepString);\r\n let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\r\n let toNumber = padded === false && stringify(start, end, options) === false;\r\n let format = options.transform || transform(toNumber);\r\n\r\n if (options.toRegex && step === 1) {\r\n return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);\r\n }\r\n\r\n let parts = { negatives: [], positives: [] };\r\n let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));\r\n let range = [];\r\n let index = 0;\r\n\r\n while (descending ? a >= b : a <= b) {\r\n if (options.toRegex === true && step > 1) {\r\n push(a);\r\n } else {\r\n range.push(pad(format(a, index), maxLen, toNumber));\r\n }\r\n a = descending ? a - step : a + step;\r\n index++;\r\n }\r\n\r\n if (options.toRegex === true) {\r\n return step > 1\r\n ? toSequence(parts, options, maxLen)\r\n : toRegex(range, null, { wrap: false, ...options });\r\n }\r\n\r\n return range;\r\n};\r\n\r\nconst fillLetters = (start, end, step = 1, options = {}) => {\r\n if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {\r\n return invalidRange(start, end, options);\r\n }\r\n\r\n let format = options.transform || (val => String.fromCharCode(val));\r\n let a = `${start}`.charCodeAt(0);\r\n let b = `${end}`.charCodeAt(0);\r\n\r\n let descending = a > b;\r\n let min = Math.min(a, b);\r\n let max = Math.max(a, b);\r\n\r\n if (options.toRegex && step === 1) {\r\n return toRange(min, max, false, options);\r\n }\r\n\r\n let range = [];\r\n let index = 0;\r\n\r\n while (descending ? a >= b : a <= b) {\r\n range.push(format(a, index));\r\n a = descending ? a - step : a + step;\r\n index++;\r\n }\r\n\r\n if (options.toRegex === true) {\r\n return toRegex(range, null, { wrap: false, options });\r\n }\r\n\r\n return range;\r\n};\r\n\r\nconst fill = (start, end, step, options = {}) => {\r\n if (end == null && isValidValue(start)) {\r\n return [start];\r\n }\r\n\r\n if (!isValidValue(start) || !isValidValue(end)) {\r\n return invalidRange(start, end, options);\r\n }\r\n\r\n if (typeof step === 'function') {\r\n return fill(start, end, 1, { transform: step });\r\n }\r\n\r\n if (isObject(step)) {\r\n return fill(start, end, 0, step);\r\n }\r\n\r\n let opts = { ...options };\r\n if (opts.capture === true) opts.wrap = true;\r\n step = step || opts.step || 1;\r\n\r\n if (!isNumber(step)) {\r\n if (step != null && !isObject(step)) return invalidStep(step, opts);\r\n return fill(start, end, 1, step);\r\n }\r\n\r\n if (isNumber(start) && isNumber(end)) {\r\n return fillNumbers(start, end, step, opts);\r\n }\r\n\r\n return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\r\n};\r\n\r\nmodule.exports = fill;\r\n","var debug;\r\n\r\nmodule.exports = function () {\r\n if (!debug) {\r\n try {\r\n /* eslint global-require: off */\r\n debug = require(\"debug\")(\"follow-redirects\");\r\n }\r\n catch (error) { /* */ }\r\n if (typeof debug !== \"function\") {\r\n debug = function () { /* */ };\r\n }\r\n }\r\n debug.apply(null, arguments);\r\n};\r\n","var url = require(\"url\");\r\nvar URL = url.URL;\r\nvar http = require(\"http\");\r\nvar https = require(\"https\");\r\nvar Writable = require(\"stream\").Writable;\r\nvar assert = require(\"assert\");\r\nvar debug = require(\"./debug\");\r\n\r\n// Preventive platform detection\r\n// istanbul ignore next\r\n(function detectUnsupportedEnvironment() {\r\n var looksLikeNode = typeof process !== \"undefined\";\r\n var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\r\n var looksLikeV8 = isFunction(Error.captureStackTrace);\r\n if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\r\n console.warn(\"The follow-redirects package should be excluded from browser builds.\");\r\n }\r\n}());\r\n\r\n// Whether to use the native URL object or the legacy url module\r\nvar useNativeURL = false;\r\ntry {\r\n assert(new URL(\"\"));\r\n}\r\ncatch (error) {\r\n useNativeURL = error.code === \"ERR_INVALID_URL\";\r\n}\r\n\r\n// HTTP headers to drop across HTTP/HTTPS and domain boundaries\r\nvar sensitiveHeaders = [\r\n \"Authorization\",\r\n \"Proxy-Authorization\",\r\n \"Cookie\",\r\n];\r\n\r\n// URL fields to preserve in copy operations\r\nvar preservedUrlFields = [\r\n \"auth\",\r\n \"host\",\r\n \"hostname\",\r\n \"href\",\r\n \"path\",\r\n \"pathname\",\r\n \"port\",\r\n \"protocol\",\r\n \"query\",\r\n \"search\",\r\n \"hash\",\r\n];\r\n\r\n// Create handlers that pass events from native requests\r\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\r\nvar eventHandlers = Object.create(null);\r\nevents.forEach(function (event) {\r\n eventHandlers[event] = function (arg1, arg2, arg3) {\r\n this._redirectable.emit(event, arg1, arg2, arg3);\r\n };\r\n});\r\n\r\n// Error types with codes\r\nvar InvalidUrlError = createErrorType(\r\n \"ERR_INVALID_URL\",\r\n \"Invalid URL\",\r\n TypeError\r\n);\r\nvar RedirectionError = createErrorType(\r\n \"ERR_FR_REDIRECTION_FAILURE\",\r\n \"Redirected request failed\"\r\n);\r\nvar TooManyRedirectsError = createErrorType(\r\n \"ERR_FR_TOO_MANY_REDIRECTS\",\r\n \"Maximum number of redirects exceeded\",\r\n RedirectionError\r\n);\r\nvar MaxBodyLengthExceededError = createErrorType(\r\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\r\n \"Request body larger than maxBodyLength limit\"\r\n);\r\nvar WriteAfterEndError = createErrorType(\r\n \"ERR_STREAM_WRITE_AFTER_END\",\r\n \"write after end\"\r\n);\r\n\r\n// istanbul ignore next\r\nvar destroy = Writable.prototype.destroy || noop;\r\n\r\n// An HTTP(S) request that can be redirected\r\nfunction RedirectableRequest(options, responseCallback) {\r\n // Initialize the request\r\n Writable.call(this);\r\n this._sanitizeOptions(options);\r\n this._options = options;\r\n this._ended = false;\r\n this._ending = false;\r\n this._redirectCount = 0;\r\n this._redirects = [];\r\n this._requestBodyLength = 0;\r\n this._requestBodyBuffers = [];\r\n\r\n // Attach a callback if passed\r\n if (responseCallback) {\r\n this.on(\"response\", responseCallback);\r\n }\r\n\r\n // React to responses of native requests\r\n var self = this;\r\n this._onNativeResponse = function (response) {\r\n try {\r\n self._processResponse(response);\r\n }\r\n catch (cause) {\r\n self.emit(\"error\", cause instanceof RedirectionError ?\r\n cause : new RedirectionError({ cause: cause }));\r\n }\r\n };\r\n\r\n // Create filter for sensitive HTTP headers\r\n this._headerFilter = new RegExp(\"^(?:\" +\r\n sensitiveHeaders.concat(options.sensitiveHeaders).map(escapeRegex).join(\"|\") +\r\n \")$\", \"i\");\r\n\r\n // Perform the first request\r\n this._performRequest();\r\n}\r\nRedirectableRequest.prototype = Object.create(Writable.prototype);\r\n\r\nRedirectableRequest.prototype.abort = function () {\r\n destroyRequest(this._currentRequest);\r\n this._currentRequest.abort();\r\n this.emit(\"abort\");\r\n};\r\n\r\nRedirectableRequest.prototype.destroy = function (error) {\r\n destroyRequest(this._currentRequest, error);\r\n destroy.call(this, error);\r\n return this;\r\n};\r\n\r\n// Writes buffered data to the current native request\r\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\r\n // Writing is not allowed if end has been called\r\n if (this._ending) {\r\n throw new WriteAfterEndError();\r\n }\r\n\r\n // Validate input and shift parameters if necessary\r\n if (!isString(data) && !isBuffer(data)) {\r\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\r\n }\r\n if (isFunction(encoding)) {\r\n callback = encoding;\r\n encoding = null;\r\n }\r\n\r\n // Ignore empty buffers, since writing them doesn't invoke the callback\r\n // https://github.com/nodejs/node/issues/22066\r\n if (data.length === 0) {\r\n if (callback) {\r\n callback();\r\n }\r\n return;\r\n }\r\n // Only write when we don't exceed the maximum body length\r\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\r\n this._requestBodyLength += data.length;\r\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\r\n this._currentRequest.write(data, encoding, callback);\r\n }\r\n // Error when we exceed the maximum body length\r\n else {\r\n this.emit(\"error\", new MaxBodyLengthExceededError());\r\n this.abort();\r\n }\r\n};\r\n\r\n// Ends the current native request\r\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\r\n // Shift parameters if necessary\r\n if (isFunction(data)) {\r\n callback = data;\r\n data = encoding = null;\r\n }\r\n else if (isFunction(encoding)) {\r\n callback = encoding;\r\n encoding = null;\r\n }\r\n\r\n // Write data if needed and end\r\n if (!data) {\r\n this._ended = this._ending = true;\r\n this._currentRequest.end(null, null, callback);\r\n }\r\n else {\r\n var self = this;\r\n var currentRequest = this._currentRequest;\r\n this.write(data, encoding, function () {\r\n self._ended = true;\r\n currentRequest.end(null, null, callback);\r\n });\r\n this._ending = true;\r\n }\r\n};\r\n\r\n// Sets a header value on the current native request\r\nRedirectableRequest.prototype.setHeader = function (name, value) {\r\n this._options.headers[name] = value;\r\n this._currentRequest.setHeader(name, value);\r\n};\r\n\r\n// Clears a header value on the current native request\r\nRedirectableRequest.prototype.removeHeader = function (name) {\r\n delete this._options.headers[name];\r\n this._currentRequest.removeHeader(name);\r\n};\r\n\r\n// Global timeout for all underlying requests\r\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\r\n var self = this;\r\n\r\n // Destroys the socket on timeout\r\n function destroyOnTimeout(socket) {\r\n socket.setTimeout(msecs);\r\n socket.removeListener(\"timeout\", socket.destroy);\r\n socket.addListener(\"timeout\", socket.destroy);\r\n }\r\n\r\n // Sets up a timer to trigger a timeout event\r\n function startTimer(socket) {\r\n if (self._timeout) {\r\n clearTimeout(self._timeout);\r\n }\r\n self._timeout = setTimeout(function () {\r\n self.emit(\"timeout\");\r\n clearTimer();\r\n }, msecs);\r\n destroyOnTimeout(socket);\r\n }\r\n\r\n // Stops a timeout from triggering\r\n function clearTimer() {\r\n // Clear the timeout\r\n if (self._timeout) {\r\n clearTimeout(self._timeout);\r\n self._timeout = null;\r\n }\r\n\r\n // Clean up all attached listeners\r\n self.removeListener(\"abort\", clearTimer);\r\n self.removeListener(\"error\", clearTimer);\r\n self.removeListener(\"response\", clearTimer);\r\n self.removeListener(\"close\", clearTimer);\r\n if (callback) {\r\n self.removeListener(\"timeout\", callback);\r\n }\r\n if (!self.socket) {\r\n self._currentRequest.removeListener(\"socket\", startTimer);\r\n }\r\n }\r\n\r\n // Attach callback if passed\r\n if (callback) {\r\n this.on(\"timeout\", callback);\r\n }\r\n\r\n // Start the timer if or when the socket is opened\r\n if (this.socket) {\r\n startTimer(this.socket);\r\n }\r\n else {\r\n this._currentRequest.once(\"socket\", startTimer);\r\n }\r\n\r\n // Clean up on events\r\n this.on(\"socket\", destroyOnTimeout);\r\n this.on(\"abort\", clearTimer);\r\n this.on(\"error\", clearTimer);\r\n this.on(\"response\", clearTimer);\r\n this.on(\"close\", clearTimer);\r\n\r\n return this;\r\n};\r\n\r\n// Proxy all other public ClientRequest methods\r\n[\r\n \"flushHeaders\", \"getHeader\",\r\n \"setNoDelay\", \"setSocketKeepAlive\",\r\n].forEach(function (method) {\r\n RedirectableRequest.prototype[method] = function (a, b) {\r\n return this._currentRequest[method](a, b);\r\n };\r\n});\r\n\r\n// Proxy all public ClientRequest properties\r\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\r\n Object.defineProperty(RedirectableRequest.prototype, property, {\r\n get: function () { return this._currentRequest[property]; },\r\n });\r\n});\r\n\r\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\r\n // Ensure headers are always present\r\n if (!options.headers) {\r\n options.headers = {};\r\n }\r\n if (!isArray(options.sensitiveHeaders)) {\r\n options.sensitiveHeaders = [];\r\n }\r\n\r\n // Since http.request treats host as an alias of hostname,\r\n // but the url module interprets host as hostname plus port,\r\n // eliminate the host property to avoid confusion.\r\n if (options.host) {\r\n // Use hostname if set, because it has precedence\r\n if (!options.hostname) {\r\n options.hostname = options.host;\r\n }\r\n delete options.host;\r\n }\r\n\r\n // Complete the URL object when necessary\r\n if (!options.pathname && options.path) {\r\n var searchPos = options.path.indexOf(\"?\");\r\n if (searchPos < 0) {\r\n options.pathname = options.path;\r\n }\r\n else {\r\n options.pathname = options.path.substring(0, searchPos);\r\n options.search = options.path.substring(searchPos);\r\n }\r\n }\r\n};\r\n\r\n\r\n// Executes the next native request (initial or redirect)\r\nRedirectableRequest.prototype._performRequest = function () {\r\n // Load the native protocol\r\n var protocol = this._options.protocol;\r\n var nativeProtocol = this._options.nativeProtocols[protocol];\r\n if (!nativeProtocol) {\r\n throw new TypeError(\"Unsupported protocol \" + protocol);\r\n }\r\n\r\n // If specified, use the agent corresponding to the protocol\r\n // (HTTP and HTTPS use different types of agents)\r\n if (this._options.agents) {\r\n var scheme = protocol.slice(0, -1);\r\n this._options.agent = this._options.agents[scheme];\r\n }\r\n\r\n // Create the native request and set up its event handlers\r\n var request = this._currentRequest =\r\n nativeProtocol.request(this._options, this._onNativeResponse);\r\n request._redirectable = this;\r\n for (var event of events) {\r\n request.on(event, eventHandlers[event]);\r\n }\r\n\r\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\r\n // a client MUST send only the absolute path […] as the request-target.\r\n this._currentUrl = /^\\//.test(this._options.path) ?\r\n url.format(this._options) :\r\n // When making a request to a proxy, […]\r\n // a client MUST send the target URI in absolute-form […].\r\n this._options.path;\r\n\r\n // End a redirected request\r\n // (The first request must be ended explicitly with RedirectableRequest#end)\r\n if (this._isRedirect) {\r\n // Write the request entity and end\r\n var i = 0;\r\n var self = this;\r\n var buffers = this._requestBodyBuffers;\r\n (function writeNext(error) {\r\n // Only write if this request has not been redirected yet\r\n // istanbul ignore else\r\n if (request === self._currentRequest) {\r\n // Report any write errors\r\n // istanbul ignore if\r\n if (error) {\r\n self.emit(\"error\", error);\r\n }\r\n // Write the next buffer if there are still left\r\n else if (i < buffers.length) {\r\n var buffer = buffers[i++];\r\n // istanbul ignore else\r\n if (!request.finished) {\r\n request.write(buffer.data, buffer.encoding, writeNext);\r\n }\r\n }\r\n // End the request if `end` has been called on us\r\n else if (self._ended) {\r\n request.end();\r\n }\r\n }\r\n }());\r\n }\r\n};\r\n\r\n// Processes a response from the current native request\r\nRedirectableRequest.prototype._processResponse = function (response) {\r\n // Store the redirected response\r\n var statusCode = response.statusCode;\r\n if (this._options.trackRedirects) {\r\n this._redirects.push({\r\n url: this._currentUrl,\r\n headers: response.headers,\r\n statusCode: statusCode,\r\n });\r\n }\r\n\r\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\r\n // that further action needs to be taken by the user agent in order to\r\n // fulfill the request. If a Location header field is provided,\r\n // the user agent MAY automatically redirect its request to the URI\r\n // referenced by the Location field value,\r\n // even if the specific status code is not understood.\r\n\r\n // If the response is not a redirect; return it as-is\r\n var location = response.headers.location;\r\n if (!location || this._options.followRedirects === false ||\r\n statusCode < 300 || statusCode >= 400) {\r\n response.responseUrl = this._currentUrl;\r\n response.redirects = this._redirects;\r\n this.emit(\"response\", response);\r\n\r\n // Clean up\r\n this._requestBodyBuffers = [];\r\n return;\r\n }\r\n\r\n // The response is a redirect, so abort the current request\r\n destroyRequest(this._currentRequest);\r\n // Discard the remainder of the response to avoid waiting for data\r\n response.destroy();\r\n\r\n // RFC7231§6.4: A client SHOULD detect and intervene\r\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\r\n if (++this._redirectCount > this._options.maxRedirects) {\r\n throw new TooManyRedirectsError();\r\n }\r\n\r\n // Store the request headers if applicable\r\n var requestHeaders;\r\n var beforeRedirect = this._options.beforeRedirect;\r\n if (beforeRedirect) {\r\n requestHeaders = Object.assign({\r\n // The Host header was set by nativeProtocol.request\r\n Host: response.req.getHeader(\"host\"),\r\n }, this._options.headers);\r\n }\r\n\r\n // RFC7231§6.4: Automatic redirection needs to done with\r\n // care for methods not known to be safe, […]\r\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\r\n // the request method from POST to GET for the subsequent request.\r\n var method = this._options.method;\r\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\r\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\r\n // the server is redirecting the user agent to a different resource […]\r\n // A user agent can perform a retrieval request targeting that URI\r\n // (a GET or HEAD request if using HTTP) […]\r\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\r\n this._options.method = \"GET\";\r\n // Drop a possible entity and headers related to it\r\n this._requestBodyBuffers = [];\r\n removeMatchingHeaders(/^content-/i, this._options.headers);\r\n }\r\n\r\n // Drop the Host header, as the redirect might lead to a different host\r\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\r\n\r\n // If the redirect is relative, carry over the host of the last request\r\n var currentUrlParts = parseUrl(this._currentUrl);\r\n var currentHost = currentHostHeader || currentUrlParts.host;\r\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\r\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\r\n\r\n // Create the redirected request\r\n var redirectUrl = resolveUrl(location, currentUrl);\r\n debug(\"redirecting to\", redirectUrl.href);\r\n this._isRedirect = true;\r\n spreadUrlObject(redirectUrl, this._options);\r\n\r\n // Drop confidential headers when redirecting to a less secure protocol\r\n // or to a different domain that is not a superdomain\r\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\r\n redirectUrl.protocol !== \"https:\" ||\r\n redirectUrl.host !== currentHost &&\r\n !isSubdomain(redirectUrl.host, currentHost)) {\r\n removeMatchingHeaders(this._headerFilter, this._options.headers);\r\n }\r\n\r\n // Evaluate the beforeRedirect callback\r\n if (isFunction(beforeRedirect)) {\r\n var responseDetails = {\r\n headers: response.headers,\r\n statusCode: statusCode,\r\n };\r\n var requestDetails = {\r\n url: currentUrl,\r\n method: method,\r\n headers: requestHeaders,\r\n };\r\n beforeRedirect(this._options, responseDetails, requestDetails);\r\n this._sanitizeOptions(this._options);\r\n }\r\n\r\n // Perform the redirected request\r\n this._performRequest();\r\n};\r\n\r\n// Wraps the key/value object of protocols with redirect functionality\r\nfunction wrap(protocols) {\r\n // Default settings\r\n var exports = {\r\n maxRedirects: 21,\r\n maxBodyLength: 10 * 1024 * 1024,\r\n };\r\n\r\n // Wrap each protocol\r\n var nativeProtocols = {};\r\n Object.keys(protocols).forEach(function (scheme) {\r\n var protocol = scheme + \":\";\r\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\r\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\r\n\r\n // Executes a request, following redirects\r\n function request(input, options, callback) {\r\n // Parse parameters, ensuring that input is an object\r\n if (isURL(input)) {\r\n input = spreadUrlObject(input);\r\n }\r\n else if (isString(input)) {\r\n input = spreadUrlObject(parseUrl(input));\r\n }\r\n else {\r\n callback = options;\r\n options = validateUrl(input);\r\n input = { protocol: protocol };\r\n }\r\n if (isFunction(options)) {\r\n callback = options;\r\n options = null;\r\n }\r\n\r\n // Set defaults\r\n options = Object.assign({\r\n maxRedirects: exports.maxRedirects,\r\n maxBodyLength: exports.maxBodyLength,\r\n }, input, options);\r\n options.nativeProtocols = nativeProtocols;\r\n if (!isString(options.host) && !isString(options.hostname)) {\r\n options.hostname = \"::1\";\r\n }\r\n\r\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\r\n debug(\"options\", options);\r\n return new RedirectableRequest(options, callback);\r\n }\r\n\r\n // Executes a GET request, following redirects\r\n function get(input, options, callback) {\r\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\r\n wrappedRequest.end();\r\n return wrappedRequest;\r\n }\r\n\r\n // Expose the properties on the wrapped protocol\r\n Object.defineProperties(wrappedProtocol, {\r\n request: { value: request, configurable: true, enumerable: true, writable: true },\r\n get: { value: get, configurable: true, enumerable: true, writable: true },\r\n });\r\n });\r\n return exports;\r\n}\r\n\r\nfunction noop() { /* empty */ }\r\n\r\nfunction parseUrl(input) {\r\n var parsed;\r\n // istanbul ignore else\r\n if (useNativeURL) {\r\n parsed = new URL(input);\r\n }\r\n else {\r\n // Ensure the URL is valid and absolute\r\n parsed = validateUrl(url.parse(input));\r\n if (!isString(parsed.protocol)) {\r\n throw new InvalidUrlError({ input });\r\n }\r\n }\r\n return parsed;\r\n}\r\n\r\nfunction resolveUrl(relative, base) {\r\n // istanbul ignore next\r\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\r\n}\r\n\r\nfunction validateUrl(input) {\r\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\r\n throw new InvalidUrlError({ input: input.href || input });\r\n }\r\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\r\n throw new InvalidUrlError({ input: input.href || input });\r\n }\r\n return input;\r\n}\r\n\r\nfunction spreadUrlObject(urlObject, target) {\r\n var spread = target || {};\r\n for (var key of preservedUrlFields) {\r\n spread[key] = urlObject[key];\r\n }\r\n\r\n // Fix IPv6 hostname\r\n if (spread.hostname.startsWith(\"[\")) {\r\n spread.hostname = spread.hostname.slice(1, -1);\r\n }\r\n // Ensure port is a number\r\n if (spread.port !== \"\") {\r\n spread.port = Number(spread.port);\r\n }\r\n // Concatenate path\r\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\r\n\r\n return spread;\r\n}\r\n\r\nfunction removeMatchingHeaders(regex, headers) {\r\n var lastValue;\r\n for (var header in headers) {\r\n if (regex.test(header)) {\r\n lastValue = headers[header];\r\n delete headers[header];\r\n }\r\n }\r\n return (lastValue === null || typeof lastValue === \"undefined\") ?\r\n undefined : String(lastValue).trim();\r\n}\r\n\r\nfunction createErrorType(code, message, baseClass) {\r\n // Create constructor\r\n function CustomError(properties) {\r\n // istanbul ignore else\r\n if (isFunction(Error.captureStackTrace)) {\r\n Error.captureStackTrace(this, this.constructor);\r\n }\r\n Object.assign(this, properties || {});\r\n this.code = code;\r\n this.message = this.cause ? message + \": \" + this.cause.message : message;\r\n }\r\n\r\n // Attach constructor and set default properties\r\n CustomError.prototype = new (baseClass || Error)();\r\n Object.defineProperties(CustomError.prototype, {\r\n constructor: {\r\n value: CustomError,\r\n enumerable: false,\r\n },\r\n name: {\r\n value: \"Error [\" + code + \"]\",\r\n enumerable: false,\r\n },\r\n });\r\n return CustomError;\r\n}\r\n\r\nfunction destroyRequest(request, error) {\r\n for (var event of events) {\r\n request.removeListener(event, eventHandlers[event]);\r\n }\r\n request.on(\"error\", noop);\r\n request.destroy(error);\r\n}\r\n\r\nfunction isSubdomain(subdomain, domain) {\r\n assert(isString(subdomain) && isString(domain));\r\n var dot = subdomain.length - domain.length - 1;\r\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\r\n}\r\n\r\nfunction isArray(value) {\r\n return value instanceof Array;\r\n}\r\n\r\nfunction isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n}\r\n\r\nfunction isFunction(value) {\r\n return typeof value === \"function\";\r\n}\r\n\r\nfunction isBuffer(value) {\r\n return typeof value === \"object\" && (\"length\" in value);\r\n}\r\n\r\nfunction isURL(value) {\r\n return URL && value instanceof URL;\r\n}\r\n\r\nfunction escapeRegex(regex) {\r\n return regex.replace(/[\\]\\\\/()*+?.$]/g, \"\\\\$&\");\r\n}\r\n\r\n// Exports\r\nmodule.exports = wrap({ http: http, https: https });\r\nmodule.exports.wrap = wrap;\r\n","'use strict';\r\nconst {PassThrough: PassThroughStream} = require('stream');\r\n\r\nmodule.exports = options => {\r\n\toptions = {...options};\r\n\r\n\tconst {array} = options;\r\n\tlet {encoding} = options;\r\n\tconst isBuffer = encoding === 'buffer';\r\n\tlet objectMode = false;\r\n\r\n\tif (array) {\r\n\t\tobjectMode = !(encoding || isBuffer);\r\n\t} else {\r\n\t\tencoding = encoding || 'utf8';\r\n\t}\r\n\r\n\tif (isBuffer) {\r\n\t\tencoding = null;\r\n\t}\r\n\r\n\tconst stream = new PassThroughStream({objectMode});\r\n\r\n\tif (encoding) {\r\n\t\tstream.setEncoding(encoding);\r\n\t}\r\n\r\n\tlet length = 0;\r\n\tconst chunks = [];\r\n\r\n\tstream.on('data', chunk => {\r\n\t\tchunks.push(chunk);\r\n\r\n\t\tif (objectMode) {\r\n\t\t\tlength = chunks.length;\r\n\t\t} else {\r\n\t\t\tlength += chunk.length;\r\n\t\t}\r\n\t});\r\n\r\n\tstream.getBufferedValue = () => {\r\n\t\tif (array) {\r\n\t\t\treturn chunks;\r\n\t\t}\r\n\r\n\t\treturn isBuffer ? Buffer.concat(chunks, length) : chunks.join('');\r\n\t};\r\n\r\n\tstream.getBufferedLength = () => length;\r\n\r\n\treturn stream;\r\n};\r\n","'use strict';\r\nconst {constants: BufferConstants} = require('buffer');\r\nconst pump = require('pump');\r\nconst bufferStream = require('./buffer-stream');\r\n\r\nclass MaxBufferError extends Error {\r\n\tconstructor() {\r\n\t\tsuper('maxBuffer exceeded');\r\n\t\tthis.name = 'MaxBufferError';\r\n\t}\r\n}\r\n\r\nasync function getStream(inputStream, options) {\r\n\tif (!inputStream) {\r\n\t\treturn Promise.reject(new Error('Expected a stream'));\r\n\t}\r\n\r\n\toptions = {\r\n\t\tmaxBuffer: Infinity,\r\n\t\t...options\r\n\t};\r\n\r\n\tconst {maxBuffer} = options;\r\n\r\n\tlet stream;\r\n\tawait new Promise((resolve, reject) => {\r\n\t\tconst rejectPromise = error => {\r\n\t\t\t// Don't retrieve an oversized buffer.\r\n\t\t\tif (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {\r\n\t\t\t\terror.bufferedData = stream.getBufferedValue();\r\n\t\t\t}\r\n\r\n\t\t\treject(error);\r\n\t\t};\r\n\r\n\t\tstream = pump(inputStream, bufferStream(options), error => {\r\n\t\t\tif (error) {\r\n\t\t\t\trejectPromise(error);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tresolve();\r\n\t\t});\r\n\r\n\t\tstream.on('data', () => {\r\n\t\t\tif (stream.getBufferedLength() > maxBuffer) {\r\n\t\t\t\trejectPromise(new MaxBufferError());\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\treturn stream.getBufferedValue();\r\n}\r\n\r\nmodule.exports = getStream;\r\n// TODO: Remove this for the next major release\r\nmodule.exports.default = getStream;\r\nmodule.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'});\r\nmodule.exports.array = (stream, options) => getStream(stream, {...options, array: true});\r\nmodule.exports.MaxBufferError = MaxBufferError;\r\n","'use strict';\r\n\r\nmodule.exports = (flag, argv = process.argv) => {\r\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\r\n\tconst position = argv.indexOf(prefix + flag);\r\n\tconst terminatorPosition = argv.indexOf('--');\r\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\r\n};\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst net_1 = __importDefault(require(\"net\"));\r\nconst tls_1 = __importDefault(require(\"tls\"));\r\nconst url_1 = __importDefault(require(\"url\"));\r\nconst assert_1 = __importDefault(require(\"assert\"));\r\nconst debug_1 = __importDefault(require(\"debug\"));\r\nconst agent_base_1 = require(\"agent-base\");\r\nconst parse_proxy_response_1 = __importDefault(require(\"./parse-proxy-response\"));\r\nconst debug = debug_1.default('https-proxy-agent:agent');\r\n/**\r\n * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to\r\n * the specified \"HTTP(s) proxy server\" in order to proxy HTTPS requests.\r\n *\r\n * Outgoing HTTP requests are first tunneled through the proxy server using the\r\n * `CONNECT` HTTP request method to establish a connection to the proxy server,\r\n * and then the proxy server connects to the destination target and issues the\r\n * HTTP request from the proxy server.\r\n *\r\n * `https:` requests have their socket connection upgraded to TLS once\r\n * the connection to the proxy server has been established.\r\n *\r\n * @api public\r\n */\r\nclass HttpsProxyAgent extends agent_base_1.Agent {\r\n constructor(_opts) {\r\n let opts;\r\n if (typeof _opts === 'string') {\r\n opts = url_1.default.parse(_opts);\r\n }\r\n else {\r\n opts = _opts;\r\n }\r\n if (!opts) {\r\n throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!');\r\n }\r\n debug('creating new HttpsProxyAgent instance: %o', opts);\r\n super(opts);\r\n const proxy = Object.assign({}, opts);\r\n // If `true`, then connect to the proxy server over TLS.\r\n // Defaults to `false`.\r\n this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol);\r\n // Prefer `hostname` over `host`, and set the `port` if needed.\r\n proxy.host = proxy.hostname || proxy.host;\r\n if (typeof proxy.port === 'string') {\r\n proxy.port = parseInt(proxy.port, 10);\r\n }\r\n if (!proxy.port && proxy.host) {\r\n proxy.port = this.secureProxy ? 443 : 80;\r\n }\r\n // ALPN is supported by Node.js >= v5.\r\n // attempt to negotiate http/1.1 for proxy servers that support http/2\r\n if (this.secureProxy && !('ALPNProtocols' in proxy)) {\r\n proxy.ALPNProtocols = ['http 1.1'];\r\n }\r\n if (proxy.host && proxy.path) {\r\n // If both a `host` and `path` are specified then it's most likely\r\n // the result of a `url.parse()` call... we need to remove the\r\n // `path` portion so that `net.connect()` doesn't attempt to open\r\n // that as a Unix socket file.\r\n delete proxy.path;\r\n delete proxy.pathname;\r\n }\r\n this.proxy = proxy;\r\n }\r\n /**\r\n * Called when the node-core HTTP client library is creating a\r\n * new HTTP request.\r\n *\r\n * @api protected\r\n */\r\n callback(req, opts) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const { proxy, secureProxy } = this;\r\n // Create a socket connection to the proxy server.\r\n let socket;\r\n if (secureProxy) {\r\n debug('Creating `tls.Socket`: %o', proxy);\r\n socket = tls_1.default.connect(proxy);\r\n }\r\n else {\r\n debug('Creating `net.Socket`: %o', proxy);\r\n socket = net_1.default.connect(proxy);\r\n }\r\n const headers = Object.assign({}, proxy.headers);\r\n const hostname = `${opts.host}:${opts.port}`;\r\n let payload = `CONNECT ${hostname} HTTP/1.1\\r\\n`;\r\n // Inject the `Proxy-Authorization` header if necessary.\r\n if (proxy.auth) {\r\n headers['Proxy-Authorization'] = `Basic ${Buffer.from(proxy.auth).toString('base64')}`;\r\n }\r\n // The `Host` header should only include the port\r\n // number when it is not the default port.\r\n let { host, port, secureEndpoint } = opts;\r\n if (!isDefaultPort(port, secureEndpoint)) {\r\n host += `:${port}`;\r\n }\r\n headers.Host = host;\r\n headers.Connection = 'close';\r\n for (const name of Object.keys(headers)) {\r\n payload += `${name}: ${headers[name]}\\r\\n`;\r\n }\r\n const proxyResponsePromise = parse_proxy_response_1.default(socket);\r\n socket.write(`${payload}\\r\\n`);\r\n const { statusCode, buffered } = yield proxyResponsePromise;\r\n if (statusCode === 200) {\r\n req.once('socket', resume);\r\n if (opts.secureEndpoint) {\r\n // The proxy is connecting to a TLS server, so upgrade\r\n // this socket connection to a TLS connection.\r\n debug('Upgrading socket connection to TLS');\r\n const servername = opts.servername || opts.host;\r\n return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket,\r\n servername }));\r\n }\r\n return socket;\r\n }\r\n // Some other status code that's not 200... need to re-play the HTTP\r\n // header \"data\" events onto the socket once the HTTP machinery is\r\n // attached so that the node core `http` can parse and handle the\r\n // error status code.\r\n // Close the original socket, and a new \"fake\" socket is returned\r\n // instead, so that the proxy doesn't get the HTTP request\r\n // written to it (which may contain `Authorization` headers or other\r\n // sensitive data).\r\n //\r\n // See: https://hackerone.com/reports/541502\r\n socket.destroy();\r\n const fakeSocket = new net_1.default.Socket({ writable: false });\r\n fakeSocket.readable = true;\r\n // Need to wait for the \"socket\" event to re-play the \"data\" events.\r\n req.once('socket', (s) => {\r\n debug('replaying proxy buffer for failed request');\r\n assert_1.default(s.listenerCount('data') > 0);\r\n // Replay the \"buffered\" Buffer onto the fake `socket`, since at\r\n // this point the HTTP module machinery has been hooked up for\r\n // the user.\r\n s.push(buffered);\r\n s.push(null);\r\n });\r\n return fakeSocket;\r\n });\r\n }\r\n}\r\nexports.default = HttpsProxyAgent;\r\nfunction resume(socket) {\r\n socket.resume();\r\n}\r\nfunction isDefaultPort(port, secure) {\r\n return Boolean((!secure && port === 80) || (secure && port === 443));\r\n}\r\nfunction isHTTPS(protocol) {\r\n return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false;\r\n}\r\nfunction omit(obj, ...keys) {\r\n const ret = {};\r\n let key;\r\n for (key in obj) {\r\n if (!keys.includes(key)) {\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\r\n//# sourceMappingURL=agent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nconst agent_1 = __importDefault(require(\"./agent\"));\r\nfunction createHttpsProxyAgent(opts) {\r\n return new agent_1.default(opts);\r\n}\r\n(function (createHttpsProxyAgent) {\r\n createHttpsProxyAgent.HttpsProxyAgent = agent_1.default;\r\n createHttpsProxyAgent.prototype = agent_1.default.prototype;\r\n})(createHttpsProxyAgent || (createHttpsProxyAgent = {}));\r\nmodule.exports = createHttpsProxyAgent;\r\n//# sourceMappingURL=index.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst debug_1 = __importDefault(require(\"debug\"));\r\nconst debug = debug_1.default('https-proxy-agent:parse-proxy-response');\r\nfunction parseProxyResponse(socket) {\r\n return new Promise((resolve, reject) => {\r\n // we need to buffer any HTTP traffic that happens with the proxy before we get\r\n // the CONNECT response, so that if the response is anything other than an \"200\"\r\n // response code, then we can re-play the \"data\" events on the socket once the\r\n // HTTP parser is hooked up...\r\n let buffersLength = 0;\r\n const buffers = [];\r\n function read() {\r\n const b = socket.read();\r\n if (b)\r\n ondata(b);\r\n else\r\n socket.once('readable', read);\r\n }\r\n function cleanup() {\r\n socket.removeListener('end', onend);\r\n socket.removeListener('error', onerror);\r\n socket.removeListener('close', onclose);\r\n socket.removeListener('readable', read);\r\n }\r\n function onclose(err) {\r\n debug('onclose had error %o', err);\r\n }\r\n function onend() {\r\n debug('onend');\r\n }\r\n function onerror(err) {\r\n cleanup();\r\n debug('onerror %o', err);\r\n reject(err);\r\n }\r\n function ondata(b) {\r\n buffers.push(b);\r\n buffersLength += b.length;\r\n const buffered = Buffer.concat(buffers, buffersLength);\r\n const endOfHeaders = buffered.indexOf('\\r\\n\\r\\n');\r\n if (endOfHeaders === -1) {\r\n // keep buffering\r\n debug('have not received end of HTTP headers yet...');\r\n read();\r\n return;\r\n }\r\n const firstLine = buffered.toString('ascii', 0, buffered.indexOf('\\r\\n'));\r\n const statusCode = +firstLine.split(' ')[1];\r\n debug('got proxy server response: %o', firstLine);\r\n resolve({\r\n statusCode,\r\n buffered\r\n });\r\n }\r\n socket.on('error', onerror);\r\n socket.on('close', onclose);\r\n socket.on('end', onend);\r\n read();\r\n });\r\n}\r\nexports.default = parseProxyResponse;\r\n//# sourceMappingURL=parse-proxy-response.js.map","// A simple implementation of make-array\r\nfunction makeArray (subject) {\r\n return Array.isArray(subject)\r\n ? subject\r\n : [subject]\r\n}\r\n\r\nconst UNDEFINED = undefined\r\nconst EMPTY = ''\r\nconst SPACE = ' '\r\nconst ESCAPE = '\\\\'\r\nconst REGEX_TEST_BLANK_LINE = /^\\s+$/\r\nconst REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\\\]|^)\\\\$/\r\nconst REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\\\!/\r\nconst REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\\\#/\r\nconst REGEX_SPLITALL_CRLF = /\\r?\\n/g\r\n\r\n// Invalid:\r\n// - /foo,\r\n// - ./foo,\r\n// - ../foo,\r\n// - .\r\n// - ..\r\n// Valid:\r\n// - .foo\r\nconst REGEX_TEST_INVALID_PATH = /^\\.{0,2}\\/|^\\.{1,2}$/\r\n\r\nconst REGEX_TEST_TRAILING_SLASH = /\\/$/\r\n\r\nconst SLASH = '/'\r\n\r\n// Do not use ternary expression here, since \"istanbul ignore next\" is buggy\r\nlet TMP_KEY_IGNORE = 'node-ignore'\r\n/* istanbul ignore else */\r\nif (typeof Symbol !== 'undefined') {\r\n TMP_KEY_IGNORE = Symbol.for('node-ignore')\r\n}\r\nconst KEY_IGNORE = TMP_KEY_IGNORE\r\n\r\nconst define = (object, key, value) => {\r\n Object.defineProperty(object, key, {value})\r\n return value\r\n}\r\n\r\nconst REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g\r\n\r\nconst RETURN_FALSE = () => false\r\n\r\n// Sanitize the range of a regular expression\r\n// The cases are complicated, see test cases for details\r\nconst sanitizeRange = range => range.replace(\r\n REGEX_REGEXP_RANGE,\r\n (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0)\r\n ? match\r\n // Invalid range (out of order) which is ok for gitignore rules but\r\n // fatal for JavaScript regular expression, so eliminate it.\r\n : EMPTY\r\n)\r\n\r\n// See fixtures #59\r\nconst cleanRangeBackSlash = slashes => {\r\n const {length} = slashes\r\n return slashes.slice(0, length - length % 2)\r\n}\r\n\r\n// > If the pattern ends with a slash,\r\n// > it is removed for the purpose of the following description,\r\n// > but it would only find a match with a directory.\r\n// > In other words, foo/ will match a directory foo and paths underneath it,\r\n// > but will not match a regular file or a symbolic link foo\r\n// > (this is consistent with the way how pathspec works in general in Git).\r\n// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`'\r\n// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call\r\n// you could use option `mark: true` with `glob`\r\n\r\n// '`foo/`' should not continue with the '`..`'\r\nconst REPLACERS = [\r\n\r\n [\r\n // Remove BOM\r\n // TODO:\r\n // Other similar zero-width characters?\r\n /^\\uFEFF/,\r\n () => EMPTY\r\n ],\r\n\r\n // > Trailing spaces are ignored unless they are quoted with backslash (\"\\\")\r\n [\r\n // (a\\ ) -> (a )\r\n // (a ) -> (a)\r\n // (a ) -> (a)\r\n // (a \\ ) -> (a )\r\n /((?:\\\\\\\\)*?)(\\\\?\\s+)$/,\r\n (_, m1, m2) => m1 + (\r\n m2.indexOf('\\\\') === 0\r\n ? SPACE\r\n : EMPTY\r\n )\r\n ],\r\n\r\n // Replace (\\ ) with ' '\r\n // (\\ ) -> ' '\r\n // (\\\\ ) -> '\\\\ '\r\n // (\\\\\\ ) -> '\\\\ '\r\n [\r\n /(\\\\+?)\\s/g,\r\n (_, m1) => {\r\n const {length} = m1\r\n return m1.slice(0, length - length % 2) + SPACE\r\n }\r\n ],\r\n\r\n // Escape metacharacters\r\n // which is written down by users but means special for regular expressions.\r\n\r\n // > There are 12 characters with special meanings:\r\n // > - the backslash \\,\r\n // > - the caret ^,\r\n // > - the dollar sign $,\r\n // > - the period or dot .,\r\n // > - the vertical bar or pipe symbol |,\r\n // > - the question mark ?,\r\n // > - the asterisk or star *,\r\n // > - the plus sign +,\r\n // > - the opening parenthesis (,\r\n // > - the closing parenthesis ),\r\n // > - and the opening square bracket [,\r\n // > - the opening curly brace {,\r\n // > These special characters are often called \"metacharacters\".\r\n [\r\n /[\\\\$.|*+(){^]/g,\r\n match => `\\\\${match}`\r\n ],\r\n\r\n [\r\n // > a question mark (?) matches a single character\r\n /(?!\\\\)\\?/g,\r\n () => '[^/]'\r\n ],\r\n\r\n // leading slash\r\n [\r\n\r\n // > A leading slash matches the beginning of the pathname.\r\n // > For example, \"/*.c\" matches \"cat-file.c\" but not \"mozilla-sha1/sha1.c\".\r\n // A leading slash matches the beginning of the pathname\r\n /^\\//,\r\n () => '^'\r\n ],\r\n\r\n // replace special metacharacter slash after the leading slash\r\n [\r\n /\\//g,\r\n () => '\\\\/'\r\n ],\r\n\r\n [\r\n // > A leading \"**\" followed by a slash means match in all directories.\r\n // > For example, \"**/foo\" matches file or directory \"foo\" anywhere,\r\n // > the same as pattern \"foo\".\r\n // > \"**/foo/bar\" matches file or directory \"bar\" anywhere that is directly\r\n // > under directory \"foo\".\r\n // Notice that the '*'s have been replaced as '\\\\*'\r\n /^\\^*\\\\\\*\\\\\\*\\\\\\//,\r\n\r\n // '**/foo' <-> 'foo'\r\n () => '^(?:.*\\\\/)?'\r\n ],\r\n\r\n // starting\r\n [\r\n // there will be no leading '/'\r\n // (which has been replaced by section \"leading slash\")\r\n // If starts with '**', adding a '^' to the regular expression also works\r\n /^(?=[^^])/,\r\n function startingReplacer () {\r\n // If has a slash `/` at the beginning or middle\r\n return !/\\/(?!$)/.test(this)\r\n // > Prior to 2.22.1\r\n // > If the pattern does not contain a slash /,\r\n // > Git treats it as a shell glob pattern\r\n // Actually, if there is only a trailing slash,\r\n // git also treats it as a shell glob pattern\r\n\r\n // After 2.22.1 (compatible but clearer)\r\n // > If there is a separator at the beginning or middle (or both)\r\n // > of the pattern, then the pattern is relative to the directory\r\n // > level of the particular .gitignore file itself.\r\n // > Otherwise the pattern may also match at any level below\r\n // > the .gitignore level.\r\n ? '(?:^|\\\\/)'\r\n\r\n // > Otherwise, Git treats the pattern as a shell glob suitable for\r\n // > consumption by fnmatch(3)\r\n : '^'\r\n }\r\n ],\r\n\r\n // two globstars\r\n [\r\n // Use lookahead assertions so that we could match more than one `'/**'`\r\n /\\\\\\/\\\\\\*\\\\\\*(?=\\\\\\/|$)/g,\r\n\r\n // Zero, one or several directories\r\n // should not use '*', or it will be replaced by the next replacer\r\n\r\n // Check if it is not the last `'/**'`\r\n (_, index, str) => index + 6 < str.length\r\n\r\n // case: /**/\r\n // > A slash followed by two consecutive asterisks then a slash matches\r\n // > zero or more directories.\r\n // > For example, \"a/**/b\" matches \"a/b\", \"a/x/b\", \"a/x/y/b\" and so on.\r\n // '/**/'\r\n ? '(?:\\\\/[^\\\\/]+)*'\r\n\r\n // case: /**\r\n // > A trailing `\"/**\"` matches everything inside.\r\n\r\n // #21: everything inside but it should not include the current folder\r\n : '\\\\/.+'\r\n ],\r\n\r\n // normal intermediate wildcards\r\n [\r\n // Never replace escaped '*'\r\n // ignore rule '\\*' will match the path '*'\r\n\r\n // 'abc.*/' -> go\r\n // 'abc.*' -> skip this rule,\r\n // coz trailing single wildcard will be handed by [trailing wildcard]\r\n /(^|[^\\\\]+)(\\\\\\*)+(?=.+)/g,\r\n\r\n // '*.js' matches '.js'\r\n // '*.js' doesn't match 'abc'\r\n (_, p1, p2) => {\r\n // 1.\r\n // > An asterisk \"*\" matches anything except a slash.\r\n // 2.\r\n // > Other consecutive asterisks are considered regular asterisks\r\n // > and will match according to the previous rules.\r\n const unescaped = p2.replace(/\\\\\\*/g, '[^\\\\/]*')\r\n return p1 + unescaped\r\n }\r\n ],\r\n\r\n [\r\n // unescape, revert step 3 except for back slash\r\n // For example, if a user escape a '\\\\*',\r\n // after step 3, the result will be '\\\\\\\\\\\\*'\r\n /\\\\\\\\\\\\(?=[$.|*+(){^])/g,\r\n () => ESCAPE\r\n ],\r\n\r\n [\r\n // '\\\\\\\\' -> '\\\\'\r\n /\\\\\\\\/g,\r\n () => ESCAPE\r\n ],\r\n\r\n [\r\n // > The range notation, e.g. [a-zA-Z],\r\n // > can be used to match one of the characters in a range.\r\n\r\n // `\\` is escaped by step 3\r\n /(\\\\)?\\[([^\\]/]*?)(\\\\*)($|\\])/g,\r\n (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE\r\n // '\\\\[bar]' -> '\\\\\\\\[bar\\\\]'\r\n ? `\\\\[${range}${cleanRangeBackSlash(endEscape)}${close}`\r\n : close === ']'\r\n ? endEscape.length % 2 === 0\r\n // A normal case, and it is a range notation\r\n // '[bar]'\r\n // '[bar\\\\\\\\]'\r\n ? `[${sanitizeRange(range)}${endEscape}]`\r\n // Invalid range notaton\r\n // '[bar\\\\]' -> '[bar\\\\\\\\]'\r\n : '[]'\r\n : '[]'\r\n ],\r\n\r\n // ending\r\n [\r\n // 'js' will not match 'js.'\r\n // 'ab' will not match 'abc'\r\n /(?:[^*])$/,\r\n\r\n // WTF!\r\n // https://git-scm.com/docs/gitignore\r\n // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)\r\n // which re-fixes #24, #38\r\n\r\n // > If there is a separator at the end of the pattern then the pattern\r\n // > will only match directories, otherwise the pattern can match both\r\n // > files and directories.\r\n\r\n // 'js*' will not match 'a.js'\r\n // 'js/' will not match 'a.js'\r\n // 'js' will match 'a.js' and 'a.js/'\r\n match => /\\/$/.test(match)\r\n // foo/ will not match 'foo'\r\n ? `${match}$`\r\n // foo matches 'foo' and 'foo/'\r\n : `${match}(?=$|\\\\/$)`\r\n ]\r\n]\r\n\r\nconst REGEX_REPLACE_TRAILING_WILDCARD = /(^|\\\\\\/)?\\\\\\*$/\r\nconst MODE_IGNORE = 'regex'\r\nconst MODE_CHECK_IGNORE = 'checkRegex'\r\nconst UNDERSCORE = '_'\r\n\r\nconst TRAILING_WILD_CARD_REPLACERS = {\r\n [MODE_IGNORE] (_, p1) {\r\n const prefix = p1\r\n // '\\^':\r\n // '/*' does not match EMPTY\r\n // '/*' does not match everything\r\n\r\n // '\\\\\\/':\r\n // 'abc/*' does not match 'abc/'\r\n ? `${p1}[^/]+`\r\n\r\n // 'a*' matches 'a'\r\n // 'a*' matches 'aa'\r\n : '[^/]*'\r\n\r\n return `${prefix}(?=$|\\\\/$)`\r\n },\r\n\r\n [MODE_CHECK_IGNORE] (_, p1) {\r\n // When doing `git check-ignore`\r\n const prefix = p1\r\n // '\\\\\\/':\r\n // 'abc/*' DOES match 'abc/' !\r\n ? `${p1}[^/]*`\r\n\r\n // 'a*' matches 'a'\r\n // 'a*' matches 'aa'\r\n : '[^/]*'\r\n\r\n return `${prefix}(?=$|\\\\/$)`\r\n }\r\n}\r\n\r\n// @param {pattern}\r\nconst makeRegexPrefix = pattern => REPLACERS.reduce(\r\n (prev, [matcher, replacer]) =>\r\n prev.replace(matcher, replacer.bind(pattern)),\r\n pattern\r\n)\r\n\r\nconst isString = subject => typeof subject === 'string'\r\n\r\n// > A blank line matches no files, so it can serve as a separator for readability.\r\nconst checkPattern = pattern => pattern\r\n && isString(pattern)\r\n && !REGEX_TEST_BLANK_LINE.test(pattern)\r\n && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern)\r\n\r\n // > A line starting with # serves as a comment.\r\n && pattern.indexOf('#') !== 0\r\n\r\nconst splitPattern = pattern => pattern\r\n.split(REGEX_SPLITALL_CRLF)\r\n.filter(Boolean)\r\n\r\nclass IgnoreRule {\r\n constructor (\r\n pattern,\r\n mark,\r\n body,\r\n ignoreCase,\r\n negative,\r\n prefix\r\n ) {\r\n this.pattern = pattern\r\n this.mark = mark\r\n this.negative = negative\r\n\r\n define(this, 'body', body)\r\n define(this, 'ignoreCase', ignoreCase)\r\n define(this, 'regexPrefix', prefix)\r\n }\r\n\r\n get regex () {\r\n const key = UNDERSCORE + MODE_IGNORE\r\n\r\n if (this[key]) {\r\n return this[key]\r\n }\r\n\r\n return this._make(MODE_IGNORE, key)\r\n }\r\n\r\n get checkRegex () {\r\n const key = UNDERSCORE + MODE_CHECK_IGNORE\r\n\r\n if (this[key]) {\r\n return this[key]\r\n }\r\n\r\n return this._make(MODE_CHECK_IGNORE, key)\r\n }\r\n\r\n _make (mode, key) {\r\n const str = this.regexPrefix.replace(\r\n REGEX_REPLACE_TRAILING_WILDCARD,\r\n\r\n // It does not need to bind pattern\r\n TRAILING_WILD_CARD_REPLACERS[mode]\r\n )\r\n\r\n const regex = this.ignoreCase\r\n ? new RegExp(str, 'i')\r\n : new RegExp(str)\r\n\r\n return define(this, key, regex)\r\n }\r\n}\r\n\r\nconst createRule = ({\r\n pattern,\r\n mark\r\n}, ignoreCase) => {\r\n let negative = false\r\n let body = pattern\r\n\r\n // > An optional prefix \"!\" which negates the pattern;\r\n if (body.indexOf('!') === 0) {\r\n negative = true\r\n body = body.substr(1)\r\n }\r\n\r\n body = body\r\n // > Put a backslash (\"\\\") in front of the first \"!\" for patterns that\r\n // > begin with a literal \"!\", for example, `\"\\!important!.txt\"`.\r\n .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!')\r\n // > Put a backslash (\"\\\") in front of the first hash for patterns that\r\n // > begin with a hash.\r\n .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#')\r\n\r\n const regexPrefix = makeRegexPrefix(body)\r\n\r\n return new IgnoreRule(\r\n pattern,\r\n mark,\r\n body,\r\n ignoreCase,\r\n negative,\r\n regexPrefix\r\n )\r\n}\r\n\r\nclass RuleManager {\r\n constructor (ignoreCase) {\r\n this._ignoreCase = ignoreCase\r\n this._rules = []\r\n }\r\n\r\n _add (pattern) {\r\n // #32\r\n if (pattern && pattern[KEY_IGNORE]) {\r\n this._rules = this._rules.concat(pattern._rules._rules)\r\n this._added = true\r\n return\r\n }\r\n\r\n if (isString(pattern)) {\r\n pattern = {\r\n pattern\r\n }\r\n }\r\n\r\n if (checkPattern(pattern.pattern)) {\r\n const rule = createRule(pattern, this._ignoreCase)\r\n this._added = true\r\n this._rules.push(rule)\r\n }\r\n }\r\n\r\n // @param {Array | string | Ignore} pattern\r\n add (pattern) {\r\n this._added = false\r\n\r\n makeArray(\r\n isString(pattern)\r\n ? splitPattern(pattern)\r\n : pattern\r\n ).forEach(this._add, this)\r\n\r\n return this._added\r\n }\r\n\r\n // Test one single path without recursively checking parent directories\r\n //\r\n // - checkUnignored `boolean` whether should check if the path is unignored,\r\n // setting `checkUnignored` to `false` could reduce additional\r\n // path matching.\r\n // - check `string` either `MODE_IGNORE` or `MODE_CHECK_IGNORE`\r\n\r\n // @returns {TestResult} true if a file is ignored\r\n test (path, checkUnignored, mode) {\r\n let ignored = false\r\n let unignored = false\r\n let matchedRule\r\n\r\n this._rules.forEach(rule => {\r\n const {negative} = rule\r\n\r\n // | ignored : unignored\r\n // -------- | ---------------------------------------\r\n // negative | 0:0 | 0:1 | 1:0 | 1:1\r\n // -------- | ------- | ------- | ------- | --------\r\n // 0 | TEST | TEST | SKIP | X\r\n // 1 | TESTIF | SKIP | TEST | X\r\n\r\n // - SKIP: always skip\r\n // - TEST: always test\r\n // - TESTIF: only test if checkUnignored\r\n // - X: that never happen\r\n if (\r\n unignored === negative && ignored !== unignored\r\n || negative && !ignored && !unignored && !checkUnignored\r\n ) {\r\n return\r\n }\r\n\r\n const matched = rule[mode].test(path)\r\n\r\n if (!matched) {\r\n return\r\n }\r\n\r\n ignored = !negative\r\n unignored = negative\r\n\r\n matchedRule = negative\r\n ? UNDEFINED\r\n : rule\r\n })\r\n\r\n const ret = {\r\n ignored,\r\n unignored\r\n }\r\n\r\n if (matchedRule) {\r\n ret.rule = matchedRule\r\n }\r\n\r\n return ret\r\n }\r\n}\r\n\r\nconst throwError = (message, Ctor) => {\r\n throw new Ctor(message)\r\n}\r\n\r\nconst checkPath = (path, originalPath, doThrow) => {\r\n if (!isString(path)) {\r\n return doThrow(\r\n `path must be a string, but got \\`${originalPath}\\``,\r\n TypeError\r\n )\r\n }\r\n\r\n // We don't know if we should ignore EMPTY, so throw\r\n if (!path) {\r\n return doThrow(`path must not be empty`, TypeError)\r\n }\r\n\r\n // Check if it is a relative path\r\n if (checkPath.isNotRelative(path)) {\r\n const r = '`path.relative()`d'\r\n return doThrow(\r\n `path should be a ${r} string, but got \"${originalPath}\"`,\r\n RangeError\r\n )\r\n }\r\n\r\n return true\r\n}\r\n\r\nconst isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path)\r\n\r\ncheckPath.isNotRelative = isNotRelative\r\n\r\n// On windows, the following function will be replaced\r\n/* istanbul ignore next */\r\ncheckPath.convert = p => p\r\n\r\n\r\nclass Ignore {\r\n constructor ({\r\n ignorecase = true,\r\n ignoreCase = ignorecase,\r\n allowRelativePaths = false\r\n } = {}) {\r\n define(this, KEY_IGNORE, true)\r\n\r\n this._rules = new RuleManager(ignoreCase)\r\n this._strictPathCheck = !allowRelativePaths\r\n this._initCache()\r\n }\r\n\r\n _initCache () {\r\n // A cache for the result of `.ignores()`\r\n this._ignoreCache = Object.create(null)\r\n\r\n // A cache for the result of `.test()`\r\n this._testCache = Object.create(null)\r\n }\r\n\r\n add (pattern) {\r\n if (this._rules.add(pattern)) {\r\n // Some rules have just added to the ignore,\r\n // making the behavior changed,\r\n // so we need to re-initialize the result cache\r\n this._initCache()\r\n }\r\n\r\n return this\r\n }\r\n\r\n // legacy\r\n addPattern (pattern) {\r\n return this.add(pattern)\r\n }\r\n\r\n // @returns {TestResult}\r\n _test (originalPath, cache, checkUnignored, slices) {\r\n const path = originalPath\r\n // Supports nullable path\r\n && checkPath.convert(originalPath)\r\n\r\n checkPath(\r\n path,\r\n originalPath,\r\n this._strictPathCheck\r\n ? throwError\r\n : RETURN_FALSE\r\n )\r\n\r\n return this._t(path, cache, checkUnignored, slices)\r\n }\r\n\r\n checkIgnore (path) {\r\n // If the path doest not end with a slash, `.ignores()` is much equivalent\r\n // to `git check-ignore`\r\n if (!REGEX_TEST_TRAILING_SLASH.test(path)) {\r\n return this.test(path)\r\n }\r\n\r\n const slices = path.split(SLASH).filter(Boolean)\r\n slices.pop()\r\n\r\n if (slices.length) {\r\n const parent = this._t(\r\n slices.join(SLASH) + SLASH,\r\n this._testCache,\r\n true,\r\n slices\r\n )\r\n\r\n if (parent.ignored) {\r\n return parent\r\n }\r\n }\r\n\r\n return this._rules.test(path, false, MODE_CHECK_IGNORE)\r\n }\r\n\r\n _t (\r\n // The path to be tested\r\n path,\r\n\r\n // The cache for the result of a certain checking\r\n cache,\r\n\r\n // Whether should check if the path is unignored\r\n checkUnignored,\r\n\r\n // The path slices\r\n slices\r\n ) {\r\n if (path in cache) {\r\n return cache[path]\r\n }\r\n\r\n if (!slices) {\r\n // path/to/a.js\r\n // ['path', 'to', 'a.js']\r\n slices = path.split(SLASH).filter(Boolean)\r\n }\r\n\r\n slices.pop()\r\n\r\n // If the path has no parent directory, just test it\r\n if (!slices.length) {\r\n return cache[path] = this._rules.test(path, checkUnignored, MODE_IGNORE)\r\n }\r\n\r\n const parent = this._t(\r\n slices.join(SLASH) + SLASH,\r\n cache,\r\n checkUnignored,\r\n slices\r\n )\r\n\r\n // If the path contains a parent directory, check the parent first\r\n return cache[path] = parent.ignored\r\n // > It is not possible to re-include a file if a parent directory of\r\n // > that file is excluded.\r\n ? parent\r\n : this._rules.test(path, checkUnignored, MODE_IGNORE)\r\n }\r\n\r\n ignores (path) {\r\n return this._test(path, this._ignoreCache, false).ignored\r\n }\r\n\r\n createFilter () {\r\n return path => !this.ignores(path)\r\n }\r\n\r\n filter (paths) {\r\n return makeArray(paths).filter(this.createFilter())\r\n }\r\n\r\n // @returns {TestResult}\r\n test (path) {\r\n return this._test(path, this._testCache, true)\r\n }\r\n}\r\n\r\nconst factory = options => new Ignore(options)\r\n\r\nconst isPathValid = path =>\r\n checkPath(path && checkPath.convert(path), path, RETURN_FALSE)\r\n\r\n/* istanbul ignore next */\r\nconst setupWindows = () => {\r\n /* eslint no-control-regex: \"off\" */\r\n const makePosix = str => /^\\\\\\\\\\?\\\\/.test(str)\r\n || /[\"<>|\\u0000-\\u001F]+/u.test(str)\r\n ? str\r\n : str.replace(/\\\\/g, '/')\r\n\r\n checkPath.convert = makePosix\r\n\r\n // 'C:\\\\foo' <- 'C:\\\\foo' has been converted to 'C:/'\r\n // 'd:\\\\foo'\r\n const REGEX_TEST_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\\//i\r\n checkPath.isNotRelative = path =>\r\n REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path)\r\n || isNotRelative(path)\r\n}\r\n\r\n\r\n// Windows\r\n// --------------------------------------------------------------\r\n/* istanbul ignore next */\r\nif (\r\n // Detect `process` so that it can run in browsers.\r\n typeof process !== 'undefined'\r\n && process.platform === 'win32'\r\n) {\r\n setupWindows()\r\n}\r\n\r\n// COMMONJS_EXPORTS ////////////////////////////////////////////////////////////\r\n\r\nmodule.exports = factory\r\n\r\n// Although it is an anti-pattern,\r\n// it is still widely misused by a lot of libraries in github\r\n// Ref: https://github.com/search?q=ignore.default%28%29&type=code\r\nfactory.default = factory\r\n\r\nmodule.exports.isPathValid = isPathValid\r\n\r\n// For testing purposes\r\ndefine(module.exports, Symbol.for('setupWindows'), setupWindows)\r\n","/*!\r\n * is-extglob \r\n *\r\n * Copyright (c) 2014-2016, Jon Schlinkert.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nmodule.exports = function isExtglob(str) {\r\n if (typeof str !== 'string' || str === '') {\r\n return false;\r\n }\r\n\r\n var match;\r\n while ((match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str))) {\r\n if (match[2]) return true;\r\n str = str.slice(match.index + match[0].length);\r\n }\r\n\r\n return false;\r\n};\r\n","/*!\r\n * is-glob \r\n *\r\n * Copyright (c) 2014-2017, Jon Schlinkert.\r\n * Released under the MIT License.\r\n */\r\n\r\nvar isExtglob = require('is-extglob');\r\nvar chars = { '{': '}', '(': ')', '[': ']'};\r\nvar strictCheck = function(str) {\r\n if (str[0] === '!') {\r\n return true;\r\n }\r\n var index = 0;\r\n var pipeIndex = -2;\r\n var closeSquareIndex = -2;\r\n var closeCurlyIndex = -2;\r\n var closeParenIndex = -2;\r\n var backSlashIndex = -2;\r\n while (index < str.length) {\r\n if (str[index] === '*') {\r\n return true;\r\n }\r\n\r\n if (str[index + 1] === '?' && /[\\].+)]/.test(str[index])) {\r\n return true;\r\n }\r\n\r\n if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {\r\n if (closeSquareIndex < index) {\r\n closeSquareIndex = str.indexOf(']', index);\r\n }\r\n if (closeSquareIndex > index) {\r\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\r\n return true;\r\n }\r\n backSlashIndex = str.indexOf('\\\\', index);\r\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {\r\n closeCurlyIndex = str.indexOf('}', index);\r\n if (closeCurlyIndex > index) {\r\n backSlashIndex = str.indexOf('\\\\', index);\r\n if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {\r\n closeParenIndex = str.indexOf(')', index);\r\n if (closeParenIndex > index) {\r\n backSlashIndex = str.indexOf('\\\\', index);\r\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {\r\n if (pipeIndex < index) {\r\n pipeIndex = str.indexOf('|', index);\r\n }\r\n if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {\r\n closeParenIndex = str.indexOf(')', pipeIndex);\r\n if (closeParenIndex > pipeIndex) {\r\n backSlashIndex = str.indexOf('\\\\', pipeIndex);\r\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (str[index] === '\\\\') {\r\n var open = str[index + 1];\r\n index += 2;\r\n var close = chars[open];\r\n\r\n if (close) {\r\n var n = str.indexOf(close, index);\r\n if (n !== -1) {\r\n index = n + 1;\r\n }\r\n }\r\n\r\n if (str[index] === '!') {\r\n return true;\r\n }\r\n } else {\r\n index++;\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nvar relaxedCheck = function(str) {\r\n if (str[0] === '!') {\r\n return true;\r\n }\r\n var index = 0;\r\n while (index < str.length) {\r\n if (/[*?{}()[\\]]/.test(str[index])) {\r\n return true;\r\n }\r\n\r\n if (str[index] === '\\\\') {\r\n var open = str[index + 1];\r\n index += 2;\r\n var close = chars[open];\r\n\r\n if (close) {\r\n var n = str.indexOf(close, index);\r\n if (n !== -1) {\r\n index = n + 1;\r\n }\r\n }\r\n\r\n if (str[index] === '!') {\r\n return true;\r\n }\r\n } else {\r\n index++;\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nmodule.exports = function isGlob(str, options) {\r\n if (typeof str !== 'string' || str === '') {\r\n return false;\r\n }\r\n\r\n if (isExtglob(str)) {\r\n return true;\r\n }\r\n\r\n var check = strictCheck;\r\n\r\n // optionally relax check\r\n if (options && options.strict === false) {\r\n check = relaxedCheck;\r\n }\r\n\r\n return check(str);\r\n};\r\n","/*!\r\n * is-number \r\n *\r\n * Copyright (c) 2014-present, Jon Schlinkert.\r\n * Released under the MIT License.\r\n */\r\n\r\n'use strict';\r\n\r\nmodule.exports = function(num) {\r\n if (typeof num === 'number') {\r\n return num - num === 0;\r\n }\r\n if (typeof num === 'string' && num.trim() !== '') {\r\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\r\n }\r\n return false;\r\n};\r\n","'use strict'\r\n/*\r\n * merge2\r\n * https://github.com/teambition/merge2\r\n *\r\n * Copyright (c) 2014-2020 Teambition\r\n * Licensed under the MIT license.\r\n */\r\nconst Stream = require('stream')\r\nconst PassThrough = Stream.PassThrough\r\nconst slice = Array.prototype.slice\r\n\r\nmodule.exports = merge2\r\n\r\nfunction merge2 () {\r\n const streamsQueue = []\r\n const args = slice.call(arguments)\r\n let merging = false\r\n let options = args[args.length - 1]\r\n\r\n if (options && !Array.isArray(options) && options.pipe == null) {\r\n args.pop()\r\n } else {\r\n options = {}\r\n }\r\n\r\n const doEnd = options.end !== false\r\n const doPipeError = options.pipeError === true\r\n if (options.objectMode == null) {\r\n options.objectMode = true\r\n }\r\n if (options.highWaterMark == null) {\r\n options.highWaterMark = 64 * 1024\r\n }\r\n const mergedStream = PassThrough(options)\r\n\r\n function addStream () {\r\n for (let i = 0, len = arguments.length; i < len; i++) {\r\n streamsQueue.push(pauseStreams(arguments[i], options))\r\n }\r\n mergeStream()\r\n return this\r\n }\r\n\r\n function mergeStream () {\r\n if (merging) {\r\n return\r\n }\r\n merging = true\r\n\r\n let streams = streamsQueue.shift()\r\n if (!streams) {\r\n process.nextTick(endStream)\r\n return\r\n }\r\n if (!Array.isArray(streams)) {\r\n streams = [streams]\r\n }\r\n\r\n let pipesCount = streams.length + 1\r\n\r\n function next () {\r\n if (--pipesCount > 0) {\r\n return\r\n }\r\n merging = false\r\n mergeStream()\r\n }\r\n\r\n function pipe (stream) {\r\n function onend () {\r\n stream.removeListener('merge2UnpipeEnd', onend)\r\n stream.removeListener('end', onend)\r\n if (doPipeError) {\r\n stream.removeListener('error', onerror)\r\n }\r\n next()\r\n }\r\n function onerror (err) {\r\n mergedStream.emit('error', err)\r\n }\r\n // skip ended stream\r\n if (stream._readableState.endEmitted) {\r\n return next()\r\n }\r\n\r\n stream.on('merge2UnpipeEnd', onend)\r\n stream.on('end', onend)\r\n\r\n if (doPipeError) {\r\n stream.on('error', onerror)\r\n }\r\n\r\n stream.pipe(mergedStream, { end: false })\r\n // compatible for old stream\r\n stream.resume()\r\n }\r\n\r\n for (let i = 0; i < streams.length; i++) {\r\n pipe(streams[i])\r\n }\r\n\r\n next()\r\n }\r\n\r\n function endStream () {\r\n merging = false\r\n // emit 'queueDrain' when all streams merged.\r\n mergedStream.emit('queueDrain')\r\n if (doEnd) {\r\n mergedStream.end()\r\n }\r\n }\r\n\r\n mergedStream.setMaxListeners(0)\r\n mergedStream.add = addStream\r\n mergedStream.on('unpipe', function (stream) {\r\n stream.emit('merge2UnpipeEnd')\r\n })\r\n\r\n if (args.length) {\r\n addStream.apply(null, args)\r\n }\r\n return mergedStream\r\n}\r\n\r\n// check and pause streams for pipe.\r\nfunction pauseStreams (streams, options) {\r\n if (!Array.isArray(streams)) {\r\n // Backwards-compat with old-style streams\r\n if (!streams._readableState && streams.pipe) {\r\n streams = streams.pipe(PassThrough(options))\r\n }\r\n if (!streams._readableState || !streams.pause || !streams.pipe) {\r\n throw new Error('Only readable stream can be merged.')\r\n }\r\n streams.pause()\r\n } else {\r\n for (let i = 0, len = streams.length; i < len; i++) {\r\n streams[i] = pauseStreams(streams[i], options)\r\n }\r\n }\r\n return streams\r\n}\r\n","'use strict';\r\n\r\nconst util = require('util');\r\nconst braces = require('braces');\r\nconst picomatch = require('picomatch');\r\nconst utils = require('picomatch/lib/utils');\r\n\r\nconst isEmptyString = v => v === '' || v === './';\r\nconst hasBraces = v => {\r\n const index = v.indexOf('{');\r\n return index > -1 && v.indexOf('}', index) > -1;\r\n};\r\n\r\n/**\r\n * Returns an array of strings that match one or more glob patterns.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * // mm(list, patterns[, options]);\r\n *\r\n * console.log(mm(['a.js', 'a.txt'], ['*.js']));\r\n * //=> [ 'a.js' ]\r\n * ```\r\n * @param {String|Array} `list` List of strings to match.\r\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\r\n * @param {Object} `options` See available [options](#options)\r\n * @return {Array} Returns an array of matches\r\n * @summary false\r\n * @api public\r\n */\r\n\r\nconst micromatch = (list, patterns, options) => {\r\n patterns = [].concat(patterns);\r\n list = [].concat(list);\r\n\r\n let omit = new Set();\r\n let keep = new Set();\r\n let items = new Set();\r\n let negatives = 0;\r\n\r\n let onResult = state => {\r\n items.add(state.output);\r\n if (options && options.onResult) {\r\n options.onResult(state);\r\n }\r\n };\r\n\r\n for (let i = 0; i < patterns.length; i++) {\r\n let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);\r\n let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\r\n if (negated) negatives++;\r\n\r\n for (let item of list) {\r\n let matched = isMatch(item, true);\r\n\r\n let match = negated ? !matched.isMatch : matched.isMatch;\r\n if (!match) continue;\r\n\r\n if (negated) {\r\n omit.add(matched.output);\r\n } else {\r\n omit.delete(matched.output);\r\n keep.add(matched.output);\r\n }\r\n }\r\n }\r\n\r\n let result = negatives === patterns.length ? [...items] : [...keep];\r\n let matches = result.filter(item => !omit.has(item));\r\n\r\n if (options && matches.length === 0) {\r\n if (options.failglob === true) {\r\n throw new Error(`No matches found for \"${patterns.join(', ')}\"`);\r\n }\r\n\r\n if (options.nonull === true || options.nullglob === true) {\r\n return options.unescape ? patterns.map(p => p.replace(/\\\\/g, '')) : patterns;\r\n }\r\n }\r\n\r\n return matches;\r\n};\r\n\r\n/**\r\n * Backwards compatibility\r\n */\r\n\r\nmicromatch.match = micromatch;\r\n\r\n/**\r\n * Returns a matcher function from the given glob `pattern` and `options`.\r\n * The returned function takes a string to match as its only argument and returns\r\n * true if the string is a match.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * // mm.matcher(pattern[, options]);\r\n *\r\n * const isMatch = mm.matcher('*.!(*a)');\r\n * console.log(isMatch('a.a')); //=> false\r\n * console.log(isMatch('a.b')); //=> true\r\n * ```\r\n * @param {String} `pattern` Glob pattern\r\n * @param {Object} `options`\r\n * @return {Function} Returns a matcher function.\r\n * @api public\r\n */\r\n\r\nmicromatch.matcher = (pattern, options) => picomatch(pattern, options);\r\n\r\n/**\r\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * // mm.isMatch(string, patterns[, options]);\r\n *\r\n * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true\r\n * console.log(mm.isMatch('a.a', 'b.*')); //=> false\r\n * ```\r\n * @param {String} `str` The string to test.\r\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\r\n * @param {Object} `[options]` See available [options](#options).\r\n * @return {Boolean} Returns true if any patterns match `str`\r\n * @api public\r\n */\r\n\r\nmicromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\r\n\r\n/**\r\n * Backwards compatibility\r\n */\r\n\r\nmicromatch.any = micromatch.isMatch;\r\n\r\n/**\r\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * // mm.not(list, patterns[, options]);\r\n *\r\n * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));\r\n * //=> ['b.b', 'c.c']\r\n * ```\r\n * @param {Array} `list` Array of strings to match.\r\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\r\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\r\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\r\n * @api public\r\n */\r\n\r\nmicromatch.not = (list, patterns, options = {}) => {\r\n patterns = [].concat(patterns).map(String);\r\n let result = new Set();\r\n let items = [];\r\n\r\n let onResult = state => {\r\n if (options.onResult) options.onResult(state);\r\n items.push(state.output);\r\n };\r\n\r\n let matches = new Set(micromatch(list, patterns, { ...options, onResult }));\r\n\r\n for (let item of items) {\r\n if (!matches.has(item)) {\r\n result.add(item);\r\n }\r\n }\r\n return [...result];\r\n};\r\n\r\n/**\r\n * Returns true if the given `string` contains the given pattern. Similar\r\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\r\n *\r\n * ```js\r\n * var mm = require('micromatch');\r\n * // mm.contains(string, pattern[, options]);\r\n *\r\n * console.log(mm.contains('aa/bb/cc', '*b'));\r\n * //=> true\r\n * console.log(mm.contains('aa/bb/cc', '*d'));\r\n * //=> false\r\n * ```\r\n * @param {String} `str` The string to match.\r\n * @param {String|Array} `patterns` Glob pattern to use for matching.\r\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\r\n * @return {Boolean} Returns true if any of the patterns matches any part of `str`.\r\n * @api public\r\n */\r\n\r\nmicromatch.contains = (str, pattern, options) => {\r\n if (typeof str !== 'string') {\r\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\r\n }\r\n\r\n if (Array.isArray(pattern)) {\r\n return pattern.some(p => micromatch.contains(str, p, options));\r\n }\r\n\r\n if (typeof pattern === 'string') {\r\n if (isEmptyString(str) || isEmptyString(pattern)) {\r\n return false;\r\n }\r\n\r\n if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {\r\n return true;\r\n }\r\n }\r\n\r\n return micromatch.isMatch(str, pattern, { ...options, contains: true });\r\n};\r\n\r\n/**\r\n * Filter the keys of the given object with the given `glob` pattern\r\n * and `options`. Does not attempt to match nested keys. If you need this feature,\r\n * use [glob-object][] instead.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * // mm.matchKeys(object, patterns[, options]);\r\n *\r\n * const obj = { aa: 'a', ab: 'b', ac: 'c' };\r\n * console.log(mm.matchKeys(obj, '*b'));\r\n * //=> { ab: 'b' }\r\n * ```\r\n * @param {Object} `object` The object with keys to filter.\r\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\r\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\r\n * @return {Object} Returns an object with only keys that match the given patterns.\r\n * @api public\r\n */\r\n\r\nmicromatch.matchKeys = (obj, patterns, options) => {\r\n if (!utils.isObject(obj)) {\r\n throw new TypeError('Expected the first argument to be an object');\r\n }\r\n let keys = micromatch(Object.keys(obj), patterns, options);\r\n let res = {};\r\n for (let key of keys) res[key] = obj[key];\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * // mm.some(list, patterns[, options]);\r\n *\r\n * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\r\n * // true\r\n * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));\r\n * // false\r\n * ```\r\n * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\r\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\r\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\r\n * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`\r\n * @api public\r\n */\r\n\r\nmicromatch.some = (list, patterns, options) => {\r\n let items = [].concat(list);\r\n\r\n for (let pattern of [].concat(patterns)) {\r\n let isMatch = picomatch(String(pattern), options);\r\n if (items.some(item => isMatch(item))) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Returns true if every string in the given `list` matches\r\n * any of the given glob `patterns`.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * // mm.every(list, patterns[, options]);\r\n *\r\n * console.log(mm.every('foo.js', ['foo.js']));\r\n * // true\r\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));\r\n * // true\r\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\r\n * // false\r\n * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));\r\n * // false\r\n * ```\r\n * @param {String|Array} `list` The string or array of strings to test.\r\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\r\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\r\n * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`\r\n * @api public\r\n */\r\n\r\nmicromatch.every = (list, patterns, options) => {\r\n let items = [].concat(list);\r\n\r\n for (let pattern of [].concat(patterns)) {\r\n let isMatch = picomatch(String(pattern), options);\r\n if (!items.every(item => isMatch(item))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n\r\n/**\r\n * Returns true if **all** of the given `patterns` match\r\n * the specified string.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * // mm.all(string, patterns[, options]);\r\n *\r\n * console.log(mm.all('foo.js', ['foo.js']));\r\n * // true\r\n *\r\n * console.log(mm.all('foo.js', ['*.js', '!foo.js']));\r\n * // false\r\n *\r\n * console.log(mm.all('foo.js', ['*.js', 'foo.js']));\r\n * // true\r\n *\r\n * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\r\n * // true\r\n * ```\r\n * @param {String|Array} `str` The string to test.\r\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\r\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\r\n * @return {Boolean} Returns true if any patterns match `str`\r\n * @api public\r\n */\r\n\r\nmicromatch.all = (str, patterns, options) => {\r\n if (typeof str !== 'string') {\r\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\r\n }\r\n\r\n return [].concat(patterns).every(p => picomatch(p, options)(str));\r\n};\r\n\r\n/**\r\n * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * // mm.capture(pattern, string[, options]);\r\n *\r\n * console.log(mm.capture('test/*.js', 'test/foo.js'));\r\n * //=> ['foo']\r\n * console.log(mm.capture('test/*.js', 'foo/bar.css'));\r\n * //=> null\r\n * ```\r\n * @param {String} `glob` Glob pattern to use for matching.\r\n * @param {String} `input` String to match\r\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\r\n * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.\r\n * @api public\r\n */\r\n\r\nmicromatch.capture = (glob, input, options) => {\r\n let posix = utils.isWindows(options);\r\n let regex = picomatch.makeRe(String(glob), { ...options, capture: true });\r\n let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\r\n\r\n if (match) {\r\n return match.slice(1).map(v => v === void 0 ? '' : v);\r\n }\r\n};\r\n\r\n/**\r\n * Create a regular expression from the given glob `pattern`.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * // mm.makeRe(pattern[, options]);\r\n *\r\n * console.log(mm.makeRe('*.js'));\r\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\r\n * ```\r\n * @param {String} `pattern` A glob pattern to convert to regex.\r\n * @param {Object} `options`\r\n * @return {RegExp} Returns a regex created from the given pattern.\r\n * @api public\r\n */\r\n\r\nmicromatch.makeRe = (...args) => picomatch.makeRe(...args);\r\n\r\n/**\r\n * Scan a glob pattern to separate the pattern into segments. Used\r\n * by the [split](#split) method.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * const state = mm.scan(pattern[, options]);\r\n * ```\r\n * @param {String} `pattern`\r\n * @param {Object} `options`\r\n * @return {Object} Returns an object with\r\n * @api public\r\n */\r\n\r\nmicromatch.scan = (...args) => picomatch.scan(...args);\r\n\r\n/**\r\n * Parse a glob pattern to create the source string for a regular\r\n * expression.\r\n *\r\n * ```js\r\n * const mm = require('micromatch');\r\n * const state = mm.parse(pattern[, options]);\r\n * ```\r\n * @param {String} `glob`\r\n * @param {Object} `options`\r\n * @return {Object} Returns an object with useful properties and output to be used as regex source string.\r\n * @api public\r\n */\r\n\r\nmicromatch.parse = (patterns, options) => {\r\n let res = [];\r\n for (let pattern of [].concat(patterns || [])) {\r\n for (let str of braces(String(pattern), options)) {\r\n res.push(picomatch.parse(str, options));\r\n }\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Process the given brace `pattern`.\r\n *\r\n * ```js\r\n * const { braces } = require('micromatch');\r\n * console.log(braces('foo/{a,b,c}/bar'));\r\n * //=> [ 'foo/(a|b|c)/bar' ]\r\n *\r\n * console.log(braces('foo/{a,b,c}/bar', { expand: true }));\r\n * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]\r\n * ```\r\n * @param {String} `pattern` String with brace pattern to process.\r\n * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nmicromatch.braces = (pattern, options) => {\r\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\r\n if ((options && options.nobrace === true) || !hasBraces(pattern)) {\r\n return [pattern];\r\n }\r\n return braces(pattern, options);\r\n};\r\n\r\n/**\r\n * Expand braces\r\n */\r\n\r\nmicromatch.braceExpand = (pattern, options) => {\r\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\r\n return micromatch.braces(pattern, { ...options, expand: true });\r\n};\r\n\r\n/**\r\n * Expose micromatch\r\n */\r\n\r\n// exposed for tests\r\nmicromatch.hasBraces = hasBraces;\r\nmodule.exports = micromatch;\r\n","/*!\r\n * mime-db\r\n * Copyright(c) 2014 Jonathan Ong\r\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\r\n * MIT Licensed\r\n */\r\n\r\n/**\r\n * Module exports.\r\n */\r\n\r\nmodule.exports = require('./db.json')\r\n","/*!\r\n * mime-types\r\n * Copyright(c) 2014 Jonathan Ong\r\n * Copyright(c) 2015 Douglas Christopher Wilson\r\n * MIT Licensed\r\n */\r\n\r\n'use strict'\r\n\r\n/**\r\n * Module dependencies.\r\n * @private\r\n */\r\n\r\nvar db = require('mime-db')\r\nvar extname = require('path').extname\r\n\r\n/**\r\n * Module variables.\r\n * @private\r\n */\r\n\r\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\r\nvar TEXT_TYPE_REGEXP = /^text\\//i\r\n\r\n/**\r\n * Module exports.\r\n * @public\r\n */\r\n\r\nexports.charset = charset\r\nexports.charsets = { lookup: charset }\r\nexports.contentType = contentType\r\nexports.extension = extension\r\nexports.extensions = Object.create(null)\r\nexports.lookup = lookup\r\nexports.types = Object.create(null)\r\n\r\n// Populate the extensions/types maps\r\npopulateMaps(exports.extensions, exports.types)\r\n\r\n/**\r\n * Get the default charset for a MIME type.\r\n *\r\n * @param {string} type\r\n * @return {boolean|string}\r\n */\r\n\r\nfunction charset (type) {\r\n if (!type || typeof type !== 'string') {\r\n return false\r\n }\r\n\r\n // TODO: use media-typer\r\n var match = EXTRACT_TYPE_REGEXP.exec(type)\r\n var mime = match && db[match[1].toLowerCase()]\r\n\r\n if (mime && mime.charset) {\r\n return mime.charset\r\n }\r\n\r\n // default text/* to utf-8\r\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\r\n return 'UTF-8'\r\n }\r\n\r\n return false\r\n}\r\n\r\n/**\r\n * Create a full Content-Type header given a MIME type or extension.\r\n *\r\n * @param {string} str\r\n * @return {boolean|string}\r\n */\r\n\r\nfunction contentType (str) {\r\n // TODO: should this even be in this module?\r\n if (!str || typeof str !== 'string') {\r\n return false\r\n }\r\n\r\n var mime = str.indexOf('/') === -1\r\n ? exports.lookup(str)\r\n : str\r\n\r\n if (!mime) {\r\n return false\r\n }\r\n\r\n // TODO: use content-type or other module\r\n if (mime.indexOf('charset') === -1) {\r\n var charset = exports.charset(mime)\r\n if (charset) mime += '; charset=' + charset.toLowerCase()\r\n }\r\n\r\n return mime\r\n}\r\n\r\n/**\r\n * Get the default extension for a MIME type.\r\n *\r\n * @param {string} type\r\n * @return {boolean|string}\r\n */\r\n\r\nfunction extension (type) {\r\n if (!type || typeof type !== 'string') {\r\n return false\r\n }\r\n\r\n // TODO: use media-typer\r\n var match = EXTRACT_TYPE_REGEXP.exec(type)\r\n\r\n // get extensions\r\n var exts = match && exports.extensions[match[1].toLowerCase()]\r\n\r\n if (!exts || !exts.length) {\r\n return false\r\n }\r\n\r\n return exts[0]\r\n}\r\n\r\n/**\r\n * Lookup the MIME type for a file path/extension.\r\n *\r\n * @param {string} path\r\n * @return {boolean|string}\r\n */\r\n\r\nfunction lookup (path) {\r\n if (!path || typeof path !== 'string') {\r\n return false\r\n }\r\n\r\n // get the extension (\"ext\" or \".ext\" or full path)\r\n var extension = extname('x.' + path)\r\n .toLowerCase()\r\n .substr(1)\r\n\r\n if (!extension) {\r\n return false\r\n }\r\n\r\n return exports.types[extension] || false\r\n}\r\n\r\n/**\r\n * Populate the extensions and types maps.\r\n * @private\r\n */\r\n\r\nfunction populateMaps (extensions, types) {\r\n // source preference (least -> most)\r\n var preference = ['nginx', 'apache', undefined, 'iana']\r\n\r\n Object.keys(db).forEach(function forEachMimeType (type) {\r\n var mime = db[type]\r\n var exts = mime.extensions\r\n\r\n if (!exts || !exts.length) {\r\n return\r\n }\r\n\r\n // mime -> extensions\r\n extensions[type] = exts\r\n\r\n // extension -> mime\r\n for (var i = 0; i < exts.length; i++) {\r\n var extension = exts[i]\r\n\r\n if (types[extension]) {\r\n var from = preference.indexOf(db[types[extension]].source)\r\n var to = preference.indexOf(mime.source)\r\n\r\n if (types[extension] !== 'application/octet-stream' &&\r\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\r\n // skip the remapping\r\n continue\r\n }\r\n }\r\n\r\n // set the extension -> mime\r\n types[extension] = type\r\n }\r\n })\r\n}\r\n","/*! Moment Duration Format v2.2.2\r\n * https://github.com/jsmreese/moment-duration-format\r\n * Date: 2018-02-16\r\n *\r\n * Duration format plugin function for the Moment.js library\r\n * http://momentjs.com/\r\n *\r\n * Copyright 2018 John Madhavan-Reese\r\n * Released under the MIT license\r\n */\r\n\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(['moment'], factory);\r\n } else if (typeof exports === 'object') {\r\n // Node. Does not work with strict CommonJS, but only CommonJS-like\r\n // enviroments that support module.exports, like Node.\r\n try {\r\n module.exports = factory(require('moment'));\r\n } catch (e) {\r\n // If moment is not available, leave the setup up to the user.\r\n // Like when using moment-timezone or similar moment-based package.\r\n module.exports = factory;\r\n }\r\n }\r\n\r\n if (root) {\r\n // Globals.\r\n root.momentDurationFormatSetup = root.moment ? factory(root.moment) : factory;\r\n }\r\n})(this, function (moment) {\r\n // `Number#tolocaleString` is tested on plugin initialization.\r\n // If the feature test passes, `toLocaleStringWorks` will be set to `true` and the\r\n // native function will be used to generate formatted output. If the feature\r\n // test fails, the fallback format function internal to this plugin will be\r\n // used.\r\n var toLocaleStringWorks = false;\r\n\r\n // `Number#toLocaleString` rounds incorrectly for select numbers in Microsoft\r\n // environments (Edge, IE11, Windows Phone) and possibly other environments.\r\n // If the rounding test fails and `toLocaleString` will be used for formatting,\r\n // the plugin will \"pre-round\" number values using the fallback number format\r\n // function before passing them to `toLocaleString` for final formatting.\r\n var toLocaleStringRoundingWorks = false;\r\n\r\n // `Intl.NumberFormat#format` is tested on plugin initialization.\r\n // If the feature test passes, `intlNumberFormatRoundingWorks` will be set to\r\n // `true` and the native function will be used to generate formatted output.\r\n // If the feature test fails, either `Number#tolocaleString` (if\r\n // `toLocaleStringWorks` is `true`), or the fallback format function internal\r\n // to this plugin will be used.\r\n var intlNumberFormatWorks = false;\r\n\r\n // `Intl.NumberFormat#format` rounds incorrectly for select numbers in Microsoft\r\n // environments (Edge, IE11, Windows Phone) and possibly other environments.\r\n // If the rounding test fails and `Intl.NumberFormat#format` will be used for\r\n // formatting, the plugin will \"pre-round\" number values using the fallback number\r\n // format function before passing them to `Intl.NumberFormat#format` for final\r\n // formatting.\r\n var intlNumberFormatRoundingWorks = false;\r\n\r\n // Token type names in order of descending magnitude.\r\n var types = \"escape years months weeks days hours minutes seconds milliseconds general\".split(\" \");\r\n\r\n var bubbles = [\r\n {\r\n type: \"seconds\",\r\n targets: [\r\n { type: \"minutes\", value: 60 },\r\n { type: \"hours\", value: 3600 },\r\n { type: \"days\", value: 86400 },\r\n { type: \"weeks\", value: 604800 },\r\n { type: \"months\", value: 2678400 },\r\n { type: \"years\", value: 31536000 }\r\n ]\r\n },\r\n {\r\n type: \"minutes\",\r\n targets: [\r\n { type: \"hours\", value: 60 },\r\n { type: \"days\", value: 1440 },\r\n { type: \"weeks\", value: 10080 },\r\n { type: \"months\", value: 44640 },\r\n { type: \"years\", value: 525600 }\r\n ]\r\n },\r\n {\r\n type: \"hours\",\r\n targets: [\r\n { type: \"days\", value: 24 },\r\n { type: \"weeks\", value: 168 },\r\n { type: \"months\", value: 744 },\r\n { type: \"years\", value: 8760 }\r\n ]\r\n },\r\n {\r\n type: \"days\",\r\n targets: [\r\n { type: \"weeks\", value: 7 },\r\n { type: \"months\", value: 31 },\r\n { type: \"years\", value: 365 }\r\n ]\r\n },\r\n {\r\n type: \"months\",\r\n targets: [\r\n { type: \"years\", value: 12 }\r\n ]\r\n }\r\n ];\r\n\r\n // stringIncludes\r\n function stringIncludes(str, search) {\r\n if (search.length > str.length) {\r\n return false;\r\n }\r\n\r\n return str.indexOf(search) !== -1;\r\n }\r\n\r\n // repeatZero(qty)\r\n // Returns \"0\" repeated `qty` times.\r\n // `qty` must be a integer >= 0.\r\n function repeatZero(qty) {\r\n var result = \"\";\r\n\r\n while (qty) {\r\n result += \"0\";\r\n qty -= 1;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function stringRound(digits) {\r\n var digitsArray = digits.split(\"\").reverse();\r\n var i = 0;\r\n var carry = true;\r\n\r\n while (carry && i < digitsArray.length) {\r\n if (i) {\r\n if (digitsArray[i] === \"9\") {\r\n digitsArray[i] = \"0\";\r\n } else {\r\n digitsArray[i] = (parseInt(digitsArray[i], 10) + 1).toString();\r\n carry = false;\r\n }\r\n } else {\r\n if (parseInt(digitsArray[i], 10) < 5) {\r\n carry = false;\r\n }\r\n\r\n digitsArray[i] = \"0\";\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (carry) {\r\n digitsArray.push(\"1\");\r\n }\r\n\r\n return digitsArray.reverse().join(\"\");\r\n }\r\n\r\n // cachedNumberFormat\r\n // Returns an `Intl.NumberFormat` instance for the given locale and configuration.\r\n // On first use of a particular configuration, the instance is cached for fast\r\n // repeat access.\r\n function cachedNumberFormat(locale, options) {\r\n // Create a sorted, stringified version of `options`\r\n // for use as part of the cache key\r\n var optionsString = map(\r\n keys(options).sort(),\r\n function(key) {\r\n return key + ':' + options[key];\r\n }\r\n ).join(',');\r\n\r\n // Set our cache key\r\n var cacheKey = locale + '+' + optionsString;\r\n\r\n // If we don't have this configuration cached, configure and cache it\r\n if (!cachedNumberFormat.cache[cacheKey]) {\r\n cachedNumberFormat.cache[cacheKey] = Intl.NumberFormat(locale, options);\r\n }\r\n\r\n // Return the cached version of this configuration\r\n return cachedNumberFormat.cache[cacheKey];\r\n }\r\n cachedNumberFormat.cache = {};\r\n\r\n // formatNumber\r\n // Formats any number greater than or equal to zero using these options:\r\n // - userLocale\r\n // - useToLocaleString\r\n // - useGrouping\r\n // - grouping\r\n // - maximumSignificantDigits\r\n // - minimumIntegerDigits\r\n // - fractionDigits\r\n // - groupingSeparator\r\n // - decimalSeparator\r\n //\r\n // `useToLocaleString` will use `Intl.NumberFormat` or `toLocaleString` for formatting.\r\n // `userLocale` option is passed through to the formatting function.\r\n // `fractionDigits` is passed through to `maximumFractionDigits` and `minimumFractionDigits`\r\n // Using `maximumSignificantDigits` will override `minimumIntegerDigits` and `fractionDigits`.\r\n function formatNumber(number, options, userLocale) {\r\n var useToLocaleString = options.useToLocaleString;\r\n var useGrouping = options.useGrouping;\r\n var grouping = useGrouping && options.grouping.slice();\r\n var maximumSignificantDigits = options.maximumSignificantDigits;\r\n var minimumIntegerDigits = options.minimumIntegerDigits || 1;\r\n var fractionDigits = options.fractionDigits || 0;\r\n var groupingSeparator = options.groupingSeparator;\r\n var decimalSeparator = options.decimalSeparator;\r\n\r\n if (useToLocaleString && userLocale) {\r\n var localeStringOptions = {\r\n minimumIntegerDigits: minimumIntegerDigits,\r\n useGrouping: useGrouping\r\n };\r\n\r\n if (fractionDigits) {\r\n localeStringOptions.maximumFractionDigits = fractionDigits;\r\n localeStringOptions.minimumFractionDigits = fractionDigits;\r\n }\r\n\r\n // toLocaleString output is \"0.0\" instead of \"0\" for HTC browsers\r\n // when maximumSignificantDigits is set. See #96.\r\n if (maximumSignificantDigits && number > 0) {\r\n localeStringOptions.maximumSignificantDigits = maximumSignificantDigits;\r\n }\r\n\r\n if (intlNumberFormatWorks) {\r\n if (!intlNumberFormatRoundingWorks) {\r\n var roundingOptions = extend({}, options);\r\n roundingOptions.useGrouping = false;\r\n roundingOptions.decimalSeparator = \".\";\r\n number = parseFloat(formatNumber(number, roundingOptions), 10);\r\n }\r\n\r\n return cachedNumberFormat(userLocale, localeStringOptions).format(number);\r\n } else {\r\n if (!toLocaleStringRoundingWorks) {\r\n var roundingOptions = extend({}, options);\r\n roundingOptions.useGrouping = false;\r\n roundingOptions.decimalSeparator = \".\";\r\n number = parseFloat(formatNumber(number, roundingOptions), 10);\r\n }\r\n\r\n return number.toLocaleString(userLocale, localeStringOptions);\r\n }\r\n }\r\n\r\n var numberString;\r\n\r\n // Add 1 to digit output length for floating point errors workaround. See below.\r\n if (maximumSignificantDigits) {\r\n numberString = number.toPrecision(maximumSignificantDigits + 1);\r\n } else {\r\n numberString = number.toFixed(fractionDigits + 1);\r\n }\r\n\r\n var integerString;\r\n var fractionString;\r\n var exponentString;\r\n\r\n var temp = numberString.split(\"e\");\r\n\r\n exponentString = temp[1] || \"\";\r\n\r\n temp = temp[0].split(\".\");\r\n\r\n fractionString = temp[1] || \"\";\r\n integerString = temp[0] || \"\";\r\n\r\n // Workaround for floating point errors in `toFixed` and `toPrecision`.\r\n // (3.55).toFixed(1); --> \"3.5\"\r\n // (123.55 - 120).toPrecision(2); --> \"3.5\"\r\n // (123.55 - 120); --> 3.549999999999997\r\n // (123.55 - 120).toFixed(2); --> \"3.55\"\r\n // Round by examing the string output of the next digit.\r\n\r\n // *************** Implement String Rounding here ***********************\r\n // Check integerString + fractionString length of toPrecision before rounding.\r\n // Check length of fractionString from toFixed output before rounding.\r\n var integerLength = integerString.length;\r\n var fractionLength = fractionString.length;\r\n var digitCount = integerLength + fractionLength;\r\n var digits = integerString + fractionString;\r\n\r\n if (maximumSignificantDigits && digitCount === (maximumSignificantDigits + 1) || !maximumSignificantDigits && fractionLength === (fractionDigits + 1)) {\r\n // Round digits.\r\n digits = stringRound(digits);\r\n\r\n if (digits.length === digitCount + 1) {\r\n integerLength = integerLength + 1;\r\n }\r\n\r\n // Discard final fractionDigit.\r\n if (fractionLength) {\r\n digits = digits.slice(0, -1);\r\n }\r\n\r\n // Separate integer and fraction.\r\n integerString = digits.slice(0, integerLength);\r\n fractionString = digits.slice(integerLength);\r\n }\r\n\r\n // Trim trailing zeroes from fractionString because toPrecision outputs\r\n // precision, not significant digits.\r\n if (maximumSignificantDigits) {\r\n fractionString = fractionString.replace(/0*$/, \"\");\r\n }\r\n\r\n // Handle exponent.\r\n var exponent = parseInt(exponentString, 10);\r\n\r\n if (exponent > 0) {\r\n if (fractionString.length <= exponent) {\r\n fractionString = fractionString + repeatZero(exponent - fractionString.length);\r\n\r\n integerString = integerString + fractionString;\r\n fractionString = \"\";\r\n } else {\r\n integerString = integerString + fractionString.slice(0, exponent);\r\n fractionString = fractionString.slice(exponent);\r\n }\r\n } else if (exponent < 0) {\r\n fractionString = (repeatZero(Math.abs(exponent) - integerString.length) + integerString + fractionString);\r\n\r\n integerString = \"0\";\r\n }\r\n\r\n if (!maximumSignificantDigits) {\r\n // Trim or pad fraction when not using maximumSignificantDigits.\r\n fractionString = fractionString.slice(0, fractionDigits);\r\n\r\n if (fractionString.length < fractionDigits) {\r\n fractionString = fractionString + repeatZero(fractionDigits - fractionString.length);\r\n }\r\n\r\n // Pad integer when using minimumIntegerDigits\r\n // and not using maximumSignificantDigits.\r\n if (integerString.length < minimumIntegerDigits) {\r\n integerString = repeatZero(minimumIntegerDigits - integerString.length) + integerString;\r\n }\r\n }\r\n\r\n var formattedString = \"\";\r\n\r\n // Handle grouping.\r\n if (useGrouping) {\r\n temp = integerString;\r\n var group;\r\n\r\n while (temp.length) {\r\n if (grouping.length) {\r\n group = grouping.shift();\r\n }\r\n\r\n if (formattedString) {\r\n formattedString = groupingSeparator + formattedString;\r\n }\r\n\r\n formattedString = temp.slice(-group) + formattedString;\r\n\r\n temp = temp.slice(0, -group);\r\n }\r\n } else {\r\n formattedString = integerString;\r\n }\r\n\r\n // Add decimalSeparator and fraction.\r\n if (fractionString) {\r\n formattedString = formattedString + decimalSeparator + fractionString;\r\n }\r\n\r\n return formattedString;\r\n }\r\n\r\n // durationLabelCompare\r\n function durationLabelCompare(a, b) {\r\n if (a.label.length > b.label.length) {\r\n return -1;\r\n }\r\n\r\n if (a.label.length < b.label.length) {\r\n return 1;\r\n }\r\n\r\n // a must be equal to b\r\n return 0;\r\n }\r\n\r\n // durationGetLabels\r\n function durationGetLabels(token, localeData) {\r\n var labels = [];\r\n\r\n each(keys(localeData), function (localeDataKey) {\r\n if (localeDataKey.slice(0, 15) !== \"_durationLabels\") {\r\n return;\r\n }\r\n\r\n var labelType = localeDataKey.slice(15).toLowerCase();\r\n\r\n each(keys(localeData[localeDataKey]), function (labelKey) {\r\n if (labelKey.slice(0, 1) === token) {\r\n labels.push({\r\n type: labelType,\r\n key: labelKey,\r\n label: localeData[localeDataKey][labelKey]\r\n });\r\n }\r\n });\r\n });\r\n\r\n return labels;\r\n }\r\n\r\n // durationPluralKey\r\n function durationPluralKey(token, integerValue, decimalValue) {\r\n // Singular for a value of `1`, but not for `1.0`.\r\n if (integerValue === 1 && decimalValue === null) {\r\n return token;\r\n }\r\n\r\n return token + token;\r\n }\r\n\r\n var engLocale = {\r\n durationLabelsStandard: {\r\n S: 'millisecond',\r\n SS: 'milliseconds',\r\n s: 'second',\r\n ss: 'seconds',\r\n m: 'minute',\r\n mm: 'minutes',\r\n h: 'hour',\r\n hh: 'hours',\r\n d: 'day',\r\n dd: 'days',\r\n w: 'week',\r\n ww: 'weeks',\r\n M: 'month',\r\n MM: 'months',\r\n y: 'year',\r\n yy: 'years'\r\n },\r\n durationLabelsShort: {\r\n S: 'msec',\r\n SS: 'msecs',\r\n s: 'sec',\r\n ss: 'secs',\r\n m: 'min',\r\n mm: 'mins',\r\n h: 'hr',\r\n hh: 'hrs',\r\n d: 'dy',\r\n dd: 'dys',\r\n w: 'wk',\r\n ww: 'wks',\r\n M: 'mo',\r\n MM: 'mos',\r\n y: 'yr',\r\n yy: 'yrs'\r\n },\r\n durationTimeTemplates: {\r\n HMS: 'h:mm:ss',\r\n HM: 'h:mm',\r\n MS: 'm:ss'\r\n },\r\n durationLabelTypes: [\r\n { type: \"standard\", string: \"__\" },\r\n { type: \"short\", string: \"_\" }\r\n ],\r\n durationPluralKey: durationPluralKey\r\n };\r\n\r\n // isArray\r\n function isArray(array) {\r\n return Object.prototype.toString.call(array) === \"[object Array]\";\r\n }\r\n\r\n // isObject\r\n function isObject(obj) {\r\n return Object.prototype.toString.call(obj) === \"[object Object]\";\r\n }\r\n\r\n // findLast\r\n function findLast(array, callback) {\r\n var index = array.length;\r\n\r\n while (index -= 1) {\r\n if (callback(array[index])) { return array[index]; }\r\n }\r\n }\r\n\r\n // find\r\n function find(array, callback) {\r\n var index = 0;\r\n\r\n var max = array && array.length || 0;\r\n\r\n var match;\r\n\r\n if (typeof callback !== \"function\") {\r\n match = callback;\r\n callback = function (item) {\r\n return item === match;\r\n };\r\n }\r\n\r\n while (index < max) {\r\n if (callback(array[index])) { return array[index]; }\r\n index += 1;\r\n }\r\n }\r\n\r\n // each\r\n function each(array, callback) {\r\n var index = 0,\r\n max = array.length;\r\n\r\n if (!array || !max) { return; }\r\n\r\n while (index < max) {\r\n if (callback(array[index], index) === false) { return; }\r\n index += 1;\r\n }\r\n }\r\n\r\n // map\r\n function map(array, callback) {\r\n var index = 0,\r\n max = array.length,\r\n ret = [];\r\n\r\n if (!array || !max) { return ret; }\r\n\r\n while (index < max) {\r\n ret[index] = callback(array[index], index);\r\n index += 1;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n // pluck\r\n function pluck(array, prop) {\r\n return map(array, function (item) {\r\n return item[prop];\r\n });\r\n }\r\n\r\n // compact\r\n function compact(array) {\r\n var ret = [];\r\n\r\n each(array, function (item) {\r\n if (item) { ret.push(item); }\r\n });\r\n\r\n return ret;\r\n }\r\n\r\n // unique\r\n function unique(array) {\r\n var ret = [];\r\n\r\n each(array, function (_a) {\r\n if (!find(ret, _a)) { ret.push(_a); }\r\n });\r\n\r\n return ret;\r\n }\r\n\r\n // intersection\r\n function intersection(a, b) {\r\n var ret = [];\r\n\r\n each(a, function (_a) {\r\n each(b, function (_b) {\r\n if (_a === _b) { ret.push(_a); }\r\n });\r\n });\r\n\r\n return unique(ret);\r\n }\r\n\r\n // rest\r\n function rest(array, callback) {\r\n var ret = [];\r\n\r\n each(array, function (item, index) {\r\n if (!callback(item)) {\r\n ret = array.slice(index);\r\n return false;\r\n }\r\n });\r\n\r\n return ret;\r\n }\r\n\r\n // initial\r\n function initial(array, callback) {\r\n var reversed = array.slice().reverse();\r\n\r\n return rest(reversed, callback).reverse();\r\n }\r\n\r\n // extend\r\n function extend(a, b) {\r\n for (var key in b) {\r\n if (b.hasOwnProperty(key)) { a[key] = b[key]; }\r\n }\r\n\r\n return a;\r\n }\r\n\r\n // keys\r\n function keys(a) {\r\n var ret = [];\r\n\r\n for (var key in a) {\r\n if (a.hasOwnProperty(key)) { ret.push(key); }\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n // any\r\n function any(array, callback) {\r\n var index = 0,\r\n max = array.length;\r\n\r\n if (!array || !max) { return false; }\r\n\r\n while (index < max) {\r\n if (callback(array[index], index) === true) { return true; }\r\n index += 1;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // flatten\r\n function flatten(array) {\r\n var ret = [];\r\n\r\n each(array, function(child) {\r\n ret = ret.concat(child);\r\n });\r\n\r\n return ret;\r\n }\r\n\r\n function toLocaleStringSupportsLocales() {\r\n var number = 0;\r\n try {\r\n number.toLocaleString('i');\r\n } catch (e) {\r\n return e.name === 'RangeError';\r\n }\r\n return false;\r\n }\r\n\r\n function featureTestFormatterRounding(formatter) {\r\n return formatter(3.55, \"en\", {\r\n useGrouping: false,\r\n minimumIntegerDigits: 1,\r\n minimumFractionDigits: 1,\r\n maximumFractionDigits: 1\r\n }) === \"3.6\";\r\n }\r\n\r\n function featureTestFormatter(formatter) {\r\n var passed = true;\r\n\r\n // Test minimumIntegerDigits.\r\n passed = passed && formatter(1, \"en\", { minimumIntegerDigits: 1 }) === \"1\";\r\n passed = passed && formatter(1, \"en\", { minimumIntegerDigits: 2 }) === \"01\";\r\n passed = passed && formatter(1, \"en\", { minimumIntegerDigits: 3 }) === \"001\";\r\n if (!passed) { return false; }\r\n\r\n // Test maximumFractionDigits and minimumFractionDigits.\r\n passed = passed && formatter(99.99, \"en\", { maximumFractionDigits: 0, minimumFractionDigits: 0 }) === \"100\";\r\n passed = passed && formatter(99.99, \"en\", { maximumFractionDigits: 1, minimumFractionDigits: 1 }) === \"100.0\";\r\n passed = passed && formatter(99.99, \"en\", { maximumFractionDigits: 2, minimumFractionDigits: 2 }) === \"99.99\";\r\n passed = passed && formatter(99.99, \"en\", { maximumFractionDigits: 3, minimumFractionDigits: 3 }) === \"99.990\";\r\n if (!passed) { return false; }\r\n\r\n // Test maximumSignificantDigits.\r\n passed = passed && formatter(99.99, \"en\", { maximumSignificantDigits: 1 }) === \"100\";\r\n passed = passed && formatter(99.99, \"en\", { maximumSignificantDigits: 2 }) === \"100\";\r\n passed = passed && formatter(99.99, \"en\", { maximumSignificantDigits: 3 }) === \"100\";\r\n passed = passed && formatter(99.99, \"en\", { maximumSignificantDigits: 4 }) === \"99.99\";\r\n passed = passed && formatter(99.99, \"en\", { maximumSignificantDigits: 5 }) === \"99.99\";\r\n if (!passed) { return false; }\r\n\r\n // Test grouping.\r\n passed = passed && formatter(1000, \"en\", { useGrouping: true }) === \"1,000\";\r\n passed = passed && formatter(1000, \"en\", { useGrouping: false }) === \"1000\";\r\n if (!passed) { return false; }\r\n\r\n return true;\r\n }\r\n\r\n // durationsFormat(durations [, template] [, precision] [, settings])\r\n function durationsFormat() {\r\n var args = [].slice.call(arguments);\r\n var settings = {};\r\n var durations;\r\n\r\n // Parse arguments.\r\n each(args, function (arg, index) {\r\n if (!index) {\r\n if (!isArray(arg)) {\r\n throw \"Expected array as the first argument to durationsFormat.\";\r\n }\r\n\r\n durations = arg;\r\n }\r\n\r\n if (typeof arg === \"string\" || typeof arg === \"function\") {\r\n settings.template = arg;\r\n return;\r\n }\r\n\r\n if (typeof arg === \"number\") {\r\n settings.precision = arg;\r\n return;\r\n }\r\n\r\n if (isObject(arg)) {\r\n extend(settings, arg);\r\n }\r\n });\r\n\r\n if (!durations || !durations.length) {\r\n return [];\r\n }\r\n\r\n settings.returnMomentTypes = true;\r\n\r\n var formattedDurations = map(durations, function (dur) {\r\n return dur.format(settings);\r\n });\r\n\r\n // Merge token types from all durations.\r\n var outputTypes = intersection(types, unique(pluck(flatten(formattedDurations), \"type\")));\r\n\r\n var largest = settings.largest;\r\n\r\n if (largest) {\r\n outputTypes = outputTypes.slice(0, largest);\r\n }\r\n\r\n settings.returnMomentTypes = false;\r\n settings.outputTypes = outputTypes;\r\n\r\n return map(durations, function (dur) {\r\n return dur.format(settings);\r\n });\r\n }\r\n\r\n // durationFormat([template] [, precision] [, settings])\r\n function durationFormat() {\r\n\r\n var args = [].slice.call(arguments);\r\n var settings = extend({}, this.format.defaults);\r\n\r\n // Keep a shadow copy of this moment for calculating remainders.\r\n // Perform all calculations on positive duration value, handle negative\r\n // sign at the very end.\r\n var asMilliseconds = this.asMilliseconds();\r\n var asMonths = this.asMonths();\r\n\r\n // Treat invalid durations as having a value of 0 milliseconds.\r\n if (typeof this.isValid === \"function\" && this.isValid() === false) {\r\n asMilliseconds = 0;\r\n asMonths = 0;\r\n }\r\n\r\n var isNegative = asMilliseconds < 0;\r\n\r\n // Two shadow copies are needed because of the way moment.js handles\r\n // duration arithmetic for years/months and for weeks/days/hours/minutes/seconds.\r\n var remainder = moment.duration(Math.abs(asMilliseconds), \"milliseconds\");\r\n var remainderMonths = moment.duration(Math.abs(asMonths), \"months\");\r\n\r\n // Parse arguments.\r\n each(args, function (arg) {\r\n if (typeof arg === \"string\" || typeof arg === \"function\") {\r\n settings.template = arg;\r\n return;\r\n }\r\n\r\n if (typeof arg === \"number\") {\r\n settings.precision = arg;\r\n return;\r\n }\r\n\r\n if (isObject(arg)) {\r\n extend(settings, arg);\r\n }\r\n });\r\n\r\n var momentTokens = {\r\n years: \"y\",\r\n months: \"M\",\r\n weeks: \"w\",\r\n days: \"d\",\r\n hours: \"h\",\r\n minutes: \"m\",\r\n seconds: \"s\",\r\n milliseconds: \"S\"\r\n };\r\n\r\n var tokenDefs = {\r\n escape: /\\[(.+?)\\]/,\r\n years: /\\*?[Yy]+/,\r\n months: /\\*?M+/,\r\n weeks: /\\*?[Ww]+/,\r\n days: /\\*?[Dd]+/,\r\n hours: /\\*?[Hh]+/,\r\n minutes: /\\*?m+/,\r\n seconds: /\\*?s+/,\r\n milliseconds: /\\*?S+/,\r\n general: /.+?/\r\n };\r\n\r\n // Types array is available in the template function.\r\n settings.types = types;\r\n\r\n var typeMap = function (token) {\r\n return find(types, function (type) {\r\n return tokenDefs[type].test(token);\r\n });\r\n };\r\n\r\n var tokenizer = new RegExp(map(types, function (type) {\r\n return tokenDefs[type].source;\r\n }).join(\"|\"), \"g\");\r\n\r\n // Current duration object is available in the template function.\r\n settings.duration = this;\r\n\r\n // Eval template function and cache template string.\r\n var template = typeof settings.template === \"function\" ? settings.template.apply(settings) : settings.template;\r\n\r\n // outputTypes and returnMomentTypes are settings to support durationsFormat().\r\n\r\n // outputTypes is an array of moment token types that determines\r\n // the tokens returned in formatted output. This option overrides\r\n // trim, largest, stopTrim, etc.\r\n var outputTypes = settings.outputTypes;\r\n\r\n // returnMomentTypes is a boolean that sets durationFormat to return\r\n // the processed momentTypes instead of formatted output.\r\n var returnMomentTypes = settings.returnMomentTypes;\r\n\r\n var largest = settings.largest;\r\n\r\n // Setup stopTrim array of token types.\r\n var stopTrim = [];\r\n\r\n if (!outputTypes) {\r\n if (isArray(settings.stopTrim)) {\r\n settings.stopTrim = settings.stopTrim.join(\"\");\r\n }\r\n\r\n // Parse stopTrim string to create token types array.\r\n if (settings.stopTrim) {\r\n each(settings.stopTrim.match(tokenizer), function (token) {\r\n var type = typeMap(token);\r\n\r\n if (type === \"escape\" || type === \"general\") {\r\n return;\r\n }\r\n\r\n stopTrim.push(type);\r\n });\r\n }\r\n }\r\n\r\n // Cache moment's locale data.\r\n var localeData = moment.localeData();\r\n\r\n if (!localeData) {\r\n localeData = {};\r\n }\r\n\r\n // Fall back to this plugin's `eng` extension.\r\n each(keys(engLocale), function (key) {\r\n if (typeof engLocale[key] === \"function\") {\r\n if (!localeData[key]) {\r\n localeData[key] = engLocale[key];\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (!localeData[\"_\" + key]) {\r\n localeData[\"_\" + key] = engLocale[key];\r\n }\r\n });\r\n\r\n // Replace Duration Time Template strings.\r\n // For locale `eng`: `_HMS_`, `_HM_`, and `_MS_`.\r\n each(keys(localeData._durationTimeTemplates), function (item) {\r\n template = template.replace(\"_\" + item + \"_\", localeData._durationTimeTemplates[item]);\r\n });\r\n\r\n // Determine user's locale.\r\n var userLocale = settings.userLocale || moment.locale();\r\n\r\n var useLeftUnits = settings.useLeftUnits;\r\n var usePlural = settings.usePlural;\r\n var precision = settings.precision;\r\n var forceLength = settings.forceLength;\r\n var useGrouping = settings.useGrouping;\r\n var trunc = settings.trunc;\r\n\r\n // Use significant digits only when precision is greater than 0.\r\n var useSignificantDigits = settings.useSignificantDigits && precision > 0;\r\n var significantDigits = useSignificantDigits ? settings.precision : 0;\r\n var significantDigitsCache = significantDigits;\r\n\r\n var minValue = settings.minValue;\r\n var isMinValue = false;\r\n\r\n var maxValue = settings.maxValue;\r\n var isMaxValue = false;\r\n\r\n // formatNumber fallback options.\r\n var useToLocaleString = settings.useToLocaleString;\r\n var groupingSeparator = settings.groupingSeparator;\r\n var decimalSeparator = settings.decimalSeparator;\r\n var grouping = settings.grouping;\r\n\r\n useToLocaleString = useToLocaleString && (toLocaleStringWorks || intlNumberFormatWorks);\r\n\r\n // Trim options.\r\n var trim = settings.trim;\r\n\r\n if (isArray(trim)) {\r\n trim = trim.join(\" \");\r\n }\r\n\r\n if (trim === null && (largest || maxValue || useSignificantDigits)) {\r\n trim = \"all\";\r\n }\r\n\r\n if (trim === null || trim === true || trim === \"left\" || trim === \"right\") {\r\n trim = \"large\";\r\n }\r\n\r\n if (trim === false) {\r\n trim = \"\";\r\n }\r\n\r\n var trimIncludes = function (item) {\r\n return item.test(trim);\r\n };\r\n\r\n var rLarge = /large/;\r\n var rSmall = /small/;\r\n var rBoth = /both/;\r\n var rMid = /mid/;\r\n var rAll = /^all|[^sm]all/;\r\n var rFinal = /final/;\r\n\r\n var trimLarge = largest > 0 || any([rLarge, rBoth, rAll], trimIncludes);\r\n var trimSmall = any([rSmall, rBoth, rAll], trimIncludes);\r\n var trimMid = any([rMid, rAll], trimIncludes);\r\n var trimFinal = any([rFinal, rAll], trimIncludes);\r\n\r\n // Parse format string to create raw tokens array.\r\n var rawTokens = map(template.match(tokenizer), function (token, index) {\r\n var type = typeMap(token);\r\n\r\n if (token.slice(0, 1) === \"*\") {\r\n token = token.slice(1);\r\n\r\n if (type !== \"escape\" && type !== \"general\") {\r\n stopTrim.push(type);\r\n }\r\n }\r\n\r\n return {\r\n index: index,\r\n length: token.length,\r\n text: \"\",\r\n\r\n // Replace escaped tokens with the non-escaped token text.\r\n token: (type === \"escape\" ? token.replace(tokenDefs.escape, \"$1\") : token),\r\n\r\n // Ignore type on non-moment tokens.\r\n type: ((type === \"escape\" || type === \"general\") ? null : type)\r\n };\r\n });\r\n\r\n // Associate text tokens with moment tokens.\r\n var currentToken = {\r\n index: 0,\r\n length: 0,\r\n token: \"\",\r\n text: \"\",\r\n type: null\r\n };\r\n\r\n var tokens = [];\r\n\r\n if (useLeftUnits) {\r\n rawTokens.reverse();\r\n }\r\n\r\n each(rawTokens, function (token) {\r\n if (token.type) {\r\n if (currentToken.type || currentToken.text) {\r\n tokens.push(currentToken);\r\n }\r\n\r\n currentToken = token;\r\n\r\n return;\r\n }\r\n\r\n if (useLeftUnits) {\r\n currentToken.text = token.token + currentToken.text;\r\n } else {\r\n currentToken.text += token.token;\r\n }\r\n });\r\n\r\n if (currentToken.type || currentToken.text) {\r\n tokens.push(currentToken);\r\n }\r\n\r\n if (useLeftUnits) {\r\n tokens.reverse();\r\n }\r\n\r\n // Find unique moment token types in the template in order of\r\n // descending magnitude.\r\n var momentTypes = intersection(types, unique(compact(pluck(tokens, \"type\"))));\r\n\r\n // Exit early if there are no moment token types.\r\n if (!momentTypes.length) {\r\n return pluck(tokens, \"text\").join(\"\");\r\n }\r\n\r\n // Calculate values for each moment type in the template.\r\n // For processing the settings, values are associated with moment types.\r\n // Values will be assigned to tokens at the last step in order to\r\n // assume nothing about frequency or order of tokens in the template.\r\n momentTypes = map(momentTypes, function (momentType, index) {\r\n // Is this the least-magnitude moment token found?\r\n var isSmallest = ((index + 1) === momentTypes.length);\r\n\r\n // Is this the greatest-magnitude moment token found?\r\n var isLargest = (!index);\r\n\r\n // Get the raw value in the current units.\r\n var rawValue;\r\n\r\n if (momentType === \"years\" || momentType === \"months\") {\r\n rawValue = remainderMonths.as(momentType);\r\n } else {\r\n rawValue = remainder.as(momentType);\r\n }\r\n\r\n var wholeValue = Math.floor(rawValue);\r\n var decimalValue = rawValue - wholeValue;\r\n\r\n var token = find(tokens, function (token) {\r\n return momentType === token.type;\r\n });\r\n\r\n if (isLargest && maxValue && rawValue > maxValue) {\r\n isMaxValue = true;\r\n }\r\n\r\n if (isSmallest && minValue && Math.abs(settings.duration.as(momentType)) < minValue) {\r\n isMinValue = true;\r\n }\r\n\r\n // Note the length of the largest-magnitude moment token:\r\n // if it is greater than one and forceLength is not set,\r\n // then default forceLength to `true`.\r\n //\r\n // Rationale is this: If the template is \"h:mm:ss\" and the\r\n // moment value is 5 minutes, the user-friendly output is\r\n // \"5:00\", not \"05:00\". We shouldn't pad the `minutes` token\r\n // even though it has length of two if the template is \"h:mm:ss\";\r\n //\r\n // If the minutes output should always include the leading zero\r\n // even when the hour is trimmed then set `{ forceLength: true }`\r\n // to output \"05:00\". If the template is \"hh:mm:ss\", the user\r\n // clearly wanted everything padded so we should output \"05:00\";\r\n //\r\n // If the user wants the full padded output, they can use\r\n // template \"hh:mm:ss\" and set `{ trim: false }` to output\r\n // \"00:05:00\".\r\n if (isLargest && forceLength === null && token.length > 1) {\r\n forceLength = true;\r\n }\r\n\r\n // Update remainder.\r\n remainder.subtract(wholeValue, momentType);\r\n remainderMonths.subtract(wholeValue, momentType);\r\n\r\n return {\r\n rawValue: rawValue,\r\n wholeValue: wholeValue,\r\n // Decimal value is only retained for the least-magnitude\r\n // moment type in the format template.\r\n decimalValue: isSmallest ? decimalValue : 0,\r\n isSmallest: isSmallest,\r\n isLargest: isLargest,\r\n type: momentType,\r\n // Tokens can appear multiple times in a template string,\r\n // but all instances must share the same length.\r\n tokenLength: token.length\r\n };\r\n });\r\n\r\n var truncMethod = trunc ? Math.floor : Math.round;\r\n var truncate = function (value, places) {\r\n var factor = Math.pow(10, places);\r\n return truncMethod(value * factor) / factor;\r\n };\r\n\r\n var foundFirst = false;\r\n var bubbled = false;\r\n\r\n var formatValue = function (momentType, index) {\r\n var formatOptions = {\r\n useGrouping: useGrouping,\r\n groupingSeparator: groupingSeparator,\r\n decimalSeparator: decimalSeparator,\r\n grouping: grouping,\r\n useToLocaleString: useToLocaleString\r\n };\r\n\r\n if (useSignificantDigits) {\r\n if (significantDigits <= 0) {\r\n momentType.rawValue = 0;\r\n momentType.wholeValue = 0;\r\n momentType.decimalValue = 0;\r\n } else {\r\n formatOptions.maximumSignificantDigits = significantDigits;\r\n momentType.significantDigits = significantDigits;\r\n }\r\n }\r\n\r\n if (isMaxValue && !bubbled) {\r\n if (momentType.isLargest) {\r\n momentType.wholeValue = maxValue;\r\n momentType.decimalValue = 0;\r\n } else {\r\n momentType.wholeValue = 0;\r\n momentType.decimalValue = 0;\r\n }\r\n }\r\n\r\n if (isMinValue && !bubbled) {\r\n if (momentType.isSmallest) {\r\n momentType.wholeValue = minValue;\r\n momentType.decimalValue = 0;\r\n } else {\r\n momentType.wholeValue = 0;\r\n momentType.decimalValue = 0;\r\n }\r\n }\r\n\r\n if (momentType.isSmallest || momentType.significantDigits && momentType.significantDigits - momentType.wholeValue.toString().length <= 0) {\r\n // Apply precision to least significant token value.\r\n if (precision < 0) {\r\n momentType.value = truncate(momentType.wholeValue, precision);\r\n } else if (precision === 0) {\r\n momentType.value = truncMethod(momentType.wholeValue + momentType.decimalValue);\r\n } else { // precision > 0\r\n if (useSignificantDigits) {\r\n if (trunc) {\r\n momentType.value = truncate(momentType.rawValue, significantDigits - momentType.wholeValue.toString().length);\r\n } else {\r\n momentType.value = momentType.rawValue;\r\n }\r\n\r\n if (momentType.wholeValue) {\r\n significantDigits -= momentType.wholeValue.toString().length;\r\n }\r\n } else {\r\n formatOptions.fractionDigits = precision;\r\n\r\n if (trunc) {\r\n momentType.value = momentType.wholeValue + truncate(momentType.decimalValue, precision);\r\n } else {\r\n momentType.value = momentType.wholeValue + momentType.decimalValue;\r\n }\r\n }\r\n }\r\n } else {\r\n if (useSignificantDigits && momentType.wholeValue) {\r\n // Outer Math.round required here to handle floating point errors.\r\n momentType.value = Math.round(truncate(momentType.wholeValue, momentType.significantDigits - momentType.wholeValue.toString().length));\r\n\r\n significantDigits -= momentType.wholeValue.toString().length;\r\n } else {\r\n momentType.value = momentType.wholeValue;\r\n }\r\n }\r\n\r\n if (momentType.tokenLength > 1 && (forceLength || foundFirst)) {\r\n formatOptions.minimumIntegerDigits = momentType.tokenLength;\r\n\r\n if (bubbled && formatOptions.maximumSignificantDigits < momentType.tokenLength) {\r\n delete formatOptions.maximumSignificantDigits;\r\n }\r\n }\r\n\r\n if (!foundFirst && (momentType.value > 0 || trim === \"\" /* trim: false */ || find(stopTrim, momentType.type) || find(outputTypes, momentType.type))) {\r\n foundFirst = true;\r\n }\r\n\r\n momentType.formattedValue = formatNumber(momentType.value, formatOptions, userLocale);\r\n\r\n formatOptions.useGrouping = false;\r\n formatOptions.decimalSeparator = \".\";\r\n momentType.formattedValueEn = formatNumber(momentType.value, formatOptions, \"en\");\r\n\r\n if (momentType.tokenLength === 2 && momentType.type === \"milliseconds\") {\r\n momentType.formattedValueMS = formatNumber(momentType.value, {\r\n minimumIntegerDigits: 3,\r\n useGrouping: false\r\n }, \"en\").slice(0, 2);\r\n }\r\n\r\n return momentType;\r\n };\r\n\r\n // Calculate formatted values.\r\n momentTypes = map(momentTypes, formatValue);\r\n momentTypes = compact(momentTypes);\r\n\r\n // Bubble rounded values.\r\n if (momentTypes.length > 1) {\r\n var findType = function (type) {\r\n return find(momentTypes, function (momentType) {\r\n return momentType.type === type;\r\n });\r\n };\r\n\r\n var bubbleTypes = function (bubble) {\r\n var bubbleMomentType = findType(bubble.type);\r\n\r\n if (!bubbleMomentType) {\r\n return;\r\n }\r\n\r\n each(bubble.targets, function (target) {\r\n var targetMomentType = findType(target.type);\r\n\r\n if (!targetMomentType) {\r\n return;\r\n }\r\n\r\n if (parseInt(bubbleMomentType.formattedValueEn, 10) === target.value) {\r\n bubbleMomentType.rawValue = 0;\r\n bubbleMomentType.wholeValue = 0;\r\n bubbleMomentType.decimalValue = 0;\r\n targetMomentType.rawValue += 1;\r\n targetMomentType.wholeValue += 1;\r\n targetMomentType.decimalValue = 0;\r\n targetMomentType.formattedValueEn = targetMomentType.wholeValue.toString();\r\n bubbled = true;\r\n }\r\n });\r\n };\r\n\r\n each(bubbles, bubbleTypes);\r\n }\r\n\r\n // Recalculate formatted values.\r\n if (bubbled) {\r\n foundFirst = false;\r\n significantDigits = significantDigitsCache;\r\n momentTypes = map(momentTypes, formatValue);\r\n momentTypes = compact(momentTypes);\r\n }\r\n\r\n if (outputTypes && !(isMaxValue && !settings.trim)) {\r\n momentTypes = map(momentTypes, function (momentType) {\r\n if (find(outputTypes, function (outputType) {\r\n return momentType.type === outputType;\r\n })) {\r\n return momentType;\r\n }\r\n\r\n return null;\r\n });\r\n\r\n momentTypes = compact(momentTypes);\r\n } else {\r\n // Trim Large.\r\n if (trimLarge) {\r\n momentTypes = rest(momentTypes, function (momentType) {\r\n // Stop trimming on:\r\n // - the smallest moment type\r\n // - a type marked for stopTrim\r\n // - a type that has a whole value\r\n return !momentType.isSmallest && !momentType.wholeValue && !find(stopTrim, momentType.type);\r\n });\r\n }\r\n\r\n // Largest.\r\n if (largest && momentTypes.length) {\r\n momentTypes = momentTypes.slice(0, largest);\r\n }\r\n\r\n // Trim Small.\r\n if (trimSmall && momentTypes.length > 1) {\r\n momentTypes = initial(momentTypes, function (momentType) {\r\n // Stop trimming on:\r\n // - a type marked for stopTrim\r\n // - a type that has a whole value\r\n // - the largest momentType\r\n return !momentType.wholeValue && !find(stopTrim, momentType.type) && !momentType.isLargest;\r\n });\r\n }\r\n\r\n // Trim Mid.\r\n if (trimMid) {\r\n momentTypes = map(momentTypes, function (momentType, index) {\r\n if (index > 0 && index < momentTypes.length - 1 && !momentType.wholeValue) {\r\n return null;\r\n }\r\n\r\n return momentType;\r\n });\r\n\r\n momentTypes = compact(momentTypes);\r\n }\r\n\r\n // Trim Final.\r\n if (trimFinal && momentTypes.length === 1 && !momentTypes[0].wholeValue && !(!trunc && momentTypes[0].isSmallest && momentTypes[0].rawValue < minValue)) {\r\n momentTypes = [];\r\n }\r\n }\r\n\r\n if (returnMomentTypes) {\r\n return momentTypes;\r\n }\r\n\r\n // Localize and pluralize unit labels.\r\n each(tokens, function (token) {\r\n var key = momentTokens[token.type];\r\n\r\n var momentType = find(momentTypes, function (momentType) {\r\n return momentType.type === token.type;\r\n });\r\n\r\n if (!key || !momentType) {\r\n return;\r\n }\r\n\r\n var values = momentType.formattedValueEn.split(\".\");\r\n\r\n values[0] = parseInt(values[0], 10);\r\n\r\n if (values[1]) {\r\n values[1] = parseFloat(\"0.\" + values[1], 10);\r\n } else {\r\n values[1] = null;\r\n }\r\n\r\n var pluralKey = localeData.durationPluralKey(key, values[0], values[1]);\r\n\r\n var labels = durationGetLabels(key, localeData);\r\n\r\n var autoLocalized = false;\r\n\r\n var pluralizedLabels = {};\r\n\r\n // Auto-Localized unit labels.\r\n each(localeData._durationLabelTypes, function (labelType) {\r\n var label = find(labels, function (label) {\r\n return label.type === labelType.type && label.key === pluralKey;\r\n });\r\n\r\n if (label) {\r\n pluralizedLabels[label.type] = label.label;\r\n\r\n if (stringIncludes(token.text, labelType.string)) {\r\n token.text = token.text.replace(labelType.string, label.label);\r\n autoLocalized = true;\r\n }\r\n }\r\n });\r\n\r\n // Auto-pluralized unit labels.\r\n if (usePlural && !autoLocalized) {\r\n labels.sort(durationLabelCompare);\r\n\r\n each(labels, function (label) {\r\n if (pluralizedLabels[label.type] === label.label) {\r\n if (stringIncludes(token.text, label.label)) {\r\n // Stop checking this token if its label is already\r\n // correctly pluralized.\r\n return false;\r\n }\r\n\r\n // Skip this label if it is correct, but not present in\r\n // the token's text.\r\n return;\r\n }\r\n\r\n if (stringIncludes(token.text, label.label)) {\r\n // Replece this token's label and stop checking.\r\n token.text = token.text.replace(label.label, pluralizedLabels[label.type]);\r\n return false;\r\n }\r\n });\r\n }\r\n });\r\n\r\n // Build ouptut.\r\n tokens = map(tokens, function (token) {\r\n if (!token.type) {\r\n return token.text;\r\n }\r\n\r\n var momentType = find(momentTypes, function (momentType) {\r\n return momentType.type === token.type;\r\n });\r\n\r\n if (!momentType) {\r\n return \"\";\r\n }\r\n\r\n var out = \"\";\r\n\r\n if (useLeftUnits) {\r\n out += token.text;\r\n }\r\n\r\n if (isNegative && isMaxValue || !isNegative && isMinValue) {\r\n out += \"< \";\r\n isMaxValue = false;\r\n isMinValue = false;\r\n }\r\n\r\n if (isNegative && isMinValue || !isNegative && isMaxValue) {\r\n out += \"> \";\r\n isMaxValue = false;\r\n isMinValue = false;\r\n }\r\n\r\n if (isNegative && (momentType.value > 0 || trim === \"\" || find(stopTrim, momentType.type) || find(outputTypes, momentType.type))) {\r\n out += \"-\";\r\n isNegative = false;\r\n }\r\n\r\n if (token.type === \"milliseconds\" && momentType.formattedValueMS) {\r\n out += momentType.formattedValueMS;\r\n } else {\r\n out += momentType.formattedValue;\r\n }\r\n\r\n if (!useLeftUnits) {\r\n out += token.text;\r\n }\r\n\r\n return out;\r\n });\r\n\r\n // Trim leading and trailing comma, space, colon, and dot.\r\n return tokens.join(\"\").replace(/(,| |:|\\.)*$/, \"\").replace(/^(,| |:|\\.)*/, \"\");\r\n }\r\n\r\n // defaultFormatTemplate\r\n function defaultFormatTemplate() {\r\n var dur = this.duration;\r\n\r\n var findType = function findType(type) {\r\n return dur._data[type];\r\n };\r\n\r\n var firstType = find(this.types, findType);\r\n\r\n var lastType = findLast(this.types, findType);\r\n\r\n // Default template strings for each duration dimension type.\r\n switch (firstType) {\r\n case \"milliseconds\":\r\n return \"S __\";\r\n case \"seconds\": // Fallthrough.\r\n case \"minutes\":\r\n return \"*_MS_\";\r\n case \"hours\":\r\n return \"_HMS_\";\r\n case \"days\": // Possible Fallthrough.\r\n if (firstType === lastType) {\r\n return \"d __\";\r\n }\r\n case \"weeks\":\r\n if (firstType === lastType) {\r\n return \"w __\";\r\n }\r\n\r\n if (this.trim === null) {\r\n this.trim = \"both\";\r\n }\r\n\r\n return \"w __, d __, h __\";\r\n case \"months\": // Possible Fallthrough.\r\n if (firstType === lastType) {\r\n return \"M __\";\r\n }\r\n case \"years\":\r\n if (firstType === lastType) {\r\n return \"y __\";\r\n }\r\n\r\n if (this.trim === null) {\r\n this.trim = \"both\";\r\n }\r\n\r\n return \"y __, M __, d __\";\r\n default:\r\n if (this.trim === null) {\r\n this.trim = \"both\";\r\n }\r\n\r\n return \"y __, d __, h __, m __, s __\";\r\n }\r\n }\r\n\r\n // init\r\n function init(context) {\r\n if (!context) {\r\n throw \"Moment Duration Format init cannot find moment instance.\";\r\n }\r\n\r\n context.duration.format = durationsFormat;\r\n context.duration.fn.format = durationFormat;\r\n\r\n context.duration.fn.format.defaults = {\r\n // Many options are defaulted to `null` to distinguish between\r\n // 'not set' and 'set to `false`'\r\n\r\n // trim\r\n // Can be a string, a delimited list of strings, an array of strings,\r\n // or a boolean.\r\n // \"large\" - will trim largest-magnitude zero-value tokens until\r\n // finding a token with a value, a token identified as 'stopTrim', or\r\n // the final token of the format string.\r\n // \"small\" - will trim smallest-magnitude zero-value tokens until\r\n // finding a token with a value, a token identified as 'stopTrim', or\r\n // the final token of the format string.\r\n // \"both\" - will execute \"large\" trim then \"small\" trim.\r\n // \"mid\" - will trim any zero-value tokens that are not the first or\r\n // last tokens. Usually used in conjunction with \"large\" or \"both\".\r\n // e.g. \"large mid\" or \"both mid\".\r\n // \"final\" - will trim the final token if it is zero-value. Use this\r\n // option with \"large\" or \"both\" to output an empty string when\r\n // formatting a zero-value duration. e.g. \"large final\" or \"both final\".\r\n // \"all\" - Will trim all zero-value tokens. Shorthand for \"both mid final\".\r\n // \"left\" - maps to \"large\" to support plugin's version 1 API.\r\n // \"right\" - maps to \"large\" to support plugin's version 1 API.\r\n // `false` - template tokens are not trimmed.\r\n // `true` - treated as \"large\".\r\n // `null` - treated as \"large\".\r\n trim: null,\r\n\r\n // stopTrim\r\n // A moment token string, a delimited set of moment token strings,\r\n // or an array of moment token strings. Trimming will stop when a token\r\n // listed in this option is reached. A \"*\" character in the format\r\n // template string will also mark a moment token as stopTrim.\r\n // e.g. \"d [days] *h:mm:ss\" will always stop trimming at the 'hours' token.\r\n stopTrim: null,\r\n\r\n // largest\r\n // Set to a positive integer to output only the \"n\" largest-magnitude\r\n // moment tokens that have a value. All lesser-magnitude moment tokens\r\n // will be ignored. This option takes effect even if `trim` is set\r\n // to `false`.\r\n largest: null,\r\n\r\n // maxValue\r\n // Use `maxValue` to render generalized output for large duration values,\r\n // e.g. `\"> 60 days\"`. `maxValue` must be a positive integer and is\r\n /// applied to the greatest-magnitude moment token in the format template.\r\n maxValue: null,\r\n\r\n // minValue\r\n // Use `minValue` to render generalized output for small duration values,\r\n // e.g. `\"< 5 minutes\"`. `minValue` must be a positive integer and is\r\n // applied to the least-magnitude moment token in the format template.\r\n minValue: null,\r\n\r\n // precision\r\n // If a positive integer, number of decimal fraction digits to render.\r\n // If a negative integer, number of integer place digits to truncate to 0.\r\n // If `useSignificantDigits` is set to `true` and `precision` is a positive\r\n // integer, sets the maximum number of significant digits used in the\r\n // formatted output.\r\n precision: 0,\r\n\r\n // trunc\r\n // Default behavior rounds final token value. Set to `true` to\r\n // truncate final token value, which was the default behavior in\r\n // version 1 of this plugin.\r\n trunc: false,\r\n\r\n // forceLength\r\n // Force first moment token with a value to render at full length\r\n // even when template is trimmed and first moment token has length of 1.\r\n forceLength: null,\r\n\r\n // userLocale\r\n // Formatted numerical output is rendered using `toLocaleString`\r\n // and the locale of the user's environment. Set this option to render\r\n // numerical output using a different locale. Unit names are rendered\r\n // and detected using the locale set in moment.js, which can be different\r\n // from the locale of user's environment.\r\n userLocale: null,\r\n\r\n // usePlural\r\n // Will automatically singularize or pluralize unit names when they\r\n // appear in the text associated with each moment token. Standard and\r\n // short unit labels are singularized and pluralized, based on locale.\r\n // e.g. in english, \"1 second\" or \"1 sec\" would be rendered instead\r\n // of \"1 seconds\" or \"1 secs\". The default pluralization function\r\n // renders a plural label for a value with decimal precision.\r\n // e.g. \"1.0 seconds\" is never rendered as \"1.0 second\".\r\n // Label types and pluralization function are configurable in the\r\n // localeData extensions.\r\n usePlural: true,\r\n\r\n // useLeftUnits\r\n // The text to the right of each moment token in a format string\r\n // is treated as that token's units for the purposes of trimming,\r\n // singularizing, and auto-localizing.\r\n // e.g. \"h [hours], m [minutes], s [seconds]\".\r\n // To properly singularize or localize a format string such as\r\n // \"[hours] h, [minutes] m, [seconds] s\", where the units appear\r\n // to the left of each moment token, set useLeftUnits to `true`.\r\n // This plugin is not tested in the context of rtl text.\r\n useLeftUnits: false,\r\n\r\n // useGrouping\r\n // Enables locale-based digit grouping in the formatted output. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\r\n useGrouping: true,\r\n\r\n // useSignificantDigits\r\n // Treat the `precision` option as the maximum significant digits\r\n // to be rendered. Precision must be a positive integer. Significant\r\n // digits extend across unit types,\r\n // e.g. \"6 hours 37.5 minutes\" represents 4 significant digits.\r\n // Enabling this option causes token length to be ignored. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\r\n useSignificantDigits: false,\r\n\r\n // template\r\n // The template string used to format the duration. May be a function\r\n // or a string. Template functions are executed with the `this` binding\r\n // of the settings object so that template strings may be dynamically\r\n // generated based on the duration object (accessible via `this.duration`)\r\n // or any of the other settings. Leading and trailing space, comma,\r\n // period, and colon characters are trimmed from the resulting string.\r\n template: defaultFormatTemplate,\r\n\r\n // useToLocaleString\r\n // Set this option to `false` to ignore the `toLocaleString` feature\r\n // test and force the use of the `formatNumber` fallback function\r\n // included in this plugin.\r\n useToLocaleString: true,\r\n\r\n // formatNumber fallback options.\r\n // When `toLocaleString` is detected and passes the feature test, the\r\n // following options will have no effect: `toLocaleString` will be used\r\n // for formatting and the grouping separator, decimal separator, and\r\n // integer digit grouping will be determined by the user locale.\r\n\r\n // groupingSeparator\r\n // The integer digit grouping separator used when using the fallback\r\n // formatNumber function.\r\n groupingSeparator: \",\",\r\n\r\n // decimalSeparator\r\n // The decimal separator used when using the fallback formatNumber\r\n // function.\r\n decimalSeparator: \".\",\r\n\r\n // grouping\r\n // The integer digit grouping used when using the fallback formatNumber\r\n // function. Must be an array. The default value of `[3]` gives the\r\n // standard 3-digit thousand/million/billion digit groupings for the\r\n // \"en\" locale. Setting this option to `[3, 2]` would generate the\r\n // thousand/lakh/crore digit groupings used in the \"en-IN\" locale.\r\n grouping: [3]\r\n };\r\n\r\n context.updateLocale('en', engLocale);\r\n }\r\n\r\n // Run feature tests for `Number#toLocaleString`.\r\n var toLocaleStringFormatter = function(number, locale, options) {\r\n return number.toLocaleString(locale, options);\r\n };\r\n\r\n toLocaleStringWorks = toLocaleStringSupportsLocales() && featureTestFormatter(toLocaleStringFormatter);\r\n toLocaleStringRoundingWorks = toLocaleStringWorks && featureTestFormatterRounding(toLocaleStringFormatter);\r\n\r\n // Run feature tests for `Intl.NumberFormat#format`.\r\n var intlNumberFormatFormatter = function(number, locale, options) {\r\n if (typeof window !== 'undefined' && window && window.Intl && window.Intl.NumberFormat) {\r\n return window.Intl.NumberFormat(locale, options).format(number);\r\n }\r\n };\r\n\r\n intlNumberFormatWorks = featureTestFormatter(intlNumberFormatFormatter);\r\n intlNumberFormatRoundingWorks = intlNumberFormatWorks && featureTestFormatterRounding(intlNumberFormatFormatter);\r\n\r\n // Initialize duration format on the global moment instance.\r\n init(moment);\r\n\r\n // Return the init function so that duration format can be\r\n // initialized on other moment instances.\r\n return init;\r\n});\r\n","//! moment.js locale configuration\r\n//! locale : Afrikaans [af]\r\n//! author : Werner Mollentze : https://github.com/wernerm\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var af = moment.defineLocale('af', {\r\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\r\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\r\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\r\n meridiemParse: /vm|nm/i,\r\n isPM: function (input) {\r\n return /^nm$/i.test(input);\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours < 12) {\r\n return isLower ? 'vm' : 'VM';\r\n } else {\r\n return isLower ? 'nm' : 'NM';\r\n }\r\n },\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Vandag om] LT',\r\n nextDay: '[Môre om] LT',\r\n nextWeek: 'dddd [om] LT',\r\n lastDay: '[Gister om] LT',\r\n lastWeek: '[Laas] dddd [om] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'oor %s',\r\n past: '%s gelede',\r\n s: \"'n paar sekondes\",\r\n ss: '%d sekondes',\r\n m: \"'n minuut\",\r\n mm: '%d minute',\r\n h: \"'n uur\",\r\n hh: '%d ure',\r\n d: \"'n dag\",\r\n dd: '%d dae',\r\n M: \"'n maand\",\r\n MM: '%d maande',\r\n y: \"'n jaar\",\r\n yy: '%d jaar',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\r\n ordinal: function (number) {\r\n return (\r\n number +\r\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\r\n ); // Thanks to Joris Röling : https://github.com/jjupiter\r\n },\r\n week: {\r\n dow: 1, // Maandag is die eerste dag van die week.\r\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\r\n },\r\n });\r\n\r\n return af;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Arabic (Algeria) [ar-dz]\r\n//! author : Amine Roukh: https://github.com/Amine27\r\n//! author : Abdel Said: https://github.com/abdelsaid\r\n//! author : Ahmed Elkhatib\r\n//! author : forabi https://github.com/forabi\r\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var pluralForm = function (n) {\r\n return n === 0\r\n ? 0\r\n : n === 1\r\n ? 1\r\n : n === 2\r\n ? 2\r\n : n % 100 >= 3 && n % 100 <= 10\r\n ? 3\r\n : n % 100 >= 11\r\n ? 4\r\n : 5;\r\n },\r\n plurals = {\r\n s: [\r\n 'أقل من ثانية',\r\n 'ثانية واحدة',\r\n ['ثانيتان', 'ثانيتين'],\r\n '%d ثوان',\r\n '%d ثانية',\r\n '%d ثانية',\r\n ],\r\n m: [\r\n 'أقل من دقيقة',\r\n 'دقيقة واحدة',\r\n ['دقيقتان', 'دقيقتين'],\r\n '%d دقائق',\r\n '%d دقيقة',\r\n '%d دقيقة',\r\n ],\r\n h: [\r\n 'أقل من ساعة',\r\n 'ساعة واحدة',\r\n ['ساعتان', 'ساعتين'],\r\n '%d ساعات',\r\n '%d ساعة',\r\n '%d ساعة',\r\n ],\r\n d: [\r\n 'أقل من يوم',\r\n 'يوم واحد',\r\n ['يومان', 'يومين'],\r\n '%d أيام',\r\n '%d يومًا',\r\n '%d يوم',\r\n ],\r\n M: [\r\n 'أقل من شهر',\r\n 'شهر واحد',\r\n ['شهران', 'شهرين'],\r\n '%d أشهر',\r\n '%d شهرا',\r\n '%d شهر',\r\n ],\r\n y: [\r\n 'أقل من عام',\r\n 'عام واحد',\r\n ['عامان', 'عامين'],\r\n '%d أعوام',\r\n '%d عامًا',\r\n '%d عام',\r\n ],\r\n },\r\n pluralize = function (u) {\r\n return function (number, withoutSuffix, string, isFuture) {\r\n var f = pluralForm(number),\r\n str = plurals[u][pluralForm(number)];\r\n if (f === 2) {\r\n str = str[withoutSuffix ? 0 : 1];\r\n }\r\n return str.replace(/%d/i, number);\r\n };\r\n },\r\n months = [\r\n 'جانفي',\r\n 'فيفري',\r\n 'مارس',\r\n 'أفريل',\r\n 'ماي',\r\n 'جوان',\r\n 'جويلية',\r\n 'أوت',\r\n 'سبتمبر',\r\n 'أكتوبر',\r\n 'نوفمبر',\r\n 'ديسمبر',\r\n ];\r\n\r\n var arDz = moment.defineLocale('ar-dz', {\r\n months: months,\r\n monthsShort: months,\r\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\r\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\r\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'D/\\u200FM/\\u200FYYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /ص|م/,\r\n isPM: function (input) {\r\n return 'م' === input;\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'ص';\r\n } else {\r\n return 'م';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[اليوم عند الساعة] LT',\r\n nextDay: '[غدًا عند الساعة] LT',\r\n nextWeek: 'dddd [عند الساعة] LT',\r\n lastDay: '[أمس عند الساعة] LT',\r\n lastWeek: 'dddd [عند الساعة] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'بعد %s',\r\n past: 'منذ %s',\r\n s: pluralize('s'),\r\n ss: pluralize('s'),\r\n m: pluralize('m'),\r\n mm: pluralize('m'),\r\n h: pluralize('h'),\r\n hh: pluralize('h'),\r\n d: pluralize('d'),\r\n dd: pluralize('d'),\r\n M: pluralize('M'),\r\n MM: pluralize('M'),\r\n y: pluralize('y'),\r\n yy: pluralize('y'),\r\n },\r\n postformat: function (string) {\r\n return string.replace(/,/g, '،');\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return arDz;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Arabic (Kuwait) [ar-kw]\r\n//! author : Nusret Parlak: https://github.com/nusretparlak\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var arKw = moment.defineLocale('ar-kw', {\r\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\r\n '_'\r\n ),\r\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\r\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\r\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[اليوم على الساعة] LT',\r\n nextDay: '[غدا على الساعة] LT',\r\n nextWeek: 'dddd [على الساعة] LT',\r\n lastDay: '[أمس على الساعة] LT',\r\n lastWeek: 'dddd [على الساعة] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'في %s',\r\n past: 'منذ %s',\r\n s: 'ثوان',\r\n ss: '%d ثانية',\r\n m: 'دقيقة',\r\n mm: '%d دقائق',\r\n h: 'ساعة',\r\n hh: '%d ساعات',\r\n d: 'يوم',\r\n dd: '%d أيام',\r\n M: 'شهر',\r\n MM: '%d أشهر',\r\n y: 'سنة',\r\n yy: '%d سنوات',\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 12, // The week that contains Jan 12th is the first week of the year.\r\n },\r\n });\r\n\r\n return arKw;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Arabic (Libya) [ar-ly]\r\n//! author : Ali Hmer: https://github.com/kikoanis\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '1',\r\n 2: '2',\r\n 3: '3',\r\n 4: '4',\r\n 5: '5',\r\n 6: '6',\r\n 7: '7',\r\n 8: '8',\r\n 9: '9',\r\n 0: '0',\r\n },\r\n pluralForm = function (n) {\r\n return n === 0\r\n ? 0\r\n : n === 1\r\n ? 1\r\n : n === 2\r\n ? 2\r\n : n % 100 >= 3 && n % 100 <= 10\r\n ? 3\r\n : n % 100 >= 11\r\n ? 4\r\n : 5;\r\n },\r\n plurals = {\r\n s: [\r\n 'أقل من ثانية',\r\n 'ثانية واحدة',\r\n ['ثانيتان', 'ثانيتين'],\r\n '%d ثوان',\r\n '%d ثانية',\r\n '%d ثانية',\r\n ],\r\n m: [\r\n 'أقل من دقيقة',\r\n 'دقيقة واحدة',\r\n ['دقيقتان', 'دقيقتين'],\r\n '%d دقائق',\r\n '%d دقيقة',\r\n '%d دقيقة',\r\n ],\r\n h: [\r\n 'أقل من ساعة',\r\n 'ساعة واحدة',\r\n ['ساعتان', 'ساعتين'],\r\n '%d ساعات',\r\n '%d ساعة',\r\n '%d ساعة',\r\n ],\r\n d: [\r\n 'أقل من يوم',\r\n 'يوم واحد',\r\n ['يومان', 'يومين'],\r\n '%d أيام',\r\n '%d يومًا',\r\n '%d يوم',\r\n ],\r\n M: [\r\n 'أقل من شهر',\r\n 'شهر واحد',\r\n ['شهران', 'شهرين'],\r\n '%d أشهر',\r\n '%d شهرا',\r\n '%d شهر',\r\n ],\r\n y: [\r\n 'أقل من عام',\r\n 'عام واحد',\r\n ['عامان', 'عامين'],\r\n '%d أعوام',\r\n '%d عامًا',\r\n '%d عام',\r\n ],\r\n },\r\n pluralize = function (u) {\r\n return function (number, withoutSuffix, string, isFuture) {\r\n var f = pluralForm(number),\r\n str = plurals[u][pluralForm(number)];\r\n if (f === 2) {\r\n str = str[withoutSuffix ? 0 : 1];\r\n }\r\n return str.replace(/%d/i, number);\r\n };\r\n },\r\n months = [\r\n 'يناير',\r\n 'فبراير',\r\n 'مارس',\r\n 'أبريل',\r\n 'مايو',\r\n 'يونيو',\r\n 'يوليو',\r\n 'أغسطس',\r\n 'سبتمبر',\r\n 'أكتوبر',\r\n 'نوفمبر',\r\n 'ديسمبر',\r\n ];\r\n\r\n var arLy = moment.defineLocale('ar-ly', {\r\n months: months,\r\n monthsShort: months,\r\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\r\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\r\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'D/\\u200FM/\\u200FYYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /ص|م/,\r\n isPM: function (input) {\r\n return 'م' === input;\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'ص';\r\n } else {\r\n return 'م';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[اليوم عند الساعة] LT',\r\n nextDay: '[غدًا عند الساعة] LT',\r\n nextWeek: 'dddd [عند الساعة] LT',\r\n lastDay: '[أمس عند الساعة] LT',\r\n lastWeek: 'dddd [عند الساعة] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'بعد %s',\r\n past: 'منذ %s',\r\n s: pluralize('s'),\r\n ss: pluralize('s'),\r\n m: pluralize('m'),\r\n mm: pluralize('m'),\r\n h: pluralize('h'),\r\n hh: pluralize('h'),\r\n d: pluralize('d'),\r\n dd: pluralize('d'),\r\n M: pluralize('M'),\r\n MM: pluralize('M'),\r\n y: pluralize('y'),\r\n yy: pluralize('y'),\r\n },\r\n preparse: function (string) {\r\n return string.replace(/،/g, ',');\r\n },\r\n postformat: function (string) {\r\n return string\r\n .replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n })\r\n .replace(/,/g, '،');\r\n },\r\n week: {\r\n dow: 6, // Saturday is the first day of the week.\r\n doy: 12, // The week that contains Jan 12th is the first week of the year.\r\n },\r\n });\r\n\r\n return arLy;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Arabic (Morocco) [ar-ma]\r\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\r\n//! author : Abdel Said : https://github.com/abdelsaid\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var arMa = moment.defineLocale('ar-ma', {\r\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\r\n '_'\r\n ),\r\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\r\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\r\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[اليوم على الساعة] LT',\r\n nextDay: '[غدا على الساعة] LT',\r\n nextWeek: 'dddd [على الساعة] LT',\r\n lastDay: '[أمس على الساعة] LT',\r\n lastWeek: 'dddd [على الساعة] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'في %s',\r\n past: 'منذ %s',\r\n s: 'ثوان',\r\n ss: '%d ثانية',\r\n m: 'دقيقة',\r\n mm: '%d دقائق',\r\n h: 'ساعة',\r\n hh: '%d ساعات',\r\n d: 'يوم',\r\n dd: '%d أيام',\r\n M: 'شهر',\r\n MM: '%d أشهر',\r\n y: 'سنة',\r\n yy: '%d سنوات',\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return arMa;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Arabic (Palestine) [ar-ps]\r\n//! author : Majd Al-Shihabi : https://github.com/majdal\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '١',\r\n 2: '٢',\r\n 3: '٣',\r\n 4: '٤',\r\n 5: '٥',\r\n 6: '٦',\r\n 7: '٧',\r\n 8: '٨',\r\n 9: '٩',\r\n 0: '٠',\r\n },\r\n numberMap = {\r\n '١': '1',\r\n '٢': '2',\r\n '٣': '3',\r\n '٤': '4',\r\n '٥': '5',\r\n '٦': '6',\r\n '٧': '7',\r\n '٨': '8',\r\n '٩': '9',\r\n '٠': '0',\r\n };\r\n\r\n var arPs = moment.defineLocale('ar-ps', {\r\n months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\r\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\r\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\r\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /ص|م/,\r\n isPM: function (input) {\r\n return 'م' === input;\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'ص';\r\n } else {\r\n return 'م';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[اليوم على الساعة] LT',\r\n nextDay: '[غدا على الساعة] LT',\r\n nextWeek: 'dddd [على الساعة] LT',\r\n lastDay: '[أمس على الساعة] LT',\r\n lastWeek: 'dddd [على الساعة] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'في %s',\r\n past: 'منذ %s',\r\n s: 'ثوان',\r\n ss: '%d ثانية',\r\n m: 'دقيقة',\r\n mm: '%d دقائق',\r\n h: 'ساعة',\r\n hh: '%d ساعات',\r\n d: 'يوم',\r\n dd: '%d أيام',\r\n M: 'شهر',\r\n MM: '%d أشهر',\r\n y: 'سنة',\r\n yy: '%d سنوات',\r\n },\r\n preparse: function (string) {\r\n return string\r\n .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\r\n return numberMap[match];\r\n })\r\n .split('') // reversed since negative lookbehind not supported everywhere\r\n .reverse()\r\n .join('')\r\n .replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\r\n return numberMap[match];\r\n })\r\n .split('')\r\n .reverse()\r\n .join('')\r\n .replace(/،/g, ',');\r\n },\r\n postformat: function (string) {\r\n return string\r\n .replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n })\r\n .replace(/,/g, '،');\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return arPs;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Arabic (Saudi Arabia) [ar-sa]\r\n//! author : Suhail Alkowaileet : https://github.com/xsoh\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '١',\r\n 2: '٢',\r\n 3: '٣',\r\n 4: '٤',\r\n 5: '٥',\r\n 6: '٦',\r\n 7: '٧',\r\n 8: '٨',\r\n 9: '٩',\r\n 0: '٠',\r\n },\r\n numberMap = {\r\n '١': '1',\r\n '٢': '2',\r\n '٣': '3',\r\n '٤': '4',\r\n '٥': '5',\r\n '٦': '6',\r\n '٧': '7',\r\n '٨': '8',\r\n '٩': '9',\r\n '٠': '0',\r\n };\r\n\r\n var arSa = moment.defineLocale('ar-sa', {\r\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\r\n '_'\r\n ),\r\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\r\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\r\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /ص|م/,\r\n isPM: function (input) {\r\n return 'م' === input;\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'ص';\r\n } else {\r\n return 'م';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[اليوم على الساعة] LT',\r\n nextDay: '[غدا على الساعة] LT',\r\n nextWeek: 'dddd [على الساعة] LT',\r\n lastDay: '[أمس على الساعة] LT',\r\n lastWeek: 'dddd [على الساعة] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'في %s',\r\n past: 'منذ %s',\r\n s: 'ثوان',\r\n ss: '%d ثانية',\r\n m: 'دقيقة',\r\n mm: '%d دقائق',\r\n h: 'ساعة',\r\n hh: '%d ساعات',\r\n d: 'يوم',\r\n dd: '%d أيام',\r\n M: 'شهر',\r\n MM: '%d أشهر',\r\n y: 'سنة',\r\n yy: '%d سنوات',\r\n },\r\n preparse: function (string) {\r\n return string\r\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\r\n return numberMap[match];\r\n })\r\n .replace(/،/g, ',');\r\n },\r\n postformat: function (string) {\r\n return string\r\n .replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n })\r\n .replace(/,/g, '،');\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return arSa;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Arabic (Tunisia) [ar-tn]\r\n//! author : Nader Toukabri : https://github.com/naderio\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var arTn = moment.defineLocale('ar-tn', {\r\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\r\n '_'\r\n ),\r\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\r\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\r\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[اليوم على الساعة] LT',\r\n nextDay: '[غدا على الساعة] LT',\r\n nextWeek: 'dddd [على الساعة] LT',\r\n lastDay: '[أمس على الساعة] LT',\r\n lastWeek: 'dddd [على الساعة] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'في %s',\r\n past: 'منذ %s',\r\n s: 'ثوان',\r\n ss: '%d ثانية',\r\n m: 'دقيقة',\r\n mm: '%d دقائق',\r\n h: 'ساعة',\r\n hh: '%d ساعات',\r\n d: 'يوم',\r\n dd: '%d أيام',\r\n M: 'شهر',\r\n MM: '%d أشهر',\r\n y: 'سنة',\r\n yy: '%d سنوات',\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return arTn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Arabic [ar]\r\n//! author : Abdel Said: https://github.com/abdelsaid\r\n//! author : Ahmed Elkhatib\r\n//! author : forabi https://github.com/forabi\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '١',\r\n 2: '٢',\r\n 3: '٣',\r\n 4: '٤',\r\n 5: '٥',\r\n 6: '٦',\r\n 7: '٧',\r\n 8: '٨',\r\n 9: '٩',\r\n 0: '٠',\r\n },\r\n numberMap = {\r\n '١': '1',\r\n '٢': '2',\r\n '٣': '3',\r\n '٤': '4',\r\n '٥': '5',\r\n '٦': '6',\r\n '٧': '7',\r\n '٨': '8',\r\n '٩': '9',\r\n '٠': '0',\r\n },\r\n pluralForm = function (n) {\r\n return n === 0\r\n ? 0\r\n : n === 1\r\n ? 1\r\n : n === 2\r\n ? 2\r\n : n % 100 >= 3 && n % 100 <= 10\r\n ? 3\r\n : n % 100 >= 11\r\n ? 4\r\n : 5;\r\n },\r\n plurals = {\r\n s: [\r\n 'أقل من ثانية',\r\n 'ثانية واحدة',\r\n ['ثانيتان', 'ثانيتين'],\r\n '%d ثوان',\r\n '%d ثانية',\r\n '%d ثانية',\r\n ],\r\n m: [\r\n 'أقل من دقيقة',\r\n 'دقيقة واحدة',\r\n ['دقيقتان', 'دقيقتين'],\r\n '%d دقائق',\r\n '%d دقيقة',\r\n '%d دقيقة',\r\n ],\r\n h: [\r\n 'أقل من ساعة',\r\n 'ساعة واحدة',\r\n ['ساعتان', 'ساعتين'],\r\n '%d ساعات',\r\n '%d ساعة',\r\n '%d ساعة',\r\n ],\r\n d: [\r\n 'أقل من يوم',\r\n 'يوم واحد',\r\n ['يومان', 'يومين'],\r\n '%d أيام',\r\n '%d يومًا',\r\n '%d يوم',\r\n ],\r\n M: [\r\n 'أقل من شهر',\r\n 'شهر واحد',\r\n ['شهران', 'شهرين'],\r\n '%d أشهر',\r\n '%d شهرا',\r\n '%d شهر',\r\n ],\r\n y: [\r\n 'أقل من عام',\r\n 'عام واحد',\r\n ['عامان', 'عامين'],\r\n '%d أعوام',\r\n '%d عامًا',\r\n '%d عام',\r\n ],\r\n },\r\n pluralize = function (u) {\r\n return function (number, withoutSuffix, string, isFuture) {\r\n var f = pluralForm(number),\r\n str = plurals[u][pluralForm(number)];\r\n if (f === 2) {\r\n str = str[withoutSuffix ? 0 : 1];\r\n }\r\n return str.replace(/%d/i, number);\r\n };\r\n },\r\n months = [\r\n 'يناير',\r\n 'فبراير',\r\n 'مارس',\r\n 'أبريل',\r\n 'مايو',\r\n 'يونيو',\r\n 'يوليو',\r\n 'أغسطس',\r\n 'سبتمبر',\r\n 'أكتوبر',\r\n 'نوفمبر',\r\n 'ديسمبر',\r\n ];\r\n\r\n var ar = moment.defineLocale('ar', {\r\n months: months,\r\n monthsShort: months,\r\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\r\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\r\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'D/\\u200FM/\\u200FYYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /ص|م/,\r\n isPM: function (input) {\r\n return 'م' === input;\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'ص';\r\n } else {\r\n return 'م';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[اليوم عند الساعة] LT',\r\n nextDay: '[غدًا عند الساعة] LT',\r\n nextWeek: 'dddd [عند الساعة] LT',\r\n lastDay: '[أمس عند الساعة] LT',\r\n lastWeek: 'dddd [عند الساعة] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'بعد %s',\r\n past: 'منذ %s',\r\n s: pluralize('s'),\r\n ss: pluralize('s'),\r\n m: pluralize('m'),\r\n mm: pluralize('m'),\r\n h: pluralize('h'),\r\n hh: pluralize('h'),\r\n d: pluralize('d'),\r\n dd: pluralize('d'),\r\n M: pluralize('M'),\r\n MM: pluralize('M'),\r\n y: pluralize('y'),\r\n yy: pluralize('y'),\r\n },\r\n preparse: function (string) {\r\n return string\r\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\r\n return numberMap[match];\r\n })\r\n .replace(/،/g, ',');\r\n },\r\n postformat: function (string) {\r\n return string\r\n .replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n })\r\n .replace(/,/g, '،');\r\n },\r\n week: {\r\n dow: 6, // Saturday is the first day of the week.\r\n doy: 12, // The week that contains Jan 12th is the first week of the year.\r\n },\r\n });\r\n\r\n return ar;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Azerbaijani [az]\r\n//! author : topchiyev : https://github.com/topchiyev\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var suffixes = {\r\n 1: '-inci',\r\n 5: '-inci',\r\n 8: '-inci',\r\n 70: '-inci',\r\n 80: '-inci',\r\n 2: '-nci',\r\n 7: '-nci',\r\n 20: '-nci',\r\n 50: '-nci',\r\n 3: '-üncü',\r\n 4: '-üncü',\r\n 100: '-üncü',\r\n 6: '-ncı',\r\n 9: '-uncu',\r\n 10: '-uncu',\r\n 30: '-uncu',\r\n 60: '-ıncı',\r\n 90: '-ıncı',\r\n };\r\n\r\n var az = moment.defineLocale('az', {\r\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\r\n '_'\r\n ),\r\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\r\n weekdays:\r\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\r\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[bugün saat] LT',\r\n nextDay: '[sabah saat] LT',\r\n nextWeek: '[gələn həftə] dddd [saat] LT',\r\n lastDay: '[dünən] LT',\r\n lastWeek: '[keçən həftə] dddd [saat] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s sonra',\r\n past: '%s əvvəl',\r\n s: 'bir neçə saniyə',\r\n ss: '%d saniyə',\r\n m: 'bir dəqiqə',\r\n mm: '%d dəqiqə',\r\n h: 'bir saat',\r\n hh: '%d saat',\r\n d: 'bir gün',\r\n dd: '%d gün',\r\n M: 'bir ay',\r\n MM: '%d ay',\r\n y: 'bir il',\r\n yy: '%d il',\r\n },\r\n meridiemParse: /gecə|səhər|gündüz|axşam/,\r\n isPM: function (input) {\r\n return /^(gündüz|axşam)$/.test(input);\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'gecə';\r\n } else if (hour < 12) {\r\n return 'səhər';\r\n } else if (hour < 17) {\r\n return 'gündüz';\r\n } else {\r\n return 'axşam';\r\n }\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\r\n ordinal: function (number) {\r\n if (number === 0) {\r\n // special case for zero\r\n return number + '-ıncı';\r\n }\r\n var a = number % 10,\r\n b = (number % 100) - a,\r\n c = number >= 100 ? 100 : null;\r\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return az;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Belarusian [be]\r\n//! author : Dmitry Demidov : https://github.com/demidov91\r\n//! author: Praleska: http://praleska.pro/\r\n//! Author : Menelion Elensúle : https://github.com/Oire\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function plural(word, num) {\r\n var forms = word.split('_');\r\n return num % 10 === 1 && num % 100 !== 11\r\n ? forms[0]\r\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\r\n ? forms[1]\r\n : forms[2];\r\n }\r\n function relativeTimeWithPlural(number, withoutSuffix, key) {\r\n var format = {\r\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\r\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\r\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\r\n dd: 'дзень_дні_дзён',\r\n MM: 'месяц_месяцы_месяцаў',\r\n yy: 'год_гады_гадоў',\r\n };\r\n if (key === 'm') {\r\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\r\n } else if (key === 'h') {\r\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\r\n } else {\r\n return number + ' ' + plural(format[key], +number);\r\n }\r\n }\r\n\r\n var be = moment.defineLocale('be', {\r\n months: {\r\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\r\n '_'\r\n ),\r\n },\r\n monthsShort:\r\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\r\n weekdays: {\r\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\r\n '_'\r\n ),\r\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\r\n },\r\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\r\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY г.',\r\n LLL: 'D MMMM YYYY г., HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Сёння ў] LT',\r\n nextDay: '[Заўтра ў] LT',\r\n lastDay: '[Учора ў] LT',\r\n nextWeek: function () {\r\n return '[У] dddd [ў] LT';\r\n },\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n case 3:\r\n case 5:\r\n case 6:\r\n return '[У мінулую] dddd [ў] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n return '[У мінулы] dddd [ў] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'праз %s',\r\n past: '%s таму',\r\n s: 'некалькі секунд',\r\n m: relativeTimeWithPlural,\r\n mm: relativeTimeWithPlural,\r\n h: relativeTimeWithPlural,\r\n hh: relativeTimeWithPlural,\r\n d: 'дзень',\r\n dd: relativeTimeWithPlural,\r\n M: 'месяц',\r\n MM: relativeTimeWithPlural,\r\n y: 'год',\r\n yy: relativeTimeWithPlural,\r\n },\r\n meridiemParse: /ночы|раніцы|дня|вечара/,\r\n isPM: function (input) {\r\n return /^(дня|вечара)$/.test(input);\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'ночы';\r\n } else if (hour < 12) {\r\n return 'раніцы';\r\n } else if (hour < 17) {\r\n return 'дня';\r\n } else {\r\n return 'вечара';\r\n }\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'M':\r\n case 'd':\r\n case 'DDD':\r\n case 'w':\r\n case 'W':\r\n return (number % 10 === 2 || number % 10 === 3) &&\r\n number % 100 !== 12 &&\r\n number % 100 !== 13\r\n ? number + '-і'\r\n : number + '-ы';\r\n case 'D':\r\n return number + '-га';\r\n default:\r\n return number;\r\n }\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return be;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Bulgarian [bg]\r\n//! author : Krasen Borisov : https://github.com/kraz\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var bg = moment.defineLocale('bg', {\r\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\r\n '_'\r\n ),\r\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\r\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\r\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'D.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY H:mm',\r\n LLLL: 'dddd, D MMMM YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Днес в] LT',\r\n nextDay: '[Утре в] LT',\r\n nextWeek: 'dddd [в] LT',\r\n lastDay: '[Вчера в] LT',\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n case 3:\r\n case 6:\r\n return '[Миналата] dddd [в] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[Миналия] dddd [в] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'след %s',\r\n past: 'преди %s',\r\n s: 'няколко секунди',\r\n ss: '%d секунди',\r\n m: 'минута',\r\n mm: '%d минути',\r\n h: 'час',\r\n hh: '%d часа',\r\n d: 'ден',\r\n dd: '%d дена',\r\n w: 'седмица',\r\n ww: '%d седмици',\r\n M: 'месец',\r\n MM: '%d месеца',\r\n y: 'година',\r\n yy: '%d години',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\r\n ordinal: function (number) {\r\n var lastDigit = number % 10,\r\n last2Digits = number % 100;\r\n if (number === 0) {\r\n return number + '-ев';\r\n } else if (last2Digits === 0) {\r\n return number + '-ен';\r\n } else if (last2Digits > 10 && last2Digits < 20) {\r\n return number + '-ти';\r\n } else if (lastDigit === 1) {\r\n return number + '-ви';\r\n } else if (lastDigit === 2) {\r\n return number + '-ри';\r\n } else if (lastDigit === 7 || lastDigit === 8) {\r\n return number + '-ми';\r\n } else {\r\n return number + '-ти';\r\n }\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return bg;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Bambara [bm]\r\n//! author : Estelle Comment : https://github.com/estellecomment\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var bm = moment.defineLocale('bm', {\r\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\r\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\r\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\r\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'MMMM [tile] D [san] YYYY',\r\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\r\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Bi lɛrɛ] LT',\r\n nextDay: '[Sini lɛrɛ] LT',\r\n nextWeek: 'dddd [don lɛrɛ] LT',\r\n lastDay: '[Kunu lɛrɛ] LT',\r\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s kɔnɔ',\r\n past: 'a bɛ %s bɔ',\r\n s: 'sanga dama dama',\r\n ss: 'sekondi %d',\r\n m: 'miniti kelen',\r\n mm: 'miniti %d',\r\n h: 'lɛrɛ kelen',\r\n hh: 'lɛrɛ %d',\r\n d: 'tile kelen',\r\n dd: 'tile %d',\r\n M: 'kalo kelen',\r\n MM: 'kalo %d',\r\n y: 'san kelen',\r\n yy: 'san %d',\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return bm;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Bengali (Bangladesh) [bn-bd]\r\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '১',\r\n 2: '২',\r\n 3: '৩',\r\n 4: '৪',\r\n 5: '৫',\r\n 6: '৬',\r\n 7: '৭',\r\n 8: '৮',\r\n 9: '৯',\r\n 0: '০',\r\n },\r\n numberMap = {\r\n '১': '1',\r\n '২': '2',\r\n '৩': '3',\r\n '৪': '4',\r\n '৫': '5',\r\n '৬': '6',\r\n '৭': '7',\r\n '৮': '8',\r\n '৯': '9',\r\n '০': '0',\r\n };\r\n\r\n var bnBd = moment.defineLocale('bn-bd', {\r\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\r\n '_'\r\n ),\r\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\r\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm সময়',\r\n LTS: 'A h:mm:ss সময়',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, A h:mm সময়',\r\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\r\n },\r\n calendar: {\r\n sameDay: '[আজ] LT',\r\n nextDay: '[আগামীকাল] LT',\r\n nextWeek: 'dddd, LT',\r\n lastDay: '[গতকাল] LT',\r\n lastWeek: '[গত] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s পরে',\r\n past: '%s আগে',\r\n s: 'কয়েক সেকেন্ড',\r\n ss: '%d সেকেন্ড',\r\n m: 'এক মিনিট',\r\n mm: '%d মিনিট',\r\n h: 'এক ঘন্টা',\r\n hh: '%d ঘন্টা',\r\n d: 'এক দিন',\r\n dd: '%d দিন',\r\n M: 'এক মাস',\r\n MM: '%d মাস',\r\n y: 'এক বছর',\r\n yy: '%d বছর',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n\r\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'রাত') {\r\n return hour < 4 ? hour : hour + 12;\r\n } else if (meridiem === 'ভোর') {\r\n return hour;\r\n } else if (meridiem === 'সকাল') {\r\n return hour;\r\n } else if (meridiem === 'দুপুর') {\r\n return hour >= 3 ? hour : hour + 12;\r\n } else if (meridiem === 'বিকাল') {\r\n return hour + 12;\r\n } else if (meridiem === 'সন্ধ্যা') {\r\n return hour + 12;\r\n }\r\n },\r\n\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'রাত';\r\n } else if (hour < 6) {\r\n return 'ভোর';\r\n } else if (hour < 12) {\r\n return 'সকাল';\r\n } else if (hour < 15) {\r\n return 'দুপুর';\r\n } else if (hour < 18) {\r\n return 'বিকাল';\r\n } else if (hour < 20) {\r\n return 'সন্ধ্যা';\r\n } else {\r\n return 'রাত';\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return bnBd;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Bengali [bn]\r\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '১',\r\n 2: '২',\r\n 3: '৩',\r\n 4: '৪',\r\n 5: '৫',\r\n 6: '৬',\r\n 7: '৭',\r\n 8: '৮',\r\n 9: '৯',\r\n 0: '০',\r\n },\r\n numberMap = {\r\n '১': '1',\r\n '২': '2',\r\n '৩': '3',\r\n '৪': '4',\r\n '৫': '5',\r\n '৬': '6',\r\n '৭': '7',\r\n '৮': '8',\r\n '৯': '9',\r\n '০': '0',\r\n };\r\n\r\n var bn = moment.defineLocale('bn', {\r\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\r\n '_'\r\n ),\r\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\r\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm সময়',\r\n LTS: 'A h:mm:ss সময়',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, A h:mm সময়',\r\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\r\n },\r\n calendar: {\r\n sameDay: '[আজ] LT',\r\n nextDay: '[আগামীকাল] LT',\r\n nextWeek: 'dddd, LT',\r\n lastDay: '[গতকাল] LT',\r\n lastWeek: '[গত] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s পরে',\r\n past: '%s আগে',\r\n s: 'কয়েক সেকেন্ড',\r\n ss: '%d সেকেন্ড',\r\n m: 'এক মিনিট',\r\n mm: '%d মিনিট',\r\n h: 'এক ঘন্টা',\r\n hh: '%d ঘন্টা',\r\n d: 'এক দিন',\r\n dd: '%d দিন',\r\n M: 'এক মাস',\r\n MM: '%d মাস',\r\n y: 'এক বছর',\r\n yy: '%d বছর',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (\r\n (meridiem === 'রাত' && hour >= 4) ||\r\n (meridiem === 'দুপুর' && hour < 5) ||\r\n meridiem === 'বিকাল'\r\n ) {\r\n return hour + 12;\r\n } else {\r\n return hour;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'রাত';\r\n } else if (hour < 10) {\r\n return 'সকাল';\r\n } else if (hour < 17) {\r\n return 'দুপুর';\r\n } else if (hour < 20) {\r\n return 'বিকাল';\r\n } else {\r\n return 'রাত';\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return bn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Tibetan [bo]\r\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '༡',\r\n 2: '༢',\r\n 3: '༣',\r\n 4: '༤',\r\n 5: '༥',\r\n 6: '༦',\r\n 7: '༧',\r\n 8: '༨',\r\n 9: '༩',\r\n 0: '༠',\r\n },\r\n numberMap = {\r\n '༡': '1',\r\n '༢': '2',\r\n '༣': '3',\r\n '༤': '4',\r\n '༥': '5',\r\n '༦': '6',\r\n '༧': '7',\r\n '༨': '8',\r\n '༩': '9',\r\n '༠': '0',\r\n };\r\n\r\n var bo = moment.defineLocale('bo', {\r\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\r\n '_'\r\n ),\r\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\r\n monthsParseExact: true,\r\n weekdays:\r\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\r\n '_'\r\n ),\r\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm',\r\n LTS: 'A h:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, A h:mm',\r\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\r\n },\r\n calendar: {\r\n sameDay: '[དི་རིང] LT',\r\n nextDay: '[སང་ཉིན] LT',\r\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\r\n lastDay: '[ཁ་སང] LT',\r\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s ལ་',\r\n past: '%s སྔན་ལ',\r\n s: 'ལམ་སང',\r\n ss: '%d སྐར་ཆ།',\r\n m: 'སྐར་མ་གཅིག',\r\n mm: '%d སྐར་མ',\r\n h: 'ཆུ་ཚོད་གཅིག',\r\n hh: '%d ཆུ་ཚོད',\r\n d: 'ཉིན་གཅིག',\r\n dd: '%d ཉིན་',\r\n M: 'ཟླ་བ་གཅིག',\r\n MM: '%d ཟླ་བ',\r\n y: 'ལོ་གཅིག',\r\n yy: '%d ལོ',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (\r\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\r\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\r\n meridiem === 'དགོང་དག'\r\n ) {\r\n return hour + 12;\r\n } else {\r\n return hour;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'མཚན་མོ';\r\n } else if (hour < 10) {\r\n return 'ཞོགས་ཀས';\r\n } else if (hour < 17) {\r\n return 'ཉིན་གུང';\r\n } else if (hour < 20) {\r\n return 'དགོང་དག';\r\n } else {\r\n return 'མཚན་མོ';\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return bo;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Breton [br]\r\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function relativeTimeWithMutation(number, withoutSuffix, key) {\r\n var format = {\r\n mm: 'munutenn',\r\n MM: 'miz',\r\n dd: 'devezh',\r\n };\r\n return number + ' ' + mutation(format[key], number);\r\n }\r\n function specialMutationForYears(number) {\r\n switch (lastNumber(number)) {\r\n case 1:\r\n case 3:\r\n case 4:\r\n case 5:\r\n case 9:\r\n return number + ' bloaz';\r\n default:\r\n return number + ' vloaz';\r\n }\r\n }\r\n function lastNumber(number) {\r\n if (number > 9) {\r\n return lastNumber(number % 10);\r\n }\r\n return number;\r\n }\r\n function mutation(text, number) {\r\n if (number === 2) {\r\n return softMutation(text);\r\n }\r\n return text;\r\n }\r\n function softMutation(text) {\r\n var mutationTable = {\r\n m: 'v',\r\n b: 'v',\r\n d: 'z',\r\n };\r\n if (mutationTable[text.charAt(0)] === undefined) {\r\n return text;\r\n }\r\n return mutationTable[text.charAt(0)] + text.substring(1);\r\n }\r\n\r\n var monthsParse = [\r\n /^gen/i,\r\n /^c[ʼ\\']hwe/i,\r\n /^meu/i,\r\n /^ebr/i,\r\n /^mae/i,\r\n /^(mez|eve)/i,\r\n /^gou/i,\r\n /^eos/i,\r\n /^gwe/i,\r\n /^her/i,\r\n /^du/i,\r\n /^ker/i,\r\n ],\r\n monthsRegex =\r\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\r\n monthsStrictRegex =\r\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\r\n monthsShortStrictRegex =\r\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\r\n fullWeekdaysParse = [\r\n /^sul/i,\r\n /^lun/i,\r\n /^meurzh/i,\r\n /^merc[ʼ\\']her/i,\r\n /^yaou/i,\r\n /^gwener/i,\r\n /^sadorn/i,\r\n ],\r\n shortWeekdaysParse = [\r\n /^Sul/i,\r\n /^Lun/i,\r\n /^Meu/i,\r\n /^Mer/i,\r\n /^Yao/i,\r\n /^Gwe/i,\r\n /^Sad/i,\r\n ],\r\n minWeekdaysParse = [\r\n /^Su/i,\r\n /^Lu/i,\r\n /^Me([^r]|$)/i,\r\n /^Mer/i,\r\n /^Ya/i,\r\n /^Gw/i,\r\n /^Sa/i,\r\n ];\r\n\r\n var br = moment.defineLocale('br', {\r\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\r\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\r\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\r\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\r\n weekdaysParse: minWeekdaysParse,\r\n fullWeekdaysParse: fullWeekdaysParse,\r\n shortWeekdaysParse: shortWeekdaysParse,\r\n minWeekdaysParse: minWeekdaysParse,\r\n\r\n monthsRegex: monthsRegex,\r\n monthsShortRegex: monthsRegex,\r\n monthsStrictRegex: monthsStrictRegex,\r\n monthsShortStrictRegex: monthsShortStrictRegex,\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D [a viz] MMMM YYYY',\r\n LLL: 'D [a viz] MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Hiziv da] LT',\r\n nextDay: '[Warcʼhoazh da] LT',\r\n nextWeek: 'dddd [da] LT',\r\n lastDay: '[Decʼh da] LT',\r\n lastWeek: 'dddd [paset da] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'a-benn %s',\r\n past: '%s ʼzo',\r\n s: 'un nebeud segondennoù',\r\n ss: '%d eilenn',\r\n m: 'ur vunutenn',\r\n mm: relativeTimeWithMutation,\r\n h: 'un eur',\r\n hh: '%d eur',\r\n d: 'un devezh',\r\n dd: relativeTimeWithMutation,\r\n M: 'ur miz',\r\n MM: relativeTimeWithMutation,\r\n y: 'ur bloaz',\r\n yy: specialMutationForYears,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\r\n ordinal: function (number) {\r\n var output = number === 1 ? 'añ' : 'vet';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\r\n isPM: function (token) {\r\n return token === 'g.m.';\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n return hour < 12 ? 'a.m.' : 'g.m.';\r\n },\r\n });\r\n\r\n return br;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Bosnian [bs]\r\n//! author : Nedim Cholich : https://github.com/frontyard\r\n//! author : Rasid Redzic : https://github.com/rasidre\r\n//! based on (hr) translation by Bojan Marković\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\r\n switch (key) {\r\n case 'm':\r\n return withoutSuffix\r\n ? 'jedna minuta'\r\n : isFuture\r\n ? 'jednu minutu'\r\n : 'jedne minute';\r\n }\r\n }\r\n\r\n function translate(number, withoutSuffix, key) {\r\n var result = number + ' ';\r\n switch (key) {\r\n case 'ss':\r\n if (number === 1) {\r\n result += 'sekunda';\r\n } else if (number === 2 || number === 3 || number === 4) {\r\n result += 'sekunde';\r\n } else {\r\n result += 'sekundi';\r\n }\r\n return result;\r\n case 'mm':\r\n if (number === 1) {\r\n result += 'minuta';\r\n } else if (number === 2 || number === 3 || number === 4) {\r\n result += 'minute';\r\n } else {\r\n result += 'minuta';\r\n }\r\n return result;\r\n case 'h':\r\n return withoutSuffix ? 'jedan sat' : 'jedan sat';\r\n case 'hh':\r\n if (number === 1) {\r\n result += 'sat';\r\n } else if (number === 2 || number === 3 || number === 4) {\r\n result += 'sata';\r\n } else {\r\n result += 'sati';\r\n }\r\n return result;\r\n case 'dd':\r\n if (number === 1) {\r\n result += 'dan';\r\n } else {\r\n result += 'dana';\r\n }\r\n return result;\r\n case 'MM':\r\n if (number === 1) {\r\n result += 'mjesec';\r\n } else if (number === 2 || number === 3 || number === 4) {\r\n result += 'mjeseca';\r\n } else {\r\n result += 'mjeseci';\r\n }\r\n return result;\r\n case 'yy':\r\n if (number === 1) {\r\n result += 'godina';\r\n } else if (number === 2 || number === 3 || number === 4) {\r\n result += 'godine';\r\n } else {\r\n result += 'godina';\r\n }\r\n return result;\r\n }\r\n }\r\n\r\n var bs = moment.defineLocale('bs', {\r\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\r\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY H:mm',\r\n LLLL: 'dddd, D. MMMM YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[danas u] LT',\r\n nextDay: '[sutra u] LT',\r\n nextWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[u] [nedjelju] [u] LT';\r\n case 3:\r\n return '[u] [srijedu] [u] LT';\r\n case 6:\r\n return '[u] [subotu] [u] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[u] dddd [u] LT';\r\n }\r\n },\r\n lastDay: '[jučer u] LT',\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n case 3:\r\n return '[prošlu] dddd [u] LT';\r\n case 6:\r\n return '[prošle] [subote] [u] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[prošli] dddd [u] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'za %s',\r\n past: 'prije %s',\r\n s: 'par sekundi',\r\n ss: translate,\r\n m: processRelativeTime,\r\n mm: translate,\r\n h: translate,\r\n hh: translate,\r\n d: 'dan',\r\n dd: translate,\r\n M: 'mjesec',\r\n MM: translate,\r\n y: 'godinu',\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return bs;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Catalan [ca]\r\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var ca = moment.defineLocale('ca', {\r\n months: {\r\n standalone:\r\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\r\n '_'\r\n ),\r\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\r\n '_'\r\n ),\r\n isFormat: /D[oD]?(\\s)+MMMM/,\r\n },\r\n monthsShort:\r\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays:\r\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\r\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM [de] YYYY',\r\n ll: 'D MMM YYYY',\r\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\r\n lll: 'D MMM YYYY, H:mm',\r\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\r\n llll: 'ddd D MMM YYYY, H:mm',\r\n },\r\n calendar: {\r\n sameDay: function () {\r\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\r\n },\r\n nextDay: function () {\r\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\r\n },\r\n nextWeek: function () {\r\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\r\n },\r\n lastDay: function () {\r\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\r\n },\r\n lastWeek: function () {\r\n return (\r\n '[el] dddd [passat a ' +\r\n (this.hours() !== 1 ? 'les' : 'la') +\r\n '] LT'\r\n );\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: \"d'aquí %s\",\r\n past: 'fa %s',\r\n s: 'uns segons',\r\n ss: '%d segons',\r\n m: 'un minut',\r\n mm: '%d minuts',\r\n h: 'una hora',\r\n hh: '%d hores',\r\n d: 'un dia',\r\n dd: '%d dies',\r\n M: 'un mes',\r\n MM: '%d mesos',\r\n y: 'un any',\r\n yy: '%d anys',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\r\n ordinal: function (number, period) {\r\n var output =\r\n number === 1\r\n ? 'r'\r\n : number === 2\r\n ? 'n'\r\n : number === 3\r\n ? 'r'\r\n : number === 4\r\n ? 't'\r\n : 'è';\r\n if (period === 'w' || period === 'W') {\r\n output = 'a';\r\n }\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return ca;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Czech [cs]\r\n//! author : petrbela : https://github.com/petrbela\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var months = {\r\n standalone:\r\n 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\r\n '_'\r\n ),\r\n format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\r\n '_'\r\n ),\r\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\r\n },\r\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\r\n monthsParse = [\r\n /^led/i,\r\n /^úno/i,\r\n /^bře/i,\r\n /^dub/i,\r\n /^kvě/i,\r\n /^(čvn|červen$|června)/i,\r\n /^(čvc|červenec|července)/i,\r\n /^srp/i,\r\n /^zář/i,\r\n /^říj/i,\r\n /^lis/i,\r\n /^pro/i,\r\n ],\r\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\r\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\r\n monthsRegex =\r\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\r\n\r\n function plural(n) {\r\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\r\n }\r\n function translate(number, withoutSuffix, key, isFuture) {\r\n var result = number + ' ';\r\n switch (key) {\r\n case 's': // a few seconds / in a few seconds / a few seconds ago\r\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\r\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'sekundy' : 'sekund');\r\n } else {\r\n return result + 'sekundami';\r\n }\r\n case 'm': // a minute / in a minute / a minute ago\r\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\r\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'minuty' : 'minut');\r\n } else {\r\n return result + 'minutami';\r\n }\r\n case 'h': // an hour / in an hour / an hour ago\r\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\r\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'hodiny' : 'hodin');\r\n } else {\r\n return result + 'hodinami';\r\n }\r\n case 'd': // a day / in a day / a day ago\r\n return withoutSuffix || isFuture ? 'den' : 'dnem';\r\n case 'dd': // 9 days / in 9 days / 9 days ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'dny' : 'dní');\r\n } else {\r\n return result + 'dny';\r\n }\r\n case 'M': // a month / in a month / a month ago\r\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\r\n case 'MM': // 9 months / in 9 months / 9 months ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'měsíce' : 'měsíců');\r\n } else {\r\n return result + 'měsíci';\r\n }\r\n case 'y': // a year / in a year / a year ago\r\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\r\n case 'yy': // 9 years / in 9 years / 9 years ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'roky' : 'let');\r\n } else {\r\n return result + 'lety';\r\n }\r\n }\r\n }\r\n\r\n var cs = moment.defineLocale('cs', {\r\n months: months,\r\n monthsShort: monthsShort,\r\n monthsRegex: monthsRegex,\r\n monthsShortRegex: monthsRegex,\r\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\r\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\r\n monthsStrictRegex:\r\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\r\n monthsShortStrictRegex:\r\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\r\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\r\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY H:mm',\r\n LLLL: 'dddd D. MMMM YYYY H:mm',\r\n l: 'D. M. YYYY',\r\n },\r\n calendar: {\r\n sameDay: '[dnes v] LT',\r\n nextDay: '[zítra v] LT',\r\n nextWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[v neděli v] LT';\r\n case 1:\r\n case 2:\r\n return '[v] dddd [v] LT';\r\n case 3:\r\n return '[ve středu v] LT';\r\n case 4:\r\n return '[ve čtvrtek v] LT';\r\n case 5:\r\n return '[v pátek v] LT';\r\n case 6:\r\n return '[v sobotu v] LT';\r\n }\r\n },\r\n lastDay: '[včera v] LT',\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[minulou neděli v] LT';\r\n case 1:\r\n case 2:\r\n return '[minulé] dddd [v] LT';\r\n case 3:\r\n return '[minulou středu v] LT';\r\n case 4:\r\n case 5:\r\n return '[minulý] dddd [v] LT';\r\n case 6:\r\n return '[minulou sobotu v] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'za %s',\r\n past: 'před %s',\r\n s: translate,\r\n ss: translate,\r\n m: translate,\r\n mm: translate,\r\n h: translate,\r\n hh: translate,\r\n d: translate,\r\n dd: translate,\r\n M: translate,\r\n MM: translate,\r\n y: translate,\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return cs;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Chuvash [cv]\r\n//! author : Anatoly Mironov : https://github.com/mirontoli\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var cv = moment.defineLocale('cv', {\r\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\r\n '_'\r\n ),\r\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\r\n weekdays:\r\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\r\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD-MM-YYYY',\r\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\r\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\r\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Паян] LT [сехетре]',\r\n nextDay: '[Ыран] LT [сехетре]',\r\n lastDay: '[Ӗнер] LT [сехетре]',\r\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\r\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: function (output) {\r\n var affix = /сехет$/i.exec(output)\r\n ? 'рен'\r\n : /ҫул$/i.exec(output)\r\n ? 'тан'\r\n : 'ран';\r\n return output + affix;\r\n },\r\n past: '%s каялла',\r\n s: 'пӗр-ик ҫеккунт',\r\n ss: '%d ҫеккунт',\r\n m: 'пӗр минут',\r\n mm: '%d минут',\r\n h: 'пӗр сехет',\r\n hh: '%d сехет',\r\n d: 'пӗр кун',\r\n dd: '%d кун',\r\n M: 'пӗр уйӑх',\r\n MM: '%d уйӑх',\r\n y: 'пӗр ҫул',\r\n yy: '%d ҫул',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\r\n ordinal: '%d-мӗш',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return cv;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Welsh [cy]\r\n//! author : Robert Allen : https://github.com/robgallen\r\n//! author : https://github.com/ryangreaves\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var cy = moment.defineLocale('cy', {\r\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\r\n '_'\r\n ),\r\n weekdays:\r\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\r\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\r\n weekdaysParseExact: true,\r\n // time formats are the same as en-gb\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Heddiw am] LT',\r\n nextDay: '[Yfory am] LT',\r\n nextWeek: 'dddd [am] LT',\r\n lastDay: '[Ddoe am] LT',\r\n lastWeek: 'dddd [diwethaf am] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'mewn %s',\r\n past: '%s yn ôl',\r\n s: 'ychydig eiliadau',\r\n ss: '%d eiliad',\r\n m: 'munud',\r\n mm: '%d munud',\r\n h: 'awr',\r\n hh: '%d awr',\r\n d: 'diwrnod',\r\n dd: '%d diwrnod',\r\n M: 'mis',\r\n MM: '%d mis',\r\n y: 'blwyddyn',\r\n yy: '%d flynedd',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\r\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\r\n ordinal: function (number) {\r\n var b = number,\r\n output = '',\r\n lookup = [\r\n '',\r\n 'af',\r\n 'il',\r\n 'ydd',\r\n 'ydd',\r\n 'ed',\r\n 'ed',\r\n 'ed',\r\n 'fed',\r\n 'fed',\r\n 'fed', // 1af to 10fed\r\n 'eg',\r\n 'fed',\r\n 'eg',\r\n 'eg',\r\n 'fed',\r\n 'eg',\r\n 'eg',\r\n 'fed',\r\n 'eg',\r\n 'fed', // 11eg to 20fed\r\n ];\r\n if (b > 20) {\r\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\r\n output = 'fed'; // not 30ain, 70ain or 90ain\r\n } else {\r\n output = 'ain';\r\n }\r\n } else if (b > 0) {\r\n output = lookup[b];\r\n }\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return cy;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Danish [da]\r\n//! author : Ulrik Nielsen : https://github.com/mrbase\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var da = moment.defineLocale('da', {\r\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\r\n '_'\r\n ),\r\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\r\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\r\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\r\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY HH:mm',\r\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[i dag kl.] LT',\r\n nextDay: '[i morgen kl.] LT',\r\n nextWeek: 'på dddd [kl.] LT',\r\n lastDay: '[i går kl.] LT',\r\n lastWeek: '[i] dddd[s kl.] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'om %s',\r\n past: '%s siden',\r\n s: 'få sekunder',\r\n ss: '%d sekunder',\r\n m: 'et minut',\r\n mm: '%d minutter',\r\n h: 'en time',\r\n hh: '%d timer',\r\n d: 'en dag',\r\n dd: '%d dage',\r\n M: 'en måned',\r\n MM: '%d måneder',\r\n y: 'et år',\r\n yy: '%d år',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return da;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : German (Austria) [de-at]\r\n//! author : lluchs : https://github.com/lluchs\r\n//! author: Menelion Elensúle: https://github.com/Oire\r\n//! author : Martin Groller : https://github.com/MadMG\r\n//! author : Mikolaj Dadela : https://github.com/mik01aj\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\r\n var format = {\r\n m: ['eine Minute', 'einer Minute'],\r\n h: ['eine Stunde', 'einer Stunde'],\r\n d: ['ein Tag', 'einem Tag'],\r\n dd: [number + ' Tage', number + ' Tagen'],\r\n w: ['eine Woche', 'einer Woche'],\r\n M: ['ein Monat', 'einem Monat'],\r\n MM: [number + ' Monate', number + ' Monaten'],\r\n y: ['ein Jahr', 'einem Jahr'],\r\n yy: [number + ' Jahre', number + ' Jahren'],\r\n };\r\n return withoutSuffix ? format[key][0] : format[key][1];\r\n }\r\n\r\n var deAt = moment.defineLocale('de-at', {\r\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\r\n monthsParseExact: true,\r\n weekdays:\r\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\r\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[heute um] LT [Uhr]',\r\n sameElse: 'L',\r\n nextDay: '[morgen um] LT [Uhr]',\r\n nextWeek: 'dddd [um] LT [Uhr]',\r\n lastDay: '[gestern um] LT [Uhr]',\r\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: 'vor %s',\r\n s: 'ein paar Sekunden',\r\n ss: '%d Sekunden',\r\n m: processRelativeTime,\r\n mm: '%d Minuten',\r\n h: processRelativeTime,\r\n hh: '%d Stunden',\r\n d: processRelativeTime,\r\n dd: processRelativeTime,\r\n w: processRelativeTime,\r\n ww: '%d Wochen',\r\n M: processRelativeTime,\r\n MM: processRelativeTime,\r\n y: processRelativeTime,\r\n yy: processRelativeTime,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return deAt;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : German (Switzerland) [de-ch]\r\n//! author : sschueller : https://github.com/sschueller\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\r\n var format = {\r\n m: ['eine Minute', 'einer Minute'],\r\n h: ['eine Stunde', 'einer Stunde'],\r\n d: ['ein Tag', 'einem Tag'],\r\n dd: [number + ' Tage', number + ' Tagen'],\r\n w: ['eine Woche', 'einer Woche'],\r\n M: ['ein Monat', 'einem Monat'],\r\n MM: [number + ' Monate', number + ' Monaten'],\r\n y: ['ein Jahr', 'einem Jahr'],\r\n yy: [number + ' Jahre', number + ' Jahren'],\r\n };\r\n return withoutSuffix ? format[key][0] : format[key][1];\r\n }\r\n\r\n var deCh = moment.defineLocale('de-ch', {\r\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\r\n monthsParseExact: true,\r\n weekdays:\r\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\r\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[heute um] LT [Uhr]',\r\n sameElse: 'L',\r\n nextDay: '[morgen um] LT [Uhr]',\r\n nextWeek: 'dddd [um] LT [Uhr]',\r\n lastDay: '[gestern um] LT [Uhr]',\r\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: 'vor %s',\r\n s: 'ein paar Sekunden',\r\n ss: '%d Sekunden',\r\n m: processRelativeTime,\r\n mm: '%d Minuten',\r\n h: processRelativeTime,\r\n hh: '%d Stunden',\r\n d: processRelativeTime,\r\n dd: processRelativeTime,\r\n w: processRelativeTime,\r\n ww: '%d Wochen',\r\n M: processRelativeTime,\r\n MM: processRelativeTime,\r\n y: processRelativeTime,\r\n yy: processRelativeTime,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return deCh;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : German [de]\r\n//! author : lluchs : https://github.com/lluchs\r\n//! author: Menelion Elensúle: https://github.com/Oire\r\n//! author : Mikolaj Dadela : https://github.com/mik01aj\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\r\n var format = {\r\n m: ['eine Minute', 'einer Minute'],\r\n h: ['eine Stunde', 'einer Stunde'],\r\n d: ['ein Tag', 'einem Tag'],\r\n dd: [number + ' Tage', number + ' Tagen'],\r\n w: ['eine Woche', 'einer Woche'],\r\n M: ['ein Monat', 'einem Monat'],\r\n MM: [number + ' Monate', number + ' Monaten'],\r\n y: ['ein Jahr', 'einem Jahr'],\r\n yy: [number + ' Jahre', number + ' Jahren'],\r\n };\r\n return withoutSuffix ? format[key][0] : format[key][1];\r\n }\r\n\r\n var de = moment.defineLocale('de', {\r\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\r\n monthsParseExact: true,\r\n weekdays:\r\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\r\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[heute um] LT [Uhr]',\r\n sameElse: 'L',\r\n nextDay: '[morgen um] LT [Uhr]',\r\n nextWeek: 'dddd [um] LT [Uhr]',\r\n lastDay: '[gestern um] LT [Uhr]',\r\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: 'vor %s',\r\n s: 'ein paar Sekunden',\r\n ss: '%d Sekunden',\r\n m: processRelativeTime,\r\n mm: '%d Minuten',\r\n h: processRelativeTime,\r\n hh: '%d Stunden',\r\n d: processRelativeTime,\r\n dd: processRelativeTime,\r\n w: processRelativeTime,\r\n ww: '%d Wochen',\r\n M: processRelativeTime,\r\n MM: processRelativeTime,\r\n y: processRelativeTime,\r\n yy: processRelativeTime,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return de;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Maldivian [dv]\r\n//! author : Jawish Hameed : https://github.com/jawish\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var months = [\r\n 'ޖެނުއަރީ',\r\n 'ފެބްރުއަރީ',\r\n 'މާރިޗު',\r\n 'އޭޕްރީލު',\r\n 'މޭ',\r\n 'ޖޫން',\r\n 'ޖުލައި',\r\n 'އޯގަސްޓު',\r\n 'ސެޕްޓެމްބަރު',\r\n 'އޮކްޓޯބަރު',\r\n 'ނޮވެމްބަރު',\r\n 'ޑިސެމްބަރު',\r\n ],\r\n weekdays = [\r\n 'އާދިއްތަ',\r\n 'ހޯމަ',\r\n 'އަންގާރަ',\r\n 'ބުދަ',\r\n 'ބުރާސްފަތި',\r\n 'ހުކުރު',\r\n 'ހޮނިހިރު',\r\n ];\r\n\r\n var dv = moment.defineLocale('dv', {\r\n months: months,\r\n monthsShort: months,\r\n weekdays: weekdays,\r\n weekdaysShort: weekdays,\r\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'D/M/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /މކ|މފ/,\r\n isPM: function (input) {\r\n return 'މފ' === input;\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'މކ';\r\n } else {\r\n return 'މފ';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[މިއަދު] LT',\r\n nextDay: '[މާދަމާ] LT',\r\n nextWeek: 'dddd LT',\r\n lastDay: '[އިއްޔެ] LT',\r\n lastWeek: '[ފާއިތުވި] dddd LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'ތެރޭގައި %s',\r\n past: 'ކުރިން %s',\r\n s: 'ސިކުންތުކޮޅެއް',\r\n ss: 'd% ސިކުންތު',\r\n m: 'މިނިޓެއް',\r\n mm: 'މިނިޓު %d',\r\n h: 'ގަޑިއިރެއް',\r\n hh: 'ގަޑިއިރު %d',\r\n d: 'ދުވަހެއް',\r\n dd: 'ދުވަސް %d',\r\n M: 'މަހެއް',\r\n MM: 'މަސް %d',\r\n y: 'އަހަރެއް',\r\n yy: 'އަހަރު %d',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/،/g, ',');\r\n },\r\n postformat: function (string) {\r\n return string.replace(/,/g, '،');\r\n },\r\n week: {\r\n dow: 7, // Sunday is the first day of the week.\r\n doy: 12, // The week that contains Jan 12th is the first week of the year.\r\n },\r\n });\r\n\r\n return dv;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Greek [el]\r\n//! author : Aggelos Karalias : https://github.com/mehiel\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function isFunction(input) {\r\n return (\r\n (typeof Function !== 'undefined' && input instanceof Function) ||\r\n Object.prototype.toString.call(input) === '[object Function]'\r\n );\r\n }\r\n\r\n var el = moment.defineLocale('el', {\r\n monthsNominativeEl:\r\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\r\n '_'\r\n ),\r\n monthsGenitiveEl:\r\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\r\n '_'\r\n ),\r\n months: function (momentToFormat, format) {\r\n if (!momentToFormat) {\r\n return this._monthsNominativeEl;\r\n } else if (\r\n typeof format === 'string' &&\r\n /D/.test(format.substring(0, format.indexOf('MMMM')))\r\n ) {\r\n // if there is a day number before 'MMMM'\r\n return this._monthsGenitiveEl[momentToFormat.month()];\r\n } else {\r\n return this._monthsNominativeEl[momentToFormat.month()];\r\n }\r\n },\r\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\r\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\r\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours > 11) {\r\n return isLower ? 'μμ' : 'ΜΜ';\r\n } else {\r\n return isLower ? 'πμ' : 'ΠΜ';\r\n }\r\n },\r\n isPM: function (input) {\r\n return (input + '').toLowerCase()[0] === 'μ';\r\n },\r\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\r\n longDateFormat: {\r\n LT: 'h:mm A',\r\n LTS: 'h:mm:ss A',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY h:mm A',\r\n LLLL: 'dddd, D MMMM YYYY h:mm A',\r\n },\r\n calendarEl: {\r\n sameDay: '[Σήμερα {}] LT',\r\n nextDay: '[Αύριο {}] LT',\r\n nextWeek: 'dddd [{}] LT',\r\n lastDay: '[Χθες {}] LT',\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 6:\r\n return '[το προηγούμενο] dddd [{}] LT';\r\n default:\r\n return '[την προηγούμενη] dddd [{}] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n calendar: function (key, mom) {\r\n var output = this._calendarEl[key],\r\n hours = mom && mom.hours();\r\n if (isFunction(output)) {\r\n output = output.apply(mom);\r\n }\r\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\r\n },\r\n relativeTime: {\r\n future: 'σε %s',\r\n past: '%s πριν',\r\n s: 'λίγα δευτερόλεπτα',\r\n ss: '%d δευτερόλεπτα',\r\n m: 'ένα λεπτό',\r\n mm: '%d λεπτά',\r\n h: 'μία ώρα',\r\n hh: '%d ώρες',\r\n d: 'μία μέρα',\r\n dd: '%d μέρες',\r\n M: 'ένας μήνας',\r\n MM: '%d μήνες',\r\n y: 'ένας χρόνος',\r\n yy: '%d χρόνια',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\r\n ordinal: '%dη',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4st is the first week of the year.\r\n },\r\n });\r\n\r\n return el;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : English (Australia) [en-au]\r\n//! author : Jared Morse : https://github.com/jarcoal\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var enAu = moment.defineLocale('en-au', {\r\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\r\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\r\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'h:mm A',\r\n LTS: 'h:mm:ss A',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY h:mm A',\r\n LLLL: 'dddd, D MMMM YYYY h:mm A',\r\n },\r\n calendar: {\r\n sameDay: '[Today at] LT',\r\n nextDay: '[Tomorrow at] LT',\r\n nextWeek: 'dddd [at] LT',\r\n lastDay: '[Yesterday at] LT',\r\n lastWeek: '[Last] dddd [at] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: '%s ago',\r\n s: 'a few seconds',\r\n ss: '%d seconds',\r\n m: 'a minute',\r\n mm: '%d minutes',\r\n h: 'an hour',\r\n hh: '%d hours',\r\n d: 'a day',\r\n dd: '%d days',\r\n M: 'a month',\r\n MM: '%d months',\r\n y: 'a year',\r\n yy: '%d years',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return enAu;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : English (Canada) [en-ca]\r\n//! author : Jonathan Abourbih : https://github.com/jonbca\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var enCa = moment.defineLocale('en-ca', {\r\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\r\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\r\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'h:mm A',\r\n LTS: 'h:mm:ss A',\r\n L: 'YYYY-MM-DD',\r\n LL: 'MMMM D, YYYY',\r\n LLL: 'MMMM D, YYYY h:mm A',\r\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\r\n },\r\n calendar: {\r\n sameDay: '[Today at] LT',\r\n nextDay: '[Tomorrow at] LT',\r\n nextWeek: 'dddd [at] LT',\r\n lastDay: '[Yesterday at] LT',\r\n lastWeek: '[Last] dddd [at] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: '%s ago',\r\n s: 'a few seconds',\r\n ss: '%d seconds',\r\n m: 'a minute',\r\n mm: '%d minutes',\r\n h: 'an hour',\r\n hh: '%d hours',\r\n d: 'a day',\r\n dd: '%d days',\r\n M: 'a month',\r\n MM: '%d months',\r\n y: 'a year',\r\n yy: '%d years',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n });\r\n\r\n return enCa;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : English (United Kingdom) [en-gb]\r\n//! author : Chris Gedrim : https://github.com/chrisgedrim\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var enGb = moment.defineLocale('en-gb', {\r\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\r\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\r\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Today at] LT',\r\n nextDay: '[Tomorrow at] LT',\r\n nextWeek: 'dddd [at] LT',\r\n lastDay: '[Yesterday at] LT',\r\n lastWeek: '[Last] dddd [at] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: '%s ago',\r\n s: 'a few seconds',\r\n ss: '%d seconds',\r\n m: 'a minute',\r\n mm: '%d minutes',\r\n h: 'an hour',\r\n hh: '%d hours',\r\n d: 'a day',\r\n dd: '%d days',\r\n M: 'a month',\r\n MM: '%d months',\r\n y: 'a year',\r\n yy: '%d years',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return enGb;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : English (Ireland) [en-ie]\r\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var enIe = moment.defineLocale('en-ie', {\r\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\r\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\r\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Today at] LT',\r\n nextDay: '[Tomorrow at] LT',\r\n nextWeek: 'dddd [at] LT',\r\n lastDay: '[Yesterday at] LT',\r\n lastWeek: '[Last] dddd [at] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: '%s ago',\r\n s: 'a few seconds',\r\n ss: '%d seconds',\r\n m: 'a minute',\r\n mm: '%d minutes',\r\n h: 'an hour',\r\n hh: '%d hours',\r\n d: 'a day',\r\n dd: '%d days',\r\n M: 'a month',\r\n MM: '%d months',\r\n y: 'a year',\r\n yy: '%d years',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return enIe;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : English (Israel) [en-il]\r\n//! author : Chris Gedrim : https://github.com/chrisgedrim\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var enIl = moment.defineLocale('en-il', {\r\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\r\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\r\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Today at] LT',\r\n nextDay: '[Tomorrow at] LT',\r\n nextWeek: 'dddd [at] LT',\r\n lastDay: '[Yesterday at] LT',\r\n lastWeek: '[Last] dddd [at] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: '%s ago',\r\n s: 'a few seconds',\r\n ss: '%d seconds',\r\n m: 'a minute',\r\n mm: '%d minutes',\r\n h: 'an hour',\r\n hh: '%d hours',\r\n d: 'a day',\r\n dd: '%d days',\r\n M: 'a month',\r\n MM: '%d months',\r\n y: 'a year',\r\n yy: '%d years',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n });\r\n\r\n return enIl;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : English (India) [en-in]\r\n//! author : Jatin Agrawal : https://github.com/jatinag22\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var enIn = moment.defineLocale('en-in', {\r\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\r\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\r\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'h:mm A',\r\n LTS: 'h:mm:ss A',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY h:mm A',\r\n LLLL: 'dddd, D MMMM YYYY h:mm A',\r\n },\r\n calendar: {\r\n sameDay: '[Today at] LT',\r\n nextDay: '[Tomorrow at] LT',\r\n nextWeek: 'dddd [at] LT',\r\n lastDay: '[Yesterday at] LT',\r\n lastWeek: '[Last] dddd [at] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: '%s ago',\r\n s: 'a few seconds',\r\n ss: '%d seconds',\r\n m: 'a minute',\r\n mm: '%d minutes',\r\n h: 'an hour',\r\n hh: '%d hours',\r\n d: 'a day',\r\n dd: '%d days',\r\n M: 'a month',\r\n MM: '%d months',\r\n y: 'a year',\r\n yy: '%d years',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 1st is the first week of the year.\r\n },\r\n });\r\n\r\n return enIn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : English (New Zealand) [en-nz]\r\n//! author : Luke McGregor : https://github.com/lukemcgregor\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var enNz = moment.defineLocale('en-nz', {\r\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\r\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\r\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'h:mm A',\r\n LTS: 'h:mm:ss A',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY h:mm A',\r\n LLLL: 'dddd, D MMMM YYYY h:mm A',\r\n },\r\n calendar: {\r\n sameDay: '[Today at] LT',\r\n nextDay: '[Tomorrow at] LT',\r\n nextWeek: 'dddd [at] LT',\r\n lastDay: '[Yesterday at] LT',\r\n lastWeek: '[Last] dddd [at] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: '%s ago',\r\n s: 'a few seconds',\r\n ss: '%d seconds',\r\n m: 'a minute',\r\n mm: '%d minutes',\r\n h: 'an hour',\r\n hh: '%d hours',\r\n d: 'a day',\r\n dd: '%d days',\r\n M: 'a month',\r\n MM: '%d months',\r\n y: 'a year',\r\n yy: '%d years',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return enNz;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : English (Singapore) [en-sg]\r\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var enSg = moment.defineLocale('en-sg', {\r\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\r\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\r\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Today at] LT',\r\n nextDay: '[Tomorrow at] LT',\r\n nextWeek: 'dddd [at] LT',\r\n lastDay: '[Yesterday at] LT',\r\n lastWeek: '[Last] dddd [at] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'in %s',\r\n past: '%s ago',\r\n s: 'a few seconds',\r\n ss: '%d seconds',\r\n m: 'a minute',\r\n mm: '%d minutes',\r\n h: 'an hour',\r\n hh: '%d hours',\r\n d: 'a day',\r\n dd: '%d days',\r\n M: 'a month',\r\n MM: '%d months',\r\n y: 'a year',\r\n yy: '%d years',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return enSg;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Esperanto [eo]\r\n//! author : Colin Dean : https://github.com/colindean\r\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\r\n//! comment : miestasmia corrected the translation by colindean\r\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var eo = moment.defineLocale('eo', {\r\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\r\n '_'\r\n ),\r\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\r\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\r\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\r\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY-MM-DD',\r\n LL: '[la] D[-an de] MMMM, YYYY',\r\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\r\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\r\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\r\n },\r\n meridiemParse: /[ap]\\.t\\.m/i,\r\n isPM: function (input) {\r\n return input.charAt(0).toLowerCase() === 'p';\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours > 11) {\r\n return isLower ? 'p.t.m.' : 'P.T.M.';\r\n } else {\r\n return isLower ? 'a.t.m.' : 'A.T.M.';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[Hodiaŭ je] LT',\r\n nextDay: '[Morgaŭ je] LT',\r\n nextWeek: 'dddd[n je] LT',\r\n lastDay: '[Hieraŭ je] LT',\r\n lastWeek: '[pasintan] dddd[n je] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'post %s',\r\n past: 'antaŭ %s',\r\n s: 'kelkaj sekundoj',\r\n ss: '%d sekundoj',\r\n m: 'unu minuto',\r\n mm: '%d minutoj',\r\n h: 'unu horo',\r\n hh: '%d horoj',\r\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\r\n dd: '%d tagoj',\r\n M: 'unu monato',\r\n MM: '%d monatoj',\r\n y: 'unu jaro',\r\n yy: '%d jaroj',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\r\n ordinal: '%da',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return eo;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Spanish (Dominican Republic) [es-do]\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var monthsShortDot =\r\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\r\n '_'\r\n ),\r\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\r\n monthsParse = [\r\n /^ene/i,\r\n /^feb/i,\r\n /^mar/i,\r\n /^abr/i,\r\n /^may/i,\r\n /^jun/i,\r\n /^jul/i,\r\n /^ago/i,\r\n /^sep/i,\r\n /^oct/i,\r\n /^nov/i,\r\n /^dic/i,\r\n ],\r\n monthsRegex =\r\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\r\n\r\n var esDo = moment.defineLocale('es-do', {\r\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\r\n '_'\r\n ),\r\n monthsShort: function (m, format) {\r\n if (!m) {\r\n return monthsShortDot;\r\n } else if (/-MMM-/.test(format)) {\r\n return monthsShort[m.month()];\r\n } else {\r\n return monthsShortDot[m.month()];\r\n }\r\n },\r\n monthsRegex: monthsRegex,\r\n monthsShortRegex: monthsRegex,\r\n monthsStrictRegex:\r\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\r\n monthsShortStrictRegex:\r\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\r\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\r\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'h:mm A',\r\n LTS: 'h:mm:ss A',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D [de] MMMM [de] YYYY',\r\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\r\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\r\n },\r\n calendar: {\r\n sameDay: function () {\r\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n nextDay: function () {\r\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n nextWeek: function () {\r\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n lastDay: function () {\r\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n lastWeek: function () {\r\n return (\r\n '[el] dddd [pasado a la' +\r\n (this.hours() !== 1 ? 's' : '') +\r\n '] LT'\r\n );\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'en %s',\r\n past: 'hace %s',\r\n s: 'unos segundos',\r\n ss: '%d segundos',\r\n m: 'un minuto',\r\n mm: '%d minutos',\r\n h: 'una hora',\r\n hh: '%d horas',\r\n d: 'un día',\r\n dd: '%d días',\r\n w: 'una semana',\r\n ww: '%d semanas',\r\n M: 'un mes',\r\n MM: '%d meses',\r\n y: 'un año',\r\n yy: '%d años',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return esDo;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Spanish (Mexico) [es-mx]\r\n//! author : JC Franco : https://github.com/jcfranco\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var monthsShortDot =\r\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\r\n '_'\r\n ),\r\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\r\n monthsParse = [\r\n /^ene/i,\r\n /^feb/i,\r\n /^mar/i,\r\n /^abr/i,\r\n /^may/i,\r\n /^jun/i,\r\n /^jul/i,\r\n /^ago/i,\r\n /^sep/i,\r\n /^oct/i,\r\n /^nov/i,\r\n /^dic/i,\r\n ],\r\n monthsRegex =\r\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\r\n\r\n var esMx = moment.defineLocale('es-mx', {\r\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\r\n '_'\r\n ),\r\n monthsShort: function (m, format) {\r\n if (!m) {\r\n return monthsShortDot;\r\n } else if (/-MMM-/.test(format)) {\r\n return monthsShort[m.month()];\r\n } else {\r\n return monthsShortDot[m.month()];\r\n }\r\n },\r\n monthsRegex: monthsRegex,\r\n monthsShortRegex: monthsRegex,\r\n monthsStrictRegex:\r\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\r\n monthsShortStrictRegex:\r\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\r\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\r\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D [de] MMMM [de] YYYY',\r\n LLL: 'D [de] MMMM [de] YYYY H:mm',\r\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: function () {\r\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n nextDay: function () {\r\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n nextWeek: function () {\r\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n lastDay: function () {\r\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n lastWeek: function () {\r\n return (\r\n '[el] dddd [pasado a la' +\r\n (this.hours() !== 1 ? 's' : '') +\r\n '] LT'\r\n );\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'en %s',\r\n past: 'hace %s',\r\n s: 'unos segundos',\r\n ss: '%d segundos',\r\n m: 'un minuto',\r\n mm: '%d minutos',\r\n h: 'una hora',\r\n hh: '%d horas',\r\n d: 'un día',\r\n dd: '%d días',\r\n w: 'una semana',\r\n ww: '%d semanas',\r\n M: 'un mes',\r\n MM: '%d meses',\r\n y: 'un año',\r\n yy: '%d años',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n invalidDate: 'Fecha inválida',\r\n });\r\n\r\n return esMx;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Spanish (United States) [es-us]\r\n//! author : bustta : https://github.com/bustta\r\n//! author : chrisrodz : https://github.com/chrisrodz\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var monthsShortDot =\r\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\r\n '_'\r\n ),\r\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\r\n monthsParse = [\r\n /^ene/i,\r\n /^feb/i,\r\n /^mar/i,\r\n /^abr/i,\r\n /^may/i,\r\n /^jun/i,\r\n /^jul/i,\r\n /^ago/i,\r\n /^sep/i,\r\n /^oct/i,\r\n /^nov/i,\r\n /^dic/i,\r\n ],\r\n monthsRegex =\r\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\r\n\r\n var esUs = moment.defineLocale('es-us', {\r\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\r\n '_'\r\n ),\r\n monthsShort: function (m, format) {\r\n if (!m) {\r\n return monthsShortDot;\r\n } else if (/-MMM-/.test(format)) {\r\n return monthsShort[m.month()];\r\n } else {\r\n return monthsShortDot[m.month()];\r\n }\r\n },\r\n monthsRegex: monthsRegex,\r\n monthsShortRegex: monthsRegex,\r\n monthsStrictRegex:\r\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\r\n monthsShortStrictRegex:\r\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\r\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\r\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'h:mm A',\r\n LTS: 'h:mm:ss A',\r\n L: 'MM/DD/YYYY',\r\n LL: 'D [de] MMMM [de] YYYY',\r\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\r\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\r\n },\r\n calendar: {\r\n sameDay: function () {\r\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n nextDay: function () {\r\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n nextWeek: function () {\r\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n lastDay: function () {\r\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n lastWeek: function () {\r\n return (\r\n '[el] dddd [pasado a la' +\r\n (this.hours() !== 1 ? 's' : '') +\r\n '] LT'\r\n );\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'en %s',\r\n past: 'hace %s',\r\n s: 'unos segundos',\r\n ss: '%d segundos',\r\n m: 'un minuto',\r\n mm: '%d minutos',\r\n h: 'una hora',\r\n hh: '%d horas',\r\n d: 'un día',\r\n dd: '%d días',\r\n w: 'una semana',\r\n ww: '%d semanas',\r\n M: 'un mes',\r\n MM: '%d meses',\r\n y: 'un año',\r\n yy: '%d años',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return esUs;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Spanish [es]\r\n//! author : Julio Napurí : https://github.com/julionc\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var monthsShortDot =\r\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\r\n '_'\r\n ),\r\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\r\n monthsParse = [\r\n /^ene/i,\r\n /^feb/i,\r\n /^mar/i,\r\n /^abr/i,\r\n /^may/i,\r\n /^jun/i,\r\n /^jul/i,\r\n /^ago/i,\r\n /^sep/i,\r\n /^oct/i,\r\n /^nov/i,\r\n /^dic/i,\r\n ],\r\n monthsRegex =\r\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\r\n\r\n var es = moment.defineLocale('es', {\r\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\r\n '_'\r\n ),\r\n monthsShort: function (m, format) {\r\n if (!m) {\r\n return monthsShortDot;\r\n } else if (/-MMM-/.test(format)) {\r\n return monthsShort[m.month()];\r\n } else {\r\n return monthsShortDot[m.month()];\r\n }\r\n },\r\n monthsRegex: monthsRegex,\r\n monthsShortRegex: monthsRegex,\r\n monthsStrictRegex:\r\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\r\n monthsShortStrictRegex:\r\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\r\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\r\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D [de] MMMM [de] YYYY',\r\n LLL: 'D [de] MMMM [de] YYYY H:mm',\r\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: function () {\r\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n nextDay: function () {\r\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n nextWeek: function () {\r\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n lastDay: function () {\r\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\r\n },\r\n lastWeek: function () {\r\n return (\r\n '[el] dddd [pasado a la' +\r\n (this.hours() !== 1 ? 's' : '') +\r\n '] LT'\r\n );\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'en %s',\r\n past: 'hace %s',\r\n s: 'unos segundos',\r\n ss: '%d segundos',\r\n m: 'un minuto',\r\n mm: '%d minutos',\r\n h: 'una hora',\r\n hh: '%d horas',\r\n d: 'un día',\r\n dd: '%d días',\r\n w: 'una semana',\r\n ww: '%d semanas',\r\n M: 'un mes',\r\n MM: '%d meses',\r\n y: 'un año',\r\n yy: '%d años',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n invalidDate: 'Fecha inválida',\r\n });\r\n\r\n return es;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Estonian [et]\r\n//! author : Henry Kehlmann : https://github.com/madhenry\r\n//! improvements : Illimar Tambek : https://github.com/ragulka\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\r\n var format = {\r\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\r\n ss: [number + 'sekundi', number + 'sekundit'],\r\n m: ['ühe minuti', 'üks minut'],\r\n mm: [number + ' minuti', number + ' minutit'],\r\n h: ['ühe tunni', 'tund aega', 'üks tund'],\r\n hh: [number + ' tunni', number + ' tundi'],\r\n d: ['ühe päeva', 'üks päev'],\r\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\r\n MM: [number + ' kuu', number + ' kuud'],\r\n y: ['ühe aasta', 'aasta', 'üks aasta'],\r\n yy: [number + ' aasta', number + ' aastat'],\r\n };\r\n if (withoutSuffix) {\r\n return format[key][2] ? format[key][2] : format[key][1];\r\n }\r\n return isFuture ? format[key][0] : format[key][1];\r\n }\r\n\r\n var et = moment.defineLocale('et', {\r\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\r\n weekdays:\r\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\r\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY H:mm',\r\n LLLL: 'dddd, D. MMMM YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Täna,] LT',\r\n nextDay: '[Homme,] LT',\r\n nextWeek: '[Järgmine] dddd LT',\r\n lastDay: '[Eile,] LT',\r\n lastWeek: '[Eelmine] dddd LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s pärast',\r\n past: '%s tagasi',\r\n s: processRelativeTime,\r\n ss: processRelativeTime,\r\n m: processRelativeTime,\r\n mm: processRelativeTime,\r\n h: processRelativeTime,\r\n hh: processRelativeTime,\r\n d: processRelativeTime,\r\n dd: '%d päeva',\r\n M: processRelativeTime,\r\n MM: processRelativeTime,\r\n y: processRelativeTime,\r\n yy: processRelativeTime,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return et;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Basque [eu]\r\n//! author : Eneko Illarramendi : https://github.com/eillarra\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var eu = moment.defineLocale('eu', {\r\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays:\r\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\r\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY-MM-DD',\r\n LL: 'YYYY[ko] MMMM[ren] D[a]',\r\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\r\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\r\n l: 'YYYY-M-D',\r\n ll: 'YYYY[ko] MMM D[a]',\r\n lll: 'YYYY[ko] MMM D[a] HH:mm',\r\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[gaur] LT[etan]',\r\n nextDay: '[bihar] LT[etan]',\r\n nextWeek: 'dddd LT[etan]',\r\n lastDay: '[atzo] LT[etan]',\r\n lastWeek: '[aurreko] dddd LT[etan]',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s barru',\r\n past: 'duela %s',\r\n s: 'segundo batzuk',\r\n ss: '%d segundo',\r\n m: 'minutu bat',\r\n mm: '%d minutu',\r\n h: 'ordu bat',\r\n hh: '%d ordu',\r\n d: 'egun bat',\r\n dd: '%d egun',\r\n M: 'hilabete bat',\r\n MM: '%d hilabete',\r\n y: 'urte bat',\r\n yy: '%d urte',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return eu;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Persian [fa]\r\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '۱',\r\n 2: '۲',\r\n 3: '۳',\r\n 4: '۴',\r\n 5: '۵',\r\n 6: '۶',\r\n 7: '۷',\r\n 8: '۸',\r\n 9: '۹',\r\n 0: '۰',\r\n },\r\n numberMap = {\r\n '۱': '1',\r\n '۲': '2',\r\n '۳': '3',\r\n '۴': '4',\r\n '۵': '5',\r\n '۶': '6',\r\n '۷': '7',\r\n '۸': '8',\r\n '۹': '9',\r\n '۰': '0',\r\n };\r\n\r\n var fa = moment.defineLocale('fa', {\r\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\r\n '_'\r\n ),\r\n weekdays:\r\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\r\n '_'\r\n ),\r\n weekdaysShort:\r\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\r\n '_'\r\n ),\r\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\r\n isPM: function (input) {\r\n return /بعد از ظهر/.test(input);\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'قبل از ظهر';\r\n } else {\r\n return 'بعد از ظهر';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[امروز ساعت] LT',\r\n nextDay: '[فردا ساعت] LT',\r\n nextWeek: 'dddd [ساعت] LT',\r\n lastDay: '[دیروز ساعت] LT',\r\n lastWeek: 'dddd [پیش] [ساعت] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'در %s',\r\n past: '%s پیش',\r\n s: 'چند ثانیه',\r\n ss: '%d ثانیه',\r\n m: 'یک دقیقه',\r\n mm: '%d دقیقه',\r\n h: 'یک ساعت',\r\n hh: '%d ساعت',\r\n d: 'یک روز',\r\n dd: '%d روز',\r\n M: 'یک ماه',\r\n MM: '%d ماه',\r\n y: 'یک سال',\r\n yy: '%d سال',\r\n },\r\n preparse: function (string) {\r\n return string\r\n .replace(/[۰-۹]/g, function (match) {\r\n return numberMap[match];\r\n })\r\n .replace(/،/g, ',');\r\n },\r\n postformat: function (string) {\r\n return string\r\n .replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n })\r\n .replace(/,/g, '،');\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\r\n ordinal: '%dم',\r\n week: {\r\n dow: 6, // Saturday is the first day of the week.\r\n doy: 12, // The week that contains Jan 12th is the first week of the year.\r\n },\r\n });\r\n\r\n return fa;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Finnish [fi]\r\n//! author : Tarmo Aidantausta : https://github.com/bleadof\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var numbersPast =\r\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\r\n ' '\r\n ),\r\n numbersFuture = [\r\n 'nolla',\r\n 'yhden',\r\n 'kahden',\r\n 'kolmen',\r\n 'neljän',\r\n 'viiden',\r\n 'kuuden',\r\n numbersPast[7],\r\n numbersPast[8],\r\n numbersPast[9],\r\n ];\r\n function translate(number, withoutSuffix, key, isFuture) {\r\n var result = '';\r\n switch (key) {\r\n case 's':\r\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\r\n case 'ss':\r\n result = isFuture ? 'sekunnin' : 'sekuntia';\r\n break;\r\n case 'm':\r\n return isFuture ? 'minuutin' : 'minuutti';\r\n case 'mm':\r\n result = isFuture ? 'minuutin' : 'minuuttia';\r\n break;\r\n case 'h':\r\n return isFuture ? 'tunnin' : 'tunti';\r\n case 'hh':\r\n result = isFuture ? 'tunnin' : 'tuntia';\r\n break;\r\n case 'd':\r\n return isFuture ? 'päivän' : 'päivä';\r\n case 'dd':\r\n result = isFuture ? 'päivän' : 'päivää';\r\n break;\r\n case 'M':\r\n return isFuture ? 'kuukauden' : 'kuukausi';\r\n case 'MM':\r\n result = isFuture ? 'kuukauden' : 'kuukautta';\r\n break;\r\n case 'y':\r\n return isFuture ? 'vuoden' : 'vuosi';\r\n case 'yy':\r\n result = isFuture ? 'vuoden' : 'vuotta';\r\n break;\r\n }\r\n result = verbalNumber(number, isFuture) + ' ' + result;\r\n return result;\r\n }\r\n function verbalNumber(number, isFuture) {\r\n return number < 10\r\n ? isFuture\r\n ? numbersFuture[number]\r\n : numbersPast[number]\r\n : number;\r\n }\r\n\r\n var fi = moment.defineLocale('fi', {\r\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\r\n '_'\r\n ),\r\n weekdays:\r\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\r\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH.mm',\r\n LTS: 'HH.mm.ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'Do MMMM[ta] YYYY',\r\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\r\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\r\n l: 'D.M.YYYY',\r\n ll: 'Do MMM YYYY',\r\n lll: 'Do MMM YYYY, [klo] HH.mm',\r\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\r\n },\r\n calendar: {\r\n sameDay: '[tänään] [klo] LT',\r\n nextDay: '[huomenna] [klo] LT',\r\n nextWeek: 'dddd [klo] LT',\r\n lastDay: '[eilen] [klo] LT',\r\n lastWeek: '[viime] dddd[na] [klo] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s päästä',\r\n past: '%s sitten',\r\n s: translate,\r\n ss: translate,\r\n m: translate,\r\n mm: translate,\r\n h: translate,\r\n hh: translate,\r\n d: translate,\r\n dd: translate,\r\n M: translate,\r\n MM: translate,\r\n y: translate,\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return fi;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Filipino [fil]\r\n//! author : Dan Hagman : https://github.com/hagmandan\r\n//! author : Matthew Co : https://github.com/matthewdeeco\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var fil = moment.defineLocale('fil', {\r\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\r\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\r\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'MM/D/YYYY',\r\n LL: 'MMMM D, YYYY',\r\n LLL: 'MMMM D, YYYY HH:mm',\r\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: 'LT [ngayong araw]',\r\n nextDay: '[Bukas ng] LT',\r\n nextWeek: 'LT [sa susunod na] dddd',\r\n lastDay: 'LT [kahapon]',\r\n lastWeek: 'LT [noong nakaraang] dddd',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'sa loob ng %s',\r\n past: '%s ang nakalipas',\r\n s: 'ilang segundo',\r\n ss: '%d segundo',\r\n m: 'isang minuto',\r\n mm: '%d minuto',\r\n h: 'isang oras',\r\n hh: '%d oras',\r\n d: 'isang araw',\r\n dd: '%d araw',\r\n M: 'isang buwan',\r\n MM: '%d buwan',\r\n y: 'isang taon',\r\n yy: '%d taon',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}/,\r\n ordinal: function (number) {\r\n return number;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return fil;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Faroese [fo]\r\n//! author : Ragnar Johannesen : https://github.com/ragnar123\r\n//! author : Kristian Sakarisson : https://github.com/sakarisson\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var fo = moment.defineLocale('fo', {\r\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\r\n '_'\r\n ),\r\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\r\n weekdays:\r\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\r\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Í dag kl.] LT',\r\n nextDay: '[Í morgin kl.] LT',\r\n nextWeek: 'dddd [kl.] LT',\r\n lastDay: '[Í gjár kl.] LT',\r\n lastWeek: '[síðstu] dddd [kl] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'um %s',\r\n past: '%s síðani',\r\n s: 'fá sekund',\r\n ss: '%d sekundir',\r\n m: 'ein minuttur',\r\n mm: '%d minuttir',\r\n h: 'ein tími',\r\n hh: '%d tímar',\r\n d: 'ein dagur',\r\n dd: '%d dagar',\r\n M: 'ein mánaður',\r\n MM: '%d mánaðir',\r\n y: 'eitt ár',\r\n yy: '%d ár',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return fo;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : French (Canada) [fr-ca]\r\n//! author : Jonathan Abourbih : https://github.com/jonbca\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var frCa = moment.defineLocale('fr-ca', {\r\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\r\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\r\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY-MM-DD',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Aujourd’hui à] LT',\r\n nextDay: '[Demain à] LT',\r\n nextWeek: 'dddd [à] LT',\r\n lastDay: '[Hier à] LT',\r\n lastWeek: 'dddd [dernier à] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'dans %s',\r\n past: 'il y a %s',\r\n s: 'quelques secondes',\r\n ss: '%d secondes',\r\n m: 'une minute',\r\n mm: '%d minutes',\r\n h: 'une heure',\r\n hh: '%d heures',\r\n d: 'un jour',\r\n dd: '%d jours',\r\n M: 'un mois',\r\n MM: '%d mois',\r\n y: 'un an',\r\n yy: '%d ans',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n // Words with masculine grammatical gender: mois, trimestre, jour\r\n default:\r\n case 'M':\r\n case 'Q':\r\n case 'D':\r\n case 'DDD':\r\n case 'd':\r\n return number + (number === 1 ? 'er' : 'e');\r\n\r\n // Words with feminine grammatical gender: semaine\r\n case 'w':\r\n case 'W':\r\n return number + (number === 1 ? 're' : 'e');\r\n }\r\n },\r\n });\r\n\r\n return frCa;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : French (Switzerland) [fr-ch]\r\n//! author : Gaspard Bucher : https://github.com/gaspard\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var frCh = moment.defineLocale('fr-ch', {\r\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\r\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\r\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Aujourd’hui à] LT',\r\n nextDay: '[Demain à] LT',\r\n nextWeek: 'dddd [à] LT',\r\n lastDay: '[Hier à] LT',\r\n lastWeek: 'dddd [dernier à] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'dans %s',\r\n past: 'il y a %s',\r\n s: 'quelques secondes',\r\n ss: '%d secondes',\r\n m: 'une minute',\r\n mm: '%d minutes',\r\n h: 'une heure',\r\n hh: '%d heures',\r\n d: 'un jour',\r\n dd: '%d jours',\r\n M: 'un mois',\r\n MM: '%d mois',\r\n y: 'un an',\r\n yy: '%d ans',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n // Words with masculine grammatical gender: mois, trimestre, jour\r\n default:\r\n case 'M':\r\n case 'Q':\r\n case 'D':\r\n case 'DDD':\r\n case 'd':\r\n return number + (number === 1 ? 'er' : 'e');\r\n\r\n // Words with feminine grammatical gender: semaine\r\n case 'w':\r\n case 'W':\r\n return number + (number === 1 ? 're' : 'e');\r\n }\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return frCh;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : French [fr]\r\n//! author : John Fischer : https://github.com/jfroffice\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var monthsStrictRegex =\r\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\r\n monthsShortStrictRegex =\r\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\r\n monthsRegex =\r\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\r\n monthsParse = [\r\n /^janv/i,\r\n /^févr/i,\r\n /^mars/i,\r\n /^avr/i,\r\n /^mai/i,\r\n /^juin/i,\r\n /^juil/i,\r\n /^août/i,\r\n /^sept/i,\r\n /^oct/i,\r\n /^nov/i,\r\n /^déc/i,\r\n ];\r\n\r\n var fr = moment.defineLocale('fr', {\r\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\r\n '_'\r\n ),\r\n monthsRegex: monthsRegex,\r\n monthsShortRegex: monthsRegex,\r\n monthsStrictRegex: monthsStrictRegex,\r\n monthsShortStrictRegex: monthsShortStrictRegex,\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\r\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\r\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Aujourd’hui à] LT',\r\n nextDay: '[Demain à] LT',\r\n nextWeek: 'dddd [à] LT',\r\n lastDay: '[Hier à] LT',\r\n lastWeek: 'dddd [dernier à] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'dans %s',\r\n past: 'il y a %s',\r\n s: 'quelques secondes',\r\n ss: '%d secondes',\r\n m: 'une minute',\r\n mm: '%d minutes',\r\n h: 'une heure',\r\n hh: '%d heures',\r\n d: 'un jour',\r\n dd: '%d jours',\r\n w: 'une semaine',\r\n ww: '%d semaines',\r\n M: 'un mois',\r\n MM: '%d mois',\r\n y: 'un an',\r\n yy: '%d ans',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n // TODO: Return 'e' when day of month > 1. Move this case inside\r\n // block for masculine words below.\r\n // See https://github.com/moment/moment/issues/3375\r\n case 'D':\r\n return number + (number === 1 ? 'er' : '');\r\n\r\n // Words with masculine grammatical gender: mois, trimestre, jour\r\n default:\r\n case 'M':\r\n case 'Q':\r\n case 'DDD':\r\n case 'd':\r\n return number + (number === 1 ? 'er' : 'e');\r\n\r\n // Words with feminine grammatical gender: semaine\r\n case 'w':\r\n case 'W':\r\n return number + (number === 1 ? 're' : 'e');\r\n }\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return fr;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Frisian [fy]\r\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var monthsShortWithDots =\r\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\r\n monthsShortWithoutDots =\r\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\r\n\r\n var fy = moment.defineLocale('fy', {\r\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\r\n '_'\r\n ),\r\n monthsShort: function (m, format) {\r\n if (!m) {\r\n return monthsShortWithDots;\r\n } else if (/-MMM-/.test(format)) {\r\n return monthsShortWithoutDots[m.month()];\r\n } else {\r\n return monthsShortWithDots[m.month()];\r\n }\r\n },\r\n monthsParseExact: true,\r\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\r\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD-MM-YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[hjoed om] LT',\r\n nextDay: '[moarn om] LT',\r\n nextWeek: 'dddd [om] LT',\r\n lastDay: '[juster om] LT',\r\n lastWeek: '[ôfrûne] dddd [om] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'oer %s',\r\n past: '%s lyn',\r\n s: 'in pear sekonden',\r\n ss: '%d sekonden',\r\n m: 'ien minút',\r\n mm: '%d minuten',\r\n h: 'ien oere',\r\n hh: '%d oeren',\r\n d: 'ien dei',\r\n dd: '%d dagen',\r\n M: 'ien moanne',\r\n MM: '%d moannen',\r\n y: 'ien jier',\r\n yy: '%d jierren',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\r\n ordinal: function (number) {\r\n return (\r\n number +\r\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\r\n );\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return fy;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Irish or Irish Gaelic [ga]\r\n//! author : André Silva : https://github.com/askpt\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var months = [\r\n 'Eanáir',\r\n 'Feabhra',\r\n 'Márta',\r\n 'Aibreán',\r\n 'Bealtaine',\r\n 'Meitheamh',\r\n 'Iúil',\r\n 'Lúnasa',\r\n 'Meán Fómhair',\r\n 'Deireadh Fómhair',\r\n 'Samhain',\r\n 'Nollaig',\r\n ],\r\n monthsShort = [\r\n 'Ean',\r\n 'Feabh',\r\n 'Márt',\r\n 'Aib',\r\n 'Beal',\r\n 'Meith',\r\n 'Iúil',\r\n 'Lún',\r\n 'M.F.',\r\n 'D.F.',\r\n 'Samh',\r\n 'Noll',\r\n ],\r\n weekdays = [\r\n 'Dé Domhnaigh',\r\n 'Dé Luain',\r\n 'Dé Máirt',\r\n 'Dé Céadaoin',\r\n 'Déardaoin',\r\n 'Dé hAoine',\r\n 'Dé Sathairn',\r\n ],\r\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\r\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\r\n\r\n var ga = moment.defineLocale('ga', {\r\n months: months,\r\n monthsShort: monthsShort,\r\n monthsParseExact: true,\r\n weekdays: weekdays,\r\n weekdaysShort: weekdaysShort,\r\n weekdaysMin: weekdaysMin,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Inniu ag] LT',\r\n nextDay: '[Amárach ag] LT',\r\n nextWeek: 'dddd [ag] LT',\r\n lastDay: '[Inné ag] LT',\r\n lastWeek: 'dddd [seo caite] [ag] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'i %s',\r\n past: '%s ó shin',\r\n s: 'cúpla soicind',\r\n ss: '%d soicind',\r\n m: 'nóiméad',\r\n mm: '%d nóiméad',\r\n h: 'uair an chloig',\r\n hh: '%d uair an chloig',\r\n d: 'lá',\r\n dd: '%d lá',\r\n M: 'mí',\r\n MM: '%d míonna',\r\n y: 'bliain',\r\n yy: '%d bliain',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\r\n ordinal: function (number) {\r\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return ga;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Scottish Gaelic [gd]\r\n//! author : Jon Ashdown : https://github.com/jonashdown\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var months = [\r\n 'Am Faoilleach',\r\n 'An Gearran',\r\n 'Am Màrt',\r\n 'An Giblean',\r\n 'An Cèitean',\r\n 'An t-Ògmhios',\r\n 'An t-Iuchar',\r\n 'An Lùnastal',\r\n 'An t-Sultain',\r\n 'An Dàmhair',\r\n 'An t-Samhain',\r\n 'An Dùbhlachd',\r\n ],\r\n monthsShort = [\r\n 'Faoi',\r\n 'Gear',\r\n 'Màrt',\r\n 'Gibl',\r\n 'Cèit',\r\n 'Ògmh',\r\n 'Iuch',\r\n 'Lùn',\r\n 'Sult',\r\n 'Dàmh',\r\n 'Samh',\r\n 'Dùbh',\r\n ],\r\n weekdays = [\r\n 'Didòmhnaich',\r\n 'Diluain',\r\n 'Dimàirt',\r\n 'Diciadain',\r\n 'Diardaoin',\r\n 'Dihaoine',\r\n 'Disathairne',\r\n ],\r\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\r\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\r\n\r\n var gd = moment.defineLocale('gd', {\r\n months: months,\r\n monthsShort: monthsShort,\r\n monthsParseExact: true,\r\n weekdays: weekdays,\r\n weekdaysShort: weekdaysShort,\r\n weekdaysMin: weekdaysMin,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[An-diugh aig] LT',\r\n nextDay: '[A-màireach aig] LT',\r\n nextWeek: 'dddd [aig] LT',\r\n lastDay: '[An-dè aig] LT',\r\n lastWeek: 'dddd [seo chaidh] [aig] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'ann an %s',\r\n past: 'bho chionn %s',\r\n s: 'beagan diogan',\r\n ss: '%d diogan',\r\n m: 'mionaid',\r\n mm: '%d mionaidean',\r\n h: 'uair',\r\n hh: '%d uairean',\r\n d: 'latha',\r\n dd: '%d latha',\r\n M: 'mìos',\r\n MM: '%d mìosan',\r\n y: 'bliadhna',\r\n yy: '%d bliadhna',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\r\n ordinal: function (number) {\r\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return gd;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Galician [gl]\r\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var gl = moment.defineLocale('gl', {\r\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\r\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\r\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D [de] MMMM [de] YYYY',\r\n LLL: 'D [de] MMMM [de] YYYY H:mm',\r\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: function () {\r\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\r\n },\r\n nextDay: function () {\r\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\r\n },\r\n nextWeek: function () {\r\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\r\n },\r\n lastDay: function () {\r\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\r\n },\r\n lastWeek: function () {\r\n return (\r\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\r\n );\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: function (str) {\r\n if (str.indexOf('un') === 0) {\r\n return 'n' + str;\r\n }\r\n return 'en ' + str;\r\n },\r\n past: 'hai %s',\r\n s: 'uns segundos',\r\n ss: '%d segundos',\r\n m: 'un minuto',\r\n mm: '%d minutos',\r\n h: 'unha hora',\r\n hh: '%d horas',\r\n d: 'un día',\r\n dd: '%d días',\r\n M: 'un mes',\r\n MM: '%d meses',\r\n y: 'un ano',\r\n yy: '%d anos',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return gl;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Konkani Devanagari script [gom-deva]\r\n//! author : The Discoverer : https://github.com/WikiDiscoverer\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\r\n var format = {\r\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\r\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\r\n m: ['एका मिणटान', 'एक मिनूट'],\r\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\r\n h: ['एका वरान', 'एक वर'],\r\n hh: [number + ' वरांनी', number + ' वरां'],\r\n d: ['एका दिसान', 'एक दीस'],\r\n dd: [number + ' दिसांनी', number + ' दीस'],\r\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\r\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\r\n y: ['एका वर्सान', 'एक वर्स'],\r\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\r\n };\r\n return isFuture ? format[key][0] : format[key][1];\r\n }\r\n\r\n var gomDeva = moment.defineLocale('gom-deva', {\r\n months: {\r\n standalone:\r\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\r\n '_'\r\n ),\r\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\r\n '_'\r\n ),\r\n isFormat: /MMMM(\\s)+D[oD]?/,\r\n },\r\n monthsShort:\r\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\r\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\r\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'A h:mm [वाजतां]',\r\n LTS: 'A h:mm:ss [वाजतां]',\r\n L: 'DD-MM-YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\r\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\r\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\r\n },\r\n calendar: {\r\n sameDay: '[आयज] LT',\r\n nextDay: '[फाल्यां] LT',\r\n nextWeek: '[फुडलो] dddd[,] LT',\r\n lastDay: '[काल] LT',\r\n lastWeek: '[फाटलो] dddd[,] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s',\r\n past: '%s आदीं',\r\n s: processRelativeTime,\r\n ss: processRelativeTime,\r\n m: processRelativeTime,\r\n mm: processRelativeTime,\r\n h: processRelativeTime,\r\n hh: processRelativeTime,\r\n d: processRelativeTime,\r\n dd: processRelativeTime,\r\n M: processRelativeTime,\r\n MM: processRelativeTime,\r\n y: processRelativeTime,\r\n yy: processRelativeTime,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n // the ordinal 'वेर' only applies to day of the month\r\n case 'D':\r\n return number + 'वेर';\r\n default:\r\n case 'M':\r\n case 'Q':\r\n case 'DDD':\r\n case 'd':\r\n case 'w':\r\n case 'W':\r\n return number;\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week\r\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\r\n },\r\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'राती') {\r\n return hour < 4 ? hour : hour + 12;\r\n } else if (meridiem === 'सकाळीं') {\r\n return hour;\r\n } else if (meridiem === 'दनपारां') {\r\n return hour > 12 ? hour : hour + 12;\r\n } else if (meridiem === 'सांजे') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'राती';\r\n } else if (hour < 12) {\r\n return 'सकाळीं';\r\n } else if (hour < 16) {\r\n return 'दनपारां';\r\n } else if (hour < 20) {\r\n return 'सांजे';\r\n } else {\r\n return 'राती';\r\n }\r\n },\r\n });\r\n\r\n return gomDeva;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Konkani Latin script [gom-latn]\r\n//! author : The Discoverer : https://github.com/WikiDiscoverer\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\r\n var format = {\r\n s: ['thoddea sekondamni', 'thodde sekond'],\r\n ss: [number + ' sekondamni', number + ' sekond'],\r\n m: ['eka mintan', 'ek minut'],\r\n mm: [number + ' mintamni', number + ' mintam'],\r\n h: ['eka voran', 'ek vor'],\r\n hh: [number + ' voramni', number + ' voram'],\r\n d: ['eka disan', 'ek dis'],\r\n dd: [number + ' disamni', number + ' dis'],\r\n M: ['eka mhoinean', 'ek mhoino'],\r\n MM: [number + ' mhoineamni', number + ' mhoine'],\r\n y: ['eka vorsan', 'ek voros'],\r\n yy: [number + ' vorsamni', number + ' vorsam'],\r\n };\r\n return isFuture ? format[key][0] : format[key][1];\r\n }\r\n\r\n var gomLatn = moment.defineLocale('gom-latn', {\r\n months: {\r\n standalone:\r\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\r\n '_'\r\n ),\r\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\r\n '_'\r\n ),\r\n isFormat: /MMMM(\\s)+D[oD]?/,\r\n },\r\n monthsShort:\r\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\r\n monthsParseExact: true,\r\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\r\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\r\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'A h:mm [vazta]',\r\n LTS: 'A h:mm:ss [vazta]',\r\n L: 'DD-MM-YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY A h:mm [vazta]',\r\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\r\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\r\n },\r\n calendar: {\r\n sameDay: '[Aiz] LT',\r\n nextDay: '[Faleam] LT',\r\n nextWeek: '[Fuddlo] dddd[,] LT',\r\n lastDay: '[Kal] LT',\r\n lastWeek: '[Fattlo] dddd[,] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s',\r\n past: '%s adim',\r\n s: processRelativeTime,\r\n ss: processRelativeTime,\r\n m: processRelativeTime,\r\n mm: processRelativeTime,\r\n h: processRelativeTime,\r\n hh: processRelativeTime,\r\n d: processRelativeTime,\r\n dd: processRelativeTime,\r\n M: processRelativeTime,\r\n MM: processRelativeTime,\r\n y: processRelativeTime,\r\n yy: processRelativeTime,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n // the ordinal 'er' only applies to day of the month\r\n case 'D':\r\n return number + 'er';\r\n default:\r\n case 'M':\r\n case 'Q':\r\n case 'DDD':\r\n case 'd':\r\n case 'w':\r\n case 'W':\r\n return number;\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week\r\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\r\n },\r\n meridiemParse: /rati|sokallim|donparam|sanje/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'rati') {\r\n return hour < 4 ? hour : hour + 12;\r\n } else if (meridiem === 'sokallim') {\r\n return hour;\r\n } else if (meridiem === 'donparam') {\r\n return hour > 12 ? hour : hour + 12;\r\n } else if (meridiem === 'sanje') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'rati';\r\n } else if (hour < 12) {\r\n return 'sokallim';\r\n } else if (hour < 16) {\r\n return 'donparam';\r\n } else if (hour < 20) {\r\n return 'sanje';\r\n } else {\r\n return 'rati';\r\n }\r\n },\r\n });\r\n\r\n return gomLatn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Gujarati [gu]\r\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '૧',\r\n 2: '૨',\r\n 3: '૩',\r\n 4: '૪',\r\n 5: '૫',\r\n 6: '૬',\r\n 7: '૭',\r\n 8: '૮',\r\n 9: '૯',\r\n 0: '૦',\r\n },\r\n numberMap = {\r\n '૧': '1',\r\n '૨': '2',\r\n '૩': '3',\r\n '૪': '4',\r\n '૫': '5',\r\n '૬': '6',\r\n '૭': '7',\r\n '૮': '8',\r\n '૯': '9',\r\n '૦': '0',\r\n };\r\n\r\n var gu = moment.defineLocale('gu', {\r\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\r\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm વાગ્યે',\r\n LTS: 'A h:mm:ss વાગ્યે',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\r\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\r\n },\r\n calendar: {\r\n sameDay: '[આજ] LT',\r\n nextDay: '[કાલે] LT',\r\n nextWeek: 'dddd, LT',\r\n lastDay: '[ગઇકાલે] LT',\r\n lastWeek: '[પાછલા] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s મા',\r\n past: '%s પહેલા',\r\n s: 'અમુક પળો',\r\n ss: '%d સેકંડ',\r\n m: 'એક મિનિટ',\r\n mm: '%d મિનિટ',\r\n h: 'એક કલાક',\r\n hh: '%d કલાક',\r\n d: 'એક દિવસ',\r\n dd: '%d દિવસ',\r\n M: 'એક મહિનો',\r\n MM: '%d મહિનો',\r\n y: 'એક વર્ષ',\r\n yy: '%d વર્ષ',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\r\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\r\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'રાત') {\r\n return hour < 4 ? hour : hour + 12;\r\n } else if (meridiem === 'સવાર') {\r\n return hour;\r\n } else if (meridiem === 'બપોર') {\r\n return hour >= 10 ? hour : hour + 12;\r\n } else if (meridiem === 'સાંજ') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'રાત';\r\n } else if (hour < 10) {\r\n return 'સવાર';\r\n } else if (hour < 17) {\r\n return 'બપોર';\r\n } else if (hour < 20) {\r\n return 'સાંજ';\r\n } else {\r\n return 'રાત';\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return gu;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Hebrew [he]\r\n//! author : Tomer Cohen : https://github.com/tomer\r\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\r\n//! author : Tal Ater : https://github.com/TalAter\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var he = moment.defineLocale('he', {\r\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\r\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\r\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\r\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D [ב]MMMM YYYY',\r\n LLL: 'D [ב]MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\r\n l: 'D/M/YYYY',\r\n ll: 'D MMM YYYY',\r\n lll: 'D MMM YYYY HH:mm',\r\n llll: 'ddd, D MMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[היום ב־]LT',\r\n nextDay: '[מחר ב־]LT',\r\n nextWeek: 'dddd [בשעה] LT',\r\n lastDay: '[אתמול ב־]LT',\r\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'בעוד %s',\r\n past: 'לפני %s',\r\n s: 'מספר שניות',\r\n ss: '%d שניות',\r\n m: 'דקה',\r\n mm: '%d דקות',\r\n h: 'שעה',\r\n hh: function (number) {\r\n if (number === 2) {\r\n return 'שעתיים';\r\n }\r\n return number + ' שעות';\r\n },\r\n d: 'יום',\r\n dd: function (number) {\r\n if (number === 2) {\r\n return 'יומיים';\r\n }\r\n return number + ' ימים';\r\n },\r\n M: 'חודש',\r\n MM: function (number) {\r\n if (number === 2) {\r\n return 'חודשיים';\r\n }\r\n return number + ' חודשים';\r\n },\r\n y: 'שנה',\r\n yy: function (number) {\r\n if (number === 2) {\r\n return 'שנתיים';\r\n } else if (number % 10 === 0 && number !== 10) {\r\n return number + ' שנה';\r\n }\r\n return number + ' שנים';\r\n },\r\n },\r\n meridiemParse:\r\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\r\n isPM: function (input) {\r\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 5) {\r\n return 'לפנות בוקר';\r\n } else if (hour < 10) {\r\n return 'בבוקר';\r\n } else if (hour < 12) {\r\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\r\n } else if (hour < 18) {\r\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\r\n } else {\r\n return 'בערב';\r\n }\r\n },\r\n });\r\n\r\n return he;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Hindi [hi]\r\n//! author : Mayank Singhal : https://github.com/mayanksinghal\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '१',\r\n 2: '२',\r\n 3: '३',\r\n 4: '४',\r\n 5: '५',\r\n 6: '६',\r\n 7: '७',\r\n 8: '८',\r\n 9: '९',\r\n 0: '०',\r\n },\r\n numberMap = {\r\n '१': '1',\r\n '२': '2',\r\n '३': '3',\r\n '४': '4',\r\n '५': '5',\r\n '६': '6',\r\n '७': '7',\r\n '८': '8',\r\n '९': '9',\r\n '०': '0',\r\n },\r\n monthsParse = [\r\n /^जन/i,\r\n /^फ़र|फर/i,\r\n /^मार्च/i,\r\n /^अप्रै/i,\r\n /^मई/i,\r\n /^जून/i,\r\n /^जुल/i,\r\n /^अग/i,\r\n /^सितं|सित/i,\r\n /^अक्टू/i,\r\n /^नव|नवं/i,\r\n /^दिसं|दिस/i,\r\n ],\r\n shortMonthsParse = [\r\n /^जन/i,\r\n /^फ़र/i,\r\n /^मार्च/i,\r\n /^अप्रै/i,\r\n /^मई/i,\r\n /^जून/i,\r\n /^जुल/i,\r\n /^अग/i,\r\n /^सित/i,\r\n /^अक्टू/i,\r\n /^नव/i,\r\n /^दिस/i,\r\n ];\r\n\r\n var hi = moment.defineLocale('hi', {\r\n months: {\r\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\r\n '_'\r\n ),\r\n },\r\n monthsShort:\r\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\r\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\r\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\r\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm बजे',\r\n LTS: 'A h:mm:ss बजे',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, A h:mm बजे',\r\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\r\n },\r\n\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: shortMonthsParse,\r\n\r\n monthsRegex:\r\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\r\n\r\n monthsShortRegex:\r\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\r\n\r\n monthsStrictRegex:\r\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\r\n\r\n monthsShortStrictRegex:\r\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\r\n\r\n calendar: {\r\n sameDay: '[आज] LT',\r\n nextDay: '[कल] LT',\r\n nextWeek: 'dddd, LT',\r\n lastDay: '[कल] LT',\r\n lastWeek: '[पिछले] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s में',\r\n past: '%s पहले',\r\n s: 'कुछ ही क्षण',\r\n ss: '%d सेकंड',\r\n m: 'एक मिनट',\r\n mm: '%d मिनट',\r\n h: 'एक घंटा',\r\n hh: '%d घंटे',\r\n d: 'एक दिन',\r\n dd: '%d दिन',\r\n M: 'एक महीने',\r\n MM: '%d महीने',\r\n y: 'एक वर्ष',\r\n yy: '%d वर्ष',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\r\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\r\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'रात') {\r\n return hour < 4 ? hour : hour + 12;\r\n } else if (meridiem === 'सुबह') {\r\n return hour;\r\n } else if (meridiem === 'दोपहर') {\r\n return hour >= 10 ? hour : hour + 12;\r\n } else if (meridiem === 'शाम') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'रात';\r\n } else if (hour < 10) {\r\n return 'सुबह';\r\n } else if (hour < 17) {\r\n return 'दोपहर';\r\n } else if (hour < 20) {\r\n return 'शाम';\r\n } else {\r\n return 'रात';\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return hi;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Croatian [hr]\r\n//! author : Bojan Marković : https://github.com/bmarkovic\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function translate(number, withoutSuffix, key) {\r\n var result = number + ' ';\r\n switch (key) {\r\n case 'ss':\r\n if (number === 1) {\r\n result += 'sekunda';\r\n } else if (number === 2 || number === 3 || number === 4) {\r\n result += 'sekunde';\r\n } else {\r\n result += 'sekundi';\r\n }\r\n return result;\r\n case 'm':\r\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\r\n case 'mm':\r\n if (number === 1) {\r\n result += 'minuta';\r\n } else if (number === 2 || number === 3 || number === 4) {\r\n result += 'minute';\r\n } else {\r\n result += 'minuta';\r\n }\r\n return result;\r\n case 'h':\r\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\r\n case 'hh':\r\n if (number === 1) {\r\n result += 'sat';\r\n } else if (number === 2 || number === 3 || number === 4) {\r\n result += 'sata';\r\n } else {\r\n result += 'sati';\r\n }\r\n return result;\r\n case 'dd':\r\n if (number === 1) {\r\n result += 'dan';\r\n } else {\r\n result += 'dana';\r\n }\r\n return result;\r\n case 'MM':\r\n if (number === 1) {\r\n result += 'mjesec';\r\n } else if (number === 2 || number === 3 || number === 4) {\r\n result += 'mjeseca';\r\n } else {\r\n result += 'mjeseci';\r\n }\r\n return result;\r\n case 'yy':\r\n if (number === 1) {\r\n result += 'godina';\r\n } else if (number === 2 || number === 3 || number === 4) {\r\n result += 'godine';\r\n } else {\r\n result += 'godina';\r\n }\r\n return result;\r\n }\r\n }\r\n\r\n var hr = moment.defineLocale('hr', {\r\n months: {\r\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\r\n '_'\r\n ),\r\n },\r\n monthsShort:\r\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\r\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'Do MMMM YYYY',\r\n LLL: 'Do MMMM YYYY H:mm',\r\n LLLL: 'dddd, Do MMMM YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[danas u] LT',\r\n nextDay: '[sutra u] LT',\r\n nextWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[u] [nedjelju] [u] LT';\r\n case 3:\r\n return '[u] [srijedu] [u] LT';\r\n case 6:\r\n return '[u] [subotu] [u] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[u] dddd [u] LT';\r\n }\r\n },\r\n lastDay: '[jučer u] LT',\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[prošlu] [nedjelju] [u] LT';\r\n case 3:\r\n return '[prošlu] [srijedu] [u] LT';\r\n case 6:\r\n return '[prošle] [subote] [u] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[prošli] dddd [u] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'za %s',\r\n past: 'prije %s',\r\n s: 'par sekundi',\r\n ss: translate,\r\n m: translate,\r\n mm: translate,\r\n h: translate,\r\n hh: translate,\r\n d: 'dan',\r\n dd: translate,\r\n M: 'mjesec',\r\n MM: translate,\r\n y: 'godinu',\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return hr;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Hungarian [hu]\r\n//! author : Adam Brunner : https://github.com/adambrunner\r\n//! author : Peter Viszt : https://github.com/passatgt\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var weekEndings =\r\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\r\n function translate(number, withoutSuffix, key, isFuture) {\r\n var num = number;\r\n switch (key) {\r\n case 's':\r\n return isFuture || withoutSuffix\r\n ? 'néhány másodperc'\r\n : 'néhány másodperce';\r\n case 'ss':\r\n return num + (isFuture || withoutSuffix)\r\n ? ' másodperc'\r\n : ' másodperce';\r\n case 'm':\r\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\r\n case 'mm':\r\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\r\n case 'h':\r\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\r\n case 'hh':\r\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\r\n case 'd':\r\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\r\n case 'dd':\r\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\r\n case 'M':\r\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\r\n case 'MM':\r\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\r\n case 'y':\r\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\r\n case 'yy':\r\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\r\n }\r\n return '';\r\n }\r\n function week(isFuture) {\r\n return (\r\n (isFuture ? '' : '[múlt] ') +\r\n '[' +\r\n weekEndings[this.day()] +\r\n '] LT[-kor]'\r\n );\r\n }\r\n\r\n var hu = moment.defineLocale('hu', {\r\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\r\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\r\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'YYYY.MM.DD.',\r\n LL: 'YYYY. MMMM D.',\r\n LLL: 'YYYY. MMMM D. H:mm',\r\n LLLL: 'YYYY. MMMM D., dddd H:mm',\r\n },\r\n meridiemParse: /de|du/i,\r\n isPM: function (input) {\r\n return input.charAt(1).toLowerCase() === 'u';\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours < 12) {\r\n return isLower === true ? 'de' : 'DE';\r\n } else {\r\n return isLower === true ? 'du' : 'DU';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[ma] LT[-kor]',\r\n nextDay: '[holnap] LT[-kor]',\r\n nextWeek: function () {\r\n return week.call(this, true);\r\n },\r\n lastDay: '[tegnap] LT[-kor]',\r\n lastWeek: function () {\r\n return week.call(this, false);\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s múlva',\r\n past: '%s',\r\n s: translate,\r\n ss: translate,\r\n m: translate,\r\n mm: translate,\r\n h: translate,\r\n hh: translate,\r\n d: translate,\r\n dd: translate,\r\n M: translate,\r\n MM: translate,\r\n y: translate,\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return hu;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Armenian [hy-am]\r\n//! author : Armendarabyan : https://github.com/armendarabyan\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var hyAm = moment.defineLocale('hy-am', {\r\n months: {\r\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\r\n '_'\r\n ),\r\n },\r\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\r\n weekdays:\r\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\r\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY թ.',\r\n LLL: 'D MMMM YYYY թ., HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[այսօր] LT',\r\n nextDay: '[վաղը] LT',\r\n lastDay: '[երեկ] LT',\r\n nextWeek: function () {\r\n return 'dddd [օրը ժամը] LT';\r\n },\r\n lastWeek: function () {\r\n return '[անցած] dddd [օրը ժամը] LT';\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s հետո',\r\n past: '%s առաջ',\r\n s: 'մի քանի վայրկյան',\r\n ss: '%d վայրկյան',\r\n m: 'րոպե',\r\n mm: '%d րոպե',\r\n h: 'ժամ',\r\n hh: '%d ժամ',\r\n d: 'օր',\r\n dd: '%d օր',\r\n M: 'ամիս',\r\n MM: '%d ամիս',\r\n y: 'տարի',\r\n yy: '%d տարի',\r\n },\r\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\r\n isPM: function (input) {\r\n return /^(ցերեկվա|երեկոյան)$/.test(input);\r\n },\r\n meridiem: function (hour) {\r\n if (hour < 4) {\r\n return 'գիշերվա';\r\n } else if (hour < 12) {\r\n return 'առավոտվա';\r\n } else if (hour < 17) {\r\n return 'ցերեկվա';\r\n } else {\r\n return 'երեկոյան';\r\n }\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'DDD':\r\n case 'w':\r\n case 'W':\r\n case 'DDDo':\r\n if (number === 1) {\r\n return number + '-ին';\r\n }\r\n return number + '-րդ';\r\n default:\r\n return number;\r\n }\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return hyAm;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Indonesian [id]\r\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\r\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var id = moment.defineLocale('id', {\r\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\r\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\r\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\r\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH.mm',\r\n LTS: 'HH.mm.ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY [pukul] HH.mm',\r\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\r\n },\r\n meridiemParse: /pagi|siang|sore|malam/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'pagi') {\r\n return hour;\r\n } else if (meridiem === 'siang') {\r\n return hour >= 11 ? hour : hour + 12;\r\n } else if (meridiem === 'sore' || meridiem === 'malam') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours < 11) {\r\n return 'pagi';\r\n } else if (hours < 15) {\r\n return 'siang';\r\n } else if (hours < 19) {\r\n return 'sore';\r\n } else {\r\n return 'malam';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[Hari ini pukul] LT',\r\n nextDay: '[Besok pukul] LT',\r\n nextWeek: 'dddd [pukul] LT',\r\n lastDay: '[Kemarin pukul] LT',\r\n lastWeek: 'dddd [lalu pukul] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'dalam %s',\r\n past: '%s yang lalu',\r\n s: 'beberapa detik',\r\n ss: '%d detik',\r\n m: 'semenit',\r\n mm: '%d menit',\r\n h: 'sejam',\r\n hh: '%d jam',\r\n d: 'sehari',\r\n dd: '%d hari',\r\n M: 'sebulan',\r\n MM: '%d bulan',\r\n y: 'setahun',\r\n yy: '%d tahun',\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return id;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Icelandic [is]\r\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function plural(n) {\r\n if (n % 100 === 11) {\r\n return true;\r\n } else if (n % 10 === 1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function translate(number, withoutSuffix, key, isFuture) {\r\n var result = number + ' ';\r\n switch (key) {\r\n case 's':\r\n return withoutSuffix || isFuture\r\n ? 'nokkrar sekúndur'\r\n : 'nokkrum sekúndum';\r\n case 'ss':\r\n if (plural(number)) {\r\n return (\r\n result +\r\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\r\n );\r\n }\r\n return result + 'sekúnda';\r\n case 'm':\r\n return withoutSuffix ? 'mínúta' : 'mínútu';\r\n case 'mm':\r\n if (plural(number)) {\r\n return (\r\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\r\n );\r\n } else if (withoutSuffix) {\r\n return result + 'mínúta';\r\n }\r\n return result + 'mínútu';\r\n case 'hh':\r\n if (plural(number)) {\r\n return (\r\n result +\r\n (withoutSuffix || isFuture\r\n ? 'klukkustundir'\r\n : 'klukkustundum')\r\n );\r\n }\r\n return result + 'klukkustund';\r\n case 'd':\r\n if (withoutSuffix) {\r\n return 'dagur';\r\n }\r\n return isFuture ? 'dag' : 'degi';\r\n case 'dd':\r\n if (plural(number)) {\r\n if (withoutSuffix) {\r\n return result + 'dagar';\r\n }\r\n return result + (isFuture ? 'daga' : 'dögum');\r\n } else if (withoutSuffix) {\r\n return result + 'dagur';\r\n }\r\n return result + (isFuture ? 'dag' : 'degi');\r\n case 'M':\r\n if (withoutSuffix) {\r\n return 'mánuður';\r\n }\r\n return isFuture ? 'mánuð' : 'mánuði';\r\n case 'MM':\r\n if (plural(number)) {\r\n if (withoutSuffix) {\r\n return result + 'mánuðir';\r\n }\r\n return result + (isFuture ? 'mánuði' : 'mánuðum');\r\n } else if (withoutSuffix) {\r\n return result + 'mánuður';\r\n }\r\n return result + (isFuture ? 'mánuð' : 'mánuði');\r\n case 'y':\r\n return withoutSuffix || isFuture ? 'ár' : 'ári';\r\n case 'yy':\r\n if (plural(number)) {\r\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\r\n }\r\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\r\n }\r\n }\r\n\r\n var is = moment.defineLocale('is', {\r\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\r\n '_'\r\n ),\r\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\r\n weekdays:\r\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\r\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY [kl.] H:mm',\r\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[í dag kl.] LT',\r\n nextDay: '[á morgun kl.] LT',\r\n nextWeek: 'dddd [kl.] LT',\r\n lastDay: '[í gær kl.] LT',\r\n lastWeek: '[síðasta] dddd [kl.] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'eftir %s',\r\n past: 'fyrir %s síðan',\r\n s: translate,\r\n ss: translate,\r\n m: translate,\r\n mm: translate,\r\n h: 'klukkustund',\r\n hh: translate,\r\n d: translate,\r\n dd: translate,\r\n M: translate,\r\n MM: translate,\r\n y: translate,\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return is;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Italian (Switzerland) [it-ch]\r\n//! author : xfh : https://github.com/xfh\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var itCh = moment.defineLocale('it-ch', {\r\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\r\n '_'\r\n ),\r\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\r\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\r\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Oggi alle] LT',\r\n nextDay: '[Domani alle] LT',\r\n nextWeek: 'dddd [alle] LT',\r\n lastDay: '[Ieri alle] LT',\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[la scorsa] dddd [alle] LT';\r\n default:\r\n return '[lo scorso] dddd [alle] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: function (s) {\r\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\r\n },\r\n past: '%s fa',\r\n s: 'alcuni secondi',\r\n ss: '%d secondi',\r\n m: 'un minuto',\r\n mm: '%d minuti',\r\n h: \"un'ora\",\r\n hh: '%d ore',\r\n d: 'un giorno',\r\n dd: '%d giorni',\r\n M: 'un mese',\r\n MM: '%d mesi',\r\n y: 'un anno',\r\n yy: '%d anni',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return itCh;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Italian [it]\r\n//! author : Lorenzo : https://github.com/aliem\r\n//! author: Mattia Larentis: https://github.com/nostalgiaz\r\n//! author: Marco : https://github.com/Manfre98\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var it = moment.defineLocale('it', {\r\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\r\n '_'\r\n ),\r\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\r\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\r\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: function () {\r\n return (\r\n '[Oggi a' +\r\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\r\n ']LT'\r\n );\r\n },\r\n nextDay: function () {\r\n return (\r\n '[Domani a' +\r\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\r\n ']LT'\r\n );\r\n },\r\n nextWeek: function () {\r\n return (\r\n 'dddd [a' +\r\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\r\n ']LT'\r\n );\r\n },\r\n lastDay: function () {\r\n return (\r\n '[Ieri a' +\r\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\r\n ']LT'\r\n );\r\n },\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return (\r\n '[La scorsa] dddd [a' +\r\n (this.hours() > 1\r\n ? 'lle '\r\n : this.hours() === 0\r\n ? ' '\r\n : \"ll'\") +\r\n ']LT'\r\n );\r\n default:\r\n return (\r\n '[Lo scorso] dddd [a' +\r\n (this.hours() > 1\r\n ? 'lle '\r\n : this.hours() === 0\r\n ? ' '\r\n : \"ll'\") +\r\n ']LT'\r\n );\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'tra %s',\r\n past: '%s fa',\r\n s: 'alcuni secondi',\r\n ss: '%d secondi',\r\n m: 'un minuto',\r\n mm: '%d minuti',\r\n h: \"un'ora\",\r\n hh: '%d ore',\r\n d: 'un giorno',\r\n dd: '%d giorni',\r\n w: 'una settimana',\r\n ww: '%d settimane',\r\n M: 'un mese',\r\n MM: '%d mesi',\r\n y: 'un anno',\r\n yy: '%d anni',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return it;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Japanese [ja]\r\n//! author : LI Long : https://github.com/baryon\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var ja = moment.defineLocale('ja', {\r\n eras: [\r\n {\r\n since: '2019-05-01',\r\n offset: 1,\r\n name: '令和',\r\n narrow: '㋿',\r\n abbr: 'R',\r\n },\r\n {\r\n since: '1989-01-08',\r\n until: '2019-04-30',\r\n offset: 1,\r\n name: '平成',\r\n narrow: '㍻',\r\n abbr: 'H',\r\n },\r\n {\r\n since: '1926-12-25',\r\n until: '1989-01-07',\r\n offset: 1,\r\n name: '昭和',\r\n narrow: '㍼',\r\n abbr: 'S',\r\n },\r\n {\r\n since: '1912-07-30',\r\n until: '1926-12-24',\r\n offset: 1,\r\n name: '大正',\r\n narrow: '㍽',\r\n abbr: 'T',\r\n },\r\n {\r\n since: '1873-01-01',\r\n until: '1912-07-29',\r\n offset: 6,\r\n name: '明治',\r\n narrow: '㍾',\r\n abbr: 'M',\r\n },\r\n {\r\n since: '0001-01-01',\r\n until: '1873-12-31',\r\n offset: 1,\r\n name: '西暦',\r\n narrow: 'AD',\r\n abbr: 'AD',\r\n },\r\n {\r\n since: '0000-12-31',\r\n until: -Infinity,\r\n offset: 1,\r\n name: '紀元前',\r\n narrow: 'BC',\r\n abbr: 'BC',\r\n },\r\n ],\r\n eraYearOrdinalRegex: /(元|\\d+)年/,\r\n eraYearOrdinalParse: function (input, match) {\r\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\r\n },\r\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\r\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\r\n '_'\r\n ),\r\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\r\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\r\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY/MM/DD',\r\n LL: 'YYYY年M月D日',\r\n LLL: 'YYYY年M月D日 HH:mm',\r\n LLLL: 'YYYY年M月D日 dddd HH:mm',\r\n l: 'YYYY/MM/DD',\r\n ll: 'YYYY年M月D日',\r\n lll: 'YYYY年M月D日 HH:mm',\r\n llll: 'YYYY年M月D日(ddd) HH:mm',\r\n },\r\n meridiemParse: /午前|午後/i,\r\n isPM: function (input) {\r\n return input === '午後';\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return '午前';\r\n } else {\r\n return '午後';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[今日] LT',\r\n nextDay: '[明日] LT',\r\n nextWeek: function (now) {\r\n if (now.week() !== this.week()) {\r\n return '[来週]dddd LT';\r\n } else {\r\n return 'dddd LT';\r\n }\r\n },\r\n lastDay: '[昨日] LT',\r\n lastWeek: function (now) {\r\n if (this.week() !== now.week()) {\r\n return '[先週]dddd LT';\r\n } else {\r\n return 'dddd LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'y':\r\n return number === 1 ? '元年' : number + '年';\r\n case 'd':\r\n case 'D':\r\n case 'DDD':\r\n return number + '日';\r\n default:\r\n return number;\r\n }\r\n },\r\n relativeTime: {\r\n future: '%s後',\r\n past: '%s前',\r\n s: '数秒',\r\n ss: '%d秒',\r\n m: '1分',\r\n mm: '%d分',\r\n h: '1時間',\r\n hh: '%d時間',\r\n d: '1日',\r\n dd: '%d日',\r\n M: '1ヶ月',\r\n MM: '%dヶ月',\r\n y: '1年',\r\n yy: '%d年',\r\n },\r\n });\r\n\r\n return ja;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Javanese [jv]\r\n//! author : Rony Lantip : https://github.com/lantip\r\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var jv = moment.defineLocale('jv', {\r\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\r\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\r\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\r\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH.mm',\r\n LTS: 'HH.mm.ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY [pukul] HH.mm',\r\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\r\n },\r\n meridiemParse: /enjing|siyang|sonten|ndalu/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'enjing') {\r\n return hour;\r\n } else if (meridiem === 'siyang') {\r\n return hour >= 11 ? hour : hour + 12;\r\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours < 11) {\r\n return 'enjing';\r\n } else if (hours < 15) {\r\n return 'siyang';\r\n } else if (hours < 19) {\r\n return 'sonten';\r\n } else {\r\n return 'ndalu';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[Dinten puniko pukul] LT',\r\n nextDay: '[Mbenjang pukul] LT',\r\n nextWeek: 'dddd [pukul] LT',\r\n lastDay: '[Kala wingi pukul] LT',\r\n lastWeek: 'dddd [kepengker pukul] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'wonten ing %s',\r\n past: '%s ingkang kepengker',\r\n s: 'sawetawis detik',\r\n ss: '%d detik',\r\n m: 'setunggal menit',\r\n mm: '%d menit',\r\n h: 'setunggal jam',\r\n hh: '%d jam',\r\n d: 'sedinten',\r\n dd: '%d dinten',\r\n M: 'sewulan',\r\n MM: '%d wulan',\r\n y: 'setaun',\r\n yy: '%d taun',\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return jv;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Georgian [ka]\r\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var ka = moment.defineLocale('ka', {\r\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\r\n '_'\r\n ),\r\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\r\n weekdays: {\r\n standalone:\r\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\r\n '_'\r\n ),\r\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\r\n '_'\r\n ),\r\n isFormat: /(წინა|შემდეგ)/,\r\n },\r\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\r\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[დღეს] LT[-ზე]',\r\n nextDay: '[ხვალ] LT[-ზე]',\r\n lastDay: '[გუშინ] LT[-ზე]',\r\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\r\n lastWeek: '[წინა] dddd LT-ზე',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: function (s) {\r\n return s.replace(\r\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\r\n function ($0, $1, $2) {\r\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\r\n }\r\n );\r\n },\r\n past: function (s) {\r\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\r\n return s.replace(/(ი|ე)$/, 'ის წინ');\r\n }\r\n if (/წელი/.test(s)) {\r\n return s.replace(/წელი$/, 'წლის წინ');\r\n }\r\n return s;\r\n },\r\n s: 'რამდენიმე წამი',\r\n ss: '%d წამი',\r\n m: 'წუთი',\r\n mm: '%d წუთი',\r\n h: 'საათი',\r\n hh: '%d საათი',\r\n d: 'დღე',\r\n dd: '%d დღე',\r\n M: 'თვე',\r\n MM: '%d თვე',\r\n y: 'წელი',\r\n yy: '%d წელი',\r\n },\r\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\r\n ordinal: function (number) {\r\n if (number === 0) {\r\n return number;\r\n }\r\n if (number === 1) {\r\n return number + '-ლი';\r\n }\r\n if (\r\n number < 20 ||\r\n (number <= 100 && number % 20 === 0) ||\r\n number % 100 === 0\r\n ) {\r\n return 'მე-' + number;\r\n }\r\n return number + '-ე';\r\n },\r\n week: {\r\n dow: 1,\r\n doy: 7,\r\n },\r\n });\r\n\r\n return ka;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Kazakh [kk]\r\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var suffixes = {\r\n 0: '-ші',\r\n 1: '-ші',\r\n 2: '-ші',\r\n 3: '-ші',\r\n 4: '-ші',\r\n 5: '-ші',\r\n 6: '-шы',\r\n 7: '-ші',\r\n 8: '-ші',\r\n 9: '-шы',\r\n 10: '-шы',\r\n 20: '-шы',\r\n 30: '-шы',\r\n 40: '-шы',\r\n 50: '-ші',\r\n 60: '-шы',\r\n 70: '-ші',\r\n 80: '-ші',\r\n 90: '-шы',\r\n 100: '-ші',\r\n };\r\n\r\n var kk = moment.defineLocale('kk', {\r\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\r\n '_'\r\n ),\r\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\r\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\r\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Бүгін сағат] LT',\r\n nextDay: '[Ертең сағат] LT',\r\n nextWeek: 'dddd [сағат] LT',\r\n lastDay: '[Кеше сағат] LT',\r\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s ішінде',\r\n past: '%s бұрын',\r\n s: 'бірнеше секунд',\r\n ss: '%d секунд',\r\n m: 'бір минут',\r\n mm: '%d минут',\r\n h: 'бір сағат',\r\n hh: '%d сағат',\r\n d: 'бір күн',\r\n dd: '%d күн',\r\n M: 'бір ай',\r\n MM: '%d ай',\r\n y: 'бір жыл',\r\n yy: '%d жыл',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\r\n ordinal: function (number) {\r\n var a = number % 10,\r\n b = number >= 100 ? 100 : null;\r\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return kk;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Cambodian [km]\r\n//! author : Kruy Vanna : https://github.com/kruyvanna\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '១',\r\n 2: '២',\r\n 3: '៣',\r\n 4: '៤',\r\n 5: '៥',\r\n 6: '៦',\r\n 7: '៧',\r\n 8: '៨',\r\n 9: '៩',\r\n 0: '០',\r\n },\r\n numberMap = {\r\n '១': '1',\r\n '២': '2',\r\n '៣': '3',\r\n '៤': '4',\r\n '៥': '5',\r\n '៦': '6',\r\n '៧': '7',\r\n '៨': '8',\r\n '៩': '9',\r\n '០': '0',\r\n };\r\n\r\n var km = moment.defineLocale('km', {\r\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\r\n '_'\r\n ),\r\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\r\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\r\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /ព្រឹក|ល្ងាច/,\r\n isPM: function (input) {\r\n return input === 'ល្ងាច';\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'ព្រឹក';\r\n } else {\r\n return 'ល្ងាច';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\r\n nextDay: '[ស្អែក ម៉ោង] LT',\r\n nextWeek: 'dddd [ម៉ោង] LT',\r\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\r\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%sទៀត',\r\n past: '%sមុន',\r\n s: 'ប៉ុន្មានវិនាទី',\r\n ss: '%d វិនាទី',\r\n m: 'មួយនាទី',\r\n mm: '%d នាទី',\r\n h: 'មួយម៉ោង',\r\n hh: '%d ម៉ោង',\r\n d: 'មួយថ្ងៃ',\r\n dd: '%d ថ្ងៃ',\r\n M: 'មួយខែ',\r\n MM: '%d ខែ',\r\n y: 'មួយឆ្នាំ',\r\n yy: '%d ឆ្នាំ',\r\n },\r\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\r\n ordinal: 'ទី%d',\r\n preparse: function (string) {\r\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return km;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Kannada [kn]\r\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '೧',\r\n 2: '೨',\r\n 3: '೩',\r\n 4: '೪',\r\n 5: '೫',\r\n 6: '೬',\r\n 7: '೭',\r\n 8: '೮',\r\n 9: '೯',\r\n 0: '೦',\r\n },\r\n numberMap = {\r\n '೧': '1',\r\n '೨': '2',\r\n '೩': '3',\r\n '೪': '4',\r\n '೫': '5',\r\n '೬': '6',\r\n '೭': '7',\r\n '೮': '8',\r\n '೯': '9',\r\n '೦': '0',\r\n };\r\n\r\n var kn = moment.defineLocale('kn', {\r\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\r\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm',\r\n LTS: 'A h:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, A h:mm',\r\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\r\n },\r\n calendar: {\r\n sameDay: '[ಇಂದು] LT',\r\n nextDay: '[ನಾಳೆ] LT',\r\n nextWeek: 'dddd, LT',\r\n lastDay: '[ನಿನ್ನೆ] LT',\r\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s ನಂತರ',\r\n past: '%s ಹಿಂದೆ',\r\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\r\n ss: '%d ಸೆಕೆಂಡುಗಳು',\r\n m: 'ಒಂದು ನಿಮಿಷ',\r\n mm: '%d ನಿಮಿಷ',\r\n h: 'ಒಂದು ಗಂಟೆ',\r\n hh: '%d ಗಂಟೆ',\r\n d: 'ಒಂದು ದಿನ',\r\n dd: '%d ದಿನ',\r\n M: 'ಒಂದು ತಿಂಗಳು',\r\n MM: '%d ತಿಂಗಳು',\r\n y: 'ಒಂದು ವರ್ಷ',\r\n yy: '%d ವರ್ಷ',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'ರಾತ್ರಿ') {\r\n return hour < 4 ? hour : hour + 12;\r\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\r\n return hour;\r\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\r\n return hour >= 10 ? hour : hour + 12;\r\n } else if (meridiem === 'ಸಂಜೆ') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'ರಾತ್ರಿ';\r\n } else if (hour < 10) {\r\n return 'ಬೆಳಿಗ್ಗೆ';\r\n } else if (hour < 17) {\r\n return 'ಮಧ್ಯಾಹ್ನ';\r\n } else if (hour < 20) {\r\n return 'ಸಂಜೆ';\r\n } else {\r\n return 'ರಾತ್ರಿ';\r\n }\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\r\n ordinal: function (number) {\r\n return number + 'ನೇ';\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return kn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Korean [ko]\r\n//! author : Kyungwook, Park : https://github.com/kyungw00k\r\n//! author : Jeeeyul Lee \r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var ko = moment.defineLocale('ko', {\r\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\r\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\r\n '_'\r\n ),\r\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\r\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\r\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm',\r\n LTS: 'A h:mm:ss',\r\n L: 'YYYY.MM.DD.',\r\n LL: 'YYYY년 MMMM D일',\r\n LLL: 'YYYY년 MMMM D일 A h:mm',\r\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\r\n l: 'YYYY.MM.DD.',\r\n ll: 'YYYY년 MMMM D일',\r\n lll: 'YYYY년 MMMM D일 A h:mm',\r\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\r\n },\r\n calendar: {\r\n sameDay: '오늘 LT',\r\n nextDay: '내일 LT',\r\n nextWeek: 'dddd LT',\r\n lastDay: '어제 LT',\r\n lastWeek: '지난주 dddd LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s 후',\r\n past: '%s 전',\r\n s: '몇 초',\r\n ss: '%d초',\r\n m: '1분',\r\n mm: '%d분',\r\n h: '한 시간',\r\n hh: '%d시간',\r\n d: '하루',\r\n dd: '%d일',\r\n M: '한 달',\r\n MM: '%d달',\r\n y: '일 년',\r\n yy: '%d년',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'DDD':\r\n return number + '일';\r\n case 'M':\r\n return number + '월';\r\n case 'w':\r\n case 'W':\r\n return number + '주';\r\n default:\r\n return number;\r\n }\r\n },\r\n meridiemParse: /오전|오후/,\r\n isPM: function (token) {\r\n return token === '오후';\r\n },\r\n meridiem: function (hour, minute, isUpper) {\r\n return hour < 12 ? '오전' : '오후';\r\n },\r\n });\r\n\r\n return ko;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Northern Kurdish [ku-kmr]\r\n//! authors : Mazlum Özdogan : https://github.com/mergehez\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function processRelativeTime(num, withoutSuffix, key, isFuture) {\r\n var format = {\r\n s: ['çend sanîye', 'çend sanîyeyan'],\r\n ss: [num + ' sanîye', num + ' sanîyeyan'],\r\n m: ['deqîqeyek', 'deqîqeyekê'],\r\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\r\n h: ['saetek', 'saetekê'],\r\n hh: [num + ' saet', num + ' saetan'],\r\n d: ['rojek', 'rojekê'],\r\n dd: [num + ' roj', num + ' rojan'],\r\n w: ['hefteyek', 'hefteyekê'],\r\n ww: [num + ' hefte', num + ' hefteyan'],\r\n M: ['mehek', 'mehekê'],\r\n MM: [num + ' meh', num + ' mehan'],\r\n y: ['salek', 'salekê'],\r\n yy: [num + ' sal', num + ' salan'],\r\n };\r\n return withoutSuffix ? format[key][0] : format[key][1];\r\n }\r\n // function obliqueNumSuffix(num) {\r\n // if(num.includes(':'))\r\n // num = parseInt(num.split(':')[0]);\r\n // else\r\n // num = parseInt(num);\r\n // return num == 0 || num % 10 == 1 ? 'ê'\r\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\r\n // }\r\n function ezafeNumSuffix(num) {\r\n num = '' + num;\r\n var l = num.substring(num.length - 1),\r\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\r\n if (\r\n !(ll == 12 || ll == 13) &&\r\n (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\r\n )\r\n return 'yê';\r\n return 'ê';\r\n }\r\n\r\n var kuKmr = moment.defineLocale('ku-kmr', {\r\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\r\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\r\n // But the names below are more well known and handy\r\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\r\n monthsParseExact: true,\r\n weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\r\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\r\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours < 12) {\r\n return isLower ? 'bn' : 'BN';\r\n } else {\r\n return isLower ? 'pn' : 'PN';\r\n }\r\n },\r\n meridiemParse: /bn|BN|pn|PN/,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'Do MMMM[a] YYYY[an]',\r\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\r\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\r\n ll: 'Do MMM[.] YYYY[an]',\r\n lll: 'Do MMM[.] YYYY[an] HH:mm',\r\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Îro di saet] LT [de]',\r\n nextDay: '[Sibê di saet] LT [de]',\r\n nextWeek: 'dddd [di saet] LT [de]',\r\n lastDay: '[Duh di saet] LT [de]',\r\n lastWeek: 'dddd[a borî di saet] LT [de]',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'di %s de',\r\n past: 'berî %s',\r\n s: processRelativeTime,\r\n ss: processRelativeTime,\r\n m: processRelativeTime,\r\n mm: processRelativeTime,\r\n h: processRelativeTime,\r\n hh: processRelativeTime,\r\n d: processRelativeTime,\r\n dd: processRelativeTime,\r\n w: processRelativeTime,\r\n ww: processRelativeTime,\r\n M: processRelativeTime,\r\n MM: processRelativeTime,\r\n y: processRelativeTime,\r\n yy: processRelativeTime,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\r\n ordinal: function (num, period) {\r\n var p = period.toLowerCase();\r\n if (p.includes('w') || p.includes('m')) return num + '.';\r\n\r\n return num + ezafeNumSuffix(num);\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return kuKmr;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Kurdish [ku]\r\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '١',\r\n 2: '٢',\r\n 3: '٣',\r\n 4: '٤',\r\n 5: '٥',\r\n 6: '٦',\r\n 7: '٧',\r\n 8: '٨',\r\n 9: '٩',\r\n 0: '٠',\r\n },\r\n numberMap = {\r\n '١': '1',\r\n '٢': '2',\r\n '٣': '3',\r\n '٤': '4',\r\n '٥': '5',\r\n '٦': '6',\r\n '٧': '7',\r\n '٨': '8',\r\n '٩': '9',\r\n '٠': '0',\r\n },\r\n months = [\r\n 'کانونی دووەم',\r\n 'شوبات',\r\n 'ئازار',\r\n 'نیسان',\r\n 'ئایار',\r\n 'حوزەیران',\r\n 'تەمموز',\r\n 'ئاب',\r\n 'ئەیلوول',\r\n 'تشرینی یەكەم',\r\n 'تشرینی دووەم',\r\n 'كانونی یەکەم',\r\n ];\r\n\r\n var ku = moment.defineLocale('ku', {\r\n months: months,\r\n monthsShort: months,\r\n weekdays:\r\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\r\n '_'\r\n ),\r\n weekdaysShort:\r\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\r\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /ئێواره‌|به‌یانی/,\r\n isPM: function (input) {\r\n return /ئێواره‌/.test(input);\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'به‌یانی';\r\n } else {\r\n return 'ئێواره‌';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\r\n nextDay: '[به‌یانی كاتژمێر] LT',\r\n nextWeek: 'dddd [كاتژمێر] LT',\r\n lastDay: '[دوێنێ كاتژمێر] LT',\r\n lastWeek: 'dddd [كاتژمێر] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'له‌ %s',\r\n past: '%s',\r\n s: 'چه‌ند چركه‌یه‌ك',\r\n ss: 'چركه‌ %d',\r\n m: 'یه‌ك خوله‌ك',\r\n mm: '%d خوله‌ك',\r\n h: 'یه‌ك كاتژمێر',\r\n hh: '%d كاتژمێر',\r\n d: 'یه‌ك ڕۆژ',\r\n dd: '%d ڕۆژ',\r\n M: 'یه‌ك مانگ',\r\n MM: '%d مانگ',\r\n y: 'یه‌ك ساڵ',\r\n yy: '%d ساڵ',\r\n },\r\n preparse: function (string) {\r\n return string\r\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\r\n return numberMap[match];\r\n })\r\n .replace(/،/g, ',');\r\n },\r\n postformat: function (string) {\r\n return string\r\n .replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n })\r\n .replace(/,/g, '،');\r\n },\r\n week: {\r\n dow: 6, // Saturday is the first day of the week.\r\n doy: 12, // The week that contains Jan 12th is the first week of the year.\r\n },\r\n });\r\n\r\n return ku;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Kyrgyz [ky]\r\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var suffixes = {\r\n 0: '-чү',\r\n 1: '-чи',\r\n 2: '-чи',\r\n 3: '-чү',\r\n 4: '-чү',\r\n 5: '-чи',\r\n 6: '-чы',\r\n 7: '-чи',\r\n 8: '-чи',\r\n 9: '-чу',\r\n 10: '-чу',\r\n 20: '-чы',\r\n 30: '-чу',\r\n 40: '-чы',\r\n 50: '-чү',\r\n 60: '-чы',\r\n 70: '-чи',\r\n 80: '-чи',\r\n 90: '-чу',\r\n 100: '-чү',\r\n };\r\n\r\n var ky = moment.defineLocale('ky', {\r\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\r\n '_'\r\n ),\r\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\r\n '_'\r\n ),\r\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\r\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Бүгүн саат] LT',\r\n nextDay: '[Эртең саат] LT',\r\n nextWeek: 'dddd [саат] LT',\r\n lastDay: '[Кечээ саат] LT',\r\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s ичинде',\r\n past: '%s мурун',\r\n s: 'бирнече секунд',\r\n ss: '%d секунд',\r\n m: 'бир мүнөт',\r\n mm: '%d мүнөт',\r\n h: 'бир саат',\r\n hh: '%d саат',\r\n d: 'бир күн',\r\n dd: '%d күн',\r\n M: 'бир ай',\r\n MM: '%d ай',\r\n y: 'бир жыл',\r\n yy: '%d жыл',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\r\n ordinal: function (number) {\r\n var a = number % 10,\r\n b = number >= 100 ? 100 : null;\r\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return ky;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Luxembourgish [lb]\r\n//! author : mweimerskirch : https://github.com/mweimerskirch\r\n//! author : David Raison : https://github.com/kwisatz\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\r\n var format = {\r\n m: ['eng Minutt', 'enger Minutt'],\r\n h: ['eng Stonn', 'enger Stonn'],\r\n d: ['een Dag', 'engem Dag'],\r\n M: ['ee Mount', 'engem Mount'],\r\n y: ['ee Joer', 'engem Joer'],\r\n };\r\n return withoutSuffix ? format[key][0] : format[key][1];\r\n }\r\n function processFutureTime(string) {\r\n var number = string.substr(0, string.indexOf(' '));\r\n if (eifelerRegelAppliesToNumber(number)) {\r\n return 'a ' + string;\r\n }\r\n return 'an ' + string;\r\n }\r\n function processPastTime(string) {\r\n var number = string.substr(0, string.indexOf(' '));\r\n if (eifelerRegelAppliesToNumber(number)) {\r\n return 'viru ' + string;\r\n }\r\n return 'virun ' + string;\r\n }\r\n /**\r\n * Returns true if the word before the given number loses the '-n' ending.\r\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\r\n *\r\n * @param number {integer}\r\n * @returns {boolean}\r\n */\r\n function eifelerRegelAppliesToNumber(number) {\r\n number = parseInt(number, 10);\r\n if (isNaN(number)) {\r\n return false;\r\n }\r\n if (number < 0) {\r\n // Negative Number --> always true\r\n return true;\r\n } else if (number < 10) {\r\n // Only 1 digit\r\n if (4 <= number && number <= 7) {\r\n return true;\r\n }\r\n return false;\r\n } else if (number < 100) {\r\n // 2 digits\r\n var lastDigit = number % 10,\r\n firstDigit = number / 10;\r\n if (lastDigit === 0) {\r\n return eifelerRegelAppliesToNumber(firstDigit);\r\n }\r\n return eifelerRegelAppliesToNumber(lastDigit);\r\n } else if (number < 10000) {\r\n // 3 or 4 digits --> recursively check first digit\r\n while (number >= 10) {\r\n number = number / 10;\r\n }\r\n return eifelerRegelAppliesToNumber(number);\r\n } else {\r\n // Anything larger than 4 digits: recursively check first n-3 digits\r\n number = number / 1000;\r\n return eifelerRegelAppliesToNumber(number);\r\n }\r\n }\r\n\r\n var lb = moment.defineLocale('lb', {\r\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays:\r\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\r\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm [Auer]',\r\n LTS: 'H:mm:ss [Auer]',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY H:mm [Auer]',\r\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\r\n },\r\n calendar: {\r\n sameDay: '[Haut um] LT',\r\n sameElse: 'L',\r\n nextDay: '[Muer um] LT',\r\n nextWeek: 'dddd [um] LT',\r\n lastDay: '[Gëschter um] LT',\r\n lastWeek: function () {\r\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\r\n switch (this.day()) {\r\n case 2:\r\n case 4:\r\n return '[Leschten] dddd [um] LT';\r\n default:\r\n return '[Leschte] dddd [um] LT';\r\n }\r\n },\r\n },\r\n relativeTime: {\r\n future: processFutureTime,\r\n past: processPastTime,\r\n s: 'e puer Sekonnen',\r\n ss: '%d Sekonnen',\r\n m: processRelativeTime,\r\n mm: '%d Minutten',\r\n h: processRelativeTime,\r\n hh: '%d Stonnen',\r\n d: processRelativeTime,\r\n dd: '%d Deeg',\r\n M: processRelativeTime,\r\n MM: '%d Méint',\r\n y: processRelativeTime,\r\n yy: '%d Joer',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return lb;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Lao [lo]\r\n//! author : Ryan Hart : https://github.com/ryanhart2\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var lo = moment.defineLocale('lo', {\r\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\r\n '_'\r\n ),\r\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\r\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\r\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\r\n isPM: function (input) {\r\n return input === 'ຕອນແລງ';\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'ຕອນເຊົ້າ';\r\n } else {\r\n return 'ຕອນແລງ';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[ມື້ນີ້ເວລາ] LT',\r\n nextDay: '[ມື້ອື່ນເວລາ] LT',\r\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\r\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\r\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'ອີກ %s',\r\n past: '%sຜ່ານມາ',\r\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\r\n ss: '%d ວິນາທີ',\r\n m: '1 ນາທີ',\r\n mm: '%d ນາທີ',\r\n h: '1 ຊົ່ວໂມງ',\r\n hh: '%d ຊົ່ວໂມງ',\r\n d: '1 ມື້',\r\n dd: '%d ມື້',\r\n M: '1 ເດືອນ',\r\n MM: '%d ເດືອນ',\r\n y: '1 ປີ',\r\n yy: '%d ປີ',\r\n },\r\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\r\n ordinal: function (number) {\r\n return 'ທີ່' + number;\r\n },\r\n });\r\n\r\n return lo;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Lithuanian [lt]\r\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var units = {\r\n ss: 'sekundė_sekundžių_sekundes',\r\n m: 'minutė_minutės_minutę',\r\n mm: 'minutės_minučių_minutes',\r\n h: 'valanda_valandos_valandą',\r\n hh: 'valandos_valandų_valandas',\r\n d: 'diena_dienos_dieną',\r\n dd: 'dienos_dienų_dienas',\r\n M: 'mėnuo_mėnesio_mėnesį',\r\n MM: 'mėnesiai_mėnesių_mėnesius',\r\n y: 'metai_metų_metus',\r\n yy: 'metai_metų_metus',\r\n };\r\n function translateSeconds(number, withoutSuffix, key, isFuture) {\r\n if (withoutSuffix) {\r\n return 'kelios sekundės';\r\n } else {\r\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\r\n }\r\n }\r\n function translateSingular(number, withoutSuffix, key, isFuture) {\r\n return withoutSuffix\r\n ? forms(key)[0]\r\n : isFuture\r\n ? forms(key)[1]\r\n : forms(key)[2];\r\n }\r\n function special(number) {\r\n return number % 10 === 0 || (number > 10 && number < 20);\r\n }\r\n function forms(key) {\r\n return units[key].split('_');\r\n }\r\n function translate(number, withoutSuffix, key, isFuture) {\r\n var result = number + ' ';\r\n if (number === 1) {\r\n return (\r\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\r\n );\r\n } else if (withoutSuffix) {\r\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\r\n } else {\r\n if (isFuture) {\r\n return result + forms(key)[1];\r\n } else {\r\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\r\n }\r\n }\r\n }\r\n var lt = moment.defineLocale('lt', {\r\n months: {\r\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\r\n '_'\r\n ),\r\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\r\n },\r\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\r\n weekdays: {\r\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\r\n '_'\r\n ),\r\n isFormat: /dddd HH:mm/,\r\n },\r\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\r\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY-MM-DD',\r\n LL: 'YYYY [m.] MMMM D [d.]',\r\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\r\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\r\n l: 'YYYY-MM-DD',\r\n ll: 'YYYY [m.] MMMM D [d.]',\r\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\r\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\r\n },\r\n calendar: {\r\n sameDay: '[Šiandien] LT',\r\n nextDay: '[Rytoj] LT',\r\n nextWeek: 'dddd LT',\r\n lastDay: '[Vakar] LT',\r\n lastWeek: '[Praėjusį] dddd LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'po %s',\r\n past: 'prieš %s',\r\n s: translateSeconds,\r\n ss: translate,\r\n m: translateSingular,\r\n mm: translate,\r\n h: translateSingular,\r\n hh: translate,\r\n d: translateSingular,\r\n dd: translate,\r\n M: translateSingular,\r\n MM: translate,\r\n y: translateSingular,\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\r\n ordinal: function (number) {\r\n return number + '-oji';\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return lt;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Latvian [lv]\r\n//! author : Kristaps Karlsons : https://github.com/skakri\r\n//! author : Jānis Elmeris : https://github.com/JanisE\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var units = {\r\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\r\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\r\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\r\n h: 'stundas_stundām_stunda_stundas'.split('_'),\r\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\r\n d: 'dienas_dienām_diena_dienas'.split('_'),\r\n dd: 'dienas_dienām_diena_dienas'.split('_'),\r\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\r\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\r\n y: 'gada_gadiem_gads_gadi'.split('_'),\r\n yy: 'gada_gadiem_gads_gadi'.split('_'),\r\n };\r\n /**\r\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\r\n */\r\n function format(forms, number, withoutSuffix) {\r\n if (withoutSuffix) {\r\n // E.g. \"21 minūte\", \"3 minūtes\".\r\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\r\n } else {\r\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\r\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\r\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\r\n }\r\n }\r\n function relativeTimeWithPlural(number, withoutSuffix, key) {\r\n return number + ' ' + format(units[key], number, withoutSuffix);\r\n }\r\n function relativeTimeWithSingular(number, withoutSuffix, key) {\r\n return format(units[key], number, withoutSuffix);\r\n }\r\n function relativeSeconds(number, withoutSuffix) {\r\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\r\n }\r\n\r\n var lv = moment.defineLocale('lv', {\r\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\r\n '_'\r\n ),\r\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\r\n weekdays:\r\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\r\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY.',\r\n LL: 'YYYY. [gada] D. MMMM',\r\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\r\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Šodien pulksten] LT',\r\n nextDay: '[Rīt pulksten] LT',\r\n nextWeek: 'dddd [pulksten] LT',\r\n lastDay: '[Vakar pulksten] LT',\r\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'pēc %s',\r\n past: 'pirms %s',\r\n s: relativeSeconds,\r\n ss: relativeTimeWithPlural,\r\n m: relativeTimeWithSingular,\r\n mm: relativeTimeWithPlural,\r\n h: relativeTimeWithSingular,\r\n hh: relativeTimeWithPlural,\r\n d: relativeTimeWithSingular,\r\n dd: relativeTimeWithPlural,\r\n M: relativeTimeWithSingular,\r\n MM: relativeTimeWithPlural,\r\n y: relativeTimeWithSingular,\r\n yy: relativeTimeWithPlural,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return lv;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Montenegrin [me]\r\n//! author : Miodrag Nikač : https://github.com/miodragnikac\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var translator = {\r\n words: {\r\n //Different grammatical cases\r\n ss: ['sekund', 'sekunda', 'sekundi'],\r\n m: ['jedan minut', 'jednog minuta'],\r\n mm: ['minut', 'minuta', 'minuta'],\r\n h: ['jedan sat', 'jednog sata'],\r\n hh: ['sat', 'sata', 'sati'],\r\n dd: ['dan', 'dana', 'dana'],\r\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\r\n yy: ['godina', 'godine', 'godina'],\r\n },\r\n correctGrammaticalCase: function (number, wordKey) {\r\n return number === 1\r\n ? wordKey[0]\r\n : number >= 2 && number <= 4\r\n ? wordKey[1]\r\n : wordKey[2];\r\n },\r\n translate: function (number, withoutSuffix, key) {\r\n var wordKey = translator.words[key];\r\n if (key.length === 1) {\r\n return withoutSuffix ? wordKey[0] : wordKey[1];\r\n } else {\r\n return (\r\n number +\r\n ' ' +\r\n translator.correctGrammaticalCase(number, wordKey)\r\n );\r\n }\r\n },\r\n };\r\n\r\n var me = moment.defineLocale('me', {\r\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\r\n monthsParseExact: true,\r\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\r\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY H:mm',\r\n LLLL: 'dddd, D. MMMM YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[danas u] LT',\r\n nextDay: '[sjutra u] LT',\r\n\r\n nextWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[u] [nedjelju] [u] LT';\r\n case 3:\r\n return '[u] [srijedu] [u] LT';\r\n case 6:\r\n return '[u] [subotu] [u] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[u] dddd [u] LT';\r\n }\r\n },\r\n lastDay: '[juče u] LT',\r\n lastWeek: function () {\r\n var lastWeekDays = [\r\n '[prošle] [nedjelje] [u] LT',\r\n '[prošlog] [ponedjeljka] [u] LT',\r\n '[prošlog] [utorka] [u] LT',\r\n '[prošle] [srijede] [u] LT',\r\n '[prošlog] [četvrtka] [u] LT',\r\n '[prošlog] [petka] [u] LT',\r\n '[prošle] [subote] [u] LT',\r\n ];\r\n return lastWeekDays[this.day()];\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'za %s',\r\n past: 'prije %s',\r\n s: 'nekoliko sekundi',\r\n ss: translator.translate,\r\n m: translator.translate,\r\n mm: translator.translate,\r\n h: translator.translate,\r\n hh: translator.translate,\r\n d: 'dan',\r\n dd: translator.translate,\r\n M: 'mjesec',\r\n MM: translator.translate,\r\n y: 'godinu',\r\n yy: translator.translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return me;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Maori [mi]\r\n//! author : John Corrigan : https://github.com/johnideal\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var mi = moment.defineLocale('mi', {\r\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\r\n '_'\r\n ),\r\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\r\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\r\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\r\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\r\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\r\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\r\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY [i] HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[i teie mahana, i] LT',\r\n nextDay: '[apopo i] LT',\r\n nextWeek: 'dddd [i] LT',\r\n lastDay: '[inanahi i] LT',\r\n lastWeek: 'dddd [whakamutunga i] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'i roto i %s',\r\n past: '%s i mua',\r\n s: 'te hēkona ruarua',\r\n ss: '%d hēkona',\r\n m: 'he meneti',\r\n mm: '%d meneti',\r\n h: 'te haora',\r\n hh: '%d haora',\r\n d: 'he ra',\r\n dd: '%d ra',\r\n M: 'he marama',\r\n MM: '%d marama',\r\n y: 'he tau',\r\n yy: '%d tau',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return mi;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Macedonian [mk]\r\n//! author : Borislav Mickov : https://github.com/B0k0\r\n//! author : Sashko Todorov : https://github.com/bkyceh\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var mk = moment.defineLocale('mk', {\r\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\r\n '_'\r\n ),\r\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\r\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\r\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'D.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY H:mm',\r\n LLLL: 'dddd, D MMMM YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Денес во] LT',\r\n nextDay: '[Утре во] LT',\r\n nextWeek: '[Во] dddd [во] LT',\r\n lastDay: '[Вчера во] LT',\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n case 3:\r\n case 6:\r\n return '[Изминатата] dddd [во] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[Изминатиот] dddd [во] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'за %s',\r\n past: 'пред %s',\r\n s: 'неколку секунди',\r\n ss: '%d секунди',\r\n m: 'една минута',\r\n mm: '%d минути',\r\n h: 'еден час',\r\n hh: '%d часа',\r\n d: 'еден ден',\r\n dd: '%d дена',\r\n M: 'еден месец',\r\n MM: '%d месеци',\r\n y: 'една година',\r\n yy: '%d години',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\r\n ordinal: function (number) {\r\n var lastDigit = number % 10,\r\n last2Digits = number % 100;\r\n if (number === 0) {\r\n return number + '-ев';\r\n } else if (last2Digits === 0) {\r\n return number + '-ен';\r\n } else if (last2Digits > 10 && last2Digits < 20) {\r\n return number + '-ти';\r\n } else if (lastDigit === 1) {\r\n return number + '-ви';\r\n } else if (lastDigit === 2) {\r\n return number + '-ри';\r\n } else if (lastDigit === 7 || lastDigit === 8) {\r\n return number + '-ми';\r\n } else {\r\n return number + '-ти';\r\n }\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return mk;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Malayalam [ml]\r\n//! author : Floyd Pink : https://github.com/floydpink\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var ml = moment.defineLocale('ml', {\r\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays:\r\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\r\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm -നു',\r\n LTS: 'A h:mm:ss -നു',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, A h:mm -നു',\r\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\r\n },\r\n calendar: {\r\n sameDay: '[ഇന്ന്] LT',\r\n nextDay: '[നാളെ] LT',\r\n nextWeek: 'dddd, LT',\r\n lastDay: '[ഇന്നലെ] LT',\r\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s കഴിഞ്ഞ്',\r\n past: '%s മുൻപ്',\r\n s: 'അൽപ നിമിഷങ്ങൾ',\r\n ss: '%d സെക്കൻഡ്',\r\n m: 'ഒരു മിനിറ്റ്',\r\n mm: '%d മിനിറ്റ്',\r\n h: 'ഒരു മണിക്കൂർ',\r\n hh: '%d മണിക്കൂർ',\r\n d: 'ഒരു ദിവസം',\r\n dd: '%d ദിവസം',\r\n M: 'ഒരു മാസം',\r\n MM: '%d മാസം',\r\n y: 'ഒരു വർഷം',\r\n yy: '%d വർഷം',\r\n },\r\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (\r\n (meridiem === 'രാത്രി' && hour >= 4) ||\r\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\r\n meridiem === 'വൈകുന്നേരം'\r\n ) {\r\n return hour + 12;\r\n } else {\r\n return hour;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'രാത്രി';\r\n } else if (hour < 12) {\r\n return 'രാവിലെ';\r\n } else if (hour < 17) {\r\n return 'ഉച്ച കഴിഞ്ഞ്';\r\n } else if (hour < 20) {\r\n return 'വൈകുന്നേരം';\r\n } else {\r\n return 'രാത്രി';\r\n }\r\n },\r\n });\r\n\r\n return ml;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Mongolian [mn]\r\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function translate(number, withoutSuffix, key, isFuture) {\r\n switch (key) {\r\n case 's':\r\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\r\n case 'ss':\r\n return number + (withoutSuffix ? ' секунд' : ' секундын');\r\n case 'm':\r\n case 'mm':\r\n return number + (withoutSuffix ? ' минут' : ' минутын');\r\n case 'h':\r\n case 'hh':\r\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\r\n case 'd':\r\n case 'dd':\r\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\r\n case 'M':\r\n case 'MM':\r\n return number + (withoutSuffix ? ' сар' : ' сарын');\r\n case 'y':\r\n case 'yy':\r\n return number + (withoutSuffix ? ' жил' : ' жилийн');\r\n default:\r\n return number;\r\n }\r\n }\r\n\r\n var mn = moment.defineLocale('mn', {\r\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\r\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\r\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY-MM-DD',\r\n LL: 'YYYY оны MMMMын D',\r\n LLL: 'YYYY оны MMMMын D HH:mm',\r\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\r\n },\r\n meridiemParse: /ҮӨ|ҮХ/i,\r\n isPM: function (input) {\r\n return input === 'ҮХ';\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'ҮӨ';\r\n } else {\r\n return 'ҮХ';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[Өнөөдөр] LT',\r\n nextDay: '[Маргааш] LT',\r\n nextWeek: '[Ирэх] dddd LT',\r\n lastDay: '[Өчигдөр] LT',\r\n lastWeek: '[Өнгөрсөн] dddd LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s дараа',\r\n past: '%s өмнө',\r\n s: translate,\r\n ss: translate,\r\n m: translate,\r\n mm: translate,\r\n h: translate,\r\n hh: translate,\r\n d: translate,\r\n dd: translate,\r\n M: translate,\r\n MM: translate,\r\n y: translate,\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'DDD':\r\n return number + ' өдөр';\r\n default:\r\n return number;\r\n }\r\n },\r\n });\r\n\r\n return mn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Marathi [mr]\r\n//! author : Harshad Kale : https://github.com/kalehv\r\n//! author : Vivek Athalye : https://github.com/vnathalye\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '१',\r\n 2: '२',\r\n 3: '३',\r\n 4: '४',\r\n 5: '५',\r\n 6: '६',\r\n 7: '७',\r\n 8: '८',\r\n 9: '९',\r\n 0: '०',\r\n },\r\n numberMap = {\r\n '१': '1',\r\n '२': '2',\r\n '३': '3',\r\n '४': '4',\r\n '५': '5',\r\n '६': '6',\r\n '७': '7',\r\n '८': '8',\r\n '९': '9',\r\n '०': '0',\r\n };\r\n\r\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\r\n var output = '';\r\n if (withoutSuffix) {\r\n switch (string) {\r\n case 's':\r\n output = 'काही सेकंद';\r\n break;\r\n case 'ss':\r\n output = '%d सेकंद';\r\n break;\r\n case 'm':\r\n output = 'एक मिनिट';\r\n break;\r\n case 'mm':\r\n output = '%d मिनिटे';\r\n break;\r\n case 'h':\r\n output = 'एक तास';\r\n break;\r\n case 'hh':\r\n output = '%d तास';\r\n break;\r\n case 'd':\r\n output = 'एक दिवस';\r\n break;\r\n case 'dd':\r\n output = '%d दिवस';\r\n break;\r\n case 'M':\r\n output = 'एक महिना';\r\n break;\r\n case 'MM':\r\n output = '%d महिने';\r\n break;\r\n case 'y':\r\n output = 'एक वर्ष';\r\n break;\r\n case 'yy':\r\n output = '%d वर्षे';\r\n break;\r\n }\r\n } else {\r\n switch (string) {\r\n case 's':\r\n output = 'काही सेकंदां';\r\n break;\r\n case 'ss':\r\n output = '%d सेकंदां';\r\n break;\r\n case 'm':\r\n output = 'एका मिनिटा';\r\n break;\r\n case 'mm':\r\n output = '%d मिनिटां';\r\n break;\r\n case 'h':\r\n output = 'एका तासा';\r\n break;\r\n case 'hh':\r\n output = '%d तासां';\r\n break;\r\n case 'd':\r\n output = 'एका दिवसा';\r\n break;\r\n case 'dd':\r\n output = '%d दिवसां';\r\n break;\r\n case 'M':\r\n output = 'एका महिन्या';\r\n break;\r\n case 'MM':\r\n output = '%d महिन्यां';\r\n break;\r\n case 'y':\r\n output = 'एका वर्षा';\r\n break;\r\n case 'yy':\r\n output = '%d वर्षां';\r\n break;\r\n }\r\n }\r\n return output.replace(/%d/i, number);\r\n }\r\n\r\n var mr = moment.defineLocale('mr', {\r\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\r\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\r\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm वाजता',\r\n LTS: 'A h:mm:ss वाजता',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, A h:mm वाजता',\r\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\r\n },\r\n calendar: {\r\n sameDay: '[आज] LT',\r\n nextDay: '[उद्या] LT',\r\n nextWeek: 'dddd, LT',\r\n lastDay: '[काल] LT',\r\n lastWeek: '[मागील] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%sमध्ये',\r\n past: '%sपूर्वी',\r\n s: relativeTimeMr,\r\n ss: relativeTimeMr,\r\n m: relativeTimeMr,\r\n mm: relativeTimeMr,\r\n h: relativeTimeMr,\r\n hh: relativeTimeMr,\r\n d: relativeTimeMr,\r\n dd: relativeTimeMr,\r\n M: relativeTimeMr,\r\n MM: relativeTimeMr,\r\n y: relativeTimeMr,\r\n yy: relativeTimeMr,\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\r\n return hour;\r\n } else if (\r\n meridiem === 'दुपारी' ||\r\n meridiem === 'सायंकाळी' ||\r\n meridiem === 'रात्री'\r\n ) {\r\n return hour >= 12 ? hour : hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour >= 0 && hour < 6) {\r\n return 'पहाटे';\r\n } else if (hour < 12) {\r\n return 'सकाळी';\r\n } else if (hour < 17) {\r\n return 'दुपारी';\r\n } else if (hour < 20) {\r\n return 'सायंकाळी';\r\n } else {\r\n return 'रात्री';\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return mr;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Malay [ms-my]\r\n//! note : DEPRECATED, the correct one is [ms]\r\n//! author : Weldan Jamili : https://github.com/weldan\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var msMy = moment.defineLocale('ms-my', {\r\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\r\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\r\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\r\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH.mm',\r\n LTS: 'HH.mm.ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY [pukul] HH.mm',\r\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\r\n },\r\n meridiemParse: /pagi|tengahari|petang|malam/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'pagi') {\r\n return hour;\r\n } else if (meridiem === 'tengahari') {\r\n return hour >= 11 ? hour : hour + 12;\r\n } else if (meridiem === 'petang' || meridiem === 'malam') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours < 11) {\r\n return 'pagi';\r\n } else if (hours < 15) {\r\n return 'tengahari';\r\n } else if (hours < 19) {\r\n return 'petang';\r\n } else {\r\n return 'malam';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[Hari ini pukul] LT',\r\n nextDay: '[Esok pukul] LT',\r\n nextWeek: 'dddd [pukul] LT',\r\n lastDay: '[Kelmarin pukul] LT',\r\n lastWeek: 'dddd [lepas pukul] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'dalam %s',\r\n past: '%s yang lepas',\r\n s: 'beberapa saat',\r\n ss: '%d saat',\r\n m: 'seminit',\r\n mm: '%d minit',\r\n h: 'sejam',\r\n hh: '%d jam',\r\n d: 'sehari',\r\n dd: '%d hari',\r\n M: 'sebulan',\r\n MM: '%d bulan',\r\n y: 'setahun',\r\n yy: '%d tahun',\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return msMy;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Malay [ms]\r\n//! author : Weldan Jamili : https://github.com/weldan\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var ms = moment.defineLocale('ms', {\r\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\r\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\r\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\r\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH.mm',\r\n LTS: 'HH.mm.ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY [pukul] HH.mm',\r\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\r\n },\r\n meridiemParse: /pagi|tengahari|petang|malam/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'pagi') {\r\n return hour;\r\n } else if (meridiem === 'tengahari') {\r\n return hour >= 11 ? hour : hour + 12;\r\n } else if (meridiem === 'petang' || meridiem === 'malam') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours < 11) {\r\n return 'pagi';\r\n } else if (hours < 15) {\r\n return 'tengahari';\r\n } else if (hours < 19) {\r\n return 'petang';\r\n } else {\r\n return 'malam';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[Hari ini pukul] LT',\r\n nextDay: '[Esok pukul] LT',\r\n nextWeek: 'dddd [pukul] LT',\r\n lastDay: '[Kelmarin pukul] LT',\r\n lastWeek: 'dddd [lepas pukul] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'dalam %s',\r\n past: '%s yang lepas',\r\n s: 'beberapa saat',\r\n ss: '%d saat',\r\n m: 'seminit',\r\n mm: '%d minit',\r\n h: 'sejam',\r\n hh: '%d jam',\r\n d: 'sehari',\r\n dd: '%d hari',\r\n M: 'sebulan',\r\n MM: '%d bulan',\r\n y: 'setahun',\r\n yy: '%d tahun',\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return ms;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Maltese (Malta) [mt]\r\n//! author : Alessandro Maruccia : https://github.com/alesma\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var mt = moment.defineLocale('mt', {\r\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\r\n weekdays:\r\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\r\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Illum fil-]LT',\r\n nextDay: '[Għada fil-]LT',\r\n nextWeek: 'dddd [fil-]LT',\r\n lastDay: '[Il-bieraħ fil-]LT',\r\n lastWeek: 'dddd [li għadda] [fil-]LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'f’ %s',\r\n past: '%s ilu',\r\n s: 'ftit sekondi',\r\n ss: '%d sekondi',\r\n m: 'minuta',\r\n mm: '%d minuti',\r\n h: 'siegħa',\r\n hh: '%d siegħat',\r\n d: 'ġurnata',\r\n dd: '%d ġranet',\r\n M: 'xahar',\r\n MM: '%d xhur',\r\n y: 'sena',\r\n yy: '%d sni',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return mt;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Burmese [my]\r\n//! author : Squar team, mysquar.com\r\n//! author : David Rossellat : https://github.com/gholadr\r\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '၁',\r\n 2: '၂',\r\n 3: '၃',\r\n 4: '၄',\r\n 5: '၅',\r\n 6: '၆',\r\n 7: '၇',\r\n 8: '၈',\r\n 9: '၉',\r\n 0: '၀',\r\n },\r\n numberMap = {\r\n '၁': '1',\r\n '၂': '2',\r\n '၃': '3',\r\n '၄': '4',\r\n '၅': '5',\r\n '၆': '6',\r\n '၇': '7',\r\n '၈': '8',\r\n '၉': '9',\r\n '၀': '0',\r\n };\r\n\r\n var my = moment.defineLocale('my', {\r\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\r\n '_'\r\n ),\r\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\r\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\r\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\r\n\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[ယနေ.] LT [မှာ]',\r\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\r\n nextWeek: 'dddd LT [မှာ]',\r\n lastDay: '[မနေ.က] LT [မှာ]',\r\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'လာမည့် %s မှာ',\r\n past: 'လွန်ခဲ့သော %s က',\r\n s: 'စက္ကန်.အနည်းငယ်',\r\n ss: '%d စက္ကန့်',\r\n m: 'တစ်မိနစ်',\r\n mm: '%d မိနစ်',\r\n h: 'တစ်နာရီ',\r\n hh: '%d နာရီ',\r\n d: 'တစ်ရက်',\r\n dd: '%d ရက်',\r\n M: 'တစ်လ',\r\n MM: '%d လ',\r\n y: 'တစ်နှစ်',\r\n yy: '%d နှစ်',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return my;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Norwegian Bokmål [nb]\r\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\r\n//! Sigurd Gartmann : https://github.com/sigurdga\r\n//! Stephen Ramthun : https://github.com/stephenramthun\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var nb = moment.defineLocale('nb', {\r\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\r\n monthsParseExact: true,\r\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\r\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\r\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\r\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[i dag kl.] LT',\r\n nextDay: '[i morgen kl.] LT',\r\n nextWeek: 'dddd [kl.] LT',\r\n lastDay: '[i går kl.] LT',\r\n lastWeek: '[forrige] dddd [kl.] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'om %s',\r\n past: '%s siden',\r\n s: 'noen sekunder',\r\n ss: '%d sekunder',\r\n m: 'ett minutt',\r\n mm: '%d minutter',\r\n h: 'én time',\r\n hh: '%d timer',\r\n d: 'én dag',\r\n dd: '%d dager',\r\n w: 'én uke',\r\n ww: '%d uker',\r\n M: 'én måned',\r\n MM: '%d måneder',\r\n y: 'ett år',\r\n yy: '%d år',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return nb;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Nepalese [ne]\r\n//! author : suvash : https://github.com/suvash\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '१',\r\n 2: '२',\r\n 3: '३',\r\n 4: '४',\r\n 5: '५',\r\n 6: '६',\r\n 7: '७',\r\n 8: '८',\r\n 9: '९',\r\n 0: '०',\r\n },\r\n numberMap = {\r\n '१': '1',\r\n '२': '2',\r\n '३': '3',\r\n '४': '4',\r\n '५': '5',\r\n '६': '6',\r\n '७': '7',\r\n '८': '8',\r\n '९': '9',\r\n '०': '0',\r\n };\r\n\r\n var ne = moment.defineLocale('ne', {\r\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\r\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'Aको h:mm बजे',\r\n LTS: 'Aको h:mm:ss बजे',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\r\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'राति') {\r\n return hour < 4 ? hour : hour + 12;\r\n } else if (meridiem === 'बिहान') {\r\n return hour;\r\n } else if (meridiem === 'दिउँसो') {\r\n return hour >= 10 ? hour : hour + 12;\r\n } else if (meridiem === 'साँझ') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 3) {\r\n return 'राति';\r\n } else if (hour < 12) {\r\n return 'बिहान';\r\n } else if (hour < 16) {\r\n return 'दिउँसो';\r\n } else if (hour < 20) {\r\n return 'साँझ';\r\n } else {\r\n return 'राति';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[आज] LT',\r\n nextDay: '[भोलि] LT',\r\n nextWeek: '[आउँदो] dddd[,] LT',\r\n lastDay: '[हिजो] LT',\r\n lastWeek: '[गएको] dddd[,] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%sमा',\r\n past: '%s अगाडि',\r\n s: 'केही क्षण',\r\n ss: '%d सेकेण्ड',\r\n m: 'एक मिनेट',\r\n mm: '%d मिनेट',\r\n h: 'एक घण्टा',\r\n hh: '%d घण्टा',\r\n d: 'एक दिन',\r\n dd: '%d दिन',\r\n M: 'एक महिना',\r\n MM: '%d महिना',\r\n y: 'एक बर्ष',\r\n yy: '%d बर्ष',\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return ne;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Dutch (Belgium) [nl-be]\r\n//! author : Joris Röling : https://github.com/jorisroling\r\n//! author : Jacob Middag : https://github.com/middagj\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var monthsShortWithDots =\r\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\r\n monthsShortWithoutDots =\r\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\r\n monthsParse = [\r\n /^jan/i,\r\n /^feb/i,\r\n /^(maart|mrt\\.?)$/i,\r\n /^apr/i,\r\n /^mei$/i,\r\n /^jun[i.]?$/i,\r\n /^jul[i.]?$/i,\r\n /^aug/i,\r\n /^sep/i,\r\n /^okt/i,\r\n /^nov/i,\r\n /^dec/i,\r\n ],\r\n monthsRegex =\r\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\r\n\r\n var nlBe = moment.defineLocale('nl-be', {\r\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\r\n '_'\r\n ),\r\n monthsShort: function (m, format) {\r\n if (!m) {\r\n return monthsShortWithDots;\r\n } else if (/-MMM-/.test(format)) {\r\n return monthsShortWithoutDots[m.month()];\r\n } else {\r\n return monthsShortWithDots[m.month()];\r\n }\r\n },\r\n\r\n monthsRegex: monthsRegex,\r\n monthsShortRegex: monthsRegex,\r\n monthsStrictRegex:\r\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\r\n monthsShortStrictRegex:\r\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\r\n\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n\r\n weekdays:\r\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\r\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\r\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[vandaag om] LT',\r\n nextDay: '[morgen om] LT',\r\n nextWeek: 'dddd [om] LT',\r\n lastDay: '[gisteren om] LT',\r\n lastWeek: '[afgelopen] dddd [om] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'over %s',\r\n past: '%s geleden',\r\n s: 'een paar seconden',\r\n ss: '%d seconden',\r\n m: 'één minuut',\r\n mm: '%d minuten',\r\n h: 'één uur',\r\n hh: '%d uur',\r\n d: 'één dag',\r\n dd: '%d dagen',\r\n M: 'één maand',\r\n MM: '%d maanden',\r\n y: 'één jaar',\r\n yy: '%d jaar',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\r\n ordinal: function (number) {\r\n return (\r\n number +\r\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\r\n );\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return nlBe;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Dutch [nl]\r\n//! author : Joris Röling : https://github.com/jorisroling\r\n//! author : Jacob Middag : https://github.com/middagj\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var monthsShortWithDots =\r\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\r\n monthsShortWithoutDots =\r\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\r\n monthsParse = [\r\n /^jan/i,\r\n /^feb/i,\r\n /^(maart|mrt\\.?)$/i,\r\n /^apr/i,\r\n /^mei$/i,\r\n /^jun[i.]?$/i,\r\n /^jul[i.]?$/i,\r\n /^aug/i,\r\n /^sep/i,\r\n /^okt/i,\r\n /^nov/i,\r\n /^dec/i,\r\n ],\r\n monthsRegex =\r\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\r\n\r\n var nl = moment.defineLocale('nl', {\r\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\r\n '_'\r\n ),\r\n monthsShort: function (m, format) {\r\n if (!m) {\r\n return monthsShortWithDots;\r\n } else if (/-MMM-/.test(format)) {\r\n return monthsShortWithoutDots[m.month()];\r\n } else {\r\n return monthsShortWithDots[m.month()];\r\n }\r\n },\r\n\r\n monthsRegex: monthsRegex,\r\n monthsShortRegex: monthsRegex,\r\n monthsStrictRegex:\r\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\r\n monthsShortStrictRegex:\r\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\r\n\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n\r\n weekdays:\r\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\r\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\r\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD-MM-YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[vandaag om] LT',\r\n nextDay: '[morgen om] LT',\r\n nextWeek: 'dddd [om] LT',\r\n lastDay: '[gisteren om] LT',\r\n lastWeek: '[afgelopen] dddd [om] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'over %s',\r\n past: '%s geleden',\r\n s: 'een paar seconden',\r\n ss: '%d seconden',\r\n m: 'één minuut',\r\n mm: '%d minuten',\r\n h: 'één uur',\r\n hh: '%d uur',\r\n d: 'één dag',\r\n dd: '%d dagen',\r\n w: 'één week',\r\n ww: '%d weken',\r\n M: 'één maand',\r\n MM: '%d maanden',\r\n y: 'één jaar',\r\n yy: '%d jaar',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\r\n ordinal: function (number) {\r\n return (\r\n number +\r\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\r\n );\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return nl;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Nynorsk [nn]\r\n//! authors : https://github.com/mechuwind\r\n//! Stephen Ramthun : https://github.com/stephenramthun\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var nn = moment.defineLocale('nn', {\r\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\r\n monthsParseExact: true,\r\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\r\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\r\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY [kl.] H:mm',\r\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[I dag klokka] LT',\r\n nextDay: '[I morgon klokka] LT',\r\n nextWeek: 'dddd [klokka] LT',\r\n lastDay: '[I går klokka] LT',\r\n lastWeek: '[Føregåande] dddd [klokka] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'om %s',\r\n past: '%s sidan',\r\n s: 'nokre sekund',\r\n ss: '%d sekund',\r\n m: 'eit minutt',\r\n mm: '%d minutt',\r\n h: 'ein time',\r\n hh: '%d timar',\r\n d: 'ein dag',\r\n dd: '%d dagar',\r\n w: 'ei veke',\r\n ww: '%d veker',\r\n M: 'ein månad',\r\n MM: '%d månader',\r\n y: 'eit år',\r\n yy: '%d år',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return nn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\r\n//! author : Quentin PAGÈS : https://github.com/Quenty31\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var ocLnc = moment.defineLocale('oc-lnc', {\r\n months: {\r\n standalone:\r\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\r\n '_'\r\n ),\r\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\r\n '_'\r\n ),\r\n isFormat: /D[oD]?(\\s)+MMMM/,\r\n },\r\n monthsShort:\r\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\r\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM [de] YYYY',\r\n ll: 'D MMM YYYY',\r\n LLL: 'D MMMM [de] YYYY [a] H:mm',\r\n lll: 'D MMM YYYY, H:mm',\r\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\r\n llll: 'ddd D MMM YYYY, H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[uèi a] LT',\r\n nextDay: '[deman a] LT',\r\n nextWeek: 'dddd [a] LT',\r\n lastDay: '[ièr a] LT',\r\n lastWeek: 'dddd [passat a] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: \"d'aquí %s\",\r\n past: 'fa %s',\r\n s: 'unas segondas',\r\n ss: '%d segondas',\r\n m: 'una minuta',\r\n mm: '%d minutas',\r\n h: 'una ora',\r\n hh: '%d oras',\r\n d: 'un jorn',\r\n dd: '%d jorns',\r\n M: 'un mes',\r\n MM: '%d meses',\r\n y: 'un an',\r\n yy: '%d ans',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\r\n ordinal: function (number, period) {\r\n var output =\r\n number === 1\r\n ? 'r'\r\n : number === 2\r\n ? 'n'\r\n : number === 3\r\n ? 'r'\r\n : number === 4\r\n ? 't'\r\n : 'è';\r\n if (period === 'w' || period === 'W') {\r\n output = 'a';\r\n }\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4,\r\n },\r\n });\r\n\r\n return ocLnc;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Punjabi (India) [pa-in]\r\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '੧',\r\n 2: '੨',\r\n 3: '੩',\r\n 4: '੪',\r\n 5: '੫',\r\n 6: '੬',\r\n 7: '੭',\r\n 8: '੮',\r\n 9: '੯',\r\n 0: '੦',\r\n },\r\n numberMap = {\r\n '੧': '1',\r\n '੨': '2',\r\n '੩': '3',\r\n '੪': '4',\r\n '੫': '5',\r\n '੬': '6',\r\n '੭': '7',\r\n '੮': '8',\r\n '੯': '9',\r\n '੦': '0',\r\n };\r\n\r\n var paIn = moment.defineLocale('pa-in', {\r\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\r\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\r\n '_'\r\n ),\r\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\r\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm ਵਜੇ',\r\n LTS: 'A h:mm:ss ਵਜੇ',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\r\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\r\n },\r\n calendar: {\r\n sameDay: '[ਅਜ] LT',\r\n nextDay: '[ਕਲ] LT',\r\n nextWeek: '[ਅਗਲਾ] dddd, LT',\r\n lastDay: '[ਕਲ] LT',\r\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s ਵਿੱਚ',\r\n past: '%s ਪਿਛਲੇ',\r\n s: 'ਕੁਝ ਸਕਿੰਟ',\r\n ss: '%d ਸਕਿੰਟ',\r\n m: 'ਇਕ ਮਿੰਟ',\r\n mm: '%d ਮਿੰਟ',\r\n h: 'ਇੱਕ ਘੰਟਾ',\r\n hh: '%d ਘੰਟੇ',\r\n d: 'ਇੱਕ ਦਿਨ',\r\n dd: '%d ਦਿਨ',\r\n M: 'ਇੱਕ ਮਹੀਨਾ',\r\n MM: '%d ਮਹੀਨੇ',\r\n y: 'ਇੱਕ ਸਾਲ',\r\n yy: '%d ਸਾਲ',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\r\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\r\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'ਰਾਤ') {\r\n return hour < 4 ? hour : hour + 12;\r\n } else if (meridiem === 'ਸਵੇਰ') {\r\n return hour;\r\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\r\n return hour >= 10 ? hour : hour + 12;\r\n } else if (meridiem === 'ਸ਼ਾਮ') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'ਰਾਤ';\r\n } else if (hour < 10) {\r\n return 'ਸਵੇਰ';\r\n } else if (hour < 17) {\r\n return 'ਦੁਪਹਿਰ';\r\n } else if (hour < 20) {\r\n return 'ਸ਼ਾਮ';\r\n } else {\r\n return 'ਰਾਤ';\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return paIn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Polish [pl]\r\n//! author : Rafal Hirsz : https://github.com/evoL\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var monthsNominative =\r\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\r\n '_'\r\n ),\r\n monthsSubjective =\r\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\r\n '_'\r\n ),\r\n monthsParse = [\r\n /^sty/i,\r\n /^lut/i,\r\n /^mar/i,\r\n /^kwi/i,\r\n /^maj/i,\r\n /^cze/i,\r\n /^lip/i,\r\n /^sie/i,\r\n /^wrz/i,\r\n /^paź/i,\r\n /^lis/i,\r\n /^gru/i,\r\n ];\r\n function plural(n) {\r\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\r\n }\r\n function translate(number, withoutSuffix, key) {\r\n var result = number + ' ';\r\n switch (key) {\r\n case 'ss':\r\n return result + (plural(number) ? 'sekundy' : 'sekund');\r\n case 'm':\r\n return withoutSuffix ? 'minuta' : 'minutę';\r\n case 'mm':\r\n return result + (plural(number) ? 'minuty' : 'minut');\r\n case 'h':\r\n return withoutSuffix ? 'godzina' : 'godzinę';\r\n case 'hh':\r\n return result + (plural(number) ? 'godziny' : 'godzin');\r\n case 'ww':\r\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\r\n case 'MM':\r\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\r\n case 'yy':\r\n return result + (plural(number) ? 'lata' : 'lat');\r\n }\r\n }\r\n\r\n var pl = moment.defineLocale('pl', {\r\n months: function (momentToFormat, format) {\r\n if (!momentToFormat) {\r\n return monthsNominative;\r\n } else if (/D MMMM/.test(format)) {\r\n return monthsSubjective[momentToFormat.month()];\r\n } else {\r\n return monthsNominative[momentToFormat.month()];\r\n }\r\n },\r\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n weekdays:\r\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\r\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\r\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Dziś o] LT',\r\n nextDay: '[Jutro o] LT',\r\n nextWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[W niedzielę o] LT';\r\n\r\n case 2:\r\n return '[We wtorek o] LT';\r\n\r\n case 3:\r\n return '[W środę o] LT';\r\n\r\n case 6:\r\n return '[W sobotę o] LT';\r\n\r\n default:\r\n return '[W] dddd [o] LT';\r\n }\r\n },\r\n lastDay: '[Wczoraj o] LT',\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[W zeszłą niedzielę o] LT';\r\n case 3:\r\n return '[W zeszłą środę o] LT';\r\n case 6:\r\n return '[W zeszłą sobotę o] LT';\r\n default:\r\n return '[W zeszły] dddd [o] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'za %s',\r\n past: '%s temu',\r\n s: 'kilka sekund',\r\n ss: translate,\r\n m: translate,\r\n mm: translate,\r\n h: translate,\r\n hh: translate,\r\n d: '1 dzień',\r\n dd: '%d dni',\r\n w: 'tydzień',\r\n ww: translate,\r\n M: 'miesiąc',\r\n MM: translate,\r\n y: 'rok',\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return pl;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Portuguese (Brazil) [pt-br]\r\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var ptBr = moment.defineLocale('pt-br', {\r\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\r\n '_'\r\n ),\r\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\r\n weekdays:\r\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\r\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D [de] MMMM [de] YYYY',\r\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\r\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Hoje às] LT',\r\n nextDay: '[Amanhã às] LT',\r\n nextWeek: 'dddd [às] LT',\r\n lastDay: '[Ontem às] LT',\r\n lastWeek: function () {\r\n return this.day() === 0 || this.day() === 6\r\n ? '[Último] dddd [às] LT' // Saturday + Sunday\r\n : '[Última] dddd [às] LT'; // Monday - Friday\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'em %s',\r\n past: 'há %s',\r\n s: 'poucos segundos',\r\n ss: '%d segundos',\r\n m: 'um minuto',\r\n mm: '%d minutos',\r\n h: 'uma hora',\r\n hh: '%d horas',\r\n d: 'um dia',\r\n dd: '%d dias',\r\n M: 'um mês',\r\n MM: '%d meses',\r\n y: 'um ano',\r\n yy: '%d anos',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n invalidDate: 'Data inválida',\r\n });\r\n\r\n return ptBr;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Portuguese [pt]\r\n//! author : Jefferson : https://github.com/jalex79\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var pt = moment.defineLocale('pt', {\r\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\r\n '_'\r\n ),\r\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\r\n weekdays:\r\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\r\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D [de] MMMM [de] YYYY',\r\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\r\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Hoje às] LT',\r\n nextDay: '[Amanhã às] LT',\r\n nextWeek: 'dddd [às] LT',\r\n lastDay: '[Ontem às] LT',\r\n lastWeek: function () {\r\n return this.day() === 0 || this.day() === 6\r\n ? '[Último] dddd [às] LT' // Saturday + Sunday\r\n : '[Última] dddd [às] LT'; // Monday - Friday\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'em %s',\r\n past: 'há %s',\r\n s: 'segundos',\r\n ss: '%d segundos',\r\n m: 'um minuto',\r\n mm: '%d minutos',\r\n h: 'uma hora',\r\n hh: '%d horas',\r\n d: 'um dia',\r\n dd: '%d dias',\r\n w: 'uma semana',\r\n ww: '%d semanas',\r\n M: 'um mês',\r\n MM: '%d meses',\r\n y: 'um ano',\r\n yy: '%d anos',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: '%dº',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return pt;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Romanian [ro]\r\n//! author : Vlad Gurdiga : https://github.com/gurdiga\r\n//! author : Valentin Agachi : https://github.com/avaly\r\n//! author : Emanuel Cepoi : https://github.com/cepem\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function relativeTimeWithPlural(number, withoutSuffix, key) {\r\n var format = {\r\n ss: 'secunde',\r\n mm: 'minute',\r\n hh: 'ore',\r\n dd: 'zile',\r\n ww: 'săptămâni',\r\n MM: 'luni',\r\n yy: 'ani',\r\n },\r\n separator = ' ';\r\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\r\n separator = ' de ';\r\n }\r\n return number + separator + format[key];\r\n }\r\n\r\n var ro = moment.defineLocale('ro', {\r\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\r\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\r\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY H:mm',\r\n LLLL: 'dddd, D MMMM YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[azi la] LT',\r\n nextDay: '[mâine la] LT',\r\n nextWeek: 'dddd [la] LT',\r\n lastDay: '[ieri la] LT',\r\n lastWeek: '[fosta] dddd [la] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'peste %s',\r\n past: '%s în urmă',\r\n s: 'câteva secunde',\r\n ss: relativeTimeWithPlural,\r\n m: 'un minut',\r\n mm: relativeTimeWithPlural,\r\n h: 'o oră',\r\n hh: relativeTimeWithPlural,\r\n d: 'o zi',\r\n dd: relativeTimeWithPlural,\r\n w: 'o săptămână',\r\n ww: relativeTimeWithPlural,\r\n M: 'o lună',\r\n MM: relativeTimeWithPlural,\r\n y: 'un an',\r\n yy: relativeTimeWithPlural,\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return ro;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Russian [ru]\r\n//! author : Viktorminator : https://github.com/Viktorminator\r\n//! author : Menelion Elensúle : https://github.com/Oire\r\n//! author : Коренберг Марк : https://github.com/socketpair\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function plural(word, num) {\r\n var forms = word.split('_');\r\n return num % 10 === 1 && num % 100 !== 11\r\n ? forms[0]\r\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\r\n ? forms[1]\r\n : forms[2];\r\n }\r\n function relativeTimeWithPlural(number, withoutSuffix, key) {\r\n var format = {\r\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\r\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\r\n hh: 'час_часа_часов',\r\n dd: 'день_дня_дней',\r\n ww: 'неделя_недели_недель',\r\n MM: 'месяц_месяца_месяцев',\r\n yy: 'год_года_лет',\r\n };\r\n if (key === 'm') {\r\n return withoutSuffix ? 'минута' : 'минуту';\r\n } else {\r\n return number + ' ' + plural(format[key], +number);\r\n }\r\n }\r\n var monthsParse = [\r\n /^янв/i,\r\n /^фев/i,\r\n /^мар/i,\r\n /^апр/i,\r\n /^ма[йя]/i,\r\n /^июн/i,\r\n /^июл/i,\r\n /^авг/i,\r\n /^сен/i,\r\n /^окт/i,\r\n /^ноя/i,\r\n /^дек/i,\r\n ];\r\n\r\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\r\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\r\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\r\n var ru = moment.defineLocale('ru', {\r\n months: {\r\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\r\n '_'\r\n ),\r\n },\r\n monthsShort: {\r\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\r\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\r\n '_'\r\n ),\r\n },\r\n weekdays: {\r\n standalone:\r\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\r\n '_'\r\n ),\r\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\r\n '_'\r\n ),\r\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\r\n },\r\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\r\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\r\n monthsParse: monthsParse,\r\n longMonthsParse: monthsParse,\r\n shortMonthsParse: monthsParse,\r\n\r\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\r\n monthsRegex:\r\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\r\n\r\n // копия предыдущего\r\n monthsShortRegex:\r\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\r\n\r\n // полные названия с падежами\r\n monthsStrictRegex:\r\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\r\n\r\n // Выражение, которое соответствует только сокращённым формам\r\n monthsShortStrictRegex:\r\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY г.',\r\n LLL: 'D MMMM YYYY г., H:mm',\r\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Сегодня, в] LT',\r\n nextDay: '[Завтра, в] LT',\r\n lastDay: '[Вчера, в] LT',\r\n nextWeek: function (now) {\r\n if (now.week() !== this.week()) {\r\n switch (this.day()) {\r\n case 0:\r\n return '[В следующее] dddd, [в] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n return '[В следующий] dddd, [в] LT';\r\n case 3:\r\n case 5:\r\n case 6:\r\n return '[В следующую] dddd, [в] LT';\r\n }\r\n } else {\r\n if (this.day() === 2) {\r\n return '[Во] dddd, [в] LT';\r\n } else {\r\n return '[В] dddd, [в] LT';\r\n }\r\n }\r\n },\r\n lastWeek: function (now) {\r\n if (now.week() !== this.week()) {\r\n switch (this.day()) {\r\n case 0:\r\n return '[В прошлое] dddd, [в] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n return '[В прошлый] dddd, [в] LT';\r\n case 3:\r\n case 5:\r\n case 6:\r\n return '[В прошлую] dddd, [в] LT';\r\n }\r\n } else {\r\n if (this.day() === 2) {\r\n return '[Во] dddd, [в] LT';\r\n } else {\r\n return '[В] dddd, [в] LT';\r\n }\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'через %s',\r\n past: '%s назад',\r\n s: 'несколько секунд',\r\n ss: relativeTimeWithPlural,\r\n m: relativeTimeWithPlural,\r\n mm: relativeTimeWithPlural,\r\n h: 'час',\r\n hh: relativeTimeWithPlural,\r\n d: 'день',\r\n dd: relativeTimeWithPlural,\r\n w: 'неделя',\r\n ww: relativeTimeWithPlural,\r\n M: 'месяц',\r\n MM: relativeTimeWithPlural,\r\n y: 'год',\r\n yy: relativeTimeWithPlural,\r\n },\r\n meridiemParse: /ночи|утра|дня|вечера/i,\r\n isPM: function (input) {\r\n return /^(дня|вечера)$/.test(input);\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'ночи';\r\n } else if (hour < 12) {\r\n return 'утра';\r\n } else if (hour < 17) {\r\n return 'дня';\r\n } else {\r\n return 'вечера';\r\n }\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'M':\r\n case 'd':\r\n case 'DDD':\r\n return number + '-й';\r\n case 'D':\r\n return number + '-го';\r\n case 'w':\r\n case 'W':\r\n return number + '-я';\r\n default:\r\n return number;\r\n }\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return ru;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Sindhi [sd]\r\n//! author : Narain Sagar : https://github.com/narainsagar\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var months = [\r\n 'جنوري',\r\n 'فيبروري',\r\n 'مارچ',\r\n 'اپريل',\r\n 'مئي',\r\n 'جون',\r\n 'جولاءِ',\r\n 'آگسٽ',\r\n 'سيپٽمبر',\r\n 'آڪٽوبر',\r\n 'نومبر',\r\n 'ڊسمبر',\r\n ],\r\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\r\n\r\n var sd = moment.defineLocale('sd', {\r\n months: months,\r\n monthsShort: months,\r\n weekdays: days,\r\n weekdaysShort: days,\r\n weekdaysMin: days,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd، D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /صبح|شام/,\r\n isPM: function (input) {\r\n return 'شام' === input;\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'صبح';\r\n }\r\n return 'شام';\r\n },\r\n calendar: {\r\n sameDay: '[اڄ] LT',\r\n nextDay: '[سڀاڻي] LT',\r\n nextWeek: 'dddd [اڳين هفتي تي] LT',\r\n lastDay: '[ڪالهه] LT',\r\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s پوء',\r\n past: '%s اڳ',\r\n s: 'چند سيڪنڊ',\r\n ss: '%d سيڪنڊ',\r\n m: 'هڪ منٽ',\r\n mm: '%d منٽ',\r\n h: 'هڪ ڪلاڪ',\r\n hh: '%d ڪلاڪ',\r\n d: 'هڪ ڏينهن',\r\n dd: '%d ڏينهن',\r\n M: 'هڪ مهينو',\r\n MM: '%d مهينا',\r\n y: 'هڪ سال',\r\n yy: '%d سال',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/،/g, ',');\r\n },\r\n postformat: function (string) {\r\n return string.replace(/,/g, '،');\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return sd;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Northern Sami [se]\r\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var se = moment.defineLocale('se', {\r\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\r\n weekdays:\r\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\r\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'MMMM D. [b.] YYYY',\r\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\r\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[otne ti] LT',\r\n nextDay: '[ihttin ti] LT',\r\n nextWeek: 'dddd [ti] LT',\r\n lastDay: '[ikte ti] LT',\r\n lastWeek: '[ovddit] dddd [ti] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s geažes',\r\n past: 'maŋit %s',\r\n s: 'moadde sekunddat',\r\n ss: '%d sekunddat',\r\n m: 'okta minuhta',\r\n mm: '%d minuhtat',\r\n h: 'okta diimmu',\r\n hh: '%d diimmut',\r\n d: 'okta beaivi',\r\n dd: '%d beaivvit',\r\n M: 'okta mánnu',\r\n MM: '%d mánut',\r\n y: 'okta jahki',\r\n yy: '%d jagit',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return se;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Sinhalese [si]\r\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n /*jshint -W100*/\r\n var si = moment.defineLocale('si', {\r\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\r\n '_'\r\n ),\r\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\r\n '_'\r\n ),\r\n weekdays:\r\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\r\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'a h:mm',\r\n LTS: 'a h:mm:ss',\r\n L: 'YYYY/MM/DD',\r\n LL: 'YYYY MMMM D',\r\n LLL: 'YYYY MMMM D, a h:mm',\r\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\r\n },\r\n calendar: {\r\n sameDay: '[අද] LT[ට]',\r\n nextDay: '[හෙට] LT[ට]',\r\n nextWeek: 'dddd LT[ට]',\r\n lastDay: '[ඊයේ] LT[ට]',\r\n lastWeek: '[පසුගිය] dddd LT[ට]',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%sකින්',\r\n past: '%sකට පෙර',\r\n s: 'තත්පර කිහිපය',\r\n ss: 'තත්පර %d',\r\n m: 'මිනිත්තුව',\r\n mm: 'මිනිත්තු %d',\r\n h: 'පැය',\r\n hh: 'පැය %d',\r\n d: 'දිනය',\r\n dd: 'දින %d',\r\n M: 'මාසය',\r\n MM: 'මාස %d',\r\n y: 'වසර',\r\n yy: 'වසර %d',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\r\n ordinal: function (number) {\r\n return number + ' වැනි';\r\n },\r\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\r\n isPM: function (input) {\r\n return input === 'ප.ව.' || input === 'පස් වරු';\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours > 11) {\r\n return isLower ? 'ප.ව.' : 'පස් වරු';\r\n } else {\r\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\r\n }\r\n },\r\n });\r\n\r\n return si;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Slovak [sk]\r\n//! author : Martin Minka : https://github.com/k2s\r\n//! based on work of petrbela : https://github.com/petrbela\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var months =\r\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\r\n '_'\r\n ),\r\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\r\n function plural(n) {\r\n return n > 1 && n < 5;\r\n }\r\n function translate(number, withoutSuffix, key, isFuture) {\r\n var result = number + ' ';\r\n switch (key) {\r\n case 's': // a few seconds / in a few seconds / a few seconds ago\r\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\r\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\r\n } else {\r\n return result + 'sekundami';\r\n }\r\n case 'm': // a minute / in a minute / a minute ago\r\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\r\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'minúty' : 'minút');\r\n } else {\r\n return result + 'minútami';\r\n }\r\n case 'h': // an hour / in an hour / an hour ago\r\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\r\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'hodiny' : 'hodín');\r\n } else {\r\n return result + 'hodinami';\r\n }\r\n case 'd': // a day / in a day / a day ago\r\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\r\n case 'dd': // 9 days / in 9 days / 9 days ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'dni' : 'dní');\r\n } else {\r\n return result + 'dňami';\r\n }\r\n case 'M': // a month / in a month / a month ago\r\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\r\n case 'MM': // 9 months / in 9 months / 9 months ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\r\n } else {\r\n return result + 'mesiacmi';\r\n }\r\n case 'y': // a year / in a year / a year ago\r\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\r\n case 'yy': // 9 years / in 9 years / 9 years ago\r\n if (withoutSuffix || isFuture) {\r\n return result + (plural(number) ? 'roky' : 'rokov');\r\n } else {\r\n return result + 'rokmi';\r\n }\r\n }\r\n }\r\n\r\n var sk = moment.defineLocale('sk', {\r\n months: months,\r\n monthsShort: monthsShort,\r\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\r\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\r\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY H:mm',\r\n LLLL: 'dddd D. MMMM YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[dnes o] LT',\r\n nextDay: '[zajtra o] LT',\r\n nextWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[v nedeľu o] LT';\r\n case 1:\r\n case 2:\r\n return '[v] dddd [o] LT';\r\n case 3:\r\n return '[v stredu o] LT';\r\n case 4:\r\n return '[vo štvrtok o] LT';\r\n case 5:\r\n return '[v piatok o] LT';\r\n case 6:\r\n return '[v sobotu o] LT';\r\n }\r\n },\r\n lastDay: '[včera o] LT',\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[minulú nedeľu o] LT';\r\n case 1:\r\n case 2:\r\n return '[minulý] dddd [o] LT';\r\n case 3:\r\n return '[minulú stredu o] LT';\r\n case 4:\r\n case 5:\r\n return '[minulý] dddd [o] LT';\r\n case 6:\r\n return '[minulú sobotu o] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'za %s',\r\n past: 'pred %s',\r\n s: translate,\r\n ss: translate,\r\n m: translate,\r\n mm: translate,\r\n h: translate,\r\n hh: translate,\r\n d: translate,\r\n dd: translate,\r\n M: translate,\r\n MM: translate,\r\n y: translate,\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return sk;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Slovenian [sl]\r\n//! author : Robert Sedovšek : https://github.com/sedovsek\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\r\n var result = number + ' ';\r\n switch (key) {\r\n case 's':\r\n return withoutSuffix || isFuture\r\n ? 'nekaj sekund'\r\n : 'nekaj sekundami';\r\n case 'ss':\r\n if (number === 1) {\r\n result += withoutSuffix ? 'sekundo' : 'sekundi';\r\n } else if (number === 2) {\r\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\r\n } else if (number < 5) {\r\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\r\n } else {\r\n result += 'sekund';\r\n }\r\n return result;\r\n case 'm':\r\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\r\n case 'mm':\r\n if (number === 1) {\r\n result += withoutSuffix ? 'minuta' : 'minuto';\r\n } else if (number === 2) {\r\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\r\n } else if (number < 5) {\r\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\r\n } else {\r\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\r\n }\r\n return result;\r\n case 'h':\r\n return withoutSuffix ? 'ena ura' : 'eno uro';\r\n case 'hh':\r\n if (number === 1) {\r\n result += withoutSuffix ? 'ura' : 'uro';\r\n } else if (number === 2) {\r\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\r\n } else if (number < 5) {\r\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\r\n } else {\r\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\r\n }\r\n return result;\r\n case 'd':\r\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\r\n case 'dd':\r\n if (number === 1) {\r\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\r\n } else if (number === 2) {\r\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\r\n } else {\r\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\r\n }\r\n return result;\r\n case 'M':\r\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\r\n case 'MM':\r\n if (number === 1) {\r\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\r\n } else if (number === 2) {\r\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\r\n } else if (number < 5) {\r\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\r\n } else {\r\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\r\n }\r\n return result;\r\n case 'y':\r\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\r\n case 'yy':\r\n if (number === 1) {\r\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\r\n } else if (number === 2) {\r\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\r\n } else if (number < 5) {\r\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\r\n } else {\r\n result += withoutSuffix || isFuture ? 'let' : 'leti';\r\n }\r\n return result;\r\n }\r\n }\r\n\r\n var sl = moment.defineLocale('sl', {\r\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\r\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\r\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD. MM. YYYY',\r\n LL: 'D. MMMM YYYY',\r\n LLL: 'D. MMMM YYYY H:mm',\r\n LLLL: 'dddd, D. MMMM YYYY H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[danes ob] LT',\r\n nextDay: '[jutri ob] LT',\r\n\r\n nextWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[v] [nedeljo] [ob] LT';\r\n case 3:\r\n return '[v] [sredo] [ob] LT';\r\n case 6:\r\n return '[v] [soboto] [ob] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[v] dddd [ob] LT';\r\n }\r\n },\r\n lastDay: '[včeraj ob] LT',\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[prejšnjo] [nedeljo] [ob] LT';\r\n case 3:\r\n return '[prejšnjo] [sredo] [ob] LT';\r\n case 6:\r\n return '[prejšnjo] [soboto] [ob] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[prejšnji] dddd [ob] LT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'čez %s',\r\n past: 'pred %s',\r\n s: processRelativeTime,\r\n ss: processRelativeTime,\r\n m: processRelativeTime,\r\n mm: processRelativeTime,\r\n h: processRelativeTime,\r\n hh: processRelativeTime,\r\n d: processRelativeTime,\r\n dd: processRelativeTime,\r\n M: processRelativeTime,\r\n MM: processRelativeTime,\r\n y: processRelativeTime,\r\n yy: processRelativeTime,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return sl;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Albanian [sq]\r\n//! author : Flakërim Ismani : https://github.com/flakerimi\r\n//! author : Menelion Elensúle : https://github.com/Oire\r\n//! author : Oerd Cukalla : https://github.com/oerd\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var sq = moment.defineLocale('sq', {\r\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\r\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\r\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\r\n weekdaysParseExact: true,\r\n meridiemParse: /PD|MD/,\r\n isPM: function (input) {\r\n return input.charAt(0) === 'M';\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n return hours < 12 ? 'PD' : 'MD';\r\n },\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Sot në] LT',\r\n nextDay: '[Nesër në] LT',\r\n nextWeek: 'dddd [në] LT',\r\n lastDay: '[Dje në] LT',\r\n lastWeek: 'dddd [e kaluar në] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'në %s',\r\n past: '%s më parë',\r\n s: 'disa sekonda',\r\n ss: '%d sekonda',\r\n m: 'një minutë',\r\n mm: '%d minuta',\r\n h: 'një orë',\r\n hh: '%d orë',\r\n d: 'një ditë',\r\n dd: '%d ditë',\r\n M: 'një muaj',\r\n MM: '%d muaj',\r\n y: 'një vit',\r\n yy: '%d vite',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return sq;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Serbian Cyrillic [sr-cyrl]\r\n//! author : Milan Janačković : https://github.com/milan-j\r\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var translator = {\r\n words: {\r\n //Different grammatical cases\r\n ss: ['секунда', 'секунде', 'секунди'],\r\n m: ['један минут', 'једног минута'],\r\n mm: ['минут', 'минута', 'минута'],\r\n h: ['један сат', 'једног сата'],\r\n hh: ['сат', 'сата', 'сати'],\r\n d: ['један дан', 'једног дана'],\r\n dd: ['дан', 'дана', 'дана'],\r\n M: ['један месец', 'једног месеца'],\r\n MM: ['месец', 'месеца', 'месеци'],\r\n y: ['једну годину', 'једне године'],\r\n yy: ['годину', 'године', 'година'],\r\n },\r\n correctGrammaticalCase: function (number, wordKey) {\r\n if (\r\n number % 10 >= 1 &&\r\n number % 10 <= 4 &&\r\n (number % 100 < 10 || number % 100 >= 20)\r\n ) {\r\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\r\n }\r\n return wordKey[2];\r\n },\r\n translate: function (number, withoutSuffix, key, isFuture) {\r\n var wordKey = translator.words[key],\r\n word;\r\n\r\n if (key.length === 1) {\r\n // Nominativ\r\n if (key === 'y' && withoutSuffix) return 'једна година';\r\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\r\n }\r\n\r\n word = translator.correctGrammaticalCase(number, wordKey);\r\n // Nominativ\r\n if (key === 'yy' && withoutSuffix && word === 'годину') {\r\n return number + ' година';\r\n }\r\n\r\n return number + ' ' + word;\r\n },\r\n };\r\n\r\n var srCyrl = moment.defineLocale('sr-cyrl', {\r\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\r\n monthsParseExact: true,\r\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\r\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\r\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'D. M. YYYY.',\r\n LL: 'D. MMMM YYYY.',\r\n LLL: 'D. MMMM YYYY. H:mm',\r\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[данас у] LT',\r\n nextDay: '[сутра у] LT',\r\n nextWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[у] [недељу] [у] LT';\r\n case 3:\r\n return '[у] [среду] [у] LT';\r\n case 6:\r\n return '[у] [суботу] [у] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[у] dddd [у] LT';\r\n }\r\n },\r\n lastDay: '[јуче у] LT',\r\n lastWeek: function () {\r\n var lastWeekDays = [\r\n '[прошле] [недеље] [у] LT',\r\n '[прошлог] [понедељка] [у] LT',\r\n '[прошлог] [уторка] [у] LT',\r\n '[прошле] [среде] [у] LT',\r\n '[прошлог] [четвртка] [у] LT',\r\n '[прошлог] [петка] [у] LT',\r\n '[прошле] [суботе] [у] LT',\r\n ];\r\n return lastWeekDays[this.day()];\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'за %s',\r\n past: 'пре %s',\r\n s: 'неколико секунди',\r\n ss: translator.translate,\r\n m: translator.translate,\r\n mm: translator.translate,\r\n h: translator.translate,\r\n hh: translator.translate,\r\n d: translator.translate,\r\n dd: translator.translate,\r\n M: translator.translate,\r\n MM: translator.translate,\r\n y: translator.translate,\r\n yy: translator.translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 1st is the first week of the year.\r\n },\r\n });\r\n\r\n return srCyrl;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Serbian [sr]\r\n//! author : Milan Janačković : https://github.com/milan-j\r\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var translator = {\r\n words: {\r\n //Different grammatical cases\r\n ss: ['sekunda', 'sekunde', 'sekundi'],\r\n m: ['jedan minut', 'jednog minuta'],\r\n mm: ['minut', 'minuta', 'minuta'],\r\n h: ['jedan sat', 'jednog sata'],\r\n hh: ['sat', 'sata', 'sati'],\r\n d: ['jedan dan', 'jednog dana'],\r\n dd: ['dan', 'dana', 'dana'],\r\n M: ['jedan mesec', 'jednog meseca'],\r\n MM: ['mesec', 'meseca', 'meseci'],\r\n y: ['jednu godinu', 'jedne godine'],\r\n yy: ['godinu', 'godine', 'godina'],\r\n },\r\n correctGrammaticalCase: function (number, wordKey) {\r\n if (\r\n number % 10 >= 1 &&\r\n number % 10 <= 4 &&\r\n (number % 100 < 10 || number % 100 >= 20)\r\n ) {\r\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\r\n }\r\n return wordKey[2];\r\n },\r\n translate: function (number, withoutSuffix, key, isFuture) {\r\n var wordKey = translator.words[key],\r\n word;\r\n\r\n if (key.length === 1) {\r\n // Nominativ\r\n if (key === 'y' && withoutSuffix) return 'jedna godina';\r\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\r\n }\r\n\r\n word = translator.correctGrammaticalCase(number, wordKey);\r\n // Nominativ\r\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\r\n return number + ' godina';\r\n }\r\n\r\n return number + ' ' + word;\r\n },\r\n };\r\n\r\n var sr = moment.defineLocale('sr', {\r\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\r\n monthsParseExact: true,\r\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\r\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'D. M. YYYY.',\r\n LL: 'D. MMMM YYYY.',\r\n LLL: 'D. MMMM YYYY. H:mm',\r\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\r\n },\r\n calendar: {\r\n sameDay: '[danas u] LT',\r\n nextDay: '[sutra u] LT',\r\n nextWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n return '[u] [nedelju] [u] LT';\r\n case 3:\r\n return '[u] [sredu] [u] LT';\r\n case 6:\r\n return '[u] [subotu] [u] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n case 5:\r\n return '[u] dddd [u] LT';\r\n }\r\n },\r\n lastDay: '[juče u] LT',\r\n lastWeek: function () {\r\n var lastWeekDays = [\r\n '[prošle] [nedelje] [u] LT',\r\n '[prošlog] [ponedeljka] [u] LT',\r\n '[prošlog] [utorka] [u] LT',\r\n '[prošle] [srede] [u] LT',\r\n '[prošlog] [četvrtka] [u] LT',\r\n '[prošlog] [petka] [u] LT',\r\n '[prošle] [subote] [u] LT',\r\n ];\r\n return lastWeekDays[this.day()];\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'za %s',\r\n past: 'pre %s',\r\n s: 'nekoliko sekundi',\r\n ss: translator.translate,\r\n m: translator.translate,\r\n mm: translator.translate,\r\n h: translator.translate,\r\n hh: translator.translate,\r\n d: translator.translate,\r\n dd: translator.translate,\r\n M: translator.translate,\r\n MM: translator.translate,\r\n y: translator.translate,\r\n yy: translator.translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return sr;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : siSwati [ss]\r\n//! author : Nicolai Davies : https://github.com/nicolaidavies\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var ss = moment.defineLocale('ss', {\r\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\r\n '_'\r\n ),\r\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\r\n weekdays:\r\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\r\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'h:mm A',\r\n LTS: 'h:mm:ss A',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY h:mm A',\r\n LLLL: 'dddd, D MMMM YYYY h:mm A',\r\n },\r\n calendar: {\r\n sameDay: '[Namuhla nga] LT',\r\n nextDay: '[Kusasa nga] LT',\r\n nextWeek: 'dddd [nga] LT',\r\n lastDay: '[Itolo nga] LT',\r\n lastWeek: 'dddd [leliphelile] [nga] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'nga %s',\r\n past: 'wenteka nga %s',\r\n s: 'emizuzwana lomcane',\r\n ss: '%d mzuzwana',\r\n m: 'umzuzu',\r\n mm: '%d emizuzu',\r\n h: 'lihora',\r\n hh: '%d emahora',\r\n d: 'lilanga',\r\n dd: '%d emalanga',\r\n M: 'inyanga',\r\n MM: '%d tinyanga',\r\n y: 'umnyaka',\r\n yy: '%d iminyaka',\r\n },\r\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours < 11) {\r\n return 'ekuseni';\r\n } else if (hours < 15) {\r\n return 'emini';\r\n } else if (hours < 19) {\r\n return 'entsambama';\r\n } else {\r\n return 'ebusuku';\r\n }\r\n },\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'ekuseni') {\r\n return hour;\r\n } else if (meridiem === 'emini') {\r\n return hour >= 11 ? hour : hour + 12;\r\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\r\n if (hour === 0) {\r\n return 0;\r\n }\r\n return hour + 12;\r\n }\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}/,\r\n ordinal: '%d',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return ss;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Swedish [sv]\r\n//! author : Jens Alm : https://github.com/ulmus\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var sv = moment.defineLocale('sv', {\r\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\r\n '_'\r\n ),\r\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\r\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\r\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\r\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY-MM-DD',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY [kl.] HH:mm',\r\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\r\n lll: 'D MMM YYYY HH:mm',\r\n llll: 'ddd D MMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Idag] LT',\r\n nextDay: '[Imorgon] LT',\r\n lastDay: '[Igår] LT',\r\n nextWeek: '[På] dddd LT',\r\n lastWeek: '[I] dddd[s] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'om %s',\r\n past: 'för %s sedan',\r\n s: 'några sekunder',\r\n ss: '%d sekunder',\r\n m: 'en minut',\r\n mm: '%d minuter',\r\n h: 'en timme',\r\n hh: '%d timmar',\r\n d: 'en dag',\r\n dd: '%d dagar',\r\n M: 'en månad',\r\n MM: '%d månader',\r\n y: 'ett år',\r\n yy: '%d år',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? ':e'\r\n : b === 1\r\n ? ':a'\r\n : b === 2\r\n ? ':a'\r\n : b === 3\r\n ? ':e'\r\n : ':e';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return sv;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Swahili [sw]\r\n//! author : Fahad Kassim : https://github.com/fadsel\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var sw = moment.defineLocale('sw', {\r\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\r\n weekdays:\r\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\r\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'hh:mm A',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[leo saa] LT',\r\n nextDay: '[kesho saa] LT',\r\n nextWeek: '[wiki ijayo] dddd [saat] LT',\r\n lastDay: '[jana] LT',\r\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s baadaye',\r\n past: 'tokea %s',\r\n s: 'hivi punde',\r\n ss: 'sekunde %d',\r\n m: 'dakika moja',\r\n mm: 'dakika %d',\r\n h: 'saa limoja',\r\n hh: 'masaa %d',\r\n d: 'siku moja',\r\n dd: 'siku %d',\r\n M: 'mwezi mmoja',\r\n MM: 'miezi %d',\r\n y: 'mwaka mmoja',\r\n yy: 'miaka %d',\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return sw;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Tamil [ta]\r\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var symbolMap = {\r\n 1: '௧',\r\n 2: '௨',\r\n 3: '௩',\r\n 4: '௪',\r\n 5: '௫',\r\n 6: '௬',\r\n 7: '௭',\r\n 8: '௮',\r\n 9: '௯',\r\n 0: '௦',\r\n },\r\n numberMap = {\r\n '௧': '1',\r\n '௨': '2',\r\n '௩': '3',\r\n '௪': '4',\r\n '௫': '5',\r\n '௬': '6',\r\n '௭': '7',\r\n '௮': '8',\r\n '௯': '9',\r\n '௦': '0',\r\n };\r\n\r\n var ta = moment.defineLocale('ta', {\r\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\r\n '_'\r\n ),\r\n weekdays:\r\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\r\n '_'\r\n ),\r\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[இன்று] LT',\r\n nextDay: '[நாளை] LT',\r\n nextWeek: 'dddd, LT',\r\n lastDay: '[நேற்று] LT',\r\n lastWeek: '[கடந்த வாரம்] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s இல்',\r\n past: '%s முன்',\r\n s: 'ஒரு சில விநாடிகள்',\r\n ss: '%d விநாடிகள்',\r\n m: 'ஒரு நிமிடம்',\r\n mm: '%d நிமிடங்கள்',\r\n h: 'ஒரு மணி நேரம்',\r\n hh: '%d மணி நேரம்',\r\n d: 'ஒரு நாள்',\r\n dd: '%d நாட்கள்',\r\n M: 'ஒரு மாதம்',\r\n MM: '%d மாதங்கள்',\r\n y: 'ஒரு வருடம்',\r\n yy: '%d ஆண்டுகள்',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\r\n ordinal: function (number) {\r\n return number + 'வது';\r\n },\r\n preparse: function (string) {\r\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\r\n return numberMap[match];\r\n });\r\n },\r\n postformat: function (string) {\r\n return string.replace(/\\d/g, function (match) {\r\n return symbolMap[match];\r\n });\r\n },\r\n // refer http://ta.wikipedia.org/s/1er1\r\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 2) {\r\n return ' யாமம்';\r\n } else if (hour < 6) {\r\n return ' வைகறை'; // வைகறை\r\n } else if (hour < 10) {\r\n return ' காலை'; // காலை\r\n } else if (hour < 14) {\r\n return ' நண்பகல்'; // நண்பகல்\r\n } else if (hour < 18) {\r\n return ' எற்பாடு'; // எற்பாடு\r\n } else if (hour < 22) {\r\n return ' மாலை'; // மாலை\r\n } else {\r\n return ' யாமம்';\r\n }\r\n },\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'யாமம்') {\r\n return hour < 2 ? hour : hour + 12;\r\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\r\n return hour;\r\n } else if (meridiem === 'நண்பகல்') {\r\n return hour >= 10 ? hour : hour + 12;\r\n } else {\r\n return hour + 12;\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return ta;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Telugu [te]\r\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var te = moment.defineLocale('te', {\r\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays:\r\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\r\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\r\n longDateFormat: {\r\n LT: 'A h:mm',\r\n LTS: 'A h:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY, A h:mm',\r\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\r\n },\r\n calendar: {\r\n sameDay: '[నేడు] LT',\r\n nextDay: '[రేపు] LT',\r\n nextWeek: 'dddd, LT',\r\n lastDay: '[నిన్న] LT',\r\n lastWeek: '[గత] dddd, LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s లో',\r\n past: '%s క్రితం',\r\n s: 'కొన్ని క్షణాలు',\r\n ss: '%d సెకన్లు',\r\n m: 'ఒక నిమిషం',\r\n mm: '%d నిమిషాలు',\r\n h: 'ఒక గంట',\r\n hh: '%d గంటలు',\r\n d: 'ఒక రోజు',\r\n dd: '%d రోజులు',\r\n M: 'ఒక నెల',\r\n MM: '%d నెలలు',\r\n y: 'ఒక సంవత్సరం',\r\n yy: '%d సంవత్సరాలు',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\r\n ordinal: '%dవ',\r\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'రాత్రి') {\r\n return hour < 4 ? hour : hour + 12;\r\n } else if (meridiem === 'ఉదయం') {\r\n return hour;\r\n } else if (meridiem === 'మధ్యాహ్నం') {\r\n return hour >= 10 ? hour : hour + 12;\r\n } else if (meridiem === 'సాయంత్రం') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'రాత్రి';\r\n } else if (hour < 10) {\r\n return 'ఉదయం';\r\n } else if (hour < 17) {\r\n return 'మధ్యాహ్నం';\r\n } else if (hour < 20) {\r\n return 'సాయంత్రం';\r\n } else {\r\n return 'రాత్రి';\r\n }\r\n },\r\n week: {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n },\r\n });\r\n\r\n return te;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Tetun Dili (East Timor) [tet]\r\n//! author : Joshua Brooks : https://github.com/joshbrooks\r\n//! author : Onorio De J. Afonso : https://github.com/marobo\r\n//! author : Sonia Simoes : https://github.com/soniasimoes\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var tet = moment.defineLocale('tet', {\r\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\r\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\r\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\r\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Ohin iha] LT',\r\n nextDay: '[Aban iha] LT',\r\n nextWeek: 'dddd [iha] LT',\r\n lastDay: '[Horiseik iha] LT',\r\n lastWeek: 'dddd [semana kotuk] [iha] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'iha %s',\r\n past: '%s liuba',\r\n s: 'segundu balun',\r\n ss: 'segundu %d',\r\n m: 'minutu ida',\r\n mm: 'minutu %d',\r\n h: 'oras ida',\r\n hh: 'oras %d',\r\n d: 'loron ida',\r\n dd: 'loron %d',\r\n M: 'fulan ida',\r\n MM: 'fulan %d',\r\n y: 'tinan ida',\r\n yy: 'tinan %d',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return tet;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Tajik [tg]\r\n//! author : Orif N. Jr. : https://github.com/orif-jr\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var suffixes = {\r\n 0: '-ум',\r\n 1: '-ум',\r\n 2: '-юм',\r\n 3: '-юм',\r\n 4: '-ум',\r\n 5: '-ум',\r\n 6: '-ум',\r\n 7: '-ум',\r\n 8: '-ум',\r\n 9: '-ум',\r\n 10: '-ум',\r\n 12: '-ум',\r\n 13: '-ум',\r\n 20: '-ум',\r\n 30: '-юм',\r\n 40: '-ум',\r\n 50: '-ум',\r\n 60: '-ум',\r\n 70: '-ум',\r\n 80: '-ум',\r\n 90: '-ум',\r\n 100: '-ум',\r\n };\r\n\r\n var tg = moment.defineLocale('tg', {\r\n months: {\r\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\r\n '_'\r\n ),\r\n },\r\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\r\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\r\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Имрӯз соати] LT',\r\n nextDay: '[Фардо соати] LT',\r\n lastDay: '[Дирӯз соати] LT',\r\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\r\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'баъди %s',\r\n past: '%s пеш',\r\n s: 'якчанд сония',\r\n m: 'як дақиқа',\r\n mm: '%d дақиқа',\r\n h: 'як соат',\r\n hh: '%d соат',\r\n d: 'як рӯз',\r\n dd: '%d рӯз',\r\n M: 'як моҳ',\r\n MM: '%d моҳ',\r\n y: 'як сол',\r\n yy: '%d сол',\r\n },\r\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === 'шаб') {\r\n return hour < 4 ? hour : hour + 12;\r\n } else if (meridiem === 'субҳ') {\r\n return hour;\r\n } else if (meridiem === 'рӯз') {\r\n return hour >= 11 ? hour : hour + 12;\r\n } else if (meridiem === 'бегоҳ') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'шаб';\r\n } else if (hour < 11) {\r\n return 'субҳ';\r\n } else if (hour < 16) {\r\n return 'рӯз';\r\n } else if (hour < 19) {\r\n return 'бегоҳ';\r\n } else {\r\n return 'шаб';\r\n }\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\r\n ordinal: function (number) {\r\n var a = number % 10,\r\n b = number >= 100 ? 100 : null;\r\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 1th is the first week of the year.\r\n },\r\n });\r\n\r\n return tg;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Thai [th]\r\n//! author : Kridsada Thanabulpong : https://github.com/sirn\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var th = moment.defineLocale('th', {\r\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\r\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\r\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'H:mm',\r\n LTS: 'H:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY เวลา H:mm',\r\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\r\n },\r\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\r\n isPM: function (input) {\r\n return input === 'หลังเที่ยง';\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'ก่อนเที่ยง';\r\n } else {\r\n return 'หลังเที่ยง';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[วันนี้ เวลา] LT',\r\n nextDay: '[พรุ่งนี้ เวลา] LT',\r\n nextWeek: 'dddd[หน้า เวลา] LT',\r\n lastDay: '[เมื่อวานนี้ เวลา] LT',\r\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'อีก %s',\r\n past: '%sที่แล้ว',\r\n s: 'ไม่กี่วินาที',\r\n ss: '%d วินาที',\r\n m: '1 นาที',\r\n mm: '%d นาที',\r\n h: '1 ชั่วโมง',\r\n hh: '%d ชั่วโมง',\r\n d: '1 วัน',\r\n dd: '%d วัน',\r\n w: '1 สัปดาห์',\r\n ww: '%d สัปดาห์',\r\n M: '1 เดือน',\r\n MM: '%d เดือน',\r\n y: '1 ปี',\r\n yy: '%d ปี',\r\n },\r\n });\r\n\r\n return th;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Turkmen [tk]\r\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var suffixes = {\r\n 1: \"'inji\",\r\n 5: \"'inji\",\r\n 8: \"'inji\",\r\n 70: \"'inji\",\r\n 80: \"'inji\",\r\n 2: \"'nji\",\r\n 7: \"'nji\",\r\n 20: \"'nji\",\r\n 50: \"'nji\",\r\n 3: \"'ünji\",\r\n 4: \"'ünji\",\r\n 100: \"'ünji\",\r\n 6: \"'njy\",\r\n 9: \"'unjy\",\r\n 10: \"'unjy\",\r\n 30: \"'unjy\",\r\n 60: \"'ynjy\",\r\n 90: \"'ynjy\",\r\n };\r\n\r\n var tk = moment.defineLocale('tk', {\r\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\r\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\r\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[bugün sagat] LT',\r\n nextDay: '[ertir sagat] LT',\r\n nextWeek: '[indiki] dddd [sagat] LT',\r\n lastDay: '[düýn] LT',\r\n lastWeek: '[geçen] dddd [sagat] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s soň',\r\n past: '%s öň',\r\n s: 'birnäçe sekunt',\r\n m: 'bir minut',\r\n mm: '%d minut',\r\n h: 'bir sagat',\r\n hh: '%d sagat',\r\n d: 'bir gün',\r\n dd: '%d gün',\r\n M: 'bir aý',\r\n MM: '%d aý',\r\n y: 'bir ýyl',\r\n yy: '%d ýyl',\r\n },\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'Do':\r\n case 'DD':\r\n return number;\r\n default:\r\n if (number === 0) {\r\n // special case for zero\r\n return number + \"'unjy\";\r\n }\r\n var a = number % 10,\r\n b = (number % 100) - a,\r\n c = number >= 100 ? 100 : null;\r\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\r\n }\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return tk;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Tagalog (Philippines) [tl-ph]\r\n//! author : Dan Hagman : https://github.com/hagmandan\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var tlPh = moment.defineLocale('tl-ph', {\r\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\r\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\r\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'MM/D/YYYY',\r\n LL: 'MMMM D, YYYY',\r\n LLL: 'MMMM D, YYYY HH:mm',\r\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: 'LT [ngayong araw]',\r\n nextDay: '[Bukas ng] LT',\r\n nextWeek: 'LT [sa susunod na] dddd',\r\n lastDay: 'LT [kahapon]',\r\n lastWeek: 'LT [noong nakaraang] dddd',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'sa loob ng %s',\r\n past: '%s ang nakalipas',\r\n s: 'ilang segundo',\r\n ss: '%d segundo',\r\n m: 'isang minuto',\r\n mm: '%d minuto',\r\n h: 'isang oras',\r\n hh: '%d oras',\r\n d: 'isang araw',\r\n dd: '%d araw',\r\n M: 'isang buwan',\r\n MM: '%d buwan',\r\n y: 'isang taon',\r\n yy: '%d taon',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}/,\r\n ordinal: function (number) {\r\n return number;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return tlPh;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Klingon [tlh]\r\n//! author : Dominika Kruk : https://github.com/amaranthrose\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\r\n\r\n function translateFuture(output) {\r\n var time = output;\r\n time =\r\n output.indexOf('jaj') !== -1\r\n ? time.slice(0, -3) + 'leS'\r\n : output.indexOf('jar') !== -1\r\n ? time.slice(0, -3) + 'waQ'\r\n : output.indexOf('DIS') !== -1\r\n ? time.slice(0, -3) + 'nem'\r\n : time + ' pIq';\r\n return time;\r\n }\r\n\r\n function translatePast(output) {\r\n var time = output;\r\n time =\r\n output.indexOf('jaj') !== -1\r\n ? time.slice(0, -3) + 'Hu’'\r\n : output.indexOf('jar') !== -1\r\n ? time.slice(0, -3) + 'wen'\r\n : output.indexOf('DIS') !== -1\r\n ? time.slice(0, -3) + 'ben'\r\n : time + ' ret';\r\n return time;\r\n }\r\n\r\n function translate(number, withoutSuffix, string, isFuture) {\r\n var numberNoun = numberAsNoun(number);\r\n switch (string) {\r\n case 'ss':\r\n return numberNoun + ' lup';\r\n case 'mm':\r\n return numberNoun + ' tup';\r\n case 'hh':\r\n return numberNoun + ' rep';\r\n case 'dd':\r\n return numberNoun + ' jaj';\r\n case 'MM':\r\n return numberNoun + ' jar';\r\n case 'yy':\r\n return numberNoun + ' DIS';\r\n }\r\n }\r\n\r\n function numberAsNoun(number) {\r\n var hundred = Math.floor((number % 1000) / 100),\r\n ten = Math.floor((number % 100) / 10),\r\n one = number % 10,\r\n word = '';\r\n if (hundred > 0) {\r\n word += numbersNouns[hundred] + 'vatlh';\r\n }\r\n if (ten > 0) {\r\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\r\n }\r\n if (one > 0) {\r\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\r\n }\r\n return word === '' ? 'pagh' : word;\r\n }\r\n\r\n var tlh = moment.defineLocale('tlh', {\r\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\r\n '_'\r\n ),\r\n weekdaysShort:\r\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\r\n weekdaysMin:\r\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[DaHjaj] LT',\r\n nextDay: '[wa’leS] LT',\r\n nextWeek: 'LLL',\r\n lastDay: '[wa’Hu’] LT',\r\n lastWeek: 'LLL',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: translateFuture,\r\n past: translatePast,\r\n s: 'puS lup',\r\n ss: translate,\r\n m: 'wa’ tup',\r\n mm: translate,\r\n h: 'wa’ rep',\r\n hh: translate,\r\n d: 'wa’ jaj',\r\n dd: translate,\r\n M: 'wa’ jar',\r\n MM: translate,\r\n y: 'wa’ DIS',\r\n yy: translate,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return tlh;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Turkish [tr]\r\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\r\n//! Burak Yiğit Kaya: https://github.com/BYK\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var suffixes = {\r\n 1: \"'inci\",\r\n 5: \"'inci\",\r\n 8: \"'inci\",\r\n 70: \"'inci\",\r\n 80: \"'inci\",\r\n 2: \"'nci\",\r\n 7: \"'nci\",\r\n 20: \"'nci\",\r\n 50: \"'nci\",\r\n 3: \"'üncü\",\r\n 4: \"'üncü\",\r\n 100: \"'üncü\",\r\n 6: \"'ncı\",\r\n 9: \"'uncu\",\r\n 10: \"'uncu\",\r\n 30: \"'uncu\",\r\n 60: \"'ıncı\",\r\n 90: \"'ıncı\",\r\n };\r\n\r\n var tr = moment.defineLocale('tr', {\r\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\r\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\r\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours < 12) {\r\n return isLower ? 'öö' : 'ÖÖ';\r\n } else {\r\n return isLower ? 'ös' : 'ÖS';\r\n }\r\n },\r\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\r\n isPM: function (input) {\r\n return input === 'ös' || input === 'ÖS';\r\n },\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[bugün saat] LT',\r\n nextDay: '[yarın saat] LT',\r\n nextWeek: '[gelecek] dddd [saat] LT',\r\n lastDay: '[dün] LT',\r\n lastWeek: '[geçen] dddd [saat] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s sonra',\r\n past: '%s önce',\r\n s: 'birkaç saniye',\r\n ss: '%d saniye',\r\n m: 'bir dakika',\r\n mm: '%d dakika',\r\n h: 'bir saat',\r\n hh: '%d saat',\r\n d: 'bir gün',\r\n dd: '%d gün',\r\n w: 'bir hafta',\r\n ww: '%d hafta',\r\n M: 'bir ay',\r\n MM: '%d ay',\r\n y: 'bir yıl',\r\n yy: '%d yıl',\r\n },\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'Do':\r\n case 'DD':\r\n return number;\r\n default:\r\n if (number === 0) {\r\n // special case for zero\r\n return number + \"'ıncı\";\r\n }\r\n var a = number % 10,\r\n b = (number % 100) - a,\r\n c = number >= 100 ? 100 : null;\r\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\r\n }\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return tr;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Talossan [tzl]\r\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\r\n//! author : Iustì Canun\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\r\n // This is currently too difficult (maybe even impossible) to add.\r\n var tzl = moment.defineLocale('tzl', {\r\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\r\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\r\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\r\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH.mm',\r\n LTS: 'HH.mm.ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D. MMMM [dallas] YYYY',\r\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\r\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\r\n },\r\n meridiemParse: /d\\'o|d\\'a/i,\r\n isPM: function (input) {\r\n return \"d'o\" === input.toLowerCase();\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours > 11) {\r\n return isLower ? \"d'o\" : \"D'O\";\r\n } else {\r\n return isLower ? \"d'a\" : \"D'A\";\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[oxhi à] LT',\r\n nextDay: '[demà à] LT',\r\n nextWeek: 'dddd [à] LT',\r\n lastDay: '[ieiri à] LT',\r\n lastWeek: '[sür el] dddd [lasteu à] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'osprei %s',\r\n past: 'ja%s',\r\n s: processRelativeTime,\r\n ss: processRelativeTime,\r\n m: processRelativeTime,\r\n mm: processRelativeTime,\r\n h: processRelativeTime,\r\n hh: processRelativeTime,\r\n d: processRelativeTime,\r\n dd: processRelativeTime,\r\n M: processRelativeTime,\r\n MM: processRelativeTime,\r\n y: processRelativeTime,\r\n yy: processRelativeTime,\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\r\n ordinal: '%d.',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\r\n var format = {\r\n s: ['viensas secunds', \"'iensas secunds\"],\r\n ss: [number + ' secunds', '' + number + ' secunds'],\r\n m: [\"'n míut\", \"'iens míut\"],\r\n mm: [number + ' míuts', '' + number + ' míuts'],\r\n h: [\"'n þora\", \"'iensa þora\"],\r\n hh: [number + ' þoras', '' + number + ' þoras'],\r\n d: [\"'n ziua\", \"'iensa ziua\"],\r\n dd: [number + ' ziuas', '' + number + ' ziuas'],\r\n M: [\"'n mes\", \"'iens mes\"],\r\n MM: [number + ' mesen', '' + number + ' mesen'],\r\n y: [\"'n ar\", \"'iens ar\"],\r\n yy: [number + ' ars', '' + number + ' ars'],\r\n };\r\n return isFuture\r\n ? format[key][0]\r\n : withoutSuffix\r\n ? format[key][0]\r\n : format[key][1];\r\n }\r\n\r\n return tzl;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\r\n//! author : Abdel Said : https://github.com/abdelsaid\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var tzmLatn = moment.defineLocale('tzm-latn', {\r\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\r\n '_'\r\n ),\r\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\r\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\r\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[asdkh g] LT',\r\n nextDay: '[aska g] LT',\r\n nextWeek: 'dddd [g] LT',\r\n lastDay: '[assant g] LT',\r\n lastWeek: 'dddd [g] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'dadkh s yan %s',\r\n past: 'yan %s',\r\n s: 'imik',\r\n ss: '%d imik',\r\n m: 'minuḍ',\r\n mm: '%d minuḍ',\r\n h: 'saɛa',\r\n hh: '%d tassaɛin',\r\n d: 'ass',\r\n dd: '%d ossan',\r\n M: 'ayowr',\r\n MM: '%d iyyirn',\r\n y: 'asgas',\r\n yy: '%d isgasn',\r\n },\r\n week: {\r\n dow: 6, // Saturday is the first day of the week.\r\n doy: 12, // The week that contains Jan 12th is the first week of the year.\r\n },\r\n });\r\n\r\n return tzmLatn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Central Atlas Tamazight [tzm]\r\n//! author : Abdel Said : https://github.com/abdelsaid\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var tzm = moment.defineLocale('tzm', {\r\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\r\n '_'\r\n ),\r\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\r\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\r\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\r\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\r\n nextWeek: 'dddd [ⴴ] LT',\r\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\r\n lastWeek: 'dddd [ⴴ] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\r\n past: 'ⵢⴰⵏ %s',\r\n s: 'ⵉⵎⵉⴽ',\r\n ss: '%d ⵉⵎⵉⴽ',\r\n m: 'ⵎⵉⵏⵓⴺ',\r\n mm: '%d ⵎⵉⵏⵓⴺ',\r\n h: 'ⵙⴰⵄⴰ',\r\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\r\n d: 'ⴰⵙⵙ',\r\n dd: '%d oⵙⵙⴰⵏ',\r\n M: 'ⴰⵢoⵓⵔ',\r\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\r\n y: 'ⴰⵙⴳⴰⵙ',\r\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\r\n },\r\n week: {\r\n dow: 6, // Saturday is the first day of the week.\r\n doy: 12, // The week that contains Jan 12th is the first week of the year.\r\n },\r\n });\r\n\r\n return tzm;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Uyghur (China) [ug-cn]\r\n//! author: boyaq : https://github.com/boyaq\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var ugCn = moment.defineLocale('ug-cn', {\r\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\r\n '_'\r\n ),\r\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\r\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY-MM-DD',\r\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\r\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\r\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\r\n },\r\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (\r\n meridiem === 'يېرىم كېچە' ||\r\n meridiem === 'سەھەر' ||\r\n meridiem === 'چۈشتىن بۇرۇن'\r\n ) {\r\n return hour;\r\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\r\n return hour + 12;\r\n } else {\r\n return hour >= 11 ? hour : hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n var hm = hour * 100 + minute;\r\n if (hm < 600) {\r\n return 'يېرىم كېچە';\r\n } else if (hm < 900) {\r\n return 'سەھەر';\r\n } else if (hm < 1130) {\r\n return 'چۈشتىن بۇرۇن';\r\n } else if (hm < 1230) {\r\n return 'چۈش';\r\n } else if (hm < 1800) {\r\n return 'چۈشتىن كېيىن';\r\n } else {\r\n return 'كەچ';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[بۈگۈن سائەت] LT',\r\n nextDay: '[ئەتە سائەت] LT',\r\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\r\n lastDay: '[تۆنۈگۈن] LT',\r\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s كېيىن',\r\n past: '%s بۇرۇن',\r\n s: 'نەچچە سېكونت',\r\n ss: '%d سېكونت',\r\n m: 'بىر مىنۇت',\r\n mm: '%d مىنۇت',\r\n h: 'بىر سائەت',\r\n hh: '%d سائەت',\r\n d: 'بىر كۈن',\r\n dd: '%d كۈن',\r\n M: 'بىر ئاي',\r\n MM: '%d ئاي',\r\n y: 'بىر يىل',\r\n yy: '%d يىل',\r\n },\r\n\r\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'DDD':\r\n return number + '-كۈنى';\r\n case 'w':\r\n case 'W':\r\n return number + '-ھەپتە';\r\n default:\r\n return number;\r\n }\r\n },\r\n preparse: function (string) {\r\n return string.replace(/،/g, ',');\r\n },\r\n postformat: function (string) {\r\n return string.replace(/,/g, '،');\r\n },\r\n week: {\r\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 1st is the first week of the year.\r\n },\r\n });\r\n\r\n return ugCn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Ukrainian [uk]\r\n//! author : zemlanin : https://github.com/zemlanin\r\n//! Author : Menelion Elensúle : https://github.com/Oire\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n function plural(word, num) {\r\n var forms = word.split('_');\r\n return num % 10 === 1 && num % 100 !== 11\r\n ? forms[0]\r\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\r\n ? forms[1]\r\n : forms[2];\r\n }\r\n function relativeTimeWithPlural(number, withoutSuffix, key) {\r\n var format = {\r\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\r\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\r\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\r\n dd: 'день_дні_днів',\r\n MM: 'місяць_місяці_місяців',\r\n yy: 'рік_роки_років',\r\n };\r\n if (key === 'm') {\r\n return withoutSuffix ? 'хвилина' : 'хвилину';\r\n } else if (key === 'h') {\r\n return withoutSuffix ? 'година' : 'годину';\r\n } else {\r\n return number + ' ' + plural(format[key], +number);\r\n }\r\n }\r\n function weekdaysCaseReplace(m, format) {\r\n var weekdays = {\r\n nominative:\r\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\r\n '_'\r\n ),\r\n accusative:\r\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\r\n '_'\r\n ),\r\n genitive:\r\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\r\n '_'\r\n ),\r\n },\r\n nounCase;\r\n\r\n if (m === true) {\r\n return weekdays['nominative']\r\n .slice(1, 7)\r\n .concat(weekdays['nominative'].slice(0, 1));\r\n }\r\n if (!m) {\r\n return weekdays['nominative'];\r\n }\r\n\r\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\r\n ? 'accusative'\r\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\r\n ? 'genitive'\r\n : 'nominative';\r\n return weekdays[nounCase][m.day()];\r\n }\r\n function processHoursFunction(str) {\r\n return function () {\r\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\r\n };\r\n }\r\n\r\n var uk = moment.defineLocale('uk', {\r\n months: {\r\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\r\n '_'\r\n ),\r\n standalone:\r\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\r\n '_'\r\n ),\r\n },\r\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\r\n '_'\r\n ),\r\n weekdays: weekdaysCaseReplace,\r\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\r\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD.MM.YYYY',\r\n LL: 'D MMMM YYYY р.',\r\n LLL: 'D MMMM YYYY р., HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\r\n },\r\n calendar: {\r\n sameDay: processHoursFunction('[Сьогодні '),\r\n nextDay: processHoursFunction('[Завтра '),\r\n lastDay: processHoursFunction('[Вчора '),\r\n nextWeek: processHoursFunction('[У] dddd ['),\r\n lastWeek: function () {\r\n switch (this.day()) {\r\n case 0:\r\n case 3:\r\n case 5:\r\n case 6:\r\n return processHoursFunction('[Минулої] dddd [').call(this);\r\n case 1:\r\n case 2:\r\n case 4:\r\n return processHoursFunction('[Минулого] dddd [').call(this);\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'за %s',\r\n past: '%s тому',\r\n s: 'декілька секунд',\r\n ss: relativeTimeWithPlural,\r\n m: relativeTimeWithPlural,\r\n mm: relativeTimeWithPlural,\r\n h: 'годину',\r\n hh: relativeTimeWithPlural,\r\n d: 'день',\r\n dd: relativeTimeWithPlural,\r\n M: 'місяць',\r\n MM: relativeTimeWithPlural,\r\n y: 'рік',\r\n yy: relativeTimeWithPlural,\r\n },\r\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\r\n meridiemParse: /ночі|ранку|дня|вечора/,\r\n isPM: function (input) {\r\n return /^(дня|вечора)$/.test(input);\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'ночі';\r\n } else if (hour < 12) {\r\n return 'ранку';\r\n } else if (hour < 17) {\r\n return 'дня';\r\n } else {\r\n return 'вечора';\r\n }\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'M':\r\n case 'd':\r\n case 'DDD':\r\n case 'w':\r\n case 'W':\r\n return number + '-й';\r\n case 'D':\r\n return number + '-го';\r\n default:\r\n return number;\r\n }\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return uk;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Urdu [ur]\r\n//! author : Sawood Alam : https://github.com/ibnesayeed\r\n//! author : Zack : https://github.com/ZackVision\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var months = [\r\n 'جنوری',\r\n 'فروری',\r\n 'مارچ',\r\n 'اپریل',\r\n 'مئی',\r\n 'جون',\r\n 'جولائی',\r\n 'اگست',\r\n 'ستمبر',\r\n 'اکتوبر',\r\n 'نومبر',\r\n 'دسمبر',\r\n ],\r\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\r\n\r\n var ur = moment.defineLocale('ur', {\r\n months: months,\r\n monthsShort: months,\r\n weekdays: days,\r\n weekdaysShort: days,\r\n weekdaysMin: days,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd، D MMMM YYYY HH:mm',\r\n },\r\n meridiemParse: /صبح|شام/,\r\n isPM: function (input) {\r\n return 'شام' === input;\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n if (hour < 12) {\r\n return 'صبح';\r\n }\r\n return 'شام';\r\n },\r\n calendar: {\r\n sameDay: '[آج بوقت] LT',\r\n nextDay: '[کل بوقت] LT',\r\n nextWeek: 'dddd [بوقت] LT',\r\n lastDay: '[گذشتہ روز بوقت] LT',\r\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s بعد',\r\n past: '%s قبل',\r\n s: 'چند سیکنڈ',\r\n ss: '%d سیکنڈ',\r\n m: 'ایک منٹ',\r\n mm: '%d منٹ',\r\n h: 'ایک گھنٹہ',\r\n hh: '%d گھنٹے',\r\n d: 'ایک دن',\r\n dd: '%d دن',\r\n M: 'ایک ماہ',\r\n MM: '%d ماہ',\r\n y: 'ایک سال',\r\n yy: '%d سال',\r\n },\r\n preparse: function (string) {\r\n return string.replace(/،/g, ',');\r\n },\r\n postformat: function (string) {\r\n return string.replace(/,/g, '،');\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return ur;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Uzbek Latin [uz-latn]\r\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var uzLatn = moment.defineLocale('uz-latn', {\r\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\r\n weekdays:\r\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\r\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'D MMMM YYYY, dddd HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Bugun soat] LT [da]',\r\n nextDay: '[Ertaga] LT [da]',\r\n nextWeek: 'dddd [kuni soat] LT [da]',\r\n lastDay: '[Kecha soat] LT [da]',\r\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'Yaqin %s ichida',\r\n past: 'Bir necha %s oldin',\r\n s: 'soniya',\r\n ss: '%d soniya',\r\n m: 'bir daqiqa',\r\n mm: '%d daqiqa',\r\n h: 'bir soat',\r\n hh: '%d soat',\r\n d: 'bir kun',\r\n dd: '%d kun',\r\n M: 'bir oy',\r\n MM: '%d oy',\r\n y: 'bir yil',\r\n yy: '%d yil',\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 7th is the first week of the year.\r\n },\r\n });\r\n\r\n return uzLatn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Uzbek [uz]\r\n//! author : Sardor Muminov : https://github.com/muminoff\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var uz = moment.defineLocale('uz', {\r\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\r\n '_'\r\n ),\r\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\r\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\r\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\r\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'D MMMM YYYY, dddd HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Бугун соат] LT [да]',\r\n nextDay: '[Эртага] LT [да]',\r\n nextWeek: 'dddd [куни соат] LT [да]',\r\n lastDay: '[Кеча соат] LT [да]',\r\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'Якин %s ичида',\r\n past: 'Бир неча %s олдин',\r\n s: 'фурсат',\r\n ss: '%d фурсат',\r\n m: 'бир дакика',\r\n mm: '%d дакика',\r\n h: 'бир соат',\r\n hh: '%d соат',\r\n d: 'бир кун',\r\n dd: '%d кун',\r\n M: 'бир ой',\r\n MM: '%d ой',\r\n y: 'бир йил',\r\n yy: '%d йил',\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 7, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return uz;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Vietnamese [vi]\r\n//! author : Bang Nguyen : https://github.com/bangnk\r\n//! author : Chien Kira : https://github.com/chienkira\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var vi = moment.defineLocale('vi', {\r\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\r\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\r\n weekdaysParseExact: true,\r\n meridiemParse: /sa|ch/i,\r\n isPM: function (input) {\r\n return /^ch$/i.test(input);\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n if (hours < 12) {\r\n return isLower ? 'sa' : 'SA';\r\n } else {\r\n return isLower ? 'ch' : 'CH';\r\n }\r\n },\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM [năm] YYYY',\r\n LLL: 'D MMMM [năm] YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\r\n l: 'DD/M/YYYY',\r\n ll: 'D MMM YYYY',\r\n lll: 'D MMM YYYY HH:mm',\r\n llll: 'ddd, D MMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[Hôm nay lúc] LT',\r\n nextDay: '[Ngày mai lúc] LT',\r\n nextWeek: 'dddd [tuần tới lúc] LT',\r\n lastDay: '[Hôm qua lúc] LT',\r\n lastWeek: 'dddd [tuần trước lúc] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: '%s tới',\r\n past: '%s trước',\r\n s: 'vài giây',\r\n ss: '%d giây',\r\n m: 'một phút',\r\n mm: '%d phút',\r\n h: 'một giờ',\r\n hh: '%d giờ',\r\n d: 'một ngày',\r\n dd: '%d ngày',\r\n w: 'một tuần',\r\n ww: '%d tuần',\r\n M: 'một tháng',\r\n MM: '%d tháng',\r\n y: 'một năm',\r\n yy: '%d năm',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}/,\r\n ordinal: function (number) {\r\n return number;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return vi;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Pseudo [x-pseudo]\r\n//! author : Andrew Hood : https://github.com/andrewhood125\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var xPseudo = moment.defineLocale('x-pseudo', {\r\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\r\n '_'\r\n ),\r\n monthsShort:\r\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\r\n '_'\r\n ),\r\n monthsParseExact: true,\r\n weekdays:\r\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\r\n '_'\r\n ),\r\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\r\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd, D MMMM YYYY HH:mm',\r\n },\r\n calendar: {\r\n sameDay: '[T~ódá~ý át] LT',\r\n nextDay: '[T~ómó~rró~w át] LT',\r\n nextWeek: 'dddd [át] LT',\r\n lastDay: '[Ý~ést~érdá~ý át] LT',\r\n lastWeek: '[L~ást] dddd [át] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'í~ñ %s',\r\n past: '%s á~gó',\r\n s: 'á ~féw ~sécó~ñds',\r\n ss: '%d s~écóñ~ds',\r\n m: 'á ~míñ~úté',\r\n mm: '%d m~íñú~tés',\r\n h: 'á~ñ hó~úr',\r\n hh: '%d h~óúrs',\r\n d: 'á ~dáý',\r\n dd: '%d d~áýs',\r\n M: 'á ~móñ~th',\r\n MM: '%d m~óñt~hs',\r\n y: 'á ~ýéár',\r\n yy: '%d ý~éárs',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n ~~((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return xPseudo;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Yoruba Nigeria [yo]\r\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var yo = moment.defineLocale('yo', {\r\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\r\n '_'\r\n ),\r\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\r\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\r\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\r\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\r\n longDateFormat: {\r\n LT: 'h:mm A',\r\n LTS: 'h:mm:ss A',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY h:mm A',\r\n LLLL: 'dddd, D MMMM YYYY h:mm A',\r\n },\r\n calendar: {\r\n sameDay: '[Ònì ni] LT',\r\n nextDay: '[Ọ̀la ni] LT',\r\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\r\n lastDay: '[Àna ni] LT',\r\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\r\n sameElse: 'L',\r\n },\r\n relativeTime: {\r\n future: 'ní %s',\r\n past: '%s kọjá',\r\n s: 'ìsẹjú aayá die',\r\n ss: 'aayá %d',\r\n m: 'ìsẹjú kan',\r\n mm: 'ìsẹjú %d',\r\n h: 'wákati kan',\r\n hh: 'wákati %d',\r\n d: 'ọjọ́ kan',\r\n dd: 'ọjọ́ %d',\r\n M: 'osù kan',\r\n MM: 'osù %d',\r\n y: 'ọdún kan',\r\n yy: 'ọdún %d',\r\n },\r\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\r\n ordinal: 'ọjọ́ %d',\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return yo;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Chinese (China) [zh-cn]\r\n//! author : suupic : https://github.com/suupic\r\n//! author : Zeno Zeng : https://github.com/zenozeng\r\n//! author : uu109 : https://github.com/uu109\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var zhCn = moment.defineLocale('zh-cn', {\r\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\r\n '_'\r\n ),\r\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\r\n '_'\r\n ),\r\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\r\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\r\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY/MM/DD',\r\n LL: 'YYYY年M月D日',\r\n LLL: 'YYYY年M月D日Ah点mm分',\r\n LLLL: 'YYYY年M月D日ddddAh点mm分',\r\n l: 'YYYY/M/D',\r\n ll: 'YYYY年M月D日',\r\n lll: 'YYYY年M月D日 HH:mm',\r\n llll: 'YYYY年M月D日dddd HH:mm',\r\n },\r\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\r\n return hour;\r\n } else if (meridiem === '下午' || meridiem === '晚上') {\r\n return hour + 12;\r\n } else {\r\n // '中午'\r\n return hour >= 11 ? hour : hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n var hm = hour * 100 + minute;\r\n if (hm < 600) {\r\n return '凌晨';\r\n } else if (hm < 900) {\r\n return '早上';\r\n } else if (hm < 1130) {\r\n return '上午';\r\n } else if (hm < 1230) {\r\n return '中午';\r\n } else if (hm < 1800) {\r\n return '下午';\r\n } else {\r\n return '晚上';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[今天]LT',\r\n nextDay: '[明天]LT',\r\n nextWeek: function (now) {\r\n if (now.week() !== this.week()) {\r\n return '[下]dddLT';\r\n } else {\r\n return '[本]dddLT';\r\n }\r\n },\r\n lastDay: '[昨天]LT',\r\n lastWeek: function (now) {\r\n if (this.week() !== now.week()) {\r\n return '[上]dddLT';\r\n } else {\r\n return '[本]dddLT';\r\n }\r\n },\r\n sameElse: 'L',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'DDD':\r\n return number + '日';\r\n case 'M':\r\n return number + '月';\r\n case 'w':\r\n case 'W':\r\n return number + '周';\r\n default:\r\n return number;\r\n }\r\n },\r\n relativeTime: {\r\n future: '%s后',\r\n past: '%s前',\r\n s: '几秒',\r\n ss: '%d 秒',\r\n m: '1 分钟',\r\n mm: '%d 分钟',\r\n h: '1 小时',\r\n hh: '%d 小时',\r\n d: '1 天',\r\n dd: '%d 天',\r\n w: '1 周',\r\n ww: '%d 周',\r\n M: '1 个月',\r\n MM: '%d 个月',\r\n y: '1 年',\r\n yy: '%d 年',\r\n },\r\n week: {\r\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // The week that contains Jan 4th is the first week of the year.\r\n },\r\n });\r\n\r\n return zhCn;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Chinese (Hong Kong) [zh-hk]\r\n//! author : Ben : https://github.com/ben-lin\r\n//! author : Chris Lam : https://github.com/hehachris\r\n//! author : Konstantin : https://github.com/skfd\r\n//! author : Anthony : https://github.com/anthonylau\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var zhHk = moment.defineLocale('zh-hk', {\r\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\r\n '_'\r\n ),\r\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\r\n '_'\r\n ),\r\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\r\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\r\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY/MM/DD',\r\n LL: 'YYYY年M月D日',\r\n LLL: 'YYYY年M月D日 HH:mm',\r\n LLLL: 'YYYY年M月D日dddd HH:mm',\r\n l: 'YYYY/M/D',\r\n ll: 'YYYY年M月D日',\r\n lll: 'YYYY年M月D日 HH:mm',\r\n llll: 'YYYY年M月D日dddd HH:mm',\r\n },\r\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\r\n return hour;\r\n } else if (meridiem === '中午') {\r\n return hour >= 11 ? hour : hour + 12;\r\n } else if (meridiem === '下午' || meridiem === '晚上') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n var hm = hour * 100 + minute;\r\n if (hm < 600) {\r\n return '凌晨';\r\n } else if (hm < 900) {\r\n return '早上';\r\n } else if (hm < 1200) {\r\n return '上午';\r\n } else if (hm === 1200) {\r\n return '中午';\r\n } else if (hm < 1800) {\r\n return '下午';\r\n } else {\r\n return '晚上';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[今天]LT',\r\n nextDay: '[明天]LT',\r\n nextWeek: '[下]ddddLT',\r\n lastDay: '[昨天]LT',\r\n lastWeek: '[上]ddddLT',\r\n sameElse: 'L',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'DDD':\r\n return number + '日';\r\n case 'M':\r\n return number + '月';\r\n case 'w':\r\n case 'W':\r\n return number + '週';\r\n default:\r\n return number;\r\n }\r\n },\r\n relativeTime: {\r\n future: '%s後',\r\n past: '%s前',\r\n s: '幾秒',\r\n ss: '%d 秒',\r\n m: '1 分鐘',\r\n mm: '%d 分鐘',\r\n h: '1 小時',\r\n hh: '%d 小時',\r\n d: '1 天',\r\n dd: '%d 天',\r\n M: '1 個月',\r\n MM: '%d 個月',\r\n y: '1 年',\r\n yy: '%d 年',\r\n },\r\n });\r\n\r\n return zhHk;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Chinese (Macau) [zh-mo]\r\n//! author : Ben : https://github.com/ben-lin\r\n//! author : Chris Lam : https://github.com/hehachris\r\n//! author : Tan Yuanhong : https://github.com/le0tan\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var zhMo = moment.defineLocale('zh-mo', {\r\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\r\n '_'\r\n ),\r\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\r\n '_'\r\n ),\r\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\r\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\r\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'YYYY年M月D日',\r\n LLL: 'YYYY年M月D日 HH:mm',\r\n LLLL: 'YYYY年M月D日dddd HH:mm',\r\n l: 'D/M/YYYY',\r\n ll: 'YYYY年M月D日',\r\n lll: 'YYYY年M月D日 HH:mm',\r\n llll: 'YYYY年M月D日dddd HH:mm',\r\n },\r\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\r\n return hour;\r\n } else if (meridiem === '中午') {\r\n return hour >= 11 ? hour : hour + 12;\r\n } else if (meridiem === '下午' || meridiem === '晚上') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n var hm = hour * 100 + minute;\r\n if (hm < 600) {\r\n return '凌晨';\r\n } else if (hm < 900) {\r\n return '早上';\r\n } else if (hm < 1130) {\r\n return '上午';\r\n } else if (hm < 1230) {\r\n return '中午';\r\n } else if (hm < 1800) {\r\n return '下午';\r\n } else {\r\n return '晚上';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[今天] LT',\r\n nextDay: '[明天] LT',\r\n nextWeek: '[下]dddd LT',\r\n lastDay: '[昨天] LT',\r\n lastWeek: '[上]dddd LT',\r\n sameElse: 'L',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'DDD':\r\n return number + '日';\r\n case 'M':\r\n return number + '月';\r\n case 'w':\r\n case 'W':\r\n return number + '週';\r\n default:\r\n return number;\r\n }\r\n },\r\n relativeTime: {\r\n future: '%s內',\r\n past: '%s前',\r\n s: '幾秒',\r\n ss: '%d 秒',\r\n m: '1 分鐘',\r\n mm: '%d 分鐘',\r\n h: '1 小時',\r\n hh: '%d 小時',\r\n d: '1 天',\r\n dd: '%d 天',\r\n M: '1 個月',\r\n MM: '%d 個月',\r\n y: '1 年',\r\n yy: '%d 年',\r\n },\r\n });\r\n\r\n return zhMo;\r\n\r\n})));\r\n","//! moment.js locale configuration\r\n//! locale : Chinese (Taiwan) [zh-tw]\r\n//! author : Ben : https://github.com/ben-lin\r\n//! author : Chris Lam : https://github.com/hehachris\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n //! moment.js locale configuration\r\n\r\n var zhTw = moment.defineLocale('zh-tw', {\r\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\r\n '_'\r\n ),\r\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\r\n '_'\r\n ),\r\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\r\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\r\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY/MM/DD',\r\n LL: 'YYYY年M月D日',\r\n LLL: 'YYYY年M月D日 HH:mm',\r\n LLLL: 'YYYY年M月D日dddd HH:mm',\r\n l: 'YYYY/M/D',\r\n ll: 'YYYY年M月D日',\r\n lll: 'YYYY年M月D日 HH:mm',\r\n llll: 'YYYY年M月D日dddd HH:mm',\r\n },\r\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\r\n return hour;\r\n } else if (meridiem === '中午') {\r\n return hour >= 11 ? hour : hour + 12;\r\n } else if (meridiem === '下午' || meridiem === '晚上') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n var hm = hour * 100 + minute;\r\n if (hm < 600) {\r\n return '凌晨';\r\n } else if (hm < 900) {\r\n return '早上';\r\n } else if (hm < 1130) {\r\n return '上午';\r\n } else if (hm < 1230) {\r\n return '中午';\r\n } else if (hm < 1800) {\r\n return '下午';\r\n } else {\r\n return '晚上';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[今天] LT',\r\n nextDay: '[明天] LT',\r\n nextWeek: '[下]dddd LT',\r\n lastDay: '[昨天] LT',\r\n lastWeek: '[上]dddd LT',\r\n sameElse: 'L',\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'DDD':\r\n return number + '日';\r\n case 'M':\r\n return number + '月';\r\n case 'w':\r\n case 'W':\r\n return number + '週';\r\n default:\r\n return number;\r\n }\r\n },\r\n relativeTime: {\r\n future: '%s後',\r\n past: '%s前',\r\n s: '幾秒',\r\n ss: '%d 秒',\r\n m: '1 分鐘',\r\n mm: '%d 分鐘',\r\n h: '1 小時',\r\n hh: '%d 小時',\r\n d: '1 天',\r\n dd: '%d 天',\r\n M: '1 個月',\r\n MM: '%d 個月',\r\n y: '1 年',\r\n yy: '%d 年',\r\n },\r\n });\r\n\r\n return zhTw;\r\n\r\n})));\r\n","var map = {\n\t\"./af\": 5177,\n\t\"./af.js\": 5177,\n\t\"./ar\": 1509,\n\t\"./ar-dz\": 1488,\n\t\"./ar-dz.js\": 1488,\n\t\"./ar-kw\": 8676,\n\t\"./ar-kw.js\": 8676,\n\t\"./ar-ly\": 2353,\n\t\"./ar-ly.js\": 2353,\n\t\"./ar-ma\": 4496,\n\t\"./ar-ma.js\": 4496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 2682,\n\t\"./ar-sa.js\": 2682,\n\t\"./ar-tn\": 9756,\n\t\"./ar-tn.js\": 9756,\n\t\"./ar.js\": 1509,\n\t\"./az\": 5533,\n\t\"./az.js\": 5533,\n\t\"./be\": 8959,\n\t\"./be.js\": 8959,\n\t\"./bg\": 7777,\n\t\"./bg.js\": 7777,\n\t\"./bm\": 4903,\n\t\"./bm.js\": 4903,\n\t\"./bn\": 1290,\n\t\"./bn-bd\": 7357,\n\t\"./bn-bd.js\": 7357,\n\t\"./bn.js\": 1290,\n\t\"./bo\": 1545,\n\t\"./bo.js\": 1545,\n\t\"./br\": 1470,\n\t\"./br.js\": 1470,\n\t\"./bs\": 4429,\n\t\"./bs.js\": 4429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 6464,\n\t\"./cs.js\": 6464,\n\t\"./cv\": 3635,\n\t\"./cv.js\": 3635,\n\t\"./cy\": 4226,\n\t\"./cy.js\": 4226,\n\t\"./da\": 3601,\n\t\"./da.js\": 3601,\n\t\"./de\": 7853,\n\t\"./de-at\": 6111,\n\t\"./de-at.js\": 6111,\n\t\"./de-ch\": 4697,\n\t\"./de-ch.js\": 4697,\n\t\"./de.js\": 7853,\n\t\"./dv\": 708,\n\t\"./dv.js\": 708,\n\t\"./el\": 4691,\n\t\"./el.js\": 4691,\n\t\"./en-au\": 3872,\n\t\"./en-au.js\": 3872,\n\t\"./en-ca\": 8298,\n\t\"./en-ca.js\": 8298,\n\t\"./en-gb\": 6195,\n\t\"./en-gb.js\": 6195,\n\t\"./en-ie\": 6584,\n\t\"./en-ie.js\": 6584,\n\t\"./en-il\": 5543,\n\t\"./en-il.js\": 5543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 9402,\n\t\"./en-nz.js\": 9402,\n\t\"./en-sg\": 3004,\n\t\"./en-sg.js\": 3004,\n\t\"./eo\": 2934,\n\t\"./eo.js\": 2934,\n\t\"./es\": 7650,\n\t\"./es-do\": 838,\n\t\"./es-do.js\": 838,\n\t\"./es-mx\": 7730,\n\t\"./es-mx.js\": 7730,\n\t\"./es-us\": 6575,\n\t\"./es-us.js\": 6575,\n\t\"./es.js\": 7650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 527,\n\t\"./fi.js\": 527,\n\t\"./fil\": 5995,\n\t\"./fil.js\": 5995,\n\t\"./fo\": 2477,\n\t\"./fo.js\": 2477,\n\t\"./fr\": 5498,\n\t\"./fr-ca\": 6435,\n\t\"./fr-ca.js\": 6435,\n\t\"./fr-ch\": 7892,\n\t\"./fr-ch.js\": 7892,\n\t\"./fr.js\": 5498,\n\t\"./fy\": 7071,\n\t\"./fy.js\": 7071,\n\t\"./ga\": 1734,\n\t\"./ga.js\": 1734,\n\t\"./gd\": 217,\n\t\"./gd.js\": 217,\n\t\"./gl\": 7329,\n\t\"./gl.js\": 7329,\n\t\"./gom-deva\": 2124,\n\t\"./gom-deva.js\": 2124,\n\t\"./gom-latn\": 3383,\n\t\"./gom-latn.js\": 3383,\n\t\"./gu\": 5050,\n\t\"./gu.js\": 5050,\n\t\"./he\": 1713,\n\t\"./he.js\": 1713,\n\t\"./hi\": 3861,\n\t\"./hi.js\": 3861,\n\t\"./hr\": 6308,\n\t\"./hr.js\": 6308,\n\t\"./hu\": 609,\n\t\"./hu.js\": 609,\n\t\"./hy-am\": 7160,\n\t\"./hy-am.js\": 7160,\n\t\"./id\": 4063,\n\t\"./id.js\": 4063,\n\t\"./is\": 9374,\n\t\"./is.js\": 9374,\n\t\"./it\": 8383,\n\t\"./it-ch\": 1827,\n\t\"./it-ch.js\": 1827,\n\t\"./it.js\": 8383,\n\t\"./ja\": 3827,\n\t\"./ja.js\": 3827,\n\t\"./jv\": 9722,\n\t\"./jv.js\": 9722,\n\t\"./ka\": 1794,\n\t\"./ka.js\": 1794,\n\t\"./kk\": 7088,\n\t\"./kk.js\": 7088,\n\t\"./km\": 6870,\n\t\"./km.js\": 6870,\n\t\"./kn\": 4451,\n\t\"./kn.js\": 4451,\n\t\"./ko\": 3164,\n\t\"./ko.js\": 3164,\n\t\"./ku\": 8174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 8174,\n\t\"./ky\": 8474,\n\t\"./ky.js\": 8474,\n\t\"./lb\": 9680,\n\t\"./lb.js\": 9680,\n\t\"./lo\": 5867,\n\t\"./lo.js\": 5867,\n\t\"./lt\": 5766,\n\t\"./lt.js\": 5766,\n\t\"./lv\": 9532,\n\t\"./lv.js\": 9532,\n\t\"./me\": 8076,\n\t\"./me.js\": 8076,\n\t\"./mi\": 1848,\n\t\"./mi.js\": 1848,\n\t\"./mk\": 306,\n\t\"./mk.js\": 306,\n\t\"./ml\": 3739,\n\t\"./ml.js\": 3739,\n\t\"./mn\": 9053,\n\t\"./mn.js\": 9053,\n\t\"./mr\": 6169,\n\t\"./mr.js\": 6169,\n\t\"./ms\": 3386,\n\t\"./ms-my\": 2297,\n\t\"./ms-my.js\": 2297,\n\t\"./ms.js\": 3386,\n\t\"./mt\": 7075,\n\t\"./mt.js\": 7075,\n\t\"./my\": 2264,\n\t\"./my.js\": 2264,\n\t\"./nb\": 2274,\n\t\"./nb.js\": 2274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 2572,\n\t\"./nl-be\": 3784,\n\t\"./nl-be.js\": 3784,\n\t\"./nl.js\": 2572,\n\t\"./nn\": 4566,\n\t\"./nn.js\": 4566,\n\t\"./oc-lnc\": 9330,\n\t\"./oc-lnc.js\": 9330,\n\t\"./pa-in\": 9849,\n\t\"./pa-in.js\": 9849,\n\t\"./pl\": 4418,\n\t\"./pl.js\": 4418,\n\t\"./pt\": 9834,\n\t\"./pt-br\": 8303,\n\t\"./pt-br.js\": 8303,\n\t\"./pt.js\": 9834,\n\t\"./ro\": 4457,\n\t\"./ro.js\": 4457,\n\t\"./ru\": 2271,\n\t\"./ru.js\": 2271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 3478,\n\t\"./se.js\": 3478,\n\t\"./si\": 7538,\n\t\"./si.js\": 7538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 6637,\n\t\"./sl.js\": 6637,\n\t\"./sq\": 6794,\n\t\"./sq.js\": 6794,\n\t\"./sr\": 5719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 5719,\n\t\"./ss\": 6000,\n\t\"./ss.js\": 6000,\n\t\"./sv\": 1011,\n\t\"./sv.js\": 1011,\n\t\"./sw\": 748,\n\t\"./sw.js\": 748,\n\t\"./ta\": 1025,\n\t\"./ta.js\": 1025,\n\t\"./te\": 1885,\n\t\"./te.js\": 1885,\n\t\"./tet\": 8861,\n\t\"./tet.js\": 8861,\n\t\"./tg\": 6571,\n\t\"./tg.js\": 6571,\n\t\"./th\": 5802,\n\t\"./th.js\": 5802,\n\t\"./tk\": 9527,\n\t\"./tk.js\": 9527,\n\t\"./tl-ph\": 9231,\n\t\"./tl-ph.js\": 9231,\n\t\"./tlh\": 1052,\n\t\"./tlh.js\": 1052,\n\t\"./tr\": 5096,\n\t\"./tr.js\": 5096,\n\t\"./tzl\": 9846,\n\t\"./tzl.js\": 9846,\n\t\"./tzm\": 1765,\n\t\"./tzm-latn\": 7711,\n\t\"./tzm-latn.js\": 7711,\n\t\"./tzm.js\": 1765,\n\t\"./ug-cn\": 8414,\n\t\"./ug-cn.js\": 8414,\n\t\"./uk\": 6618,\n\t\"./uk.js\": 6618,\n\t\"./ur\": 158,\n\t\"./ur.js\": 158,\n\t\"./uz\": 7609,\n\t\"./uz-latn\": 2475,\n\t\"./uz-latn.js\": 2475,\n\t\"./uz.js\": 7609,\n\t\"./vi\": 1135,\n\t\"./vi.js\": 1135,\n\t\"./x-pseudo\": 4051,\n\t\"./x-pseudo.js\": 4051,\n\t\"./yo\": 2218,\n\t\"./yo.js\": 2218,\n\t\"./zh-cn\": 2648,\n\t\"./zh-cn.js\": 2648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 1541,\n\t\"./zh-mo.js\": 1541,\n\t\"./zh-tw\": 304,\n\t\"./zh-tw.js\": 304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5358;","//! moment.js\r\n//! version : 2.30.1\r\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\r\n//! license : MIT\r\n//! momentjs.com\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n global.moment = factory()\r\n}(this, (function () { 'use strict';\r\n\r\n var hookCallback;\r\n\r\n function hooks() {\r\n return hookCallback.apply(null, arguments);\r\n }\r\n\r\n // This is done to register the method called with moment()\r\n // without creating circular dependencies.\r\n function setHookCallback(callback) {\r\n hookCallback = callback;\r\n }\r\n\r\n function isArray(input) {\r\n return (\r\n input instanceof Array ||\r\n Object.prototype.toString.call(input) === '[object Array]'\r\n );\r\n }\r\n\r\n function isObject(input) {\r\n // IE8 will treat undefined and null as object if it wasn't for\r\n // input != null\r\n return (\r\n input != null &&\r\n Object.prototype.toString.call(input) === '[object Object]'\r\n );\r\n }\r\n\r\n function hasOwnProp(a, b) {\r\n return Object.prototype.hasOwnProperty.call(a, b);\r\n }\r\n\r\n function isObjectEmpty(obj) {\r\n if (Object.getOwnPropertyNames) {\r\n return Object.getOwnPropertyNames(obj).length === 0;\r\n } else {\r\n var k;\r\n for (k in obj) {\r\n if (hasOwnProp(obj, k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n function isUndefined(input) {\r\n return input === void 0;\r\n }\r\n\r\n function isNumber(input) {\r\n return (\r\n typeof input === 'number' ||\r\n Object.prototype.toString.call(input) === '[object Number]'\r\n );\r\n }\r\n\r\n function isDate(input) {\r\n return (\r\n input instanceof Date ||\r\n Object.prototype.toString.call(input) === '[object Date]'\r\n );\r\n }\r\n\r\n function map(arr, fn) {\r\n var res = [],\r\n i,\r\n arrLen = arr.length;\r\n for (i = 0; i < arrLen; ++i) {\r\n res.push(fn(arr[i], i));\r\n }\r\n return res;\r\n }\r\n\r\n function extend(a, b) {\r\n for (var i in b) {\r\n if (hasOwnProp(b, i)) {\r\n a[i] = b[i];\r\n }\r\n }\r\n\r\n if (hasOwnProp(b, 'toString')) {\r\n a.toString = b.toString;\r\n }\r\n\r\n if (hasOwnProp(b, 'valueOf')) {\r\n a.valueOf = b.valueOf;\r\n }\r\n\r\n return a;\r\n }\r\n\r\n function createUTC(input, format, locale, strict) {\r\n return createLocalOrUTC(input, format, locale, strict, true).utc();\r\n }\r\n\r\n function defaultParsingFlags() {\r\n // We need to deep clone this object.\r\n return {\r\n empty: false,\r\n unusedTokens: [],\r\n unusedInput: [],\r\n overflow: -2,\r\n charsLeftOver: 0,\r\n nullInput: false,\r\n invalidEra: null,\r\n invalidMonth: null,\r\n invalidFormat: false,\r\n userInvalidated: false,\r\n iso: false,\r\n parsedDateParts: [],\r\n era: null,\r\n meridiem: null,\r\n rfc2822: false,\r\n weekdayMismatch: false,\r\n };\r\n }\r\n\r\n function getParsingFlags(m) {\r\n if (m._pf == null) {\r\n m._pf = defaultParsingFlags();\r\n }\r\n return m._pf;\r\n }\r\n\r\n var some;\r\n if (Array.prototype.some) {\r\n some = Array.prototype.some;\r\n } else {\r\n some = function (fun) {\r\n var t = Object(this),\r\n len = t.length >>> 0,\r\n i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (i in t && fun.call(this, t[i], i, t)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n\r\n function isValid(m) {\r\n var flags = null,\r\n parsedParts = false,\r\n isNowValid = m._d && !isNaN(m._d.getTime());\r\n if (isNowValid) {\r\n flags = getParsingFlags(m);\r\n parsedParts = some.call(flags.parsedDateParts, function (i) {\r\n return i != null;\r\n });\r\n isNowValid =\r\n flags.overflow < 0 &&\r\n !flags.empty &&\r\n !flags.invalidEra &&\r\n !flags.invalidMonth &&\r\n !flags.invalidWeekday &&\r\n !flags.weekdayMismatch &&\r\n !flags.nullInput &&\r\n !flags.invalidFormat &&\r\n !flags.userInvalidated &&\r\n (!flags.meridiem || (flags.meridiem && parsedParts));\r\n if (m._strict) {\r\n isNowValid =\r\n isNowValid &&\r\n flags.charsLeftOver === 0 &&\r\n flags.unusedTokens.length === 0 &&\r\n flags.bigHour === undefined;\r\n }\r\n }\r\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\r\n m._isValid = isNowValid;\r\n } else {\r\n return isNowValid;\r\n }\r\n return m._isValid;\r\n }\r\n\r\n function createInvalid(flags) {\r\n var m = createUTC(NaN);\r\n if (flags != null) {\r\n extend(getParsingFlags(m), flags);\r\n } else {\r\n getParsingFlags(m).userInvalidated = true;\r\n }\r\n\r\n return m;\r\n }\r\n\r\n // Plugins that add properties should also add the key here (null value),\r\n // so we can properly clone ourselves.\r\n var momentProperties = (hooks.momentProperties = []),\r\n updateInProgress = false;\r\n\r\n function copyConfig(to, from) {\r\n var i,\r\n prop,\r\n val,\r\n momentPropertiesLen = momentProperties.length;\r\n\r\n if (!isUndefined(from._isAMomentObject)) {\r\n to._isAMomentObject = from._isAMomentObject;\r\n }\r\n if (!isUndefined(from._i)) {\r\n to._i = from._i;\r\n }\r\n if (!isUndefined(from._f)) {\r\n to._f = from._f;\r\n }\r\n if (!isUndefined(from._l)) {\r\n to._l = from._l;\r\n }\r\n if (!isUndefined(from._strict)) {\r\n to._strict = from._strict;\r\n }\r\n if (!isUndefined(from._tzm)) {\r\n to._tzm = from._tzm;\r\n }\r\n if (!isUndefined(from._isUTC)) {\r\n to._isUTC = from._isUTC;\r\n }\r\n if (!isUndefined(from._offset)) {\r\n to._offset = from._offset;\r\n }\r\n if (!isUndefined(from._pf)) {\r\n to._pf = getParsingFlags(from);\r\n }\r\n if (!isUndefined(from._locale)) {\r\n to._locale = from._locale;\r\n }\r\n\r\n if (momentPropertiesLen > 0) {\r\n for (i = 0; i < momentPropertiesLen; i++) {\r\n prop = momentProperties[i];\r\n val = from[prop];\r\n if (!isUndefined(val)) {\r\n to[prop] = val;\r\n }\r\n }\r\n }\r\n\r\n return to;\r\n }\r\n\r\n // Moment prototype object\r\n function Moment(config) {\r\n copyConfig(this, config);\r\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\r\n if (!this.isValid()) {\r\n this._d = new Date(NaN);\r\n }\r\n // Prevent infinite loop in case updateOffset creates new moment\r\n // objects.\r\n if (updateInProgress === false) {\r\n updateInProgress = true;\r\n hooks.updateOffset(this);\r\n updateInProgress = false;\r\n }\r\n }\r\n\r\n function isMoment(obj) {\r\n return (\r\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\r\n );\r\n }\r\n\r\n function warn(msg) {\r\n if (\r\n hooks.suppressDeprecationWarnings === false &&\r\n typeof console !== 'undefined' &&\r\n console.warn\r\n ) {\r\n console.warn('Deprecation warning: ' + msg);\r\n }\r\n }\r\n\r\n function deprecate(msg, fn) {\r\n var firstTime = true;\r\n\r\n return extend(function () {\r\n if (hooks.deprecationHandler != null) {\r\n hooks.deprecationHandler(null, msg);\r\n }\r\n if (firstTime) {\r\n var args = [],\r\n arg,\r\n i,\r\n key,\r\n argLen = arguments.length;\r\n for (i = 0; i < argLen; i++) {\r\n arg = '';\r\n if (typeof arguments[i] === 'object') {\r\n arg += '\\n[' + i + '] ';\r\n for (key in arguments[0]) {\r\n if (hasOwnProp(arguments[0], key)) {\r\n arg += key + ': ' + arguments[0][key] + ', ';\r\n }\r\n }\r\n arg = arg.slice(0, -2); // Remove trailing comma and space\r\n } else {\r\n arg = arguments[i];\r\n }\r\n args.push(arg);\r\n }\r\n warn(\r\n msg +\r\n '\\nArguments: ' +\r\n Array.prototype.slice.call(args).join('') +\r\n '\\n' +\r\n new Error().stack\r\n );\r\n firstTime = false;\r\n }\r\n return fn.apply(this, arguments);\r\n }, fn);\r\n }\r\n\r\n var deprecations = {};\r\n\r\n function deprecateSimple(name, msg) {\r\n if (hooks.deprecationHandler != null) {\r\n hooks.deprecationHandler(name, msg);\r\n }\r\n if (!deprecations[name]) {\r\n warn(msg);\r\n deprecations[name] = true;\r\n }\r\n }\r\n\r\n hooks.suppressDeprecationWarnings = false;\r\n hooks.deprecationHandler = null;\r\n\r\n function isFunction(input) {\r\n return (\r\n (typeof Function !== 'undefined' && input instanceof Function) ||\r\n Object.prototype.toString.call(input) === '[object Function]'\r\n );\r\n }\r\n\r\n function set(config) {\r\n var prop, i;\r\n for (i in config) {\r\n if (hasOwnProp(config, i)) {\r\n prop = config[i];\r\n if (isFunction(prop)) {\r\n this[i] = prop;\r\n } else {\r\n this['_' + i] = prop;\r\n }\r\n }\r\n }\r\n this._config = config;\r\n // Lenient ordinal parsing accepts just a number in addition to\r\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\r\n // TODO: Remove \"ordinalParse\" fallback in next major release.\r\n this._dayOfMonthOrdinalParseLenient = new RegExp(\r\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\r\n '|' +\r\n /\\d{1,2}/.source\r\n );\r\n }\r\n\r\n function mergeConfigs(parentConfig, childConfig) {\r\n var res = extend({}, parentConfig),\r\n prop;\r\n for (prop in childConfig) {\r\n if (hasOwnProp(childConfig, prop)) {\r\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\r\n res[prop] = {};\r\n extend(res[prop], parentConfig[prop]);\r\n extend(res[prop], childConfig[prop]);\r\n } else if (childConfig[prop] != null) {\r\n res[prop] = childConfig[prop];\r\n } else {\r\n delete res[prop];\r\n }\r\n }\r\n }\r\n for (prop in parentConfig) {\r\n if (\r\n hasOwnProp(parentConfig, prop) &&\r\n !hasOwnProp(childConfig, prop) &&\r\n isObject(parentConfig[prop])\r\n ) {\r\n // make sure changes to properties don't modify parent config\r\n res[prop] = extend({}, res[prop]);\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n function Locale(config) {\r\n if (config != null) {\r\n this.set(config);\r\n }\r\n }\r\n\r\n var keys;\r\n\r\n if (Object.keys) {\r\n keys = Object.keys;\r\n } else {\r\n keys = function (obj) {\r\n var i,\r\n res = [];\r\n for (i in obj) {\r\n if (hasOwnProp(obj, i)) {\r\n res.push(i);\r\n }\r\n }\r\n return res;\r\n };\r\n }\r\n\r\n var defaultCalendar = {\r\n sameDay: '[Today at] LT',\r\n nextDay: '[Tomorrow at] LT',\r\n nextWeek: 'dddd [at] LT',\r\n lastDay: '[Yesterday at] LT',\r\n lastWeek: '[Last] dddd [at] LT',\r\n sameElse: 'L',\r\n };\r\n\r\n function calendar(key, mom, now) {\r\n var output = this._calendar[key] || this._calendar['sameElse'];\r\n return isFunction(output) ? output.call(mom, now) : output;\r\n }\r\n\r\n function zeroFill(number, targetLength, forceSign) {\r\n var absNumber = '' + Math.abs(number),\r\n zerosToFill = targetLength - absNumber.length,\r\n sign = number >= 0;\r\n return (\r\n (sign ? (forceSign ? '+' : '') : '-') +\r\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\r\n absNumber\r\n );\r\n }\r\n\r\n var formattingTokens =\r\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\r\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\r\n formatFunctions = {},\r\n formatTokenFunctions = {};\r\n\r\n // token: 'M'\r\n // padded: ['MM', 2]\r\n // ordinal: 'Mo'\r\n // callback: function () { this.month() + 1 }\r\n function addFormatToken(token, padded, ordinal, callback) {\r\n var func = callback;\r\n if (typeof callback === 'string') {\r\n func = function () {\r\n return this[callback]();\r\n };\r\n }\r\n if (token) {\r\n formatTokenFunctions[token] = func;\r\n }\r\n if (padded) {\r\n formatTokenFunctions[padded[0]] = function () {\r\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\r\n };\r\n }\r\n if (ordinal) {\r\n formatTokenFunctions[ordinal] = function () {\r\n return this.localeData().ordinal(\r\n func.apply(this, arguments),\r\n token\r\n );\r\n };\r\n }\r\n }\r\n\r\n function removeFormattingTokens(input) {\r\n if (input.match(/\\[[\\s\\S]/)) {\r\n return input.replace(/^\\[|\\]$/g, '');\r\n }\r\n return input.replace(/\\\\/g, '');\r\n }\r\n\r\n function makeFormatFunction(format) {\r\n var array = format.match(formattingTokens),\r\n i,\r\n length;\r\n\r\n for (i = 0, length = array.length; i < length; i++) {\r\n if (formatTokenFunctions[array[i]]) {\r\n array[i] = formatTokenFunctions[array[i]];\r\n } else {\r\n array[i] = removeFormattingTokens(array[i]);\r\n }\r\n }\r\n\r\n return function (mom) {\r\n var output = '',\r\n i;\r\n for (i = 0; i < length; i++) {\r\n output += isFunction(array[i])\r\n ? array[i].call(mom, format)\r\n : array[i];\r\n }\r\n return output;\r\n };\r\n }\r\n\r\n // format date using native date object\r\n function formatMoment(m, format) {\r\n if (!m.isValid()) {\r\n return m.localeData().invalidDate();\r\n }\r\n\r\n format = expandFormat(format, m.localeData());\r\n formatFunctions[format] =\r\n formatFunctions[format] || makeFormatFunction(format);\r\n\r\n return formatFunctions[format](m);\r\n }\r\n\r\n function expandFormat(format, locale) {\r\n var i = 5;\r\n\r\n function replaceLongDateFormatTokens(input) {\r\n return locale.longDateFormat(input) || input;\r\n }\r\n\r\n localFormattingTokens.lastIndex = 0;\r\n while (i >= 0 && localFormattingTokens.test(format)) {\r\n format = format.replace(\r\n localFormattingTokens,\r\n replaceLongDateFormatTokens\r\n );\r\n localFormattingTokens.lastIndex = 0;\r\n i -= 1;\r\n }\r\n\r\n return format;\r\n }\r\n\r\n var defaultLongDateFormat = {\r\n LTS: 'h:mm:ss A',\r\n LT: 'h:mm A',\r\n L: 'MM/DD/YYYY',\r\n LL: 'MMMM D, YYYY',\r\n LLL: 'MMMM D, YYYY h:mm A',\r\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\r\n };\r\n\r\n function longDateFormat(key) {\r\n var format = this._longDateFormat[key],\r\n formatUpper = this._longDateFormat[key.toUpperCase()];\r\n\r\n if (format || !formatUpper) {\r\n return format;\r\n }\r\n\r\n this._longDateFormat[key] = formatUpper\r\n .match(formattingTokens)\r\n .map(function (tok) {\r\n if (\r\n tok === 'MMMM' ||\r\n tok === 'MM' ||\r\n tok === 'DD' ||\r\n tok === 'dddd'\r\n ) {\r\n return tok.slice(1);\r\n }\r\n return tok;\r\n })\r\n .join('');\r\n\r\n return this._longDateFormat[key];\r\n }\r\n\r\n var defaultInvalidDate = 'Invalid date';\r\n\r\n function invalidDate() {\r\n return this._invalidDate;\r\n }\r\n\r\n var defaultOrdinal = '%d',\r\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\r\n\r\n function ordinal(number) {\r\n return this._ordinal.replace('%d', number);\r\n }\r\n\r\n var defaultRelativeTime = {\r\n future: 'in %s',\r\n past: '%s ago',\r\n s: 'a few seconds',\r\n ss: '%d seconds',\r\n m: 'a minute',\r\n mm: '%d minutes',\r\n h: 'an hour',\r\n hh: '%d hours',\r\n d: 'a day',\r\n dd: '%d days',\r\n w: 'a week',\r\n ww: '%d weeks',\r\n M: 'a month',\r\n MM: '%d months',\r\n y: 'a year',\r\n yy: '%d years',\r\n };\r\n\r\n function relativeTime(number, withoutSuffix, string, isFuture) {\r\n var output = this._relativeTime[string];\r\n return isFunction(output)\r\n ? output(number, withoutSuffix, string, isFuture)\r\n : output.replace(/%d/i, number);\r\n }\r\n\r\n function pastFuture(diff, output) {\r\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\r\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\r\n }\r\n\r\n var aliases = {\r\n D: 'date',\r\n dates: 'date',\r\n date: 'date',\r\n d: 'day',\r\n days: 'day',\r\n day: 'day',\r\n e: 'weekday',\r\n weekdays: 'weekday',\r\n weekday: 'weekday',\r\n E: 'isoWeekday',\r\n isoweekdays: 'isoWeekday',\r\n isoweekday: 'isoWeekday',\r\n DDD: 'dayOfYear',\r\n dayofyears: 'dayOfYear',\r\n dayofyear: 'dayOfYear',\r\n h: 'hour',\r\n hours: 'hour',\r\n hour: 'hour',\r\n ms: 'millisecond',\r\n milliseconds: 'millisecond',\r\n millisecond: 'millisecond',\r\n m: 'minute',\r\n minutes: 'minute',\r\n minute: 'minute',\r\n M: 'month',\r\n months: 'month',\r\n month: 'month',\r\n Q: 'quarter',\r\n quarters: 'quarter',\r\n quarter: 'quarter',\r\n s: 'second',\r\n seconds: 'second',\r\n second: 'second',\r\n gg: 'weekYear',\r\n weekyears: 'weekYear',\r\n weekyear: 'weekYear',\r\n GG: 'isoWeekYear',\r\n isoweekyears: 'isoWeekYear',\r\n isoweekyear: 'isoWeekYear',\r\n w: 'week',\r\n weeks: 'week',\r\n week: 'week',\r\n W: 'isoWeek',\r\n isoweeks: 'isoWeek',\r\n isoweek: 'isoWeek',\r\n y: 'year',\r\n years: 'year',\r\n year: 'year',\r\n };\r\n\r\n function normalizeUnits(units) {\r\n return typeof units === 'string'\r\n ? aliases[units] || aliases[units.toLowerCase()]\r\n : undefined;\r\n }\r\n\r\n function normalizeObjectUnits(inputObject) {\r\n var normalizedInput = {},\r\n normalizedProp,\r\n prop;\r\n\r\n for (prop in inputObject) {\r\n if (hasOwnProp(inputObject, prop)) {\r\n normalizedProp = normalizeUnits(prop);\r\n if (normalizedProp) {\r\n normalizedInput[normalizedProp] = inputObject[prop];\r\n }\r\n }\r\n }\r\n\r\n return normalizedInput;\r\n }\r\n\r\n var priorities = {\r\n date: 9,\r\n day: 11,\r\n weekday: 11,\r\n isoWeekday: 11,\r\n dayOfYear: 4,\r\n hour: 13,\r\n millisecond: 16,\r\n minute: 14,\r\n month: 8,\r\n quarter: 7,\r\n second: 15,\r\n weekYear: 1,\r\n isoWeekYear: 1,\r\n week: 5,\r\n isoWeek: 5,\r\n year: 1,\r\n };\r\n\r\n function getPrioritizedUnits(unitsObj) {\r\n var units = [],\r\n u;\r\n for (u in unitsObj) {\r\n if (hasOwnProp(unitsObj, u)) {\r\n units.push({ unit: u, priority: priorities[u] });\r\n }\r\n }\r\n units.sort(function (a, b) {\r\n return a.priority - b.priority;\r\n });\r\n return units;\r\n }\r\n\r\n var match1 = /\\d/, // 0 - 9\r\n match2 = /\\d\\d/, // 00 - 99\r\n match3 = /\\d{3}/, // 000 - 999\r\n match4 = /\\d{4}/, // 0000 - 9999\r\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\r\n match1to2 = /\\d\\d?/, // 0 - 99\r\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\r\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\r\n match1to3 = /\\d{1,3}/, // 0 - 999\r\n match1to4 = /\\d{1,4}/, // 0 - 9999\r\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\r\n matchUnsigned = /\\d+/, // 0 - inf\r\n matchSigned = /[+-]?\\d+/, // -inf - inf\r\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\r\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\r\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\r\n // any word (or two) characters or numbers including two/three word month in arabic.\r\n // includes scottish gaelic two word and hyphenated months\r\n matchWord =\r\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\r\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\r\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\r\n regexes;\r\n\r\n regexes = {};\r\n\r\n function addRegexToken(token, regex, strictRegex) {\r\n regexes[token] = isFunction(regex)\r\n ? regex\r\n : function (isStrict, localeData) {\r\n return isStrict && strictRegex ? strictRegex : regex;\r\n };\r\n }\r\n\r\n function getParseRegexForToken(token, config) {\r\n if (!hasOwnProp(regexes, token)) {\r\n return new RegExp(unescapeFormat(token));\r\n }\r\n\r\n return regexes[token](config._strict, config._locale);\r\n }\r\n\r\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\r\n function unescapeFormat(s) {\r\n return regexEscape(\r\n s\r\n .replace('\\\\', '')\r\n .replace(\r\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\r\n function (matched, p1, p2, p3, p4) {\r\n return p1 || p2 || p3 || p4;\r\n }\r\n )\r\n );\r\n }\r\n\r\n function regexEscape(s) {\r\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n }\r\n\r\n function absFloor(number) {\r\n if (number < 0) {\r\n // -0 -> 0\r\n return Math.ceil(number) || 0;\r\n } else {\r\n return Math.floor(number);\r\n }\r\n }\r\n\r\n function toInt(argumentForCoercion) {\r\n var coercedNumber = +argumentForCoercion,\r\n value = 0;\r\n\r\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\r\n value = absFloor(coercedNumber);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n var tokens = {};\r\n\r\n function addParseToken(token, callback) {\r\n var i,\r\n func = callback,\r\n tokenLen;\r\n if (typeof token === 'string') {\r\n token = [token];\r\n }\r\n if (isNumber(callback)) {\r\n func = function (input, array) {\r\n array[callback] = toInt(input);\r\n };\r\n }\r\n tokenLen = token.length;\r\n for (i = 0; i < tokenLen; i++) {\r\n tokens[token[i]] = func;\r\n }\r\n }\r\n\r\n function addWeekParseToken(token, callback) {\r\n addParseToken(token, function (input, array, config, token) {\r\n config._w = config._w || {};\r\n callback(input, config._w, config, token);\r\n });\r\n }\r\n\r\n function addTimeToArrayFromToken(token, input, config) {\r\n if (input != null && hasOwnProp(tokens, token)) {\r\n tokens[token](input, config._a, config, token);\r\n }\r\n }\r\n\r\n function isLeapYear(year) {\r\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\r\n }\r\n\r\n var YEAR = 0,\r\n MONTH = 1,\r\n DATE = 2,\r\n HOUR = 3,\r\n MINUTE = 4,\r\n SECOND = 5,\r\n MILLISECOND = 6,\r\n WEEK = 7,\r\n WEEKDAY = 8;\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('Y', 0, 0, function () {\r\n var y = this.year();\r\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\r\n });\r\n\r\n addFormatToken(0, ['YY', 2], 0, function () {\r\n return this.year() % 100;\r\n });\r\n\r\n addFormatToken(0, ['YYYY', 4], 0, 'year');\r\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\r\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\r\n\r\n // PARSING\r\n\r\n addRegexToken('Y', matchSigned);\r\n addRegexToken('YY', match1to2, match2);\r\n addRegexToken('YYYY', match1to4, match4);\r\n addRegexToken('YYYYY', match1to6, match6);\r\n addRegexToken('YYYYYY', match1to6, match6);\r\n\r\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\r\n addParseToken('YYYY', function (input, array) {\r\n array[YEAR] =\r\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\r\n });\r\n addParseToken('YY', function (input, array) {\r\n array[YEAR] = hooks.parseTwoDigitYear(input);\r\n });\r\n addParseToken('Y', function (input, array) {\r\n array[YEAR] = parseInt(input, 10);\r\n });\r\n\r\n // HELPERS\r\n\r\n function daysInYear(year) {\r\n return isLeapYear(year) ? 366 : 365;\r\n }\r\n\r\n // HOOKS\r\n\r\n hooks.parseTwoDigitYear = function (input) {\r\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\r\n };\r\n\r\n // MOMENTS\r\n\r\n var getSetYear = makeGetSet('FullYear', true);\r\n\r\n function getIsLeapYear() {\r\n return isLeapYear(this.year());\r\n }\r\n\r\n function makeGetSet(unit, keepTime) {\r\n return function (value) {\r\n if (value != null) {\r\n set$1(this, unit, value);\r\n hooks.updateOffset(this, keepTime);\r\n return this;\r\n } else {\r\n return get(this, unit);\r\n }\r\n };\r\n }\r\n\r\n function get(mom, unit) {\r\n if (!mom.isValid()) {\r\n return NaN;\r\n }\r\n\r\n var d = mom._d,\r\n isUTC = mom._isUTC;\r\n\r\n switch (unit) {\r\n case 'Milliseconds':\r\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\r\n case 'Seconds':\r\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\r\n case 'Minutes':\r\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\r\n case 'Hours':\r\n return isUTC ? d.getUTCHours() : d.getHours();\r\n case 'Date':\r\n return isUTC ? d.getUTCDate() : d.getDate();\r\n case 'Day':\r\n return isUTC ? d.getUTCDay() : d.getDay();\r\n case 'Month':\r\n return isUTC ? d.getUTCMonth() : d.getMonth();\r\n case 'FullYear':\r\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\r\n default:\r\n return NaN; // Just in case\r\n }\r\n }\r\n\r\n function set$1(mom, unit, value) {\r\n var d, isUTC, year, month, date;\r\n\r\n if (!mom.isValid() || isNaN(value)) {\r\n return;\r\n }\r\n\r\n d = mom._d;\r\n isUTC = mom._isUTC;\r\n\r\n switch (unit) {\r\n case 'Milliseconds':\r\n return void (isUTC\r\n ? d.setUTCMilliseconds(value)\r\n : d.setMilliseconds(value));\r\n case 'Seconds':\r\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\r\n case 'Minutes':\r\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\r\n case 'Hours':\r\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\r\n case 'Date':\r\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\r\n // case 'Day': // Not real\r\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\r\n // case 'Month': // Not used because we need to pass two variables\r\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\r\n case 'FullYear':\r\n break; // See below ...\r\n default:\r\n return; // Just in case\r\n }\r\n\r\n year = value;\r\n month = mom.month();\r\n date = mom.date();\r\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\r\n void (isUTC\r\n ? d.setUTCFullYear(year, month, date)\r\n : d.setFullYear(year, month, date));\r\n }\r\n\r\n // MOMENTS\r\n\r\n function stringGet(units) {\r\n units = normalizeUnits(units);\r\n if (isFunction(this[units])) {\r\n return this[units]();\r\n }\r\n return this;\r\n }\r\n\r\n function stringSet(units, value) {\r\n if (typeof units === 'object') {\r\n units = normalizeObjectUnits(units);\r\n var prioritized = getPrioritizedUnits(units),\r\n i,\r\n prioritizedLen = prioritized.length;\r\n for (i = 0; i < prioritizedLen; i++) {\r\n this[prioritized[i].unit](units[prioritized[i].unit]);\r\n }\r\n } else {\r\n units = normalizeUnits(units);\r\n if (isFunction(this[units])) {\r\n return this[units](value);\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function mod(n, x) {\r\n return ((n % x) + x) % x;\r\n }\r\n\r\n var indexOf;\r\n\r\n if (Array.prototype.indexOf) {\r\n indexOf = Array.prototype.indexOf;\r\n } else {\r\n indexOf = function (o) {\r\n // I know\r\n var i;\r\n for (i = 0; i < this.length; ++i) {\r\n if (this[i] === o) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n }\r\n\r\n function daysInMonth(year, month) {\r\n if (isNaN(year) || isNaN(month)) {\r\n return NaN;\r\n }\r\n var modMonth = mod(month, 12);\r\n year += (month - modMonth) / 12;\r\n return modMonth === 1\r\n ? isLeapYear(year)\r\n ? 29\r\n : 28\r\n : 31 - ((modMonth % 7) % 2);\r\n }\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('M', ['MM', 2], 'Mo', function () {\r\n return this.month() + 1;\r\n });\r\n\r\n addFormatToken('MMM', 0, 0, function (format) {\r\n return this.localeData().monthsShort(this, format);\r\n });\r\n\r\n addFormatToken('MMMM', 0, 0, function (format) {\r\n return this.localeData().months(this, format);\r\n });\r\n\r\n // PARSING\r\n\r\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\r\n addRegexToken('MM', match1to2, match2);\r\n addRegexToken('MMM', function (isStrict, locale) {\r\n return locale.monthsShortRegex(isStrict);\r\n });\r\n addRegexToken('MMMM', function (isStrict, locale) {\r\n return locale.monthsRegex(isStrict);\r\n });\r\n\r\n addParseToken(['M', 'MM'], function (input, array) {\r\n array[MONTH] = toInt(input) - 1;\r\n });\r\n\r\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\r\n var month = config._locale.monthsParse(input, token, config._strict);\r\n // if we didn't find a month name, mark the date as invalid.\r\n if (month != null) {\r\n array[MONTH] = month;\r\n } else {\r\n getParsingFlags(config).invalidMonth = input;\r\n }\r\n });\r\n\r\n // LOCALES\r\n\r\n var defaultLocaleMonths =\r\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\r\n '_'\r\n ),\r\n defaultLocaleMonthsShort =\r\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\r\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\r\n defaultMonthsShortRegex = matchWord,\r\n defaultMonthsRegex = matchWord;\r\n\r\n function localeMonths(m, format) {\r\n if (!m) {\r\n return isArray(this._months)\r\n ? this._months\r\n : this._months['standalone'];\r\n }\r\n return isArray(this._months)\r\n ? this._months[m.month()]\r\n : this._months[\r\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\r\n ? 'format'\r\n : 'standalone'\r\n ][m.month()];\r\n }\r\n\r\n function localeMonthsShort(m, format) {\r\n if (!m) {\r\n return isArray(this._monthsShort)\r\n ? this._monthsShort\r\n : this._monthsShort['standalone'];\r\n }\r\n return isArray(this._monthsShort)\r\n ? this._monthsShort[m.month()]\r\n : this._monthsShort[\r\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\r\n ][m.month()];\r\n }\r\n\r\n function handleStrictParse(monthName, format, strict) {\r\n var i,\r\n ii,\r\n mom,\r\n llc = monthName.toLocaleLowerCase();\r\n if (!this._monthsParse) {\r\n // this is not used\r\n this._monthsParse = [];\r\n this._longMonthsParse = [];\r\n this._shortMonthsParse = [];\r\n for (i = 0; i < 12; ++i) {\r\n mom = createUTC([2000, i]);\r\n this._shortMonthsParse[i] = this.monthsShort(\r\n mom,\r\n ''\r\n ).toLocaleLowerCase();\r\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\r\n }\r\n }\r\n\r\n if (strict) {\r\n if (format === 'MMM') {\r\n ii = indexOf.call(this._shortMonthsParse, llc);\r\n return ii !== -1 ? ii : null;\r\n } else {\r\n ii = indexOf.call(this._longMonthsParse, llc);\r\n return ii !== -1 ? ii : null;\r\n }\r\n } else {\r\n if (format === 'MMM') {\r\n ii = indexOf.call(this._shortMonthsParse, llc);\r\n if (ii !== -1) {\r\n return ii;\r\n }\r\n ii = indexOf.call(this._longMonthsParse, llc);\r\n return ii !== -1 ? ii : null;\r\n } else {\r\n ii = indexOf.call(this._longMonthsParse, llc);\r\n if (ii !== -1) {\r\n return ii;\r\n }\r\n ii = indexOf.call(this._shortMonthsParse, llc);\r\n return ii !== -1 ? ii : null;\r\n }\r\n }\r\n }\r\n\r\n function localeMonthsParse(monthName, format, strict) {\r\n var i, mom, regex;\r\n\r\n if (this._monthsParseExact) {\r\n return handleStrictParse.call(this, monthName, format, strict);\r\n }\r\n\r\n if (!this._monthsParse) {\r\n this._monthsParse = [];\r\n this._longMonthsParse = [];\r\n this._shortMonthsParse = [];\r\n }\r\n\r\n // TODO: add sorting\r\n // Sorting makes sure if one month (or abbr) is a prefix of another\r\n // see sorting in computeMonthsParse\r\n for (i = 0; i < 12; i++) {\r\n // make the regex if we don't have it already\r\n mom = createUTC([2000, i]);\r\n if (strict && !this._longMonthsParse[i]) {\r\n this._longMonthsParse[i] = new RegExp(\r\n '^' + this.months(mom, '').replace('.', '') + '$',\r\n 'i'\r\n );\r\n this._shortMonthsParse[i] = new RegExp(\r\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\r\n 'i'\r\n );\r\n }\r\n if (!strict && !this._monthsParse[i]) {\r\n regex =\r\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\r\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\r\n }\r\n // test the regex\r\n if (\r\n strict &&\r\n format === 'MMMM' &&\r\n this._longMonthsParse[i].test(monthName)\r\n ) {\r\n return i;\r\n } else if (\r\n strict &&\r\n format === 'MMM' &&\r\n this._shortMonthsParse[i].test(monthName)\r\n ) {\r\n return i;\r\n } else if (!strict && this._monthsParse[i].test(monthName)) {\r\n return i;\r\n }\r\n }\r\n }\r\n\r\n // MOMENTS\r\n\r\n function setMonth(mom, value) {\r\n if (!mom.isValid()) {\r\n // No op\r\n return mom;\r\n }\r\n\r\n if (typeof value === 'string') {\r\n if (/^\\d+$/.test(value)) {\r\n value = toInt(value);\r\n } else {\r\n value = mom.localeData().monthsParse(value);\r\n // TODO: Another silent failure?\r\n if (!isNumber(value)) {\r\n return mom;\r\n }\r\n }\r\n }\r\n\r\n var month = value,\r\n date = mom.date();\r\n\r\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\r\n void (mom._isUTC\r\n ? mom._d.setUTCMonth(month, date)\r\n : mom._d.setMonth(month, date));\r\n return mom;\r\n }\r\n\r\n function getSetMonth(value) {\r\n if (value != null) {\r\n setMonth(this, value);\r\n hooks.updateOffset(this, true);\r\n return this;\r\n } else {\r\n return get(this, 'Month');\r\n }\r\n }\r\n\r\n function getDaysInMonth() {\r\n return daysInMonth(this.year(), this.month());\r\n }\r\n\r\n function monthsShortRegex(isStrict) {\r\n if (this._monthsParseExact) {\r\n if (!hasOwnProp(this, '_monthsRegex')) {\r\n computeMonthsParse.call(this);\r\n }\r\n if (isStrict) {\r\n return this._monthsShortStrictRegex;\r\n } else {\r\n return this._monthsShortRegex;\r\n }\r\n } else {\r\n if (!hasOwnProp(this, '_monthsShortRegex')) {\r\n this._monthsShortRegex = defaultMonthsShortRegex;\r\n }\r\n return this._monthsShortStrictRegex && isStrict\r\n ? this._monthsShortStrictRegex\r\n : this._monthsShortRegex;\r\n }\r\n }\r\n\r\n function monthsRegex(isStrict) {\r\n if (this._monthsParseExact) {\r\n if (!hasOwnProp(this, '_monthsRegex')) {\r\n computeMonthsParse.call(this);\r\n }\r\n if (isStrict) {\r\n return this._monthsStrictRegex;\r\n } else {\r\n return this._monthsRegex;\r\n }\r\n } else {\r\n if (!hasOwnProp(this, '_monthsRegex')) {\r\n this._monthsRegex = defaultMonthsRegex;\r\n }\r\n return this._monthsStrictRegex && isStrict\r\n ? this._monthsStrictRegex\r\n : this._monthsRegex;\r\n }\r\n }\r\n\r\n function computeMonthsParse() {\r\n function cmpLenRev(a, b) {\r\n return b.length - a.length;\r\n }\r\n\r\n var shortPieces = [],\r\n longPieces = [],\r\n mixedPieces = [],\r\n i,\r\n mom,\r\n shortP,\r\n longP;\r\n for (i = 0; i < 12; i++) {\r\n // make the regex if we don't have it already\r\n mom = createUTC([2000, i]);\r\n shortP = regexEscape(this.monthsShort(mom, ''));\r\n longP = regexEscape(this.months(mom, ''));\r\n shortPieces.push(shortP);\r\n longPieces.push(longP);\r\n mixedPieces.push(longP);\r\n mixedPieces.push(shortP);\r\n }\r\n // Sorting makes sure if one month (or abbr) is a prefix of another it\r\n // will match the longer piece.\r\n shortPieces.sort(cmpLenRev);\r\n longPieces.sort(cmpLenRev);\r\n mixedPieces.sort(cmpLenRev);\r\n\r\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\r\n this._monthsShortRegex = this._monthsRegex;\r\n this._monthsStrictRegex = new RegExp(\r\n '^(' + longPieces.join('|') + ')',\r\n 'i'\r\n );\r\n this._monthsShortStrictRegex = new RegExp(\r\n '^(' + shortPieces.join('|') + ')',\r\n 'i'\r\n );\r\n }\r\n\r\n function createDate(y, m, d, h, M, s, ms) {\r\n // can't just apply() to create a date:\r\n // https://stackoverflow.com/q/181348\r\n var date;\r\n // the date constructor remaps years 0-99 to 1900-1999\r\n if (y < 100 && y >= 0) {\r\n // preserve leap years using a full 400 year cycle, then reset\r\n date = new Date(y + 400, m, d, h, M, s, ms);\r\n if (isFinite(date.getFullYear())) {\r\n date.setFullYear(y);\r\n }\r\n } else {\r\n date = new Date(y, m, d, h, M, s, ms);\r\n }\r\n\r\n return date;\r\n }\r\n\r\n function createUTCDate(y) {\r\n var date, args;\r\n // the Date.UTC function remaps years 0-99 to 1900-1999\r\n if (y < 100 && y >= 0) {\r\n args = Array.prototype.slice.call(arguments);\r\n // preserve leap years using a full 400 year cycle, then reset\r\n args[0] = y + 400;\r\n date = new Date(Date.UTC.apply(null, args));\r\n if (isFinite(date.getUTCFullYear())) {\r\n date.setUTCFullYear(y);\r\n }\r\n } else {\r\n date = new Date(Date.UTC.apply(null, arguments));\r\n }\r\n\r\n return date;\r\n }\r\n\r\n // start-of-first-week - start-of-year\r\n function firstWeekOffset(year, dow, doy) {\r\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\r\n fwd = 7 + dow - doy,\r\n // first-week day local weekday -- which local weekday is fwd\r\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\r\n\r\n return -fwdlw + fwd - 1;\r\n }\r\n\r\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\r\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\r\n var localWeekday = (7 + weekday - dow) % 7,\r\n weekOffset = firstWeekOffset(year, dow, doy),\r\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\r\n resYear,\r\n resDayOfYear;\r\n\r\n if (dayOfYear <= 0) {\r\n resYear = year - 1;\r\n resDayOfYear = daysInYear(resYear) + dayOfYear;\r\n } else if (dayOfYear > daysInYear(year)) {\r\n resYear = year + 1;\r\n resDayOfYear = dayOfYear - daysInYear(year);\r\n } else {\r\n resYear = year;\r\n resDayOfYear = dayOfYear;\r\n }\r\n\r\n return {\r\n year: resYear,\r\n dayOfYear: resDayOfYear,\r\n };\r\n }\r\n\r\n function weekOfYear(mom, dow, doy) {\r\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\r\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\r\n resWeek,\r\n resYear;\r\n\r\n if (week < 1) {\r\n resYear = mom.year() - 1;\r\n resWeek = week + weeksInYear(resYear, dow, doy);\r\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\r\n resWeek = week - weeksInYear(mom.year(), dow, doy);\r\n resYear = mom.year() + 1;\r\n } else {\r\n resYear = mom.year();\r\n resWeek = week;\r\n }\r\n\r\n return {\r\n week: resWeek,\r\n year: resYear,\r\n };\r\n }\r\n\r\n function weeksInYear(year, dow, doy) {\r\n var weekOffset = firstWeekOffset(year, dow, doy),\r\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\r\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\r\n }\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('w', ['ww', 2], 'wo', 'week');\r\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\r\n\r\n // PARSING\r\n\r\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\r\n addRegexToken('ww', match1to2, match2);\r\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\r\n addRegexToken('WW', match1to2, match2);\r\n\r\n addWeekParseToken(\r\n ['w', 'ww', 'W', 'WW'],\r\n function (input, week, config, token) {\r\n week[token.substr(0, 1)] = toInt(input);\r\n }\r\n );\r\n\r\n // HELPERS\r\n\r\n // LOCALES\r\n\r\n function localeWeek(mom) {\r\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\r\n }\r\n\r\n var defaultLocaleWeek = {\r\n dow: 0, // Sunday is the first day of the week.\r\n doy: 6, // The week that contains Jan 6th is the first week of the year.\r\n };\r\n\r\n function localeFirstDayOfWeek() {\r\n return this._week.dow;\r\n }\r\n\r\n function localeFirstDayOfYear() {\r\n return this._week.doy;\r\n }\r\n\r\n // MOMENTS\r\n\r\n function getSetWeek(input) {\r\n var week = this.localeData().week(this);\r\n return input == null ? week : this.add((input - week) * 7, 'd');\r\n }\r\n\r\n function getSetISOWeek(input) {\r\n var week = weekOfYear(this, 1, 4).week;\r\n return input == null ? week : this.add((input - week) * 7, 'd');\r\n }\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('d', 0, 'do', 'day');\r\n\r\n addFormatToken('dd', 0, 0, function (format) {\r\n return this.localeData().weekdaysMin(this, format);\r\n });\r\n\r\n addFormatToken('ddd', 0, 0, function (format) {\r\n return this.localeData().weekdaysShort(this, format);\r\n });\r\n\r\n addFormatToken('dddd', 0, 0, function (format) {\r\n return this.localeData().weekdays(this, format);\r\n });\r\n\r\n addFormatToken('e', 0, 0, 'weekday');\r\n addFormatToken('E', 0, 0, 'isoWeekday');\r\n\r\n // PARSING\r\n\r\n addRegexToken('d', match1to2);\r\n addRegexToken('e', match1to2);\r\n addRegexToken('E', match1to2);\r\n addRegexToken('dd', function (isStrict, locale) {\r\n return locale.weekdaysMinRegex(isStrict);\r\n });\r\n addRegexToken('ddd', function (isStrict, locale) {\r\n return locale.weekdaysShortRegex(isStrict);\r\n });\r\n addRegexToken('dddd', function (isStrict, locale) {\r\n return locale.weekdaysRegex(isStrict);\r\n });\r\n\r\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\r\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\r\n // if we didn't get a weekday name, mark the date as invalid\r\n if (weekday != null) {\r\n week.d = weekday;\r\n } else {\r\n getParsingFlags(config).invalidWeekday = input;\r\n }\r\n });\r\n\r\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\r\n week[token] = toInt(input);\r\n });\r\n\r\n // HELPERS\r\n\r\n function parseWeekday(input, locale) {\r\n if (typeof input !== 'string') {\r\n return input;\r\n }\r\n\r\n if (!isNaN(input)) {\r\n return parseInt(input, 10);\r\n }\r\n\r\n input = locale.weekdaysParse(input);\r\n if (typeof input === 'number') {\r\n return input;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function parseIsoWeekday(input, locale) {\r\n if (typeof input === 'string') {\r\n return locale.weekdaysParse(input) % 7 || 7;\r\n }\r\n return isNaN(input) ? null : input;\r\n }\r\n\r\n // LOCALES\r\n function shiftWeekdays(ws, n) {\r\n return ws.slice(n, 7).concat(ws.slice(0, n));\r\n }\r\n\r\n var defaultLocaleWeekdays =\r\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\r\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\r\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\r\n defaultWeekdaysRegex = matchWord,\r\n defaultWeekdaysShortRegex = matchWord,\r\n defaultWeekdaysMinRegex = matchWord;\r\n\r\n function localeWeekdays(m, format) {\r\n var weekdays = isArray(this._weekdays)\r\n ? this._weekdays\r\n : this._weekdays[\r\n m && m !== true && this._weekdays.isFormat.test(format)\r\n ? 'format'\r\n : 'standalone'\r\n ];\r\n return m === true\r\n ? shiftWeekdays(weekdays, this._week.dow)\r\n : m\r\n ? weekdays[m.day()]\r\n : weekdays;\r\n }\r\n\r\n function localeWeekdaysShort(m) {\r\n return m === true\r\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\r\n : m\r\n ? this._weekdaysShort[m.day()]\r\n : this._weekdaysShort;\r\n }\r\n\r\n function localeWeekdaysMin(m) {\r\n return m === true\r\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\r\n : m\r\n ? this._weekdaysMin[m.day()]\r\n : this._weekdaysMin;\r\n }\r\n\r\n function handleStrictParse$1(weekdayName, format, strict) {\r\n var i,\r\n ii,\r\n mom,\r\n llc = weekdayName.toLocaleLowerCase();\r\n if (!this._weekdaysParse) {\r\n this._weekdaysParse = [];\r\n this._shortWeekdaysParse = [];\r\n this._minWeekdaysParse = [];\r\n\r\n for (i = 0; i < 7; ++i) {\r\n mom = createUTC([2000, 1]).day(i);\r\n this._minWeekdaysParse[i] = this.weekdaysMin(\r\n mom,\r\n ''\r\n ).toLocaleLowerCase();\r\n this._shortWeekdaysParse[i] = this.weekdaysShort(\r\n mom,\r\n ''\r\n ).toLocaleLowerCase();\r\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\r\n }\r\n }\r\n\r\n if (strict) {\r\n if (format === 'dddd') {\r\n ii = indexOf.call(this._weekdaysParse, llc);\r\n return ii !== -1 ? ii : null;\r\n } else if (format === 'ddd') {\r\n ii = indexOf.call(this._shortWeekdaysParse, llc);\r\n return ii !== -1 ? ii : null;\r\n } else {\r\n ii = indexOf.call(this._minWeekdaysParse, llc);\r\n return ii !== -1 ? ii : null;\r\n }\r\n } else {\r\n if (format === 'dddd') {\r\n ii = indexOf.call(this._weekdaysParse, llc);\r\n if (ii !== -1) {\r\n return ii;\r\n }\r\n ii = indexOf.call(this._shortWeekdaysParse, llc);\r\n if (ii !== -1) {\r\n return ii;\r\n }\r\n ii = indexOf.call(this._minWeekdaysParse, llc);\r\n return ii !== -1 ? ii : null;\r\n } else if (format === 'ddd') {\r\n ii = indexOf.call(this._shortWeekdaysParse, llc);\r\n if (ii !== -1) {\r\n return ii;\r\n }\r\n ii = indexOf.call(this._weekdaysParse, llc);\r\n if (ii !== -1) {\r\n return ii;\r\n }\r\n ii = indexOf.call(this._minWeekdaysParse, llc);\r\n return ii !== -1 ? ii : null;\r\n } else {\r\n ii = indexOf.call(this._minWeekdaysParse, llc);\r\n if (ii !== -1) {\r\n return ii;\r\n }\r\n ii = indexOf.call(this._weekdaysParse, llc);\r\n if (ii !== -1) {\r\n return ii;\r\n }\r\n ii = indexOf.call(this._shortWeekdaysParse, llc);\r\n return ii !== -1 ? ii : null;\r\n }\r\n }\r\n }\r\n\r\n function localeWeekdaysParse(weekdayName, format, strict) {\r\n var i, mom, regex;\r\n\r\n if (this._weekdaysParseExact) {\r\n return handleStrictParse$1.call(this, weekdayName, format, strict);\r\n }\r\n\r\n if (!this._weekdaysParse) {\r\n this._weekdaysParse = [];\r\n this._minWeekdaysParse = [];\r\n this._shortWeekdaysParse = [];\r\n this._fullWeekdaysParse = [];\r\n }\r\n\r\n for (i = 0; i < 7; i++) {\r\n // make the regex if we don't have it already\r\n\r\n mom = createUTC([2000, 1]).day(i);\r\n if (strict && !this._fullWeekdaysParse[i]) {\r\n this._fullWeekdaysParse[i] = new RegExp(\r\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\r\n 'i'\r\n );\r\n this._shortWeekdaysParse[i] = new RegExp(\r\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\r\n 'i'\r\n );\r\n this._minWeekdaysParse[i] = new RegExp(\r\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\r\n 'i'\r\n );\r\n }\r\n if (!this._weekdaysParse[i]) {\r\n regex =\r\n '^' +\r\n this.weekdays(mom, '') +\r\n '|^' +\r\n this.weekdaysShort(mom, '') +\r\n '|^' +\r\n this.weekdaysMin(mom, '');\r\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\r\n }\r\n // test the regex\r\n if (\r\n strict &&\r\n format === 'dddd' &&\r\n this._fullWeekdaysParse[i].test(weekdayName)\r\n ) {\r\n return i;\r\n } else if (\r\n strict &&\r\n format === 'ddd' &&\r\n this._shortWeekdaysParse[i].test(weekdayName)\r\n ) {\r\n return i;\r\n } else if (\r\n strict &&\r\n format === 'dd' &&\r\n this._minWeekdaysParse[i].test(weekdayName)\r\n ) {\r\n return i;\r\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\r\n return i;\r\n }\r\n }\r\n }\r\n\r\n // MOMENTS\r\n\r\n function getSetDayOfWeek(input) {\r\n if (!this.isValid()) {\r\n return input != null ? this : NaN;\r\n }\r\n\r\n var day = get(this, 'Day');\r\n if (input != null) {\r\n input = parseWeekday(input, this.localeData());\r\n return this.add(input - day, 'd');\r\n } else {\r\n return day;\r\n }\r\n }\r\n\r\n function getSetLocaleDayOfWeek(input) {\r\n if (!this.isValid()) {\r\n return input != null ? this : NaN;\r\n }\r\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\r\n return input == null ? weekday : this.add(input - weekday, 'd');\r\n }\r\n\r\n function getSetISODayOfWeek(input) {\r\n if (!this.isValid()) {\r\n return input != null ? this : NaN;\r\n }\r\n\r\n // behaves the same as moment#day except\r\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\r\n // as a setter, sunday should belong to the previous week.\r\n\r\n if (input != null) {\r\n var weekday = parseIsoWeekday(input, this.localeData());\r\n return this.day(this.day() % 7 ? weekday : weekday - 7);\r\n } else {\r\n return this.day() || 7;\r\n }\r\n }\r\n\r\n function weekdaysRegex(isStrict) {\r\n if (this._weekdaysParseExact) {\r\n if (!hasOwnProp(this, '_weekdaysRegex')) {\r\n computeWeekdaysParse.call(this);\r\n }\r\n if (isStrict) {\r\n return this._weekdaysStrictRegex;\r\n } else {\r\n return this._weekdaysRegex;\r\n }\r\n } else {\r\n if (!hasOwnProp(this, '_weekdaysRegex')) {\r\n this._weekdaysRegex = defaultWeekdaysRegex;\r\n }\r\n return this._weekdaysStrictRegex && isStrict\r\n ? this._weekdaysStrictRegex\r\n : this._weekdaysRegex;\r\n }\r\n }\r\n\r\n function weekdaysShortRegex(isStrict) {\r\n if (this._weekdaysParseExact) {\r\n if (!hasOwnProp(this, '_weekdaysRegex')) {\r\n computeWeekdaysParse.call(this);\r\n }\r\n if (isStrict) {\r\n return this._weekdaysShortStrictRegex;\r\n } else {\r\n return this._weekdaysShortRegex;\r\n }\r\n } else {\r\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\r\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\r\n }\r\n return this._weekdaysShortStrictRegex && isStrict\r\n ? this._weekdaysShortStrictRegex\r\n : this._weekdaysShortRegex;\r\n }\r\n }\r\n\r\n function weekdaysMinRegex(isStrict) {\r\n if (this._weekdaysParseExact) {\r\n if (!hasOwnProp(this, '_weekdaysRegex')) {\r\n computeWeekdaysParse.call(this);\r\n }\r\n if (isStrict) {\r\n return this._weekdaysMinStrictRegex;\r\n } else {\r\n return this._weekdaysMinRegex;\r\n }\r\n } else {\r\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\r\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\r\n }\r\n return this._weekdaysMinStrictRegex && isStrict\r\n ? this._weekdaysMinStrictRegex\r\n : this._weekdaysMinRegex;\r\n }\r\n }\r\n\r\n function computeWeekdaysParse() {\r\n function cmpLenRev(a, b) {\r\n return b.length - a.length;\r\n }\r\n\r\n var minPieces = [],\r\n shortPieces = [],\r\n longPieces = [],\r\n mixedPieces = [],\r\n i,\r\n mom,\r\n minp,\r\n shortp,\r\n longp;\r\n for (i = 0; i < 7; i++) {\r\n // make the regex if we don't have it already\r\n mom = createUTC([2000, 1]).day(i);\r\n minp = regexEscape(this.weekdaysMin(mom, ''));\r\n shortp = regexEscape(this.weekdaysShort(mom, ''));\r\n longp = regexEscape(this.weekdays(mom, ''));\r\n minPieces.push(minp);\r\n shortPieces.push(shortp);\r\n longPieces.push(longp);\r\n mixedPieces.push(minp);\r\n mixedPieces.push(shortp);\r\n mixedPieces.push(longp);\r\n }\r\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\r\n // will match the longer piece.\r\n minPieces.sort(cmpLenRev);\r\n shortPieces.sort(cmpLenRev);\r\n longPieces.sort(cmpLenRev);\r\n mixedPieces.sort(cmpLenRev);\r\n\r\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\r\n this._weekdaysShortRegex = this._weekdaysRegex;\r\n this._weekdaysMinRegex = this._weekdaysRegex;\r\n\r\n this._weekdaysStrictRegex = new RegExp(\r\n '^(' + longPieces.join('|') + ')',\r\n 'i'\r\n );\r\n this._weekdaysShortStrictRegex = new RegExp(\r\n '^(' + shortPieces.join('|') + ')',\r\n 'i'\r\n );\r\n this._weekdaysMinStrictRegex = new RegExp(\r\n '^(' + minPieces.join('|') + ')',\r\n 'i'\r\n );\r\n }\r\n\r\n // FORMATTING\r\n\r\n function hFormat() {\r\n return this.hours() % 12 || 12;\r\n }\r\n\r\n function kFormat() {\r\n return this.hours() || 24;\r\n }\r\n\r\n addFormatToken('H', ['HH', 2], 0, 'hour');\r\n addFormatToken('h', ['hh', 2], 0, hFormat);\r\n addFormatToken('k', ['kk', 2], 0, kFormat);\r\n\r\n addFormatToken('hmm', 0, 0, function () {\r\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\r\n });\r\n\r\n addFormatToken('hmmss', 0, 0, function () {\r\n return (\r\n '' +\r\n hFormat.apply(this) +\r\n zeroFill(this.minutes(), 2) +\r\n zeroFill(this.seconds(), 2)\r\n );\r\n });\r\n\r\n addFormatToken('Hmm', 0, 0, function () {\r\n return '' + this.hours() + zeroFill(this.minutes(), 2);\r\n });\r\n\r\n addFormatToken('Hmmss', 0, 0, function () {\r\n return (\r\n '' +\r\n this.hours() +\r\n zeroFill(this.minutes(), 2) +\r\n zeroFill(this.seconds(), 2)\r\n );\r\n });\r\n\r\n function meridiem(token, lowercase) {\r\n addFormatToken(token, 0, 0, function () {\r\n return this.localeData().meridiem(\r\n this.hours(),\r\n this.minutes(),\r\n lowercase\r\n );\r\n });\r\n }\r\n\r\n meridiem('a', true);\r\n meridiem('A', false);\r\n\r\n // PARSING\r\n\r\n function matchMeridiem(isStrict, locale) {\r\n return locale._meridiemParse;\r\n }\r\n\r\n addRegexToken('a', matchMeridiem);\r\n addRegexToken('A', matchMeridiem);\r\n addRegexToken('H', match1to2, match1to2HasZero);\r\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\r\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\r\n addRegexToken('HH', match1to2, match2);\r\n addRegexToken('hh', match1to2, match2);\r\n addRegexToken('kk', match1to2, match2);\r\n\r\n addRegexToken('hmm', match3to4);\r\n addRegexToken('hmmss', match5to6);\r\n addRegexToken('Hmm', match3to4);\r\n addRegexToken('Hmmss', match5to6);\r\n\r\n addParseToken(['H', 'HH'], HOUR);\r\n addParseToken(['k', 'kk'], function (input, array, config) {\r\n var kInput = toInt(input);\r\n array[HOUR] = kInput === 24 ? 0 : kInput;\r\n });\r\n addParseToken(['a', 'A'], function (input, array, config) {\r\n config._isPm = config._locale.isPM(input);\r\n config._meridiem = input;\r\n });\r\n addParseToken(['h', 'hh'], function (input, array, config) {\r\n array[HOUR] = toInt(input);\r\n getParsingFlags(config).bigHour = true;\r\n });\r\n addParseToken('hmm', function (input, array, config) {\r\n var pos = input.length - 2;\r\n array[HOUR] = toInt(input.substr(0, pos));\r\n array[MINUTE] = toInt(input.substr(pos));\r\n getParsingFlags(config).bigHour = true;\r\n });\r\n addParseToken('hmmss', function (input, array, config) {\r\n var pos1 = input.length - 4,\r\n pos2 = input.length - 2;\r\n array[HOUR] = toInt(input.substr(0, pos1));\r\n array[MINUTE] = toInt(input.substr(pos1, 2));\r\n array[SECOND] = toInt(input.substr(pos2));\r\n getParsingFlags(config).bigHour = true;\r\n });\r\n addParseToken('Hmm', function (input, array, config) {\r\n var pos = input.length - 2;\r\n array[HOUR] = toInt(input.substr(0, pos));\r\n array[MINUTE] = toInt(input.substr(pos));\r\n });\r\n addParseToken('Hmmss', function (input, array, config) {\r\n var pos1 = input.length - 4,\r\n pos2 = input.length - 2;\r\n array[HOUR] = toInt(input.substr(0, pos1));\r\n array[MINUTE] = toInt(input.substr(pos1, 2));\r\n array[SECOND] = toInt(input.substr(pos2));\r\n });\r\n\r\n // LOCALES\r\n\r\n function localeIsPM(input) {\r\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\r\n // Using charAt should be more compatible.\r\n return (input + '').toLowerCase().charAt(0) === 'p';\r\n }\r\n\r\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\r\n // Setting the hour should keep the time, because the user explicitly\r\n // specified which hour they want. So trying to maintain the same hour (in\r\n // a new timezone) makes sense. Adding/subtracting hours does not follow\r\n // this rule.\r\n getSetHour = makeGetSet('Hours', true);\r\n\r\n function localeMeridiem(hours, minutes, isLower) {\r\n if (hours > 11) {\r\n return isLower ? 'pm' : 'PM';\r\n } else {\r\n return isLower ? 'am' : 'AM';\r\n }\r\n }\r\n\r\n var baseConfig = {\r\n calendar: defaultCalendar,\r\n longDateFormat: defaultLongDateFormat,\r\n invalidDate: defaultInvalidDate,\r\n ordinal: defaultOrdinal,\r\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\r\n relativeTime: defaultRelativeTime,\r\n\r\n months: defaultLocaleMonths,\r\n monthsShort: defaultLocaleMonthsShort,\r\n\r\n week: defaultLocaleWeek,\r\n\r\n weekdays: defaultLocaleWeekdays,\r\n weekdaysMin: defaultLocaleWeekdaysMin,\r\n weekdaysShort: defaultLocaleWeekdaysShort,\r\n\r\n meridiemParse: defaultLocaleMeridiemParse,\r\n };\r\n\r\n // internal storage for locale config files\r\n var locales = {},\r\n localeFamilies = {},\r\n globalLocale;\r\n\r\n function commonPrefix(arr1, arr2) {\r\n var i,\r\n minl = Math.min(arr1.length, arr2.length);\r\n for (i = 0; i < minl; i += 1) {\r\n if (arr1[i] !== arr2[i]) {\r\n return i;\r\n }\r\n }\r\n return minl;\r\n }\r\n\r\n function normalizeLocale(key) {\r\n return key ? key.toLowerCase().replace('_', '-') : key;\r\n }\r\n\r\n // pick the locale from the array\r\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\r\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\r\n function chooseLocale(names) {\r\n var i = 0,\r\n j,\r\n next,\r\n locale,\r\n split;\r\n\r\n while (i < names.length) {\r\n split = normalizeLocale(names[i]).split('-');\r\n j = split.length;\r\n next = normalizeLocale(names[i + 1]);\r\n next = next ? next.split('-') : null;\r\n while (j > 0) {\r\n locale = loadLocale(split.slice(0, j).join('-'));\r\n if (locale) {\r\n return locale;\r\n }\r\n if (\r\n next &&\r\n next.length >= j &&\r\n commonPrefix(split, next) >= j - 1\r\n ) {\r\n //the next array item is better than a shallower substring of this one\r\n break;\r\n }\r\n j--;\r\n }\r\n i++;\r\n }\r\n return globalLocale;\r\n }\r\n\r\n function isLocaleNameSane(name) {\r\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\r\n // Ensure name is available and function returns boolean\r\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\r\n }\r\n\r\n function loadLocale(name) {\r\n var oldLocale = null,\r\n aliasedRequire;\r\n // TODO: Find a better way to register and load all the locales in Node\r\n if (\r\n locales[name] === undefined &&\r\n typeof module !== 'undefined' &&\r\n module &&\r\n module.exports &&\r\n isLocaleNameSane(name)\r\n ) {\r\n try {\r\n oldLocale = globalLocale._abbr;\r\n aliasedRequire = require;\r\n aliasedRequire('./locale/' + name);\r\n getSetGlobalLocale(oldLocale);\r\n } catch (e) {\r\n // mark as not found to avoid repeating expensive file require call causing high CPU\r\n // when trying to find en-US, en_US, en-us for every format call\r\n locales[name] = null; // null means not found\r\n }\r\n }\r\n return locales[name];\r\n }\r\n\r\n // This function will load locale and then set the global locale. If\r\n // no arguments are passed in, it will simply return the current global\r\n // locale key.\r\n function getSetGlobalLocale(key, values) {\r\n var data;\r\n if (key) {\r\n if (isUndefined(values)) {\r\n data = getLocale(key);\r\n } else {\r\n data = defineLocale(key, values);\r\n }\r\n\r\n if (data) {\r\n // moment.duration._locale = moment._locale = data;\r\n globalLocale = data;\r\n } else {\r\n if (typeof console !== 'undefined' && console.warn) {\r\n //warn user if arguments are passed but the locale could not be set\r\n console.warn(\r\n 'Locale ' + key + ' not found. Did you forget to load it?'\r\n );\r\n }\r\n }\r\n }\r\n\r\n return globalLocale._abbr;\r\n }\r\n\r\n function defineLocale(name, config) {\r\n if (config !== null) {\r\n var locale,\r\n parentConfig = baseConfig;\r\n config.abbr = name;\r\n if (locales[name] != null) {\r\n deprecateSimple(\r\n 'defineLocaleOverride',\r\n 'use moment.updateLocale(localeName, config) to change ' +\r\n 'an existing locale. moment.defineLocale(localeName, ' +\r\n 'config) should only be used for creating a new locale ' +\r\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\r\n );\r\n parentConfig = locales[name]._config;\r\n } else if (config.parentLocale != null) {\r\n if (locales[config.parentLocale] != null) {\r\n parentConfig = locales[config.parentLocale]._config;\r\n } else {\r\n locale = loadLocale(config.parentLocale);\r\n if (locale != null) {\r\n parentConfig = locale._config;\r\n } else {\r\n if (!localeFamilies[config.parentLocale]) {\r\n localeFamilies[config.parentLocale] = [];\r\n }\r\n localeFamilies[config.parentLocale].push({\r\n name: name,\r\n config: config,\r\n });\r\n return null;\r\n }\r\n }\r\n }\r\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\r\n\r\n if (localeFamilies[name]) {\r\n localeFamilies[name].forEach(function (x) {\r\n defineLocale(x.name, x.config);\r\n });\r\n }\r\n\r\n // backwards compat for now: also set the locale\r\n // make sure we set the locale AFTER all child locales have been\r\n // created, so we won't end up with the child locale set.\r\n getSetGlobalLocale(name);\r\n\r\n return locales[name];\r\n } else {\r\n // useful for testing\r\n delete locales[name];\r\n return null;\r\n }\r\n }\r\n\r\n function updateLocale(name, config) {\r\n if (config != null) {\r\n var locale,\r\n tmpLocale,\r\n parentConfig = baseConfig;\r\n\r\n if (locales[name] != null && locales[name].parentLocale != null) {\r\n // Update existing child locale in-place to avoid memory-leaks\r\n locales[name].set(mergeConfigs(locales[name]._config, config));\r\n } else {\r\n // MERGE\r\n tmpLocale = loadLocale(name);\r\n if (tmpLocale != null) {\r\n parentConfig = tmpLocale._config;\r\n }\r\n config = mergeConfigs(parentConfig, config);\r\n if (tmpLocale == null) {\r\n // updateLocale is called for creating a new locale\r\n // Set abbr so it will have a name (getters return\r\n // undefined otherwise).\r\n config.abbr = name;\r\n }\r\n locale = new Locale(config);\r\n locale.parentLocale = locales[name];\r\n locales[name] = locale;\r\n }\r\n\r\n // backwards compat for now: also set the locale\r\n getSetGlobalLocale(name);\r\n } else {\r\n // pass null for config to unupdate, useful for tests\r\n if (locales[name] != null) {\r\n if (locales[name].parentLocale != null) {\r\n locales[name] = locales[name].parentLocale;\r\n if (name === getSetGlobalLocale()) {\r\n getSetGlobalLocale(name);\r\n }\r\n } else if (locales[name] != null) {\r\n delete locales[name];\r\n }\r\n }\r\n }\r\n return locales[name];\r\n }\r\n\r\n // returns locale data\r\n function getLocale(key) {\r\n var locale;\r\n\r\n if (key && key._locale && key._locale._abbr) {\r\n key = key._locale._abbr;\r\n }\r\n\r\n if (!key) {\r\n return globalLocale;\r\n }\r\n\r\n if (!isArray(key)) {\r\n //short-circuit everything else\r\n locale = loadLocale(key);\r\n if (locale) {\r\n return locale;\r\n }\r\n key = [key];\r\n }\r\n\r\n return chooseLocale(key);\r\n }\r\n\r\n function listLocales() {\r\n return keys(locales);\r\n }\r\n\r\n function checkOverflow(m) {\r\n var overflow,\r\n a = m._a;\r\n\r\n if (a && getParsingFlags(m).overflow === -2) {\r\n overflow =\r\n a[MONTH] < 0 || a[MONTH] > 11\r\n ? MONTH\r\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\r\n ? DATE\r\n : a[HOUR] < 0 ||\r\n a[HOUR] > 24 ||\r\n (a[HOUR] === 24 &&\r\n (a[MINUTE] !== 0 ||\r\n a[SECOND] !== 0 ||\r\n a[MILLISECOND] !== 0))\r\n ? HOUR\r\n : a[MINUTE] < 0 || a[MINUTE] > 59\r\n ? MINUTE\r\n : a[SECOND] < 0 || a[SECOND] > 59\r\n ? SECOND\r\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\r\n ? MILLISECOND\r\n : -1;\r\n\r\n if (\r\n getParsingFlags(m)._overflowDayOfYear &&\r\n (overflow < YEAR || overflow > DATE)\r\n ) {\r\n overflow = DATE;\r\n }\r\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\r\n overflow = WEEK;\r\n }\r\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\r\n overflow = WEEKDAY;\r\n }\r\n\r\n getParsingFlags(m).overflow = overflow;\r\n }\r\n\r\n return m;\r\n }\r\n\r\n // iso 8601 regex\r\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\r\n var extendedIsoRegex =\r\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\r\n basicIsoRegex =\r\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\r\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\r\n isoDates = [\r\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\r\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\r\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\r\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\r\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\r\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\r\n ['YYYYYYMMDD', /[+-]\\d{10}/],\r\n ['YYYYMMDD', /\\d{8}/],\r\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\r\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\r\n ['YYYYDDD', /\\d{7}/],\r\n ['YYYYMM', /\\d{6}/, false],\r\n ['YYYY', /\\d{4}/, false],\r\n ],\r\n // iso time formats and regexes\r\n isoTimes = [\r\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\r\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\r\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\r\n ['HH:mm', /\\d\\d:\\d\\d/],\r\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\r\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\r\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\r\n ['HHmm', /\\d\\d\\d\\d/],\r\n ['HH', /\\d\\d/],\r\n ],\r\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\r\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\r\n rfc2822 =\r\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\r\n obsOffsets = {\r\n UT: 0,\r\n GMT: 0,\r\n EDT: -4 * 60,\r\n EST: -5 * 60,\r\n CDT: -5 * 60,\r\n CST: -6 * 60,\r\n MDT: -6 * 60,\r\n MST: -7 * 60,\r\n PDT: -7 * 60,\r\n PST: -8 * 60,\r\n };\r\n\r\n // date from iso format\r\n function configFromISO(config) {\r\n var i,\r\n l,\r\n string = config._i,\r\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\r\n allowTime,\r\n dateFormat,\r\n timeFormat,\r\n tzFormat,\r\n isoDatesLen = isoDates.length,\r\n isoTimesLen = isoTimes.length;\r\n\r\n if (match) {\r\n getParsingFlags(config).iso = true;\r\n for (i = 0, l = isoDatesLen; i < l; i++) {\r\n if (isoDates[i][1].exec(match[1])) {\r\n dateFormat = isoDates[i][0];\r\n allowTime = isoDates[i][2] !== false;\r\n break;\r\n }\r\n }\r\n if (dateFormat == null) {\r\n config._isValid = false;\r\n return;\r\n }\r\n if (match[3]) {\r\n for (i = 0, l = isoTimesLen; i < l; i++) {\r\n if (isoTimes[i][1].exec(match[3])) {\r\n // match[2] should be 'T' or space\r\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\r\n break;\r\n }\r\n }\r\n if (timeFormat == null) {\r\n config._isValid = false;\r\n return;\r\n }\r\n }\r\n if (!allowTime && timeFormat != null) {\r\n config._isValid = false;\r\n return;\r\n }\r\n if (match[4]) {\r\n if (tzRegex.exec(match[4])) {\r\n tzFormat = 'Z';\r\n } else {\r\n config._isValid = false;\r\n return;\r\n }\r\n }\r\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\r\n configFromStringAndFormat(config);\r\n } else {\r\n config._isValid = false;\r\n }\r\n }\r\n\r\n function extractFromRFC2822Strings(\r\n yearStr,\r\n monthStr,\r\n dayStr,\r\n hourStr,\r\n minuteStr,\r\n secondStr\r\n ) {\r\n var result = [\r\n untruncateYear(yearStr),\r\n defaultLocaleMonthsShort.indexOf(monthStr),\r\n parseInt(dayStr, 10),\r\n parseInt(hourStr, 10),\r\n parseInt(minuteStr, 10),\r\n ];\r\n\r\n if (secondStr) {\r\n result.push(parseInt(secondStr, 10));\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function untruncateYear(yearStr) {\r\n var year = parseInt(yearStr, 10);\r\n if (year <= 49) {\r\n return 2000 + year;\r\n } else if (year <= 999) {\r\n return 1900 + year;\r\n }\r\n return year;\r\n }\r\n\r\n function preprocessRFC2822(s) {\r\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\r\n return s\r\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\r\n .replace(/(\\s\\s+)/g, ' ')\r\n .replace(/^\\s\\s*/, '')\r\n .replace(/\\s\\s*$/, '');\r\n }\r\n\r\n function checkWeekday(weekdayStr, parsedInput, config) {\r\n if (weekdayStr) {\r\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\r\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\r\n weekdayActual = new Date(\r\n parsedInput[0],\r\n parsedInput[1],\r\n parsedInput[2]\r\n ).getDay();\r\n if (weekdayProvided !== weekdayActual) {\r\n getParsingFlags(config).weekdayMismatch = true;\r\n config._isValid = false;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\r\n if (obsOffset) {\r\n return obsOffsets[obsOffset];\r\n } else if (militaryOffset) {\r\n // the only allowed military tz is Z\r\n return 0;\r\n } else {\r\n var hm = parseInt(numOffset, 10),\r\n m = hm % 100,\r\n h = (hm - m) / 100;\r\n return h * 60 + m;\r\n }\r\n }\r\n\r\n // date and time from ref 2822 format\r\n function configFromRFC2822(config) {\r\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\r\n parsedArray;\r\n if (match) {\r\n parsedArray = extractFromRFC2822Strings(\r\n match[4],\r\n match[3],\r\n match[2],\r\n match[5],\r\n match[6],\r\n match[7]\r\n );\r\n if (!checkWeekday(match[1], parsedArray, config)) {\r\n return;\r\n }\r\n\r\n config._a = parsedArray;\r\n config._tzm = calculateOffset(match[8], match[9], match[10]);\r\n\r\n config._d = createUTCDate.apply(null, config._a);\r\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\r\n\r\n getParsingFlags(config).rfc2822 = true;\r\n } else {\r\n config._isValid = false;\r\n }\r\n }\r\n\r\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\r\n function configFromString(config) {\r\n var matched = aspNetJsonRegex.exec(config._i);\r\n if (matched !== null) {\r\n config._d = new Date(+matched[1]);\r\n return;\r\n }\r\n\r\n configFromISO(config);\r\n if (config._isValid === false) {\r\n delete config._isValid;\r\n } else {\r\n return;\r\n }\r\n\r\n configFromRFC2822(config);\r\n if (config._isValid === false) {\r\n delete config._isValid;\r\n } else {\r\n return;\r\n }\r\n\r\n if (config._strict) {\r\n config._isValid = false;\r\n } else {\r\n // Final attempt, use Input Fallback\r\n hooks.createFromInputFallback(config);\r\n }\r\n }\r\n\r\n hooks.createFromInputFallback = deprecate(\r\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\r\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\r\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\r\n function (config) {\r\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\r\n }\r\n );\r\n\r\n // Pick the first defined of two or three arguments.\r\n function defaults(a, b, c) {\r\n if (a != null) {\r\n return a;\r\n }\r\n if (b != null) {\r\n return b;\r\n }\r\n return c;\r\n }\r\n\r\n function currentDateArray(config) {\r\n // hooks is actually the exported moment object\r\n var nowValue = new Date(hooks.now());\r\n if (config._useUTC) {\r\n return [\r\n nowValue.getUTCFullYear(),\r\n nowValue.getUTCMonth(),\r\n nowValue.getUTCDate(),\r\n ];\r\n }\r\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\r\n }\r\n\r\n // convert an array to a date.\r\n // the array should mirror the parameters below\r\n // note: all values past the year are optional and will default to the lowest possible value.\r\n // [year, month, day , hour, minute, second, millisecond]\r\n function configFromArray(config) {\r\n var i,\r\n date,\r\n input = [],\r\n currentDate,\r\n expectedWeekday,\r\n yearToUse;\r\n\r\n if (config._d) {\r\n return;\r\n }\r\n\r\n currentDate = currentDateArray(config);\r\n\r\n //compute day of the year from weeks and weekdays\r\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\r\n dayOfYearFromWeekInfo(config);\r\n }\r\n\r\n //if the day of the year is set, figure out what it is\r\n if (config._dayOfYear != null) {\r\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\r\n\r\n if (\r\n config._dayOfYear > daysInYear(yearToUse) ||\r\n config._dayOfYear === 0\r\n ) {\r\n getParsingFlags(config)._overflowDayOfYear = true;\r\n }\r\n\r\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\r\n config._a[MONTH] = date.getUTCMonth();\r\n config._a[DATE] = date.getUTCDate();\r\n }\r\n\r\n // Default to current date.\r\n // * if no year, month, day of month are given, default to today\r\n // * if day of month is given, default month and year\r\n // * if month is given, default only year\r\n // * if year is given, don't default anything\r\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\r\n config._a[i] = input[i] = currentDate[i];\r\n }\r\n\r\n // Zero out whatever was not defaulted, including time\r\n for (; i < 7; i++) {\r\n config._a[i] = input[i] =\r\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\r\n }\r\n\r\n // Check for 24:00:00.000\r\n if (\r\n config._a[HOUR] === 24 &&\r\n config._a[MINUTE] === 0 &&\r\n config._a[SECOND] === 0 &&\r\n config._a[MILLISECOND] === 0\r\n ) {\r\n config._nextDay = true;\r\n config._a[HOUR] = 0;\r\n }\r\n\r\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\r\n null,\r\n input\r\n );\r\n expectedWeekday = config._useUTC\r\n ? config._d.getUTCDay()\r\n : config._d.getDay();\r\n\r\n // Apply timezone offset from input. The actual utcOffset can be changed\r\n // with parseZone.\r\n if (config._tzm != null) {\r\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\r\n }\r\n\r\n if (config._nextDay) {\r\n config._a[HOUR] = 24;\r\n }\r\n\r\n // check for mismatching day of week\r\n if (\r\n config._w &&\r\n typeof config._w.d !== 'undefined' &&\r\n config._w.d !== expectedWeekday\r\n ) {\r\n getParsingFlags(config).weekdayMismatch = true;\r\n }\r\n }\r\n\r\n function dayOfYearFromWeekInfo(config) {\r\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\r\n\r\n w = config._w;\r\n if (w.GG != null || w.W != null || w.E != null) {\r\n dow = 1;\r\n doy = 4;\r\n\r\n // TODO: We need to take the current isoWeekYear, but that depends on\r\n // how we interpret now (local, utc, fixed offset). So create\r\n // a now version of current config (take local/utc/offset flags, and\r\n // create now).\r\n weekYear = defaults(\r\n w.GG,\r\n config._a[YEAR],\r\n weekOfYear(createLocal(), 1, 4).year\r\n );\r\n week = defaults(w.W, 1);\r\n weekday = defaults(w.E, 1);\r\n if (weekday < 1 || weekday > 7) {\r\n weekdayOverflow = true;\r\n }\r\n } else {\r\n dow = config._locale._week.dow;\r\n doy = config._locale._week.doy;\r\n\r\n curWeek = weekOfYear(createLocal(), dow, doy);\r\n\r\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\r\n\r\n // Default to current week.\r\n week = defaults(w.w, curWeek.week);\r\n\r\n if (w.d != null) {\r\n // weekday -- low day numbers are considered next week\r\n weekday = w.d;\r\n if (weekday < 0 || weekday > 6) {\r\n weekdayOverflow = true;\r\n }\r\n } else if (w.e != null) {\r\n // local weekday -- counting starts from beginning of week\r\n weekday = w.e + dow;\r\n if (w.e < 0 || w.e > 6) {\r\n weekdayOverflow = true;\r\n }\r\n } else {\r\n // default to beginning of week\r\n weekday = dow;\r\n }\r\n }\r\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\r\n getParsingFlags(config)._overflowWeeks = true;\r\n } else if (weekdayOverflow != null) {\r\n getParsingFlags(config)._overflowWeekday = true;\r\n } else {\r\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\r\n config._a[YEAR] = temp.year;\r\n config._dayOfYear = temp.dayOfYear;\r\n }\r\n }\r\n\r\n // constant that refers to the ISO standard\r\n hooks.ISO_8601 = function () {};\r\n\r\n // constant that refers to the RFC 2822 form\r\n hooks.RFC_2822 = function () {};\r\n\r\n // date from string and format string\r\n function configFromStringAndFormat(config) {\r\n // TODO: Move this to another part of the creation flow to prevent circular deps\r\n if (config._f === hooks.ISO_8601) {\r\n configFromISO(config);\r\n return;\r\n }\r\n if (config._f === hooks.RFC_2822) {\r\n configFromRFC2822(config);\r\n return;\r\n }\r\n config._a = [];\r\n getParsingFlags(config).empty = true;\r\n\r\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\r\n var string = '' + config._i,\r\n i,\r\n parsedInput,\r\n tokens,\r\n token,\r\n skipped,\r\n stringLength = string.length,\r\n totalParsedInputLength = 0,\r\n era,\r\n tokenLen;\r\n\r\n tokens =\r\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\r\n tokenLen = tokens.length;\r\n for (i = 0; i < tokenLen; i++) {\r\n token = tokens[i];\r\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\r\n [])[0];\r\n if (parsedInput) {\r\n skipped = string.substr(0, string.indexOf(parsedInput));\r\n if (skipped.length > 0) {\r\n getParsingFlags(config).unusedInput.push(skipped);\r\n }\r\n string = string.slice(\r\n string.indexOf(parsedInput) + parsedInput.length\r\n );\r\n totalParsedInputLength += parsedInput.length;\r\n }\r\n // don't parse if it's not a known token\r\n if (formatTokenFunctions[token]) {\r\n if (parsedInput) {\r\n getParsingFlags(config).empty = false;\r\n } else {\r\n getParsingFlags(config).unusedTokens.push(token);\r\n }\r\n addTimeToArrayFromToken(token, parsedInput, config);\r\n } else if (config._strict && !parsedInput) {\r\n getParsingFlags(config).unusedTokens.push(token);\r\n }\r\n }\r\n\r\n // add remaining unparsed input length to the string\r\n getParsingFlags(config).charsLeftOver =\r\n stringLength - totalParsedInputLength;\r\n if (string.length > 0) {\r\n getParsingFlags(config).unusedInput.push(string);\r\n }\r\n\r\n // clear _12h flag if hour is <= 12\r\n if (\r\n config._a[HOUR] <= 12 &&\r\n getParsingFlags(config).bigHour === true &&\r\n config._a[HOUR] > 0\r\n ) {\r\n getParsingFlags(config).bigHour = undefined;\r\n }\r\n\r\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\r\n getParsingFlags(config).meridiem = config._meridiem;\r\n // handle meridiem\r\n config._a[HOUR] = meridiemFixWrap(\r\n config._locale,\r\n config._a[HOUR],\r\n config._meridiem\r\n );\r\n\r\n // handle era\r\n era = getParsingFlags(config).era;\r\n if (era !== null) {\r\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\r\n }\r\n\r\n configFromArray(config);\r\n checkOverflow(config);\r\n }\r\n\r\n function meridiemFixWrap(locale, hour, meridiem) {\r\n var isPm;\r\n\r\n if (meridiem == null) {\r\n // nothing to do\r\n return hour;\r\n }\r\n if (locale.meridiemHour != null) {\r\n return locale.meridiemHour(hour, meridiem);\r\n } else if (locale.isPM != null) {\r\n // Fallback\r\n isPm = locale.isPM(meridiem);\r\n if (isPm && hour < 12) {\r\n hour += 12;\r\n }\r\n if (!isPm && hour === 12) {\r\n hour = 0;\r\n }\r\n return hour;\r\n } else {\r\n // this is not supposed to happen\r\n return hour;\r\n }\r\n }\r\n\r\n // date from string and array of format strings\r\n function configFromStringAndArray(config) {\r\n var tempConfig,\r\n bestMoment,\r\n scoreToBeat,\r\n i,\r\n currentScore,\r\n validFormatFound,\r\n bestFormatIsValid = false,\r\n configfLen = config._f.length;\r\n\r\n if (configfLen === 0) {\r\n getParsingFlags(config).invalidFormat = true;\r\n config._d = new Date(NaN);\r\n return;\r\n }\r\n\r\n for (i = 0; i < configfLen; i++) {\r\n currentScore = 0;\r\n validFormatFound = false;\r\n tempConfig = copyConfig({}, config);\r\n if (config._useUTC != null) {\r\n tempConfig._useUTC = config._useUTC;\r\n }\r\n tempConfig._f = config._f[i];\r\n configFromStringAndFormat(tempConfig);\r\n\r\n if (isValid(tempConfig)) {\r\n validFormatFound = true;\r\n }\r\n\r\n // if there is any input that was not parsed add a penalty for that format\r\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\r\n\r\n //or tokens\r\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\r\n\r\n getParsingFlags(tempConfig).score = currentScore;\r\n\r\n if (!bestFormatIsValid) {\r\n if (\r\n scoreToBeat == null ||\r\n currentScore < scoreToBeat ||\r\n validFormatFound\r\n ) {\r\n scoreToBeat = currentScore;\r\n bestMoment = tempConfig;\r\n if (validFormatFound) {\r\n bestFormatIsValid = true;\r\n }\r\n }\r\n } else {\r\n if (currentScore < scoreToBeat) {\r\n scoreToBeat = currentScore;\r\n bestMoment = tempConfig;\r\n }\r\n }\r\n }\r\n\r\n extend(config, bestMoment || tempConfig);\r\n }\r\n\r\n function configFromObject(config) {\r\n if (config._d) {\r\n return;\r\n }\r\n\r\n var i = normalizeObjectUnits(config._i),\r\n dayOrDate = i.day === undefined ? i.date : i.day;\r\n config._a = map(\r\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\r\n function (obj) {\r\n return obj && parseInt(obj, 10);\r\n }\r\n );\r\n\r\n configFromArray(config);\r\n }\r\n\r\n function createFromConfig(config) {\r\n var res = new Moment(checkOverflow(prepareConfig(config)));\r\n if (res._nextDay) {\r\n // Adding is smart enough around DST\r\n res.add(1, 'd');\r\n res._nextDay = undefined;\r\n }\r\n\r\n return res;\r\n }\r\n\r\n function prepareConfig(config) {\r\n var input = config._i,\r\n format = config._f;\r\n\r\n config._locale = config._locale || getLocale(config._l);\r\n\r\n if (input === null || (format === undefined && input === '')) {\r\n return createInvalid({ nullInput: true });\r\n }\r\n\r\n if (typeof input === 'string') {\r\n config._i = input = config._locale.preparse(input);\r\n }\r\n\r\n if (isMoment(input)) {\r\n return new Moment(checkOverflow(input));\r\n } else if (isDate(input)) {\r\n config._d = input;\r\n } else if (isArray(format)) {\r\n configFromStringAndArray(config);\r\n } else if (format) {\r\n configFromStringAndFormat(config);\r\n } else {\r\n configFromInput(config);\r\n }\r\n\r\n if (!isValid(config)) {\r\n config._d = null;\r\n }\r\n\r\n return config;\r\n }\r\n\r\n function configFromInput(config) {\r\n var input = config._i;\r\n if (isUndefined(input)) {\r\n config._d = new Date(hooks.now());\r\n } else if (isDate(input)) {\r\n config._d = new Date(input.valueOf());\r\n } else if (typeof input === 'string') {\r\n configFromString(config);\r\n } else if (isArray(input)) {\r\n config._a = map(input.slice(0), function (obj) {\r\n return parseInt(obj, 10);\r\n });\r\n configFromArray(config);\r\n } else if (isObject(input)) {\r\n configFromObject(config);\r\n } else if (isNumber(input)) {\r\n // from milliseconds\r\n config._d = new Date(input);\r\n } else {\r\n hooks.createFromInputFallback(config);\r\n }\r\n }\r\n\r\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\r\n var c = {};\r\n\r\n if (format === true || format === false) {\r\n strict = format;\r\n format = undefined;\r\n }\r\n\r\n if (locale === true || locale === false) {\r\n strict = locale;\r\n locale = undefined;\r\n }\r\n\r\n if (\r\n (isObject(input) && isObjectEmpty(input)) ||\r\n (isArray(input) && input.length === 0)\r\n ) {\r\n input = undefined;\r\n }\r\n // object construction must be done this way.\r\n // https://github.com/moment/moment/issues/1423\r\n c._isAMomentObject = true;\r\n c._useUTC = c._isUTC = isUTC;\r\n c._l = locale;\r\n c._i = input;\r\n c._f = format;\r\n c._strict = strict;\r\n\r\n return createFromConfig(c);\r\n }\r\n\r\n function createLocal(input, format, locale, strict) {\r\n return createLocalOrUTC(input, format, locale, strict, false);\r\n }\r\n\r\n var prototypeMin = deprecate(\r\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\r\n function () {\r\n var other = createLocal.apply(null, arguments);\r\n if (this.isValid() && other.isValid()) {\r\n return other < this ? this : other;\r\n } else {\r\n return createInvalid();\r\n }\r\n }\r\n ),\r\n prototypeMax = deprecate(\r\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\r\n function () {\r\n var other = createLocal.apply(null, arguments);\r\n if (this.isValid() && other.isValid()) {\r\n return other > this ? this : other;\r\n } else {\r\n return createInvalid();\r\n }\r\n }\r\n );\r\n\r\n // Pick a moment m from moments so that m[fn](other) is true for all\r\n // other. This relies on the function fn to be transitive.\r\n //\r\n // moments should either be an array of moment objects or an array, whose\r\n // first element is an array of moment objects.\r\n function pickBy(fn, moments) {\r\n var res, i;\r\n if (moments.length === 1 && isArray(moments[0])) {\r\n moments = moments[0];\r\n }\r\n if (!moments.length) {\r\n return createLocal();\r\n }\r\n res = moments[0];\r\n for (i = 1; i < moments.length; ++i) {\r\n if (!moments[i].isValid() || moments[i][fn](res)) {\r\n res = moments[i];\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n // TODO: Use [].sort instead?\r\n function min() {\r\n var args = [].slice.call(arguments, 0);\r\n\r\n return pickBy('isBefore', args);\r\n }\r\n\r\n function max() {\r\n var args = [].slice.call(arguments, 0);\r\n\r\n return pickBy('isAfter', args);\r\n }\r\n\r\n var now = function () {\r\n return Date.now ? Date.now() : +new Date();\r\n };\r\n\r\n var ordering = [\r\n 'year',\r\n 'quarter',\r\n 'month',\r\n 'week',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'millisecond',\r\n ];\r\n\r\n function isDurationValid(m) {\r\n var key,\r\n unitHasDecimal = false,\r\n i,\r\n orderLen = ordering.length;\r\n for (key in m) {\r\n if (\r\n hasOwnProp(m, key) &&\r\n !(\r\n indexOf.call(ordering, key) !== -1 &&\r\n (m[key] == null || !isNaN(m[key]))\r\n )\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n for (i = 0; i < orderLen; ++i) {\r\n if (m[ordering[i]]) {\r\n if (unitHasDecimal) {\r\n return false; // only allow non-integers for smallest unit\r\n }\r\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\r\n unitHasDecimal = true;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function isValid$1() {\r\n return this._isValid;\r\n }\r\n\r\n function createInvalid$1() {\r\n return createDuration(NaN);\r\n }\r\n\r\n function Duration(duration) {\r\n var normalizedInput = normalizeObjectUnits(duration),\r\n years = normalizedInput.year || 0,\r\n quarters = normalizedInput.quarter || 0,\r\n months = normalizedInput.month || 0,\r\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\r\n days = normalizedInput.day || 0,\r\n hours = normalizedInput.hour || 0,\r\n minutes = normalizedInput.minute || 0,\r\n seconds = normalizedInput.second || 0,\r\n milliseconds = normalizedInput.millisecond || 0;\r\n\r\n this._isValid = isDurationValid(normalizedInput);\r\n\r\n // representation for dateAddRemove\r\n this._milliseconds =\r\n +milliseconds +\r\n seconds * 1e3 + // 1000\r\n minutes * 6e4 + // 1000 * 60\r\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\r\n // Because of dateAddRemove treats 24 hours as different from a\r\n // day when working around DST, we need to store them separately\r\n this._days = +days + weeks * 7;\r\n // It is impossible to translate months into days without knowing\r\n // which months you are are talking about, so we have to store\r\n // it separately.\r\n this._months = +months + quarters * 3 + years * 12;\r\n\r\n this._data = {};\r\n\r\n this._locale = getLocale();\r\n\r\n this._bubble();\r\n }\r\n\r\n function isDuration(obj) {\r\n return obj instanceof Duration;\r\n }\r\n\r\n function absRound(number) {\r\n if (number < 0) {\r\n return Math.round(-1 * number) * -1;\r\n } else {\r\n return Math.round(number);\r\n }\r\n }\r\n\r\n // compare two arrays, return the number of differences\r\n function compareArrays(array1, array2, dontConvert) {\r\n var len = Math.min(array1.length, array2.length),\r\n lengthDiff = Math.abs(array1.length - array2.length),\r\n diffs = 0,\r\n i;\r\n for (i = 0; i < len; i++) {\r\n if (\r\n (dontConvert && array1[i] !== array2[i]) ||\r\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\r\n ) {\r\n diffs++;\r\n }\r\n }\r\n return diffs + lengthDiff;\r\n }\r\n\r\n // FORMATTING\r\n\r\n function offset(token, separator) {\r\n addFormatToken(token, 0, 0, function () {\r\n var offset = this.utcOffset(),\r\n sign = '+';\r\n if (offset < 0) {\r\n offset = -offset;\r\n sign = '-';\r\n }\r\n return (\r\n sign +\r\n zeroFill(~~(offset / 60), 2) +\r\n separator +\r\n zeroFill(~~offset % 60, 2)\r\n );\r\n });\r\n }\r\n\r\n offset('Z', ':');\r\n offset('ZZ', '');\r\n\r\n // PARSING\r\n\r\n addRegexToken('Z', matchShortOffset);\r\n addRegexToken('ZZ', matchShortOffset);\r\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\r\n config._useUTC = true;\r\n config._tzm = offsetFromString(matchShortOffset, input);\r\n });\r\n\r\n // HELPERS\r\n\r\n // timezone chunker\r\n // '+10:00' > ['10', '00']\r\n // '-1530' > ['-15', '30']\r\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\r\n\r\n function offsetFromString(matcher, string) {\r\n var matches = (string || '').match(matcher),\r\n chunk,\r\n parts,\r\n minutes;\r\n\r\n if (matches === null) {\r\n return null;\r\n }\r\n\r\n chunk = matches[matches.length - 1] || [];\r\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\r\n minutes = +(parts[1] * 60) + toInt(parts[2]);\r\n\r\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\r\n }\r\n\r\n // Return a moment from input, that is local/utc/zone equivalent to model.\r\n function cloneWithOffset(input, model) {\r\n var res, diff;\r\n if (model._isUTC) {\r\n res = model.clone();\r\n diff =\r\n (isMoment(input) || isDate(input)\r\n ? input.valueOf()\r\n : createLocal(input).valueOf()) - res.valueOf();\r\n // Use low-level api, because this fn is low-level api.\r\n res._d.setTime(res._d.valueOf() + diff);\r\n hooks.updateOffset(res, false);\r\n return res;\r\n } else {\r\n return createLocal(input).local();\r\n }\r\n }\r\n\r\n function getDateOffset(m) {\r\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\r\n // https://github.com/moment/moment/pull/1871\r\n return -Math.round(m._d.getTimezoneOffset());\r\n }\r\n\r\n // HOOKS\r\n\r\n // This function will be called whenever a moment is mutated.\r\n // It is intended to keep the offset in sync with the timezone.\r\n hooks.updateOffset = function () {};\r\n\r\n // MOMENTS\r\n\r\n // keepLocalTime = true means only change the timezone, without\r\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\r\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\r\n // +0200, so we adjust the time as needed, to be valid.\r\n //\r\n // Keeping the time actually adds/subtracts (one hour)\r\n // from the actual represented time. That is why we call updateOffset\r\n // a second time. In case it wants us to change the offset again\r\n // _changeInProgress == true case, then we have to adjust, because\r\n // there is no such time in the given timezone.\r\n function getSetOffset(input, keepLocalTime, keepMinutes) {\r\n var offset = this._offset || 0,\r\n localAdjust;\r\n if (!this.isValid()) {\r\n return input != null ? this : NaN;\r\n }\r\n if (input != null) {\r\n if (typeof input === 'string') {\r\n input = offsetFromString(matchShortOffset, input);\r\n if (input === null) {\r\n return this;\r\n }\r\n } else if (Math.abs(input) < 16 && !keepMinutes) {\r\n input = input * 60;\r\n }\r\n if (!this._isUTC && keepLocalTime) {\r\n localAdjust = getDateOffset(this);\r\n }\r\n this._offset = input;\r\n this._isUTC = true;\r\n if (localAdjust != null) {\r\n this.add(localAdjust, 'm');\r\n }\r\n if (offset !== input) {\r\n if (!keepLocalTime || this._changeInProgress) {\r\n addSubtract(\r\n this,\r\n createDuration(input - offset, 'm'),\r\n 1,\r\n false\r\n );\r\n } else if (!this._changeInProgress) {\r\n this._changeInProgress = true;\r\n hooks.updateOffset(this, true);\r\n this._changeInProgress = null;\r\n }\r\n }\r\n return this;\r\n } else {\r\n return this._isUTC ? offset : getDateOffset(this);\r\n }\r\n }\r\n\r\n function getSetZone(input, keepLocalTime) {\r\n if (input != null) {\r\n if (typeof input !== 'string') {\r\n input = -input;\r\n }\r\n\r\n this.utcOffset(input, keepLocalTime);\r\n\r\n return this;\r\n } else {\r\n return -this.utcOffset();\r\n }\r\n }\r\n\r\n function setOffsetToUTC(keepLocalTime) {\r\n return this.utcOffset(0, keepLocalTime);\r\n }\r\n\r\n function setOffsetToLocal(keepLocalTime) {\r\n if (this._isUTC) {\r\n this.utcOffset(0, keepLocalTime);\r\n this._isUTC = false;\r\n\r\n if (keepLocalTime) {\r\n this.subtract(getDateOffset(this), 'm');\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function setOffsetToParsedOffset() {\r\n if (this._tzm != null) {\r\n this.utcOffset(this._tzm, false, true);\r\n } else if (typeof this._i === 'string') {\r\n var tZone = offsetFromString(matchOffset, this._i);\r\n if (tZone != null) {\r\n this.utcOffset(tZone);\r\n } else {\r\n this.utcOffset(0, true);\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function hasAlignedHourOffset(input) {\r\n if (!this.isValid()) {\r\n return false;\r\n }\r\n input = input ? createLocal(input).utcOffset() : 0;\r\n\r\n return (this.utcOffset() - input) % 60 === 0;\r\n }\r\n\r\n function isDaylightSavingTime() {\r\n return (\r\n this.utcOffset() > this.clone().month(0).utcOffset() ||\r\n this.utcOffset() > this.clone().month(5).utcOffset()\r\n );\r\n }\r\n\r\n function isDaylightSavingTimeShifted() {\r\n if (!isUndefined(this._isDSTShifted)) {\r\n return this._isDSTShifted;\r\n }\r\n\r\n var c = {},\r\n other;\r\n\r\n copyConfig(c, this);\r\n c = prepareConfig(c);\r\n\r\n if (c._a) {\r\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\r\n this._isDSTShifted =\r\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\r\n } else {\r\n this._isDSTShifted = false;\r\n }\r\n\r\n return this._isDSTShifted;\r\n }\r\n\r\n function isLocal() {\r\n return this.isValid() ? !this._isUTC : false;\r\n }\r\n\r\n function isUtcOffset() {\r\n return this.isValid() ? this._isUTC : false;\r\n }\r\n\r\n function isUtc() {\r\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\r\n }\r\n\r\n // ASP.NET json date format regex\r\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\r\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\r\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\r\n // and further modified to allow for strings containing both week and day\r\n isoRegex =\r\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\r\n\r\n function createDuration(input, key) {\r\n var duration = input,\r\n // matching against regexp is expensive, do it on demand\r\n match = null,\r\n sign,\r\n ret,\r\n diffRes;\r\n\r\n if (isDuration(input)) {\r\n duration = {\r\n ms: input._milliseconds,\r\n d: input._days,\r\n M: input._months,\r\n };\r\n } else if (isNumber(input) || !isNaN(+input)) {\r\n duration = {};\r\n if (key) {\r\n duration[key] = +input;\r\n } else {\r\n duration.milliseconds = +input;\r\n }\r\n } else if ((match = aspNetRegex.exec(input))) {\r\n sign = match[1] === '-' ? -1 : 1;\r\n duration = {\r\n y: 0,\r\n d: toInt(match[DATE]) * sign,\r\n h: toInt(match[HOUR]) * sign,\r\n m: toInt(match[MINUTE]) * sign,\r\n s: toInt(match[SECOND]) * sign,\r\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\r\n };\r\n } else if ((match = isoRegex.exec(input))) {\r\n sign = match[1] === '-' ? -1 : 1;\r\n duration = {\r\n y: parseIso(match[2], sign),\r\n M: parseIso(match[3], sign),\r\n w: parseIso(match[4], sign),\r\n d: parseIso(match[5], sign),\r\n h: parseIso(match[6], sign),\r\n m: parseIso(match[7], sign),\r\n s: parseIso(match[8], sign),\r\n };\r\n } else if (duration == null) {\r\n // checks for null or undefined\r\n duration = {};\r\n } else if (\r\n typeof duration === 'object' &&\r\n ('from' in duration || 'to' in duration)\r\n ) {\r\n diffRes = momentsDifference(\r\n createLocal(duration.from),\r\n createLocal(duration.to)\r\n );\r\n\r\n duration = {};\r\n duration.ms = diffRes.milliseconds;\r\n duration.M = diffRes.months;\r\n }\r\n\r\n ret = new Duration(duration);\r\n\r\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\r\n ret._locale = input._locale;\r\n }\r\n\r\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\r\n ret._isValid = input._isValid;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n createDuration.fn = Duration.prototype;\r\n createDuration.invalid = createInvalid$1;\r\n\r\n function parseIso(inp, sign) {\r\n // We'd normally use ~~inp for this, but unfortunately it also\r\n // converts floats to ints.\r\n // inp may be undefined, so careful calling replace on it.\r\n var res = inp && parseFloat(inp.replace(',', '.'));\r\n // apply sign while we're at it\r\n return (isNaN(res) ? 0 : res) * sign;\r\n }\r\n\r\n function positiveMomentsDifference(base, other) {\r\n var res = {};\r\n\r\n res.months =\r\n other.month() - base.month() + (other.year() - base.year()) * 12;\r\n if (base.clone().add(res.months, 'M').isAfter(other)) {\r\n --res.months;\r\n }\r\n\r\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\r\n\r\n return res;\r\n }\r\n\r\n function momentsDifference(base, other) {\r\n var res;\r\n if (!(base.isValid() && other.isValid())) {\r\n return { milliseconds: 0, months: 0 };\r\n }\r\n\r\n other = cloneWithOffset(other, base);\r\n if (base.isBefore(other)) {\r\n res = positiveMomentsDifference(base, other);\r\n } else {\r\n res = positiveMomentsDifference(other, base);\r\n res.milliseconds = -res.milliseconds;\r\n res.months = -res.months;\r\n }\r\n\r\n return res;\r\n }\r\n\r\n // TODO: remove 'name' arg after deprecation is removed\r\n function createAdder(direction, name) {\r\n return function (val, period) {\r\n var dur, tmp;\r\n //invert the arguments, but complain about it\r\n if (period !== null && !isNaN(+period)) {\r\n deprecateSimple(\r\n name,\r\n 'moment().' +\r\n name +\r\n '(period, number) is deprecated. Please use moment().' +\r\n name +\r\n '(number, period). ' +\r\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\r\n );\r\n tmp = val;\r\n val = period;\r\n period = tmp;\r\n }\r\n\r\n dur = createDuration(val, period);\r\n addSubtract(this, dur, direction);\r\n return this;\r\n };\r\n }\r\n\r\n function addSubtract(mom, duration, isAdding, updateOffset) {\r\n var milliseconds = duration._milliseconds,\r\n days = absRound(duration._days),\r\n months = absRound(duration._months);\r\n\r\n if (!mom.isValid()) {\r\n // No op\r\n return;\r\n }\r\n\r\n updateOffset = updateOffset == null ? true : updateOffset;\r\n\r\n if (months) {\r\n setMonth(mom, get(mom, 'Month') + months * isAdding);\r\n }\r\n if (days) {\r\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\r\n }\r\n if (milliseconds) {\r\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\r\n }\r\n if (updateOffset) {\r\n hooks.updateOffset(mom, days || months);\r\n }\r\n }\r\n\r\n var add = createAdder(1, 'add'),\r\n subtract = createAdder(-1, 'subtract');\r\n\r\n function isString(input) {\r\n return typeof input === 'string' || input instanceof String;\r\n }\r\n\r\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\r\n function isMomentInput(input) {\r\n return (\r\n isMoment(input) ||\r\n isDate(input) ||\r\n isString(input) ||\r\n isNumber(input) ||\r\n isNumberOrStringArray(input) ||\r\n isMomentInputObject(input) ||\r\n input === null ||\r\n input === undefined\r\n );\r\n }\r\n\r\n function isMomentInputObject(input) {\r\n var objectTest = isObject(input) && !isObjectEmpty(input),\r\n propertyTest = false,\r\n properties = [\r\n 'years',\r\n 'year',\r\n 'y',\r\n 'months',\r\n 'month',\r\n 'M',\r\n 'days',\r\n 'day',\r\n 'd',\r\n 'dates',\r\n 'date',\r\n 'D',\r\n 'hours',\r\n 'hour',\r\n 'h',\r\n 'minutes',\r\n 'minute',\r\n 'm',\r\n 'seconds',\r\n 'second',\r\n 's',\r\n 'milliseconds',\r\n 'millisecond',\r\n 'ms',\r\n ],\r\n i,\r\n property,\r\n propertyLen = properties.length;\r\n\r\n for (i = 0; i < propertyLen; i += 1) {\r\n property = properties[i];\r\n propertyTest = propertyTest || hasOwnProp(input, property);\r\n }\r\n\r\n return objectTest && propertyTest;\r\n }\r\n\r\n function isNumberOrStringArray(input) {\r\n var arrayTest = isArray(input),\r\n dataTypeTest = false;\r\n if (arrayTest) {\r\n dataTypeTest =\r\n input.filter(function (item) {\r\n return !isNumber(item) && isString(input);\r\n }).length === 0;\r\n }\r\n return arrayTest && dataTypeTest;\r\n }\r\n\r\n function isCalendarSpec(input) {\r\n var objectTest = isObject(input) && !isObjectEmpty(input),\r\n propertyTest = false,\r\n properties = [\r\n 'sameDay',\r\n 'nextDay',\r\n 'lastDay',\r\n 'nextWeek',\r\n 'lastWeek',\r\n 'sameElse',\r\n ],\r\n i,\r\n property;\r\n\r\n for (i = 0; i < properties.length; i += 1) {\r\n property = properties[i];\r\n propertyTest = propertyTest || hasOwnProp(input, property);\r\n }\r\n\r\n return objectTest && propertyTest;\r\n }\r\n\r\n function getCalendarFormat(myMoment, now) {\r\n var diff = myMoment.diff(now, 'days', true);\r\n return diff < -6\r\n ? 'sameElse'\r\n : diff < -1\r\n ? 'lastWeek'\r\n : diff < 0\r\n ? 'lastDay'\r\n : diff < 1\r\n ? 'sameDay'\r\n : diff < 2\r\n ? 'nextDay'\r\n : diff < 7\r\n ? 'nextWeek'\r\n : 'sameElse';\r\n }\r\n\r\n function calendar$1(time, formats) {\r\n // Support for single parameter, formats only overload to the calendar function\r\n if (arguments.length === 1) {\r\n if (!arguments[0]) {\r\n time = undefined;\r\n formats = undefined;\r\n } else if (isMomentInput(arguments[0])) {\r\n time = arguments[0];\r\n formats = undefined;\r\n } else if (isCalendarSpec(arguments[0])) {\r\n formats = arguments[0];\r\n time = undefined;\r\n }\r\n }\r\n // We want to compare the start of today, vs this.\r\n // Getting start-of-today depends on whether we're local/utc/offset or not.\r\n var now = time || createLocal(),\r\n sod = cloneWithOffset(now, this).startOf('day'),\r\n format = hooks.calendarFormat(this, sod) || 'sameElse',\r\n output =\r\n formats &&\r\n (isFunction(formats[format])\r\n ? formats[format].call(this, now)\r\n : formats[format]);\r\n\r\n return this.format(\r\n output || this.localeData().calendar(format, this, createLocal(now))\r\n );\r\n }\r\n\r\n function clone() {\r\n return new Moment(this);\r\n }\r\n\r\n function isAfter(input, units) {\r\n var localInput = isMoment(input) ? input : createLocal(input);\r\n if (!(this.isValid() && localInput.isValid())) {\r\n return false;\r\n }\r\n units = normalizeUnits(units) || 'millisecond';\r\n if (units === 'millisecond') {\r\n return this.valueOf() > localInput.valueOf();\r\n } else {\r\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\r\n }\r\n }\r\n\r\n function isBefore(input, units) {\r\n var localInput = isMoment(input) ? input : createLocal(input);\r\n if (!(this.isValid() && localInput.isValid())) {\r\n return false;\r\n }\r\n units = normalizeUnits(units) || 'millisecond';\r\n if (units === 'millisecond') {\r\n return this.valueOf() < localInput.valueOf();\r\n } else {\r\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\r\n }\r\n }\r\n\r\n function isBetween(from, to, units, inclusivity) {\r\n var localFrom = isMoment(from) ? from : createLocal(from),\r\n localTo = isMoment(to) ? to : createLocal(to);\r\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\r\n return false;\r\n }\r\n inclusivity = inclusivity || '()';\r\n return (\r\n (inclusivity[0] === '('\r\n ? this.isAfter(localFrom, units)\r\n : !this.isBefore(localFrom, units)) &&\r\n (inclusivity[1] === ')'\r\n ? this.isBefore(localTo, units)\r\n : !this.isAfter(localTo, units))\r\n );\r\n }\r\n\r\n function isSame(input, units) {\r\n var localInput = isMoment(input) ? input : createLocal(input),\r\n inputMs;\r\n if (!(this.isValid() && localInput.isValid())) {\r\n return false;\r\n }\r\n units = normalizeUnits(units) || 'millisecond';\r\n if (units === 'millisecond') {\r\n return this.valueOf() === localInput.valueOf();\r\n } else {\r\n inputMs = localInput.valueOf();\r\n return (\r\n this.clone().startOf(units).valueOf() <= inputMs &&\r\n inputMs <= this.clone().endOf(units).valueOf()\r\n );\r\n }\r\n }\r\n\r\n function isSameOrAfter(input, units) {\r\n return this.isSame(input, units) || this.isAfter(input, units);\r\n }\r\n\r\n function isSameOrBefore(input, units) {\r\n return this.isSame(input, units) || this.isBefore(input, units);\r\n }\r\n\r\n function diff(input, units, asFloat) {\r\n var that, zoneDelta, output;\r\n\r\n if (!this.isValid()) {\r\n return NaN;\r\n }\r\n\r\n that = cloneWithOffset(input, this);\r\n\r\n if (!that.isValid()) {\r\n return NaN;\r\n }\r\n\r\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\r\n\r\n units = normalizeUnits(units);\r\n\r\n switch (units) {\r\n case 'year':\r\n output = monthDiff(this, that) / 12;\r\n break;\r\n case 'month':\r\n output = monthDiff(this, that);\r\n break;\r\n case 'quarter':\r\n output = monthDiff(this, that) / 3;\r\n break;\r\n case 'second':\r\n output = (this - that) / 1e3;\r\n break; // 1000\r\n case 'minute':\r\n output = (this - that) / 6e4;\r\n break; // 1000 * 60\r\n case 'hour':\r\n output = (this - that) / 36e5;\r\n break; // 1000 * 60 * 60\r\n case 'day':\r\n output = (this - that - zoneDelta) / 864e5;\r\n break; // 1000 * 60 * 60 * 24, negate dst\r\n case 'week':\r\n output = (this - that - zoneDelta) / 6048e5;\r\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\r\n default:\r\n output = this - that;\r\n }\r\n\r\n return asFloat ? output : absFloor(output);\r\n }\r\n\r\n function monthDiff(a, b) {\r\n if (a.date() < b.date()) {\r\n // end-of-month calculations work correct when the start month has more\r\n // days than the end month.\r\n return -monthDiff(b, a);\r\n }\r\n // difference in months\r\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\r\n // b is in (anchor - 1 month, anchor + 1 month)\r\n anchor = a.clone().add(wholeMonthDiff, 'months'),\r\n anchor2,\r\n adjust;\r\n\r\n if (b - anchor < 0) {\r\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\r\n // linear across the month\r\n adjust = (b - anchor) / (anchor - anchor2);\r\n } else {\r\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\r\n // linear across the month\r\n adjust = (b - anchor) / (anchor2 - anchor);\r\n }\r\n\r\n //check for negative zero, return zero if negative zero\r\n return -(wholeMonthDiff + adjust) || 0;\r\n }\r\n\r\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\r\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\r\n\r\n function toString() {\r\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\r\n }\r\n\r\n function toISOString(keepOffset) {\r\n if (!this.isValid()) {\r\n return null;\r\n }\r\n var utc = keepOffset !== true,\r\n m = utc ? this.clone().utc() : this;\r\n if (m.year() < 0 || m.year() > 9999) {\r\n return formatMoment(\r\n m,\r\n utc\r\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\r\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\r\n );\r\n }\r\n if (isFunction(Date.prototype.toISOString)) {\r\n // native implementation is ~50x faster, use it when we can\r\n if (utc) {\r\n return this.toDate().toISOString();\r\n } else {\r\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\r\n .toISOString()\r\n .replace('Z', formatMoment(m, 'Z'));\r\n }\r\n }\r\n return formatMoment(\r\n m,\r\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\r\n );\r\n }\r\n\r\n /**\r\n * Return a human readable representation of a moment that can\r\n * also be evaluated to get a new moment which is the same\r\n *\r\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\r\n */\r\n function inspect() {\r\n if (!this.isValid()) {\r\n return 'moment.invalid(/* ' + this._i + ' */)';\r\n }\r\n var func = 'moment',\r\n zone = '',\r\n prefix,\r\n year,\r\n datetime,\r\n suffix;\r\n if (!this.isLocal()) {\r\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\r\n zone = 'Z';\r\n }\r\n prefix = '[' + func + '(\"]';\r\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\r\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\r\n suffix = zone + '[\")]';\r\n\r\n return this.format(prefix + year + datetime + suffix);\r\n }\r\n\r\n function format(inputString) {\r\n if (!inputString) {\r\n inputString = this.isUtc()\r\n ? hooks.defaultFormatUtc\r\n : hooks.defaultFormat;\r\n }\r\n var output = formatMoment(this, inputString);\r\n return this.localeData().postformat(output);\r\n }\r\n\r\n function from(time, withoutSuffix) {\r\n if (\r\n this.isValid() &&\r\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\r\n ) {\r\n return createDuration({ to: this, from: time })\r\n .locale(this.locale())\r\n .humanize(!withoutSuffix);\r\n } else {\r\n return this.localeData().invalidDate();\r\n }\r\n }\r\n\r\n function fromNow(withoutSuffix) {\r\n return this.from(createLocal(), withoutSuffix);\r\n }\r\n\r\n function to(time, withoutSuffix) {\r\n if (\r\n this.isValid() &&\r\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\r\n ) {\r\n return createDuration({ from: this, to: time })\r\n .locale(this.locale())\r\n .humanize(!withoutSuffix);\r\n } else {\r\n return this.localeData().invalidDate();\r\n }\r\n }\r\n\r\n function toNow(withoutSuffix) {\r\n return this.to(createLocal(), withoutSuffix);\r\n }\r\n\r\n // If passed a locale key, it will set the locale for this\r\n // instance. Otherwise, it will return the locale configuration\r\n // variables for this instance.\r\n function locale(key) {\r\n var newLocaleData;\r\n\r\n if (key === undefined) {\r\n return this._locale._abbr;\r\n } else {\r\n newLocaleData = getLocale(key);\r\n if (newLocaleData != null) {\r\n this._locale = newLocaleData;\r\n }\r\n return this;\r\n }\r\n }\r\n\r\n var lang = deprecate(\r\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\r\n function (key) {\r\n if (key === undefined) {\r\n return this.localeData();\r\n } else {\r\n return this.locale(key);\r\n }\r\n }\r\n );\r\n\r\n function localeData() {\r\n return this._locale;\r\n }\r\n\r\n var MS_PER_SECOND = 1000,\r\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\r\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\r\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\r\n\r\n // actual modulo - handles negative numbers (for dates before 1970):\r\n function mod$1(dividend, divisor) {\r\n return ((dividend % divisor) + divisor) % divisor;\r\n }\r\n\r\n function localStartOfDate(y, m, d) {\r\n // the date constructor remaps years 0-99 to 1900-1999\r\n if (y < 100 && y >= 0) {\r\n // preserve leap years using a full 400 year cycle, then reset\r\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\r\n } else {\r\n return new Date(y, m, d).valueOf();\r\n }\r\n }\r\n\r\n function utcStartOfDate(y, m, d) {\r\n // Date.UTC remaps years 0-99 to 1900-1999\r\n if (y < 100 && y >= 0) {\r\n // preserve leap years using a full 400 year cycle, then reset\r\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\r\n } else {\r\n return Date.UTC(y, m, d);\r\n }\r\n }\r\n\r\n function startOf(units) {\r\n var time, startOfDate;\r\n units = normalizeUnits(units);\r\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\r\n return this;\r\n }\r\n\r\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\r\n\r\n switch (units) {\r\n case 'year':\r\n time = startOfDate(this.year(), 0, 1);\r\n break;\r\n case 'quarter':\r\n time = startOfDate(\r\n this.year(),\r\n this.month() - (this.month() % 3),\r\n 1\r\n );\r\n break;\r\n case 'month':\r\n time = startOfDate(this.year(), this.month(), 1);\r\n break;\r\n case 'week':\r\n time = startOfDate(\r\n this.year(),\r\n this.month(),\r\n this.date() - this.weekday()\r\n );\r\n break;\r\n case 'isoWeek':\r\n time = startOfDate(\r\n this.year(),\r\n this.month(),\r\n this.date() - (this.isoWeekday() - 1)\r\n );\r\n break;\r\n case 'day':\r\n case 'date':\r\n time = startOfDate(this.year(), this.month(), this.date());\r\n break;\r\n case 'hour':\r\n time = this._d.valueOf();\r\n time -= mod$1(\r\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\r\n MS_PER_HOUR\r\n );\r\n break;\r\n case 'minute':\r\n time = this._d.valueOf();\r\n time -= mod$1(time, MS_PER_MINUTE);\r\n break;\r\n case 'second':\r\n time = this._d.valueOf();\r\n time -= mod$1(time, MS_PER_SECOND);\r\n break;\r\n }\r\n\r\n this._d.setTime(time);\r\n hooks.updateOffset(this, true);\r\n return this;\r\n }\r\n\r\n function endOf(units) {\r\n var time, startOfDate;\r\n units = normalizeUnits(units);\r\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\r\n return this;\r\n }\r\n\r\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\r\n\r\n switch (units) {\r\n case 'year':\r\n time = startOfDate(this.year() + 1, 0, 1) - 1;\r\n break;\r\n case 'quarter':\r\n time =\r\n startOfDate(\r\n this.year(),\r\n this.month() - (this.month() % 3) + 3,\r\n 1\r\n ) - 1;\r\n break;\r\n case 'month':\r\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\r\n break;\r\n case 'week':\r\n time =\r\n startOfDate(\r\n this.year(),\r\n this.month(),\r\n this.date() - this.weekday() + 7\r\n ) - 1;\r\n break;\r\n case 'isoWeek':\r\n time =\r\n startOfDate(\r\n this.year(),\r\n this.month(),\r\n this.date() - (this.isoWeekday() - 1) + 7\r\n ) - 1;\r\n break;\r\n case 'day':\r\n case 'date':\r\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\r\n break;\r\n case 'hour':\r\n time = this._d.valueOf();\r\n time +=\r\n MS_PER_HOUR -\r\n mod$1(\r\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\r\n MS_PER_HOUR\r\n ) -\r\n 1;\r\n break;\r\n case 'minute':\r\n time = this._d.valueOf();\r\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\r\n break;\r\n case 'second':\r\n time = this._d.valueOf();\r\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\r\n break;\r\n }\r\n\r\n this._d.setTime(time);\r\n hooks.updateOffset(this, true);\r\n return this;\r\n }\r\n\r\n function valueOf() {\r\n return this._d.valueOf() - (this._offset || 0) * 60000;\r\n }\r\n\r\n function unix() {\r\n return Math.floor(this.valueOf() / 1000);\r\n }\r\n\r\n function toDate() {\r\n return new Date(this.valueOf());\r\n }\r\n\r\n function toArray() {\r\n var m = this;\r\n return [\r\n m.year(),\r\n m.month(),\r\n m.date(),\r\n m.hour(),\r\n m.minute(),\r\n m.second(),\r\n m.millisecond(),\r\n ];\r\n }\r\n\r\n function toObject() {\r\n var m = this;\r\n return {\r\n years: m.year(),\r\n months: m.month(),\r\n date: m.date(),\r\n hours: m.hours(),\r\n minutes: m.minutes(),\r\n seconds: m.seconds(),\r\n milliseconds: m.milliseconds(),\r\n };\r\n }\r\n\r\n function toJSON() {\r\n // new Date(NaN).toJSON() === null\r\n return this.isValid() ? this.toISOString() : null;\r\n }\r\n\r\n function isValid$2() {\r\n return isValid(this);\r\n }\r\n\r\n function parsingFlags() {\r\n return extend({}, getParsingFlags(this));\r\n }\r\n\r\n function invalidAt() {\r\n return getParsingFlags(this).overflow;\r\n }\r\n\r\n function creationData() {\r\n return {\r\n input: this._i,\r\n format: this._f,\r\n locale: this._locale,\r\n isUTC: this._isUTC,\r\n strict: this._strict,\r\n };\r\n }\r\n\r\n addFormatToken('N', 0, 0, 'eraAbbr');\r\n addFormatToken('NN', 0, 0, 'eraAbbr');\r\n addFormatToken('NNN', 0, 0, 'eraAbbr');\r\n addFormatToken('NNNN', 0, 0, 'eraName');\r\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\r\n\r\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\r\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\r\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\r\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\r\n\r\n addRegexToken('N', matchEraAbbr);\r\n addRegexToken('NN', matchEraAbbr);\r\n addRegexToken('NNN', matchEraAbbr);\r\n addRegexToken('NNNN', matchEraName);\r\n addRegexToken('NNNNN', matchEraNarrow);\r\n\r\n addParseToken(\r\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\r\n function (input, array, config, token) {\r\n var era = config._locale.erasParse(input, token, config._strict);\r\n if (era) {\r\n getParsingFlags(config).era = era;\r\n } else {\r\n getParsingFlags(config).invalidEra = input;\r\n }\r\n }\r\n );\r\n\r\n addRegexToken('y', matchUnsigned);\r\n addRegexToken('yy', matchUnsigned);\r\n addRegexToken('yyy', matchUnsigned);\r\n addRegexToken('yyyy', matchUnsigned);\r\n addRegexToken('yo', matchEraYearOrdinal);\r\n\r\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\r\n addParseToken(['yo'], function (input, array, config, token) {\r\n var match;\r\n if (config._locale._eraYearOrdinalRegex) {\r\n match = input.match(config._locale._eraYearOrdinalRegex);\r\n }\r\n\r\n if (config._locale.eraYearOrdinalParse) {\r\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\r\n } else {\r\n array[YEAR] = parseInt(input, 10);\r\n }\r\n });\r\n\r\n function localeEras(m, format) {\r\n var i,\r\n l,\r\n date,\r\n eras = this._eras || getLocale('en')._eras;\r\n for (i = 0, l = eras.length; i < l; ++i) {\r\n switch (typeof eras[i].since) {\r\n case 'string':\r\n // truncate time\r\n date = hooks(eras[i].since).startOf('day');\r\n eras[i].since = date.valueOf();\r\n break;\r\n }\r\n\r\n switch (typeof eras[i].until) {\r\n case 'undefined':\r\n eras[i].until = +Infinity;\r\n break;\r\n case 'string':\r\n // truncate time\r\n date = hooks(eras[i].until).startOf('day').valueOf();\r\n eras[i].until = date.valueOf();\r\n break;\r\n }\r\n }\r\n return eras;\r\n }\r\n\r\n function localeErasParse(eraName, format, strict) {\r\n var i,\r\n l,\r\n eras = this.eras(),\r\n name,\r\n abbr,\r\n narrow;\r\n eraName = eraName.toUpperCase();\r\n\r\n for (i = 0, l = eras.length; i < l; ++i) {\r\n name = eras[i].name.toUpperCase();\r\n abbr = eras[i].abbr.toUpperCase();\r\n narrow = eras[i].narrow.toUpperCase();\r\n\r\n if (strict) {\r\n switch (format) {\r\n case 'N':\r\n case 'NN':\r\n case 'NNN':\r\n if (abbr === eraName) {\r\n return eras[i];\r\n }\r\n break;\r\n\r\n case 'NNNN':\r\n if (name === eraName) {\r\n return eras[i];\r\n }\r\n break;\r\n\r\n case 'NNNNN':\r\n if (narrow === eraName) {\r\n return eras[i];\r\n }\r\n break;\r\n }\r\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\r\n return eras[i];\r\n }\r\n }\r\n }\r\n\r\n function localeErasConvertYear(era, year) {\r\n var dir = era.since <= era.until ? +1 : -1;\r\n if (year === undefined) {\r\n return hooks(era.since).year();\r\n } else {\r\n return hooks(era.since).year() + (year - era.offset) * dir;\r\n }\r\n }\r\n\r\n function getEraName() {\r\n var i,\r\n l,\r\n val,\r\n eras = this.localeData().eras();\r\n for (i = 0, l = eras.length; i < l; ++i) {\r\n // truncate time\r\n val = this.clone().startOf('day').valueOf();\r\n\r\n if (eras[i].since <= val && val <= eras[i].until) {\r\n return eras[i].name;\r\n }\r\n if (eras[i].until <= val && val <= eras[i].since) {\r\n return eras[i].name;\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function getEraNarrow() {\r\n var i,\r\n l,\r\n val,\r\n eras = this.localeData().eras();\r\n for (i = 0, l = eras.length; i < l; ++i) {\r\n // truncate time\r\n val = this.clone().startOf('day').valueOf();\r\n\r\n if (eras[i].since <= val && val <= eras[i].until) {\r\n return eras[i].narrow;\r\n }\r\n if (eras[i].until <= val && val <= eras[i].since) {\r\n return eras[i].narrow;\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function getEraAbbr() {\r\n var i,\r\n l,\r\n val,\r\n eras = this.localeData().eras();\r\n for (i = 0, l = eras.length; i < l; ++i) {\r\n // truncate time\r\n val = this.clone().startOf('day').valueOf();\r\n\r\n if (eras[i].since <= val && val <= eras[i].until) {\r\n return eras[i].abbr;\r\n }\r\n if (eras[i].until <= val && val <= eras[i].since) {\r\n return eras[i].abbr;\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function getEraYear() {\r\n var i,\r\n l,\r\n dir,\r\n val,\r\n eras = this.localeData().eras();\r\n for (i = 0, l = eras.length; i < l; ++i) {\r\n dir = eras[i].since <= eras[i].until ? +1 : -1;\r\n\r\n // truncate time\r\n val = this.clone().startOf('day').valueOf();\r\n\r\n if (\r\n (eras[i].since <= val && val <= eras[i].until) ||\r\n (eras[i].until <= val && val <= eras[i].since)\r\n ) {\r\n return (\r\n (this.year() - hooks(eras[i].since).year()) * dir +\r\n eras[i].offset\r\n );\r\n }\r\n }\r\n\r\n return this.year();\r\n }\r\n\r\n function erasNameRegex(isStrict) {\r\n if (!hasOwnProp(this, '_erasNameRegex')) {\r\n computeErasParse.call(this);\r\n }\r\n return isStrict ? this._erasNameRegex : this._erasRegex;\r\n }\r\n\r\n function erasAbbrRegex(isStrict) {\r\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\r\n computeErasParse.call(this);\r\n }\r\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\r\n }\r\n\r\n function erasNarrowRegex(isStrict) {\r\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\r\n computeErasParse.call(this);\r\n }\r\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\r\n }\r\n\r\n function matchEraAbbr(isStrict, locale) {\r\n return locale.erasAbbrRegex(isStrict);\r\n }\r\n\r\n function matchEraName(isStrict, locale) {\r\n return locale.erasNameRegex(isStrict);\r\n }\r\n\r\n function matchEraNarrow(isStrict, locale) {\r\n return locale.erasNarrowRegex(isStrict);\r\n }\r\n\r\n function matchEraYearOrdinal(isStrict, locale) {\r\n return locale._eraYearOrdinalRegex || matchUnsigned;\r\n }\r\n\r\n function computeErasParse() {\r\n var abbrPieces = [],\r\n namePieces = [],\r\n narrowPieces = [],\r\n mixedPieces = [],\r\n i,\r\n l,\r\n erasName,\r\n erasAbbr,\r\n erasNarrow,\r\n eras = this.eras();\r\n\r\n for (i = 0, l = eras.length; i < l; ++i) {\r\n erasName = regexEscape(eras[i].name);\r\n erasAbbr = regexEscape(eras[i].abbr);\r\n erasNarrow = regexEscape(eras[i].narrow);\r\n\r\n namePieces.push(erasName);\r\n abbrPieces.push(erasAbbr);\r\n narrowPieces.push(erasNarrow);\r\n mixedPieces.push(erasName);\r\n mixedPieces.push(erasAbbr);\r\n mixedPieces.push(erasNarrow);\r\n }\r\n\r\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\r\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\r\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\r\n this._erasNarrowRegex = new RegExp(\r\n '^(' + narrowPieces.join('|') + ')',\r\n 'i'\r\n );\r\n }\r\n\r\n // FORMATTING\r\n\r\n addFormatToken(0, ['gg', 2], 0, function () {\r\n return this.weekYear() % 100;\r\n });\r\n\r\n addFormatToken(0, ['GG', 2], 0, function () {\r\n return this.isoWeekYear() % 100;\r\n });\r\n\r\n function addWeekYearFormatToken(token, getter) {\r\n addFormatToken(0, [token, token.length], 0, getter);\r\n }\r\n\r\n addWeekYearFormatToken('gggg', 'weekYear');\r\n addWeekYearFormatToken('ggggg', 'weekYear');\r\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\r\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\r\n\r\n // ALIASES\r\n\r\n // PARSING\r\n\r\n addRegexToken('G', matchSigned);\r\n addRegexToken('g', matchSigned);\r\n addRegexToken('GG', match1to2, match2);\r\n addRegexToken('gg', match1to2, match2);\r\n addRegexToken('GGGG', match1to4, match4);\r\n addRegexToken('gggg', match1to4, match4);\r\n addRegexToken('GGGGG', match1to6, match6);\r\n addRegexToken('ggggg', match1to6, match6);\r\n\r\n addWeekParseToken(\r\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\r\n function (input, week, config, token) {\r\n week[token.substr(0, 2)] = toInt(input);\r\n }\r\n );\r\n\r\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\r\n week[token] = hooks.parseTwoDigitYear(input);\r\n });\r\n\r\n // MOMENTS\r\n\r\n function getSetWeekYear(input) {\r\n return getSetWeekYearHelper.call(\r\n this,\r\n input,\r\n this.week(),\r\n this.weekday() + this.localeData()._week.dow,\r\n this.localeData()._week.dow,\r\n this.localeData()._week.doy\r\n );\r\n }\r\n\r\n function getSetISOWeekYear(input) {\r\n return getSetWeekYearHelper.call(\r\n this,\r\n input,\r\n this.isoWeek(),\r\n this.isoWeekday(),\r\n 1,\r\n 4\r\n );\r\n }\r\n\r\n function getISOWeeksInYear() {\r\n return weeksInYear(this.year(), 1, 4);\r\n }\r\n\r\n function getISOWeeksInISOWeekYear() {\r\n return weeksInYear(this.isoWeekYear(), 1, 4);\r\n }\r\n\r\n function getWeeksInYear() {\r\n var weekInfo = this.localeData()._week;\r\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\r\n }\r\n\r\n function getWeeksInWeekYear() {\r\n var weekInfo = this.localeData()._week;\r\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\r\n }\r\n\r\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\r\n var weeksTarget;\r\n if (input == null) {\r\n return weekOfYear(this, dow, doy).year;\r\n } else {\r\n weeksTarget = weeksInYear(input, dow, doy);\r\n if (week > weeksTarget) {\r\n week = weeksTarget;\r\n }\r\n return setWeekAll.call(this, input, week, weekday, dow, doy);\r\n }\r\n }\r\n\r\n function setWeekAll(weekYear, week, weekday, dow, doy) {\r\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\r\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\r\n\r\n this.year(date.getUTCFullYear());\r\n this.month(date.getUTCMonth());\r\n this.date(date.getUTCDate());\r\n return this;\r\n }\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('Q', 0, 'Qo', 'quarter');\r\n\r\n // PARSING\r\n\r\n addRegexToken('Q', match1);\r\n addParseToken('Q', function (input, array) {\r\n array[MONTH] = (toInt(input) - 1) * 3;\r\n });\r\n\r\n // MOMENTS\r\n\r\n function getSetQuarter(input) {\r\n return input == null\r\n ? Math.ceil((this.month() + 1) / 3)\r\n : this.month((input - 1) * 3 + (this.month() % 3));\r\n }\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('D', ['DD', 2], 'Do', 'date');\r\n\r\n // PARSING\r\n\r\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\r\n addRegexToken('DD', match1to2, match2);\r\n addRegexToken('Do', function (isStrict, locale) {\r\n // TODO: Remove \"ordinalParse\" fallback in next major release.\r\n return isStrict\r\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\r\n : locale._dayOfMonthOrdinalParseLenient;\r\n });\r\n\r\n addParseToken(['D', 'DD'], DATE);\r\n addParseToken('Do', function (input, array) {\r\n array[DATE] = toInt(input.match(match1to2)[0]);\r\n });\r\n\r\n // MOMENTS\r\n\r\n var getSetDayOfMonth = makeGetSet('Date', true);\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\r\n\r\n // PARSING\r\n\r\n addRegexToken('DDD', match1to3);\r\n addRegexToken('DDDD', match3);\r\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\r\n config._dayOfYear = toInt(input);\r\n });\r\n\r\n // HELPERS\r\n\r\n // MOMENTS\r\n\r\n function getSetDayOfYear(input) {\r\n var dayOfYear =\r\n Math.round(\r\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\r\n ) + 1;\r\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\r\n }\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('m', ['mm', 2], 0, 'minute');\r\n\r\n // PARSING\r\n\r\n addRegexToken('m', match1to2, match1to2HasZero);\r\n addRegexToken('mm', match1to2, match2);\r\n addParseToken(['m', 'mm'], MINUTE);\r\n\r\n // MOMENTS\r\n\r\n var getSetMinute = makeGetSet('Minutes', false);\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('s', ['ss', 2], 0, 'second');\r\n\r\n // PARSING\r\n\r\n addRegexToken('s', match1to2, match1to2HasZero);\r\n addRegexToken('ss', match1to2, match2);\r\n addParseToken(['s', 'ss'], SECOND);\r\n\r\n // MOMENTS\r\n\r\n var getSetSecond = makeGetSet('Seconds', false);\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('S', 0, 0, function () {\r\n return ~~(this.millisecond() / 100);\r\n });\r\n\r\n addFormatToken(0, ['SS', 2], 0, function () {\r\n return ~~(this.millisecond() / 10);\r\n });\r\n\r\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\r\n addFormatToken(0, ['SSSS', 4], 0, function () {\r\n return this.millisecond() * 10;\r\n });\r\n addFormatToken(0, ['SSSSS', 5], 0, function () {\r\n return this.millisecond() * 100;\r\n });\r\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\r\n return this.millisecond() * 1000;\r\n });\r\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\r\n return this.millisecond() * 10000;\r\n });\r\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\r\n return this.millisecond() * 100000;\r\n });\r\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\r\n return this.millisecond() * 1000000;\r\n });\r\n\r\n // PARSING\r\n\r\n addRegexToken('S', match1to3, match1);\r\n addRegexToken('SS', match1to3, match2);\r\n addRegexToken('SSS', match1to3, match3);\r\n\r\n var token, getSetMillisecond;\r\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\r\n addRegexToken(token, matchUnsigned);\r\n }\r\n\r\n function parseMs(input, array) {\r\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\r\n }\r\n\r\n for (token = 'S'; token.length <= 9; token += 'S') {\r\n addParseToken(token, parseMs);\r\n }\r\n\r\n getSetMillisecond = makeGetSet('Milliseconds', false);\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('z', 0, 0, 'zoneAbbr');\r\n addFormatToken('zz', 0, 0, 'zoneName');\r\n\r\n // MOMENTS\r\n\r\n function getZoneAbbr() {\r\n return this._isUTC ? 'UTC' : '';\r\n }\r\n\r\n function getZoneName() {\r\n return this._isUTC ? 'Coordinated Universal Time' : '';\r\n }\r\n\r\n var proto = Moment.prototype;\r\n\r\n proto.add = add;\r\n proto.calendar = calendar$1;\r\n proto.clone = clone;\r\n proto.diff = diff;\r\n proto.endOf = endOf;\r\n proto.format = format;\r\n proto.from = from;\r\n proto.fromNow = fromNow;\r\n proto.to = to;\r\n proto.toNow = toNow;\r\n proto.get = stringGet;\r\n proto.invalidAt = invalidAt;\r\n proto.isAfter = isAfter;\r\n proto.isBefore = isBefore;\r\n proto.isBetween = isBetween;\r\n proto.isSame = isSame;\r\n proto.isSameOrAfter = isSameOrAfter;\r\n proto.isSameOrBefore = isSameOrBefore;\r\n proto.isValid = isValid$2;\r\n proto.lang = lang;\r\n proto.locale = locale;\r\n proto.localeData = localeData;\r\n proto.max = prototypeMax;\r\n proto.min = prototypeMin;\r\n proto.parsingFlags = parsingFlags;\r\n proto.set = stringSet;\r\n proto.startOf = startOf;\r\n proto.subtract = subtract;\r\n proto.toArray = toArray;\r\n proto.toObject = toObject;\r\n proto.toDate = toDate;\r\n proto.toISOString = toISOString;\r\n proto.inspect = inspect;\r\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\r\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\r\n return 'Moment<' + this.format() + '>';\r\n };\r\n }\r\n proto.toJSON = toJSON;\r\n proto.toString = toString;\r\n proto.unix = unix;\r\n proto.valueOf = valueOf;\r\n proto.creationData = creationData;\r\n proto.eraName = getEraName;\r\n proto.eraNarrow = getEraNarrow;\r\n proto.eraAbbr = getEraAbbr;\r\n proto.eraYear = getEraYear;\r\n proto.year = getSetYear;\r\n proto.isLeapYear = getIsLeapYear;\r\n proto.weekYear = getSetWeekYear;\r\n proto.isoWeekYear = getSetISOWeekYear;\r\n proto.quarter = proto.quarters = getSetQuarter;\r\n proto.month = getSetMonth;\r\n proto.daysInMonth = getDaysInMonth;\r\n proto.week = proto.weeks = getSetWeek;\r\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\r\n proto.weeksInYear = getWeeksInYear;\r\n proto.weeksInWeekYear = getWeeksInWeekYear;\r\n proto.isoWeeksInYear = getISOWeeksInYear;\r\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\r\n proto.date = getSetDayOfMonth;\r\n proto.day = proto.days = getSetDayOfWeek;\r\n proto.weekday = getSetLocaleDayOfWeek;\r\n proto.isoWeekday = getSetISODayOfWeek;\r\n proto.dayOfYear = getSetDayOfYear;\r\n proto.hour = proto.hours = getSetHour;\r\n proto.minute = proto.minutes = getSetMinute;\r\n proto.second = proto.seconds = getSetSecond;\r\n proto.millisecond = proto.milliseconds = getSetMillisecond;\r\n proto.utcOffset = getSetOffset;\r\n proto.utc = setOffsetToUTC;\r\n proto.local = setOffsetToLocal;\r\n proto.parseZone = setOffsetToParsedOffset;\r\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\r\n proto.isDST = isDaylightSavingTime;\r\n proto.isLocal = isLocal;\r\n proto.isUtcOffset = isUtcOffset;\r\n proto.isUtc = isUtc;\r\n proto.isUTC = isUtc;\r\n proto.zoneAbbr = getZoneAbbr;\r\n proto.zoneName = getZoneName;\r\n proto.dates = deprecate(\r\n 'dates accessor is deprecated. Use date instead.',\r\n getSetDayOfMonth\r\n );\r\n proto.months = deprecate(\r\n 'months accessor is deprecated. Use month instead',\r\n getSetMonth\r\n );\r\n proto.years = deprecate(\r\n 'years accessor is deprecated. Use year instead',\r\n getSetYear\r\n );\r\n proto.zone = deprecate(\r\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\r\n getSetZone\r\n );\r\n proto.isDSTShifted = deprecate(\r\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\r\n isDaylightSavingTimeShifted\r\n );\r\n\r\n function createUnix(input) {\r\n return createLocal(input * 1000);\r\n }\r\n\r\n function createInZone() {\r\n return createLocal.apply(null, arguments).parseZone();\r\n }\r\n\r\n function preParsePostFormat(string) {\r\n return string;\r\n }\r\n\r\n var proto$1 = Locale.prototype;\r\n\r\n proto$1.calendar = calendar;\r\n proto$1.longDateFormat = longDateFormat;\r\n proto$1.invalidDate = invalidDate;\r\n proto$1.ordinal = ordinal;\r\n proto$1.preparse = preParsePostFormat;\r\n proto$1.postformat = preParsePostFormat;\r\n proto$1.relativeTime = relativeTime;\r\n proto$1.pastFuture = pastFuture;\r\n proto$1.set = set;\r\n proto$1.eras = localeEras;\r\n proto$1.erasParse = localeErasParse;\r\n proto$1.erasConvertYear = localeErasConvertYear;\r\n proto$1.erasAbbrRegex = erasAbbrRegex;\r\n proto$1.erasNameRegex = erasNameRegex;\r\n proto$1.erasNarrowRegex = erasNarrowRegex;\r\n\r\n proto$1.months = localeMonths;\r\n proto$1.monthsShort = localeMonthsShort;\r\n proto$1.monthsParse = localeMonthsParse;\r\n proto$1.monthsRegex = monthsRegex;\r\n proto$1.monthsShortRegex = monthsShortRegex;\r\n proto$1.week = localeWeek;\r\n proto$1.firstDayOfYear = localeFirstDayOfYear;\r\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\r\n\r\n proto$1.weekdays = localeWeekdays;\r\n proto$1.weekdaysMin = localeWeekdaysMin;\r\n proto$1.weekdaysShort = localeWeekdaysShort;\r\n proto$1.weekdaysParse = localeWeekdaysParse;\r\n\r\n proto$1.weekdaysRegex = weekdaysRegex;\r\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\r\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\r\n\r\n proto$1.isPM = localeIsPM;\r\n proto$1.meridiem = localeMeridiem;\r\n\r\n function get$1(format, index, field, setter) {\r\n var locale = getLocale(),\r\n utc = createUTC().set(setter, index);\r\n return locale[field](utc, format);\r\n }\r\n\r\n function listMonthsImpl(format, index, field) {\r\n if (isNumber(format)) {\r\n index = format;\r\n format = undefined;\r\n }\r\n\r\n format = format || '';\r\n\r\n if (index != null) {\r\n return get$1(format, index, field, 'month');\r\n }\r\n\r\n var i,\r\n out = [];\r\n for (i = 0; i < 12; i++) {\r\n out[i] = get$1(format, i, field, 'month');\r\n }\r\n return out;\r\n }\r\n\r\n // ()\r\n // (5)\r\n // (fmt, 5)\r\n // (fmt)\r\n // (true)\r\n // (true, 5)\r\n // (true, fmt, 5)\r\n // (true, fmt)\r\n function listWeekdaysImpl(localeSorted, format, index, field) {\r\n if (typeof localeSorted === 'boolean') {\r\n if (isNumber(format)) {\r\n index = format;\r\n format = undefined;\r\n }\r\n\r\n format = format || '';\r\n } else {\r\n format = localeSorted;\r\n index = format;\r\n localeSorted = false;\r\n\r\n if (isNumber(format)) {\r\n index = format;\r\n format = undefined;\r\n }\r\n\r\n format = format || '';\r\n }\r\n\r\n var locale = getLocale(),\r\n shift = localeSorted ? locale._week.dow : 0,\r\n i,\r\n out = [];\r\n\r\n if (index != null) {\r\n return get$1(format, (index + shift) % 7, field, 'day');\r\n }\r\n\r\n for (i = 0; i < 7; i++) {\r\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\r\n }\r\n return out;\r\n }\r\n\r\n function listMonths(format, index) {\r\n return listMonthsImpl(format, index, 'months');\r\n }\r\n\r\n function listMonthsShort(format, index) {\r\n return listMonthsImpl(format, index, 'monthsShort');\r\n }\r\n\r\n function listWeekdays(localeSorted, format, index) {\r\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\r\n }\r\n\r\n function listWeekdaysShort(localeSorted, format, index) {\r\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\r\n }\r\n\r\n function listWeekdaysMin(localeSorted, format, index) {\r\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\r\n }\r\n\r\n getSetGlobalLocale('en', {\r\n eras: [\r\n {\r\n since: '0001-01-01',\r\n until: +Infinity,\r\n offset: 1,\r\n name: 'Anno Domini',\r\n narrow: 'AD',\r\n abbr: 'AD',\r\n },\r\n {\r\n since: '0000-12-31',\r\n until: -Infinity,\r\n offset: 1,\r\n name: 'Before Christ',\r\n narrow: 'BC',\r\n abbr: 'BC',\r\n },\r\n ],\r\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\r\n ordinal: function (number) {\r\n var b = number % 10,\r\n output =\r\n toInt((number % 100) / 10) === 1\r\n ? 'th'\r\n : b === 1\r\n ? 'st'\r\n : b === 2\r\n ? 'nd'\r\n : b === 3\r\n ? 'rd'\r\n : 'th';\r\n return number + output;\r\n },\r\n });\r\n\r\n // Side effect imports\r\n\r\n hooks.lang = deprecate(\r\n 'moment.lang is deprecated. Use moment.locale instead.',\r\n getSetGlobalLocale\r\n );\r\n hooks.langData = deprecate(\r\n 'moment.langData is deprecated. Use moment.localeData instead.',\r\n getLocale\r\n );\r\n\r\n var mathAbs = Math.abs;\r\n\r\n function abs() {\r\n var data = this._data;\r\n\r\n this._milliseconds = mathAbs(this._milliseconds);\r\n this._days = mathAbs(this._days);\r\n this._months = mathAbs(this._months);\r\n\r\n data.milliseconds = mathAbs(data.milliseconds);\r\n data.seconds = mathAbs(data.seconds);\r\n data.minutes = mathAbs(data.minutes);\r\n data.hours = mathAbs(data.hours);\r\n data.months = mathAbs(data.months);\r\n data.years = mathAbs(data.years);\r\n\r\n return this;\r\n }\r\n\r\n function addSubtract$1(duration, input, value, direction) {\r\n var other = createDuration(input, value);\r\n\r\n duration._milliseconds += direction * other._milliseconds;\r\n duration._days += direction * other._days;\r\n duration._months += direction * other._months;\r\n\r\n return duration._bubble();\r\n }\r\n\r\n // supports only 2.0-style add(1, 's') or add(duration)\r\n function add$1(input, value) {\r\n return addSubtract$1(this, input, value, 1);\r\n }\r\n\r\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\r\n function subtract$1(input, value) {\r\n return addSubtract$1(this, input, value, -1);\r\n }\r\n\r\n function absCeil(number) {\r\n if (number < 0) {\r\n return Math.floor(number);\r\n } else {\r\n return Math.ceil(number);\r\n }\r\n }\r\n\r\n function bubble() {\r\n var milliseconds = this._milliseconds,\r\n days = this._days,\r\n months = this._months,\r\n data = this._data,\r\n seconds,\r\n minutes,\r\n hours,\r\n years,\r\n monthsFromDays;\r\n\r\n // if we have a mix of positive and negative values, bubble down first\r\n // check: https://github.com/moment/moment/issues/2166\r\n if (\r\n !(\r\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\r\n (milliseconds <= 0 && days <= 0 && months <= 0)\r\n )\r\n ) {\r\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\r\n days = 0;\r\n months = 0;\r\n }\r\n\r\n // The following code bubbles up values, see the tests for\r\n // examples of what that means.\r\n data.milliseconds = milliseconds % 1000;\r\n\r\n seconds = absFloor(milliseconds / 1000);\r\n data.seconds = seconds % 60;\r\n\r\n minutes = absFloor(seconds / 60);\r\n data.minutes = minutes % 60;\r\n\r\n hours = absFloor(minutes / 60);\r\n data.hours = hours % 24;\r\n\r\n days += absFloor(hours / 24);\r\n\r\n // convert days to months\r\n monthsFromDays = absFloor(daysToMonths(days));\r\n months += monthsFromDays;\r\n days -= absCeil(monthsToDays(monthsFromDays));\r\n\r\n // 12 months -> 1 year\r\n years = absFloor(months / 12);\r\n months %= 12;\r\n\r\n data.days = days;\r\n data.months = months;\r\n data.years = years;\r\n\r\n return this;\r\n }\r\n\r\n function daysToMonths(days) {\r\n // 400 years have 146097 days (taking into account leap year rules)\r\n // 400 years have 12 months === 4800\r\n return (days * 4800) / 146097;\r\n }\r\n\r\n function monthsToDays(months) {\r\n // the reverse of daysToMonths\r\n return (months * 146097) / 4800;\r\n }\r\n\r\n function as(units) {\r\n if (!this.isValid()) {\r\n return NaN;\r\n }\r\n var days,\r\n months,\r\n milliseconds = this._milliseconds;\r\n\r\n units = normalizeUnits(units);\r\n\r\n if (units === 'month' || units === 'quarter' || units === 'year') {\r\n days = this._days + milliseconds / 864e5;\r\n months = this._months + daysToMonths(days);\r\n switch (units) {\r\n case 'month':\r\n return months;\r\n case 'quarter':\r\n return months / 3;\r\n case 'year':\r\n return months / 12;\r\n }\r\n } else {\r\n // handle milliseconds separately because of floating point math errors (issue #1867)\r\n days = this._days + Math.round(monthsToDays(this._months));\r\n switch (units) {\r\n case 'week':\r\n return days / 7 + milliseconds / 6048e5;\r\n case 'day':\r\n return days + milliseconds / 864e5;\r\n case 'hour':\r\n return days * 24 + milliseconds / 36e5;\r\n case 'minute':\r\n return days * 1440 + milliseconds / 6e4;\r\n case 'second':\r\n return days * 86400 + milliseconds / 1000;\r\n // Math.floor prevents floating point math errors here\r\n case 'millisecond':\r\n return Math.floor(days * 864e5) + milliseconds;\r\n default:\r\n throw new Error('Unknown unit ' + units);\r\n }\r\n }\r\n }\r\n\r\n function makeAs(alias) {\r\n return function () {\r\n return this.as(alias);\r\n };\r\n }\r\n\r\n var asMilliseconds = makeAs('ms'),\r\n asSeconds = makeAs('s'),\r\n asMinutes = makeAs('m'),\r\n asHours = makeAs('h'),\r\n asDays = makeAs('d'),\r\n asWeeks = makeAs('w'),\r\n asMonths = makeAs('M'),\r\n asQuarters = makeAs('Q'),\r\n asYears = makeAs('y'),\r\n valueOf$1 = asMilliseconds;\r\n\r\n function clone$1() {\r\n return createDuration(this);\r\n }\r\n\r\n function get$2(units) {\r\n units = normalizeUnits(units);\r\n return this.isValid() ? this[units + 's']() : NaN;\r\n }\r\n\r\n function makeGetter(name) {\r\n return function () {\r\n return this.isValid() ? this._data[name] : NaN;\r\n };\r\n }\r\n\r\n var milliseconds = makeGetter('milliseconds'),\r\n seconds = makeGetter('seconds'),\r\n minutes = makeGetter('minutes'),\r\n hours = makeGetter('hours'),\r\n days = makeGetter('days'),\r\n months = makeGetter('months'),\r\n years = makeGetter('years');\r\n\r\n function weeks() {\r\n return absFloor(this.days() / 7);\r\n }\r\n\r\n var round = Math.round,\r\n thresholds = {\r\n ss: 44, // a few seconds to seconds\r\n s: 45, // seconds to minute\r\n m: 45, // minutes to hour\r\n h: 22, // hours to day\r\n d: 26, // days to month/week\r\n w: null, // weeks to month\r\n M: 11, // months to year\r\n };\r\n\r\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\r\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\r\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\r\n }\r\n\r\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\r\n var duration = createDuration(posNegDuration).abs(),\r\n seconds = round(duration.as('s')),\r\n minutes = round(duration.as('m')),\r\n hours = round(duration.as('h')),\r\n days = round(duration.as('d')),\r\n months = round(duration.as('M')),\r\n weeks = round(duration.as('w')),\r\n years = round(duration.as('y')),\r\n a =\r\n (seconds <= thresholds.ss && ['s', seconds]) ||\r\n (seconds < thresholds.s && ['ss', seconds]) ||\r\n (minutes <= 1 && ['m']) ||\r\n (minutes < thresholds.m && ['mm', minutes]) ||\r\n (hours <= 1 && ['h']) ||\r\n (hours < thresholds.h && ['hh', hours]) ||\r\n (days <= 1 && ['d']) ||\r\n (days < thresholds.d && ['dd', days]);\r\n\r\n if (thresholds.w != null) {\r\n a =\r\n a ||\r\n (weeks <= 1 && ['w']) ||\r\n (weeks < thresholds.w && ['ww', weeks]);\r\n }\r\n a = a ||\r\n (months <= 1 && ['M']) ||\r\n (months < thresholds.M && ['MM', months]) ||\r\n (years <= 1 && ['y']) || ['yy', years];\r\n\r\n a[2] = withoutSuffix;\r\n a[3] = +posNegDuration > 0;\r\n a[4] = locale;\r\n return substituteTimeAgo.apply(null, a);\r\n }\r\n\r\n // This function allows you to set the rounding function for relative time strings\r\n function getSetRelativeTimeRounding(roundingFunction) {\r\n if (roundingFunction === undefined) {\r\n return round;\r\n }\r\n if (typeof roundingFunction === 'function') {\r\n round = roundingFunction;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // This function allows you to set a threshold for relative time strings\r\n function getSetRelativeTimeThreshold(threshold, limit) {\r\n if (thresholds[threshold] === undefined) {\r\n return false;\r\n }\r\n if (limit === undefined) {\r\n return thresholds[threshold];\r\n }\r\n thresholds[threshold] = limit;\r\n if (threshold === 's') {\r\n thresholds.ss = limit - 1;\r\n }\r\n return true;\r\n }\r\n\r\n function humanize(argWithSuffix, argThresholds) {\r\n if (!this.isValid()) {\r\n return this.localeData().invalidDate();\r\n }\r\n\r\n var withSuffix = false,\r\n th = thresholds,\r\n locale,\r\n output;\r\n\r\n if (typeof argWithSuffix === 'object') {\r\n argThresholds = argWithSuffix;\r\n argWithSuffix = false;\r\n }\r\n if (typeof argWithSuffix === 'boolean') {\r\n withSuffix = argWithSuffix;\r\n }\r\n if (typeof argThresholds === 'object') {\r\n th = Object.assign({}, thresholds, argThresholds);\r\n if (argThresholds.s != null && argThresholds.ss == null) {\r\n th.ss = argThresholds.s - 1;\r\n }\r\n }\r\n\r\n locale = this.localeData();\r\n output = relativeTime$1(this, !withSuffix, th, locale);\r\n\r\n if (withSuffix) {\r\n output = locale.pastFuture(+this, output);\r\n }\r\n\r\n return locale.postformat(output);\r\n }\r\n\r\n var abs$1 = Math.abs;\r\n\r\n function sign(x) {\r\n return (x > 0) - (x < 0) || +x;\r\n }\r\n\r\n function toISOString$1() {\r\n // for ISO strings we do not use the normal bubbling rules:\r\n // * milliseconds bubble up until they become hours\r\n // * days do not bubble at all\r\n // * months bubble up until they become years\r\n // This is because there is no context-free conversion between hours and days\r\n // (think of clock changes)\r\n // and also not between days and months (28-31 days per month)\r\n if (!this.isValid()) {\r\n return this.localeData().invalidDate();\r\n }\r\n\r\n var seconds = abs$1(this._milliseconds) / 1000,\r\n days = abs$1(this._days),\r\n months = abs$1(this._months),\r\n minutes,\r\n hours,\r\n years,\r\n s,\r\n total = this.asSeconds(),\r\n totalSign,\r\n ymSign,\r\n daysSign,\r\n hmsSign;\r\n\r\n if (!total) {\r\n // this is the same as C#'s (Noda) and python (isodate)...\r\n // but not other JS (goog.date)\r\n return 'P0D';\r\n }\r\n\r\n // 3600 seconds -> 60 minutes -> 1 hour\r\n minutes = absFloor(seconds / 60);\r\n hours = absFloor(minutes / 60);\r\n seconds %= 60;\r\n minutes %= 60;\r\n\r\n // 12 months -> 1 year\r\n years = absFloor(months / 12);\r\n months %= 12;\r\n\r\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\r\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\r\n\r\n totalSign = total < 0 ? '-' : '';\r\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\r\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\r\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\r\n\r\n return (\r\n totalSign +\r\n 'P' +\r\n (years ? ymSign + years + 'Y' : '') +\r\n (months ? ymSign + months + 'M' : '') +\r\n (days ? daysSign + days + 'D' : '') +\r\n (hours || minutes || seconds ? 'T' : '') +\r\n (hours ? hmsSign + hours + 'H' : '') +\r\n (minutes ? hmsSign + minutes + 'M' : '') +\r\n (seconds ? hmsSign + s + 'S' : '')\r\n );\r\n }\r\n\r\n var proto$2 = Duration.prototype;\r\n\r\n proto$2.isValid = isValid$1;\r\n proto$2.abs = abs;\r\n proto$2.add = add$1;\r\n proto$2.subtract = subtract$1;\r\n proto$2.as = as;\r\n proto$2.asMilliseconds = asMilliseconds;\r\n proto$2.asSeconds = asSeconds;\r\n proto$2.asMinutes = asMinutes;\r\n proto$2.asHours = asHours;\r\n proto$2.asDays = asDays;\r\n proto$2.asWeeks = asWeeks;\r\n proto$2.asMonths = asMonths;\r\n proto$2.asQuarters = asQuarters;\r\n proto$2.asYears = asYears;\r\n proto$2.valueOf = valueOf$1;\r\n proto$2._bubble = bubble;\r\n proto$2.clone = clone$1;\r\n proto$2.get = get$2;\r\n proto$2.milliseconds = milliseconds;\r\n proto$2.seconds = seconds;\r\n proto$2.minutes = minutes;\r\n proto$2.hours = hours;\r\n proto$2.days = days;\r\n proto$2.weeks = weeks;\r\n proto$2.months = months;\r\n proto$2.years = years;\r\n proto$2.humanize = humanize;\r\n proto$2.toISOString = toISOString$1;\r\n proto$2.toString = toISOString$1;\r\n proto$2.toJSON = toISOString$1;\r\n proto$2.locale = locale;\r\n proto$2.localeData = localeData;\r\n\r\n proto$2.toIsoString = deprecate(\r\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\r\n toISOString$1\r\n );\r\n proto$2.lang = lang;\r\n\r\n // FORMATTING\r\n\r\n addFormatToken('X', 0, 0, 'unix');\r\n addFormatToken('x', 0, 0, 'valueOf');\r\n\r\n // PARSING\r\n\r\n addRegexToken('x', matchSigned);\r\n addRegexToken('X', matchTimestamp);\r\n addParseToken('X', function (input, array, config) {\r\n config._d = new Date(parseFloat(input) * 1000);\r\n });\r\n addParseToken('x', function (input, array, config) {\r\n config._d = new Date(toInt(input));\r\n });\r\n\r\n //! moment.js\r\n\r\n hooks.version = '2.30.1';\r\n\r\n setHookCallback(createLocal);\r\n\r\n hooks.fn = proto;\r\n hooks.min = min;\r\n hooks.max = max;\r\n hooks.now = now;\r\n hooks.utc = createUTC;\r\n hooks.unix = createUnix;\r\n hooks.months = listMonths;\r\n hooks.isDate = isDate;\r\n hooks.locale = getSetGlobalLocale;\r\n hooks.invalid = createInvalid;\r\n hooks.duration = createDuration;\r\n hooks.isMoment = isMoment;\r\n hooks.weekdays = listWeekdays;\r\n hooks.parseZone = createInZone;\r\n hooks.localeData = getLocale;\r\n hooks.isDuration = isDuration;\r\n hooks.monthsShort = listMonthsShort;\r\n hooks.weekdaysMin = listWeekdaysMin;\r\n hooks.defineLocale = defineLocale;\r\n hooks.updateLocale = updateLocale;\r\n hooks.locales = listLocales;\r\n hooks.weekdaysShort = listWeekdaysShort;\r\n hooks.normalizeUnits = normalizeUnits;\r\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\r\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\r\n hooks.calendarFormat = getCalendarFormat;\r\n hooks.prototype = proto;\r\n\r\n // currently HTML5 input type only supports 24-hour formats\r\n hooks.HTML5_FMT = {\r\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \r\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \r\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \r\n DATE: 'YYYY-MM-DD', // \r\n TIME: 'HH:mm', // \r\n TIME_SECONDS: 'HH:mm:ss', // \r\n TIME_MS: 'HH:mm:ss.SSS', // \r\n WEEK: 'GGGG-[W]WW', // \r\n MONTH: 'YYYY-MM', // \r\n };\r\n\r\n return hooks;\r\n\r\n})));\r\n","/**\r\n * Helpers.\r\n */\r\n\r\nvar s = 1000;\r\nvar m = s * 60;\r\nvar h = m * 60;\r\nvar d = h * 24;\r\nvar w = d * 7;\r\nvar y = d * 365.25;\r\n\r\n/**\r\n * Parse or format the given `val`.\r\n *\r\n * Options:\r\n *\r\n * - `long` verbose formatting [false]\r\n *\r\n * @param {String|Number} val\r\n * @param {Object} [options]\r\n * @throws {Error} throw an error if val is not a non-empty string or a number\r\n * @return {String|Number}\r\n * @api public\r\n */\r\n\r\nmodule.exports = function (val, options) {\r\n options = options || {};\r\n var type = typeof val;\r\n if (type === 'string' && val.length > 0) {\r\n return parse(val);\r\n } else if (type === 'number' && isFinite(val)) {\r\n return options.long ? fmtLong(val) : fmtShort(val);\r\n }\r\n throw new Error(\r\n 'val is not a non-empty string or a valid number. val=' +\r\n JSON.stringify(val)\r\n );\r\n};\r\n\r\n/**\r\n * Parse the given `str` and return milliseconds.\r\n *\r\n * @param {String} str\r\n * @return {Number}\r\n * @api private\r\n */\r\n\r\nfunction parse(str) {\r\n str = String(str);\r\n if (str.length > 100) {\r\n return;\r\n }\r\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\r\n str\r\n );\r\n if (!match) {\r\n return;\r\n }\r\n var n = parseFloat(match[1]);\r\n var type = (match[2] || 'ms').toLowerCase();\r\n switch (type) {\r\n case 'years':\r\n case 'year':\r\n case 'yrs':\r\n case 'yr':\r\n case 'y':\r\n return n * y;\r\n case 'weeks':\r\n case 'week':\r\n case 'w':\r\n return n * w;\r\n case 'days':\r\n case 'day':\r\n case 'd':\r\n return n * d;\r\n case 'hours':\r\n case 'hour':\r\n case 'hrs':\r\n case 'hr':\r\n case 'h':\r\n return n * h;\r\n case 'minutes':\r\n case 'minute':\r\n case 'mins':\r\n case 'min':\r\n case 'm':\r\n return n * m;\r\n case 'seconds':\r\n case 'second':\r\n case 'secs':\r\n case 'sec':\r\n case 's':\r\n return n * s;\r\n case 'milliseconds':\r\n case 'millisecond':\r\n case 'msecs':\r\n case 'msec':\r\n case 'ms':\r\n return n;\r\n default:\r\n return undefined;\r\n }\r\n}\r\n\r\n/**\r\n * Short format for `ms`.\r\n *\r\n * @param {Number} ms\r\n * @return {String}\r\n * @api private\r\n */\r\n\r\nfunction fmtShort(ms) {\r\n var msAbs = Math.abs(ms);\r\n if (msAbs >= d) {\r\n return Math.round(ms / d) + 'd';\r\n }\r\n if (msAbs >= h) {\r\n return Math.round(ms / h) + 'h';\r\n }\r\n if (msAbs >= m) {\r\n return Math.round(ms / m) + 'm';\r\n }\r\n if (msAbs >= s) {\r\n return Math.round(ms / s) + 's';\r\n }\r\n return ms + 'ms';\r\n}\r\n\r\n/**\r\n * Long format for `ms`.\r\n *\r\n * @param {Number} ms\r\n * @return {String}\r\n * @api private\r\n */\r\n\r\nfunction fmtLong(ms) {\r\n var msAbs = Math.abs(ms);\r\n if (msAbs >= d) {\r\n return plural(ms, msAbs, d, 'day');\r\n }\r\n if (msAbs >= h) {\r\n return plural(ms, msAbs, h, 'hour');\r\n }\r\n if (msAbs >= m) {\r\n return plural(ms, msAbs, m, 'minute');\r\n }\r\n if (msAbs >= s) {\r\n return plural(ms, msAbs, s, 'second');\r\n }\r\n return ms + ' ms';\r\n}\r\n\r\n/**\r\n * Pluralization helper.\r\n */\r\n\r\nfunction plural(ms, msAbs, n, name) {\r\n var isPlural = msAbs >= n * 1.5;\r\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\r\n}\r\n","'use strict';\r\n\r\nconst fs = require('fs');\r\n\r\nconst LF = 0x0a; // \\n - Unix/Linux/macOS\r\nconst CR = 0x0d; // \\r - Classic Mac OS / part of Windows CRLF\r\nconst STDIN_FD = 0;\r\n\r\n/**\r\n * @class\r\n */\r\nclass LineByLine {\r\n constructor(file, options) {\r\n options = options || {};\r\n\r\n if (!options.readChunk) options.readChunk = 1024;\r\n\r\n if (typeof file === 'number') {\r\n this.fd = file;\r\n } else {\r\n this.fd = fs.openSync(file, 'r');\r\n }\r\n\r\n this.options = options;\r\n this.isStdin = this.fd === STDIN_FD;\r\n\r\n this.reset();\r\n }\r\n\r\n _searchInBuffer(buffer) {\r\n for (let i = 0; i < buffer.length; i++) {\r\n const byte = buffer[i];\r\n if (byte === LF || byte === CR) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n reset() {\r\n this.eofReached = false;\r\n this.linesCache = [];\r\n this.fdPosition = 0;\r\n this.lastChunkEndedWithCR = false;\r\n this.lineIsComplete = false;\r\n }\r\n\r\n close() {\r\n // Don't close stdin\r\n if (!this.isStdin) {\r\n fs.closeSync(this.fd);\r\n }\r\n this.fd = null;\r\n }\r\n\r\n _extractLines(buffer, isEof) {\r\n const lines = [];\r\n let lineStart = 0;\r\n\r\n // If last chunk ended with CR and this one starts with LF, skip the LF\r\n if (this.lastChunkEndedWithCR && buffer.length > 0 && buffer[0] === LF) {\r\n lineStart = 1;\r\n }\r\n this.lastChunkEndedWithCR = false;\r\n this.lineIsComplete = false;\r\n\r\n for (let i = lineStart; i < buffer.length; i++) {\r\n const byte = buffer[i];\r\n\r\n if (byte === LF) {\r\n // LF found - extract line (without the LF)\r\n lines.push(buffer.slice(lineStart, i));\r\n lineStart = i + 1;\r\n } else if (byte === CR) {\r\n const lineEnd = i;\r\n \r\n // Check if this is the last byte in the buffer\r\n if (i + 1 >= buffer.length) {\r\n // CR at end of buffer - might be start of CRLF\r\n if (!isEof) {\r\n // Not at EOF, mark that we ended with CR\r\n this.lastChunkEndedWithCR = true;\r\n }\r\n // Extract line without the CR\r\n lines.push(buffer.slice(lineStart, lineEnd));\r\n lineStart = i + 1;\r\n } else if (buffer[i + 1] === LF) {\r\n // CRLF - skip both characters\r\n lines.push(buffer.slice(lineStart, lineEnd));\r\n i++; // Skip the LF\r\n lineStart = i + 1;\r\n } else {\r\n // Standalone CR (classic Mac)\r\n lines.push(buffer.slice(lineStart, lineEnd));\r\n lineStart = i + 1;\r\n }\r\n }\r\n }\r\n\r\n // Add any remaining content (incomplete line without newline)\r\n if (lineStart < buffer.length) {\r\n lines.push(buffer.slice(lineStart));\r\n } else if (lineStart === buffer.length) {\r\n this.lineIsComplete = true;\r\n }\r\n\r\n return lines;\r\n }\r\n\r\n _readChunk(lineLeftovers) {\r\n let totalBytesRead = 0;\r\n\r\n let bytesRead;\r\n const buffers = [];\r\n do {\r\n const readBuffer = Buffer.alloc(this.options.readChunk);\r\n\r\n // For stdin (non-seekable), pass null for position to read from current position\r\n const position = this.isStdin ? null : this.fdPosition;\r\n bytesRead = fs.readSync(this.fd, readBuffer, 0, this.options.readChunk, position);\r\n totalBytesRead = totalBytesRead + bytesRead;\r\n\r\n this.fdPosition = this.fdPosition + bytesRead;\r\n\r\n buffers.push(readBuffer);\r\n } while (bytesRead && this._searchInBuffer(buffers[buffers.length-1]) === -1);\r\n\r\n let bufferData = Buffer.concat(buffers);\r\n\r\n if (bytesRead < this.options.readChunk) {\r\n this.eofReached = true;\r\n bufferData = bufferData.slice(0, totalBytesRead);\r\n }\r\n\r\n if (totalBytesRead) {\r\n this.linesCache = this._extractLines(bufferData, this.eofReached);\r\n\r\n if (lineLeftovers) {\r\n if (this.linesCache.length > 0) {\r\n this.linesCache[0] = Buffer.concat([lineLeftovers, this.linesCache[0]]);\r\n } else {\r\n this.linesCache.push(lineLeftovers);\r\n }\r\n }\r\n }\r\n\r\n return totalBytesRead;\r\n }\r\n\r\n next() {\r\n // Check for null specifically, not falsy (fd 0 is stdin and is valid)\r\n if (this.fd === null) return null;\r\n\r\n let line = null;\r\n\r\n if (this.eofReached && this.linesCache.length === 0) {\r\n return line;\r\n }\r\n\r\n let bytesRead;\r\n\r\n if (!this.linesCache.length) {\r\n bytesRead = this._readChunk();\r\n }\r\n\r\n if (this.linesCache.length) {\r\n line = this.linesCache.shift();\r\n\r\n // Check if this might be an incomplete line (no newline found yet)\r\n // This happens when we read a chunk that doesn't contain a newline\r\n if (!this.eofReached && !this.lineIsComplete && this.linesCache.length === 0) {\r\n bytesRead = this._readChunk(line);\r\n\r\n if (bytesRead && this.linesCache.length) {\r\n line = this.linesCache.shift();\r\n }\r\n }\r\n }\r\n\r\n if (this.eofReached && this.linesCache.length === 0) {\r\n this.close();\r\n }\r\n\r\n return line;\r\n }\r\n\r\n /**\r\n * Returns true if the last line has been read and there are no more lines.\r\n * @returns {boolean}\r\n */\r\n isLast() {\r\n return this.fd === null || (this.eofReached && this.linesCache.length === 0);\r\n }\r\n}\r\n\r\nmodule.exports = LineByLine;\r\n","const fs = require('fs');\r\nconst http = require('http')//For jsdoc\r\nconst IncomingMessage = http.IncomingMessage\r\nconst makeRequest = require('./makeRequest');\r\nconst stream = require('stream');\r\nvar HttpsProxyAgent = require('https-proxy-agent');\r\nconst { Transform } = require('stream')\r\nconst util = require('util');\r\nconst FileProcessor = require('./utils/FileProcessor');\r\nconst mkdir = util.promisify(fs.mkdir);\r\nconst writeFile = util.promisify(fs.writeFile);\r\nconst { deduceFileName, exists, getTempFilePath } = require('./utils/fileName');\r\nconst { isJson } = require('./utils/string');\r\nconst { isDataUrl } = require('./utils/url');\r\nconst unlink = util.promisify(fs.unlink)\r\nconst rename = util.promisify(fs.rename)\r\nconst { bufferToReadableStream, createWriteStream, createBufferFromResponseStream, pipeStreams, getStringFromStream } = require('./utils/stream');\r\nconst path = require('path')\r\n\r\n\r\nconst downloadStatusEnum = {\r\n COMPLETE: 'COMPLETE',\r\n ABORTED: \"ABORTED\"\r\n}\r\n\r\nmodule.exports = class Download {\r\n\r\n /**\r\n * \r\n * @param {object} config \r\n * @param {string} config.url \r\n * @param {string} [config.method = 'GET']\r\n * @param {string} [config.directory] \r\n * @param {string} [config.fileName = undefined] \r\n * @param {boolean } [config.cloneFiles=true] \r\n * @param {boolean} [config.skipExistingFileName = false]\r\n * @param {number} [config.timeout=6000] \r\n * @param {object} [config.headers = undefined] \r\n * @param {object} [config.httpsAgent = undefined] \r\n * @param {string} [config.proxy = undefined] \r\n * @param {function} [config.onResponse = undefined] \r\n * @param {function} [config.onBeforeSave = undefined] \r\n * @param {function} [config.onProgress = undefined] \r\n * @param {boolean} [config.shouldBufferResponse = false] \r\n * @param {boolean} [config.useSynchronousMode = false] \r\n */\r\n constructor(config) {\r\n\r\n const defaultConfig = {\r\n directory: './',\r\n fileName: undefined,\r\n timeout: 6000,\r\n useSynchronousMode: false,\r\n httpsAgent: undefined,\r\n proxy: undefined,\r\n headers: undefined,\r\n cloneFiles: true,\r\n skipExistingFileName: false,\r\n shouldBufferResponse: false,\r\n onResponse: undefined,\r\n onBeforeSave: undefined,\r\n onProgress: undefined,\r\n method: 'GET',\r\n }\r\n\r\n this.config = {\r\n ...defaultConfig,\r\n ...config\r\n }\r\n\r\n\r\n this.isCancelled = false;\r\n this.cancelCb = null;//Function from makeRequest, to cancel the download.\r\n this.percentage = 0;\r\n this.fileSize = null;\r\n this.currentDataSize = 0;\r\n this.originalResponse = null;//The IncomingMessage read stream.\r\n\r\n\r\n }\r\n\r\n\r\n\r\n /**\r\n * The entire download process.\r\n * @return {Promise<{filePath:string | null,downloadStatus:(keyof downloadStatusEnum)} | void>}\r\n */\r\n async start() {\r\n\r\n await this._verifyDirectoryExists(this.config.directory)\r\n\r\n if(await this._shouldSkipRequest()){\r\n return { downloadStatus: downloadStatusEnum.ABORTED, filePath: null }\r\n }\r\n\r\n try {\r\n\r\n const { dataStream, originalResponse } = await this._request();\r\n\r\n this.originalResponse = originalResponse;\r\n\r\n await this._handlePossibleStatusCodeError({dataStream, originalResponse})\r\n\r\n if (this.config.onResponse) {\r\n\r\n const shouldContinue = await this.config.onResponse(originalResponse);\r\n if (shouldContinue === false) {\r\n return { downloadStatus: downloadStatusEnum.ABORTED, filePath: null }\r\n }\r\n }\r\n\r\n let { finalFileName, originalFileName } = await this._getFileName(originalResponse.headers);\r\n\r\n const finalPath = await this._save({dataStream, finalFileName, originalFileName})\r\n\r\n return { filePath: finalPath, downloadStatus: finalPath ? downloadStatusEnum.COMPLETE : downloadStatusEnum.ABORTED }\r\n } catch (error) {\r\n\r\n if (this.isCancelled) {\r\n const customError = new Error('Request cancelled')\r\n customError.code = 'ERR_REQUEST_CANCELLED'\r\n throw customError\r\n }\r\n throw error;\r\n }\r\n\r\n }\r\n\r\n\r\n async _shouldSkipRequest() { \r\n if (this.config.fileName && this.config.skipExistingFileName) {\r\n if (await exists(path.join(this.config.directory , this.config.fileName))) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n\r\n /**\r\n * \r\n * @param {Object} obj \r\n * @param {stream.Readable} obj.dataStream \r\n * @param {http.IncomingMessage} obj.originalResponse\r\n */\r\n async _handlePossibleStatusCodeError({dataStream, originalResponse}){\r\n if (originalResponse.statusCode > 226) {\r\n\r\n const error = await this._createErrorObject(dataStream, originalResponse)\r\n\r\n throw error;\r\n }\r\n }\r\n\r\n async _createErrorObject(dataStream, originalResponse) {\r\n const responseString = await getStringFromStream(dataStream);\r\n\r\n const error = new Error(`Request failed with status code ${originalResponse.statusCode}`)\r\n\r\n error.statusCode = originalResponse.statusCode\r\n\r\n error.response = originalResponse\r\n\r\n error.responseBody = isJson(responseString) ? JSON.parse(responseString) : responseString\r\n\r\n return error;\r\n }\r\n\r\n\r\n \r\n\r\n /**\r\n * \r\n * @param {string} directory \r\n */\r\n async _verifyDirectoryExists(directory) {\r\n await mkdir(directory, { recursive: true });\r\n }\r\n\r\n\r\n /**\r\n * @return {Promise<{dataStream:stream.Readable,originalResponse:IncomingMessage}} \r\n */\r\n async _request() {\r\n if (isDataUrl(this.config.url)) {\r\n return this._mimic_RequestForDataUrl(this.config.url);\r\n }\r\n else {\r\n const { dataStream, originalResponse } = await this._makeRequest();\r\n const headers = originalResponse.headers;\r\n const contentLength = headers['content-length'] || headers['Content-Length'];\r\n this.fileSize = parseInt(contentLength);\r\n return { dataStream, originalResponse };\r\n }\r\n }\r\n\r\n /**\r\n * @param {string} dataUrl\r\n * @return {Promise<{dataStream:stream.Readable,originalResponse:IncomingMessage}} \r\n */\r\n _mimic_RequestForDataUrl(dataUrl) {\r\n const mimeType = dataUrl.match(/data:([^;]+);/)[1];\r\n const base64Data = dataUrl.replace(/^data:[^;]+;base64,/, '');\r\n const data = Buffer.from(base64Data, 'base64');\r\n\r\n const dataStream = bufferToReadableStream(data);\r\n\r\n const originalResponse = new IncomingMessage(null);\r\n originalResponse.headers = {\r\n 'content-type': mimeType,\r\n 'content-length': data.byteLength\r\n };\r\n originalResponse.statusCode = 200;\r\n\r\n this.fileSize = data.byteLength;\r\n\r\n return { dataStream, originalResponse };\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param {string} originalFileName \r\n * @returns \r\n */\r\n async _shouldSkipSaving(originalFileName) {\r\n if (this.config.skipExistingFileName && await exists(path.join(this.config.directory , originalFileName))) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} finalFileName \r\n * @returns {{finalPath:string,tempPath:string}}\r\n */\r\n _getTempAndFinalPath(finalFileName) {\r\n const finalPath = `${this.config.directory}/${finalFileName}`;\r\n var tempPath = getTempFilePath(finalPath);\r\n return { finalPath, tempPath }\r\n }\r\n\r\n async _saveAccordingToConfig({ dataStream, tempPath }) {\r\n if (this.config.shouldBufferResponse) {\r\n const buffer = await createBufferFromResponseStream(dataStream);\r\n await this._saveFromBuffer(buffer, tempPath);\r\n } else {\r\n await this._saveFromReadableStream(dataStream, tempPath);\r\n }\r\n }\r\n\r\n async _handleOnBeforeSave(finalFileName) {\r\n if (this.config.onBeforeSave) {\r\n const clientOverideName = await this.config.onBeforeSave(finalFileName)\r\n if (clientOverideName && typeof clientOverideName === 'string') {\r\n finalFileName = clientOverideName;\r\n }\r\n }\r\n return finalFileName\r\n }\r\n\r\n /**\r\n * @param {{dataStream:stream.Readable,finalFileName:string,originalFileName:string}} \r\n * @return {Promise} finalPath\r\n */\r\n async _save({ dataStream, finalFileName, originalFileName }) {\r\n \r\n try {\r\n\r\n if (await this._shouldSkipSaving(originalFileName)) {\r\n return null;\r\n }\r\n\r\n finalFileName = await this._handleOnBeforeSave(finalFileName)\r\n\r\n var { finalPath, tempPath } = this._getTempAndFinalPath(finalFileName)\r\n\r\n await this._saveAccordingToConfig({ dataStream, tempPath })\r\n\r\n await this._renameTempFileToFinalName(tempPath, finalPath)\r\n\r\n return finalPath;\r\n\r\n } catch (error) {\r\n if (!this.config.shouldBufferResponse)\r\n await this._removeFailedFile(tempPath)\r\n\r\n throw error;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @return {Promise<{dataStream:stream.Readable,originalResponse:IncomingMessage}} \r\n */\r\n async _makeRequest() {\r\n const { timeout, headers, proxy, url, httpsAgent,method } = this.config;\r\n const options = {\r\n timeout,\r\n headers,\r\n method\r\n }\r\n if (httpsAgent) {\r\n options.agent = httpsAgent;\r\n }\r\n else if (proxy) {\r\n options.agent = new HttpsProxyAgent(proxy)\r\n }\r\n\r\n const { makeRequestIter, cancel, } = makeRequest(url, options)\r\n this.cancelCb = cancel\r\n const { dataStream, originalResponse, } = await makeRequestIter()\r\n\r\n return { dataStream, originalResponse }\r\n } \r\n\r\n\r\n _getProgressStream() {\r\n const that = this;\r\n const progress = new Transform({\r\n\r\n transform(chunk, encoding, callback) {\r\n\r\n that.currentDataSize += chunk.byteLength;\r\n if (that.fileSize) {\r\n that.percentage = ((that.currentDataSize / that.fileSize) * 100).toFixed(2)\r\n } else {\r\n that.percentage = NaN\r\n }\r\n\r\n const remainingFracture = (100 - that.percentage) / 100;\r\n const remainingSize = Math.round(remainingFracture * that.fileSize);\r\n\r\n\r\n if (that.config.onProgress) {\r\n that.config.onProgress(that.percentage, chunk, remainingSize);\r\n }\r\n\r\n // Push the data onto the readable queue.\r\n callback(null, chunk);\r\n }\r\n });\r\n\r\n return progress;\r\n\r\n }\r\n \r\n\r\n async _saveFromReadableStream(read, path) {\r\n const streams = [read];\r\n const write = createWriteStream(path)\r\n if (this.config.onProgress) {\r\n const progressStream = this._getProgressStream()\r\n streams.push(progressStream);\r\n\r\n }\r\n streams.push(write)\r\n await pipeStreams(streams)\r\n }\r\n\r\n\r\n async _saveFromBuffer(buffer, path) {\r\n await writeFile(path, buffer)\r\n\r\n }\r\n\r\n async _removeFailedFile(path) {\r\n await unlink(path);\r\n }\r\n\r\n async _renameTempFileToFinalName(temp, final) {\r\n await rename(temp, final)\r\n }\r\n\r\n \r\n /**\r\n * @param {object} responseHeaders \r\n */\r\n async _getFileName(responseHeaders) {\r\n let originalFileName;\r\n let finalFileName;\r\n if (this.config.fileName) {\r\n originalFileName = this.config.fileName\r\n } else {\r\n originalFileName = deduceFileName(this.config.url, responseHeaders)\r\n }\r\n\r\n if (this.config.cloneFiles === true) {\r\n var fileProcessor = new FileProcessor({ useSynchronousMode: this.config.useSynchronousMode, fileName: originalFileName, path: this.config.directory })\r\n\r\n finalFileName = await fileProcessor.getAvailableFileName()\r\n } else {\r\n finalFileName = originalFileName\r\n }\r\n\r\n return { finalFileName, originalFileName };\r\n }\r\n\r\n\r\n cancel() {\r\n if (this.cancelCb) {\r\n this.isCancelled = true;\r\n\r\n this.cancelCb()\r\n }\r\n }\r\n}","const rpur = require('./utils/rpur')\r\nconst { capitalize } = require('./utils/string')\r\nconst Download = require('./Download');\r\n\r\n\r\nconst configTypes = {\r\n url: {\r\n type: 'string',\r\n mandatory: true\r\n },\r\n directory: {\r\n type: 'string',\r\n mandatory: false\r\n },\r\n fileName: {\r\n type: 'string',\r\n mandatory: false\r\n },\r\n cloneFiles: {\r\n type: 'boolean',\r\n mandatory: false\r\n },\r\n proxy: {\r\n type: 'string',\r\n mandatory: false\r\n }\r\n};\r\n\r\nconst validateConfig = (config) => {\r\n const generateTypeError = (prop) => { throw new Error(`config.${prop} must be of type ${configTypes[prop].type}`) }\r\n for (let prop in configTypes) {\r\n if (configTypes[prop].mandatory) {\r\n if (!config[prop])\r\n throw new Error(`Must supply a config.${prop}`);\r\n\r\n if (-1 === [].concat(configTypes[prop].type).indexOf(typeof config[prop]))\r\n generateTypeError(prop)\r\n }\r\n\r\n if (config.hasOwnProperty(prop) && -1 === [].concat(configTypes[prop].type).indexOf(typeof config[prop]))\r\n generateTypeError(prop)\r\n }\r\n}\r\n\r\n\r\n class Downloader {\r\n\r\n\r\n /**\r\n * \r\n * @param {object} config \r\n * @param {string} config.url \r\n * @param {string} [config.method= 'GET']\r\n * @param {string} [config.directory] \r\n * @param {string} [config.fileName = undefined] \r\n * @param {boolean} [config.cloneFiles=true] true will create a duplicate. false will overwrite the existing file. \r\n * @param {boolean} [config.skipExistingFileName = false] true will cause the downloader to skip the download process in case a file with the same name already exists.\r\n * @param {number} [config.timeout=6000] \r\n * @param {number} [config.maxAttempts=1] \r\n * @param {object} [config.headers = undefined] \r\n * @param {object} [config.httpsAgent = undefined] \r\n * @param {string} [config.proxy = undefined] \r\n * @param {function} [config.onError = undefined] \r\n * @param {function} [config.onResponse = undefined] \r\n * @param {function} [config.onBeforeSave = undefined] \r\n * @param {function} [config.onProgress = undefined] \r\n * @param {function} [config.shouldStop = undefined] \r\n * @param {boolean} [config.shouldBufferResponse = false] \r\n * @param {boolean} [config.useSynchronousMode = false] \r\n */\r\n constructor(config) {\r\n\r\n if (!config || typeof config !== 'object') {\r\n throw new Error('Must provide a valid config object')\r\n }\r\n validateConfig(config);\r\n\r\n const defaultConfig = {\r\n directory: './',\r\n fileName: undefined,\r\n timeout: 6000,\r\n maxAttempts: 1,\r\n useSynchronousMode: false,\r\n httpsAgent: undefined,\r\n proxy: undefined,\r\n headers: undefined,\r\n cloneFiles: true,\r\n skipExistingFileName:false,\r\n shouldBufferResponse: false,\r\n onResponse: undefined,\r\n onBeforeSave: undefined,\r\n onError: undefined,\r\n onProgress: undefined,\r\n method: 'GET',\r\n }\r\n\r\n this.config = {\r\n ...defaultConfig,\r\n ...config\r\n }\r\n\r\n\r\n\r\n if (this.config.filename) {\r\n this.config.fileName = this.config.filename\r\n }\r\n\r\n this._currentDownload = null;\r\n\r\n }\r\n\r\n //For EventEmitter backwards compatibility\r\n on(event, callback) {\r\n this.config[`on${capitalize(event)}`] = callback\r\n }\r\n\r\n\r\n\r\n\r\n /**\r\n * @return {Promise<{filePath:string|null,downloadStatus:\"ABORTED\"|\"COMPLETE\"}>}\r\n */\r\n async download() {\r\n const that = this;\r\n const { url, method, directory, fileName, cloneFiles, skipExistingFileName, timeout, headers, httpsAgent, proxy, onResponse, onBeforeSave, onProgress, shouldBufferResponse, useSynchronousMode } = that.config;\r\n\r\n //Repeat downloading process until success \r\n const {filePath,downloadStatus} = await that._makeUntilSuccessful(async () => {\r\n const download = new Download({ url, method, directory, fileName, cloneFiles, skipExistingFileName, timeout, headers, httpsAgent, proxy, onResponse, onBeforeSave, onProgress, shouldBufferResponse, useSynchronousMode });\r\n this._currentDownload = download\r\n\r\n return await download.start();\r\n\r\n })\r\n\r\n return {filePath,downloadStatus}\r\n\r\n\r\n }\r\n\r\n /**\r\n * @param {Function} asyncFunc\r\n * @return {Promise} \r\n */\r\n async _makeUntilSuccessful(asyncFunc) {\r\n\r\n let data;\r\n const func = asyncFunc.bind(this)\r\n await rpur(async () => {\r\n\r\n data = await func();\r\n }, {\r\n onError: async (e) => {\r\n if (this.config.onError) {\r\n await this.config.onError(e);\r\n }\r\n },\r\n shouldStop: async (e) => {\r\n\r\n if (e.code === 'ERR_REQUEST_CANCELLED')//Means the request was cancelled, therefore no repetition is required.\r\n return true;\r\n\r\n if (this.config.shouldStop) {\r\n if (await this.config.shouldStop(e) === true) {\r\n return true;\r\n }\r\n }\r\n\r\n },\r\n maxAttempts: this.config.maxAttempts\r\n })\r\n return data;\r\n\r\n\r\n }\r\n\r\n cancel() {\r\n\r\n this._currentDownload.cancel();\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n\r\n//Export Downloader as both default and a named export\r\nmodule.exports = Downloader\r\nmodule.exports.Downloader = Downloader\r\n\r\n\r\n","const { http, https } = require('follow-redirects');\r\nconst { Readable } = require('stream')\r\n\r\n\r\nfunction makeRequest(url, config = {}) {\r\n\r\n let cancelPromiseReject;\r\n\r\n let responsePromiseReject;\r\n\r\n let request;\r\n\r\n\r\n const responsePromise = new Promise((resolve, reject) => {\r\n responsePromiseReject = reject;\r\n const protocol = url.trim().startsWith('https') ? https : http;\r\n\r\n request = protocol.request(url, config, (res) => {\r\n resolve(res)\r\n });\r\n request.end()\r\n request.on('error',(e)=>{\r\n\r\n responsePromiseReject(e)\r\n })\r\n\r\n });\r\n const timeoutPromise = new Promise((resolve, reject) => {\r\n if (config.timeout) {\r\n request.setTimeout(config.timeout, () => {\r\n const customError = new Error('Request timed out')\r\n customError.code = 'ERR_REQUEST_TIMEDOUT'\r\n reject(customError)\r\n });\r\n }\r\n });\r\n\r\n const cancelPromise = new Promise((resolve, reject) => {\r\n cancelPromiseReject = reject;\r\n })\r\n\r\n \r\n async function makeRequestIter() {\r\n\r\n const response = await Promise.race([\r\n responsePromise,\r\n cancelPromise,\r\n timeoutPromise\r\n ]);\r\n\r\n const responseIter = response[Symbol.asyncIterator]();\r\n\r\n const data = (async function* () {\r\n try {\r\n while (true) {\r\n\r\n const item = await Promise.race([\r\n responseIter.next(),\r\n cancelPromise,\r\n timeoutPromise\r\n ]);\r\n if (item.done) {\r\n break;\r\n }\r\n yield item.value;\r\n }\r\n\r\n } catch (error) {\r\n\r\n abort(request._currentRequest);\r\n throw error\r\n }\r\n })();\r\n return {\r\n dataStream: Readable.from(data),\r\n originalResponse: response, // The original\r\n };\r\n }\r\n\r\n return {\r\n makeRequestIter,\r\n cancel() {\r\n const customError = new Error('Request cancelled')\r\n customError.code = 'ERR_REQUEST_CANCELLED'\r\n cancelPromiseReject(customError)\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nmodule.exports = makeRequest;\r\n\r\n\r\n\r\n/**\r\n * \r\n * @param {ClientRequest} request \r\n */\r\nfunction abort(request) {\r\n const majorNodeVersion = process.versions.node.split('.')[0];\r\n if (!majorNodeVersion || majorNodeVersion < 14) {\r\n request.abort()\r\n\r\n } else {\r\n request.destroy()\r\n }\r\n}\r\n\r\n","const path = require('path');\r\nconst fs = require('fs');\r\n\r\nclass FileProcessor {\r\n constructor(config) {\r\n\r\n\r\n this.originalFileName = config.fileName;\r\n this.fileExtension = path.extname(this.originalFileName);\r\n this.fileNameWithoutExtension = config.fileName.split('.').slice(0, -1).join('.')\r\n this.basePath = config.path[config.path.length - 1] === '/' ? config.path : config.path + '/';\r\n\r\n this.useSynchronousMode = config.useSynchronousMode || false;\r\n\r\n }\r\n\r\n\r\n getAvailableFileName() {\r\n if (this.useSynchronousMode) {\r\n // console.log('useSynchronousMode')\r\n return this.createNewFileNameSync(this.originalFileName);\r\n }\r\n\r\n return new Promise(async (resolve) => {\r\n // console.log('useSynchronousMode!!',this.useSynchronousMode)\r\n try {\r\n const name = await this.createNewFileName(this.originalFileName);\r\n resolve(name);\r\n } catch (error) {\r\n reject(error);\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n pathExistsSync(path) {\r\n return fs.existsSync(path);\r\n }\r\n\r\n\r\n pathExists(path) {\r\n if (this.useSynchronousMode) {\r\n return this.pathExistsSync(path);\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n fs.access(path, (err) => {\r\n if (err) {\r\n resolve(false)\r\n } else {\r\n resolve(true)\r\n }\r\n });\r\n })\r\n }\r\n\r\n\r\n createNewFileNameSync(fileName, counter = 1) {\r\n\r\n\r\n if (!this.pathExistsSync(this.basePath + fileName)) {\r\n return fileName;\r\n }\r\n\r\n counter = counter + 1;\r\n let newFileName = this.fileNameWithoutExtension + \"_\" + counter + this.fileExtension;\r\n\r\n return this.createNewFileNameSync(newFileName, counter);\r\n\r\n }\r\n\r\n async createNewFileName(fileName, counter = 1) {\r\n\r\n\r\n if (! await this.pathExists(this.basePath + fileName)) {\r\n\r\n return fileName;\r\n }\r\n\r\n counter = counter + 1;\r\n let newFileName = this.fileNameWithoutExtension + \"_\" + counter + this.fileExtension;\r\n\r\n return await this.createNewFileName(newFileName, counter);\r\n\r\n }\r\n\r\n\r\n}\r\n\r\nmodule.exports = FileProcessor;\r\n","\r\nfunction createDelay(mil){\r\n return new Promise((resolve)=>{\r\n setTimeout(() => {\r\n resolve();\r\n }, mil);\r\n })\r\n}\r\n\r\nmodule.exports={\r\n createDelay\r\n}","const sanitize = require('sanitize-filename');\r\nconst path = require('path');\r\nvar mime = require('mime-types')\r\nconst { promises: Fs } = require('fs')\r\nconst crypto = require('crypto');\r\n\r\n\r\n/**\r\n * \r\n * @param {string} url \r\n * @return {string} fileName\r\n */\r\nfunction deduceFileNameFromUrl(url) {\r\n const cleanUrl = removeQueryString(url);\r\n const baseName = sanitize(path.basename(cleanUrl));\r\n return baseName;\r\n\r\n}\r\n\r\n\r\n/**\r\n * Deduce the fileName, covering various scenarios.\r\n * @param {string} url\r\n * @param {Object} headers\r\n * @return {string} fileName\r\n */\r\nfunction deduceFileName(url, headers) {\r\n\r\n //First option\r\n const fileNameFromContentDisposition = getFileNameFromContentDisposition(headers['content-disposition'] || headers['Content-Disposition']);\r\n if (fileNameFromContentDisposition) return fileNameFromContentDisposition;\r\n\r\n //Second option\r\n if (path.extname(url)) {//First check if the url even has an extension\r\n const fileNameFromUrl = deduceFileNameFromUrl(url);\r\n if (fileNameFromUrl) return fileNameFromUrl;\r\n }\r\n\r\n //Third option\r\n const fileNameFromContentType = getFileNameFromContentType(headers['content-type'] || headers['Content-Type'], url)\r\n if (fileNameFromContentType) return fileNameFromContentType\r\n\r\n\r\n //Fallback option\r\n return sanitize(url)\r\n\r\n\r\n}\r\n\r\n\r\nfunction removeQueryString(url) {\r\n return url.split(/[?#]/)[0];\r\n}\r\n\r\nfunction getFileNameFromContentType(contentType, url) {\r\n\r\n\r\n let extension = mime.extension(contentType)\r\n\r\n url = removeQueryString(url);\r\n const fileNameWithoutExtension = removeExtension(path.basename(url));\r\n return `${sanitize(fileNameWithoutExtension)}.${extension}`;\r\n}\r\n\r\n\r\nfunction getFileNameFromContentDisposition(contentDisposition) {\r\n if (!contentDisposition || !contentDisposition.includes('filename=')) {\r\n return \"\";\r\n }\r\n let filename = \"\";\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(contentDisposition);\r\n if (matches != null && matches[1]) {\r\n filename = matches[1].replace(/['\"]/g, '');\r\n }\r\n\r\n return filename ? sanitize(filename) : \"\";\r\n}\r\n\r\nfunction removeExtension(str) {\r\n const arr = str.split('.');\r\n if (arr.length == 1) {\r\n return str;\r\n }\r\n return arr.slice(0, -1).join('.')\r\n\r\n\r\n\r\n}\r\n\r\nasync function exists(path) {\r\n try {\r\n await Fs.access(path)\r\n return true\r\n } catch {\r\n return false\r\n }\r\n}\r\n\r\n /**\r\n * \r\n * @param {string} finalpath \r\n */\r\n function getTempFilePath(finalpath) {\r\n return `${finalpath}.download`;\r\n}\r\n\r\n\r\n\r\n\r\nmodule.exports = { deduceFileName, exists,getTempFilePath }","const {createDelay} = require('./delay')\r\n\r\n\r\n/**\r\n * \r\n * @param {Function} promiseFactory \r\n * @param {Object} config \r\n * @param {Function} [config.onError] \r\n * @param {Function} [config.shouldStop] \r\n * @param {Function} [config.onAttempt] \r\n * @param {number} [config.delay] \r\n * @param {number} [config.maxAttempts] \r\n * @param {number} [config.timeout] \r\n * @returns {Promise}\r\n */\r\nmodule.exports = async function rpur(promiseFactory,config={}) {\r\n\r\n const attempts = arguments[2] || 0\r\n\r\n const dummy = () => false;\r\n const shouldStop = config.shouldStop || dummy;\r\n const delay = config.delay || null;\r\n const maxAttempts = config.maxAttempts || 3;\r\n const timeout = config.timeout || 0\r\n try {\r\n var newAttempts = attempts + 1;\r\n\r\n if (config.onAttempt) {\r\n await config.onAttempt(attempts + 1)\r\n }\r\n const promise = promiseFactory();\r\n const result = await promiseWithTimeout(promise, timeout);\r\n return result;\r\n } catch (error) {\r\n\r\n if (config.onError) {\r\n await config.onError(error, newAttempts)\r\n }\r\n\r\n\r\n if (await shouldStop(error) || newAttempts == maxAttempts)\r\n throw error;\r\n\r\n\r\n if (delay) {\r\n await createDelay(delay);\r\n }\r\n\r\n return await rpur(promiseFactory, config, newAttempts);//Calls it self, as long as there are retries left.\r\n }\r\n\r\n}\r\n\r\n\r\n\r\nfunction promiseWithTimeout(promise, time) {\r\n return new Promise(async (resolve, reject) => {\r\n if (time) {\r\n var timeout = setTimeout(() => {\r\n reject(new Error('Promise timed out as defined in the config'))\r\n }, time)\r\n }\r\n try {\r\n const result = await promise; \r\n resolve(result);\r\n } catch (error) {\r\n reject(error);\r\n }finally{\r\n clearTimeout(timeout);\r\n }\r\n\r\n })\r\n}\r\n","const fs = require(\"fs\");\r\nconst stream = require(\"stream\");\r\nconst util = require('util');\r\nconst pipelinePromisified = util.promisify(stream.pipeline);\r\n\r\n\r\nfunction bufferToReadableStream(buffer) {\r\n const readable = new stream.Stream.Readable({\r\n read() {\r\n this.push(buffer);\r\n this.push(null); // Indicates the end of the stream\r\n },\r\n });\r\n\r\n return readable;\r\n}\r\n\r\n/**\r\n * \r\n * @param {string} fullPath \r\n * @return {Promie}\r\n */\r\nfunction createWriteStream(fullPath) {\r\n return fs.createWriteStream(fullPath)\r\n}\r\n\r\n/**\r\n * \r\n * @param {stream.Readable} stream \r\n * @returns \r\n */\r\nasync function createBufferFromResponseStream(stream) {\r\n const chunks = []\r\n for await (let chunk of stream) {\r\n chunks.push(chunk)\r\n }\r\n\r\n const buffer = Buffer.concat(chunks)\r\n return buffer;\r\n}\r\n\r\nasync function pipeStreams(arrayOfStreams) {\r\n await pipelinePromisified(...arrayOfStreams);\r\n}\r\n\r\nasync function getStringFromStream(stream) {\r\n const buffer = await createBufferFromResponseStream(stream);\r\n return buffer.toString();\r\n}\r\n\r\n\r\n\r\nmodule.exports = { bufferToReadableStream, createWriteStream, createBufferFromResponseStream, pipeStreams,getStringFromStream }","const capitalize = (s) => {\r\n if (typeof s !== 'string') return ''\r\n return s.charAt(0).toUpperCase() + s.slice(1)\r\n}\r\n\r\nconst isJson = (string)=> {\r\n try {\r\n JSON.parse(string)\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n}\r\n\r\n\r\nmodule.exports= {\r\n capitalize,\r\n isJson\r\n}","/**\r\n * \r\n * @param {string} url\r\n * @return {boolean} \r\n */\r\nfunction isDataUrl(url) {\r\n if (!url || !url.startsWith(\"data:image\"))\r\n return false\r\n\r\n return true;\r\n}\r\n\r\n/**\r\n * \r\n * @param {string} dataurl \r\n * @return {string}\r\n */\r\nfunction getDataUrlExtension(dataurl) {\r\n return dataurl.split('/')[1].split(';')[0]\r\n}\r\n\r\n\r\nmodule.exports = {isDataUrl,getDataUrlExtension}","var wrappy = require('wrappy')\r\nmodule.exports = wrappy(once)\r\nmodule.exports.strict = wrappy(onceStrict)\r\n\r\nonce.proto = once(function () {\r\n Object.defineProperty(Function.prototype, 'once', {\r\n value: function () {\r\n return once(this)\r\n },\r\n configurable: true\r\n })\r\n\r\n Object.defineProperty(Function.prototype, 'onceStrict', {\r\n value: function () {\r\n return onceStrict(this)\r\n },\r\n configurable: true\r\n })\r\n})\r\n\r\nfunction once (fn) {\r\n var f = function () {\r\n if (f.called) return f.value\r\n f.called = true\r\n return f.value = fn.apply(this, arguments)\r\n }\r\n f.called = false\r\n return f\r\n}\r\n\r\nfunction onceStrict (fn) {\r\n var f = function () {\r\n if (f.called)\r\n throw new Error(f.onceError)\r\n f.called = true\r\n return f.value = fn.apply(this, arguments)\r\n }\r\n var name = fn.name || 'Function wrapped with `once`'\r\n f.onceError = name + \" shouldn't be called more than once\"\r\n f.called = false\r\n return f\r\n}\r\n","module.exports = Pend;\r\n\r\nfunction Pend() {\r\n this.pending = 0;\r\n this.max = Infinity;\r\n this.listeners = [];\r\n this.waiting = [];\r\n this.error = null;\r\n}\r\n\r\nPend.prototype.go = function(fn) {\r\n if (this.pending < this.max) {\r\n pendGo(this, fn);\r\n } else {\r\n this.waiting.push(fn);\r\n }\r\n};\r\n\r\nPend.prototype.wait = function(cb) {\r\n if (this.pending === 0) {\r\n cb(this.error);\r\n } else {\r\n this.listeners.push(cb);\r\n }\r\n};\r\n\r\nPend.prototype.hold = function() {\r\n return pendHold(this);\r\n};\r\n\r\nfunction pendHold(self) {\r\n self.pending += 1;\r\n var called = false;\r\n return onCb;\r\n function onCb(err) {\r\n if (called) throw new Error(\"callback called twice\");\r\n called = true;\r\n self.error = self.error || err;\r\n self.pending -= 1;\r\n if (self.waiting.length > 0 && self.pending < self.max) {\r\n pendGo(self, self.waiting.shift());\r\n } else if (self.pending === 0) {\r\n var listeners = self.listeners;\r\n self.listeners = [];\r\n listeners.forEach(cbListener);\r\n }\r\n }\r\n function cbListener(listener) {\r\n listener(self.error);\r\n }\r\n}\r\n\r\nfunction pendGo(self, fn) {\r\n fn(pendHold(self));\r\n}\r\n","'use strict';\r\n\r\nmodule.exports = require('./lib/picomatch');\r\n","'use strict';\r\n\r\nconst path = require('path');\r\nconst WIN_SLASH = '\\\\\\\\/';\r\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\r\n\r\nconst DEFAULT_MAX_EXTGLOB_RECURSION = 0;\r\n\r\n/**\r\n * Posix glob regex\r\n */\r\n\r\nconst DOT_LITERAL = '\\\\.';\r\nconst PLUS_LITERAL = '\\\\+';\r\nconst QMARK_LITERAL = '\\\\?';\r\nconst SLASH_LITERAL = '\\\\/';\r\nconst ONE_CHAR = '(?=.)';\r\nconst QMARK = '[^/]';\r\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\r\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\r\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\r\nconst NO_DOT = `(?!${DOT_LITERAL})`;\r\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\r\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\r\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\r\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\r\nconst STAR = `${QMARK}*?`;\r\n\r\nconst POSIX_CHARS = {\r\n DOT_LITERAL,\r\n PLUS_LITERAL,\r\n QMARK_LITERAL,\r\n SLASH_LITERAL,\r\n ONE_CHAR,\r\n QMARK,\r\n END_ANCHOR,\r\n DOTS_SLASH,\r\n NO_DOT,\r\n NO_DOTS,\r\n NO_DOT_SLASH,\r\n NO_DOTS_SLASH,\r\n QMARK_NO_DOT,\r\n STAR,\r\n START_ANCHOR\r\n};\r\n\r\n/**\r\n * Windows glob regex\r\n */\r\n\r\nconst WINDOWS_CHARS = {\r\n ...POSIX_CHARS,\r\n\r\n SLASH_LITERAL: `[${WIN_SLASH}]`,\r\n QMARK: WIN_NO_SLASH,\r\n STAR: `${WIN_NO_SLASH}*?`,\r\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\r\n NO_DOT: `(?!${DOT_LITERAL})`,\r\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\r\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\r\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\r\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\r\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\r\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\r\n};\r\n\r\n/**\r\n * POSIX Bracket Regex\r\n */\r\n\r\nconst POSIX_REGEX_SOURCE = {\r\n __proto__: null,\r\n alnum: 'a-zA-Z0-9',\r\n alpha: 'a-zA-Z',\r\n ascii: '\\\\x00-\\\\x7F',\r\n blank: ' \\\\t',\r\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\r\n digit: '0-9',\r\n graph: '\\\\x21-\\\\x7E',\r\n lower: 'a-z',\r\n print: '\\\\x20-\\\\x7E ',\r\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\r\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\r\n upper: 'A-Z',\r\n word: 'A-Za-z0-9_',\r\n xdigit: 'A-Fa-f0-9'\r\n};\r\n\r\nmodule.exports = {\r\n DEFAULT_MAX_EXTGLOB_RECURSION,\r\n MAX_LENGTH: 1024 * 64,\r\n POSIX_REGEX_SOURCE,\r\n\r\n // regular expressions\r\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\r\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\r\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\r\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\r\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\r\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\r\n\r\n // Replace globs with equivalent patterns to reduce parsing time.\r\n REPLACEMENTS: {\r\n __proto__: null,\r\n '***': '*',\r\n '**/**': '**',\r\n '**/**/**': '**'\r\n },\r\n\r\n // Digits\r\n CHAR_0: 48, /* 0 */\r\n CHAR_9: 57, /* 9 */\r\n\r\n // Alphabet chars.\r\n CHAR_UPPERCASE_A: 65, /* A */\r\n CHAR_LOWERCASE_A: 97, /* a */\r\n CHAR_UPPERCASE_Z: 90, /* Z */\r\n CHAR_LOWERCASE_Z: 122, /* z */\r\n\r\n CHAR_LEFT_PARENTHESES: 40, /* ( */\r\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\r\n\r\n CHAR_ASTERISK: 42, /* * */\r\n\r\n // Non-alphabetic chars.\r\n CHAR_AMPERSAND: 38, /* & */\r\n CHAR_AT: 64, /* @ */\r\n CHAR_BACKWARD_SLASH: 92, /* \\ */\r\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\r\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\r\n CHAR_COLON: 58, /* : */\r\n CHAR_COMMA: 44, /* , */\r\n CHAR_DOT: 46, /* . */\r\n CHAR_DOUBLE_QUOTE: 34, /* \" */\r\n CHAR_EQUAL: 61, /* = */\r\n CHAR_EXCLAMATION_MARK: 33, /* ! */\r\n CHAR_FORM_FEED: 12, /* \\f */\r\n CHAR_FORWARD_SLASH: 47, /* / */\r\n CHAR_GRAVE_ACCENT: 96, /* ` */\r\n CHAR_HASH: 35, /* # */\r\n CHAR_HYPHEN_MINUS: 45, /* - */\r\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\r\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\r\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\r\n CHAR_LINE_FEED: 10, /* \\n */\r\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\r\n CHAR_PERCENT: 37, /* % */\r\n CHAR_PLUS: 43, /* + */\r\n CHAR_QUESTION_MARK: 63, /* ? */\r\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\r\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\r\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\r\n CHAR_SEMICOLON: 59, /* ; */\r\n CHAR_SINGLE_QUOTE: 39, /* ' */\r\n CHAR_SPACE: 32, /* */\r\n CHAR_TAB: 9, /* \\t */\r\n CHAR_UNDERSCORE: 95, /* _ */\r\n CHAR_VERTICAL_LINE: 124, /* | */\r\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\r\n\r\n SEP: path.sep,\r\n\r\n /**\r\n * Create EXTGLOB_CHARS\r\n */\r\n\r\n extglobChars(chars) {\r\n return {\r\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\r\n '?': { type: 'qmark', open: '(?:', close: ')?' },\r\n '+': { type: 'plus', open: '(?:', close: ')+' },\r\n '*': { type: 'star', open: '(?:', close: ')*' },\r\n '@': { type: 'at', open: '(?:', close: ')' }\r\n };\r\n },\r\n\r\n /**\r\n * Create GLOB_CHARS\r\n */\r\n\r\n globChars(win32) {\r\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\r\n }\r\n};\r\n","'use strict';\r\n\r\nconst constants = require('./constants');\r\nconst utils = require('./utils');\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst {\r\n MAX_LENGTH,\r\n POSIX_REGEX_SOURCE,\r\n REGEX_NON_SPECIAL_CHARS,\r\n REGEX_SPECIAL_CHARS_BACKREF,\r\n REPLACEMENTS\r\n} = constants;\r\n\r\n/**\r\n * Helpers\r\n */\r\n\r\nconst expandRange = (args, options) => {\r\n if (typeof options.expandRange === 'function') {\r\n return options.expandRange(...args, options);\r\n }\r\n\r\n args.sort();\r\n const value = `[${args.join('-')}]`;\r\n\r\n try {\r\n /* eslint-disable-next-line no-new */\r\n new RegExp(value);\r\n } catch (ex) {\r\n return args.map(v => utils.escapeRegex(v)).join('..');\r\n }\r\n\r\n return value;\r\n};\r\n\r\n/**\r\n * Create the message for a syntax error\r\n */\r\n\r\nconst syntaxError = (type, char) => {\r\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\r\n};\r\n\r\nconst splitTopLevel = input => {\r\n const parts = [];\r\n let bracket = 0;\r\n let paren = 0;\r\n let quote = 0;\r\n let value = '';\r\n let escaped = false;\r\n\r\n for (const ch of input) {\r\n if (escaped === true) {\r\n value += ch;\r\n escaped = false;\r\n continue;\r\n }\r\n\r\n if (ch === '\\\\') {\r\n value += ch;\r\n escaped = true;\r\n continue;\r\n }\r\n\r\n if (ch === '\"') {\r\n quote = quote === 1 ? 0 : 1;\r\n value += ch;\r\n continue;\r\n }\r\n\r\n if (quote === 0) {\r\n if (ch === '[') {\r\n bracket++;\r\n } else if (ch === ']' && bracket > 0) {\r\n bracket--;\r\n } else if (bracket === 0) {\r\n if (ch === '(') {\r\n paren++;\r\n } else if (ch === ')' && paren > 0) {\r\n paren--;\r\n } else if (ch === '|' && paren === 0) {\r\n parts.push(value);\r\n value = '';\r\n continue;\r\n }\r\n }\r\n }\r\n\r\n value += ch;\r\n }\r\n\r\n parts.push(value);\r\n return parts;\r\n};\r\n\r\nconst isPlainBranch = branch => {\r\n let escaped = false;\r\n\r\n for (const ch of branch) {\r\n if (escaped === true) {\r\n escaped = false;\r\n continue;\r\n }\r\n\r\n if (ch === '\\\\') {\r\n escaped = true;\r\n continue;\r\n }\r\n\r\n if (/[?*+@!()[\\]{}]/.test(ch)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst normalizeSimpleBranch = branch => {\r\n let value = branch.trim();\r\n let changed = true;\r\n\r\n while (changed === true) {\r\n changed = false;\r\n\r\n if (/^@\\([^\\\\()[\\]{}|]+\\)$/.test(value)) {\r\n value = value.slice(2, -1);\r\n changed = true;\r\n }\r\n }\r\n\r\n if (!isPlainBranch(value)) {\r\n return;\r\n }\r\n\r\n return value.replace(/\\\\(.)/g, '$1');\r\n};\r\n\r\nconst hasRepeatedCharPrefixOverlap = branches => {\r\n const values = branches.map(normalizeSimpleBranch).filter(Boolean);\r\n\r\n for (let i = 0; i < values.length; i++) {\r\n for (let j = i + 1; j < values.length; j++) {\r\n const a = values[i];\r\n const b = values[j];\r\n const char = a[0];\r\n\r\n if (!char || a !== char.repeat(a.length) || b !== char.repeat(b.length)) {\r\n continue;\r\n }\r\n\r\n if (a === b || a.startsWith(b) || b.startsWith(a)) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst parseRepeatedExtglob = (pattern, requireEnd = true) => {\r\n if ((pattern[0] !== '+' && pattern[0] !== '*') || pattern[1] !== '(') {\r\n return;\r\n }\r\n\r\n let bracket = 0;\r\n let paren = 0;\r\n let quote = 0;\r\n let escaped = false;\r\n\r\n for (let i = 1; i < pattern.length; i++) {\r\n const ch = pattern[i];\r\n\r\n if (escaped === true) {\r\n escaped = false;\r\n continue;\r\n }\r\n\r\n if (ch === '\\\\') {\r\n escaped = true;\r\n continue;\r\n }\r\n\r\n if (ch === '\"') {\r\n quote = quote === 1 ? 0 : 1;\r\n continue;\r\n }\r\n\r\n if (quote === 1) {\r\n continue;\r\n }\r\n\r\n if (ch === '[') {\r\n bracket++;\r\n continue;\r\n }\r\n\r\n if (ch === ']' && bracket > 0) {\r\n bracket--;\r\n continue;\r\n }\r\n\r\n if (bracket > 0) {\r\n continue;\r\n }\r\n\r\n if (ch === '(') {\r\n paren++;\r\n continue;\r\n }\r\n\r\n if (ch === ')') {\r\n paren--;\r\n\r\n if (paren === 0) {\r\n if (requireEnd === true && i !== pattern.length - 1) {\r\n return;\r\n }\r\n\r\n return {\r\n type: pattern[0],\r\n body: pattern.slice(2, i),\r\n end: i\r\n };\r\n }\r\n }\r\n }\r\n};\r\n\r\nconst getStarExtglobSequenceOutput = pattern => {\r\n let index = 0;\r\n const chars = [];\r\n\r\n while (index < pattern.length) {\r\n const match = parseRepeatedExtglob(pattern.slice(index), false);\r\n\r\n if (!match || match.type !== '*') {\r\n return;\r\n }\r\n\r\n const branches = splitTopLevel(match.body).map(branch => branch.trim());\r\n if (branches.length !== 1) {\r\n return;\r\n }\r\n\r\n const branch = normalizeSimpleBranch(branches[0]);\r\n if (!branch || branch.length !== 1) {\r\n return;\r\n }\r\n\r\n chars.push(branch);\r\n index += match.end + 1;\r\n }\r\n\r\n if (chars.length < 1) {\r\n return;\r\n }\r\n\r\n const source = chars.length === 1\r\n ? utils.escapeRegex(chars[0])\r\n : `[${chars.map(ch => utils.escapeRegex(ch)).join('')}]`;\r\n\r\n return `${source}*`;\r\n};\r\n\r\nconst repeatedExtglobRecursion = pattern => {\r\n let depth = 0;\r\n let value = pattern.trim();\r\n let match = parseRepeatedExtglob(value);\r\n\r\n while (match) {\r\n depth++;\r\n value = match.body.trim();\r\n match = parseRepeatedExtglob(value);\r\n }\r\n\r\n return depth;\r\n};\r\n\r\nconst analyzeRepeatedExtglob = (body, options) => {\r\n if (options.maxExtglobRecursion === false) {\r\n return { risky: false };\r\n }\r\n\r\n const max =\r\n typeof options.maxExtglobRecursion === 'number'\r\n ? options.maxExtglobRecursion\r\n : constants.DEFAULT_MAX_EXTGLOB_RECURSION;\r\n\r\n const branches = splitTopLevel(body).map(branch => branch.trim());\r\n\r\n if (branches.length > 1) {\r\n if (\r\n branches.some(branch => branch === '') ||\r\n branches.some(branch => /^[*?]+$/.test(branch)) ||\r\n hasRepeatedCharPrefixOverlap(branches)\r\n ) {\r\n return { risky: true };\r\n }\r\n }\r\n\r\n for (const branch of branches) {\r\n const safeOutput = getStarExtglobSequenceOutput(branch);\r\n if (safeOutput) {\r\n return { risky: true, safeOutput };\r\n }\r\n\r\n if (repeatedExtglobRecursion(branch) > max) {\r\n return { risky: true };\r\n }\r\n }\r\n\r\n return { risky: false };\r\n};\r\n\r\n/**\r\n * Parse the given input string.\r\n * @param {String} input\r\n * @param {Object} options\r\n * @return {Object}\r\n */\r\n\r\nconst parse = (input, options) => {\r\n if (typeof input !== 'string') {\r\n throw new TypeError('Expected a string');\r\n }\r\n\r\n input = REPLACEMENTS[input] || input;\r\n\r\n const opts = { ...options };\r\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\r\n\r\n let len = input.length;\r\n if (len > max) {\r\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\r\n }\r\n\r\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\r\n const tokens = [bos];\r\n\r\n const capture = opts.capture ? '' : '?:';\r\n const win32 = utils.isWindows(options);\r\n\r\n // create constants based on platform, for windows or posix\r\n const PLATFORM_CHARS = constants.globChars(win32);\r\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\r\n\r\n const {\r\n DOT_LITERAL,\r\n PLUS_LITERAL,\r\n SLASH_LITERAL,\r\n ONE_CHAR,\r\n DOTS_SLASH,\r\n NO_DOT,\r\n NO_DOT_SLASH,\r\n NO_DOTS_SLASH,\r\n QMARK,\r\n QMARK_NO_DOT,\r\n STAR,\r\n START_ANCHOR\r\n } = PLATFORM_CHARS;\r\n\r\n const globstar = opts => {\r\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\r\n };\r\n\r\n const nodot = opts.dot ? '' : NO_DOT;\r\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\r\n let star = opts.bash === true ? globstar(opts) : STAR;\r\n\r\n if (opts.capture) {\r\n star = `(${star})`;\r\n }\r\n\r\n // minimatch options support\r\n if (typeof opts.noext === 'boolean') {\r\n opts.noextglob = opts.noext;\r\n }\r\n\r\n const state = {\r\n input,\r\n index: -1,\r\n start: 0,\r\n dot: opts.dot === true,\r\n consumed: '',\r\n output: '',\r\n prefix: '',\r\n backtrack: false,\r\n negated: false,\r\n brackets: 0,\r\n braces: 0,\r\n parens: 0,\r\n quotes: 0,\r\n globstar: false,\r\n tokens\r\n };\r\n\r\n input = utils.removePrefix(input, state);\r\n len = input.length;\r\n\r\n const extglobs = [];\r\n const braces = [];\r\n const stack = [];\r\n let prev = bos;\r\n let value;\r\n\r\n /**\r\n * Tokenizing helpers\r\n */\r\n\r\n const eos = () => state.index === len - 1;\r\n const peek = state.peek = (n = 1) => input[state.index + n];\r\n const advance = state.advance = () => input[++state.index] || '';\r\n const remaining = () => input.slice(state.index + 1);\r\n const consume = (value = '', num = 0) => {\r\n state.consumed += value;\r\n state.index += num;\r\n };\r\n\r\n const append = token => {\r\n state.output += token.output != null ? token.output : token.value;\r\n consume(token.value);\r\n };\r\n\r\n const negate = () => {\r\n let count = 1;\r\n\r\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\r\n advance();\r\n state.start++;\r\n count++;\r\n }\r\n\r\n if (count % 2 === 0) {\r\n return false;\r\n }\r\n\r\n state.negated = true;\r\n state.start++;\r\n return true;\r\n };\r\n\r\n const increment = type => {\r\n state[type]++;\r\n stack.push(type);\r\n };\r\n\r\n const decrement = type => {\r\n state[type]--;\r\n stack.pop();\r\n };\r\n\r\n /**\r\n * Push tokens onto the tokens array. This helper speeds up\r\n * tokenizing by 1) helping us avoid backtracking as much as possible,\r\n * and 2) helping us avoid creating extra tokens when consecutive\r\n * characters are plain text. This improves performance and simplifies\r\n * lookbehinds.\r\n */\r\n\r\n const push = tok => {\r\n if (prev.type === 'globstar') {\r\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\r\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\r\n\r\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\r\n state.output = state.output.slice(0, -prev.output.length);\r\n prev.type = 'star';\r\n prev.value = '*';\r\n prev.output = star;\r\n state.output += prev.output;\r\n }\r\n }\r\n\r\n if (extglobs.length && tok.type !== 'paren') {\r\n extglobs[extglobs.length - 1].inner += tok.value;\r\n }\r\n\r\n if (tok.value || tok.output) append(tok);\r\n if (prev && prev.type === 'text' && tok.type === 'text') {\r\n prev.value += tok.value;\r\n prev.output = (prev.output || '') + tok.value;\r\n return;\r\n }\r\n\r\n tok.prev = prev;\r\n tokens.push(tok);\r\n prev = tok;\r\n };\r\n\r\n const extglobOpen = (type, value) => {\r\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\r\n\r\n token.prev = prev;\r\n token.parens = state.parens;\r\n token.output = state.output;\r\n token.startIndex = state.index;\r\n token.tokensIndex = tokens.length;\r\n const output = (opts.capture ? '(' : '') + token.open;\r\n\r\n increment('parens');\r\n push({ type, value, output: state.output ? '' : ONE_CHAR });\r\n push({ type: 'paren', extglob: true, value: advance(), output });\r\n extglobs.push(token);\r\n };\r\n\r\n const extglobClose = token => {\r\n const literal = input.slice(token.startIndex, state.index + 1);\r\n const body = input.slice(token.startIndex + 2, state.index);\r\n const analysis = analyzeRepeatedExtglob(body, opts);\r\n\r\n if ((token.type === 'plus' || token.type === 'star') && analysis.risky) {\r\n const safeOutput = analysis.safeOutput\r\n ? (token.output ? '' : ONE_CHAR) + (opts.capture ? `(${analysis.safeOutput})` : analysis.safeOutput)\r\n : undefined;\r\n const open = tokens[token.tokensIndex];\r\n\r\n open.type = 'text';\r\n open.value = literal;\r\n open.output = safeOutput || utils.escapeRegex(literal);\r\n\r\n for (let i = token.tokensIndex + 1; i < tokens.length; i++) {\r\n tokens[i].value = '';\r\n tokens[i].output = '';\r\n delete tokens[i].suffix;\r\n }\r\n\r\n state.output = token.output + open.output;\r\n state.backtrack = true;\r\n\r\n push({ type: 'paren', extglob: true, value, output: '' });\r\n decrement('parens');\r\n return;\r\n }\r\n\r\n let output = token.close + (opts.capture ? ')' : '');\r\n let rest;\r\n\r\n if (token.type === 'negate') {\r\n let extglobStar = star;\r\n\r\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\r\n extglobStar = globstar(opts);\r\n }\r\n\r\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\r\n output = token.close = `)$))${extglobStar}`;\r\n }\r\n\r\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\r\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\r\n // In this case, we need to parse the string and use it in the output of the original pattern.\r\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\r\n //\r\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\r\n const expression = parse(rest, { ...options, fastpaths: false }).output;\r\n\r\n output = token.close = `)${expression})${extglobStar})`;\r\n }\r\n\r\n if (token.prev.type === 'bos') {\r\n state.negatedExtglob = true;\r\n }\r\n }\r\n\r\n push({ type: 'paren', extglob: true, value, output });\r\n decrement('parens');\r\n };\r\n\r\n /**\r\n * Fast paths\r\n */\r\n\r\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\r\n let backslashes = false;\r\n\r\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\r\n if (first === '\\\\') {\r\n backslashes = true;\r\n return m;\r\n }\r\n\r\n if (first === '?') {\r\n if (esc) {\r\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\r\n }\r\n if (index === 0) {\r\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\r\n }\r\n return QMARK.repeat(chars.length);\r\n }\r\n\r\n if (first === '.') {\r\n return DOT_LITERAL.repeat(chars.length);\r\n }\r\n\r\n if (first === '*') {\r\n if (esc) {\r\n return esc + first + (rest ? star : '');\r\n }\r\n return star;\r\n }\r\n return esc ? m : `\\\\${m}`;\r\n });\r\n\r\n if (backslashes === true) {\r\n if (opts.unescape === true) {\r\n output = output.replace(/\\\\/g, '');\r\n } else {\r\n output = output.replace(/\\\\+/g, m => {\r\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\r\n });\r\n }\r\n }\r\n\r\n if (output === input && opts.contains === true) {\r\n state.output = input;\r\n return state;\r\n }\r\n\r\n state.output = utils.wrapOutput(output, state, options);\r\n return state;\r\n }\r\n\r\n /**\r\n * Tokenize input until we reach end-of-string\r\n */\r\n\r\n while (!eos()) {\r\n value = advance();\r\n\r\n if (value === '\\u0000') {\r\n continue;\r\n }\r\n\r\n /**\r\n * Escaped characters\r\n */\r\n\r\n if (value === '\\\\') {\r\n const next = peek();\r\n\r\n if (next === '/' && opts.bash !== true) {\r\n continue;\r\n }\r\n\r\n if (next === '.' || next === ';') {\r\n continue;\r\n }\r\n\r\n if (!next) {\r\n value += '\\\\';\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n\r\n // collapse slashes to reduce potential for exploits\r\n const match = /^\\\\+/.exec(remaining());\r\n let slashes = 0;\r\n\r\n if (match && match[0].length > 2) {\r\n slashes = match[0].length;\r\n state.index += slashes;\r\n if (slashes % 2 !== 0) {\r\n value += '\\\\';\r\n }\r\n }\r\n\r\n if (opts.unescape === true) {\r\n value = advance();\r\n } else {\r\n value += advance();\r\n }\r\n\r\n if (state.brackets === 0) {\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n }\r\n\r\n /**\r\n * If we're inside a regex character class, continue\r\n * until we reach the closing bracket.\r\n */\r\n\r\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\r\n if (opts.posix !== false && value === ':') {\r\n const inner = prev.value.slice(1);\r\n if (inner.includes('[')) {\r\n prev.posix = true;\r\n\r\n if (inner.includes(':')) {\r\n const idx = prev.value.lastIndexOf('[');\r\n const pre = prev.value.slice(0, idx);\r\n const rest = prev.value.slice(idx + 2);\r\n const posix = POSIX_REGEX_SOURCE[rest];\r\n if (posix) {\r\n prev.value = pre + posix;\r\n state.backtrack = true;\r\n advance();\r\n\r\n if (!bos.output && tokens.indexOf(prev) === 1) {\r\n bos.output = ONE_CHAR;\r\n }\r\n continue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\r\n value = `\\\\${value}`;\r\n }\r\n\r\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\r\n value = `\\\\${value}`;\r\n }\r\n\r\n if (opts.posix === true && value === '!' && prev.value === '[') {\r\n value = '^';\r\n }\r\n\r\n prev.value += value;\r\n append({ value });\r\n continue;\r\n }\r\n\r\n /**\r\n * If we're inside a quoted string, continue\r\n * until we reach the closing double quote.\r\n */\r\n\r\n if (state.quotes === 1 && value !== '\"') {\r\n value = utils.escapeRegex(value);\r\n prev.value += value;\r\n append({ value });\r\n continue;\r\n }\r\n\r\n /**\r\n * Double quotes\r\n */\r\n\r\n if (value === '\"') {\r\n state.quotes = state.quotes === 1 ? 0 : 1;\r\n if (opts.keepQuotes === true) {\r\n push({ type: 'text', value });\r\n }\r\n continue;\r\n }\r\n\r\n /**\r\n * Parentheses\r\n */\r\n\r\n if (value === '(') {\r\n increment('parens');\r\n push({ type: 'paren', value });\r\n continue;\r\n }\r\n\r\n if (value === ')') {\r\n if (state.parens === 0 && opts.strictBrackets === true) {\r\n throw new SyntaxError(syntaxError('opening', '('));\r\n }\r\n\r\n const extglob = extglobs[extglobs.length - 1];\r\n if (extglob && state.parens === extglob.parens + 1) {\r\n extglobClose(extglobs.pop());\r\n continue;\r\n }\r\n\r\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\r\n decrement('parens');\r\n continue;\r\n }\r\n\r\n /**\r\n * Square brackets\r\n */\r\n\r\n if (value === '[') {\r\n if (opts.nobracket === true || !remaining().includes(']')) {\r\n if (opts.nobracket !== true && opts.strictBrackets === true) {\r\n throw new SyntaxError(syntaxError('closing', ']'));\r\n }\r\n\r\n value = `\\\\${value}`;\r\n } else {\r\n increment('brackets');\r\n }\r\n\r\n push({ type: 'bracket', value });\r\n continue;\r\n }\r\n\r\n if (value === ']') {\r\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\r\n push({ type: 'text', value, output: `\\\\${value}` });\r\n continue;\r\n }\r\n\r\n if (state.brackets === 0) {\r\n if (opts.strictBrackets === true) {\r\n throw new SyntaxError(syntaxError('opening', '['));\r\n }\r\n\r\n push({ type: 'text', value, output: `\\\\${value}` });\r\n continue;\r\n }\r\n\r\n decrement('brackets');\r\n\r\n const prevValue = prev.value.slice(1);\r\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\r\n value = `/${value}`;\r\n }\r\n\r\n prev.value += value;\r\n append({ value });\r\n\r\n // when literal brackets are explicitly disabled\r\n // assume we should match with a regex character class\r\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\r\n continue;\r\n }\r\n\r\n const escaped = utils.escapeRegex(prev.value);\r\n state.output = state.output.slice(0, -prev.value.length);\r\n\r\n // when literal brackets are explicitly enabled\r\n // assume we should escape the brackets to match literal characters\r\n if (opts.literalBrackets === true) {\r\n state.output += escaped;\r\n prev.value = escaped;\r\n continue;\r\n }\r\n\r\n // when the user specifies nothing, try to match both\r\n prev.value = `(${capture}${escaped}|${prev.value})`;\r\n state.output += prev.value;\r\n continue;\r\n }\r\n\r\n /**\r\n * Braces\r\n */\r\n\r\n if (value === '{' && opts.nobrace !== true) {\r\n increment('braces');\r\n\r\n const open = {\r\n type: 'brace',\r\n value,\r\n output: '(',\r\n outputIndex: state.output.length,\r\n tokensIndex: state.tokens.length\r\n };\r\n\r\n braces.push(open);\r\n push(open);\r\n continue;\r\n }\r\n\r\n if (value === '}') {\r\n const brace = braces[braces.length - 1];\r\n\r\n if (opts.nobrace === true || !brace) {\r\n push({ type: 'text', value, output: value });\r\n continue;\r\n }\r\n\r\n let output = ')';\r\n\r\n if (brace.dots === true) {\r\n const arr = tokens.slice();\r\n const range = [];\r\n\r\n for (let i = arr.length - 1; i >= 0; i--) {\r\n tokens.pop();\r\n if (arr[i].type === 'brace') {\r\n break;\r\n }\r\n if (arr[i].type !== 'dots') {\r\n range.unshift(arr[i].value);\r\n }\r\n }\r\n\r\n output = expandRange(range, opts);\r\n state.backtrack = true;\r\n }\r\n\r\n if (brace.comma !== true && brace.dots !== true) {\r\n const out = state.output.slice(0, brace.outputIndex);\r\n const toks = state.tokens.slice(brace.tokensIndex);\r\n brace.value = brace.output = '\\\\{';\r\n value = output = '\\\\}';\r\n state.output = out;\r\n for (const t of toks) {\r\n state.output += (t.output || t.value);\r\n }\r\n }\r\n\r\n push({ type: 'brace', value, output });\r\n decrement('braces');\r\n braces.pop();\r\n continue;\r\n }\r\n\r\n /**\r\n * Pipes\r\n */\r\n\r\n if (value === '|') {\r\n if (extglobs.length > 0) {\r\n extglobs[extglobs.length - 1].conditions++;\r\n }\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n\r\n /**\r\n * Commas\r\n */\r\n\r\n if (value === ',') {\r\n let output = value;\r\n\r\n const brace = braces[braces.length - 1];\r\n if (brace && stack[stack.length - 1] === 'braces') {\r\n brace.comma = true;\r\n output = '|';\r\n }\r\n\r\n push({ type: 'comma', value, output });\r\n continue;\r\n }\r\n\r\n /**\r\n * Slashes\r\n */\r\n\r\n if (value === '/') {\r\n // if the beginning of the glob is \"./\", advance the start\r\n // to the current index, and don't add the \"./\" characters\r\n // to the state. This greatly simplifies lookbehinds when\r\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\r\n if (prev.type === 'dot' && state.index === state.start + 1) {\r\n state.start = state.index + 1;\r\n state.consumed = '';\r\n state.output = '';\r\n tokens.pop();\r\n prev = bos; // reset \"prev\" to the first token\r\n continue;\r\n }\r\n\r\n push({ type: 'slash', value, output: SLASH_LITERAL });\r\n continue;\r\n }\r\n\r\n /**\r\n * Dots\r\n */\r\n\r\n if (value === '.') {\r\n if (state.braces > 0 && prev.type === 'dot') {\r\n if (prev.value === '.') prev.output = DOT_LITERAL;\r\n const brace = braces[braces.length - 1];\r\n prev.type = 'dots';\r\n prev.output += value;\r\n prev.value += value;\r\n brace.dots = true;\r\n continue;\r\n }\r\n\r\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\r\n push({ type: 'text', value, output: DOT_LITERAL });\r\n continue;\r\n }\r\n\r\n push({ type: 'dot', value, output: DOT_LITERAL });\r\n continue;\r\n }\r\n\r\n /**\r\n * Question marks\r\n */\r\n\r\n if (value === '?') {\r\n const isGroup = prev && prev.value === '(';\r\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\r\n extglobOpen('qmark', value);\r\n continue;\r\n }\r\n\r\n if (prev && prev.type === 'paren') {\r\n const next = peek();\r\n let output = value;\r\n\r\n if (next === '<' && !utils.supportsLookbehinds()) {\r\n throw new Error('Node.js v10 or higher is required for regex lookbehinds');\r\n }\r\n\r\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\r\n output = `\\\\${value}`;\r\n }\r\n\r\n push({ type: 'text', value, output });\r\n continue;\r\n }\r\n\r\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\r\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\r\n continue;\r\n }\r\n\r\n push({ type: 'qmark', value, output: QMARK });\r\n continue;\r\n }\r\n\r\n /**\r\n * Exclamation\r\n */\r\n\r\n if (value === '!') {\r\n if (opts.noextglob !== true && peek() === '(') {\r\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\r\n extglobOpen('negate', value);\r\n continue;\r\n }\r\n }\r\n\r\n if (opts.nonegate !== true && state.index === 0) {\r\n negate();\r\n continue;\r\n }\r\n }\r\n\r\n /**\r\n * Plus\r\n */\r\n\r\n if (value === '+') {\r\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\r\n extglobOpen('plus', value);\r\n continue;\r\n }\r\n\r\n if ((prev && prev.value === '(') || opts.regex === false) {\r\n push({ type: 'plus', value, output: PLUS_LITERAL });\r\n continue;\r\n }\r\n\r\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\r\n push({ type: 'plus', value });\r\n continue;\r\n }\r\n\r\n push({ type: 'plus', value: PLUS_LITERAL });\r\n continue;\r\n }\r\n\r\n /**\r\n * Plain text\r\n */\r\n\r\n if (value === '@') {\r\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\r\n push({ type: 'at', extglob: true, value, output: '' });\r\n continue;\r\n }\r\n\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n\r\n /**\r\n * Plain text\r\n */\r\n\r\n if (value !== '*') {\r\n if (value === '$' || value === '^') {\r\n value = `\\\\${value}`;\r\n }\r\n\r\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\r\n if (match) {\r\n value += match[0];\r\n state.index += match[0].length;\r\n }\r\n\r\n push({ type: 'text', value });\r\n continue;\r\n }\r\n\r\n /**\r\n * Stars\r\n */\r\n\r\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\r\n prev.type = 'star';\r\n prev.star = true;\r\n prev.value += value;\r\n prev.output = star;\r\n state.backtrack = true;\r\n state.globstar = true;\r\n consume(value);\r\n continue;\r\n }\r\n\r\n let rest = remaining();\r\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\r\n extglobOpen('star', value);\r\n continue;\r\n }\r\n\r\n if (prev.type === 'star') {\r\n if (opts.noglobstar === true) {\r\n consume(value);\r\n continue;\r\n }\r\n\r\n const prior = prev.prev;\r\n const before = prior.prev;\r\n const isStart = prior.type === 'slash' || prior.type === 'bos';\r\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\r\n\r\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\r\n push({ type: 'star', value, output: '' });\r\n continue;\r\n }\r\n\r\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\r\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\r\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\r\n push({ type: 'star', value, output: '' });\r\n continue;\r\n }\r\n\r\n // strip consecutive `/**/`\r\n while (rest.slice(0, 3) === '/**') {\r\n const after = input[state.index + 4];\r\n if (after && after !== '/') {\r\n break;\r\n }\r\n rest = rest.slice(3);\r\n consume('/**', 3);\r\n }\r\n\r\n if (prior.type === 'bos' && eos()) {\r\n prev.type = 'globstar';\r\n prev.value += value;\r\n prev.output = globstar(opts);\r\n state.output = prev.output;\r\n state.globstar = true;\r\n consume(value);\r\n continue;\r\n }\r\n\r\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\r\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\r\n prior.output = `(?:${prior.output}`;\r\n\r\n prev.type = 'globstar';\r\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\r\n prev.value += value;\r\n state.globstar = true;\r\n state.output += prior.output + prev.output;\r\n consume(value);\r\n continue;\r\n }\r\n\r\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\r\n const end = rest[1] !== void 0 ? '|$' : '';\r\n\r\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\r\n prior.output = `(?:${prior.output}`;\r\n\r\n prev.type = 'globstar';\r\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\r\n prev.value += value;\r\n\r\n state.output += prior.output + prev.output;\r\n state.globstar = true;\r\n\r\n consume(value + advance());\r\n\r\n push({ type: 'slash', value: '/', output: '' });\r\n continue;\r\n }\r\n\r\n if (prior.type === 'bos' && rest[0] === '/') {\r\n prev.type = 'globstar';\r\n prev.value += value;\r\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\r\n state.output = prev.output;\r\n state.globstar = true;\r\n consume(value + advance());\r\n push({ type: 'slash', value: '/', output: '' });\r\n continue;\r\n }\r\n\r\n // remove single star from output\r\n state.output = state.output.slice(0, -prev.output.length);\r\n\r\n // reset previous token to globstar\r\n prev.type = 'globstar';\r\n prev.output = globstar(opts);\r\n prev.value += value;\r\n\r\n // reset output with globstar\r\n state.output += prev.output;\r\n state.globstar = true;\r\n consume(value);\r\n continue;\r\n }\r\n\r\n const token = { type: 'star', value, output: star };\r\n\r\n if (opts.bash === true) {\r\n token.output = '.*?';\r\n if (prev.type === 'bos' || prev.type === 'slash') {\r\n token.output = nodot + token.output;\r\n }\r\n push(token);\r\n continue;\r\n }\r\n\r\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\r\n token.output = value;\r\n push(token);\r\n continue;\r\n }\r\n\r\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\r\n if (prev.type === 'dot') {\r\n state.output += NO_DOT_SLASH;\r\n prev.output += NO_DOT_SLASH;\r\n\r\n } else if (opts.dot === true) {\r\n state.output += NO_DOTS_SLASH;\r\n prev.output += NO_DOTS_SLASH;\r\n\r\n } else {\r\n state.output += nodot;\r\n prev.output += nodot;\r\n }\r\n\r\n if (peek() !== '*') {\r\n state.output += ONE_CHAR;\r\n prev.output += ONE_CHAR;\r\n }\r\n }\r\n\r\n push(token);\r\n }\r\n\r\n while (state.brackets > 0) {\r\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\r\n state.output = utils.escapeLast(state.output, '[');\r\n decrement('brackets');\r\n }\r\n\r\n while (state.parens > 0) {\r\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\r\n state.output = utils.escapeLast(state.output, '(');\r\n decrement('parens');\r\n }\r\n\r\n while (state.braces > 0) {\r\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\r\n state.output = utils.escapeLast(state.output, '{');\r\n decrement('braces');\r\n }\r\n\r\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\r\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\r\n }\r\n\r\n // rebuild the output if we had to backtrack at any point\r\n if (state.backtrack === true) {\r\n state.output = '';\r\n\r\n for (const token of state.tokens) {\r\n state.output += token.output != null ? token.output : token.value;\r\n\r\n if (token.suffix) {\r\n state.output += token.suffix;\r\n }\r\n }\r\n }\r\n\r\n return state;\r\n};\r\n\r\n/**\r\n * Fast paths for creating regular expressions for common glob patterns.\r\n * This can significantly speed up processing and has very little downside\r\n * impact when none of the fast paths match.\r\n */\r\n\r\nparse.fastpaths = (input, options) => {\r\n const opts = { ...options };\r\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\r\n const len = input.length;\r\n if (len > max) {\r\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\r\n }\r\n\r\n input = REPLACEMENTS[input] || input;\r\n const win32 = utils.isWindows(options);\r\n\r\n // create constants based on platform, for windows or posix\r\n const {\r\n DOT_LITERAL,\r\n SLASH_LITERAL,\r\n ONE_CHAR,\r\n DOTS_SLASH,\r\n NO_DOT,\r\n NO_DOTS,\r\n NO_DOTS_SLASH,\r\n STAR,\r\n START_ANCHOR\r\n } = constants.globChars(win32);\r\n\r\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\r\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\r\n const capture = opts.capture ? '' : '?:';\r\n const state = { negated: false, prefix: '' };\r\n let star = opts.bash === true ? '.*?' : STAR;\r\n\r\n if (opts.capture) {\r\n star = `(${star})`;\r\n }\r\n\r\n const globstar = opts => {\r\n if (opts.noglobstar === true) return star;\r\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\r\n };\r\n\r\n const create = str => {\r\n switch (str) {\r\n case '*':\r\n return `${nodot}${ONE_CHAR}${star}`;\r\n\r\n case '.*':\r\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\r\n\r\n case '*.*':\r\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\r\n\r\n case '*/*':\r\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\r\n\r\n case '**':\r\n return nodot + globstar(opts);\r\n\r\n case '**/*':\r\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\r\n\r\n case '**/*.*':\r\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\r\n\r\n case '**/.*':\r\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\r\n\r\n default: {\r\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\r\n if (!match) return;\r\n\r\n const source = create(match[1]);\r\n if (!source) return;\r\n\r\n return source + DOT_LITERAL + match[2];\r\n }\r\n }\r\n };\r\n\r\n const output = utils.removePrefix(input, state);\r\n let source = create(output);\r\n\r\n if (source && opts.strictSlashes !== true) {\r\n source += `${SLASH_LITERAL}?`;\r\n }\r\n\r\n return source;\r\n};\r\n\r\nmodule.exports = parse;\r\n","'use strict';\r\n\r\nconst path = require('path');\r\nconst scan = require('./scan');\r\nconst parse = require('./parse');\r\nconst utils = require('./utils');\r\nconst constants = require('./constants');\r\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\r\n\r\n/**\r\n * Creates a matcher function from one or more glob patterns. The\r\n * returned function takes a string to match as its first argument,\r\n * and returns true if the string is a match. The returned matcher\r\n * function also takes a boolean as the second argument that, when true,\r\n * returns an object with additional information.\r\n *\r\n * ```js\r\n * const picomatch = require('picomatch');\r\n * // picomatch(glob[, options]);\r\n *\r\n * const isMatch = picomatch('*.!(*a)');\r\n * console.log(isMatch('a.a')); //=> false\r\n * console.log(isMatch('a.b')); //=> true\r\n * ```\r\n * @name picomatch\r\n * @param {String|Array} `globs` One or more glob patterns.\r\n * @param {Object=} `options`\r\n * @return {Function=} Returns a matcher function.\r\n * @api public\r\n */\r\n\r\nconst picomatch = (glob, options, returnState = false) => {\r\n if (Array.isArray(glob)) {\r\n const fns = glob.map(input => picomatch(input, options, returnState));\r\n const arrayMatcher = str => {\r\n for (const isMatch of fns) {\r\n const state = isMatch(str);\r\n if (state) return state;\r\n }\r\n return false;\r\n };\r\n return arrayMatcher;\r\n }\r\n\r\n const isState = isObject(glob) && glob.tokens && glob.input;\r\n\r\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\r\n throw new TypeError('Expected pattern to be a non-empty string');\r\n }\r\n\r\n const opts = options || {};\r\n const posix = utils.isWindows(options);\r\n const regex = isState\r\n ? picomatch.compileRe(glob, options)\r\n : picomatch.makeRe(glob, options, false, true);\r\n\r\n const state = regex.state;\r\n delete regex.state;\r\n\r\n let isIgnored = () => false;\r\n if (opts.ignore) {\r\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\r\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\r\n }\r\n\r\n const matcher = (input, returnObject = false) => {\r\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\r\n const result = { glob, state, regex, posix, input, output, match, isMatch };\r\n\r\n if (typeof opts.onResult === 'function') {\r\n opts.onResult(result);\r\n }\r\n\r\n if (isMatch === false) {\r\n result.isMatch = false;\r\n return returnObject ? result : false;\r\n }\r\n\r\n if (isIgnored(input)) {\r\n if (typeof opts.onIgnore === 'function') {\r\n opts.onIgnore(result);\r\n }\r\n result.isMatch = false;\r\n return returnObject ? result : false;\r\n }\r\n\r\n if (typeof opts.onMatch === 'function') {\r\n opts.onMatch(result);\r\n }\r\n return returnObject ? result : true;\r\n };\r\n\r\n if (returnState) {\r\n matcher.state = state;\r\n }\r\n\r\n return matcher;\r\n};\r\n\r\n/**\r\n * Test `input` with the given `regex`. This is used by the main\r\n * `picomatch()` function to test the input string.\r\n *\r\n * ```js\r\n * const picomatch = require('picomatch');\r\n * // picomatch.test(input, regex[, options]);\r\n *\r\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\r\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\r\n * ```\r\n * @param {String} `input` String to test.\r\n * @param {RegExp} `regex`\r\n * @return {Object} Returns an object with matching info.\r\n * @api public\r\n */\r\n\r\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\r\n if (typeof input !== 'string') {\r\n throw new TypeError('Expected input to be a string');\r\n }\r\n\r\n if (input === '') {\r\n return { isMatch: false, output: '' };\r\n }\r\n\r\n const opts = options || {};\r\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\r\n let match = input === glob;\r\n let output = (match && format) ? format(input) : input;\r\n\r\n if (match === false) {\r\n output = format ? format(input) : input;\r\n match = output === glob;\r\n }\r\n\r\n if (match === false || opts.capture === true) {\r\n if (opts.matchBase === true || opts.basename === true) {\r\n match = picomatch.matchBase(input, regex, options, posix);\r\n } else {\r\n match = regex.exec(output);\r\n }\r\n }\r\n\r\n return { isMatch: Boolean(match), match, output };\r\n};\r\n\r\n/**\r\n * Match the basename of a filepath.\r\n *\r\n * ```js\r\n * const picomatch = require('picomatch');\r\n * // picomatch.matchBase(input, glob[, options]);\r\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\r\n * ```\r\n * @param {String} `input` String to test.\r\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\npicomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\r\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\r\n return regex.test(path.basename(input));\r\n};\r\n\r\n/**\r\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\r\n *\r\n * ```js\r\n * const picomatch = require('picomatch');\r\n * // picomatch.isMatch(string, patterns[, options]);\r\n *\r\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\r\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\r\n * ```\r\n * @param {String|Array} str The string to test.\r\n * @param {String|Array} patterns One or more glob patterns to use for matching.\r\n * @param {Object} [options] See available [options](#options).\r\n * @return {Boolean} Returns true if any patterns match `str`\r\n * @api public\r\n */\r\n\r\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\r\n\r\n/**\r\n * Parse a glob pattern to create the source string for a regular\r\n * expression.\r\n *\r\n * ```js\r\n * const picomatch = require('picomatch');\r\n * const result = picomatch.parse(pattern[, options]);\r\n * ```\r\n * @param {String} `pattern`\r\n * @param {Object} `options`\r\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\r\n * @api public\r\n */\r\n\r\npicomatch.parse = (pattern, options) => {\r\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\r\n return parse(pattern, { ...options, fastpaths: false });\r\n};\r\n\r\n/**\r\n * Scan a glob pattern to separate the pattern into segments.\r\n *\r\n * ```js\r\n * const picomatch = require('picomatch');\r\n * // picomatch.scan(input[, options]);\r\n *\r\n * const result = picomatch.scan('!./foo/*.js');\r\n * console.log(result);\r\n * { prefix: '!./',\r\n * input: '!./foo/*.js',\r\n * start: 3,\r\n * base: 'foo',\r\n * glob: '*.js',\r\n * isBrace: false,\r\n * isBracket: false,\r\n * isGlob: true,\r\n * isExtglob: false,\r\n * isGlobstar: false,\r\n * negated: true }\r\n * ```\r\n * @param {String} `input` Glob pattern to scan.\r\n * @param {Object} `options`\r\n * @return {Object} Returns an object with\r\n * @api public\r\n */\r\n\r\npicomatch.scan = (input, options) => scan(input, options);\r\n\r\n/**\r\n * Compile a regular expression from the `state` object returned by the\r\n * [parse()](#parse) method.\r\n *\r\n * @param {Object} `state`\r\n * @param {Object} `options`\r\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\r\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\r\n * @return {RegExp}\r\n * @api public\r\n */\r\n\r\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\r\n if (returnOutput === true) {\r\n return state.output;\r\n }\r\n\r\n const opts = options || {};\r\n const prepend = opts.contains ? '' : '^';\r\n const append = opts.contains ? '' : '$';\r\n\r\n let source = `${prepend}(?:${state.output})${append}`;\r\n if (state && state.negated === true) {\r\n source = `^(?!${source}).*$`;\r\n }\r\n\r\n const regex = picomatch.toRegex(source, options);\r\n if (returnState === true) {\r\n regex.state = state;\r\n }\r\n\r\n return regex;\r\n};\r\n\r\n/**\r\n * Create a regular expression from a parsed glob pattern.\r\n *\r\n * ```js\r\n * const picomatch = require('picomatch');\r\n * const state = picomatch.parse('*.js');\r\n * // picomatch.compileRe(state[, options]);\r\n *\r\n * console.log(picomatch.compileRe(state));\r\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\r\n * ```\r\n * @param {String} `state` The object returned from the `.parse` method.\r\n * @param {Object} `options`\r\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\r\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\r\n * @return {RegExp} Returns a regex created from the given pattern.\r\n * @api public\r\n */\r\n\r\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\r\n if (!input || typeof input !== 'string') {\r\n throw new TypeError('Expected a non-empty string');\r\n }\r\n\r\n let parsed = { negated: false, fastpaths: true };\r\n\r\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\r\n parsed.output = parse.fastpaths(input, options);\r\n }\r\n\r\n if (!parsed.output) {\r\n parsed = parse(input, options);\r\n }\r\n\r\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\r\n};\r\n\r\n/**\r\n * Create a regular expression from the given regex source string.\r\n *\r\n * ```js\r\n * const picomatch = require('picomatch');\r\n * // picomatch.toRegex(source[, options]);\r\n *\r\n * const { output } = picomatch.parse('*.js');\r\n * console.log(picomatch.toRegex(output));\r\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\r\n * ```\r\n * @param {String} `source` Regular expression source string.\r\n * @param {Object} `options`\r\n * @return {RegExp}\r\n * @api public\r\n */\r\n\r\npicomatch.toRegex = (source, options) => {\r\n try {\r\n const opts = options || {};\r\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\r\n } catch (err) {\r\n if (options && options.debug === true) throw err;\r\n return /$^/;\r\n }\r\n};\r\n\r\n/**\r\n * Picomatch constants.\r\n * @return {Object}\r\n */\r\n\r\npicomatch.constants = constants;\r\n\r\n/**\r\n * Expose \"picomatch\"\r\n */\r\n\r\nmodule.exports = picomatch;\r\n","'use strict';\r\n\r\nconst utils = require('./utils');\r\nconst {\r\n CHAR_ASTERISK, /* * */\r\n CHAR_AT, /* @ */\r\n CHAR_BACKWARD_SLASH, /* \\ */\r\n CHAR_COMMA, /* , */\r\n CHAR_DOT, /* . */\r\n CHAR_EXCLAMATION_MARK, /* ! */\r\n CHAR_FORWARD_SLASH, /* / */\r\n CHAR_LEFT_CURLY_BRACE, /* { */\r\n CHAR_LEFT_PARENTHESES, /* ( */\r\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\r\n CHAR_PLUS, /* + */\r\n CHAR_QUESTION_MARK, /* ? */\r\n CHAR_RIGHT_CURLY_BRACE, /* } */\r\n CHAR_RIGHT_PARENTHESES, /* ) */\r\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\r\n} = require('./constants');\r\n\r\nconst isPathSeparator = code => {\r\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\r\n};\r\n\r\nconst depth = token => {\r\n if (token.isPrefix !== true) {\r\n token.depth = token.isGlobstar ? Infinity : 1;\r\n }\r\n};\r\n\r\n/**\r\n * Quickly scans a glob pattern and returns an object with a handful of\r\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\r\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\r\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\r\n *\r\n * ```js\r\n * const pm = require('picomatch');\r\n * console.log(pm.scan('foo/bar/*.js'));\r\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\r\n * ```\r\n * @param {String} `str`\r\n * @param {Object} `options`\r\n * @return {Object} Returns an object with tokens and regex source string.\r\n * @api public\r\n */\r\n\r\nconst scan = (input, options) => {\r\n const opts = options || {};\r\n\r\n const length = input.length - 1;\r\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\r\n const slashes = [];\r\n const tokens = [];\r\n const parts = [];\r\n\r\n let str = input;\r\n let index = -1;\r\n let start = 0;\r\n let lastIndex = 0;\r\n let isBrace = false;\r\n let isBracket = false;\r\n let isGlob = false;\r\n let isExtglob = false;\r\n let isGlobstar = false;\r\n let braceEscaped = false;\r\n let backslashes = false;\r\n let negated = false;\r\n let negatedExtglob = false;\r\n let finished = false;\r\n let braces = 0;\r\n let prev;\r\n let code;\r\n let token = { value: '', depth: 0, isGlob: false };\r\n\r\n const eos = () => index >= length;\r\n const peek = () => str.charCodeAt(index + 1);\r\n const advance = () => {\r\n prev = code;\r\n return str.charCodeAt(++index);\r\n };\r\n\r\n while (index < length) {\r\n code = advance();\r\n let next;\r\n\r\n if (code === CHAR_BACKWARD_SLASH) {\r\n backslashes = token.backslashes = true;\r\n code = advance();\r\n\r\n if (code === CHAR_LEFT_CURLY_BRACE) {\r\n braceEscaped = true;\r\n }\r\n continue;\r\n }\r\n\r\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\r\n braces++;\r\n\r\n while (eos() !== true && (code = advance())) {\r\n if (code === CHAR_BACKWARD_SLASH) {\r\n backslashes = token.backslashes = true;\r\n advance();\r\n continue;\r\n }\r\n\r\n if (code === CHAR_LEFT_CURLY_BRACE) {\r\n braces++;\r\n continue;\r\n }\r\n\r\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\r\n isBrace = token.isBrace = true;\r\n isGlob = token.isGlob = true;\r\n finished = true;\r\n\r\n if (scanToEnd === true) {\r\n continue;\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (braceEscaped !== true && code === CHAR_COMMA) {\r\n isBrace = token.isBrace = true;\r\n isGlob = token.isGlob = true;\r\n finished = true;\r\n\r\n if (scanToEnd === true) {\r\n continue;\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (code === CHAR_RIGHT_CURLY_BRACE) {\r\n braces--;\r\n\r\n if (braces === 0) {\r\n braceEscaped = false;\r\n isBrace = token.isBrace = true;\r\n finished = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (scanToEnd === true) {\r\n continue;\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (code === CHAR_FORWARD_SLASH) {\r\n slashes.push(index);\r\n tokens.push(token);\r\n token = { value: '', depth: 0, isGlob: false };\r\n\r\n if (finished === true) continue;\r\n if (prev === CHAR_DOT && index === (start + 1)) {\r\n start += 2;\r\n continue;\r\n }\r\n\r\n lastIndex = index + 1;\r\n continue;\r\n }\r\n\r\n if (opts.noext !== true) {\r\n const isExtglobChar = code === CHAR_PLUS\r\n || code === CHAR_AT\r\n || code === CHAR_ASTERISK\r\n || code === CHAR_QUESTION_MARK\r\n || code === CHAR_EXCLAMATION_MARK;\r\n\r\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\r\n isGlob = token.isGlob = true;\r\n isExtglob = token.isExtglob = true;\r\n finished = true;\r\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\r\n negatedExtglob = true;\r\n }\r\n\r\n if (scanToEnd === true) {\r\n while (eos() !== true && (code = advance())) {\r\n if (code === CHAR_BACKWARD_SLASH) {\r\n backslashes = token.backslashes = true;\r\n code = advance();\r\n continue;\r\n }\r\n\r\n if (code === CHAR_RIGHT_PARENTHESES) {\r\n isGlob = token.isGlob = true;\r\n finished = true;\r\n break;\r\n }\r\n }\r\n continue;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (code === CHAR_ASTERISK) {\r\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\r\n isGlob = token.isGlob = true;\r\n finished = true;\r\n\r\n if (scanToEnd === true) {\r\n continue;\r\n }\r\n break;\r\n }\r\n\r\n if (code === CHAR_QUESTION_MARK) {\r\n isGlob = token.isGlob = true;\r\n finished = true;\r\n\r\n if (scanToEnd === true) {\r\n continue;\r\n }\r\n break;\r\n }\r\n\r\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\r\n while (eos() !== true && (next = advance())) {\r\n if (next === CHAR_BACKWARD_SLASH) {\r\n backslashes = token.backslashes = true;\r\n advance();\r\n continue;\r\n }\r\n\r\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\r\n isBracket = token.isBracket = true;\r\n isGlob = token.isGlob = true;\r\n finished = true;\r\n break;\r\n }\r\n }\r\n\r\n if (scanToEnd === true) {\r\n continue;\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\r\n negated = token.negated = true;\r\n start++;\r\n continue;\r\n }\r\n\r\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\r\n isGlob = token.isGlob = true;\r\n\r\n if (scanToEnd === true) {\r\n while (eos() !== true && (code = advance())) {\r\n if (code === CHAR_LEFT_PARENTHESES) {\r\n backslashes = token.backslashes = true;\r\n code = advance();\r\n continue;\r\n }\r\n\r\n if (code === CHAR_RIGHT_PARENTHESES) {\r\n finished = true;\r\n break;\r\n }\r\n }\r\n continue;\r\n }\r\n break;\r\n }\r\n\r\n if (isGlob === true) {\r\n finished = true;\r\n\r\n if (scanToEnd === true) {\r\n continue;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (opts.noext === true) {\r\n isExtglob = false;\r\n isGlob = false;\r\n }\r\n\r\n let base = str;\r\n let prefix = '';\r\n let glob = '';\r\n\r\n if (start > 0) {\r\n prefix = str.slice(0, start);\r\n str = str.slice(start);\r\n lastIndex -= start;\r\n }\r\n\r\n if (base && isGlob === true && lastIndex > 0) {\r\n base = str.slice(0, lastIndex);\r\n glob = str.slice(lastIndex);\r\n } else if (isGlob === true) {\r\n base = '';\r\n glob = str;\r\n } else {\r\n base = str;\r\n }\r\n\r\n if (base && base !== '' && base !== '/' && base !== str) {\r\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\r\n base = base.slice(0, -1);\r\n }\r\n }\r\n\r\n if (opts.unescape === true) {\r\n if (glob) glob = utils.removeBackslashes(glob);\r\n\r\n if (base && backslashes === true) {\r\n base = utils.removeBackslashes(base);\r\n }\r\n }\r\n\r\n const state = {\r\n prefix,\r\n input,\r\n start,\r\n base,\r\n glob,\r\n isBrace,\r\n isBracket,\r\n isGlob,\r\n isExtglob,\r\n isGlobstar,\r\n negated,\r\n negatedExtglob\r\n };\r\n\r\n if (opts.tokens === true) {\r\n state.maxDepth = 0;\r\n if (!isPathSeparator(code)) {\r\n tokens.push(token);\r\n }\r\n state.tokens = tokens;\r\n }\r\n\r\n if (opts.parts === true || opts.tokens === true) {\r\n let prevIndex;\r\n\r\n for (let idx = 0; idx < slashes.length; idx++) {\r\n const n = prevIndex ? prevIndex + 1 : start;\r\n const i = slashes[idx];\r\n const value = input.slice(n, i);\r\n if (opts.tokens) {\r\n if (idx === 0 && start !== 0) {\r\n tokens[idx].isPrefix = true;\r\n tokens[idx].value = prefix;\r\n } else {\r\n tokens[idx].value = value;\r\n }\r\n depth(tokens[idx]);\r\n state.maxDepth += tokens[idx].depth;\r\n }\r\n if (idx !== 0 || value !== '') {\r\n parts.push(value);\r\n }\r\n prevIndex = i;\r\n }\r\n\r\n if (prevIndex && prevIndex + 1 < input.length) {\r\n const value = input.slice(prevIndex + 1);\r\n parts.push(value);\r\n\r\n if (opts.tokens) {\r\n tokens[tokens.length - 1].value = value;\r\n depth(tokens[tokens.length - 1]);\r\n state.maxDepth += tokens[tokens.length - 1].depth;\r\n }\r\n }\r\n\r\n state.slashes = slashes;\r\n state.parts = parts;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nmodule.exports = scan;\r\n","'use strict';\r\n\r\nconst path = require('path');\r\nconst win32 = process.platform === 'win32';\r\nconst {\r\n REGEX_BACKSLASH,\r\n REGEX_REMOVE_BACKSLASH,\r\n REGEX_SPECIAL_CHARS,\r\n REGEX_SPECIAL_CHARS_GLOBAL\r\n} = require('./constants');\r\n\r\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\r\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\r\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\r\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\r\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\r\n\r\nexports.removeBackslashes = str => {\r\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\r\n return match === '\\\\' ? '' : match;\r\n });\r\n};\r\n\r\nexports.supportsLookbehinds = () => {\r\n const segs = process.version.slice(1).split('.').map(Number);\r\n if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexports.isWindows = options => {\r\n if (options && typeof options.windows === 'boolean') {\r\n return options.windows;\r\n }\r\n return win32 === true || path.sep === '\\\\';\r\n};\r\n\r\nexports.escapeLast = (input, char, lastIdx) => {\r\n const idx = input.lastIndexOf(char, lastIdx);\r\n if (idx === -1) return input;\r\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\r\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\r\n};\r\n\r\nexports.removePrefix = (input, state = {}) => {\r\n let output = input;\r\n if (output.startsWith('./')) {\r\n output = output.slice(2);\r\n state.prefix = './';\r\n }\r\n return output;\r\n};\r\n\r\nexports.wrapOutput = (input, state = {}, options = {}) => {\r\n const prepend = options.contains ? '' : '^';\r\n const append = options.contains ? '' : '$';\r\n\r\n let output = `${prepend}(?:${input})${append}`;\r\n if (state.negated === true) {\r\n output = `(?:^(?!${output}).*$)`;\r\n }\r\n return output;\r\n};\r\n","var once = require('once')\r\nvar eos = require('end-of-stream')\r\nvar fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes\r\n\r\nvar noop = function () {}\r\nvar ancient = /^v?\\.0/.test(process.version)\r\n\r\nvar isFn = function (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nvar isFS = function (stream) {\r\n if (!ancient) return false // newer node version do not need to care about fs is a special way\r\n if (!fs) return false // browser\r\n return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)\r\n}\r\n\r\nvar isRequest = function (stream) {\r\n return stream.setHeader && isFn(stream.abort)\r\n}\r\n\r\nvar destroyer = function (stream, reading, writing, callback) {\r\n callback = once(callback)\r\n\r\n var closed = false\r\n stream.on('close', function () {\r\n closed = true\r\n })\r\n\r\n eos(stream, {readable: reading, writable: writing}, function (err) {\r\n if (err) return callback(err)\r\n closed = true\r\n callback()\r\n })\r\n\r\n var destroyed = false\r\n return function (err) {\r\n if (closed) return\r\n if (destroyed) return\r\n destroyed = true\r\n\r\n if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks\r\n if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want\r\n\r\n if (isFn(stream.destroy)) return stream.destroy()\r\n\r\n callback(err || new Error('stream was destroyed'))\r\n }\r\n}\r\n\r\nvar call = function (fn) {\r\n fn()\r\n}\r\n\r\nvar pipe = function (from, to) {\r\n return from.pipe(to)\r\n}\r\n\r\nvar pump = function () {\r\n var streams = Array.prototype.slice.call(arguments)\r\n var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop\r\n\r\n if (Array.isArray(streams[0])) streams = streams[0]\r\n if (streams.length < 2) throw new Error('pump requires two streams per minimum')\r\n\r\n var error\r\n var destroys = streams.map(function (stream, i) {\r\n var reading = i < streams.length - 1\r\n var writing = i > 0\r\n return destroyer(stream, reading, writing, function (err) {\r\n if (!error) error = err\r\n if (err) destroys.forEach(call)\r\n if (reading) return\r\n destroys.forEach(call)\r\n callback(error)\r\n })\r\n })\r\n\r\n return streams.reduce(pipe)\r\n}\r\n\r\nmodule.exports = pump\r\n","/*! queue-microtask. MIT License. Feross Aboukhadijeh */\r\nlet promise\r\n\r\nmodule.exports = typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)\r\n // reuse resolved promise, and allocate it lazily\r\n : cb => (promise || (promise = Promise.resolve()))\r\n .then(cb)\r\n .catch(err => setTimeout(() => { throw err }, 0))\r\n","'use strict'\r\n\r\nfunction reusify (Constructor) {\r\n var head = new Constructor()\r\n var tail = head\r\n\r\n function get () {\r\n var current = head\r\n\r\n if (current.next) {\r\n head = current.next\r\n } else {\r\n head = new Constructor()\r\n tail = head\r\n }\r\n\r\n current.next = null\r\n\r\n return current\r\n }\r\n\r\n function release (obj) {\r\n tail.next = obj\r\n tail = obj\r\n }\r\n\r\n return {\r\n get: get,\r\n release: release\r\n }\r\n}\r\n\r\nmodule.exports = reusify\r\n","/*! run-parallel. MIT License. Feross Aboukhadijeh */\r\nmodule.exports = runParallel\r\n\r\nconst queueMicrotask = require('queue-microtask')\r\n\r\nfunction runParallel (tasks, cb) {\r\n let results, pending, keys\r\n let isSync = true\r\n\r\n if (Array.isArray(tasks)) {\r\n results = []\r\n pending = tasks.length\r\n } else {\r\n keys = Object.keys(tasks)\r\n results = {}\r\n pending = keys.length\r\n }\r\n\r\n function done (err) {\r\n function end () {\r\n if (cb) cb(err, results)\r\n cb = null\r\n }\r\n if (isSync) queueMicrotask(end)\r\n else end()\r\n }\r\n\r\n function each (i, err, result) {\r\n results[i] = result\r\n if (--pending === 0 || err) {\r\n done(err)\r\n }\r\n }\r\n\r\n if (!pending) {\r\n // empty\r\n done(null)\r\n } else if (keys) {\r\n // object\r\n keys.forEach(function (key) {\r\n tasks[key](function (err, result) { each(key, err, result) })\r\n })\r\n } else {\r\n // array\r\n tasks.forEach(function (task, i) {\r\n task(function (err, result) { each(i, err, result) })\r\n })\r\n }\r\n\r\n isSync = false\r\n}\r\n","/*jshint node:true*/\r\n'use strict';\r\n\r\n/**\r\n * Replaces characters in strings that are illegal/unsafe for filenames.\r\n * Unsafe characters are either removed or replaced by a substitute set\r\n * in the optional `options` object.\r\n *\r\n * Illegal Characters on Various Operating Systems\r\n * / ? < > \\ : * | \"\r\n * https://kb.acronis.com/content/39790\r\n *\r\n * Unicode Control codes\r\n * C0 0x00-0x1f & C1 (0x80-0x9f)\r\n * http://en.wikipedia.org/wiki/C0_and_C1_control_codes\r\n *\r\n * Reserved filenames on Unix-based systems (\".\", \"..\")\r\n * Reserved filenames in Windows (\"CON\", \"PRN\", \"AUX\", \"NUL\", \"COM1\",\r\n * \"COM2\", \"COM3\", \"COM4\", \"COM5\", \"COM6\", \"COM7\", \"COM8\", \"COM9\",\r\n * \"LPT1\", \"LPT2\", \"LPT3\", \"LPT4\", \"LPT5\", \"LPT6\", \"LPT7\", \"LPT8\", and\r\n * \"LPT9\") case-insesitively and with or without filename extensions.\r\n *\r\n * Capped at 255 characters in length.\r\n * http://unix.stackexchange.com/questions/32795/what-is-the-maximum-allowed-filename-and-folder-size-with-ecryptfs\r\n *\r\n * @param {String} input Original filename\r\n * @param {Object} options {replacement: String | Function }\r\n * @return {String} Sanitized filename\r\n */\r\n\r\nvar truncate = require(\"truncate-utf8-bytes\");\r\n\r\nvar illegalRe = /[\\/\\?<>\\\\:\\*\\|\"]/g;\r\nvar controlRe = /[\\x00-\\x1f\\x80-\\x9f]/g;\r\nvar reservedRe = /^\\.+$/;\r\nvar windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\\..*)?$/i;\r\nvar windowsTrailingRe = /[\\. ]+$/;\r\n\r\nfunction sanitize(input, replacement) {\r\n if (typeof input !== 'string') {\r\n throw new Error('Input must be string');\r\n }\r\n var sanitized = input\r\n .replace(illegalRe, replacement)\r\n .replace(controlRe, replacement)\r\n .replace(reservedRe, replacement)\r\n .replace(windowsReservedRe, replacement)\r\n .replace(windowsTrailingRe, replacement);\r\n return truncate(sanitized, 255);\r\n}\r\n\r\nmodule.exports = function (input, options) {\r\n var replacement = (options && options.replacement) || '';\r\n var output = sanitize(input, replacement);\r\n if (replacement === '') {\r\n return output;\r\n }\r\n return sanitize(output, '');\r\n};\r\n","'use strict';\r\nconst os = require('os');\r\nconst tty = require('tty');\r\nconst hasFlag = require('has-flag');\r\n\r\nconst {env} = process;\r\n\r\nlet flagForceColor;\r\nif (hasFlag('no-color') ||\r\n\thasFlag('no-colors') ||\r\n\thasFlag('color=false') ||\r\n\thasFlag('color=never')) {\r\n\tflagForceColor = 0;\r\n} else if (hasFlag('color') ||\r\n\thasFlag('colors') ||\r\n\thasFlag('color=true') ||\r\n\thasFlag('color=always')) {\r\n\tflagForceColor = 1;\r\n}\r\n\r\nfunction envForceColor() {\r\n\tif ('FORCE_COLOR' in env) {\r\n\t\tif (env.FORCE_COLOR === 'true') {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\r\n\t\tif (env.FORCE_COLOR === 'false') {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\r\n\t}\r\n}\r\n\r\nfunction translateLevel(level) {\r\n\tif (level === 0) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\treturn {\r\n\t\tlevel,\r\n\t\thasBasic: true,\r\n\t\thas256: level >= 2,\r\n\t\thas16m: level >= 3\r\n\t};\r\n}\r\n\r\nfunction supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\r\n\tconst noFlagForceColor = envForceColor();\r\n\tif (noFlagForceColor !== undefined) {\r\n\t\tflagForceColor = noFlagForceColor;\r\n\t}\r\n\r\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\r\n\r\n\tif (forceColor === 0) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tif (sniffFlags) {\r\n\t\tif (hasFlag('color=16m') ||\r\n\t\t\thasFlag('color=full') ||\r\n\t\t\thasFlag('color=truecolor')) {\r\n\t\t\treturn 3;\r\n\t\t}\r\n\r\n\t\tif (hasFlag('color=256')) {\r\n\t\t\treturn 2;\r\n\t\t}\r\n\t}\r\n\r\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tconst min = forceColor || 0;\r\n\r\n\tif (env.TERM === 'dumb') {\r\n\t\treturn min;\r\n\t}\r\n\r\n\tif (process.platform === 'win32') {\r\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\r\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\r\n\t\tconst osRelease = os.release().split('.');\r\n\t\tif (\r\n\t\t\tNumber(osRelease[0]) >= 10 &&\r\n\t\t\tNumber(osRelease[2]) >= 10586\r\n\t\t) {\r\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\r\n\t\t}\r\n\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tif ('CI' in env) {\r\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\r\n\t\treturn min;\r\n\t}\r\n\r\n\tif ('TEAMCITY_VERSION' in env) {\r\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\r\n\t}\r\n\r\n\tif (env.COLORTERM === 'truecolor') {\r\n\t\treturn 3;\r\n\t}\r\n\r\n\tif ('TERM_PROGRAM' in env) {\r\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\r\n\r\n\t\tswitch (env.TERM_PROGRAM) {\r\n\t\t\tcase 'iTerm.app':\r\n\t\t\t\treturn version >= 3 ? 3 : 2;\r\n\t\t\tcase 'Apple_Terminal':\r\n\t\t\t\treturn 2;\r\n\t\t\t// No default\r\n\t\t}\r\n\t}\r\n\r\n\tif (/-256(color)?$/i.test(env.TERM)) {\r\n\t\treturn 2;\r\n\t}\r\n\r\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tif ('COLORTERM' in env) {\r\n\t\treturn 1;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\nfunction getSupportLevel(stream, options = {}) {\r\n\tconst level = supportsColor(stream, {\r\n\t\tstreamIsTTY: stream && stream.isTTY,\r\n\t\t...options\r\n\t});\r\n\r\n\treturn translateLevel(level);\r\n}\r\n\r\nmodule.exports = {\r\n\tsupportsColor: getSupportLevel,\r\n\tstdout: getSupportLevel({isTTY: tty.isatty(1)}),\r\n\tstderr: getSupportLevel({isTTY: tty.isatty(2)})\r\n};\r\n","/*!\r\n * to-regex-range \r\n *\r\n * Copyright (c) 2015-present, Jon Schlinkert.\r\n * Released under the MIT License.\r\n */\r\n\r\n'use strict';\r\n\r\nconst isNumber = require('is-number');\r\n\r\nconst toRegexRange = (min, max, options) => {\r\n if (isNumber(min) === false) {\r\n throw new TypeError('toRegexRange: expected the first argument to be a number');\r\n }\r\n\r\n if (max === void 0 || min === max) {\r\n return String(min);\r\n }\r\n\r\n if (isNumber(max) === false) {\r\n throw new TypeError('toRegexRange: expected the second argument to be a number.');\r\n }\r\n\r\n let opts = { relaxZeros: true, ...options };\r\n if (typeof opts.strictZeros === 'boolean') {\r\n opts.relaxZeros = opts.strictZeros === false;\r\n }\r\n\r\n let relax = String(opts.relaxZeros);\r\n let shorthand = String(opts.shorthand);\r\n let capture = String(opts.capture);\r\n let wrap = String(opts.wrap);\r\n let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;\r\n\r\n if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\r\n return toRegexRange.cache[cacheKey].result;\r\n }\r\n\r\n let a = Math.min(min, max);\r\n let b = Math.max(min, max);\r\n\r\n if (Math.abs(a - b) === 1) {\r\n let result = min + '|' + max;\r\n if (opts.capture) {\r\n return `(${result})`;\r\n }\r\n if (opts.wrap === false) {\r\n return result;\r\n }\r\n return `(?:${result})`;\r\n }\r\n\r\n let isPadded = hasPadding(min) || hasPadding(max);\r\n let state = { min, max, a, b };\r\n let positives = [];\r\n let negatives = [];\r\n\r\n if (isPadded) {\r\n state.isPadded = isPadded;\r\n state.maxLen = String(state.max).length;\r\n }\r\n\r\n if (a < 0) {\r\n let newMin = b < 0 ? Math.abs(b) : 1;\r\n negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\r\n a = state.a = 0;\r\n }\r\n\r\n if (b >= 0) {\r\n positives = splitToPatterns(a, b, state, opts);\r\n }\r\n\r\n state.negatives = negatives;\r\n state.positives = positives;\r\n state.result = collatePatterns(negatives, positives, opts);\r\n\r\n if (opts.capture === true) {\r\n state.result = `(${state.result})`;\r\n } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {\r\n state.result = `(?:${state.result})`;\r\n }\r\n\r\n toRegexRange.cache[cacheKey] = state;\r\n return state.result;\r\n};\r\n\r\nfunction collatePatterns(neg, pos, options) {\r\n let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\r\n let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\r\n let intersected = filterPatterns(neg, pos, '-?', true, options) || [];\r\n let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\r\n return subpatterns.join('|');\r\n}\r\n\r\nfunction splitToRanges(min, max) {\r\n let nines = 1;\r\n let zeros = 1;\r\n\r\n let stop = countNines(min, nines);\r\n let stops = new Set([max]);\r\n\r\n while (min <= stop && stop <= max) {\r\n stops.add(stop);\r\n nines += 1;\r\n stop = countNines(min, nines);\r\n }\r\n\r\n stop = countZeros(max + 1, zeros) - 1;\r\n\r\n while (min < stop && stop <= max) {\r\n stops.add(stop);\r\n zeros += 1;\r\n stop = countZeros(max + 1, zeros) - 1;\r\n }\r\n\r\n stops = [...stops];\r\n stops.sort(compare);\r\n return stops;\r\n}\r\n\r\n/**\r\n * Convert a range to a regex pattern\r\n * @param {Number} `start`\r\n * @param {Number} `stop`\r\n * @return {String}\r\n */\r\n\r\nfunction rangeToPattern(start, stop, options) {\r\n if (start === stop) {\r\n return { pattern: start, count: [], digits: 0 };\r\n }\r\n\r\n let zipped = zip(start, stop);\r\n let digits = zipped.length;\r\n let pattern = '';\r\n let count = 0;\r\n\r\n for (let i = 0; i < digits; i++) {\r\n let [startDigit, stopDigit] = zipped[i];\r\n\r\n if (startDigit === stopDigit) {\r\n pattern += startDigit;\r\n\r\n } else if (startDigit !== '0' || stopDigit !== '9') {\r\n pattern += toCharacterClass(startDigit, stopDigit, options);\r\n\r\n } else {\r\n count++;\r\n }\r\n }\r\n\r\n if (count) {\r\n pattern += options.shorthand === true ? '\\\\d' : '[0-9]';\r\n }\r\n\r\n return { pattern, count: [count], digits };\r\n}\r\n\r\nfunction splitToPatterns(min, max, tok, options) {\r\n let ranges = splitToRanges(min, max);\r\n let tokens = [];\r\n let start = min;\r\n let prev;\r\n\r\n for (let i = 0; i < ranges.length; i++) {\r\n let max = ranges[i];\r\n let obj = rangeToPattern(String(start), String(max), options);\r\n let zeros = '';\r\n\r\n if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\r\n if (prev.count.length > 1) {\r\n prev.count.pop();\r\n }\r\n\r\n prev.count.push(obj.count[0]);\r\n prev.string = prev.pattern + toQuantifier(prev.count);\r\n start = max + 1;\r\n continue;\r\n }\r\n\r\n if (tok.isPadded) {\r\n zeros = padZeros(max, tok, options);\r\n }\r\n\r\n obj.string = zeros + obj.pattern + toQuantifier(obj.count);\r\n tokens.push(obj);\r\n start = max + 1;\r\n prev = obj;\r\n }\r\n\r\n return tokens;\r\n}\r\n\r\nfunction filterPatterns(arr, comparison, prefix, intersection, options) {\r\n let result = [];\r\n\r\n for (let ele of arr) {\r\n let { string } = ele;\r\n\r\n // only push if _both_ are negative...\r\n if (!intersection && !contains(comparison, 'string', string)) {\r\n result.push(prefix + string);\r\n }\r\n\r\n // or _both_ are positive\r\n if (intersection && contains(comparison, 'string', string)) {\r\n result.push(prefix + string);\r\n }\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Zip strings\r\n */\r\n\r\nfunction zip(a, b) {\r\n let arr = [];\r\n for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\r\n return arr;\r\n}\r\n\r\nfunction compare(a, b) {\r\n return a > b ? 1 : b > a ? -1 : 0;\r\n}\r\n\r\nfunction contains(arr, key, val) {\r\n return arr.some(ele => ele[key] === val);\r\n}\r\n\r\nfunction countNines(min, len) {\r\n return Number(String(min).slice(0, -len) + '9'.repeat(len));\r\n}\r\n\r\nfunction countZeros(integer, zeros) {\r\n return integer - (integer % Math.pow(10, zeros));\r\n}\r\n\r\nfunction toQuantifier(digits) {\r\n let [start = 0, stop = ''] = digits;\r\n if (stop || start > 1) {\r\n return `{${start + (stop ? ',' + stop : '')}}`;\r\n }\r\n return '';\r\n}\r\n\r\nfunction toCharacterClass(a, b, options) {\r\n return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;\r\n}\r\n\r\nfunction hasPadding(str) {\r\n return /^-?(0+)\\d/.test(str);\r\n}\r\n\r\nfunction padZeros(value, tok, options) {\r\n if (!tok.isPadded) {\r\n return value;\r\n }\r\n\r\n let diff = Math.abs(tok.maxLen - String(value).length);\r\n let relax = options.relaxZeros !== false;\r\n\r\n switch (diff) {\r\n case 0:\r\n return '';\r\n case 1:\r\n return relax ? '0?' : '0';\r\n case 2:\r\n return relax ? '0{0,2}' : '00';\r\n default: {\r\n return relax ? `0{0,${diff}}` : `0{${diff}}`;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Cache\r\n */\r\n\r\ntoRegexRange.cache = {};\r\ntoRegexRange.clearCache = () => (toRegexRange.cache = {});\r\n\r\n/**\r\n * Expose `toRegexRange`\r\n */\r\n\r\nmodule.exports = toRegexRange;\r\n","'use strict';\r\n\r\nvar truncate = require(\"./lib/truncate\");\r\nvar getLength = Buffer.byteLength.bind(Buffer);\r\nmodule.exports = truncate.bind(null, getLength);\r\n","'use strict';\r\n\r\nfunction isHighSurrogate(codePoint) {\r\n return codePoint >= 0xd800 && codePoint <= 0xdbff;\r\n}\r\n\r\nfunction isLowSurrogate(codePoint) {\r\n return codePoint >= 0xdc00 && codePoint <= 0xdfff;\r\n}\r\n\r\n// Truncate string by size in bytes\r\nmodule.exports = function truncate(getLength, string, byteLength) {\r\n if (typeof string !== \"string\") {\r\n throw new Error(\"Input must be string\");\r\n }\r\n\r\n var charLength = string.length;\r\n var curByteLength = 0;\r\n var codePoint;\r\n var segment;\r\n\r\n for (var i = 0; i < charLength; i += 1) {\r\n codePoint = string.charCodeAt(i);\r\n segment = string[i];\r\n\r\n if (isHighSurrogate(codePoint) && isLowSurrogate(string.charCodeAt(i + 1))) {\r\n i += 1;\r\n segment += string[i];\r\n }\r\n\r\n curByteLength += getLength(segment);\r\n\r\n if (curByteLength === byteLength) {\r\n return string.slice(0, i + 1);\r\n }\r\n else if (curByteLength > byteLength) {\r\n return string.slice(0, i - segment.length + 1);\r\n }\r\n }\r\n\r\n return string;\r\n};\r\n\r\n","import * as vscode from \"vscode\";\r\nimport * as path from \"path\";\r\nimport * as fs from \"fs\";\r\nimport { SequenceFile } from \"./sequence\";\r\nimport { visualText } from \"./visualText\";\r\nimport { JsonState } from \"./jsonState\";\r\nimport { dirfuncs } from \"./dirfuncs\";\r\nimport { TextFile } from \"./textFile\";\r\nimport { nlpFileType } from \"./textFile\";\r\nimport { logLineType } from \"./logView\";\r\nimport { fileOpRefresh, fileOperation } from \"./fileOps\";\r\nimport { sequenceView } from \"./sequenceView\";\r\n\r\nexport enum anaSubDir { UNKNOWN, INPUT, KB, LOGS, OUTPUT, SPEC };\r\n\r\nexport let analyzer: Analyzer;\r\nexport class Analyzer {\r\n\r\n public seqFile = new SequenceFile();\r\n private jsonState = new JsonState();\r\n private analyzerDir: vscode.Uri = vscode.Uri.file(\"\");\r\n private specDir: vscode.Uri = vscode.Uri.file(\"\");\r\n private inputDir: vscode.Uri = vscode.Uri.file(\"\");\r\n private outputDir: vscode.Uri = vscode.Uri.file(\"\");\r\n private kbDir: vscode.Uri = vscode.Uri.file(\"\");\r\n private logDir: vscode.Uri = vscode.Uri.file(\"\");\r\n private currentTextFile: vscode.Uri = vscode.Uri.file(\"\");\r\n private currentPassFile: vscode.Uri = vscode.Uri.file(\"\");\r\n private passNum: number = 0;;\r\n private loaded: boolean = false;\r\n\r\n public hasLogs: boolean = false;\r\n public timerCounter: number = 0;\r\n public timerID: number = 0;\r\n public analyzerCopyUri: vscode.Uri = vscode.Uri.file(\"\");\r\n public name: string = \"\";\r\n\r\n constructor() {\r\n }\r\n\r\n readState() {\r\n if (this.jsonState.jsonParse(this.analyzerDir, \"state\")) {\r\n const parse = this.jsonState.json.visualText[0];\r\n if (parse.currentTextFile) {\r\n let currentFile = parse.currentTextFile;\r\n if (fs.existsSync(currentFile))\r\n this.currentTextFile = vscode.Uri.file(currentFile);\r\n else if (currentFile.includes(\"input\")) {\r\n this.currentTextFile = vscode.Uri.file(\"\");\r\n }\r\n else\r\n this.currentTextFile = vscode.Uri.file(path.join(this.getInputDirectory().fsPath, currentFile));\r\n\r\n if (parse.currentPassFile) {\r\n currentFile = parse.currentPassFile;\r\n if (fs.existsSync(currentFile))\r\n this.currentPassFile = vscode.Uri.file(currentFile);\r\n else\r\n this.currentPassFile = vscode.Uri.file(path.join(this.getSpecDirectory().fsPath, currentFile));\r\n }\r\n\r\n vscode.commands.executeCommand(\"status.update\");\r\n this.outputDirectory();\r\n }\r\n }\r\n }\r\n\r\n async modCreate(uri: vscode.Uri): Promise {\r\n let created = false;\r\n await vscode.window.showInputBox({ value: \"filename\", prompt: \"Enter mod file name\" }).then(newname => {\r\n if (newname) {\r\n const filepath = path.join(uri.fsPath, newname + \".nlm\");\r\n if (fs.existsSync(filepath)) {\r\n vscode.window.showWarningMessage(\"Mod file: \" + filepath + \" already exists\");\r\n return;\r\n }\r\n const modUri = vscode.Uri.file(filepath);\r\n visualText.modFiles.push(modUri);\r\n dirfuncs.writeFile(filepath, \"# Description goes here\");\r\n visualText.setModFile(modUri);\r\n vscode.commands.executeCommand(\"kbView.refreshAll\");\r\n created = true;\r\n }\r\n });\r\n return created;\r\n }\r\n\r\n hasText(): boolean {\r\n return this.currentTextFile.fsPath.length ? true : false;\r\n }\r\n\r\n newAnalyzer(dir: vscode.Uri): string {\r\n if (visualText.hasWorkspaceFolder()) {\r\n const exampleDir = visualText.getBlockAnalyzersPath().fsPath;\r\n const workDir = visualText.getWorkspaceFolder().fsPath;\r\n\r\n if (exampleDir == workDir) {\r\n const button = \"Create analyzer reguardless\";\r\n vscode.window.showInformationMessage(\"Any analyzer in the example analyzers folder will be lost when updated.\", button).then(response => {\r\n if (button === response) {\r\n this.askToCreateNewAnalyzer(dir);\r\n }\r\n });\r\n } else {\r\n this.askToCreateNewAnalyzer(dir);\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n askToCreateNewAnalyzer(dir: vscode.Uri) {\r\n vscode.window.showInputBox({ value: \"name\", prompt: \"Enter new analyzer name\" }).then(newname => {\r\n if (newname) {\r\n this.createNewAnalyzer(dir, newname);\r\n return newname;\r\n }\r\n });\r\n }\r\n\r\n zeroAnalyzer() {\r\n this.analyzerDir = vscode.Uri.file(\"\");\r\n this.specDir = vscode.Uri.file(\"\");\r\n this.inputDir = vscode.Uri.file(\"\");\r\n this.outputDir = vscode.Uri.file(\"\");\r\n this.kbDir = vscode.Uri.file(\"\");\r\n this.currentTextFile = vscode.Uri.file(\"\");\r\n this.name = \"\";\r\n this.passNum = 0;\r\n this.loaded = false;\r\n }\r\n\r\n createNewAnalyzer(dir: vscode.Uri, analyzerName: string): boolean {\r\n visualText.readState();\r\n this.analyzerDir = vscode.Uri.file(path.join(dir.fsPath, analyzerName));\r\n if (fs.existsSync(this.analyzerDir.fsPath)) {\r\n vscode.window.showWarningMessage(\"Analyzer already exists\");\r\n return false;\r\n } else if (!visualText.visualTextDirectoryExists()) {\r\n vscode.window.showWarningMessage(\"Block analyzer files missing\");\r\n return false;\r\n } else {\r\n const items: vscode.QuickPickItem[] = [];\r\n\r\n let fromDir = path.join(visualText.getVisualTextDirectory(\"analyzer-templates\"));\r\n if (dirfuncs.isDir(fromDir)) {\r\n const files = dirfuncs.getDirectories(vscode.Uri.file(fromDir));\r\n const dirMap: { [key: string]: string } = {};\r\n for (const file of files) {\r\n const basename = path.basename(file.fsPath);\r\n if (dirfuncs.isDir(file.fsPath)) {\r\n const readme = path.join(file.fsPath, \"README.md\");\r\n let descr: string, tit: string;\r\n ({ title: tit, description: descr } = this.readDescription(readme));\r\n const item: vscode.QuickPickItem = { label: tit, description: descr };\r\n if (basename === \"Knowledge Base\") {\r\n // Default choice: pre-check the Knowledge Base template and float it to the top.\r\n item.picked = true;\r\n item.description = descr && descr.length ? \"(Recommended) \" + descr : \"(Recommended)\";\r\n items.unshift(item);\r\n } else {\r\n items.push(item);\r\n }\r\n dirMap[tit] = basename;\r\n }\r\n }\r\n\r\n vscode.window.showQuickPick(items, { title: \"Creating New Analyzer\", canPickMany: true, placeHolder: \"Choose analyzer block\" }).then(selections => {\r\n if (!selections) {\r\n return false;\r\n }\r\n if (selections.length == 1) {\r\n let dirName = dirMap[selections[0].label];\r\n this.makeNewAnalyzer(fromDir, dirName);\r\n visualText.fileOps.startFileOps();\r\n this.loaded = true;\r\n return true;\r\n }\r\n this.makeNewAnalyzer(fromDir, \"Bare Minimum\");\r\n const toDir = this.analyzerDir.fsPath;\r\n visualText.fileOps.addFileOperation(vscode.Uri.file(fromDir), vscode.Uri.file(toDir), [fileOpRefresh.ANALYZER], fileOperation.ANASEL, \"1\");\r\n for (const selection of selections) {\r\n sequenceView.insertAnalyzerBlock(fromDir, toDir, selection.label);\r\n }\r\n this.loaded = true;\r\n visualText.fileOps.startFileOps();\r\n return true;\r\n });\r\n\r\n } else {\r\n fromDir = path.join(visualText.getVisualTextDirectory(\"visualText\"));\r\n this.makeNewAnalyzer(fromDir, \"\");\r\n return true;\r\n }\r\n\r\n }\r\n return false;\r\n }\r\n\r\n public readDescription(filepath: string): { title: string, description: string } {\r\n if (!fs.existsSync(filepath))\r\n return { title: \"\", description: \"\" };\r\n const textFile = new TextFile(filepath);\r\n\r\n let line = \"\";\r\n let description = \"\";\r\n let count = 0;\r\n let title = \"\";\r\n const lines = textFile.getLines();\r\n\r\n for (const line of lines) {\r\n let l = line.toString().trim();\r\n if (title.length == 0 && l.length > 0) {\r\n if (l.startsWith(\"# \")) {\r\n l = l.substring(2);\r\n }\r\n title = l;\r\n } else if (title.length > 0 && l.length > 0) {\r\n description += l;\r\n if (count > 0 && description.length > 5)\r\n break;\r\n }\r\n count++;\r\n }\r\n\r\n return { title, description };\r\n }\r\n\r\n makeNewAnalyzer(fromDir: string, analyzer: string) {\r\n fromDir = path.join(fromDir, analyzer);\r\n if (!dirfuncs.makeDir(this.analyzerDir.fsPath)) {\r\n vscode.window.showWarningMessage(`Could not make directory: ${fromDir}`);\r\n return false;\r\n }\r\n visualText.fileOps.addFileOperation(vscode.Uri.file(fromDir), this.analyzerDir, [fileOpRefresh.ANALYZERS], fileOperation.COPY);\r\n visualText.fileOps.addFileOperation(vscode.Uri.file(fromDir), this.analyzerDir, [fileOpRefresh.ANALYZERS], fileOperation.ANALOAD);\r\n }\r\n\r\n createAnaSequenceFile(content: string = \"\"): boolean {\r\n const cont = content.length ? content : \"#\\ntokenize\tnil\t# Gen: Convert input to token list.\";\r\n if (this.getSpecDirectory()) {\r\n const anaFile = path.join(this.getSpecDirectory().fsPath, visualText.ANALYZER_SEQUENCE_FILE);\r\n return dirfuncs.writeFile(anaFile, cont);\r\n }\r\n return false;\r\n }\r\n\r\n saveStateFile() {\r\n if (this.currentPassFile.fsPath.length == 0 || this.currentTextFile.fsPath.length == 0) {\r\n if (this.jsonState.jsonParse(this.analyzerDir, \"state\")) {\r\n const parse = this.jsonState.json.visualText[0];\r\n if (parse.currentTextFile && this.currentPassFile.fsPath.length == 0) {\r\n const currentFile = parse.currentTextFile;\r\n if (fs.existsSync(currentFile))\r\n this.currentTextFile = vscode.Uri.file(currentFile);\r\n else\r\n this.currentTextFile = vscode.Uri.file(path.join(this.getInputDirectory().fsPath, currentFile));\r\n }\r\n if (parse.currentPassFile && this.currentPassFile.fsPath.length == 0) {\r\n const currentFile = parse.currentPassFile;\r\n if (fs.existsSync(currentFile))\r\n this.currentPassFile = vscode.Uri.file(currentFile);\r\n else\r\n this.currentPassFile = vscode.Uri.file(path.join(this.getSpecDirectory().fsPath, currentFile));\r\n }\r\n }\r\n }\r\n\r\n this.saveAnalyzerState();\r\n this.outputDirectory();\r\n }\r\n\r\n saveAnalyzerState() {\r\n const stateJsonDefault: any = {\r\n \"visualText\": [\r\n {\r\n \"name\": \"Analyzer\",\r\n \"type\": \"state\",\r\n \"currentTextFile\": this.currentTextFile.fsPath,\r\n \"currentPassFile\": this.currentPassFile.fsPath\r\n }\r\n ]\r\n }\r\n this.jsonState.saveFile(this.analyzerDir.fsPath, \"state\", stateJsonDefault);\r\n }\r\n\r\n getCurrentFile(): vscode.Uri {\r\n return this.currentTextFile;\r\n }\r\n\r\n saveCurrentFile(currentFile: vscode.Uri) {\r\n this.currentTextFile = currentFile;\r\n this.outputDirectory();\r\n this.saveAnalyzerState();\r\n }\r\n\r\n saveCurrentPass(passFile: vscode.Uri, passNum: number) {\r\n this.currentPassFile = passFile;\r\n this.passNum = passNum;\r\n this.saveAnalyzerState();\r\n }\r\n\r\n load(analyzerDir: vscode.Uri) {\r\n this.setWorkingDir(analyzerDir);\r\n this.readState();\r\n this.seqFile.init();\r\n this.checkHierFile();\r\n vscode.commands.executeCommand(\"analyzerView.updateTitle\", analyzerDir);\r\n if (this.currentTextFile.fsPath.length > 2)\r\n vscode.commands.executeCommand(\"textView.updateTitle\", vscode.Uri.file(this.currentTextFile.fsPath));\r\n else\r\n // Reset the Text view title when the new analyzer has no current text file,\r\n // otherwise it keeps showing the previous analyzer's file (#976).\r\n vscode.commands.executeCommand(\"textView.updateTitle\", vscode.Uri.file(''));\r\n }\r\n\r\n checkHierFile() {\r\n const kbPath = visualText.analyzer.getKBDirectory();\r\n const hierPath = path.join(kbPath.fsPath, \"hier.kb\");\r\n if (fs.existsSync(hierPath)) {\r\n const currHierText = new TextFile(hierPath);\r\n // The 'basic' analyzer was replaced by the 'Bare Minimum' template\r\n // (which carries the same baseline hier.kb shared by most templates)\r\n // under analyzer-templates. Resolve via the installed engine dir\r\n // rather than getExtensionPath(), which can point at a different\r\n // installed version when several are present.\r\n const extHierPath = path.join(visualText.getVisualTextDirectory(\"analyzer-templates\"), \"Bare Minimum\", \"kb\", \"user\", \"hier.kb\");\r\n if (fs.existsSync(extHierPath)) {\r\n const basicHierText = new TextFile(extHierPath);\r\n if (basicHierText.getText() != currHierText.getText()) {\r\n visualText.debugMessage(\"Updating hier.kb file\", logLineType.UPDATER);\r\n currHierText.setText(basicHierText.getText());\r\n currHierText.saveFile();\r\n }\r\n }\r\n }\r\n }\r\n\r\n outputDirectory() {\r\n if (this.currentTextFile.fsPath.length > 2) {\r\n this.outputDir = vscode.Uri.file(this.currentTextFile.fsPath + visualText.LOG_SUFFIX);\r\n } else {\r\n this.outputDir = vscode.Uri.file(path.join(this.analyzerDir.fsPath, \"output\"));\r\n }\r\n }\r\n\r\n clearOutputDirectory() {\r\n if (fs.lstatSync(this.outputDir.fsPath).isDirectory()) {\r\n fs.readdir(this.outputDir.fsPath, (err, files) => {\r\n if (err) throw err;\r\n\r\n for (const file of files) {\r\n fs.unlink(path.join(this.outputDir.fsPath, file), err => {\r\n if (err) throw err;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n treeFile(name: string): vscode.Uri {\r\n if (this.logDir.fsPath.length) {\r\n let pather = path.join(this.logDir.fsPath, name);\r\n pather = pather.concat(\".log\");\r\n return vscode.Uri.file(pather);\r\n }\r\n return vscode.Uri.file(\"\");\r\n }\r\n\r\n isLoaded(): boolean {\r\n return this.loaded;\r\n }\r\n\r\n setCurrentTextFile(filePath: vscode.Uri) {\r\n this.currentTextFile = filePath;\r\n }\r\n\r\n getAnalyzerDirectory(subDir: string = \"\"): vscode.Uri {\r\n return vscode.Uri.file(path.join(this.analyzerDir.fsPath, subDir));\r\n }\r\n\r\n getInputDirectory(): vscode.Uri {\r\n return this.inputDir;\r\n }\r\n\r\n getSpecDirectory(): vscode.Uri {\r\n return this.specDir;\r\n }\r\n\r\n getOutputDirectory(filename: string = \"\"): vscode.Uri {\r\n if (filename.length)\r\n return vscode.Uri.file(path.join(visualText.analyzer.getOutputDirectory().fsPath, filename));\r\n return this.outputDir;\r\n }\r\n\r\n getLogDirectory(): vscode.Uri {\r\n return this.logDir;\r\n }\r\n\r\n getKBDirectory(): vscode.Uri {\r\n return this.kbDir;\r\n }\r\n\r\n getTextPath(): vscode.Uri {\r\n return this.currentTextFile;\r\n }\r\n\r\n getPassPath(): vscode.Uri {\r\n return this.currentPassFile;\r\n }\r\n\r\n getTreeFile(): vscode.Uri {\r\n const textFile = new TextFile();\r\n return textFile.anaFile(this.passNum, nlpFileType.TREE);\r\n }\r\n\r\n getName(): string {\r\n return this.name;\r\n }\r\n\r\n folderHasTests(folder: vscode.Uri): boolean {\r\n const files = dirfuncs.getFiles(folder);\r\n for (const testFile of files) {\r\n if (testFile.fsPath.endsWith(visualText.TEST_SUFFIX))\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n fileHasTests(file: vscode.Uri): boolean {\r\n const testFolder = file.fsPath + visualText.TEST_SUFFIX;\r\n if (fs.existsSync(testFolder))\r\n return true;\r\n return false;\r\n }\r\n\r\n testFolder(uri: vscode.Uri, outputDirFlag: boolean = false): vscode.Uri {\r\n const input = visualText.analyzer.getInputDirectory();\r\n let relPath = uri.fsPath.substring(input.fsPath.length + 1, uri.fsPath.length);\r\n if (outputDirFlag) {\r\n relPath = path.dirname(relPath);\r\n relPath = relPath.substring(0, relPath.length - 4);\r\n }\r\n const folderName = relPath + visualText.TEST_SUFFIX;\r\n const testDir = path.join(input.fsPath, folderName);\r\n return vscode.Uri.file(testDir);\r\n }\r\n\r\n setWorkingDir(directory: vscode.Uri) {\r\n this.analyzerDir = directory;\r\n if (fs.existsSync(directory.fsPath)) {\r\n this.name = path.basename(directory.fsPath);\r\n this.specDir = this.constructDir(directory, anaSubDir.SPEC);;\r\n this.inputDir = this.constructDir(directory, anaSubDir.INPUT);\r\n this.kbDir = this.constructDir(directory, anaSubDir.KB);\r\n this.logDir = this.constructDir(directory, anaSubDir.LOGS);\r\n this.loaded = true;\r\n }\r\n else\r\n this.loaded = false;\r\n }\r\n\r\n constructDir(analyzerDir: vscode.Uri, dir: anaSubDir): vscode.Uri {\r\n return vscode.Uri.file(path.join(analyzerDir.fsPath, this.anaSubDirPath(dir)));\r\n }\r\n\r\n anaSubDirPath(dir: anaSubDir): string {\r\n let pathStr = \"\";\r\n switch (dir) {\r\n case anaSubDir.INPUT:\r\n pathStr = \"input\";\r\n break;\r\n case anaSubDir.KB:\r\n pathStr = path.join(\"kb\", \"user\");\r\n break;\r\n case anaSubDir.SPEC:\r\n pathStr = visualText.ANALYZER_SEQUENCE_FOLDER;\r\n break;\r\n case anaSubDir.LOGS:\r\n pathStr = \"logs\";\r\n break;\r\n case anaSubDir.OUTPUT:\r\n pathStr = \"output\";\r\n break;\r\n }\r\n return pathStr;\r\n }\r\n\r\n getAnalyzerConverting() {\r\n return this.getAnalyzerConverting;\r\n }\r\n}\r\n","import * as vscode from 'vscode';\r\nimport * as path from 'path';\r\nimport * as fs from 'fs';\r\nimport * as os from 'os';\r\nimport { visualText } from './visualText';\r\nimport { dirfuncs } from './dirfuncs';\r\nimport { textView, TextItem } from './textView';\r\nimport { fileOpRefresh, fileOperation } from './fileOps';\r\nimport { SequenceFile } from './sequence';\r\nimport { TextFile } from './textFile';\r\nimport { anaSubDir } from './analyzer';\r\nimport { NLPCompile } from './compile';\r\nimport { regressionRunner } from './regression';\r\n\r\nexport enum analyzerItemType { ANALYZER, FOLDER, NLP, SEQUENCE, ECL, MANIFEST, FILE, README }\r\n\r\ninterface AnalyzerItem {\r\n\turi: vscode.Uri;\r\n\ttype: analyzerItemType;\r\n\thasLogs: boolean;\r\n\thasPats: boolean;\r\n\thasReadme: boolean;\r\n\tmoveUp: boolean;\r\n\tmoveDown: boolean;\r\n}\r\n\r\nexport class AnalyzerTreeDataProvider implements vscode.TreeDataProvider {\r\n\r\n\tprivate _onDidChangeTreeData: vscode.EventEmitter = new vscode.EventEmitter();\r\n\treadonly onDidChangeTreeData: vscode.Event = this._onDidChangeTreeData.event;\r\n\r\n\trefresh(): void {\r\n\t\tthis._onDidChangeTreeData.fire();\r\n\t}\r\n\r\n\tconstructor() { }\r\n\r\n\tasync getChildren(analyzerItem?: AnalyzerItem): Promise {\r\n\t\tvisualText.getAnalyzers(false);\r\n\t\tif (analyzerItem) {\r\n\t\t\treturn this.getKeepers(analyzerItem.uri);\r\n\t\t}\r\n\t\tif (visualText.hasWorkspaceFolder() && visualText.hasAnalyzers()) {\r\n\t\t\treturn this.getKeepers(visualText.getWorkspaceFolder());\r\n\t\t}\r\n\t\treturn [];\r\n\t}\r\n\r\n\tgetMovement(analyzerItem: AnalyzerItem) {\r\n\t\tanalyzerItem.moveDown = false;\r\n\t\tanalyzerItem.moveUp = false;\r\n\t\tconst itemPath = analyzerItem.uri.fsPath;\r\n\t\tconst parent = path.dirname(itemPath);\r\n\t\tconst anaDir = visualText.getAnalyzerDir().fsPath;\r\n\t\tif (parent != anaDir) {\r\n\t\t\tanalyzerItem.moveUp = true;\r\n\t\t}\r\n\t\tif (analyzerItem.type == analyzerItemType.FOLDER) {\r\n\t\t\tif (dirfuncs.parentHasOtherDirs(analyzerItem.uri)) {\r\n\t\t\t\tanalyzerItem.moveDown = true;\r\n\t\t\t}\r\n\t\t} else if (dirfuncs.parentHasOtherDirs(vscode.Uri.file(itemPath))) {\r\n\t\t\tanalyzerItem.moveDown = true;\r\n\t\t}\r\n\t}\r\n\r\n\tgetTreeItem(analyzerItem: AnalyzerItem): vscode.TreeItem {\r\n\t\tconst treeItem = new vscode.TreeItem(analyzerItem.uri, visualText.isAnalyzerDirectory(analyzerItem.uri) ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed);\r\n\t\tthis.getMovement(analyzerItem);\r\n\t\tlet conVal = analyzerItem.moveDown ? 'moveDown' : '';\r\n\t\tif (analyzerItem.moveUp)\r\n\t\t\tconVal = conVal + 'moveUp';\r\n\t\tif (analyzerItem.hasReadme)\r\n\t\t\tconVal = conVal + 'readMe';\r\n\r\n\t\tconst icon = this.fileIconFromType(analyzerItem.type);\r\n\t\ttreeItem.iconPath = {\r\n\t\t\tlight: vscode.Uri.file(path.join(__filename, '..', '..', 'resources', 'light', icon)),\r\n\t\t\tdark: vscode.Uri.file(path.join(__filename, '..', '..', 'resources', 'dark', icon))\r\n\t\t}\r\n\r\n\t\tif (analyzerItem.type === analyzerItemType.ANALYZER) {\r\n\t\t\ttreeItem.command = { command: 'analyzerView.openAnalyzer', title: \"Open Analyzer\", arguments: [analyzerItem] };\r\n\t\t\tconst hasLogs = treeItem.contextValue = analyzerItem.hasLogs ? 'hasLogs' : '';\r\n\t\t\ttreeItem.contextValue = conVal + hasLogs + 'isAnalyzer';\r\n\t\t\ttreeItem.tooltip = analyzerItem.uri.fsPath;\r\n\r\n\t\t} else if (analyzerItem.type === analyzerItemType.FOLDER) {\r\n\t\t\ttreeItem.contextValue = conVal + 'isFolder';\r\n\t\t\ttreeItem.tooltip = analyzerItem.uri.fsPath;\r\n\t\t\ttreeItem.command = { command: 'analyzerView.openAnalyzer', title: \"Open Analyzer\", arguments: [analyzerItem] };\r\n\r\n\t\t} else if (analyzerItem.type === analyzerItemType.NLP) {\r\n\t\t\ttreeItem.tooltip = analyzerItem.uri.fsPath;\r\n\t\t\ttreeItem.collapsibleState = 0;\r\n\t\t\ttreeItem.command = { command: 'analyzerView.openFile', title: \"Open File\", arguments: [analyzerItem] };\r\n\r\n\t\t} else {\r\n\t\t\tif (analyzerItem.uri.fsPath.endsWith('.ecl'))\r\n\t\t\t\tconVal = conVal + 'isECL';\r\n\t\t\telse if (analyzerItem.uri.fsPath.endsWith('.md'))\r\n\t\t\t\tconVal = conVal + 'isReadMe';\r\n\t\t\ttreeItem.contextValue = conVal + 'isFile';\r\n\t\t\ttreeItem.tooltip = analyzerItem.uri.fsPath;\r\n\t\t\ttreeItem.collapsibleState = 0;\r\n\r\n\t\t\ttreeItem.command = { command: 'analyzerView.openFile', title: \"Open File\", arguments: [analyzerItem] };\r\n\t\t}\r\n\t\t//treeItem.label = treeItem.label + ' ' + treeItem.contextValue;\r\n\t\treturn treeItem;\r\n\t}\r\n\r\n\tgetKeepers(dir: vscode.Uri): AnalyzerItem[] {\r\n\t\tconst keepers = Array();\r\n\t\tconst entries = dirfuncs.getDirectoryTypes(dir);\r\n\t\tlet type: analyzerItemType = analyzerItemType.ANALYZER;\r\n\r\n\t\tfor (const entry of entries) {\r\n\t\t\tif (entry.type == vscode.FileType.Directory) {\r\n\t\t\t\ttype = visualText.isAnalyzerDirectory(entry.uri) ? analyzerItemType.ANALYZER : analyzerItemType.FOLDER;\r\n\t\t\t\tconst hasLogs = dirfuncs.analyzerHasLogFiles(entry.uri);\r\n\t\t\t\tconst hasReadme = dirfuncs.hasFile(entry.uri, \"README.md\");\r\n\t\t\t\tkeepers.push({ uri: entry.uri, type: type, hasLogs: hasLogs, hasPats: false, hasReadme: hasReadme, moveUp: false, moveDown: false });\r\n\r\n\t\t\t} else if (entry.type == vscode.FileType.File) {\r\n\t\t\t\ttype = this.typeFromExtension(entry.uri);\r\n\t\t\t\tkeepers.push({ uri: entry.uri, type: type, hasLogs: false, hasPats: false, hasReadme: false, moveUp: false, moveDown: false });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst hasAllLogs = dirfuncs.hasLogDirs(visualText.getWorkspaceFolder(), true);\r\n\t\tvscode.commands.executeCommand('setContext', 'analyzers.hasLogs', hasAllLogs);\r\n\t\treturn keepers;\r\n\t}\r\n\r\n\ttypeFromExtension(dir: vscode.Uri): analyzerItemType {\r\n\t\tlet type = analyzerItemType.FILE;\r\n\t\tconst dirPath = dir.fsPath;\r\n\t\tif (dirPath.endsWith('.nlp'))\r\n\t\t\ttype = analyzerItemType.NLP;\r\n\t\telse if (dirPath.endsWith('.seq'))\r\n\t\t\ttype = analyzerItemType.SEQUENCE;\r\n\t\telse if (dirPath.endsWith('.ecl'))\r\n\t\t\ttype = analyzerItemType.ECL;\r\n\t\telse if (dirPath.endsWith('.manifest'))\r\n\t\t\ttype = analyzerItemType.MANIFEST\r\n\t\telse if (dirPath.endsWith('.md'))\r\n\t\t\ttype = analyzerItemType.README\r\n\t\treturn type;\r\n\t}\r\n\r\n\tfileIconFromType(type: analyzerItemType): string {\r\n\r\n\t\tlet icon = 'file.svg';\r\n\t\tif (type == analyzerItemType.ANALYZER) {\r\n\t\t\ticon = 'gear.svg';\r\n\t\t} else if (type == analyzerItemType.FOLDER) {\r\n\t\t\ticon = 'folder.svg';\r\n\t\t} else if (type == analyzerItemType.NLP) {\r\n\t\t\ticon = 'nlp.svg';\r\n\t\t} else if (type == analyzerItemType.SEQUENCE) {\r\n\t\t\ticon = 'seq-circle.svg';\r\n\t\t} else if (type == analyzerItemType.ECL) {\r\n\t\t\ticon = 'ecl.svg';\r\n\t\t} else if (type == analyzerItemType.MANIFEST) {\r\n\t\t\ticon = 'manifest.svg';\r\n\t\t} else if (type == analyzerItemType.README) {\r\n\t\t\ticon = 'readme.svg';\r\n\t\t}\r\n\t\treturn icon;\r\n\t}\r\n}\r\n\r\nexport let analyzerView: AnalyzerView;\r\nexport class AnalyzerView {\r\n\r\n\tpublic analyzerView: vscode.TreeView;\r\n\tpublic folderUri: vscode.Uri | undefined;\r\n\tpublic chosen: vscode.Uri | undefined;\r\n\tpublic converting: boolean;\r\n\tprivate sequenceFile = new SequenceFile;\r\n\r\n\tconstructor(context: vscode.ExtensionContext) {\r\n\t\tconst analyzerViewProvider = new AnalyzerTreeDataProvider();\r\n\t\tthis.analyzerView = vscode.window.createTreeView('analyzerView', { treeDataProvider: analyzerViewProvider });\r\n\t\tvscode.commands.registerCommand('analyzerView.refreshAll', () => analyzerViewProvider.refresh());\r\n\t\tvscode.commands.registerCommand('analyzerView.newAnalyzer', (resource) => this.newAnalyzer(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.deleteAnalyzer', resource => this.deleteAnalyzer(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.deleteFile', resource => this.deleteFile(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.deleteFolder', resource => this.deleteFolder(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.loadExampleAnalyzers', resource => this.loadExampleAnalyzers());\r\n\t\tvscode.commands.registerCommand('analyzerView.openAnalyzer', resource => this.openAnalyzer(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.deleteAnalyzerLogs', resource => this.deleteAnalyzerLogs(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.deleteAllAnalyzerLogs', () => this.deleteAllAnalyzerLogs());\r\n\t\tvscode.commands.registerCommand('analyzerView.updateTitle', resource => this.updateTitle(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.copyAnalyzer', resource => this.copyAnalyzer(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.dupeAnalyzer', resource => this.dupeAnalyzer(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.explore', resource => this.explore(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.newFolder', resource => this.newFolder(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.moveToFolder', resource => this.moveToFolder(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.moveUp', resource => this.moveUp(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.readMe', resource => this.readMe(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.createReadMe', resource => this.editReadMe(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.editReadMe', resource => this.editReadMe(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.deleteReadMe', resource => this.deleteReadMe(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.moveDownFolder', resource => this.moveDownFolder(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.moveToParent', resource => this.moveToParent(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.renameAnalyzer', resource => this.renameAnalyzer(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.renameFile', resource => this.renameFile(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.renameFolder', resource => this.renameFolder(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.openFile', resource => this.openFile(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.importAnalyzers', resource => this.importAnalyzers(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.manifestGenerate', resource => this.manifestGenerate(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.newECLFile', resource => this.newECLFile(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.exploreAll', () => this.exploreAll());\r\n\t\tvscode.commands.registerCommand('analyzerView.copyAll', () => this.copyAll());\r\n\t\tvscode.commands.registerCommand('analyzerView.updateColorizer', () => this.updateColorizer());\r\n\t\tvscode.commands.registerCommand('analyzerView.video', () => this.video());\r\n\t\tvscode.commands.registerCommand('analyzerView.copyPath', () => this.copyPath());\r\n\t\tvscode.commands.registerCommand('analyzerView.compileAnalyzer', resource => this.compileAnalyzer(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.compileAnalyzerOnly', resource => this.compileAnalyzerOnly(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.deployCompiledAnalyzer', resource => this.deployCompiledAnalyzer(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.runRegressionTest', resource => this.runRegressionTest(resource));\r\n\t\tvscode.commands.registerCommand('analyzerView.blessRegression', resource => this.blessRegression(resource));\r\n\r\n\t\tvisualText.colorizeAnalyzer();\r\n\t\tthis.folderUri = undefined;\r\n\t\tthis.converting = false;\r\n\t}\r\n\r\n\tstatic attach(ctx: vscode.ExtensionContext) {\r\n\t\tif (!analyzerView) {\r\n\t\t\tanalyzerView = new AnalyzerView(ctx);\r\n\t\t}\r\n\t\treturn analyzerView;\r\n\t}\r\n\r\n\tcopyPath() {\r\n\t\tconst dir = visualText.getAnalyzerDir();\r\n\t\tvscode.env.clipboard.writeText(dir.fsPath);\r\n\t}\r\n\r\n\tcheckForECLAnalyzersDir(): vscode.QuickPickItem[] {\r\n\t\tconst items: vscode.QuickPickItem[] = visualText.analyzerList('analyzers');\r\n\t\tif (items.length == 0) {\r\n\t\t\tvscode.window.showWarningMessage('You must have an \\'analyzers\\' folder containing your NLP analyzers when using the ECL Plugin in order to create an ECL Manifest file.');\r\n\t\t\treturn [];\r\n\t\t}\r\n\t\treturn items;\r\n\t}\r\n\r\n\tnewECLFile(analyzerItem: AnalyzerItem) {\r\n\t\tif (visualText.hasWorkspaceFolder() && this.checkForECLAnalyzersDir().length > 0) {\r\n\t\t\tvscode.window.showInputBox({ value: 'filename', prompt: 'Enter ECL file name' }).then(newname => {\r\n\t\t\t\tif (newname) {\r\n\t\t\t\t\tconst dirPath = visualText.getWorkspaceFolder().fsPath;\r\n\t\t\t\t\t// if (analyzerItem) {\r\n\t\t\t\t\t// \tif (dirfuncs.isDir(analyzerItem.uri.fsPath))\r\n\t\t\t\t\t// \t\tdirPath = analyzerItem.uri.fsPath;\r\n\t\t\t\t\t// \telse\r\n\t\t\t\t\t// \t\tdirPath = path.dirname(analyzerItem.uri.fsPath);\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tthis.createNewECLFile(dirPath, newname);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcreateNewECLFile(dirPath: string, fileName: string): boolean {\r\n\t\tconst items: vscode.QuickPickItem[] = [];\r\n\t\tconst fromDir = path.join(visualText.getVisualTextDirectory('ecl'));\r\n\r\n\t\tif (dirfuncs.isDir(fromDir)) {\r\n\t\t\tconst files = dirfuncs.getFiles(vscode.Uri.file(fromDir));\r\n\t\t\tconst textFile = new TextFile();\r\n\t\t\tfor (const file of files) {\r\n\t\t\t\tlet firstLine = textFile.readFirstLine(file.fsPath).trim();\r\n\t\t\t\tfirstLine = firstLine.replace(\"// \", \"\");\r\n\t\t\t\titems.push({ label: path.basename(file.fsPath), description: ' ' + firstLine });\r\n\t\t\t}\r\n\t\t\tvscode.window.showQuickPick(items, { title: 'Creating New ECL File', canPickMany: false, placeHolder: 'Choose ecl block' }).then(selection => {\r\n\t\t\t\tif (!selection) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tconst name = path.join(fromDir, selection.label);\r\n\t\t\t\ttextFile.setFile(vscode.Uri.file(name));\r\n\t\t\t\tthis.saveECLFile(dirPath, fileName, textFile.getText());\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.saveECLFile(dirPath, fileName, \"a := 'Hello world!';\\noutput(a);\");\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tsaveECLFile(dirPath: string, fileName: string, text: string) {\r\n\t\tlet filePath = path.join(dirPath, fileName + '.ecl');\r\n\t\tif (path.extname(fileName))\r\n\t\t\tfilePath = path.join(dirPath, fileName);\r\n\t\tdirfuncs.writeFile(filePath, text);\r\n\t\tvscode.commands.executeCommand('analyzerView.refreshAll');\r\n\t\tvscode.window.showTextDocument(vscode.Uri.file(filePath));\r\n\t}\r\n\r\n\tmanifestGenerate(analyzerItem: AnalyzerItem) {\r\n\t\tconst items: vscode.QuickPickItem[] = this.checkForECLAnalyzersDir();\r\n\t\tif (items.length == 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst title = 'Generate HPCC Manifest File';\r\n\t\tconst placeHolder = 'Choose Analyzers to Manifest';\r\n\r\n\t\tvscode.window.showQuickPick(items, { title, canPickMany: true, placeHolder: placeHolder }).then(selections => {\r\n\t\t\tif (!selections)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tconst files: string[] = [];\r\n\t\t\tconst start = visualText.getAnalyzerDir().fsPath.length;\r\n\r\n\t\t\tfor (const selection of selections) {\r\n\t\t\t\tconst analyzerPath = selection.description;\r\n\t\t\t\tif (analyzerPath) {\r\n\t\t\t\t\tconst analyzerFiles = this.getAnalyzerManifestFiles(analyzerPath);\r\n\t\t\t\t\tfor (const file of analyzerFiles) {\r\n\t\t\t\t\t\tfiles.push(this.cleanPath(file, start));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// KB FILES\r\n\t\t\t\t\tconst kbPath = visualText.analyzer.constructDir(vscode.Uri.file(analyzerPath), anaSubDir.KB);\r\n\t\t\t\t\tconst kbFiles = dirfuncs.getFiles(kbPath, ['.dict', '.kbb', '.kb']);\r\n\t\t\t\t\tfor (const file of kbFiles) {\r\n\t\t\t\t\t\tfiles.push(this.cleanPath(file.fsPath, start));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// ENGINE DATA FILES\r\n\t\t\t\t\t// let datas = this.copyDataFolder();\r\n\t\t\t\t\t// for (let file of datas) {\r\n\t\t\t\t\t// \tfiles.push(this.cleanPath(file,start));\r\n\t\t\t\t\t// }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Write files to manifest\r\n\t\t\tconst filepath = path.parse(analyzerItem.uri.fsPath);\r\n\t\t\tconst manifestFile = this.getManifestFilePath(filepath.name);\r\n\t\t\tconst mannie = fs.createWriteStream(manifestFile, { flags: 'w' });\r\n\t\t\tmannie.write('\\n');\r\n\t\t\tfor (const file of files) {\r\n\t\t\t\tmannie.write(' \\n');\r\n\t\t\t}\r\n\t\t\tmannie.write('');\r\n\t\t\tmannie.close();\r\n\r\n\t\t\tvscode.commands.executeCommand('analyzerView.refreshAll');\r\n\t\t\tvscode.window.showTextDocument(vscode.Uri.file(manifestFile));\r\n\t\t});\r\n\t}\r\n\r\n\tcleanPath(file: string, start: number): string {\r\n\t\tlet relative = file.substring(start);\r\n\t\trelative = relative.replace(new RegExp('\\\\\\\\', 'g'), '/');\r\n\t\trelative = relative.substring(1);\r\n\t\treturn relative;\r\n\t}\r\n\r\n\tgetManifestFilePath(elcFileName: string): string {\r\n\t\treturn path.join(visualText.getAnalyzerDir().fsPath, elcFileName + '.manifest');\r\n\t}\r\n\r\n\tgetAnalyzerManifestFiles(dir: string): string[] {\r\n\t\tconst files: string[] = [];\r\n\t\tconst specDir = path.join(dir, visualText.ANALYZER_SEQUENCE_FOLDER);\r\n\t\tthis.sequenceFile.setSpecDir(specDir);\r\n\t\tthis.sequenceFile.getPassFiles(specDir);\r\n\t\tfiles.push(path.join(specDir, visualText.ANALYZER_SEQUENCE_FILE));\r\n\t\tfor (const item of this.sequenceFile.getPassItems()) {\r\n\t\t\tconst p = item.uri.fsPath;\r\n\t\t\tif (p.length > 2 && fs.existsSync(p))\r\n\t\t\t\tfiles.push(item.uri.fsPath);\r\n\t\t}\r\n\t\treturn files;\r\n\t}\r\n\r\n\t// No longer needed but leaving around JUST IN CASE\r\n\tcopyDataFolder(): string[] {\r\n\t\tconst files: string[] = [];\r\n\t\tconst dataFolder = path.join(visualText.getAnalyzerDir().fsPath, 'data', 'rfb', visualText.ANALYZER_SEQUENCE_FOLDER);\r\n\t\tif (!fs.existsSync(dataFolder)) {\r\n\t\t\tconst engineData = path.join(visualText.engineDirectory().fsPath, 'data', 'rfb', visualText.ANALYZER_SEQUENCE_FOLDER);\r\n\t\t\tvisualText.fileOps.addFileOperation(vscode.Uri.file(engineData), vscode.Uri.file(dataFolder), [fileOpRefresh.ANALYZERS], fileOperation.COPY);\r\n\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t}\r\n\t\tconst uris = dirfuncs.getFiles(vscode.Uri.file(dataFolder));\r\n\r\n\t\tfor (const uri of uris) {\r\n\t\t\tfiles.push(uri.fsPath);\r\n\t\t}\r\n\t\treturn files;\r\n\t}\r\n\r\n\topenFile(analyzerItem: AnalyzerItem): void {\r\n\t\tif (analyzerItem.type == analyzerItemType.README)\r\n\t\t\tvscode.commands.executeCommand(\"markdown.showPreview\", analyzerItem.uri);\r\n\t\telse\r\n\t\t\tvscode.window.showTextDocument(analyzerItem.uri);\r\n\t}\r\n\r\n\tvideo() {\r\n\t\tconst url = 'http://vscodeanaviewer.visualtext.org';\r\n\t\tvscode.commands.executeCommand('vscode.open', vscode.Uri.parse(url));\r\n\t}\r\n\r\n\trenameAnalyzer(analyzerItem: AnalyzerItem): void {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tvscode.window.showInputBox({ value: path.basename(analyzerItem.uri.fsPath), prompt: 'Enter new Analyzer name' }).then(newname => {\r\n\t\t\t\tif (newname) {\r\n\t\t\t\t\tconst original = analyzerItem.uri;\r\n\t\t\t\t\tif (path.extname(newname).length == 0)\r\n\t\t\t\t\t\tnewname = newname + path.extname(analyzerItem.uri.fsPath);\r\n\t\t\t\t\tconst newfile = vscode.Uri.file(path.join(path.dirname(analyzerItem.uri.fsPath), newname));\r\n\t\t\t\t\tvisualText.fileOps.addFileOperation(analyzerItem.uri, newfile, [fileOpRefresh.ANALYZERS], fileOperation.RENAME);\r\n\t\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\trenameFile(analyzerItem: AnalyzerItem): void {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tvscode.window.showInputBox({ value: path.basename(analyzerItem.uri.fsPath), prompt: 'Enter new file name' }).then(newname => {\r\n\t\t\t\tif (newname) {\r\n\t\t\t\t\tconst original = analyzerItem.uri;\r\n\t\t\t\t\tif (path.extname(newname).length == 0)\r\n\t\t\t\t\t\tnewname = newname + path.extname(analyzerItem.uri.fsPath);\r\n\t\t\t\t\tconst newfile = vscode.Uri.file(path.join(path.dirname(analyzerItem.uri.fsPath), newname));\r\n\t\t\t\t\tvisualText.fileOps.addFileOperation(analyzerItem.uri, newfile, [fileOpRefresh.ANALYZERS], fileOperation.RENAME);\r\n\t\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\trenameFolder(analyzerItem: AnalyzerItem): void {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tvscode.window.showInputBox({ value: path.basename(analyzerItem.uri.fsPath), prompt: 'Enter new folder name' }).then(newname => {\r\n\t\t\t\tif (newname) {\r\n\t\t\t\t\tconst original = analyzerItem.uri;\r\n\t\t\t\t\tconst newfile = vscode.Uri.file(path.join(path.dirname(analyzerItem.uri.fsPath), newname));\r\n\t\t\t\t\tvisualText.fileOps.addFileOperation(analyzerItem.uri, newfile, [fileOpRefresh.ANALYZERS], fileOperation.RENAME);\r\n\t\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tmoveDownFolder(analyzerItem: AnalyzerItem) {\r\n\t\tthis.openFolder(analyzerItem.uri);\r\n\t}\r\n\r\n\tmoveToParent(analyzerItem: AnalyzerItem) {\r\n\t\tconst parent = vscode.Uri.file(path.dirname(path.dirname(analyzerItem.uri.fsPath)));\r\n\t\tthis.openFolder(parent);\r\n\t}\r\n\r\n\topenFolder(dir: vscode.Uri) {\r\n\t\tvscode.commands.executeCommand(\"vscode.openFolder\", dir);\r\n\t\tvscode.commands.executeCommand('workbench.action.openPanel');\r\n\t}\r\n\r\n\tupdateColorizer() {\r\n\t\tvisualText.colorizeAnalyzer(true);\r\n\t}\r\n\r\n\timportAnalyzers(analyzerItem: AnalyzerItem) {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tconst seqFile = visualText.analyzer.seqFile;\r\n\t\t\tconst options: vscode.OpenDialogOptions = {\r\n\t\t\t\tcanSelectFiles: false,\r\n\t\t\t\tcanSelectFolders: true,\r\n\t\t\t\tcanSelectMany: true,\r\n\t\t\t\topenLabel: 'Import Analyzer(s)',\r\n\t\t\t\tdefaultUri: seqFile.getSpecDirectory()\r\n\t\t\t};\r\n\t\t\tvscode.window.showOpenDialog(options).then(selections => {\r\n\t\t\t\tif (!selections) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tlet analyzerDirExists = false;\r\n\t\t\t\tlet analyzerPath = '';\r\n\t\t\t\tif (analyzerItem === undefined) {\r\n\t\t\t\t\tanalyzerPath = visualText.analyzer.getAnalyzerDirectory().fsPath;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tanalyzerPath = analyzerItem.uri.fsPath;\r\n\t\t\t\t\tif (visualText.isAnalyzerDirectory(analyzerItem.uri))\r\n\t\t\t\t\t\tanalyzerPath = path.dirname(analyzerPath);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (const select of selections) {\r\n\t\t\t\t\tif (visualText.isAnalyzerDirectory(select)) {\r\n\t\t\t\t\t\tconst dirname = path.basename(select.fsPath);\r\n\t\t\t\t\t\tvisualText.fileOps.addFileOperation(select, vscode.Uri.file(path.join(analyzerPath, dirname)), [fileOpRefresh.ANALYZERS], fileOperation.COPY);\r\n\t\t\t\t\t\tanalyzerDirExists = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (analyzerDirExists)\r\n\t\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t\telse\r\n\t\t\t\t\tvscode.window.showWarningMessage('No analyzers were selected');\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tnewFolder(analyzerItem: AnalyzerItem) {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tvscode.window.showInputBox({ value: 'dirname', prompt: 'Enter folder name' }).then(newdir => {\r\n\t\t\t\tif (newdir) {\r\n\t\t\t\t\tlet dirPath = '';\r\n\t\t\t\t\tif (!analyzerItem) {\r\n\t\t\t\t\t\tdirPath = visualText.getAnalyzerDir().fsPath;\r\n\t\t\t\t\t} else if (analyzerItem.type == analyzerItemType.FOLDER) {\r\n\t\t\t\t\t\tdirPath = analyzerItem.uri.fsPath;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdirPath = path.dirname(analyzerItem.uri.fsPath);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdirfuncs.makeDir(path.join(dirPath, newdir));\r\n\t\t\t\t\tvscode.commands.executeCommand('analyzerView.refreshAll');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tmoveToFolder(analyzerItem: AnalyzerItem) {\r\n\t\tif (this.folderUri) {\r\n\t\t\tconst to = path.join(this.folderUri.fsPath, path.basename(analyzerItem.uri.fsPath));\r\n\t\t\tdirfuncs.rename(analyzerItem.uri.fsPath, to);\r\n\t\t\tvscode.commands.executeCommand('analyzerView.refreshAll');\r\n\t\t} else {\r\n\t\t\tvscode.window.showInformationMessage('No folder selected');\r\n\t\t}\r\n\t}\r\n\r\n\tdeleteReadMe(analyzerItem: AnalyzerItem) {\r\n\t\tconst readMe = vscode.Uri.file(path.join(analyzerItem.uri.fsPath, \"README.md\"));\r\n\t\tif (fs.existsSync(readMe.fsPath)) {\r\n\t\t\tconst items: vscode.QuickPickItem[] = [];\r\n\t\t\titems.push({ label: 'Yes', description: 'Delete README.md?' });\r\n\t\t\titems.push({ label: 'No', description: 'Do not delete README.md' });\r\n\r\n\t\t\tvscode.window.showQuickPick(items, { title: 'README.md File', canPickMany: false, placeHolder: 'Choose Yes or No' }).then(selection => {\r\n\t\t\t\tif (!selection || selection.label == 'No')\r\n\t\t\t\t\treturn;\r\n\t\t\t\tdirfuncs.delFile(readMe.fsPath);\r\n\t\t\t\tvscode.commands.executeCommand('analyzerView.refreshAll');\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvscode.window.showWarningMessage('README.md does not exist');\r\n\t\t}\r\n\t}\r\n\r\n\teditReadMe(analyzerItem: AnalyzerItem) {\r\n\t\tlet dirPath = analyzerItem.uri.fsPath;\r\n\t\tif (!dirfuncs.isDir(dirPath)) {\r\n\t\t\tdirPath = path.dirname(analyzerItem.uri.fsPath);\r\n\t\t}\r\n\t\tconst readMe = path.join(dirPath, \"README.md\");\r\n\t\tif (!fs.existsSync(readMe)) {\r\n\t\t\tconst content = \"# TITLE\\n\\nDescription here.\";\r\n\t\t\tdirfuncs.writeFile(readMe, content);\r\n\t\t}\r\n\t\tvscode.window.showTextDocument(vscode.Uri.file(readMe));\r\n\t\tvscode.commands.executeCommand('analyzerView.refreshAll');\r\n\t}\r\n\r\n\treadMe(analyzerItem: AnalyzerItem) {\r\n\t\tconst readMe = vscode.Uri.file(path.join(analyzerItem.uri.fsPath, \"README.md\"));\r\n\t\tif (fs.existsSync(readMe.fsPath)) {\r\n\t\t\tvscode.commands.executeCommand(\"markdown.showPreview\", readMe);\r\n\t\t}\r\n\t}\r\n\r\n\tmoveUp(analyzerItem: AnalyzerItem) {\r\n\t\tlet parent = path.dirname(analyzerItem.uri.fsPath);\r\n\t\tconst analyzersFolder = visualText.getAnalyzerDir();\r\n\t\tif (parent != analyzersFolder.fsPath) {\r\n\t\t\tparent = path.dirname(parent);\r\n\t\t\tconst to = path.join(parent, path.basename(analyzerItem.uri.fsPath));\r\n\t\t\tdirfuncs.rename(analyzerItem.uri.fsPath, to);\r\n\t\t\tvscode.commands.executeCommand('analyzerView.refreshAll');\r\n\t\t} else {\r\n\t\t\tvscode.window.showInformationMessage('Already at the top');\r\n\t\t}\r\n\t}\r\n\r\n\texplore(analyzerItem: AnalyzerItem) {\r\n\t\tif (fs.existsSync(analyzerItem.uri.fsPath)) {\r\n\t\t\tvisualText.openFileManager(analyzerItem.uri.fsPath);\r\n\t\t}\r\n\t}\r\n\r\n\texploreAll() {\r\n\t\tconst dir = visualText.getAnalyzerDir();\r\n\t\tif (fs.existsSync(dir.fsPath)) {\r\n\t\t\tvisualText.openFileManager(dir.fsPath);\r\n\t\t}\r\n\t}\r\n\r\n\tcopyAll() {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tconst options: vscode.OpenDialogOptions = {\r\n\t\t\t\tcanSelectMany: false,\r\n\t\t\t\topenLabel: 'Analyzers to here',\r\n\t\t\t\tdefaultUri: visualText.getWorkspaceFolder(),\r\n\t\t\t\tcanSelectFiles: false,\r\n\t\t\t\tcanSelectFolders: true\r\n\t\t\t};\r\n\t\t\tvscode.window.showOpenDialog(options).then(selection => {\r\n\t\t\t\tif (!selection) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst analyzers = visualText.getAnalyzers(false);\r\n\t\t\t\tconst toFolder = vscode.Uri.file(selection[0].fsPath);\r\n\t\t\t\tfor (const analyzer of analyzers) {\r\n\t\t\t\t\tconst folder = path.basename(analyzer.fsPath);\r\n\t\t\t\t\tvisualText.fileOps.addFileOperation(analyzer, vscode.Uri.file(path.join(toFolder.fsPath, folder)), [fileOpRefresh.UNKNOWN], fileOperation.COPY);\r\n\t\t\t\t}\r\n\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcopyAnalyzer(analyzerItem: AnalyzerItem) {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tconst options: vscode.OpenDialogOptions = {\r\n\t\t\t\tcanSelectMany: false,\r\n\t\t\t\topenLabel: 'Folder to copy to',\r\n\t\t\t\tdefaultUri: visualText.getWorkspaceFolder(),\r\n\t\t\t\tcanSelectFiles: false,\r\n\t\t\t\tcanSelectFolders: true\r\n\t\t\t};\r\n\t\t\tvscode.window.showOpenDialog(options).then(selection => {\r\n\t\t\t\tif (!selection) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst folder = path.basename(analyzerItem.uri.fsPath);\r\n\t\t\t\tvisualText.fileOps.addFileOperation(analyzerItem.uri, vscode.Uri.file(path.join(selection[0].fsPath, folder)), [fileOpRefresh.UNKNOWN], fileOperation.COPY);\r\n\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tdupeAnalyzer(analyzerItem: AnalyzerItem) {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tvscode.window.showInputBox({ value: path.basename(analyzerItem.uri.fsPath), prompt: 'Enter duplicate analyzer name' }).then(newname => {\r\n\t\t\t\tif (newname) {\r\n\t\t\t\t\tconst folder = path.dirname(analyzerItem.uri.fsPath);\r\n\t\t\t\t\tvisualText.fileOps.addFileOperation(analyzerItem.uri, vscode.Uri.file(path.join(folder, newname)), [fileOpRefresh.ANALYZERS], fileOperation.COPY);\r\n\t\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t\t\tvscode.commands.executeCommand('analyzerView.refreshAll');\r\n\t\t\t\t\tvscode.commands.executeCommand('sequenceView.refreshAll');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateTitle(uri: vscode.Uri): void {\r\n\t\tif (uri.fsPath.length > 0) {\r\n\t\t\tthis.chosen = uri;\r\n\t\t\tconst anaChosen = path.basename(uri.fsPath);\r\n\t\t\tif (anaChosen.length)\r\n\t\t\t\tthis.analyzerView.title = `ANALYZERS (${anaChosen})`;\r\n\t\t} else {\r\n\t\t\tthis.chosen = undefined;\r\n\t\t\tthis.analyzerView.title = 'ANALYZERS';\r\n\t\t}\r\n\t\tvscode.commands.executeCommand('sequenceView.updateTitle');\r\n\t}\r\n\r\n\tprivate openAnalyzer(analyzerItem: AnalyzerItem): void {\r\n\t\tvisualText.colorizeAnalyzer();\r\n\t\tif (analyzerItem.type == analyzerItemType.ANALYZER) {\r\n\t\t\tvisualText.loadAnalyzer(analyzerItem.uri);\r\n\t\t\tthis.folderUri = undefined;\r\n\t\t} else {\r\n\t\t\tthis.folderUri = analyzerItem.uri;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate deleteAnalyzer(analyzerItem: AnalyzerItem): void {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tconst items: vscode.QuickPickItem[] = [];\r\n\t\t\tlet deleteDescr = '';\r\n\t\t\tdeleteDescr = deleteDescr.concat('Delete \\'', path.basename(analyzerItem.uri.fsPath), '\\' Analyzer');\r\n\t\t\titems.push({ label: 'Yes', description: deleteDescr });\r\n\t\t\titems.push({ label: 'No', description: 'Do not delete analyzer' });\r\n\r\n\t\t\tvscode.window.showQuickPick(items, { title: 'Delete Analyzer', canPickMany: false, placeHolder: 'Choose Yes or No' }).then(selection => {\r\n\t\t\t\tif (!selection || selection.label == 'No')\r\n\t\t\t\t\treturn;\r\n\t\t\t\tvisualText.fileOps.addFileOperation(analyzerItem.uri, analyzerItem.uri, [fileOpRefresh.TEXT, fileOpRefresh.KB, fileOpRefresh.ANALYZERS, fileOpRefresh.ANALYZER], fileOperation.DELETE);\r\n\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate deleteFile(analyzerItem: AnalyzerItem): void {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tconst items: vscode.QuickPickItem[] = [];\r\n\t\t\tlet deleteDescr = '';\r\n\t\t\tdeleteDescr = deleteDescr.concat('Delete file \\'', path.basename(analyzerItem.uri.fsPath));\r\n\t\t\titems.push({ label: 'Yes', description: deleteDescr });\r\n\t\t\titems.push({ label: 'No', description: 'Do not delete file' });\r\n\r\n\t\t\tvscode.window.showQuickPick(items, { title: 'Delete File', canPickMany: false, placeHolder: 'Choose Yes or No' }).then(selection => {\r\n\t\t\t\tif (!selection || selection.label == 'No')\r\n\t\t\t\t\treturn;\r\n\t\t\t\tvisualText.fileOps.addFileOperation(analyzerItem.uri, analyzerItem.uri, [fileOpRefresh.ANALYZERS], fileOperation.DELETE);\r\n\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate deleteFolder(analyzerItem: AnalyzerItem): void {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tconst itemCount = fs.readdirSync(analyzerItem.uri.fsPath).length;\r\n\t\t\tlet yesDescr = '';\r\n\t\t\tlet noDescr = '';\r\n\t\t\tlet placeDescr = 'Choose Yes of No';\r\n\t\t\tyesDescr = yesDescr.concat('Delete empty folder \\'', path.basename(analyzerItem.uri.fsPath), '\\'');\r\n\t\t\tnoDescr = 'Do not delete empty folder';\r\n\t\t\tif (fs.readdirSync(analyzerItem.uri.fsPath).length != 0) {\r\n\t\t\t\tyesDescr = `FOLDER NOT EMPTY: Delete folder and its ${itemCount} items?`;\r\n\t\t\t\tnoDescr = 'Do not delete folder and all its contents';\r\n\t\t\t\tplaceDescr = 'FOLDER NOT EMPTY: choose yes or no';\r\n\t\t\t}\r\n\t\t\tconst items: vscode.QuickPickItem[] = [];\r\n\t\t\titems.push({ label: 'Yes', description: yesDescr });\r\n\t\t\titems.push({ label: 'No', description: noDescr });\r\n\r\n\t\t\tvscode.window.showQuickPick(items, { title: 'Delete Folder', canPickMany: false, placeHolder: placeDescr }).then(selection => {\r\n\t\t\t\tif (!selection || selection.label == 'No')\r\n\t\t\t\t\treturn;\r\n\t\t\t\tvisualText.fileOps.addFileOperation(analyzerItem.uri, analyzerItem.uri, [fileOpRefresh.ANALYZERS], fileOperation.DELETE);\r\n\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate loadExampleAnalyzers() {\r\n\t\tthis.openFolder(visualText.getBlockAnalyzersPath());\r\n\t}\r\n\r\n\tprivate newAnalyzer(analyzerItem: AnalyzerItem) {\r\n\t\tlet uri: vscode.Uri;\r\n\t\tif (analyzerItem == undefined) {\r\n\t\t\turi = visualText.getAnalyzerDir();\r\n\t\t} else {\r\n\t\t\turi = analyzerItem.uri;\r\n\t\t\tif (analyzerItem.type == analyzerItemType.ANALYZER)\r\n\t\t\t\turi = vscode.Uri.file(path.dirname(uri.fsPath));\r\n\t\t}\r\n\t\tvisualText.analyzer.newAnalyzer(uri);\r\n\t}\r\n\r\n\tasync compileAnalyzer(analyzerItem: AnalyzerItem) {\r\n\t\tlet analyzerDir: vscode.Uri;\r\n\t\tif (analyzerItem && analyzerItem.uri) {\r\n\t\t\tanalyzerDir = dirfuncs.isDir(analyzerItem.uri.fsPath) ? analyzerItem.uri : vscode.Uri.file(path.dirname(analyzerItem.uri.fsPath));\r\n\t\t} else if (visualText.analyzer.isLoaded()) {\r\n\t\t\tanalyzerDir = visualText.analyzer.getAnalyzerDirectory();\r\n\t\t} else {\r\n\t\t\tvscode.window.showWarningMessage('No analyzer loaded. Open an analyzer first.');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst compile = NLPCompile.attach();\r\n\t\tawait compile.compileAnalyzer(analyzerDir);\r\n\t}\r\n\r\n\tasync compileAnalyzerOnly(analyzerItem: AnalyzerItem) {\r\n\t\tlet analyzerDir: vscode.Uri;\r\n\t\tif (analyzerItem && analyzerItem.uri) {\r\n\t\t\tanalyzerDir = dirfuncs.isDir(analyzerItem.uri.fsPath) ? analyzerItem.uri : vscode.Uri.file(path.dirname(analyzerItem.uri.fsPath));\r\n\t\t} else if (visualText.analyzer.isLoaded()) {\r\n\t\t\tanalyzerDir = visualText.analyzer.getAnalyzerDirectory();\r\n\t\t} else {\r\n\t\t\tvscode.window.showWarningMessage('No analyzer loaded. Open an analyzer first.');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst compile = NLPCompile.attach();\r\n\t\tawait compile.compileAnalyzerOnly(analyzerDir);\r\n\t}\r\n\r\n\tasync deployCompiledAnalyzer(analyzerItem: AnalyzerItem) {\r\n\t\tlet analyzerDir: vscode.Uri;\r\n\t\tif (analyzerItem && analyzerItem.uri) {\r\n\t\t\tanalyzerDir = dirfuncs.isDir(analyzerItem.uri.fsPath) ? analyzerItem.uri : vscode.Uri.file(path.dirname(analyzerItem.uri.fsPath));\r\n\t\t} else if (visualText.analyzer.isLoaded()) {\r\n\t\t\tanalyzerDir = visualText.analyzer.getAnalyzerDirectory();\r\n\t\t} else {\r\n\t\t\tvscode.window.showWarningMessage('No analyzer loaded. Open an analyzer first.');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst compile = NLPCompile.attach();\r\n\t\tawait compile.deployCompiledAnalyzer(analyzerDir);\r\n\t}\r\n\r\n\t// Run the cross-platform golden-file regression tester (nlp_regress.py, shipped\r\n\t// in visualText/python) over every file in the analyzer's input/ directory.\r\n\t// The semantic JSON compare is stable across cosmetic engine drift, unlike the\r\n\t// per-file line-by-line \"Run Regression Test\" on text/output files.\r\n\tprivate runRegress(analyzerItem: AnalyzerItem, command: 'test' | 'bless') {\r\n\t\tconst analyzerDir = this.resolveRegressAnalyzerDir(analyzerItem);\r\n\t\tif (!analyzerDir) {\r\n\t\t\tvscode.window.showWarningMessage('No analyzer loaded. Open an analyzer first.');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Default to the native (TypeScript) runner: results stream into the NLP++\r\n\t\t// log view and there is no python dependency. Set\r\n\t\t// \"analyzer.regressionTerminal\": true to fall back to shelling out to\r\n\t\t// nlp_regress.py in a terminal (useful for A/B-ing the two).\r\n\t\tconst useTerminal = vscode.workspace.getConfiguration('analyzer').get('regressionTerminal', false);\r\n\t\tif (useTerminal) {\r\n\t\t\tthis.runRegressTerminal(analyzerDir, command);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (command === 'bless')\r\n\t\t\tregressionRunner.bless(analyzerDir);\r\n\t\telse\r\n\t\t\tregressionRunner.test(analyzerDir);\r\n\t}\r\n\r\n\tprivate runRegressTerminal(analyzerDir: vscode.Uri, command: 'test' | 'bless') {\r\n\t\tconst script = path.join(visualText.getVisualTextDirectory('python'), 'nlp_regress.py');\r\n\t\tif (!fs.existsSync(script)) {\r\n\t\t\tvscode.window.showErrorMessage('Regression script not found: ' + script);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst engineDir = visualText.engineDirectory().fsPath;\r\n\t\tconst py = os.platform() === 'win32' ? 'python' : 'python3';\r\n\t\tconst cmd = `${py} \"${script}\" ${command} \"${analyzerDir.fsPath}\" --cli --engine \"${engineDir}\"`;\r\n\r\n\t\tconst termName = 'NLP++ Regression';\r\n\t\tlet term = vscode.window.terminals.find(t => t.name === termName);\r\n\t\tif (!term) {\r\n\t\t\tterm = vscode.window.createTerminal(termName);\r\n\t\t}\r\n\t\tterm.show(true);\r\n\t\tterm.sendText(cmd);\r\n\t}\r\n\r\n\trunRegressionTest(analyzerItem: AnalyzerItem) {\r\n\t\tthis.runRegress(analyzerItem, 'test');\r\n\t}\r\n\r\n\tblessRegression(analyzerItem: AnalyzerItem) {\r\n\t\tconst analyzerDir = this.resolveRegressAnalyzerDir(analyzerItem);\r\n\t\tif (!analyzerDir) {\r\n\t\t\tvscode.window.showWarningMessage('No analyzer loaded. Open an analyzer first.');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// Only warn about overwriting when goldens already exist. On the first\r\n\t\t// bless there is nothing to overwrite, so just create them.\r\n\t\tif (!regressionRunner.goldensExist(analyzerDir)) {\r\n\t\t\tthis.runRegress(analyzerItem, 'bless');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvscode.window.showWarningMessage(\r\n\t\t\t'Bless will OVERWRITE the existing regression goldens (test/expected/) with the analyzer\\'s CURRENT output. Only do this after confirming the current output is correct. Continue?',\r\n\t\t\t{ modal: true }, 'Bless'\r\n\t\t).then(choice => {\r\n\t\t\tif (choice === 'Bless') {\r\n\t\t\t\tthis.runRegress(analyzerItem, 'bless');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t// Resolve the analyzer directory for a regression command: the clicked tree\r\n\t// item, else the loaded analyzer, else undefined.\r\n\tprivate resolveRegressAnalyzerDir(analyzerItem: AnalyzerItem): vscode.Uri | undefined {\r\n\t\tif (analyzerItem && analyzerItem.uri) {\r\n\t\t\treturn dirfuncs.isDir(analyzerItem.uri.fsPath) ? analyzerItem.uri : vscode.Uri.file(path.dirname(analyzerItem.uri.fsPath));\r\n\t\t}\r\n\t\tif (visualText.analyzer.isLoaded()) {\r\n\t\t\treturn visualText.analyzer.getAnalyzerDirectory();\r\n\t\t}\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tpublic deleteAllAnalyzerLogs() {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\r\n\t\t\tconst items: vscode.QuickPickItem[] = [];\r\n\t\t\tlet deleteDescr = '';\r\n\t\t\tdeleteDescr = deleteDescr.concat('Delete log directories for all analyzers?');\r\n\t\t\titems.push({ label: 'Yes', description: deleteDescr });\r\n\t\t\titems.push({ label: 'No', description: 'Do not delete analyzers log files' });\r\n\r\n\t\t\tvscode.window.showQuickPick(items, { title: 'Delete ALL Analyzer Logs', canPickMany: false, placeHolder: 'Choose Yes or No' }).then(selection => {\r\n\t\t\t\tif (!selection || selection.label == 'No')\r\n\t\t\t\t\treturn;\r\n\t\t\t\tthis.deleteAllAnalyzerLogDirs();\r\n\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic deleteAnalyzerLogs(analyzerItem: AnalyzerItem) {\r\n\t\tif (visualText.hasWorkspaceFolder()) {\r\n\t\t\tconst items: vscode.QuickPickItem[] = [];\r\n\t\t\tlet deleteDescr = '';\r\n\t\t\tconst analyzerName = path.basename(analyzerItem.uri.fsPath);\r\n\t\t\tdeleteDescr = deleteDescr.concat('Delete log directories for \\'', analyzerName, '\\'?');\r\n\t\t\titems.push({ label: 'Yes', description: deleteDescr });\r\n\t\t\titems.push({ label: 'No', description: 'Do not delete analyzer log files' });\r\n\r\n\t\t\tvscode.window.showQuickPick(items, { title: 'Delete Analyzer', canPickMany: false, placeHolder: 'Choose Yes or No' }).then(selection => {\r\n\t\t\t\tif (!selection || selection.label == 'No')\r\n\t\t\t\t\treturn;\r\n\r\n\t\t\t\ttextView.deleteFolderLogs(analyzerItem.uri);\r\n\t\t\t\tvisualText.fileOps.startFileOps();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic deleteLogDirs(dir: vscode.Uri) {\r\n\t\tconst outputDir = vscode.Uri.file(path.join(dir.fsPath, \"output\"));\r\n\t\tthis.deleteDirFiles(outputDir);\r\n\t\tconst logDir = vscode.Uri.file(path.join(dir.fsPath, \"logs\"));\r\n\t\tthis.deleteDirFiles(logDir);\r\n\t}\r\n\r\n\tpublic deleteDirFiles(dir: vscode.Uri) {\r\n\t\tconst files = dirfuncs.getFiles(dir);\r\n\t\tfor (const file of files) {\r\n\t\t\tvisualText.fileOps.addFileOperation(file, file, [fileOpRefresh.ANALYZERS], fileOperation.DELETE);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic deleteAllAnalyzerLogDirs() {\r\n\t\tif (vscode.workspace.workspaceFolders) {\r\n\t\t\tconst analyzerUris = visualText.getAnalyzers(true);\r\n\t\t\tfor (const analyzerUri of analyzerUris) {\r\n\t\t\t\tconst analyzerName = path.basename(analyzerUri.fsPath);\r\n\t\t\t\ttextView.deleteFolderLogs(analyzerUri);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import * as vscode from 'vscode';\r\nimport { TreeFile, generateType } from './treeFile';\r\nimport { NLPFile, reformatType } from './nlp';\r\nimport { TextFile } from './textFile';\r\n\r\nexport let nlpCommands: NLPCommands;\r\nexport class NLPCommands {\r\n _ctx: vscode.ExtensionContext;\r\n\r\n private constructor(ctx: vscode.ExtensionContext) {\r\n this._ctx = ctx;\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.analyze', this.analyze));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.analyzeDir', this.analyzeDir));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.reformatRule', this.reformatRule));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.reformatOneLine', this.reformatOneLine));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.reformatParens', this.reformatParens));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.searchWord', this.searchWord));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.goToFunction', this.goToFunction));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.ruleFired', this.ruleFired));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.openSelTree', this.openSelTree));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.generateRule', this.generateRule));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.generateExactRule', this.generateExactRule));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.copyContext', this.copyContext));\r\n\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.openPassFile', this.openPassFile));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.duplicateLine', this.duplicateLine));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.commentLines', this.commentLines));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.selectSequence', this.selectSequence));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.passTree', this.passTree));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.displayMatchedRules', this.displayMatchedRulesNLP));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.sortText', this.sortText));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.lowerCase', this.lowerCase));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.removeAccents', this.removeAccents));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.runPython', this.runPython));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('log.foldAll', this.foldAll));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('log.unfoldAll', this.unfoldAll));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('log.foldRecursively', this.foldRecursively));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('log.unfoldRecursively', this.unfoldRecursively));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('log.highlightText', this.highlightText));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('log.ruleFired', this.ruleFiredLog));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('log.generatePath', this.generatePath));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('log.openPassFile', this.openPassFile));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('log.displayMatchedRules', this.displayMatchedRulesNLP));\r\n ctx.subscriptions.push(vscode.commands.registerCommand('nlp.video', this.video));\r\n }\r\n\r\n static attach(ctx: vscode.ExtensionContext): NLPCommands {\r\n if (!nlpCommands) {\r\n nlpCommands = new NLPCommands(ctx);\r\n }\r\n return nlpCommands;\r\n }\r\n\r\n video() {\r\n const url = 'http://vscode2.visualtext.org';\r\n vscode.commands.executeCommand('vscode.open', vscode.Uri.parse(url));\r\n }\r\n\r\n sortText() {\r\n if (vscode.window.activeTextEditor) {\r\n const editor = vscode.window.activeTextEditor;\r\n if (editor) {\r\n const textFile = new TextFile(editor.document.uri.fsPath, true, editor.document.getText());\r\n const selFlag = editor.selection.isEmpty ? false : true;\r\n if (selFlag)\r\n textFile.getSelectedLines(editor);\r\n textFile.sortLines(selFlag);\r\n textFile.rollupLines(selFlag);\r\n textFile.linesToText(editor, selFlag);\r\n\r\n // For a selection, linesToText already inserted the sorted lines via a\r\n // snippet. Replacing the whole document here would overwrite that with the\r\n // original (unsorted) text, so only do the whole-document replace when\r\n // sorting the entire file (#791).\r\n if (!selFlag) {\r\n const firstLine = editor.document.lineAt(0);\r\n const lastLine = editor.document.lineAt(editor.document.lineCount - 1);\r\n const textRange = new vscode.Range(firstLine.range.start, lastLine.range.end);\r\n editor.edit(function (editBuilder) {\r\n editBuilder.replace(textRange, textFile.getText());\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n lowerCase() {\r\n if (vscode.window.activeTextEditor) {\r\n const editor = vscode.window.activeTextEditor;\r\n if (editor) {\r\n const range = new vscode.Range(editor.selection.start, editor.selection.end);\r\n const str = editor.document.getText(range);\r\n const snippet = new vscode.SnippetString(str.toLowerCase());\r\n editor.insertSnippet(snippet, range);\r\n }\r\n }\r\n }\r\n\r\n removeAccents() {\r\n if (vscode.window.activeTextEditor) {\r\n const editor = vscode.window.activeTextEditor;\r\n if (editor) {\r\n const text = editor.document.getText();\r\n const textNoAccents = text.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\r\n const range = new vscode.Range(editor.document.lineAt(0).range.start, editor.document.lineAt(editor.document.lineCount - 1).range.end);\r\n const snippet = new vscode.SnippetString(textNoAccents);\r\n editor.insertSnippet(snippet, range);\r\n }\r\n }\r\n }\r\n\r\n runPython() {\r\n if (vscode.window.activeTextEditor) {\r\n const editor = vscode.window.activeTextEditor;\r\n if (editor) {\r\n const textFile = new TextFile(editor.document.uri.fsPath)\r\n textFile.runPython(editor);\r\n }\r\n }\r\n }\r\n\r\n passTree() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.passTree(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n displayMatchedRulesNLP() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.openRuleMatchesText(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n selectSequence() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.selectSequence(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n commentLines() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.commentLines(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n duplicateLine() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.duplicateLine(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n searchWord() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.searchWord(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n goToFunction() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.searchWord(vscode.window.activeTextEditor, true);\r\n }\r\n }\r\n\r\n reformatRule() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.reformatRule(vscode.window.activeTextEditor, reformatType.NORMAL);\r\n }\r\n }\r\n\r\n reformatOneLine() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.reformatRule(vscode.window.activeTextEditor, reformatType.ONELINE);\r\n }\r\n }\r\n\r\n reformatParens() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.reformatRule(vscode.window.activeTextEditor, reformatType.PARENS);\r\n }\r\n }\r\n\r\n ruleFired() {\r\n if (vscode.window.activeTextEditor) {\r\n const treeFile = new TreeFile();\r\n treeFile.findRule(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n openSelTree() {\r\n if (vscode.window.activeTextEditor) {\r\n const treeFile = new TreeFile();\r\n treeFile.findSelectedTree(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n copyContext() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlpFile = new NLPFile();\r\n nlpFile.copyContext(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n generateRule() {\r\n if (vscode.window.activeTextEditor) {\r\n const treeFile = new TreeFile();\r\n treeFile.generateRule(vscode.window.activeTextEditor, generateType.GENERAL);\r\n }\r\n }\r\n\r\n generateExactRule() {\r\n if (vscode.window.activeTextEditor) {\r\n const treeFile = new TreeFile();\r\n treeFile.generateRule(vscode.window.activeTextEditor, generateType.EXACT);\r\n }\r\n }\r\n\r\n analyze() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlp = new NLPFile();\r\n const uri = vscode.window.activeTextEditor.document.uri;\r\n nlp.analyze(uri);\r\n }\r\n }\r\n\r\n analyzeDir() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlp = new NLPFile();\r\n const uri = vscode.window.activeTextEditor.document.uri;\r\n nlp.analyze(uri);\r\n }\r\n }\r\n\r\n foldAll() {\r\n if (vscode.window.activeTextEditor) {\r\n vscode.commands.executeCommand('editor.foldAll');\r\n }\r\n }\r\n\r\n unfoldAll() {\r\n if (vscode.window.activeTextEditor) {\r\n vscode.commands.executeCommand('editor.unfoldAll');\r\n }\r\n }\r\n\r\n foldRecursively() {\r\n if (vscode.window.activeTextEditor) {\r\n vscode.commands.executeCommand('editor.foldRecursively');\r\n }\r\n }\r\n\r\n unfoldRecursively() {\r\n if (vscode.window.activeTextEditor) {\r\n vscode.commands.executeCommand('editor.unfoldRecursively');\r\n }\r\n }\r\n\r\n\r\n highlightText() {\r\n if (vscode.window.activeTextEditor) {\r\n const treeFile = new TreeFile();\r\n treeFile.highlightText(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n ruleFiredLog() {\r\n if (vscode.window.activeTextEditor) {\r\n const treeFile = new TreeFile();\r\n treeFile.ruleFired(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n generatePath() {\r\n if (vscode.window.activeTextEditor) {\r\n const treeFile = new TreeFile();\r\n treeFile.generatePath(vscode.window.activeTextEditor);\r\n }\r\n }\r\n\r\n openPassFile() {\r\n if (vscode.window.activeTextEditor) {\r\n const nlp = new NLPFile();\r\n nlp.openPassFile(vscode.window.activeTextEditor);\r\n }\r\n }\r\n}\r\n","import * as vscode from 'vscode';\r\nimport * as path from 'path';\r\nimport * as fs from 'fs';\r\nimport * as os from 'os';\r\nimport { visualText } from './visualText';\r\nimport { logView, logLineType } from './logView';\r\nimport { refreshEngineDiagnostics } from './language/engineDiagnostics';\r\n\r\nexport enum compileTarget { ANALYZER, KB_ONLY, ANALYZER_ONLY }\r\n\r\ninterface NlpCompileResult {\r\n ok: boolean;\r\n stdout: string;\r\n stderr: string;\r\n}\r\n\r\ninterface EngineCompileSupport {\r\n engineRoot: string;\r\n includeDirs: string[];\r\n libraryFiles: string[];\r\n headerFiles: string[];\r\n missingHeaders: string[];\r\n missingLibraries: string[];\r\n}\r\n\r\ninterface CommandResult {\r\n ok: boolean;\r\n stdout: string;\r\n stderr: string;\r\n errorMessage?: string;\r\n}\r\n\r\nexport let nlpCompile: NLPCompile;\r\nexport class NLPCompile {\r\n\r\n constructor() { }\r\n\r\n static attach(): NLPCompile {\r\n if (!nlpCompile) {\r\n nlpCompile = new NLPCompile();\r\n }\r\n return nlpCompile;\r\n }\r\n\r\n // ---------------------------------------------------------------------------\r\n // Top-level entry points\r\n // ---------------------------------------------------------------------------\r\n\r\n async compileAnalyzer(analyzerDir: vscode.Uri): Promise {\r\n await this.runCompile(analyzerDir, compileTarget.ANALYZER);\r\n }\r\n\r\n async compileKBOnly(analyzerDir: vscode.Uri): Promise {\r\n await this.runCompile(analyzerDir, compileTarget.KB_ONLY);\r\n }\r\n\r\n // Analyzer-only: regenerate the analyzer C++ (run/) via -COMPILEANA without\r\n // regenerating the KB, then rebuild the analyzer library reusing the\r\n // already-generated kb/*.cpp. Fast recompile when only NLP++ rules changed.\r\n async compileAnalyzerOnly(analyzerDir: vscode.Uri): Promise {\r\n await this.runCompile(analyzerDir, compileTarget.ANALYZER_ONLY);\r\n }\r\n\r\n // Export a stand-alone, runnable compiled analyzer into a separate folder.\r\n // The result contains the compiled library (staged under bin/ as the run/kb\r\n // entry points the engine loads), the lazy \"*full.dict\"/\"*full.kbb\" files\r\n // (which cannot be compiled and must remain on disk for stream lookup), and\r\n // any \"spec/*.py\" python-pass scripts (a compiled python pass still shells out\r\n // to spec/\r\n\r\n`;\r\n}\r\n\r\n// Post the current tree to the webview once it's ready; buffer if it isn't yet.\r\nfunction flush(): void {\r\n\tif (!panel || !state) return;\r\n\tpanel.title = state.title;\r\n\tif (panelReady) {\r\n\t\tpanel.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: true });\r\n\t} else {\r\n\t\tpendingFlush = true; // webview will flush on its \"ready\" message\r\n\t}\r\n}\r\n\r\n// Core: open/refresh the graphic for `text`. The panel is created and revealed\r\n// immediately (so the click feels instant); parsing, layout and SVG generation\r\n// are deferred to the next tick and only sent once the webview signals ready —\r\n// so a large tree never blocks the click, and no message is lost.\r\nfunction openGraph(ctx: vscode.ExtensionContext, text: string, treeUri: vscode.Uri, titleSuffix: string): void {\r\n\tensurePanel(ctx);\r\n\tpanel!.reveal(vscode.ViewColumn.Beside, true);\r\n\r\n\tsetTimeout(() => {\r\n\t\tconst root = parseTree(text);\r\n\t\tif (!root) {\r\n\t\t\tvscode.window.showInformationMessage(\"No parse tree found to graph.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tstate = {\r\n\t\t\troot,\r\n\t\t\tcollapsed: defaultCollapsed(root),\r\n\t\t\tinputFile: inputFileForTree(treeUri.fsPath),\r\n\t\t\ttitle: \"Parse Tree — \" + path.basename(treeUri.fsPath) + titleSuffix,\r\n\t\t\tcolWidth: state?.colWidth ?? DEFAULT_COL_WIDTH, // keep the user's spacing across re-opens\r\n\t\t};\r\n\t\tflush();\r\n\t}, 0);\r\n}\r\n\r\n// Create the reusable webview panel (with an empty shell) and wire its messages,\r\n// once. Subsequent opens reuse it.\r\nfunction ensurePanel(ctx: vscode.ExtensionContext): void {\r\n\tif (panel) return;\r\n\tpanelReady = false;\r\n\tpendingFlush = false;\r\n\tpanel = vscode.window.createWebviewPanel(\r\n\t\t\"nlpTreeGraph\", \"Parse Tree\",\r\n\t\t{ viewColumn: vscode.ViewColumn.Beside, preserveFocus: true }, // don't steal focus when pre-warming\r\n\t\t{ enableScripts: true, retainContextWhenHidden: true },\r\n\t);\r\n\tpanel.webview.html = html(nonce());\r\n\tpanel.onDidDispose(() => { panel = undefined; state = undefined; panelReady = false; }, undefined, ctx.subscriptions);\r\n\tpanel.webview.onDidReceiveMessage((m) => {\r\n\t\tif (m?.type === \"ready\") {\r\n\t\t\tpanelReady = true;\r\n\t\t\tif (pendingFlush) { pendingFlush = false; flush(); }\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!state) return;\r\n\t\tif (m?.type === \"reveal\" && state.inputFile) {\r\n\t\t\trevealSpan(state.inputFile, m.start, m.end);\r\n\t\t} else if (m?.type === \"toggle\") {\r\n\t\t\tif (state.collapsed.has(m.id)) state.collapsed.delete(m.id);\r\n\t\t\telse state.collapsed.add(m.id);\r\n\t\t\tpanel?.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: false });\r\n\t\t} else if (m?.type === \"expandAll\" || m?.type === \"collapseAll\") {\r\n\t\t\tconst node = findNode(state.root, m.id);\r\n\t\t\tif (node) {\r\n\t\t\t\tif (m.type === \"expandAll\") {\r\n\t\t\t\t\t// Reveal the whole subtree: nothing under (or at) this node collapsed.\r\n\t\t\t\t\tsubtreeIds(node, false).forEach((id) => state!.collapsed.delete(id));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Hide the whole subtree: this node and every collapsible descendant.\r\n\t\t\t\t\tsubtreeIds(node, true).forEach((id) => state!.collapsed.add(id));\r\n\t\t\t\t}\r\n\t\t\t\tpanel?.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: false });\r\n\t\t\t}\r\n\t\t} else if (m?.type === \"expandAllTree\") {\r\n\t\t\tstate.collapsed.clear();\r\n\t\t\tpanel?.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: false });\r\n\t\t} else if (m?.type === \"collapseAllTree\") {\r\n\t\t\t// Collapse every internal node except the root, so only the root's\r\n\t\t\t// immediate children show (the compact starting view).\r\n\t\t\tstate.collapsed = new Set(subtreeIds(state.root, true).filter((id) => id !== state!.root.id));\r\n\t\t\tpanel?.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: false });\r\n\t\t} else if (m?.type === \"colWidth\") {\r\n\t\t\tstate.colWidth = Math.max(MIN_COL_WIDTH, Math.min(MAX_COL_WIDTH, state.colWidth + (m.delta || 0)));\r\n\t\t\tpanel?.webview.postMessage({ type: \"update\", svg: renderSvg(), reset: false });\r\n\t\t}\r\n\t}, undefined, ctx.subscriptions);\r\n}\r\n\r\n// Graph the entire tree file.\r\nfunction showTreeGraph(ctx: vscode.ExtensionContext, treeUri: vscode.Uri): void {\r\n\t// Prefer the open document's text (reflects any edits) over a disk read.\r\n\tconst open = vscode.workspace.textDocuments.find((d) => d.uri.toString() === treeUri.toString());\r\n\tlet text: string;\r\n\tif (open) {\r\n\t\ttext = open.getText();\r\n\t} else {\r\n\t\ttry { text = fs.readFileSync(treeUri.fsPath, \"utf8\"); }\r\n\t\tcatch { vscode.window.showErrorMessage(\"Could not read tree file: \" + treeUri.fsPath); return; }\r\n\t}\r\n\topenGraph(ctx, text, treeUri, \"\");\r\n}\r\n\r\n// Graph just the selected portion: the selected lines if there's a selection,\r\n// otherwise the subtree rooted at the cursor's line.\r\nfunction showTreeGraphSelection(ctx: vscode.ExtensionContext): void {\r\n\tconst editor = vscode.window.activeTextEditor;\r\n\tif (!editor || editor.document.languageId !== \"tree\") {\r\n\t\tvscode.window.showInformationMessage(\"Select part of a .tree file to graph it.\");\r\n\t\treturn;\r\n\t}\r\n\tconst doc = editor.document;\r\n\tconst sel = editor.selection;\r\n\tlet text: string;\r\n\tlet suffix: string;\r\n\tif (!sel.isEmpty) {\r\n\t\tconst lines: string[] = [];\r\n\t\tfor (let i = sel.start.line; i <= sel.end.line; i++) lines.push(doc.lineAt(i).text);\r\n\t\ttext = lines.join(\"\\n\");\r\n\t\tsuffix = \" (selection)\";\r\n\t} else {\r\n\t\ttext = subtreeText(doc.getText(), sel.active.line);\r\n\t\tsuffix = \" (subtree)\";\r\n\t}\r\n\topenGraph(ctx, text, doc.uri, suffix);\r\n}\r\n\r\nexport function registerTreeGraph(ctx: vscode.ExtensionContext): void {\r\n\t// The graphic is strictly on-demand: the webview is created only when the\r\n\t// user asks for it (title-bar icon or right-click). Nothing here runs when a\r\n\t// .tree file is merely opened, so opening a tree file is never slowed by it.\r\n\tctx.subscriptions.push(\r\n\t\tvscode.commands.registerCommand(\"nlp.showTreeGraph\", (uri?: vscode.Uri) => {\r\n\t\t\tconst target = uri ?? vscode.window.activeTextEditor?.document.uri;\r\n\t\t\tif (!target) {\r\n\t\t\t\tvscode.window.showInformationMessage(\"Open a .tree file to view its parse tree graphic.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tshowTreeGraph(ctx, target);\r\n\t\t}),\r\n\t\tvscode.commands.registerCommand(\"nlp.showTreeGraphSelection\", () => showTreeGraphSelection(ctx)),\r\n\t);\r\n}\r\n","import * as vscode from 'vscode';\r\nimport * as path from 'path';\r\nimport * as fs from 'fs';\r\nimport * as os from 'os';\r\nimport { Analyzer } from './analyzer';\r\nimport { dirfuncs } from './dirfuncs';\r\nimport { JsonState } from './jsonState';\r\nimport { nlpStatusBar } from './status';\r\nimport { logView, logLineType } from './logView';\r\nimport { FileOps, fileOperation, fileOpRefresh, fileOneOff } from './fileOps';\r\nimport { NLPFile } from './nlp';\r\nimport { ModFile } from './modFile';\r\nimport { SequenceFile } from './sequence';\r\nimport { TextFile } from './textFile';\r\n\r\nexport enum upStat { UNKNOWN, START, RUNNING, CANCEL, FAILED, DONE }\r\nexport enum upOp { UNKNOWN, CHECK_EXISTS, VERSION, DOWNLOAD, UNZIP, DELETE, FAILED, DONE }\r\nexport enum upType { UNKNOWN, VERSION, DOWNLOAD, DELETE, UNZIP }\r\nexport enum upComp { UNKNOWN, ICU1, ICU2, ICU3, NLP_EXE, ENGINE_FILES, ENGINE_COMPILE_FILES, ANALYZER_FILES, VT_FILES }\r\nexport enum upPush { FRONT, BACK }\r\n\r\nexport interface updateOp {\r\n type: upType;\r\n status: upStat;\r\n operation: upOp;\r\n component: upComp;\r\n remote: string;\r\n local: string;\r\n folders: Array;\r\n version: string;\r\n}\r\n\r\ninterface ExtensionItem {\r\n uri: vscode.Uri;\r\n version: string;\r\n latest: boolean;\r\n}\r\n\r\ninterface TestItem {\r\n fileCount: number;\r\n matchFiles: number;\r\n matchLines: number;\r\n misFiles: number;\r\n misLines: number;\r\n}\r\n\r\n// HOW TO CALL IT\r\n//(async() => { await closeFileIfOpen(original); })();\r\nexport async function closeFileIfOpen(file: vscode.Uri): Promise {\r\n const tabs: vscode.Tab[] = vscode.window.tabGroups.all.map(tg => tg.tabs).flat();\r\n const index = tabs.findIndex(tab => tab.input instanceof vscode.TabInputText && tab.input.uri.path === file.path);\r\n if (index !== -1) {\r\n await vscode.window.tabGroups.close(tabs[index]);\r\n }\r\n}\r\n\r\nexport let visualText: VisualText;\r\nexport class VisualText {\r\n _ctx: vscode.ExtensionContext;\r\n public opsQueue: updateOp[] = new Array();\r\n public statusStrs = ['UNKNOWN', 'START', 'RUNNING', 'CANCEL', 'FAILED', 'DONE'];\r\n public opStrs = ['UNKNOWN', 'CHECK_EXISTS', 'VERSION', 'DOWNLOAD', 'UNZIP', 'DELETE', 'FAILED', 'DONE'];\r\n public compStrs = ['UNKNOWN', 'ICU1', 'ICU2', 'ICU3', 'NLP_EXE', 'ENGINE_FILES', 'ENGINE_COMPILE_FILES', 'ANALYZER_FILES', 'VT_FILES'];\r\n\r\n public readonly LOG_SUFFIX = '_log';\r\n public readonly TEST_SUFFIX = '_test';\r\n public readonly EXTENSION_NAME = 'dehilster.nlp';\r\n public readonly NLP_EXE = 'nlp.exe';\r\n public readonly ICU1_WIN = 'icudt78.dll';\r\n public readonly ICU2_WIN = 'icuuc78.dll';\r\n // icuin78 hosts ICU's i18n APIs (Collator, etc.) that lite.lib's find_str_nocase references.\r\n public readonly ICU3_WIN = 'icuin78.dll';\r\n public readonly NLPENGINE_FILES_ASSET = 'nlpengine.zip';\r\n public readonly NLPENGINE_COMPILE_FILES_ASSET = 'nlpengine-compile-libs.zip';\r\n public readonly NLPENGINE_REPO = 'nlp-engine';\r\n public readonly VISUALTEXT_FILES_REPO = 'visualtext-files';\r\n public readonly ANALYZERS_REPO = 'analyzers';\r\n public readonly VISUALTEXT_FILES_ASSET = 'visualtext.zip';\r\n public readonly ANALYZERS_ASSET = 'analyzers.zip';\r\n public readonly ANALYZER_SEQUENCE_FILE = 'analyzer.seq';\r\n public readonly ANALYZER_SEQUENCE_FOLDER = 'spec';\r\n public readonly GITHUB_REPOSITORY = 'https://github.com/VisualText/';\r\n public readonly GITHUB_RELEASE_LATEST = '/releases/latest/';\r\n public readonly GITHUB_RELEASE_LATEST_DOWNLOAD = '/releases/latest/download/';\r\n public readonly GITHUB_ENGINE_LATEST_RELEASE = this.GITHUB_REPOSITORY + this.NLPENGINE_REPO + this.GITHUB_RELEASE_LATEST_DOWNLOAD;\r\n public readonly GITHUB_ENGINE_LATEST_VERSION = this.GITHUB_REPOSITORY + this.NLPENGINE_REPO + this.GITHUB_RELEASE_LATEST;\r\n public readonly GITHUB_VISUALTEXT_FILES_LATEST_VERSION = this.GITHUB_REPOSITORY + this.VISUALTEXT_FILES_REPO + this.GITHUB_RELEASE_LATEST;\r\n public readonly GITHUB_ANALYZERS_LATEST_VERSION = this.GITHUB_REPOSITORY + this.ANALYZERS_REPO + this.GITHUB_RELEASE_LATEST;\r\n\r\n public analyzer = new Analyzer();\r\n public fileOps = new FileOps();\r\n public nlp = new NLPFile();\r\n public mod = new ModFile();\r\n public modFiles: vscode.Uri[] = new Array();\r\n public version: string = '';\r\n public engineVersion: string = '';\r\n public exeEngineVersion: string = '';\r\n public repoEngineVersion: string = '';\r\n public vtFilesVersion: string = '';\r\n public repoVTFilesVersion: string = ''\r\n public analyzersVersion: string = '';;\r\n public repoAnalyzersVersion: string = '';\r\n public engineDir: vscode.Uri = vscode.Uri.file('');\r\n public askModify: boolean = false;\r\n public processID: number = 0;\r\n public stopAll: boolean = false;\r\n public debug: boolean = false;\r\n public fastAnswered: boolean = false;\r\n\r\n private autoUpdateFlag: undefined | boolean = false;\r\n private platform: string = '';\r\n private homeDir: string = '';\r\n private username: string = '';\r\n private jsonState = new JsonState();\r\n private analyzers: vscode.Uri[] = new Array();\r\n private libraryFiles: string[] = new Array();\r\n private extensionDir: vscode.Uri = vscode.Uri.file('');\r\n\r\n private analyzerDir: vscode.Uri = vscode.Uri.file('');\r\n private currentAnalyzer: vscode.Uri = vscode.Uri.file('');\r\n private workspaceFold: vscode.Uri = vscode.Uri.file('');\r\n private modFile: vscode.Uri = vscode.Uri.file('');\r\n\r\n private extensionItems: ExtensionItem[] = new Array();\r\n private latestExtIndex: number = 0;\r\n private lastestEngineIndex: number = 0;\r\n private updaterID: number = 0;\r\n\r\n private testItem: TestItem = { fileCount: 0, matchFiles: 0, matchLines: 0, misFiles: 0, misLines: 0 };\r\n\r\n constructor(ctx: vscode.ExtensionContext) {\r\n this._ctx = ctx;\r\n }\r\n\r\n static attach(ctx: vscode.ExtensionContext): VisualText {\r\n if (!visualText) {\r\n visualText = new VisualText(ctx);\r\n if (vscode.workspace.workspaceFolders) {\r\n visualText.workspaceFold = vscode.workspace.workspaceFolders[0].uri;\r\n }\r\n\r\n visualText.platform = os.platform();\r\n visualText.homeDir = os.homedir();\r\n\r\n visualText.readConfig();\r\n visualText.readState();\r\n visualText.getExtensionDirs();\r\n visualText.initSettings();\r\n }\r\n return visualText;\r\n }\r\n\r\n editTestFiles(uri: vscode.Uri, outputPathFlag: boolean = false) {\r\n if (visualText.getWorkspaceFolder()) {\r\n const testFolder = this.analyzer.testFolder(uri, outputPathFlag);\r\n const files = dirfuncs.getFiles(testFolder);\r\n if (files.length > 1) {\r\n const items: vscode.QuickPickItem[] = [];\r\n for (const file of files) {\r\n items.push({ label: path.basename(file.fsPath), description: file.fsPath });\r\n }\r\n\r\n const title = 'Edit Test Files';\r\n const placeHolder = 'Choose test file to edit';\r\n\r\n vscode.window.showQuickPick(items, { title, canPickMany: false, placeHolder: placeHolder }).then(selection => {\r\n if (!selection || !selection.description)\r\n return;\r\n if (selection.description)\r\n vscode.window.showTextDocument(vscode.Uri.file(selection.description));\r\n });\r\n } else {\r\n vscode.window.showTextDocument(vscode.Uri.file(files[0].fsPath));\r\n }\r\n }\r\n }\r\n\r\n regressionTestFile(): string {\r\n return path.join(visualText.analyzer.getKBDirectory().fsPath, 'regression.test');\r\n }\r\n\r\n testInit() {\r\n this.testItem = { fileCount: 0, matchFiles: 0, matchLines: 0, misFiles: 0, misLines: 0 };\r\n }\r\n\r\n closeTest() {\r\n const regressFile = this.regressionTestFile();\r\n let content = fs.readFileSync(regressFile, 'utf8');\r\n let header = 'Files: ' + this.testItem.fileCount + '\\n';\r\n header += 'File matches: ' + this.testItem.matchFiles + '\\n';\r\n header += 'File mismatches: ' + this.testItem.misFiles + '\\n';\r\n header += 'Total line matches: ' + this.testItem.matchLines + '\\n';\r\n header += 'Total line mismatches: ' + this.testItem.misLines + '\\n';\r\n header += '\\n\\n';\r\n\r\n content = header + content;\r\n fs.writeFileSync(regressFile, content, 'utf8');\r\n }\r\n\r\n runTest(textFile: vscode.Uri) {\r\n const inputDir = visualText.analyzer.getInputDirectory().fsPath;\r\n const relPath = textFile.fsPath.substring(inputDir.length + 1, textFile.fsPath.length);\r\n const outputFolder = path.join(inputDir, relPath + visualText.LOG_SUFFIX);\r\n const testFolder = path.join(inputDir, relPath + visualText.TEST_SUFFIX);\r\n const files = dirfuncs.getFiles(vscode.Uri.file(testFolder));\r\n for (const testFile of files) {\r\n const outputFile = path.join(outputFolder, path.basename(testFile.fsPath));\r\n if (fs.existsSync(outputFile)) {\r\n this.testDiff(path.basename(textFile.fsPath), outputFile, testFile.fsPath);\r\n }\r\n }\r\n // vscode.commands.executeCommand(\"vscode.diff\", testFolder, uri);\r\n }\r\n\r\n testDiff(textFile: string, file: string, testFile: string) {\r\n const testResults = this.regressionTestFile();\r\n const fileText = new TextFile(file);\r\n const testText = new TextFile(testFile);\r\n const numLines = testText.getLines().length;\r\n let match = 0;\r\n let mismatch = 0;\r\n let report = '';\r\n let mismatches = '';\r\n\r\n for (let i = 0; i < numLines; i++) {\r\n const lineFile = fileText.getLines()[i];\r\n const lineTest = testText.getLines()[i];\r\n if (lineFile == lineTest) {\r\n match++;\r\n } else {\r\n mismatch++;\r\n mismatches += lineFile + '\\n' + lineTest + '\\n\\n';\r\n }\r\n }\r\n report = textFile + ' Linesss: ' + numLines + ' ' + 'Matches: ' + match + ' ' + 'Mismatches: ' + mismatch + '\\n';\r\n if (mismatches.length)\r\n report += mismatches + '\\n';\r\n\r\n this.testItem.fileCount++;\r\n this.testItem.matchLines += match;\r\n this.testItem.misLines += mismatch;\r\n if (mismatch) {\r\n this.testItem.misFiles++;\r\n } else {\r\n this.testItem.matchFiles++;\r\n }\r\n fs.appendFileSync(testResults, report);\r\n }\r\n\r\n setModFile(filePath: vscode.Uri) {\r\n this.mod.setFile(filePath);\r\n }\r\n\r\n modExists() {\r\n return this.mod.fileExists();\r\n }\r\n\r\n startUpdater(preInfoFlag: boolean = true) {\r\n if (this.updaterID == 0) {\r\n logView.clearLogs(false);\r\n this.platform = os.platform();\r\n const plat = this.platform == 'darwin' ? 'mac' : this.platform;\r\n this.homeDir = os.homedir();\r\n const rootPath = this.getLatestExtPath(this.extensionParentDirectory());\r\n if (rootPath) this.extensionDir = vscode.Uri.file(rootPath);\r\n this.version = vscode.extensions.getExtension(this.EXTENSION_NAME)?.packageJSON.version;\r\n\r\n if (preInfoFlag) {\r\n this.debugMessage('Platform: ' + plat, logLineType.UPDATER);\r\n this.debugMessage('User profile path: ' + this.homeDir, logLineType.UPDATER);\r\n this.debugMessage('VSCode NLP++ Extension path: ' + this.extensionDir.fsPath, logLineType.UPDATER);\r\n }\r\n\r\n this.debugMessage('Checking for updates or repairs...', logLineType.UPDATER);\r\n this.pushCheckVersions();\r\n this.startTimer();\r\n }\r\n }\r\n\r\n startTimer() {\r\n if (this.updaterID == 0) {\r\n this.updaterID = +setInterval(this.updaterTimer, 1000);\r\n }\r\n }\r\n\r\n stopUpdater() {\r\n this.debugMessage('STOP requested by user', logLineType.UPDATER);\r\n for (const o of visualText.opsQueue) {\r\n if (o.status != upStat.RUNNING) {\r\n o.status = upStat.DONE;\r\n }\r\n }\r\n visualText.stopAll = true;\r\n }\r\n\r\n pushCheckVersions() {\r\n visualText.pushCheckEngineFiles();\r\n visualText.pushCheckVTFiles();\r\n visualText.pushCheckAnalyzerFiles();\r\n }\r\n\r\n pushCheckVTFiles() {\r\n const op = visualText.emptyOp();\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.UNZIP, upStat.START, upOp.CHECK_EXISTS, upComp.VT_FILES);\r\n }\r\n\r\n pushCheckAnalyzerFiles() {\r\n const op = visualText.emptyOp();\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.UNZIP, upStat.START, upOp.CHECK_EXISTS, upComp.ANALYZER_FILES);\r\n }\r\n\r\n pushCheckEngineFiles() {\r\n const op = visualText.emptyOp();\r\n if (visualText.platform == 'win32') {\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.DOWNLOAD, upStat.START, upOp.CHECK_EXISTS, upComp.ICU1);\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.DOWNLOAD, upStat.START, upOp.CHECK_EXISTS, upComp.ICU2);\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.DOWNLOAD, upStat.START, upOp.CHECK_EXISTS, upComp.ICU3);\r\n }\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.DOWNLOAD, upStat.START, upOp.CHECK_EXISTS, upComp.NLP_EXE);\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.UNZIP, upStat.START, upOp.CHECK_EXISTS, upComp.ENGINE_FILES);\r\n visualText.addUpdateOperation(op, upPush.BACK, upType.UNZIP, upStat.START, upOp.CHECK_EXISTS, upComp.ENGINE_COMPILE_FILES);\r\n }\r\n\r\n pushDeleteEngineFiles(op: updateOp, push: upPush) {\r\n if (visualText.platform == 'win32') {\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ICU1);\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ICU2);\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ICU3);\r\n }\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.NLP_EXE);\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ENGINE_FILES);\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ENGINE_COMPILE_FILES);\r\n }\r\n\r\n pushDeleteVTFiles(op: updateOp, push: upPush) {\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.VT_FILES);\r\n }\r\n\r\n pushDeleteAnalyzers(op: updateOp, push: upPush) {\r\n visualText.addUpdateOperation(op, push, upType.DELETE, upStat.START, upOp.DELETE, upComp.ANALYZER_FILES);\r\n }\r\n\r\n pushDownloadEngineFiles(op: updateOp, push: upPush) {\r\n visualText.addUpdateOperation(op, push, upType.UNZIP, upStat.START, upOp.DOWNLOAD, upComp.ENGINE_COMPILE_FILES);\r\n visualText.addUpdateOperation(op, push, upType.UNZIP, upStat.START, upOp.DOWNLOAD, upComp.ENGINE_FILES);\r\n visualText.addUpdateOperation(op, push, upType.DOWNLOAD, upStat.START, upOp.DOWNLOAD, upComp.NLP_EXE);\r\n if (visualText.platform == 'win32') {\r\n visualText.addUpdateOperation(op, push, upType.DOWNLOAD, upStat.START, upOp.DOWNLOAD, upComp.ICU3);\r\n visualText.addUpdateOperation(op, push, upType.DOWNLOAD, upStat.START, upOp.DOWNLOAD, upComp.ICU2);\r\n visualText.addUpdateOperation(op, push, upType.DOWNLOAD, upStat.START, upOp.DOWNLOAD, upComp.ICU1);\r\n }\r\n }\r\n\r\n pushDownloadVTFiles(op: updateOp, push: upPush) {\r\n visualText.addUpdateOperation(op, push, upType.UNZIP, upStat.START, upOp.DOWNLOAD, upComp.VT_FILES);\r\n }\r\n\r\n pushDownloadAnalyzers(op: updateOp, push: upPush) {\r\n visualText.addUpdateOperation(op, push, upType.UNZIP, upStat.START, upOp.DOWNLOAD, upComp.ANALYZER_FILES);\r\n }\r\n\r\n addUpdateOperation(opIn: updateOp, push: upPush, type: upType, status: upStat, operation: upOp, component: upComp) {\r\n const op = { type: type, status: status, operation: operation, component: component, remote: '', local: '', folders: [], version: opIn.version };\r\n\r\n switch (component) {\r\n case upComp.ICU1:\r\n case upComp.ICU2:\r\n case upComp.ICU3:\r\n visualText.libFilenames(op);\r\n break;\r\n case upComp.NLP_EXE:\r\n visualText.nlpExe(op);\r\n break;\r\n case upComp.ENGINE_FILES:\r\n visualText.zipFiles(op, visualText.NLPENGINE_REPO, '', visualText.NLPENGINE_FILES_ASSET, ['data']);\r\n break;\r\n case upComp.ENGINE_COMPILE_FILES:\r\n visualText.zipFiles(op, visualText.NLPENGINE_REPO, '', visualText.NLPENGINE_COMPILE_FILES_ASSET, ['include', 'lib']);\r\n break;\r\n case upComp.VT_FILES:\r\n // 'analyzer-templates' replaced the old 'analyzers' folder in the\r\n // visualtext.zip; checking the stale name made VT_FILES look\r\n // permanently missing, so the updater re-downloaded it every cycle.\r\n visualText.zipFiles(op, visualText.VISUALTEXT_FILES_REPO, 'visualText', visualText.VISUALTEXT_FILES_ASSET, [visualText.ANALYZER_SEQUENCE_FOLDER, 'Help', 'analyzer-templates']);\r\n break;\r\n case upComp.ANALYZER_FILES:\r\n visualText.zipFiles(op, visualText.ANALYZERS_REPO, 'analyzers', visualText.ANALYZERS_ASSET, ['']);\r\n break;\r\n }\r\n\r\n if (push == upPush.BACK)\r\n this.opsQueue.push(op);\r\n else\r\n this.opsQueue.unshift(op);\r\n }\r\n\r\n zipFiles(op: updateOp, repo: string, folder: string, download: string, folders: string[]) {\r\n op.remote = visualText.GITHUB_REPOSITORY + repo + visualText.GITHUB_RELEASE_LATEST_DOWNLOAD + download;\r\n const engDir = visualText.engineDirectory().fsPath;\r\n op.local = path.join(engDir, folder, download);\r\n op.folders = [];\r\n for (const f of folders) {\r\n op.folders.push(path.join(folder, f));\r\n }\r\n }\r\n\r\n nlpExe(op: updateOp) {\r\n let exe = '';\r\n switch (visualText.platform) {\r\n case 'win32':\r\n exe = 'nlpw.exe';\r\n break;\r\n case 'darwin':\r\n exe = 'nlpm.exe';\r\n break;\r\n default:\r\n exe = visualText.linuxZipName();\r\n op.type = upType.UNZIP;\r\n }\r\n op.remote = visualText.GITHUB_ENGINE_LATEST_RELEASE + exe;\r\n const engDir = visualText.engineDirectory().fsPath;\r\n op.local = path.join(engDir, visualText.NLP_EXE);\r\n }\r\n\r\n linuxZipName(): string {\r\n try {\r\n const osRelease = fs.readFileSync('/etc/os-release', 'utf8');\r\n const versionMatch = osRelease.match(/^VERSION_ID=\"?([^\"\\n]+)\"?/m);\r\n if (versionMatch) {\r\n const v = versionMatch[1];\r\n if (v === '20.04') return 'ubuntu-20.04.zip';\r\n if (v === '22.04') return 'ubuntu-22.04.zip';\r\n }\r\n } catch (e) {\r\n }\r\n return 'ubuntu-latest.zip';\r\n }\r\n\r\n libFilenames(op: updateOp) {\r\n let libRelease = '';\r\n let lib = '';\r\n if (visualText.platform === 'win32') {\r\n switch (op.component) {\r\n case upComp.ICU1: libRelease = lib = visualText.ICU1_WIN; break;\r\n case upComp.ICU2: libRelease = lib = visualText.ICU2_WIN; break;\r\n case upComp.ICU3: libRelease = lib = visualText.ICU3_WIN; break;\r\n }\r\n }\r\n op.remote = visualText.GITHUB_ENGINE_LATEST_RELEASE + libRelease;\r\n const engDir = visualText.engineDirectory().fsPath;\r\n op.local = path.join(engDir, lib);\r\n }\r\n\r\n getLatestExtPath(dir: vscode.Uri): string {\r\n const files = dirfuncs.getFiles(dir);\r\n for (const file of files.reverse()) {\r\n const filename = path.basename(file.fsPath);\r\n if (filename.startsWith(this.EXTENSION_NAME)) {\r\n this.version = this.versionFromPath(file);\r\n return file.fsPath;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n updaterTimer() {\r\n let op = visualText.opsQueue[0];\r\n const q = visualText.opsQueue;\r\n let allDone = true;\r\n\r\n for (const o of visualText.opsQueue) {\r\n if (visualText.stopAll) {\r\n // Abandon every op, including a RUNNING one. The download/unzip\r\n // async is fire-and-forget and can't be truly cancelled, but the\r\n // updater state -- the timer, the queue, and the \"updating.running\"\r\n // context that shows the stop icon -- MUST reset so Stop actually\r\n // stops. (Previously a RUNNING op kept allDone false forever, so\r\n // the stop icon never went away.) A late-completing async just sets\r\n // status on an op no longer in the queue, which is harmless.\r\n o.status = upStat.CANCEL;\r\n }\r\n else {\r\n if (o.status == upStat.UNKNOWN || o.status == upStat.START || o.status == upStat.RUNNING) {\r\n op = o;\r\n allDone = false;\r\n break;\r\n }\r\n else if (o.status != upStat.FAILED && o.status != upStat.CANCEL && o.status != upStat.DONE) {\r\n allDone = false;\r\n }\r\n }\r\n }\r\n if (allDone) {\r\n vscode.commands.executeCommand('setContext', 'updating.running', false);\r\n visualText.opsQueue = [];\r\n clearInterval(visualText.updaterID);\r\n visualText.updaterID = 0;\r\n if (visualText.stopAll)\r\n visualText.debugMessage('UPDATE STOPPED BY USER', logLineType.UPDATER);\r\n else\r\n visualText.debugMessage('UPDATE CHECK COMPLETE', logLineType.UPDATER);\r\n visualText.stopAll = false;\r\n vscode.commands.executeCommand('status.update');\r\n return;\r\n } else {\r\n vscode.commands.executeCommand('setContext', 'updating.running', true);\r\n }\r\n if (visualText.stopAll)\r\n return;\r\n\r\n if (visualText.debug)\r\n visualText.debugMessage(visualText.statusStrs[op.status] + ' ' + visualText.opStrs[op.operation] + ' ' + visualText.compStrs[op.component], logLineType.UPDATER);\r\n\r\n switch (op.status) {\r\n case upStat.START:\r\n switch (op.operation) {\r\n case upOp.CHECK_EXISTS:\r\n // Use the SAME engine directory the download/unzip target\r\n // (engineDirectory(), based on this.version). getExtensionPath()\r\n // can resolve to a different installed version, so with multiple\r\n // versions installed the check looked in one dir while the download\r\n // populated another -- the update never registered as done and the\r\n // unzip looped. (See #481.)\r\n const endDir = visualText.engineDirectory().fsPath;\r\n if (op.folders.length && endDir) {\r\n let missingOne = false;\r\n for (const folder of op.folders) {\r\n const f = path.join(endDir, folder);\r\n // An empty folder means a prior download/unzip was\r\n // interrupted; treat it as missing so the updater\r\n // re-fetches instead of declaring an incomplete\r\n // install complete (which left \"missing files\").\r\n if (!visualText.pathPopulated(f)) {\r\n missingOne = true;\r\n break;\r\n }\r\n }\r\n if (!missingOne) {\r\n if (visualText.isCompVersion(op))\r\n op.operation = upOp.VERSION;\r\n else\r\n op.status = upStat.DONE;\r\n } else {\r\n op.operation = upOp.DOWNLOAD;\r\n }\r\n } else if (fs.existsSync(op.local)) {\r\n if (visualText.isCompVersion(op))\r\n op.operation = upOp.VERSION;\r\n else\r\n op.status = upStat.DONE;\r\n } else {\r\n op.operation = upOp.DOWNLOAD;\r\n }\r\n break;\r\n\r\n case upOp.DOWNLOAD:\r\n if (fs.existsSync(op.local)) {\r\n if (op.type == upType.UNZIP) {\r\n op.operation = upOp.UNZIP;\r\n } else {\r\n op.status = upStat.DONE;\r\n }\r\n }\r\n else {\r\n op.status = upStat.RUNNING;\r\n visualText.download(op);\r\n }\r\n break;\r\n\r\n case upOp.DELETE:\r\n if (fs.existsSync(op.local)) {\r\n visualText.debugMessage('Deleting: ' + op.local, logLineType.UPDATER);\r\n fs.unlinkSync(op.local);\r\n }\r\n // NOTE: do NOT delete the whole visualText directory here. That\r\n // (#800) left the directory empty if the subsequent download/unzip\r\n // stalled, and the missing files re-triggered the updater, so the\r\n // unzip got stuck in a loop. The unzip overwrites files in place, so\r\n // a fresh download simply refreshes them. (Residual files from an\r\n // older release are tolerated; clearing them safely is future work.)\r\n if (op.folders.length) {\r\n for (const folder of op.folders) {\r\n const f = path.join(path.dirname(op.local), folder);\r\n if (fs.existsSync(f)) {\r\n dirfuncs.delDir(f);\r\n }\r\n }\r\n }\r\n op.status = upStat.DONE;\r\n break;\r\n\r\n case upOp.UNZIP:\r\n op.status = upStat.RUNNING;\r\n visualText.unzip(op);\r\n break;\r\n\r\n case upOp.VERSION:\r\n if (op.version.length) {\r\n visualText.updateVersion(op);\r\n op.status = upStat.DONE;\r\n } else {\r\n switch (op.component) {\r\n case upComp.NLP_EXE:\r\n visualText.checkExeVersion(op);\r\n break;\r\n\r\n case upComp.VT_FILES:\r\n visualText.checkVTFilesVersion(op);\r\n break;\r\n\r\n case upComp.ANALYZER_FILES:\r\n if (visualText.debug) visualText.debugMessage('VERSION CHECK: Analyzers', logLineType.UPDATER);\r\n visualText.checkAnalyzersVersion(op);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n break;\r\n\r\n case upStat.RUNNING:\r\n const donothing = 1;\r\n break;\r\n }\r\n }\r\n\r\n isCompVersion(op: updateOp): boolean {\r\n return op.component == upComp.NLP_EXE || op.component == upComp.VT_FILES || op.component == upComp.ANALYZER_FILES;\r\n }\r\n\r\n emptyOp(): updateOp {\r\n return { type: upType.UNKNOWN, status: upStat.UNKNOWN, operation: upOp.UNKNOWN, component: upComp.UNKNOWN, remote: '', local: '', folders: [], version: '' };\r\n }\r\n\r\n updateVersion(op: updateOp) {\r\n switch (op.component) {\r\n case upComp.NLP_EXE:\r\n nlpStatusBar.updateEngineVersion(op.version);\r\n break;\r\n case upComp.VT_FILES:\r\n nlpStatusBar.updateFilesVersion(op.version);\r\n visualText.setVTFilesVersion(op.version);\r\n break;\r\n case upComp.ANALYZER_FILES:\r\n nlpStatusBar.updateAnalyzerssVersion(op.version);\r\n visualText.setAnalyzersVersion(op.version);\r\n break;\r\n }\r\n }\r\n\r\n checkExeVersion(op: updateOp) {\r\n visualText.fetchExeVersion(op)?.then(version => {\r\n visualText.checkEngineVersionRepo(op)\r\n .then(newerVersion => {\r\n if (newerVersion) {\r\n visualText.pushDownloadEngineFiles(op, upPush.FRONT);\r\n visualText.pushDeleteEngineFiles(op, upPush.FRONT);\r\n }\r\n op.status = upStat.DONE;\r\n visualText.updateVersion(op);\r\n })\r\n })\r\n .catch(error => {\r\n op.status = upStat.FAILED;\r\n });\r\n op.status = upStat.RUNNING;\r\n }\r\n\r\n checkEngineVersionRepo(op: updateOp) {\r\n return new Promise((resolve, reject) => {\r\n\r\n const https = require('follow-redirects').https;\r\n\r\n const request = https.get(this.GITHUB_ENGINE_LATEST_VERSION, function (res) {\r\n res.on('data', function (chunk) {\r\n let newer = false;\r\n if (op.status != upStat.DONE) {\r\n const url = res.responseUrl;\r\n visualText.repoEngineVersion = url.substring(url.lastIndexOf('/') + 1);\r\n const exeVersion = visualText.exeEngineVersion;\r\n const repoVersion = visualText.repoEngineVersion;\r\n op.version = visualText.repoEngineVersion;\r\n if (visualText.debug) visualText.debugMessage('NLP.EXE Versions: ' + exeVersion + ' == ' + repoVersion, logLineType.UPDATER);\r\n\r\n if (exeVersion && repoVersion) {\r\n if (visualText.versionCompare(repoVersion, exeVersion) > 0) {\r\n newer = true;\r\n }\r\n } else if (!fs.existsSync(op.local)) {\r\n // No engine installed yet -> download it. (A present\r\n // exe is handled by the branches above/below.)\r\n newer = true;\r\n } else {\r\n // Exe is present but its version couldn't be read (or\r\n // the repo version is unknown). Do NOT assume \"newer\":\r\n // that re-downloaded the engine on every startup when\r\n // `nlp.exe --version` returned empty (e.g. a transient\r\n // spawn/ICU hiccup), producing an endless update loop.\r\n if (visualText.debug)\r\n visualText.debugMessage('Skipping engine update: version undetermined (exe=[' + exeVersion + '] repo=[' + repoVersion + '])', logLineType.UPDATER);\r\n }\r\n op.status = upStat.DONE;\r\n }\r\n resolve(newer);\r\n });\r\n }).on('error', function (err) {\r\n reject(err);\r\n });\r\n request.end();\r\n });\r\n }\r\n\r\n checkVTFilesVersion(op: updateOp) {\r\n const statusFlag = op.status == upStat.UNKNOWN ? true : false;\r\n visualText.checkVTFilesVersionRepo(op)\r\n .then(newerVersion => {\r\n if (newerVersion) {\r\n visualText.pushDownloadVTFiles(op, upPush.FRONT);\r\n visualText.pushDeleteVTFiles(op, upPush.FRONT);\r\n if (statusFlag) {\r\n op.component = upComp.VT_FILES;\r\n visualText.startTimer();\r\n }\r\n } else if (statusFlag) {\r\n vscode.window.showInformationMessage('VisualText files verion ' + visualText.repoVTFilesVersion + ' is the latest');\r\n }\r\n op.status = upStat.DONE;\r\n visualText.updateVersion(op);\r\n })\r\n }\r\n\r\n checkVTFilesVersionRepo(op: updateOp) {\r\n return new Promise((resolve, reject) => {\r\n\r\n const https = require('follow-redirects').https;\r\n\r\n const request = https.get(this.GITHUB_VISUALTEXT_FILES_LATEST_VERSION, function (res) {\r\n res.on('data', function (chunk) {\r\n let newer = false;\r\n if (op.status != upStat.DONE) {\r\n const url = res.responseUrl;\r\n visualText.repoVTFilesVersion = url.substring(url.lastIndexOf('/') + 1);\r\n op.version = visualText.repoVTFilesVersion;\r\n const currentVersion = visualText.getVTFilesVersion();\r\n if (visualText.debug)\r\n visualText.debugMessage('VisualText Files Versions: ' + currentVersion + ' == ' + visualText.repoVTFilesVersion, logLineType.UPDATER);\r\n\r\n if (currentVersion) {\r\n visualText.vtFilesVersion = currentVersion;\r\n if (visualText.versionCompare(visualText.repoVTFilesVersion, currentVersion) > 0) {\r\n newer = true;\r\n }\r\n }\r\n else {\r\n newer = true;\r\n }\r\n op.status = upStat.DONE;\r\n }\r\n resolve(newer);\r\n });\r\n }).on('error', function (err) {\r\n reject(err);\r\n });\r\n request.end();\r\n });\r\n }\r\n\r\n checkAnalyzersVersion(op: updateOp) {\r\n const statusFlag = op.status == upStat.UNKNOWN ? true : false;\r\n visualText.checkAnalyzersVersionRepo(op)\r\n .then(newerVersion => {\r\n if (newerVersion) {\r\n visualText.setAnalyzersVersion(visualText.repoAnalyzersVersion);\r\n visualText.pushDownloadAnalyzers(op, upPush.FRONT);\r\n visualText.pushDeleteAnalyzers(op, upPush.FRONT);\r\n op.status = upStat.DONE;\r\n visualText.updateVersion(op);\r\n } else if (statusFlag) {\r\n vscode.window.showInformationMessage('Analyzers verion ' + visualText.repoAnalyzersVersion + ' is the latest');\r\n }\r\n op.status = upStat.DONE;\r\n visualText.updateVersion(op);\r\n })\r\n }\r\n\r\n checkAnalyzersVersionRepo(op: updateOp) {\r\n return new Promise((resolve, reject) => {\r\n const https = require('follow-redirects').https;\r\n\r\n const request = https.get(this.GITHUB_ANALYZERS_LATEST_VERSION, function (res) {\r\n res.on('data', function (chunk) {\r\n let newer = false;\r\n if (op.status != upStat.DONE) {\r\n const url = res.responseUrl;\r\n visualText.repoAnalyzersVersion = url.substring(url.lastIndexOf('/') + 1);\r\n op.version = visualText.repoAnalyzersVersion;\r\n const currentVersion = visualText.getAnalyzersVersion();\r\n if (visualText.debug)\r\n visualText.debugMessage('Analyzers Versions: ' + currentVersion + ' == ' + visualText.repoAnalyzersVersion, logLineType.UPDATER);\r\n if (currentVersion) {\r\n visualText.analyzersVersion = currentVersion;\r\n if (visualText.versionCompare(visualText.repoAnalyzersVersion, currentVersion) > 0) {\r\n newer = true;\r\n }\r\n }\r\n else {\r\n newer = true;\r\n }\r\n op.status = upStat.DONE;\r\n }\r\n resolve(newer);\r\n });\r\n }).on('error', function (err) {\r\n reject(err);\r\n });\r\n request.end();\r\n });\r\n }\r\n\r\n download(op: updateOp) {\r\n const Downloader = require('nodejs-file-downloader');\r\n\r\n (async () => {\r\n const dir = path.dirname(op.local);\r\n const filename = (op.component === upComp.NLP_EXE && op.type === upType.UNZIP)\r\n ? path.basename(op.remote)\r\n : path.basename(op.local);\r\n const url = op.remote;\r\n\r\n const downloader = new Downloader({\r\n url: url,\r\n directory: dir,\r\n filename: filename\r\n });\r\n try {\r\n visualText.debugMessage('Downloading: ' + url, logLineType.UPDATER);\r\n await downloader.download();\r\n visualText.debugMessage('DONE DOWNLOAD: ' + url, logLineType.UPDATER);\r\n if (op.type == upType.UNZIP && !visualText.stopAll) {\r\n op.operation = upOp.UNZIP;\r\n op.status = upStat.START;\r\n } else if (visualText.isCompVersion(op)) {\r\n op.operation = upOp.VERSION;\r\n op.status = upStat.START;\r\n } else {\r\n op.status = upStat.DONE;\r\n }\r\n }\r\n catch (error) {\r\n op.status = upStat.FAILED;\r\n visualText.debugMessage('FAILED download: ' + url + '\\n' + error, logLineType.UPDATER);\r\n }\r\n })();\r\n }\r\n\r\n // A path counts as \"populated\" only if it exists AND has content: a\r\n // non-empty directory, or a non-empty file. An empty dir left by an\r\n // interrupted download/unzip is treated as absent so the updater re-fetches.\r\n private pathPopulated(p: string): boolean {\r\n try {\r\n if (!fs.existsSync(p)) return false;\r\n const st = fs.statSync(p);\r\n return st.isDirectory() ? fs.readdirSync(p).length > 0 : st.size > 0;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n // Move a single extracted entry into its final location, replacing any\r\n // existing file/dir. src and dst live on the same volume (the temp dir is a\r\n // child of the engine dir), so renameSync is atomic and fast; the cpSync\r\n // fallback only covers a transient Windows lock on the destination.\r\n private moveIntoPlace(src: string, dst: string) {\r\n if (fs.existsSync(dst)) {\r\n if (fs.statSync(dst).isDirectory()) dirfuncs.delDir(dst);\r\n else fs.unlinkSync(dst);\r\n }\r\n try {\r\n fs.renameSync(src, dst);\r\n } catch (e) {\r\n fs.cpSync(src, dst, { recursive: true });\r\n if (fs.statSync(src).isDirectory()) dirfuncs.delDir(src);\r\n else fs.unlinkSync(src);\r\n }\r\n }\r\n\r\n // Extract a zip into destDir. Prefers the OS-native extractor (bsdtar,\r\n // shipped on Windows 10+/1803 and macOS), which handles large entries\r\n // reliably and fast -- extract-zip has been observed to HANG on big native\r\n // static libs (e.g. a 38 MB words.lib in nlpengine-compile-libs.zip), while\r\n // tar extracts the same 60 MB zip in a fraction of a second. Falls back to\r\n // extract-zip where a zip-capable tar isn't available (e.g. GNU tar on\r\n // Linux). (See #1073.)\r\n private extractArchive(zipPath: string, destDir: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n const useTar = os.platform() === 'win32' || os.platform() === 'darwin';\r\n const tryExtractZip = (why?: string) => {\r\n if (why) this.debugMessage('Native unzip unavailable (' + why + '), using extract-zip', logLineType.UPDATER);\r\n const extract = require('extract-zip');\r\n extract(zipPath, { dir: destDir }).then(() => resolve()).catch(reject);\r\n };\r\n if (!useTar) { tryExtractZip(); return; }\r\n const { execFile } = require('child_process');\r\n const tarExe = os.platform() === 'win32'\r\n ? path.join(process.env.WINDIR || 'C:\\\\Windows', 'System32', 'tar.exe')\r\n : 'tar';\r\n execFile(tarExe, ['-xf', zipPath, '-C', destDir], { windowsHide: true }, (err: any) => {\r\n if (err) tryExtractZip(err.message || String(err));\r\n else resolve();\r\n });\r\n });\r\n }\r\n\r\n unzip(op: updateOp) {\r\n (async () => {\r\n const vtFileDir = path.dirname(op.local);\r\n const isLinuxExeZip = op.component === upComp.NLP_EXE && op.type === upType.UNZIP;\r\n const toPath = isLinuxExeZip\r\n ? path.join(vtFileDir, path.basename(op.remote))\r\n : op.local;\r\n\r\n // Extract into a temp sibling dir first, then move each top-level\r\n // entry into place only after the FULL extraction succeeds. An\r\n // interrupted or partial unzip therefore never lands in the engine\r\n // dir, so it can't masquerade as a complete install and re-trigger\r\n // the download->unzip retry loop that left the updater stuck. The\r\n // source zip is only deleted after everything is moved into place,\r\n // so a re-run always re-extracts cleanly from scratch. (See #1070.)\r\n const tmpDir = path.join(vtFileDir, '.vt-unzip-tmp');\r\n try {\r\n if (fs.existsSync(tmpDir)) dirfuncs.delDir(tmpDir);\r\n fs.mkdirSync(tmpDir, { recursive: true });\r\n\r\n this.debugMessage('Unzipping: ' + toPath, logLineType.UPDATER);\r\n // Watchdog: if extraction never resolves (a hang seen with\r\n // extract-zip on large entries), time out so the op FAILS instead\r\n // of sitting at RUNNING forever and wedging the whole updater.\r\n // FAILED is terminal, so the queue completes and the next run\r\n // retries. (The native tar path normally finishes in well under a\r\n // second, so this only bites a genuine hang.)\r\n const UNZIP_TIMEOUT_MS = 120000;\r\n await Promise.race([\r\n this.extractArchive(toPath, tmpDir),\r\n new Promise((_resolve, reject) =>\r\n setTimeout(() => reject(new Error('unzip timed out after '\r\n + (UNZIP_TIMEOUT_MS / 1000) + 's')), UNZIP_TIMEOUT_MS))\r\n ]);\r\n this.debugMessage('UNZIPPED: ' + toPath, logLineType.UPDATER);\r\n\r\n // exe zips wrap their payload in a single subfolder; flatten it.\r\n let srcRoot = tmpDir;\r\n if (isLinuxExeZip) {\r\n const subfolder = path.join(tmpDir, path.basename(toPath, '.zip'));\r\n if (fs.existsSync(subfolder)) srcRoot = subfolder;\r\n }\r\n for (const f of fs.readdirSync(srcRoot)) {\r\n const dst = (isLinuxExeZip && f === 'nlpl.exe')\r\n ? path.join(vtFileDir, visualText.NLP_EXE)\r\n : path.join(vtFileDir, f);\r\n visualText.moveIntoPlace(path.join(srcRoot, f), dst);\r\n }\r\n\r\n dirfuncs.delDir(tmpDir);\r\n op.status = upStat.DONE;\r\n dirfuncs.delFile(toPath);\r\n }\r\n catch (err) {\r\n this.debugMessage('Could not unzip file: ' + toPath + '\\n' + err, logLineType.UPDATER);\r\n if (fs.existsSync(tmpDir)) dirfuncs.delDir(tmpDir);\r\n op.status = upStat.FAILED;\r\n }\r\n })();\r\n }\r\n\r\n public debugMessage(msg: string, type: logLineType = logLineType.INFO) {\r\n logView.addMessage(msg, type, undefined);\r\n vscode.commands.executeCommand('logView.refreshAll');\r\n }\r\n\r\n readState(): boolean {\r\n if (vscode.workspace.workspaceFolders) {\r\n this.analyzerDir = this.workspaceFold;\r\n this.getAnalyzers(false);\r\n if (this.jsonState.jsonParse(this.analyzerDir, 'state')) {\r\n let saveit = false;\r\n const parse = this.jsonState.json.visualText[0];\r\n let currAnalyzer = parse.currentAnalyzer;\r\n\r\n if (currAnalyzer.length > 0 && !fs.existsSync(currAnalyzer)) {\r\n this.setCurrentAnalyzer(vscode.Uri.file(''));\r\n }\r\n else if (currAnalyzer.length == 0) {\r\n const analyzers = dirfuncs.getDirectories(this.workspaceFold);\r\n currAnalyzer = analyzers[0].fsPath;\r\n saveit = true;\r\n }\r\n\r\n if (currAnalyzer) {\r\n if (fs.existsSync(currAnalyzer))\r\n this.currentAnalyzer = vscode.Uri.file(currAnalyzer);\r\n else\r\n this.currentAnalyzer = vscode.Uri.file(path.join(this.analyzerDir.fsPath, currAnalyzer));\r\n\r\n if (saveit)\r\n this.saveCurrentAnalyzer(this.analyzerDir);\r\n this.loadAnalyzer(this.currentAnalyzer);\r\n return true;\r\n }\r\n } else {\r\n this.saveCurrentAnalyzer(this.analyzerDir);\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n initSettings(): boolean {\r\n const fromDir = path.join(visualText.getExtensionPath().fsPath, '.vscode');\r\n if (fs.existsSync(fromDir)) {\r\n const toDir = path.join(this.analyzerDir.fsPath, '.vscode');\r\n if (!fs.existsSync(toDir)) {\r\n if (!dirfuncs.copyDirectory(fromDir, toDir)) {\r\n vscode.window.showWarningMessage('Copy settings file failed');\r\n return false;\r\n }\r\n return true;\r\n }\r\n this.ensureExists('settings.json', toDir, fromDir);\r\n this.ensureExists('state.json', toDir, fromDir);\r\n }\r\n return false;\r\n }\r\n\r\n ensureExists(fileName: string, toDir: string, fromDir: string) {\r\n const toFile = path.join(toDir, fileName);\r\n if (!fs.existsSync(toFile)) {\r\n const fromFile = path.join(fromDir, fileName);\r\n fs.copyFileSync(fromFile, toFile);\r\n }\r\n }\r\n\r\n readConfig() {\r\n this.configAutoUpdate();\r\n this.configFindUsername();\r\n this.configAnalzyerDirectory();\r\n this.configCurrentAnalzyer();\r\n }\r\n\r\n configCurrentAnalzyer() {\r\n if (vscode.workspace.workspaceFolders) {\r\n const config = vscode.workspace.getConfiguration('analyzer', this.workspaceFold);\r\n const current = config.get('current');\r\n if (!current) {\r\n if (this.analyzers.length) {\r\n this.currentAnalyzer = this.analyzers[0];\r\n config.update('current', this.currentAnalyzer.fsPath, vscode.ConfigurationTarget.WorkspaceFolder);\r\n this.debugMessage('Current analyzer: ' + this.currentAnalyzer.fsPath, logLineType.UPDATER);\r\n }\r\n } else {\r\n this.currentAnalyzer = vscode.Uri.file(current);\r\n }\r\n }\r\n }\r\n\r\n configAnalzyerDirectory() {\r\n const config = vscode.workspace.getConfiguration('analyzer');\r\n let directory: string;\r\n\r\n if (vscode.workspace.workspaceFolders && dirfuncs.analyzerFolderCount(this.workspaceFold)) {\r\n directory = this.workspaceFold.fsPath;\r\n } else {\r\n directory = config.get('directory') || '';\r\n if (!directory) {\r\n directory = path.join(this.engineDir.fsPath, 'analyzers');\r\n }\r\n }\r\n\r\n this.analyzerDir = vscode.Uri.file(directory);\r\n if (directory.length > 1)\r\n config.update('directory', directory, vscode.ConfigurationTarget.Global);\r\n }\r\n\r\n failedWarning() {\r\n vscode.window.showErrorMessage(\"Update failed\", \"Click here to see solutions\").then(response => {\r\n logView.downloadHelp();\r\n });\r\n }\r\n\r\n findExtensionIndex(engDir: string): number {\r\n let index = 0;\r\n for (const ext of this.extensionItems) {\r\n visualText.stopAll\r\n if (engDir.startsWith(ext.uri.fsPath))\r\n break;\r\n index++;\r\n }\r\n return index;\r\n }\r\n\r\n versionFromPath(extDir: vscode.Uri): string {\r\n const dir = extDir.fsPath;\r\n const version = dir.substring(dir.lastIndexOf(this.EXTENSION_NAME) + 1 + this.EXTENSION_NAME.length);\r\n return version;\r\n }\r\n\r\n versionCompare(version1: string, version2: string): number {\r\n if (!version1.length || !version2.length)\r\n return 0;\r\n\r\n const toks1 = version1.split('.');\r\n const toks2 = version2.split('.');\r\n const num = toks1.length > toks2.length ? toks1.length : toks2.length;\r\n for (let i = 0; i < num; i++) {\r\n const v1 = parseInt(visualText.trimV(toks1[i]));\r\n const v2 = parseInt(visualText.trimV(toks2[i]));\r\n if (v1 > v2) return 1;\r\n if (v2 > v1) return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n trimV(version: string): string {\r\n let ret = version;\r\n if (version.substring(0, 1) == 'v') {\r\n ret = version.substring(1, version.length);\r\n }\r\n return ret;\r\n }\r\n\r\n exePath() {\r\n return vscode.Uri.file(path.join(visualText.engineDirectory().fsPath, visualText.NLP_EXE));\r\n }\r\n\r\n engineDirectory() {\r\n return vscode.Uri.file(path.join(this.extensionDirectory().fsPath, this.NLPENGINE_REPO));\r\n }\r\n\r\n extensionDirectory() {\r\n return vscode.Uri.file(path.join(this.extensionParentDirectory().fsPath, this.EXTENSION_NAME + '-' + this.version));\r\n }\r\n\r\n extensionParentDirectory() {\r\n let dir = path.join(this.homeDir, '.vscode', 'extensions');\r\n if (!fs.existsSync(dir)) {\r\n if (this.platform == 'linux') {\r\n dir = path.join(this.homeDir, '.vscode-server', 'extensions');\r\n }\r\n }\r\n return vscode.Uri.file(dir);\r\n }\r\n\r\n visualTextFilesDirectory() {\r\n return vscode.Uri.file(path.join(this.engineDirectory().fsPath, this.VISUALTEXT_FILES_REPO));\r\n }\r\n\r\n fetchExeVersion(op: updateOp, debug: boolean = false) {\r\n dirfuncs.changeMod(op.local, 755);\r\n visualText.exeEngineVersion = '';\r\n const cp = require('child_process');\r\n return new Promise((resolve) => {\r\n let stdout = '';\r\n let settled = false;\r\n // Resolve exactly once, from the FULL accumulated output. Resolving on\r\n // the first stdout chunk (or never, on spawn failure) is what left\r\n // exeEngineVersion empty and drove the perpetual re-download loop.\r\n const finish = () => {\r\n if (settled) return;\r\n settled = true;\r\n // `nlp.exe --version` prints just the version; take the last\r\n // non-empty line and strip CR/LF/whitespace either way.\r\n const lines = stdout.split(/\\r?\\n/).map(s => s.trim()).filter(s => s.length);\r\n visualText.exeEngineVersion = lines.length ? lines[lines.length - 1] : '';\r\n if (debug) visualText.debugMessage('version found: [' + visualText.exeEngineVersion + ']', logLineType.UPDATER);\r\n resolve(visualText.exeEngineVersion);\r\n };\r\n let child;\r\n try {\r\n child = cp.spawn(op.local, ['--version']);\r\n } catch (err) {\r\n visualText.debugMessage('fetchExeVersion spawn threw: ' + err, logLineType.UPDATER);\r\n finish();\r\n return;\r\n }\r\n child.stdout.on('data', (data) => { stdout += data.toString(); });\r\n // --version exits non-zero by design, so key off 'close', not the exit\r\n // code. 'error' fires if the exe can't be spawned at all.\r\n child.on('close', () => finish());\r\n child.on('error', (err) => {\r\n visualText.debugMessage('fetchExeVersion spawn error: ' + err, logLineType.UPDATER);\r\n finish();\r\n });\r\n });\r\n }\r\n\r\n getBlockAnalyzersPath(): vscode.Uri {\r\n return vscode.Uri.file(path.join(visualText.getExtensionPath().fsPath, visualText.NLPENGINE_REPO, visualText.ANALYZERS_REPO));\r\n }\r\n\r\n getExtensionPath(): vscode.Uri {\r\n return this.extensionItems[this.latestExtIndex].uri;\r\n }\r\n\r\n getExtensionDirs() {\r\n const parentDir = this.extensionParentDirectory();\r\n let dirs: vscode.Uri[] = new Array();\r\n this.extensionItems = [];\r\n dirs = dirfuncs.getDirectories(parentDir);\r\n let latestVersion = '';\r\n this.latestExtIndex = -1;\r\n let counter = 0;\r\n\r\n for (const dir of dirs) {\r\n const name = path.basename(dir.fsPath);\r\n if (name.startsWith(this.EXTENSION_NAME)) {\r\n const version = this.versionFromPath(dir);\r\n if (latestVersion.length == 0 || this.versionCompare(version, latestVersion) > 0) {\r\n latestVersion = version;\r\n this.latestExtIndex = counter;\r\n }\r\n this.extensionItems.push({ uri: dir, version: version, latest: false });\r\n counter++;\r\n }\r\n }\r\n\r\n if (this.latestExtIndex >= 0) {\r\n this.extensionItems[this.latestExtIndex].latest = true;\r\n if (!this.version.length) {\r\n this.version = latestVersion;\r\n }\r\n }\r\n }\r\n\r\n setTextFastLoad(fastFlag: boolean) {\r\n this.autoUpdateFlag = fastFlag;\r\n const config = vscode.workspace.getConfiguration('textView');\r\n config.update('fast', fastFlag, vscode.ConfigurationTarget.Global);\r\n vscode.commands.executeCommand('setContext', 'textView.fastload', fastFlag);\r\n }\r\n\r\n getTextFastLoad(): boolean | undefined {\r\n const config = vscode.workspace.getConfiguration('textView');\r\n const version = config.get('visualText');\r\n return config.get('fast');\r\n }\r\n\r\n setAutoUpdate(autoUpdateFlag: boolean) {\r\n this.autoUpdateFlag = autoUpdateFlag;\r\n const config = vscode.workspace.getConfiguration('update');\r\n config.update('auto', autoUpdateFlag, vscode.ConfigurationTarget.Global);\r\n }\r\n\r\n getAutoUpdate(): boolean | undefined {\r\n const config = vscode.workspace.getConfiguration('update');\r\n const version = config.get('visualText');\r\n return config.get('auto');\r\n }\r\n\r\n configAutoUpdate() {\r\n this.autoUpdateFlag = this.getAutoUpdate();\r\n }\r\n\r\n setVTFilesVersion(version: string) {\r\n this.vtFilesVersion = version;\r\n const config = vscode.workspace.getConfiguration('engine');\r\n config.update('visualtext', version, vscode.ConfigurationTarget.Global);\r\n }\r\n\r\n getVTFilesVersion(): string | undefined {\r\n const config = vscode.workspace.getConfiguration('engine');\r\n const version = config.get('visualtext');\r\n return config.get('visualtext');\r\n }\r\n\r\n setAnalyzersVersion(version: string) {\r\n this.vtFilesVersion = version;\r\n const config = vscode.workspace.getConfiguration('engine');\r\n config.update('analyzers', version, vscode.ConfigurationTarget.Global);\r\n }\r\n\r\n getAnalyzersVersion(): string | undefined {\r\n const config = vscode.workspace.getConfiguration('engine');\r\n const version = config.get('analyzers');\r\n return config.get('analyzers');\r\n }\r\n\r\n configFindUsername() {\r\n const config = vscode.workspace.getConfiguration('user');\r\n const username = config.get('name');\r\n if (!username) {\r\n vscode.window.showErrorMessage(\"No user name for comments.\", \"Enter user name\").then(response => {\r\n vscode.window.showInputBox({ value: 'Your Name', prompt: 'Enter author name for comments' }).then(username => {\r\n if (username) {\r\n visualText.username = username;\r\n config.update(\"name\", username, vscode.ConfigurationTarget.Global);\r\n }\r\n });\r\n });\r\n } else {\r\n this.username = username;\r\n }\r\n }\r\n\r\n saveCurrentAnalyzer(currentAnalyzer: vscode.Uri) {\r\n const stateJsonDefault: any = {\r\n \"visualText\": [\r\n {\r\n \"name\": \"Analyzer\",\r\n \"type\": \"state\",\r\n \"currentAnalyzer\": currentAnalyzer.fsPath\r\n }\r\n ]\r\n }\r\n this.jsonState.saveFile(this.analyzerDir.fsPath, 'state', stateJsonDefault);\r\n this.setCurrentAnalyzer(currentAnalyzer);\r\n }\r\n\r\n loadAnalyzer(analyzerDirectory: vscode.Uri) {\r\n this.saveCurrentAnalyzer(analyzerDirectory);\r\n this.analyzer.load(analyzerDirectory);\r\n vscode.commands.executeCommand('textView.refreshAll');\r\n vscode.commands.executeCommand('sequenceView.refreshAll');\r\n vscode.commands.executeCommand('kbView.refreshAll');\r\n vscode.commands.executeCommand('outputView.refreshAll');\r\n }\r\n\r\n setCurrentAnalyzer(currentAnalyzer: vscode.Uri) {\r\n if (this.jsonState.json) {\r\n const parse = this.jsonState.json.visualText[0];\r\n parse.currentAnalyzer = currentAnalyzer.fsPath;\r\n this.jsonState.writeFile();\r\n }\r\n }\r\n\r\n getCurrentAnalyzer(): vscode.Uri {\r\n return this.currentAnalyzer;\r\n }\r\n\r\n getCurrentAnalyzerName(): string {\r\n return this.analyzer.getName();\r\n }\r\n\r\n hasAnalyzers(): boolean {\r\n return this.analyzers.length ? true : false;\r\n }\r\n\r\n getAnalyzerDir(): vscode.Uri {\r\n return this.analyzerDir;\r\n }\r\n\r\n getAnalyzers(testForLogs: boolean): vscode.Uri[] {\r\n if (this.analyzerDir.fsPath.length) {\r\n this.analyzers = [];\r\n this.getAnalyzersRecursive(testForLogs, this.analyzerDir);\r\n }\r\n return this.analyzers;\r\n }\r\n\r\n getAnalyzersRecursive(testForLogs: boolean, dir: vscode.Uri) {\r\n if (dir.fsPath.length) {\r\n let anas: vscode.Uri[] = [];\r\n if (!fs.existsSync(dir.fsPath)) {\r\n dir = this.workspaceFold;\r\n }\r\n anas = dirfuncs.getDirectories(dir);\r\n for (const ana of anas) {\r\n if (visualText.isAnalyzerDirectory(ana)) {\r\n if (!testForLogs || dirfuncs.analyzerHasLogFiles(ana))\r\n this.analyzers.push(ana);\r\n } else {\r\n this.getAnalyzersRecursive(testForLogs, ana);\r\n }\r\n }\r\n }\r\n }\r\n\r\n hasWorkspaceFolder(): boolean {\r\n return this.workspaceFold?.fsPath.length ? true : false;\r\n }\r\n\r\n getWorkspaceFolder(): vscode.Uri {\r\n if (this.workspaceFold) {\r\n return this.workspaceFold;\r\n }\r\n return vscode.Uri.file('');\r\n }\r\n\r\n visualTextDirectoryExists(): boolean {\r\n return fs.existsSync(this.getVisualTextDirectory());\r\n }\r\n\r\n getVisualTextDirectory(dirName: string = ''): string {\r\n let vtDir = '';\r\n const engineDir = this.engineDirectory().fsPath;\r\n const vtDirName = 'visualText';\r\n if (engineDir) {\r\n if (dirName.length)\r\n vtDir = path.join(engineDir, vtDirName, dirName);\r\n else\r\n vtDir = path.join(engineDir, vtDirName);\r\n }\r\n return vtDir;\r\n }\r\n\r\n isAnalyzerDirectory(dirPath: vscode.Uri): boolean {\r\n const dirs = dirfuncs.getDirectories(dirPath);\r\n let spec = false;\r\n let kb = false;\r\n let input = false;\r\n\r\n for (const dir of dirs) {\r\n if (path.basename(dir.fsPath).localeCompare(visualText.ANALYZER_SEQUENCE_FOLDER) == 0) {\r\n spec = true;\r\n }\r\n else if (path.basename(dir.fsPath).localeCompare('kb') == 0) {\r\n kb = true;\r\n }\r\n else if (path.basename(dir.fsPath).localeCompare('input') == 0) {\r\n input = true;\r\n }\r\n }\r\n\r\n return spec && kb && input;\r\n }\r\n\r\n hasLogFiles(dirPath: vscode.Uri): boolean {\r\n const dirs = dirfuncs.getDirectories(dirPath);\r\n let spec = false;\r\n let kb = false;\r\n let input = false;\r\n let output = false;\r\n let logs = false;\r\n\r\n for (const dir of dirs) {\r\n const dirname = path.basename(dir.fsPath);\r\n if (dirname.localeCompare(visualText.ANALYZER_SEQUENCE_FOLDER) == 0) {\r\n spec = true;\r\n }\r\n else if (dirname.localeCompare('kb') == 0) {\r\n kb = true;\r\n }\r\n else if (dirname.localeCompare('input') == 0) {\r\n input = true;\r\n }\r\n else if (dirname == 'output' && dirfuncs.hasFiles(dir)) {\r\n output = true;\r\n }\r\n else if (dirname == 'logs' && dirfuncs.hasFiles(dir)) {\r\n logs = true;\r\n }\r\n }\r\n\r\n return spec && kb && input && output && logs;\r\n }\r\n\r\n setUpdateEngine(): boolean {\r\n const uri = visualText.getExtensionPath();\r\n if (uri) {\r\n this.debugMessage('NLP Engine updating version', logLineType.UPDATER);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n updateEngine() {\r\n visualText.pushDownloadEngineFiles(visualText.emptyOp(), upPush.FRONT);\r\n visualText.pushDeleteEngineFiles(visualText.emptyOp(), upPush.FRONT);\r\n visualText.startUpdater();\r\n }\r\n\r\n updateVTFiles() {\r\n visualText.pushDeleteVTFiles(visualText.emptyOp(), upPush.BACK);\r\n visualText.pushDownloadVTFiles(visualText.emptyOp(), upPush.BACK);\r\n this.startUpdater();\r\n }\r\n\r\n updateAnalyzersFiles() {\r\n visualText.pushDeleteAnalyzers(visualText.emptyOp(), upPush.BACK);\r\n visualText.pushDownloadAnalyzers(visualText.emptyOp(), upPush.BACK);\r\n this.startUpdater();\r\n }\r\n\r\n convertPatFiles(analyzerDir: vscode.Uri) {\r\n const spec = vscode.Uri.file(path.join(analyzerDir.fsPath, visualText.ANALYZER_SEQUENCE_FOLDER));\r\n const op = visualText.fileOps.addFileOperation(spec, spec, [fileOpRefresh.ANALYZER], fileOperation.RENAME, 'pat', 'nlp');\r\n op.oneOff = fileOneOff.PAT_TO_NLP;\r\n visualText.fileOps.startFileOps();\r\n }\r\n\r\n stopFileOps() {\r\n visualText.fileOps.stopAll();\r\n }\r\n\r\n // Ensures the workspace settings carry the NLP token colorization. This is\r\n // called before opening pass/tree/match files, so it must stay cheap: it used\r\n // to re-read and re-parse .vscode/settings.json on EVERY open (and rewrite it\r\n // when the block was missing, which makes VSCode re-apply token colors) —\r\n // visibly delaying the file from coming up. The work only needs doing once per\r\n // session, so repeated calls short-circuit. Pass overwrite=true to force it\r\n // (the \"Update Colorizer\" command).\r\n private colorizeChecked = false;\r\n\r\n colorizeAnalyzer(overwrite: boolean = false) {\r\n if (this.colorizeChecked && !overwrite) return;\r\n this.colorizeChecked = true;\r\n if (vscode.workspace.workspaceFolders) {\r\n let add = false;\r\n const toDir = vscode.workspace.workspaceFolders[0].uri;\r\n const toFile = path.join(toDir.fsPath, '.vscode', 'settings.json');\r\n // Read the colorization template from the running extension (source tree in\r\n // debug, installed .vsix dir in production) rather than the manually-built\r\n // installed path, which only holds the downloaded nlp-engine assets.\r\n const fromDir = this._ctx.extensionUri;\r\n const fromFile = path.join(fromDir.fsPath, '.vscode', 'settings.json');\r\n if (fs.existsSync(toFile)) {\r\n if (this.jsonState.jsonParse(toDir, 'settings')) {\r\n if (!this.jsonState.json.hasOwnProperty('editor.tokenColorCustomizations')) {\r\n const settingsObj1 = this.jsonState.json;\r\n this.jsonState.jsonParse(fromDir, 'settings')\r\n const settingsObj2 = this.jsonState.json;\r\n\r\n const mergedObj = {\r\n ...settingsObj1,\r\n ...settingsObj2\r\n };\r\n this.jsonState.saveFile(toDir.fsPath, \"settings\", mergedObj);\r\n }\r\n }\r\n } else\r\n add = true;\r\n\r\n if (add || overwrite) {\r\n dirfuncs.copyFile(fromFile, toFile);\r\n this.debugMessage('Copying settings file with colorization: ' + fromFile + ' => ' + toFile, logLineType.UPDATER);\r\n }\r\n }\r\n }\r\n\r\n openFileManager(dir: string) {\r\n let platformCmd = '';\r\n if (os.platform() == 'win32') {\r\n platformCmd = 'explorer.exe';\r\n } else if (os.platform() == 'linux') {\r\n platformCmd = 'xdg-open';\r\n } else if (os.platform() == 'darwin') {\r\n platformCmd = 'open';\r\n }\r\n if (platformCmd != '') {\r\n // Quote the path so folders/files with spaces open correctly (#123).\r\n const cmd = platformCmd + ' \"' + dir + '\"';\r\n const cp = require('child_process');\r\n cp.exec(cmd, (err, stdout, stderr) => {\r\n console.log('stdout: ' + stdout);\r\n console.log('stderr: ' + stderr);\r\n });\r\n } else {\r\n vscode.window.showInformationMessage('Couldn\\'t open nlp engine folder');\r\n }\r\n }\r\n\r\n createPanel(title: string): vscode.WebviewPanel {\r\n return vscode.window.createWebviewPanel(\r\n 'logView',\r\n title,\r\n {\r\n viewColumn: vscode.ViewColumn.Beside,\r\n preserveFocus: false\r\n }\r\n );\r\n }\r\n\r\n displayHelpFile(title: string, filename: string) {\r\n const helpDir = visualText.getVisualTextDirectory(\"Help\");\r\n const baseName = path.parse(filename).name;\r\n const mdFile = path.join(helpDir, \"markdown\", baseName + \".md\");\r\n const htmlFile = path.join(helpDir, \"helps\", baseName + \".html\");\r\n if (fs.existsSync(mdFile)) {\r\n vscode.commands.executeCommand('markdown.showPreview', vscode.Uri.file(mdFile));\r\n }\r\n else if (fs.existsSync(htmlFile)) {\r\n this.displayHTML(title, fs.readFileSync(htmlFile, 'utf8'));\r\n }\r\n }\r\n\r\n displayHTML(title: string, html: string) {\r\n const panel = this.createPanel(title);\r\n if (panel) {\r\n panel.webview.html = html;\r\n }\r\n }\r\n\r\n fileIconFromExt(filepath: string): string {\r\n const filename = path.basename(filepath);\r\n\r\n let icon = 'file.svg';\r\n if (filename.endsWith('.tree')) {\r\n icon = 'tree.svg';\r\n } else if (filename.endsWith('.log')) {\r\n icon = 'log.svg';\r\n } else if (filename.endsWith('.nlp') || filename.endsWith('.pat')) {\r\n icon = 'nlp.svg';\r\n } else if (filename.endsWith('.dict')) {\r\n icon = 'dict.svg';\r\n } else if (filename == 'main.kb') {\r\n icon = 'kb-main.svg';\r\n } else if (filename.endsWith('.kbb')) {\r\n icon = 'kbb.svg';\r\n } else if (filename.endsWith('.kb')) {\r\n icon = 'kb.svg';\r\n } else if (filename.endsWith('.txxt')) {\r\n icon = 'symbol-keyword.svg';\r\n } else if (filename.endsWith('.dict')) {\r\n icon = 'dict.svg';\r\n } else if (filename.endsWith('.nlm')) {\r\n icon = 'mod.svg';\r\n } else if (filename.endsWith('.test')) {\r\n icon = 'test.svg';\r\n } else if (filename.endsWith('.py')) {\r\n icon = 'python.svg';\r\n } else if (filename.endsWith('.json')) {\r\n icon = 'json.svg';\r\n } else if (filename.endsWith('.dll') || filename.endsWith('.so') || filename.endsWith('.dylib')) {\r\n icon = 'library.svg';\r\n } else {\r\n icon = 'file.svg';\r\n }\r\n\r\n return icon;\r\n }\r\n\r\n analyzerList(subdir: string): vscode.QuickPickItem[] {\r\n let dirs: vscode.Uri[] = [];\r\n if (subdir.length) {\r\n const pather = path.join(visualText.getWorkspaceFolder().fsPath, subdir);\r\n dirs = dirfuncs.getDirectories(vscode.Uri.file(pather));\r\n } else\r\n dirs = dirfuncs.getDirectories(visualText.getWorkspaceFolder());\r\n const items: vscode.QuickPickItem[] = [];\r\n for (const dir of dirs) {\r\n const filename = path.basename(dir.fsPath);\r\n items.push({ label: filename, description: dir.fsPath });\r\n }\r\n return items;\r\n }\r\n\r\n analyzerFolderList(specFlag: boolean = false): vscode.QuickPickItem[] {\r\n const dirs = dirfuncs.getDirectories(visualText.getWorkspaceFolder());\r\n const items: vscode.QuickPickItem[] = [];\r\n return this.analyzerFolderListRecurse(visualText.getWorkspaceFolder(), items, 0, specFlag);\r\n }\r\n\r\n analyzerFolderListRecurse(dir: vscode.Uri, items: vscode.QuickPickItem[], level: number = 0, specFlag: boolean = false): vscode.QuickPickItem[] {\r\n const dirs = dirfuncs.getDirectories(dir);\r\n let indent = '';\r\n const spacer = ' ';\r\n for (let i = 0; i < level; i++) {\r\n indent = indent + spacer;\r\n }\r\n if (indent.length > 0) indent = '-' + indent;\r\n const seq = new SequenceFile;\r\n for (const dir of dirs) {\r\n const basename = path.basename(dir.fsPath);\r\n const baseUpper = basename.toUpperCase();\r\n if (visualText.isAnalyzerDirectory(dir)) {\r\n if (specFlag) {\r\n items.push({ label: indent + basename, description: '=======================' });\r\n seq.choicePasses(path.join(dir.fsPath, visualText.ANALYZER_SEQUENCE_FOLDER), items, '-' + indent + spacer, false);\r\n } else {\r\n items.push({ label: indent + basename, description: dir.fsPath });\r\n }\r\n } else {\r\n items.push({ label: indent + '(FOLDER) ' + baseUpper, description: '(FOLDER - choose analyzer bloc(s) below)' });\r\n this.analyzerFolderListRecurse(dir, items, level + 1, specFlag);\r\n }\r\n }\r\n return items;\r\n }\r\n\r\n modFileList(): vscode.QuickPickItem[] {\r\n const items: vscode.QuickPickItem[] = [];\r\n for (const uri of this.modFiles) {\r\n const basename = path.basename(uri.fsPath);\r\n items.push({ label: basename, description: uri.fsPath });\r\n }\r\n return items;\r\n }\r\n\r\n findFilesWithExtension(extension: string) {\r\n const protectedFiles = [\r\n 'C:\\\\DumpStack.log.tmp',\r\n 'C:\\\\hiberfil.sys',\r\n 'C:\\\\pagefile.sys',\r\n 'C:\\\\swapfile.sys'\r\n ];\r\n function explore(dir: string) {\r\n try {\r\n const files = fs.readdirSync(dir);\r\n for (const file of files) {\r\n const filePath = path.join(dir, file);\r\n if (protectedFiles.includes(filePath)) {\r\n continue;\r\n }\r\n let stats;\r\n try {\r\n stats = fs.statSync(filePath);\r\n } catch (err: any) {\r\n if (err.code === 'EPERM') {\r\n // Skip protected system files\r\n continue;\r\n } else {\r\n throw err;\r\n }\r\n }\r\n const startsWithNumber = /^\\d+\\_/.test(file);\r\n if (stats.isDirectory()) {\r\n explore(filePath);\r\n } else if (path.extname(file) === extension && !startsWithNumber) {\r\n visualText.libraryFiles.push(filePath);\r\n }\r\n }\r\n } catch (err) {\r\n console.error('An error occurred while reading the directory:', (err as Error).message);\r\n }\r\n }\r\n\r\n if (visualText.libraryFiles.length == 0) {\r\n const filepath = path.join(visualText.getVisualTextDirectory(visualText.ANALYZER_SEQUENCE_FOLDER));\r\n if (fs.existsSync(filepath)) {\r\n explore(filepath)\r\n }\r\n }\r\n }\r\n\r\n getLibraryFiles(): string[] {\r\n return this.libraryFiles;\r\n }\r\n\r\n public async chooseLibFiles(prompt: string, dirName: string, subDir: string, exts: string[]): Promise {\r\n const fileDir = path.join(visualText.getVisualTextDirectory(), dirName, subDir);\r\n const items: vscode.QuickPickItem[] = [];\r\n\r\n const dictFiles = dirfuncs.getFiles(vscode.Uri.file(fileDir), exts);\r\n const textFile = new TextFile();\r\n for (const dictFile of dictFiles) {\r\n let descr = \"\";\r\n\r\n const firstLine = textFile.readFirstLine(dictFile.fsPath);\r\n if (firstLine[0] == '#') {\r\n descr = firstLine.substring(1);\r\n }\r\n const icon = visualText.fileIconFromExt(dictFile.fsPath);\r\n const label = path.basename(dictFile.fsPath);\r\n const light = vscode.Uri.file(path.join(visualText.getExtensionPath().fsPath, \"resources\", \"light\", icon));\r\n const dark = vscode.Uri.file(path.join(visualText.getExtensionPath().fsPath, \"resources\", \"dark\", icon));\r\n items.push({ label: label, description: descr });\r\n }\r\n\r\n if (items.length == 0) {\r\n vscode.window.showWarningMessage('Not created yet and you can help!');\r\n return [];\r\n } else {\r\n const selections = await vscode.window.showQuickPick(items, { title: 'Choose ' + prompt, canPickMany: true, placeHolder: 'Choose ' + prompt + ' to insert' });\r\n if (selections) {\r\n for (const item of selections) {\r\n item.description = fileDir;\r\n }\r\n }\r\n return selections || [];\r\n }\r\n }\r\n\r\n convertUriToStr(uri: vscode.Uri): string {\r\n let pathStr = uri.fsPath;\r\n if (os.platform() === 'win32') {\r\n pathStr = pathStr.replace(/\\\\/g, '\\\\\\\\');\r\n } else {\r\n pathStr = pathStr.replace(/\\\\/g, '/');\r\n }\r\n return pathStr;\r\n }\r\n}\r\n","// Returns a wrapper function that returns a wrapped callback\r\n// The wrapper function should do some stuff, and return a\r\n// presumably different callback function.\r\n// This makes sure that own properties are retained, so that\r\n// decorations and such are not lost along the way.\r\nmodule.exports = wrappy\r\nfunction wrappy (fn, cb) {\r\n if (fn && cb) return wrappy(fn)(cb)\r\n\r\n if (typeof fn !== 'function')\r\n throw new TypeError('need wrapper function')\r\n\r\n Object.keys(fn).forEach(function (k) {\r\n wrapper[k] = fn[k]\r\n })\r\n\r\n return wrapper\r\n\r\n function wrapper() {\r\n var args = new Array(arguments.length)\r\n for (var i = 0; i < args.length; i++) {\r\n args[i] = arguments[i]\r\n }\r\n var ret = fn.apply(this, args)\r\n var cb = args[args.length-1]\r\n if (typeof ret === 'function' && ret !== cb) {\r\n Object.keys(cb).forEach(function (k) {\r\n ret[k] = cb[k]\r\n })\r\n }\r\n return ret\r\n }\r\n}\r\n","var fs = require(\"fs\");\r\nvar zlib = require(\"zlib\");\r\nvar fd_slicer = require(\"fd-slicer\");\r\nvar crc32 = require(\"buffer-crc32\");\r\nvar util = require(\"util\");\r\nvar EventEmitter = require(\"events\").EventEmitter;\r\nvar Transform = require(\"stream\").Transform;\r\nvar PassThrough = require(\"stream\").PassThrough;\r\nvar Writable = require(\"stream\").Writable;\r\n\r\nexports.open = open;\r\nexports.fromFd = fromFd;\r\nexports.fromBuffer = fromBuffer;\r\nexports.fromRandomAccessReader = fromRandomAccessReader;\r\nexports.dosDateTimeToDate = dosDateTimeToDate;\r\nexports.validateFileName = validateFileName;\r\nexports.ZipFile = ZipFile;\r\nexports.Entry = Entry;\r\nexports.RandomAccessReader = RandomAccessReader;\r\n\r\nfunction open(path, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = null;\r\n }\r\n if (options == null) options = {};\r\n if (options.autoClose == null) options.autoClose = true;\r\n if (options.lazyEntries == null) options.lazyEntries = false;\r\n if (options.decodeStrings == null) options.decodeStrings = true;\r\n if (options.validateEntrySizes == null) options.validateEntrySizes = true;\r\n if (options.strictFileNames == null) options.strictFileNames = false;\r\n if (callback == null) callback = defaultCallback;\r\n fs.open(path, \"r\", function(err, fd) {\r\n if (err) return callback(err);\r\n fromFd(fd, options, function(err, zipfile) {\r\n if (err) fs.close(fd, defaultCallback);\r\n callback(err, zipfile);\r\n });\r\n });\r\n}\r\n\r\nfunction fromFd(fd, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = null;\r\n }\r\n if (options == null) options = {};\r\n if (options.autoClose == null) options.autoClose = false;\r\n if (options.lazyEntries == null) options.lazyEntries = false;\r\n if (options.decodeStrings == null) options.decodeStrings = true;\r\n if (options.validateEntrySizes == null) options.validateEntrySizes = true;\r\n if (options.strictFileNames == null) options.strictFileNames = false;\r\n if (callback == null) callback = defaultCallback;\r\n fs.fstat(fd, function(err, stats) {\r\n if (err) return callback(err);\r\n var reader = fd_slicer.createFromFd(fd, {autoClose: true});\r\n fromRandomAccessReader(reader, stats.size, options, callback);\r\n });\r\n}\r\n\r\nfunction fromBuffer(buffer, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = null;\r\n }\r\n if (options == null) options = {};\r\n options.autoClose = false;\r\n if (options.lazyEntries == null) options.lazyEntries = false;\r\n if (options.decodeStrings == null) options.decodeStrings = true;\r\n if (options.validateEntrySizes == null) options.validateEntrySizes = true;\r\n if (options.strictFileNames == null) options.strictFileNames = false;\r\n // limit the max chunk size. see https://github.com/thejoshwolfe/yauzl/issues/87\r\n var reader = fd_slicer.createFromBuffer(buffer, {maxChunkSize: 0x10000});\r\n fromRandomAccessReader(reader, buffer.length, options, callback);\r\n}\r\n\r\nfunction fromRandomAccessReader(reader, totalSize, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = null;\r\n }\r\n if (options == null) options = {};\r\n if (options.autoClose == null) options.autoClose = true;\r\n if (options.lazyEntries == null) options.lazyEntries = false;\r\n if (options.decodeStrings == null) options.decodeStrings = true;\r\n var decodeStrings = !!options.decodeStrings;\r\n if (options.validateEntrySizes == null) options.validateEntrySizes = true;\r\n if (options.strictFileNames == null) options.strictFileNames = false;\r\n if (callback == null) callback = defaultCallback;\r\n if (typeof totalSize !== \"number\") throw new Error(\"expected totalSize parameter to be a number\");\r\n if (totalSize > Number.MAX_SAFE_INTEGER) {\r\n throw new Error(\"zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.\");\r\n }\r\n\r\n // the matching unref() call is in zipfile.close()\r\n reader.ref();\r\n\r\n // eocdr means End of Central Directory Record.\r\n // search backwards for the eocdr signature.\r\n // the last field of the eocdr is a variable-length comment.\r\n // the comment size is encoded in a 2-byte field in the eocdr, which we can't find without trudging backwards through the comment to find it.\r\n // as a consequence of this design decision, it's possible to have ambiguous zip file metadata if a coherent eocdr was in the comment.\r\n // we search backwards for a eocdr signature, and hope that whoever made the zip file was smart enough to forbid the eocdr signature in the comment.\r\n var eocdrWithoutCommentSize = 22;\r\n var maxCommentSize = 0xffff; // 2-byte size\r\n var bufferSize = Math.min(eocdrWithoutCommentSize + maxCommentSize, totalSize);\r\n var buffer = newBuffer(bufferSize);\r\n var bufferReadStart = totalSize - buffer.length;\r\n readAndAssertNoEof(reader, buffer, 0, bufferSize, bufferReadStart, function(err) {\r\n if (err) return callback(err);\r\n for (var i = bufferSize - eocdrWithoutCommentSize; i >= 0; i -= 1) {\r\n if (buffer.readUInt32LE(i) !== 0x06054b50) continue;\r\n // found eocdr\r\n var eocdrBuffer = buffer.slice(i);\r\n\r\n // 0 - End of central directory signature = 0x06054b50\r\n // 4 - Number of this disk\r\n var diskNumber = eocdrBuffer.readUInt16LE(4);\r\n if (diskNumber !== 0) {\r\n return callback(new Error(\"multi-disk zip files are not supported: found disk number: \" + diskNumber));\r\n }\r\n // 6 - Disk where central directory starts\r\n // 8 - Number of central directory records on this disk\r\n // 10 - Total number of central directory records\r\n var entryCount = eocdrBuffer.readUInt16LE(10);\r\n // 12 - Size of central directory (bytes)\r\n // 16 - Offset of start of central directory, relative to start of archive\r\n var centralDirectoryOffset = eocdrBuffer.readUInt32LE(16);\r\n // 20 - Comment length\r\n var commentLength = eocdrBuffer.readUInt16LE(20);\r\n var expectedCommentLength = eocdrBuffer.length - eocdrWithoutCommentSize;\r\n if (commentLength !== expectedCommentLength) {\r\n return callback(new Error(\"invalid comment length. expected: \" + expectedCommentLength + \". found: \" + commentLength));\r\n }\r\n // 22 - Comment\r\n // the encoding is always cp437.\r\n var comment = decodeStrings ? decodeBuffer(eocdrBuffer, 22, eocdrBuffer.length, false)\r\n : eocdrBuffer.slice(22);\r\n\r\n if (!(entryCount === 0xffff || centralDirectoryOffset === 0xffffffff)) {\r\n return callback(null, new ZipFile(reader, centralDirectoryOffset, totalSize, entryCount, comment, options.autoClose, options.lazyEntries, decodeStrings, options.validateEntrySizes, options.strictFileNames));\r\n }\r\n\r\n // ZIP64 format\r\n\r\n // ZIP64 Zip64 end of central directory locator\r\n var zip64EocdlBuffer = newBuffer(20);\r\n var zip64EocdlOffset = bufferReadStart + i - zip64EocdlBuffer.length;\r\n readAndAssertNoEof(reader, zip64EocdlBuffer, 0, zip64EocdlBuffer.length, zip64EocdlOffset, function(err) {\r\n if (err) return callback(err);\r\n\r\n // 0 - zip64 end of central dir locator signature = 0x07064b50\r\n if (zip64EocdlBuffer.readUInt32LE(0) !== 0x07064b50) {\r\n return callback(new Error(\"invalid zip64 end of central directory locator signature\"));\r\n }\r\n // 4 - number of the disk with the start of the zip64 end of central directory\r\n // 8 - relative offset of the zip64 end of central directory record\r\n var zip64EocdrOffset = readUInt64LE(zip64EocdlBuffer, 8);\r\n // 16 - total number of disks\r\n\r\n // ZIP64 end of central directory record\r\n var zip64EocdrBuffer = newBuffer(56);\r\n readAndAssertNoEof(reader, zip64EocdrBuffer, 0, zip64EocdrBuffer.length, zip64EocdrOffset, function(err) {\r\n if (err) return callback(err);\r\n\r\n // 0 - zip64 end of central dir signature 4 bytes (0x06064b50)\r\n if (zip64EocdrBuffer.readUInt32LE(0) !== 0x06064b50) {\r\n return callback(new Error(\"invalid zip64 end of central directory record signature\"));\r\n }\r\n // 4 - size of zip64 end of central directory record 8 bytes\r\n // 12 - version made by 2 bytes\r\n // 14 - version needed to extract 2 bytes\r\n // 16 - number of this disk 4 bytes\r\n // 20 - number of the disk with the start of the central directory 4 bytes\r\n // 24 - total number of entries in the central directory on this disk 8 bytes\r\n // 32 - total number of entries in the central directory 8 bytes\r\n entryCount = readUInt64LE(zip64EocdrBuffer, 32);\r\n // 40 - size of the central directory 8 bytes\r\n // 48 - offset of start of central directory with respect to the starting disk number 8 bytes\r\n centralDirectoryOffset = readUInt64LE(zip64EocdrBuffer, 48);\r\n // 56 - zip64 extensible data sector (variable size)\r\n return callback(null, new ZipFile(reader, centralDirectoryOffset, totalSize, entryCount, comment, options.autoClose, options.lazyEntries, decodeStrings, options.validateEntrySizes, options.strictFileNames));\r\n });\r\n });\r\n return;\r\n }\r\n callback(new Error(\"end of central directory record signature not found\"));\r\n });\r\n}\r\n\r\nutil.inherits(ZipFile, EventEmitter);\r\nfunction ZipFile(reader, centralDirectoryOffset, fileSize, entryCount, comment, autoClose, lazyEntries, decodeStrings, validateEntrySizes, strictFileNames) {\r\n var self = this;\r\n EventEmitter.call(self);\r\n self.reader = reader;\r\n // forward close events\r\n self.reader.on(\"error\", function(err) {\r\n // error closing the fd\r\n emitError(self, err);\r\n });\r\n self.reader.once(\"close\", function() {\r\n self.emit(\"close\");\r\n });\r\n self.readEntryCursor = centralDirectoryOffset;\r\n self.fileSize = fileSize;\r\n self.entryCount = entryCount;\r\n self.comment = comment;\r\n self.entriesRead = 0;\r\n self.autoClose = !!autoClose;\r\n self.lazyEntries = !!lazyEntries;\r\n self.decodeStrings = !!decodeStrings;\r\n self.validateEntrySizes = !!validateEntrySizes;\r\n self.strictFileNames = !!strictFileNames;\r\n self.isOpen = true;\r\n self.emittedError = false;\r\n\r\n if (!self.lazyEntries) self._readEntry();\r\n}\r\nZipFile.prototype.close = function() {\r\n if (!this.isOpen) return;\r\n this.isOpen = false;\r\n this.reader.unref();\r\n};\r\n\r\nfunction emitErrorAndAutoClose(self, err) {\r\n if (self.autoClose) self.close();\r\n emitError(self, err);\r\n}\r\nfunction emitError(self, err) {\r\n if (self.emittedError) return;\r\n self.emittedError = true;\r\n self.emit(\"error\", err);\r\n}\r\n\r\nZipFile.prototype.readEntry = function() {\r\n if (!this.lazyEntries) throw new Error(\"readEntry() called without lazyEntries:true\");\r\n this._readEntry();\r\n};\r\nZipFile.prototype._readEntry = function() {\r\n var self = this;\r\n if (self.entryCount === self.entriesRead) {\r\n // done with metadata\r\n setImmediate(function() {\r\n if (self.autoClose) self.close();\r\n if (self.emittedError) return;\r\n self.emit(\"end\");\r\n });\r\n return;\r\n }\r\n if (self.emittedError) return;\r\n var buffer = newBuffer(46);\r\n readAndAssertNoEof(self.reader, buffer, 0, buffer.length, self.readEntryCursor, function(err) {\r\n if (err) return emitErrorAndAutoClose(self, err);\r\n if (self.emittedError) return;\r\n var entry = new Entry();\r\n // 0 - Central directory file header signature\r\n var signature = buffer.readUInt32LE(0);\r\n if (signature !== 0x02014b50) return emitErrorAndAutoClose(self, new Error(\"invalid central directory file header signature: 0x\" + signature.toString(16)));\r\n // 4 - Version made by\r\n entry.versionMadeBy = buffer.readUInt16LE(4);\r\n // 6 - Version needed to extract (minimum)\r\n entry.versionNeededToExtract = buffer.readUInt16LE(6);\r\n // 8 - General purpose bit flag\r\n entry.generalPurposeBitFlag = buffer.readUInt16LE(8);\r\n // 10 - Compression method\r\n entry.compressionMethod = buffer.readUInt16LE(10);\r\n // 12 - File last modification time\r\n entry.lastModFileTime = buffer.readUInt16LE(12);\r\n // 14 - File last modification date\r\n entry.lastModFileDate = buffer.readUInt16LE(14);\r\n // 16 - CRC-32\r\n entry.crc32 = buffer.readUInt32LE(16);\r\n // 20 - Compressed size\r\n entry.compressedSize = buffer.readUInt32LE(20);\r\n // 24 - Uncompressed size\r\n entry.uncompressedSize = buffer.readUInt32LE(24);\r\n // 28 - File name length (n)\r\n entry.fileNameLength = buffer.readUInt16LE(28);\r\n // 30 - Extra field length (m)\r\n entry.extraFieldLength = buffer.readUInt16LE(30);\r\n // 32 - File comment length (k)\r\n entry.fileCommentLength = buffer.readUInt16LE(32);\r\n // 34 - Disk number where file starts\r\n // 36 - Internal file attributes\r\n entry.internalFileAttributes = buffer.readUInt16LE(36);\r\n // 38 - External file attributes\r\n entry.externalFileAttributes = buffer.readUInt32LE(38);\r\n // 42 - Relative offset of local file header\r\n entry.relativeOffsetOfLocalHeader = buffer.readUInt32LE(42);\r\n\r\n if (entry.generalPurposeBitFlag & 0x40) return emitErrorAndAutoClose(self, new Error(\"strong encryption is not supported\"));\r\n\r\n self.readEntryCursor += 46;\r\n\r\n buffer = newBuffer(entry.fileNameLength + entry.extraFieldLength + entry.fileCommentLength);\r\n readAndAssertNoEof(self.reader, buffer, 0, buffer.length, self.readEntryCursor, function(err) {\r\n if (err) return emitErrorAndAutoClose(self, err);\r\n if (self.emittedError) return;\r\n // 46 - File name\r\n var isUtf8 = (entry.generalPurposeBitFlag & 0x800) !== 0;\r\n entry.fileName = self.decodeStrings ? decodeBuffer(buffer, 0, entry.fileNameLength, isUtf8)\r\n : buffer.slice(0, entry.fileNameLength);\r\n\r\n // 46+n - Extra field\r\n var fileCommentStart = entry.fileNameLength + entry.extraFieldLength;\r\n var extraFieldBuffer = buffer.slice(entry.fileNameLength, fileCommentStart);\r\n entry.extraFields = [];\r\n var i = 0;\r\n while (i < extraFieldBuffer.length - 3) {\r\n var headerId = extraFieldBuffer.readUInt16LE(i + 0);\r\n var dataSize = extraFieldBuffer.readUInt16LE(i + 2);\r\n var dataStart = i + 4;\r\n var dataEnd = dataStart + dataSize;\r\n if (dataEnd > extraFieldBuffer.length) return emitErrorAndAutoClose(self, new Error(\"extra field length exceeds extra field buffer size\"));\r\n var dataBuffer = newBuffer(dataSize);\r\n extraFieldBuffer.copy(dataBuffer, 0, dataStart, dataEnd);\r\n entry.extraFields.push({\r\n id: headerId,\r\n data: dataBuffer,\r\n });\r\n i = dataEnd;\r\n }\r\n\r\n // 46+n+m - File comment\r\n entry.fileComment = self.decodeStrings ? decodeBuffer(buffer, fileCommentStart, fileCommentStart + entry.fileCommentLength, isUtf8)\r\n : buffer.slice(fileCommentStart, fileCommentStart + entry.fileCommentLength);\r\n // compatibility hack for https://github.com/thejoshwolfe/yauzl/issues/47\r\n entry.comment = entry.fileComment;\r\n\r\n self.readEntryCursor += buffer.length;\r\n self.entriesRead += 1;\r\n\r\n if (entry.uncompressedSize === 0xffffffff ||\r\n entry.compressedSize === 0xffffffff ||\r\n entry.relativeOffsetOfLocalHeader === 0xffffffff) {\r\n // ZIP64 format\r\n // find the Zip64 Extended Information Extra Field\r\n var zip64EiefBuffer = null;\r\n for (var i = 0; i < entry.extraFields.length; i++) {\r\n var extraField = entry.extraFields[i];\r\n if (extraField.id === 0x0001) {\r\n zip64EiefBuffer = extraField.data;\r\n break;\r\n }\r\n }\r\n if (zip64EiefBuffer == null) {\r\n return emitErrorAndAutoClose(self, new Error(\"expected zip64 extended information extra field\"));\r\n }\r\n var index = 0;\r\n // 0 - Original Size 8 bytes\r\n if (entry.uncompressedSize === 0xffffffff) {\r\n if (index + 8 > zip64EiefBuffer.length) {\r\n return emitErrorAndAutoClose(self, new Error(\"zip64 extended information extra field does not include uncompressed size\"));\r\n }\r\n entry.uncompressedSize = readUInt64LE(zip64EiefBuffer, index);\r\n index += 8;\r\n }\r\n // 8 - Compressed Size 8 bytes\r\n if (entry.compressedSize === 0xffffffff) {\r\n if (index + 8 > zip64EiefBuffer.length) {\r\n return emitErrorAndAutoClose(self, new Error(\"zip64 extended information extra field does not include compressed size\"));\r\n }\r\n entry.compressedSize = readUInt64LE(zip64EiefBuffer, index);\r\n index += 8;\r\n }\r\n // 16 - Relative Header Offset 8 bytes\r\n if (entry.relativeOffsetOfLocalHeader === 0xffffffff) {\r\n if (index + 8 > zip64EiefBuffer.length) {\r\n return emitErrorAndAutoClose(self, new Error(\"zip64 extended information extra field does not include relative header offset\"));\r\n }\r\n entry.relativeOffsetOfLocalHeader = readUInt64LE(zip64EiefBuffer, index);\r\n index += 8;\r\n }\r\n // 24 - Disk Start Number 4 bytes\r\n }\r\n\r\n // check for Info-ZIP Unicode Path Extra Field (0x7075)\r\n // see https://github.com/thejoshwolfe/yauzl/issues/33\r\n if (self.decodeStrings) {\r\n for (var i = 0; i < entry.extraFields.length; i++) {\r\n var extraField = entry.extraFields[i];\r\n if (extraField.id === 0x7075) {\r\n if (extraField.data.length < 6) {\r\n // too short to be meaningful\r\n continue;\r\n }\r\n // Version 1 byte version of this extra field, currently 1\r\n if (extraField.data.readUInt8(0) !== 1) {\r\n // > Changes may not be backward compatible so this extra\r\n // > field should not be used if the version is not recognized.\r\n continue;\r\n }\r\n // NameCRC32 4 bytes File Name Field CRC32 Checksum\r\n var oldNameCrc32 = extraField.data.readUInt32LE(1);\r\n if (crc32.unsigned(buffer.slice(0, entry.fileNameLength)) !== oldNameCrc32) {\r\n // > If the CRC check fails, this UTF-8 Path Extra Field should be\r\n // > ignored and the File Name field in the header should be used instead.\r\n continue;\r\n }\r\n // UnicodeName Variable UTF-8 version of the entry File Name\r\n entry.fileName = decodeBuffer(extraField.data, 5, extraField.data.length, true);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // validate file size\r\n if (self.validateEntrySizes && entry.compressionMethod === 0) {\r\n var expectedCompressedSize = entry.uncompressedSize;\r\n if (entry.isEncrypted()) {\r\n // traditional encryption prefixes the file data with a header\r\n expectedCompressedSize += 12;\r\n }\r\n if (entry.compressedSize !== expectedCompressedSize) {\r\n var msg = \"compressed/uncompressed size mismatch for stored file: \" + entry.compressedSize + \" != \" + entry.uncompressedSize;\r\n return emitErrorAndAutoClose(self, new Error(msg));\r\n }\r\n }\r\n\r\n if (self.decodeStrings) {\r\n if (!self.strictFileNames) {\r\n // allow backslash\r\n entry.fileName = entry.fileName.replace(/\\\\/g, \"/\");\r\n }\r\n var errorMessage = validateFileName(entry.fileName, self.validateFileNameOptions);\r\n if (errorMessage != null) return emitErrorAndAutoClose(self, new Error(errorMessage));\r\n }\r\n self.emit(\"entry\", entry);\r\n\r\n if (!self.lazyEntries) self._readEntry();\r\n });\r\n });\r\n};\r\n\r\nZipFile.prototype.openReadStream = function(entry, options, callback) {\r\n var self = this;\r\n // parameter validation\r\n var relativeStart = 0;\r\n var relativeEnd = entry.compressedSize;\r\n if (callback == null) {\r\n callback = options;\r\n options = {};\r\n } else {\r\n // validate options that the caller has no excuse to get wrong\r\n if (options.decrypt != null) {\r\n if (!entry.isEncrypted()) {\r\n throw new Error(\"options.decrypt can only be specified for encrypted entries\");\r\n }\r\n if (options.decrypt !== false) throw new Error(\"invalid options.decrypt value: \" + options.decrypt);\r\n if (entry.isCompressed()) {\r\n if (options.decompress !== false) throw new Error(\"entry is encrypted and compressed, and options.decompress !== false\");\r\n }\r\n }\r\n if (options.decompress != null) {\r\n if (!entry.isCompressed()) {\r\n throw new Error(\"options.decompress can only be specified for compressed entries\");\r\n }\r\n if (!(options.decompress === false || options.decompress === true)) {\r\n throw new Error(\"invalid options.decompress value: \" + options.decompress);\r\n }\r\n }\r\n if (options.start != null || options.end != null) {\r\n if (entry.isCompressed() && options.decompress !== false) {\r\n throw new Error(\"start/end range not allowed for compressed entry without options.decompress === false\");\r\n }\r\n if (entry.isEncrypted() && options.decrypt !== false) {\r\n throw new Error(\"start/end range not allowed for encrypted entry without options.decrypt === false\");\r\n }\r\n }\r\n if (options.start != null) {\r\n relativeStart = options.start;\r\n if (relativeStart < 0) throw new Error(\"options.start < 0\");\r\n if (relativeStart > entry.compressedSize) throw new Error(\"options.start > entry.compressedSize\");\r\n }\r\n if (options.end != null) {\r\n relativeEnd = options.end;\r\n if (relativeEnd < 0) throw new Error(\"options.end < 0\");\r\n if (relativeEnd > entry.compressedSize) throw new Error(\"options.end > entry.compressedSize\");\r\n if (relativeEnd < relativeStart) throw new Error(\"options.end < options.start\");\r\n }\r\n }\r\n // any further errors can either be caused by the zipfile,\r\n // or were introduced in a minor version of yauzl,\r\n // so should be passed to the client rather than thrown.\r\n if (!self.isOpen) return callback(new Error(\"closed\"));\r\n if (entry.isEncrypted()) {\r\n if (options.decrypt !== false) return callback(new Error(\"entry is encrypted, and options.decrypt !== false\"));\r\n }\r\n // make sure we don't lose the fd before we open the actual read stream\r\n self.reader.ref();\r\n var buffer = newBuffer(30);\r\n readAndAssertNoEof(self.reader, buffer, 0, buffer.length, entry.relativeOffsetOfLocalHeader, function(err) {\r\n try {\r\n if (err) return callback(err);\r\n // 0 - Local file header signature = 0x04034b50\r\n var signature = buffer.readUInt32LE(0);\r\n if (signature !== 0x04034b50) {\r\n return callback(new Error(\"invalid local file header signature: 0x\" + signature.toString(16)));\r\n }\r\n // all this should be redundant\r\n // 4 - Version needed to extract (minimum)\r\n // 6 - General purpose bit flag\r\n // 8 - Compression method\r\n // 10 - File last modification time\r\n // 12 - File last modification date\r\n // 14 - CRC-32\r\n // 18 - Compressed size\r\n // 22 - Uncompressed size\r\n // 26 - File name length (n)\r\n var fileNameLength = buffer.readUInt16LE(26);\r\n // 28 - Extra field length (m)\r\n var extraFieldLength = buffer.readUInt16LE(28);\r\n // 30 - File name\r\n // 30+n - Extra field\r\n var localFileHeaderEnd = entry.relativeOffsetOfLocalHeader + buffer.length + fileNameLength + extraFieldLength;\r\n var decompress;\r\n if (entry.compressionMethod === 0) {\r\n // 0 - The file is stored (no compression)\r\n decompress = false;\r\n } else if (entry.compressionMethod === 8) {\r\n // 8 - The file is Deflated\r\n decompress = options.decompress != null ? options.decompress : true;\r\n } else {\r\n return callback(new Error(\"unsupported compression method: \" + entry.compressionMethod));\r\n }\r\n var fileDataStart = localFileHeaderEnd;\r\n var fileDataEnd = fileDataStart + entry.compressedSize;\r\n if (entry.compressedSize !== 0) {\r\n // bounds check now, because the read streams will probably not complain loud enough.\r\n // since we're dealing with an unsigned offset plus an unsigned size,\r\n // we only have 1 thing to check for.\r\n if (fileDataEnd > self.fileSize) {\r\n return callback(new Error(\"file data overflows file bounds: \" +\r\n fileDataStart + \" + \" + entry.compressedSize + \" > \" + self.fileSize));\r\n }\r\n }\r\n var readStream = self.reader.createReadStream({\r\n start: fileDataStart + relativeStart,\r\n end: fileDataStart + relativeEnd,\r\n });\r\n var endpointStream = readStream;\r\n if (decompress) {\r\n var destroyed = false;\r\n var inflateFilter = zlib.createInflateRaw();\r\n readStream.on(\"error\", function(err) {\r\n // setImmediate here because errors can be emitted during the first call to pipe()\r\n setImmediate(function() {\r\n if (!destroyed) inflateFilter.emit(\"error\", err);\r\n });\r\n });\r\n readStream.pipe(inflateFilter);\r\n\r\n if (self.validateEntrySizes) {\r\n endpointStream = new AssertByteCountStream(entry.uncompressedSize);\r\n inflateFilter.on(\"error\", function(err) {\r\n // forward zlib errors to the client-visible stream\r\n setImmediate(function() {\r\n if (!destroyed) endpointStream.emit(\"error\", err);\r\n });\r\n });\r\n inflateFilter.pipe(endpointStream);\r\n } else {\r\n // the zlib filter is the client-visible stream\r\n endpointStream = inflateFilter;\r\n }\r\n // this is part of yauzl's API, so implement this function on the client-visible stream\r\n endpointStream.destroy = function() {\r\n destroyed = true;\r\n if (inflateFilter !== endpointStream) inflateFilter.unpipe(endpointStream);\r\n readStream.unpipe(inflateFilter);\r\n // TODO: the inflateFilter may cause a memory leak. see Issue #27.\r\n readStream.destroy();\r\n };\r\n }\r\n callback(null, endpointStream);\r\n } finally {\r\n self.reader.unref();\r\n }\r\n });\r\n};\r\n\r\nfunction Entry() {\r\n}\r\nEntry.prototype.getLastModDate = function() {\r\n return dosDateTimeToDate(this.lastModFileDate, this.lastModFileTime);\r\n};\r\nEntry.prototype.isEncrypted = function() {\r\n return (this.generalPurposeBitFlag & 0x1) !== 0;\r\n};\r\nEntry.prototype.isCompressed = function() {\r\n return this.compressionMethod === 8;\r\n};\r\n\r\nfunction dosDateTimeToDate(date, time) {\r\n var day = date & 0x1f; // 1-31\r\n var month = (date >> 5 & 0xf) - 1; // 1-12, 0-11\r\n var year = (date >> 9 & 0x7f) + 1980; // 0-128, 1980-2108\r\n\r\n var millisecond = 0;\r\n var second = (time & 0x1f) * 2; // 0-29, 0-58 (even numbers)\r\n var minute = time >> 5 & 0x3f; // 0-59\r\n var hour = time >> 11 & 0x1f; // 0-23\r\n\r\n return new Date(year, month, day, hour, minute, second, millisecond);\r\n}\r\n\r\nfunction validateFileName(fileName) {\r\n if (fileName.indexOf(\"\\\\\") !== -1) {\r\n return \"invalid characters in fileName: \" + fileName;\r\n }\r\n if (/^[a-zA-Z]:/.test(fileName) || /^\\//.test(fileName)) {\r\n return \"absolute path: \" + fileName;\r\n }\r\n if (fileName.split(\"/\").indexOf(\"..\") !== -1) {\r\n return \"invalid relative path: \" + fileName;\r\n }\r\n // all good\r\n return null;\r\n}\r\n\r\nfunction readAndAssertNoEof(reader, buffer, offset, length, position, callback) {\r\n if (length === 0) {\r\n // fs.read will throw an out-of-bounds error if you try to read 0 bytes from a 0 byte file\r\n return setImmediate(function() { callback(null, newBuffer(0)); });\r\n }\r\n reader.read(buffer, offset, length, position, function(err, bytesRead) {\r\n if (err) return callback(err);\r\n if (bytesRead < length) {\r\n return callback(new Error(\"unexpected EOF\"));\r\n }\r\n callback();\r\n });\r\n}\r\n\r\nutil.inherits(AssertByteCountStream, Transform);\r\nfunction AssertByteCountStream(byteCount) {\r\n Transform.call(this);\r\n this.actualByteCount = 0;\r\n this.expectedByteCount = byteCount;\r\n}\r\nAssertByteCountStream.prototype._transform = function(chunk, encoding, cb) {\r\n this.actualByteCount += chunk.length;\r\n if (this.actualByteCount > this.expectedByteCount) {\r\n var msg = \"too many bytes in the stream. expected \" + this.expectedByteCount + \". got at least \" + this.actualByteCount;\r\n return cb(new Error(msg));\r\n }\r\n cb(null, chunk);\r\n};\r\nAssertByteCountStream.prototype._flush = function(cb) {\r\n if (this.actualByteCount < this.expectedByteCount) {\r\n var msg = \"not enough bytes in the stream. expected \" + this.expectedByteCount + \". got only \" + this.actualByteCount;\r\n return cb(new Error(msg));\r\n }\r\n cb();\r\n};\r\n\r\nutil.inherits(RandomAccessReader, EventEmitter);\r\nfunction RandomAccessReader() {\r\n EventEmitter.call(this);\r\n this.refCount = 0;\r\n}\r\nRandomAccessReader.prototype.ref = function() {\r\n this.refCount += 1;\r\n};\r\nRandomAccessReader.prototype.unref = function() {\r\n var self = this;\r\n self.refCount -= 1;\r\n\r\n if (self.refCount > 0) return;\r\n if (self.refCount < 0) throw new Error(\"invalid unref\");\r\n\r\n self.close(onCloseDone);\r\n\r\n function onCloseDone(err) {\r\n if (err) return self.emit('error', err);\r\n self.emit('close');\r\n }\r\n};\r\nRandomAccessReader.prototype.createReadStream = function(options) {\r\n var start = options.start;\r\n var end = options.end;\r\n if (start === end) {\r\n var emptyStream = new PassThrough();\r\n setImmediate(function() {\r\n emptyStream.end();\r\n });\r\n return emptyStream;\r\n }\r\n var stream = this._readStreamForRange(start, end);\r\n\r\n var destroyed = false;\r\n var refUnrefFilter = new RefUnrefFilter(this);\r\n stream.on(\"error\", function(err) {\r\n setImmediate(function() {\r\n if (!destroyed) refUnrefFilter.emit(\"error\", err);\r\n });\r\n });\r\n refUnrefFilter.destroy = function() {\r\n stream.unpipe(refUnrefFilter);\r\n refUnrefFilter.unref();\r\n stream.destroy();\r\n };\r\n\r\n var byteCounter = new AssertByteCountStream(end - start);\r\n refUnrefFilter.on(\"error\", function(err) {\r\n setImmediate(function() {\r\n if (!destroyed) byteCounter.emit(\"error\", err);\r\n });\r\n });\r\n byteCounter.destroy = function() {\r\n destroyed = true;\r\n refUnrefFilter.unpipe(byteCounter);\r\n refUnrefFilter.destroy();\r\n };\r\n\r\n return stream.pipe(refUnrefFilter).pipe(byteCounter);\r\n};\r\nRandomAccessReader.prototype._readStreamForRange = function(start, end) {\r\n throw new Error(\"not implemented\");\r\n};\r\nRandomAccessReader.prototype.read = function(buffer, offset, length, position, callback) {\r\n var readStream = this.createReadStream({start: position, end: position + length});\r\n var writeStream = new Writable();\r\n var written = 0;\r\n writeStream._write = function(chunk, encoding, cb) {\r\n chunk.copy(buffer, offset + written, 0, chunk.length);\r\n written += chunk.length;\r\n cb();\r\n };\r\n writeStream.on(\"finish\", callback);\r\n readStream.on(\"error\", function(error) {\r\n callback(error);\r\n });\r\n readStream.pipe(writeStream);\r\n};\r\nRandomAccessReader.prototype.close = function(callback) {\r\n setImmediate(callback);\r\n};\r\n\r\nutil.inherits(RefUnrefFilter, PassThrough);\r\nfunction RefUnrefFilter(context) {\r\n PassThrough.call(this);\r\n this.context = context;\r\n this.context.ref();\r\n this.unreffedYet = false;\r\n}\r\nRefUnrefFilter.prototype._flush = function(cb) {\r\n this.unref();\r\n cb();\r\n};\r\nRefUnrefFilter.prototype.unref = function(cb) {\r\n if (this.unreffedYet) return;\r\n this.unreffedYet = true;\r\n this.context.unref();\r\n};\r\n\r\nvar cp437 = '\\u0000☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&\\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ';\r\nfunction decodeBuffer(buffer, start, end, isUtf8) {\r\n if (isUtf8) {\r\n return buffer.toString(\"utf8\", start, end);\r\n } else {\r\n var result = \"\";\r\n for (var i = start; i < end; i++) {\r\n result += cp437[buffer[i]];\r\n }\r\n return result;\r\n }\r\n}\r\n\r\nfunction readUInt64LE(buffer, offset) {\r\n // there is no native function for this, because we can't actually store 64-bit integers precisely.\r\n // after 53 bits, JavaScript's Number type (IEEE 754 double) can't store individual integers anymore.\r\n // but since 53 bits is a whole lot more than 32 bits, we do our best anyway.\r\n var lower32 = buffer.readUInt32LE(offset);\r\n var upper32 = buffer.readUInt32LE(offset + 4);\r\n // we can't use bitshifting here, because JavaScript bitshifting only works on 32-bit integers.\r\n return upper32 * 0x100000000 + lower32;\r\n // as long as we're bounds checking the result of this function against the total file size,\r\n // we'll catch any overflow errors, because we already made sure the total file size was within reason.\r\n}\r\n\r\n// Node 10 deprecated new Buffer().\r\nvar newBuffer;\r\nif (typeof Buffer.allocUnsafe === \"function\") {\r\n newBuffer = function(len) {\r\n return Buffer.allocUnsafe(len);\r\n };\r\n} else {\r\n newBuffer = function(len) {\r\n return new Buffer(len);\r\n };\r\n}\r\n\r\nfunction defaultCallback(err) {\r\n if (err) throw err;\r\n}\r\n","module.exports = require(\"vscode\");","module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"child_process\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs/promises\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:path\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:process\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:events\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:stream\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:stream/promises\");","import {on, once} from 'node:events';\r\nimport {PassThrough as PassThroughStream} from 'node:stream';\r\nimport {finished} from 'node:stream/promises';\r\n\r\nexport default function mergeStreams(streams) {\r\n\tif (!Array.isArray(streams)) {\r\n\t\tthrow new TypeError(`Expected an array, got \\`${typeof streams}\\`.`);\r\n\t}\r\n\r\n\tfor (const stream of streams) {\r\n\t\tvalidateStream(stream);\r\n\t}\r\n\r\n\tconst objectMode = streams.some(({readableObjectMode}) => readableObjectMode);\r\n\tconst highWaterMark = getHighWaterMark(streams, objectMode);\r\n\tconst passThroughStream = new MergedStream({\r\n\t\tobjectMode,\r\n\t\twritableHighWaterMark: highWaterMark,\r\n\t\treadableHighWaterMark: highWaterMark,\r\n\t});\r\n\r\n\tfor (const stream of streams) {\r\n\t\tpassThroughStream.add(stream);\r\n\t}\r\n\r\n\tif (streams.length === 0) {\r\n\t\tendStream(passThroughStream);\r\n\t}\r\n\r\n\treturn passThroughStream;\r\n}\r\n\r\nconst getHighWaterMark = (streams, objectMode) => {\r\n\tif (streams.length === 0) {\r\n\t\t// @todo Use `node:stream` `getDefaultHighWaterMark(objectMode)` in next major release\r\n\t\treturn 16_384;\r\n\t}\r\n\r\n\tconst highWaterMarks = streams\r\n\t\t.filter(({readableObjectMode}) => readableObjectMode === objectMode)\r\n\t\t.map(({readableHighWaterMark}) => readableHighWaterMark);\r\n\treturn Math.max(...highWaterMarks);\r\n};\r\n\r\nclass MergedStream extends PassThroughStream {\r\n\t#streams = new Set([]);\r\n\t#ended = new Set([]);\r\n\t#aborted = new Set([]);\r\n\t#onFinished;\r\n\r\n\tadd(stream) {\r\n\t\tvalidateStream(stream);\r\n\r\n\t\tif (this.#streams.has(stream)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.#streams.add(stream);\r\n\r\n\t\tthis.#onFinished ??= onMergedStreamFinished(this, this.#streams);\r\n\t\tendWhenStreamsDone({\r\n\t\t\tpassThroughStream: this,\r\n\t\t\tstream,\r\n\t\t\tstreams: this.#streams,\r\n\t\t\tended: this.#ended,\r\n\t\t\taborted: this.#aborted,\r\n\t\t\tonFinished: this.#onFinished,\r\n\t\t});\r\n\r\n\t\tstream.pipe(this, {end: false});\r\n\t}\r\n\r\n\tremove(stream) {\r\n\t\tvalidateStream(stream);\r\n\r\n\t\tif (!this.#streams.has(stream)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tstream.unpipe(this);\r\n\t\treturn true;\r\n\t}\r\n}\r\n\r\nconst onMergedStreamFinished = async (passThroughStream, streams) => {\r\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_COUNT);\r\n\tconst controller = new AbortController();\r\n\r\n\ttry {\r\n\t\tawait Promise.race([\r\n\t\t\tonMergedStreamEnd(passThroughStream, controller),\r\n\t\t\tonInputStreamsUnpipe(passThroughStream, streams, controller),\r\n\t\t]);\r\n\t} finally {\r\n\t\tcontroller.abort();\r\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_COUNT);\r\n\t}\r\n};\r\n\r\nconst onMergedStreamEnd = async (passThroughStream, {signal}) => {\r\n\tawait finished(passThroughStream, {signal, cleanup: true});\r\n};\r\n\r\nconst onInputStreamsUnpipe = async (passThroughStream, streams, {signal}) => {\r\n\tfor await (const [unpipedStream] of on(passThroughStream, 'unpipe', {signal})) {\r\n\t\tif (streams.has(unpipedStream)) {\r\n\t\t\tunpipedStream.emit(unpipeEvent);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst validateStream = stream => {\r\n\tif (typeof stream?.pipe !== 'function') {\r\n\t\tthrow new TypeError(`Expected a readable stream, got: \\`${typeof stream}\\`.`);\r\n\t}\r\n};\r\n\r\nconst endWhenStreamsDone = async ({passThroughStream, stream, streams, ended, aborted, onFinished}) => {\r\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_PER_STREAM);\r\n\tconst controller = new AbortController();\r\n\r\n\ttry {\r\n\t\tawait Promise.race([\r\n\t\t\tafterMergedStreamFinished(onFinished, stream),\r\n\t\t\tonInputStreamEnd({passThroughStream, stream, streams, ended, aborted, controller}),\r\n\t\t\tonInputStreamUnpipe({stream, streams, ended, aborted, controller}),\r\n\t\t]);\r\n\t} finally {\r\n\t\tcontroller.abort();\r\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_PER_STREAM);\r\n\t}\r\n\r\n\tif (streams.size === ended.size + aborted.size) {\r\n\t\tif (ended.size === 0 && aborted.size > 0) {\r\n\t\t\tabortStream(passThroughStream);\r\n\t\t} else {\r\n\t\t\tendStream(passThroughStream);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// This is the error thrown by `finished()` on `stream.destroy()`\r\nconst isAbortError = error => error?.code === 'ERR_STREAM_PREMATURE_CLOSE';\r\n\r\nconst afterMergedStreamFinished = async (onFinished, stream) => {\r\n\ttry {\r\n\t\tawait onFinished;\r\n\t\tabortStream(stream);\r\n\t} catch (error) {\r\n\t\tif (isAbortError(error)) {\r\n\t\t\tabortStream(stream);\r\n\t\t} else {\r\n\t\t\terrorStream(stream, error);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst onInputStreamEnd = async ({passThroughStream, stream, streams, ended, aborted, controller: {signal}}) => {\r\n\ttry {\r\n\t\tawait finished(stream, {signal, cleanup: true, readable: true, writable: false});\r\n\t\tif (streams.has(stream)) {\r\n\t\t\tended.add(stream);\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tif (signal.aborted || !streams.has(stream)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (isAbortError(error)) {\r\n\t\t\taborted.add(stream);\r\n\t\t} else {\r\n\t\t\terrorStream(passThroughStream, error);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst onInputStreamUnpipe = async ({stream, streams, ended, aborted, controller: {signal}}) => {\r\n\tawait once(stream, unpipeEvent, {signal});\r\n\tstreams.delete(stream);\r\n\tended.delete(stream);\r\n\taborted.delete(stream);\r\n};\r\n\r\nconst unpipeEvent = Symbol('unpipe');\r\n\r\nconst endStream = stream => {\r\n\tif (stream.writable) {\r\n\t\tstream.end();\r\n\t}\r\n};\r\n\r\nconst abortStream = stream => {\r\n\tif (stream.readable || stream.writable) {\r\n\t\tstream.destroy();\r\n\t}\r\n};\r\n\r\n// `stream.destroy(error)` crashes the process with `uncaughtException` if no `error` event listener exists on `stream`.\r\n// We take care of error handling on user behalf, so we do not want this to happen.\r\nconst errorStream = (stream, error) => {\r\n\tif (!stream.destroyed) {\r\n\t\tstream.once('error', noop);\r\n\t\tstream.destroy(error);\r\n\t}\r\n};\r\n\r\nconst noop = () => {};\r\n\r\nconst updateMaxListeners = (passThroughStream, increment) => {\r\n\tconst maxListeners = passThroughStream.getMaxListeners();\r\n\tif (maxListeners !== 0 && maxListeners !== Number.POSITIVE_INFINITY) {\r\n\t\tpassThroughStream.setMaxListeners(maxListeners + increment);\r\n\t}\r\n};\r\n\r\n// Number of times `passThroughStream.on()` is called regardless of streams:\r\n// - once due to `finished(passThroughStream)`\r\n// - once due to `on(passThroughStream)`\r\nconst PASSTHROUGH_LISTENERS_COUNT = 2;\r\n\r\n// Number of times `passThroughStream.on()` is called per stream:\r\n// - once due to `stream.pipe(passThroughStream)`\r\nconst PASSTHROUGH_LISTENERS_PER_STREAM = 1;\r\n","import fs from 'node:fs';\r\nimport fsPromises from 'node:fs/promises';\r\n\r\nasync function isType(fsStatType, statsMethodName, filePath) {\r\n\tif (typeof filePath !== 'string') {\r\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst stats = await fsPromises[fsStatType](filePath);\r\n\t\treturn stats[statsMethodName]();\r\n\t} catch (error) {\r\n\t\tif (error.code === 'ENOENT') {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\nfunction isTypeSync(fsStatType, statsMethodName, filePath) {\r\n\tif (typeof filePath !== 'string') {\r\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\r\n\t}\r\n\r\n\ttry {\r\n\t\treturn fs[fsStatType](filePath)[statsMethodName]();\r\n\t} catch (error) {\r\n\t\tif (error.code === 'ENOENT') {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\nexport const isFile = isType.bind(undefined, 'stat', 'isFile');\r\nexport const isDirectory = isType.bind(undefined, 'stat', 'isDirectory');\r\nexport const isSymlink = isType.bind(undefined, 'lstat', 'isSymbolicLink');\r\nexport const isFileSync = isTypeSync.bind(undefined, 'statSync', 'isFile');\r\nexport const isDirectorySync = isTypeSync.bind(undefined, 'statSync', 'isDirectory');\r\nexport const isSymlinkSync = isTypeSync.bind(undefined, 'lstatSync', 'isSymbolicLink');\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:util\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:child_process\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:url\");","import {promisify} from 'node:util';\r\nimport {execFile as execFileCallback, execFileSync as execFileSyncOriginal} from 'node:child_process';\r\nimport path from 'node:path';\r\nimport {fileURLToPath} from 'node:url';\r\n\r\nconst execFileOriginal = promisify(execFileCallback);\r\n\r\nexport function toPath(urlOrPath) {\r\n\treturn urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\r\n}\r\n\r\nexport function rootDirectory(pathInput) {\r\n\treturn path.parse(toPath(pathInput)).root;\r\n}\r\n\r\nexport function traversePathUp(startPath) {\r\n\treturn {\r\n\t\t* [Symbol.iterator]() {\r\n\t\t\tlet currentPath = path.resolve(toPath(startPath));\r\n\t\t\tlet previousPath;\r\n\r\n\t\t\twhile (previousPath !== currentPath) {\r\n\t\t\t\tyield currentPath;\r\n\t\t\t\tpreviousPath = currentPath;\r\n\t\t\t\tcurrentPath = path.resolve(currentPath, '..');\r\n\t\t\t}\r\n\t\t},\r\n\t};\r\n}\r\n\r\nconst TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;\r\n\r\nexport async function execFile(file, arguments_, options = {}) {\r\n\treturn execFileOriginal(file, arguments_, {\r\n\t\tmaxBuffer: TEN_MEGABYTES_IN_BYTES,\r\n\t\t...options,\r\n\t});\r\n}\r\n\r\nexport function execFileSync(file, arguments_ = [], options = {}) {\r\n\treturn execFileSyncOriginal(file, arguments_, {\r\n\t\tmaxBuffer: TEN_MEGABYTES_IN_BYTES,\r\n\t\tencoding: 'utf8',\r\n\t\tstdio: 'pipe',\r\n\t\t...options,\r\n\t});\r\n}\r\n\r\nexport * from './default.js';\r\n","export default function slash(path) {\r\n\tconst isExtendedLengthPath = path.startsWith('\\\\\\\\?\\\\');\r\n\r\n\tif (isExtendedLengthPath) {\r\n\t\treturn path;\r\n\t}\r\n\r\n\treturn path.replace(/\\\\/g, '/');\r\n}\r\n","export const isNegativePattern = pattern => pattern[0] === '!';\r\n","import process from 'node:process';\r\nimport fs from 'node:fs';\r\nimport fsPromises from 'node:fs/promises';\r\nimport path from 'node:path';\r\nimport fastGlob from 'fast-glob';\r\nimport gitIgnore from 'ignore';\r\nimport slash from 'slash';\r\nimport {toPath} from 'unicorn-magic';\r\nimport {isNegativePattern} from './utilities.js';\r\n\r\nconst defaultIgnoredDirectories = [\r\n\t'**/node_modules',\r\n\t'**/flow-typed',\r\n\t'**/coverage',\r\n\t'**/.git',\r\n];\r\nconst ignoreFilesGlobOptions = {\r\n\tabsolute: true,\r\n\tdot: true,\r\n};\r\n\r\nexport const GITIGNORE_FILES_PATTERN = '**/.gitignore';\r\n\r\nconst applyBaseToPattern = (pattern, base) => isNegativePattern(pattern)\r\n\t? '!' + path.posix.join(base, pattern.slice(1))\r\n\t: path.posix.join(base, pattern);\r\n\r\nconst parseIgnoreFile = (file, cwd) => {\r\n\tconst base = slash(path.relative(cwd, path.dirname(file.filePath)));\r\n\r\n\treturn file.content\r\n\t\t.split(/\\r?\\n/)\r\n\t\t.filter(line => line && !line.startsWith('#'))\r\n\t\t.map(pattern => applyBaseToPattern(pattern, base));\r\n};\r\n\r\nconst toRelativePath = (fileOrDirectory, cwd) => {\r\n\tcwd = slash(cwd);\r\n\tif (path.isAbsolute(fileOrDirectory)) {\r\n\t\tif (slash(fileOrDirectory).startsWith(cwd)) {\r\n\t\t\treturn path.relative(cwd, fileOrDirectory);\r\n\t\t}\r\n\r\n\t\tthrow new Error(`Path ${fileOrDirectory} is not in cwd ${cwd}`);\r\n\t}\r\n\r\n\treturn fileOrDirectory;\r\n};\r\n\r\nconst getIsIgnoredPredicate = (files, cwd) => {\r\n\tconst patterns = files.flatMap(file => parseIgnoreFile(file, cwd));\r\n\tconst ignores = gitIgnore().add(patterns);\r\n\r\n\treturn fileOrDirectory => {\r\n\t\tfileOrDirectory = toPath(fileOrDirectory);\r\n\t\tfileOrDirectory = toRelativePath(fileOrDirectory, cwd);\r\n\t\treturn fileOrDirectory ? ignores.ignores(slash(fileOrDirectory)) : false;\r\n\t};\r\n};\r\n\r\nconst normalizeOptions = (options = {}) => ({\r\n\tcwd: toPath(options.cwd) ?? process.cwd(),\r\n\tsuppressErrors: Boolean(options.suppressErrors),\r\n\tdeep: typeof options.deep === 'number' ? options.deep : Number.POSITIVE_INFINITY,\r\n\tignore: [...options.ignore ?? [], ...defaultIgnoredDirectories],\r\n});\r\n\r\nexport const isIgnoredByIgnoreFiles = async (patterns, options) => {\r\n\tconst {cwd, suppressErrors, deep, ignore} = normalizeOptions(options);\r\n\r\n\tconst paths = await fastGlob(patterns, {\r\n\t\tcwd,\r\n\t\tsuppressErrors,\r\n\t\tdeep,\r\n\t\tignore,\r\n\t\t...ignoreFilesGlobOptions,\r\n\t});\r\n\r\n\tconst files = await Promise.all(\r\n\t\tpaths.map(async filePath => ({\r\n\t\t\tfilePath,\r\n\t\t\tcontent: await fsPromises.readFile(filePath, 'utf8'),\r\n\t\t})),\r\n\t);\r\n\r\n\treturn getIsIgnoredPredicate(files, cwd);\r\n};\r\n\r\nexport const isIgnoredByIgnoreFilesSync = (patterns, options) => {\r\n\tconst {cwd, suppressErrors, deep, ignore} = normalizeOptions(options);\r\n\r\n\tconst paths = fastGlob.sync(patterns, {\r\n\t\tcwd,\r\n\t\tsuppressErrors,\r\n\t\tdeep,\r\n\t\tignore,\r\n\t\t...ignoreFilesGlobOptions,\r\n\t});\r\n\r\n\tconst files = paths.map(filePath => ({\r\n\t\tfilePath,\r\n\t\tcontent: fs.readFileSync(filePath, 'utf8'),\r\n\t}));\r\n\r\n\treturn getIsIgnoredPredicate(files, cwd);\r\n};\r\n\r\nexport const isGitIgnored = options => isIgnoredByIgnoreFiles(GITIGNORE_FILES_PATTERN, options);\r\nexport const isGitIgnoredSync = options => isIgnoredByIgnoreFilesSync(GITIGNORE_FILES_PATTERN, options);\r\n","import process from 'node:process';\r\nimport fs from 'node:fs';\r\nimport nodePath from 'node:path';\r\nimport mergeStreams from '@sindresorhus/merge-streams';\r\nimport fastGlob from 'fast-glob';\r\nimport {isDirectory, isDirectorySync} from 'path-type';\r\nimport {toPath} from 'unicorn-magic';\r\nimport {\r\n\tGITIGNORE_FILES_PATTERN,\r\n\tisIgnoredByIgnoreFiles,\r\n\tisIgnoredByIgnoreFilesSync,\r\n} from './ignore.js';\r\nimport {isNegativePattern} from './utilities.js';\r\n\r\nconst assertPatternsInput = patterns => {\r\n\tif (patterns.some(pattern => typeof pattern !== 'string')) {\r\n\t\tthrow new TypeError('Patterns must be a string or an array of strings');\r\n\t}\r\n};\r\n\r\nconst normalizePathForDirectoryGlob = (filePath, cwd) => {\r\n\tconst path = isNegativePattern(filePath) ? filePath.slice(1) : filePath;\r\n\treturn nodePath.isAbsolute(path) ? path : nodePath.join(cwd, path);\r\n};\r\n\r\nconst getDirectoryGlob = ({directoryPath, files, extensions}) => {\r\n\tconst extensionGlob = extensions?.length > 0 ? `.${extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]}` : '';\r\n\treturn files\r\n\t\t? files.map(file => nodePath.posix.join(directoryPath, `**/${nodePath.extname(file) ? file : `${file}${extensionGlob}`}`))\r\n\t\t: [nodePath.posix.join(directoryPath, `**${extensionGlob ? `/*${extensionGlob}` : ''}`)];\r\n};\r\n\r\nconst directoryToGlob = async (directoryPaths, {\r\n\tcwd = process.cwd(),\r\n\tfiles,\r\n\textensions,\r\n} = {}) => {\r\n\tconst globs = await Promise.all(directoryPaths.map(async directoryPath =>\r\n\t\t(await isDirectory(normalizePathForDirectoryGlob(directoryPath, cwd))) ? getDirectoryGlob({directoryPath, files, extensions}) : directoryPath),\r\n\t);\r\n\r\n\treturn globs.flat();\r\n};\r\n\r\nconst directoryToGlobSync = (directoryPaths, {\r\n\tcwd = process.cwd(),\r\n\tfiles,\r\n\textensions,\r\n} = {}) => directoryPaths.flatMap(directoryPath => isDirectorySync(normalizePathForDirectoryGlob(directoryPath, cwd)) ? getDirectoryGlob({directoryPath, files, extensions}) : directoryPath);\r\n\r\nconst toPatternsArray = patterns => {\r\n\tpatterns = [...new Set([patterns].flat())];\r\n\tassertPatternsInput(patterns);\r\n\treturn patterns;\r\n};\r\n\r\nconst checkCwdOption = cwd => {\r\n\tif (!cwd) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet stat;\r\n\ttry {\r\n\t\tstat = fs.statSync(cwd);\r\n\t} catch {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!stat.isDirectory()) {\r\n\t\tthrow new Error('The `cwd` option must be a path to a directory');\r\n\t}\r\n};\r\n\r\nconst normalizeOptions = (options = {}) => {\r\n\toptions = {\r\n\t\t...options,\r\n\t\tignore: options.ignore ?? [],\r\n\t\texpandDirectories: options.expandDirectories ?? true,\r\n\t\tcwd: toPath(options.cwd),\r\n\t};\r\n\r\n\tcheckCwdOption(options.cwd);\r\n\r\n\treturn options;\r\n};\r\n\r\nconst normalizeArguments = function_ => async (patterns, options) => function_(toPatternsArray(patterns), normalizeOptions(options));\r\nconst normalizeArgumentsSync = function_ => (patterns, options) => function_(toPatternsArray(patterns), normalizeOptions(options));\r\n\r\nconst getIgnoreFilesPatterns = options => {\r\n\tconst {ignoreFiles, gitignore} = options;\r\n\r\n\tconst patterns = ignoreFiles ? toPatternsArray(ignoreFiles) : [];\r\n\tif (gitignore) {\r\n\t\tpatterns.push(GITIGNORE_FILES_PATTERN);\r\n\t}\r\n\r\n\treturn patterns;\r\n};\r\n\r\nconst getFilter = async options => {\r\n\tconst ignoreFilesPatterns = getIgnoreFilesPatterns(options);\r\n\treturn createFilterFunction(\r\n\t\tignoreFilesPatterns.length > 0 && await isIgnoredByIgnoreFiles(ignoreFilesPatterns, options),\r\n\t);\r\n};\r\n\r\nconst getFilterSync = options => {\r\n\tconst ignoreFilesPatterns = getIgnoreFilesPatterns(options);\r\n\treturn createFilterFunction(\r\n\t\tignoreFilesPatterns.length > 0 && isIgnoredByIgnoreFilesSync(ignoreFilesPatterns, options),\r\n\t);\r\n};\r\n\r\nconst createFilterFunction = isIgnored => {\r\n\tconst seen = new Set();\r\n\r\n\treturn fastGlobResult => {\r\n\t\tconst pathKey = nodePath.normalize(fastGlobResult.path ?? fastGlobResult);\r\n\r\n\t\tif (seen.has(pathKey) || (isIgnored && isIgnored(pathKey))) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tseen.add(pathKey);\r\n\r\n\t\treturn true;\r\n\t};\r\n};\r\n\r\nconst unionFastGlobResults = (results, filter) => results.flat().filter(fastGlobResult => filter(fastGlobResult));\r\n\r\nconst convertNegativePatterns = (patterns, options) => {\r\n\tconst tasks = [];\r\n\r\n\twhile (patterns.length > 0) {\r\n\t\tconst index = patterns.findIndex(pattern => isNegativePattern(pattern));\r\n\r\n\t\tif (index === -1) {\r\n\t\t\ttasks.push({patterns, options});\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tconst ignorePattern = patterns[index].slice(1);\r\n\r\n\t\tfor (const task of tasks) {\r\n\t\t\ttask.options.ignore.push(ignorePattern);\r\n\t\t}\r\n\r\n\t\tif (index !== 0) {\r\n\t\t\ttasks.push({\r\n\t\t\t\tpatterns: patterns.slice(0, index),\r\n\t\t\t\toptions: {\r\n\t\t\t\t\t...options,\r\n\t\t\t\t\tignore: [\r\n\t\t\t\t\t\t...options.ignore,\r\n\t\t\t\t\t\tignorePattern,\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpatterns = patterns.slice(index + 1);\r\n\t}\r\n\r\n\treturn tasks;\r\n};\r\n\r\nconst normalizeExpandDirectoriesOption = (options, cwd) => ({\r\n\t...(cwd ? {cwd} : {}),\r\n\t...(Array.isArray(options) ? {files: options} : options),\r\n});\r\n\r\nconst generateTasks = async (patterns, options) => {\r\n\tconst globTasks = convertNegativePatterns(patterns, options);\r\n\r\n\tconst {cwd, expandDirectories} = options;\r\n\r\n\tif (!expandDirectories) {\r\n\t\treturn globTasks;\r\n\t}\r\n\r\n\tconst directoryToGlobOptions = normalizeExpandDirectoriesOption(expandDirectories, cwd);\r\n\r\n\treturn Promise.all(\r\n\t\tglobTasks.map(async task => {\r\n\t\t\tlet {patterns, options} = task;\r\n\r\n\t\t\t[\r\n\t\t\t\tpatterns,\r\n\t\t\t\toptions.ignore,\r\n\t\t\t] = await Promise.all([\r\n\t\t\t\tdirectoryToGlob(patterns, directoryToGlobOptions),\r\n\t\t\t\tdirectoryToGlob(options.ignore, {cwd}),\r\n\t\t\t]);\r\n\r\n\t\t\treturn {patterns, options};\r\n\t\t}),\r\n\t);\r\n};\r\n\r\nconst generateTasksSync = (patterns, options) => {\r\n\tconst globTasks = convertNegativePatterns(patterns, options);\r\n\tconst {cwd, expandDirectories} = options;\r\n\r\n\tif (!expandDirectories) {\r\n\t\treturn globTasks;\r\n\t}\r\n\r\n\tconst directoryToGlobSyncOptions = normalizeExpandDirectoriesOption(expandDirectories, cwd);\r\n\r\n\treturn globTasks.map(task => {\r\n\t\tlet {patterns, options} = task;\r\n\t\tpatterns = directoryToGlobSync(patterns, directoryToGlobSyncOptions);\r\n\t\toptions.ignore = directoryToGlobSync(options.ignore, {cwd});\r\n\t\treturn {patterns, options};\r\n\t});\r\n};\r\n\r\nexport const globby = normalizeArguments(async (patterns, options) => {\r\n\tconst [\r\n\t\ttasks,\r\n\t\tfilter,\r\n\t] = await Promise.all([\r\n\t\tgenerateTasks(patterns, options),\r\n\t\tgetFilter(options),\r\n\t]);\r\n\r\n\tconst results = await Promise.all(tasks.map(task => fastGlob(task.patterns, task.options)));\r\n\treturn unionFastGlobResults(results, filter);\r\n});\r\n\r\nexport const globbySync = normalizeArgumentsSync((patterns, options) => {\r\n\tconst tasks = generateTasksSync(patterns, options);\r\n\tconst filter = getFilterSync(options);\r\n\tconst results = tasks.map(task => fastGlob.sync(task.patterns, task.options));\r\n\treturn unionFastGlobResults(results, filter);\r\n});\r\n\r\nexport const globbyStream = normalizeArgumentsSync((patterns, options) => {\r\n\tconst tasks = generateTasksSync(patterns, options);\r\n\tconst filter = getFilterSync(options);\r\n\tconst streams = tasks.map(task => fastGlob.stream(task.patterns, task.options));\r\n\tconst stream = mergeStreams(streams).filter(fastGlobResult => filter(fastGlobResult));\r\n\r\n\t// TODO: Make it return a web stream at some point.\r\n\t// return Readable.toWeb(stream);\r\n\r\n\treturn stream;\r\n});\r\n\r\nexport const isDynamicPattern = normalizeArgumentsSync(\r\n\t(patterns, options) => patterns.some(pattern => fastGlob.isDynamicPattern(pattern, options)),\r\n);\r\n\r\nexport const generateGlobTasks = normalizeArguments(generateTasks);\r\nexport const generateGlobTasksSync = normalizeArgumentsSync(generateTasksSync);\r\n\r\nexport {\r\n\tisGitIgnored,\r\n\tisGitIgnoredSync,\r\n\tisIgnoredByIgnoreFiles,\r\n\tisIgnoredByIgnoreFilesSync,\r\n} from './ignore.js';\r\n\r\nexport const {convertPathToPattern} = fastGlob;\r\n","export default async function pMap(\r\n\titerable,\r\n\tmapper,\r\n\t{\r\n\t\tconcurrency = Number.POSITIVE_INFINITY,\r\n\t\tstopOnError = true,\r\n\t\tsignal,\r\n\t} = {},\r\n) {\r\n\treturn new Promise((resolve_, reject_) => {\r\n\t\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\r\n\t\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\r\n\t\t}\r\n\r\n\t\tif (typeof mapper !== 'function') {\r\n\t\t\tthrow new TypeError('Mapper function is required');\r\n\t\t}\r\n\r\n\t\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\r\n\t\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\r\n\t\t}\r\n\r\n\t\tconst result = [];\r\n\t\tconst errors = [];\r\n\t\tconst skippedIndexesMap = new Map();\r\n\t\tlet isRejected = false;\r\n\t\tlet isResolved = false;\r\n\t\tlet isIterableDone = false;\r\n\t\tlet resolvingCount = 0;\r\n\t\tlet currentIndex = 0;\r\n\t\tconst iterator = iterable[Symbol.iterator] === undefined ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\r\n\r\n\t\tconst signalListener = () => {\r\n\t\t\treject(signal.reason);\r\n\t\t};\r\n\r\n\t\tconst cleanup = () => {\r\n\t\t\tsignal?.removeEventListener('abort', signalListener);\r\n\t\t};\r\n\r\n\t\tconst resolve = value => {\r\n\t\t\tresolve_(value);\r\n\t\t\tcleanup();\r\n\t\t};\r\n\r\n\t\tconst reject = reason => {\r\n\t\t\tisRejected = true;\r\n\t\t\tisResolved = true;\r\n\t\t\treject_(reason);\r\n\t\t\tcleanup();\r\n\t\t};\r\n\r\n\t\tif (signal) {\r\n\t\t\tif (signal.aborted) {\r\n\t\t\t\treject(signal.reason);\r\n\t\t\t}\r\n\r\n\t\t\tsignal.addEventListener('abort', signalListener, {once: true});\r\n\t\t}\r\n\r\n\t\tconst next = async () => {\r\n\t\t\tif (isResolved) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst nextItem = await iterator.next();\r\n\r\n\t\t\tconst index = currentIndex;\r\n\t\t\tcurrentIndex++;\r\n\r\n\t\t\t// Note: `iterator.next()` can be called many times in parallel.\r\n\t\t\t// This can cause multiple calls to this `next()` function to\r\n\t\t\t// receive a `nextItem` with `done === true`.\r\n\t\t\t// The shutdown logic that rejects/resolves must be protected\r\n\t\t\t// so it runs only one time as the `skippedIndex` logic is\r\n\t\t\t// non-idempotent.\r\n\t\t\tif (nextItem.done) {\r\n\t\t\t\tisIterableDone = true;\r\n\r\n\t\t\t\tif (resolvingCount === 0 && !isResolved) {\r\n\t\t\t\t\tif (!stopOnError && errors.length > 0) {\r\n\t\t\t\t\t\treject(new AggregateError(errors)); // eslint-disable-line unicorn/error-message\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tisResolved = true;\r\n\r\n\t\t\t\t\tif (skippedIndexesMap.size === 0) {\r\n\t\t\t\t\t\tresolve(result);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst pureResult = [];\r\n\r\n\t\t\t\t\t// Support multiple `pMapSkip`'s.\r\n\t\t\t\t\tfor (const [index, value] of result.entries()) {\r\n\t\t\t\t\t\tif (skippedIndexesMap.get(index) === pMapSkip) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tpureResult.push(value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresolve(pureResult);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tresolvingCount++;\r\n\r\n\t\t\t// Intentionally detached\r\n\t\t\t(async () => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst element = await nextItem.value;\r\n\r\n\t\t\t\t\tif (isResolved) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst value = await mapper(element, index);\r\n\r\n\t\t\t\t\t// Use Map to stage the index of the element.\r\n\t\t\t\t\tif (value === pMapSkip) {\r\n\t\t\t\t\t\tskippedIndexesMap.set(index, value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresult[index] = value;\r\n\r\n\t\t\t\t\tresolvingCount--;\r\n\t\t\t\t\tawait next();\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\tif (stopOnError) {\r\n\t\t\t\t\t\treject(error);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\terrors.push(error);\r\n\t\t\t\t\t\tresolvingCount--;\r\n\r\n\t\t\t\t\t\t// In that case we can't really continue regardless of `stopOnError` state\r\n\t\t\t\t\t\t// since an iterable is likely to continue throwing after it throws once.\r\n\t\t\t\t\t\t// If we continue calling `next()` indefinitely we will likely end up\r\n\t\t\t\t\t\t// in an infinite loop of failed iteration.\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tawait next();\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\treject(error);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})();\r\n\t\t};\r\n\r\n\t\t// Create the concurrent runners in a detached (non-awaited)\r\n\t\t// promise. We need this so we can await the `next()` calls\r\n\t\t// to stop creating runners before hitting the concurrency limit\r\n\t\t// if the iterable has already been marked as done.\r\n\t\t// NOTE: We *must* do this for async iterators otherwise we'll spin up\r\n\t\t// infinite `next()` calls by default and never start the event loop.\r\n\t\t(async () => {\r\n\t\t\tfor (let index = 0; index < concurrency; index++) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\r\n\t\t\t\t\tawait next();\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\treject(error);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isIterableDone || isRejected) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\t});\r\n}\r\n\r\nexport function pMapIterable(\r\n\titerable,\r\n\tmapper,\r\n\t{\r\n\t\tconcurrency = Number.POSITIVE_INFINITY,\r\n\t\tbackpressure = concurrency,\r\n\t} = {},\r\n) {\r\n\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\r\n\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\r\n\t}\r\n\r\n\tif (typeof mapper !== 'function') {\r\n\t\tthrow new TypeError('Mapper function is required');\r\n\t}\r\n\r\n\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\r\n\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\r\n\t}\r\n\r\n\tif (!((Number.isSafeInteger(backpressure) && backpressure >= concurrency) || backpressure === Number.POSITIVE_INFINITY)) {\r\n\t\tthrow new TypeError(`Expected \\`backpressure\\` to be an integer from \\`concurrency\\` (${concurrency}) and up or \\`Infinity\\`, got \\`${backpressure}\\` (${typeof backpressure})`);\r\n\t}\r\n\r\n\treturn {\r\n\t\tasync * [Symbol.asyncIterator]() {\r\n\t\t\tconst iterator = iterable[Symbol.asyncIterator] === undefined ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();\r\n\r\n\t\t\tconst promises = [];\r\n\t\t\tlet runningMappersCount = 0;\r\n\t\t\tlet isDone = false;\r\n\t\t\tlet index = 0;\r\n\r\n\t\t\tfunction trySpawn() {\r\n\t\t\t\tif (isDone || !(runningMappersCount < concurrency && promises.length < backpressure)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst promise = (async () => {\r\n\t\t\t\t\tconst {done, value} = await iterator.next();\r\n\r\n\t\t\t\t\tif (done) {\r\n\t\t\t\t\t\treturn {done: true};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trunningMappersCount++;\r\n\r\n\t\t\t\t\t// Spawn if still below concurrency and backpressure limit\r\n\t\t\t\t\ttrySpawn();\r\n\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tconst returnValue = await mapper(await value, index++);\r\n\r\n\t\t\t\t\t\trunningMappersCount--;\r\n\r\n\t\t\t\t\t\tif (returnValue === pMapSkip) {\r\n\t\t\t\t\t\t\tconst index = promises.indexOf(promise);\r\n\r\n\t\t\t\t\t\t\tif (index > 0) {\r\n\t\t\t\t\t\t\t\tpromises.splice(index, 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Spawn if still below backpressure limit and just dropped below concurrency limit\r\n\t\t\t\t\t\ttrySpawn();\r\n\r\n\t\t\t\t\t\treturn {done: false, value: returnValue};\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tisDone = true;\r\n\t\t\t\t\t\treturn {error};\r\n\t\t\t\t\t}\r\n\t\t\t\t})();\r\n\r\n\t\t\t\tpromises.push(promise);\r\n\t\t\t}\r\n\r\n\t\t\ttrySpawn();\r\n\r\n\t\t\twhile (promises.length > 0) {\r\n\t\t\t\tconst {error, done, value} = await promises[0]; // eslint-disable-line no-await-in-loop\r\n\r\n\t\t\t\tpromises.shift();\r\n\r\n\t\t\t\tif (error) {\r\n\t\t\t\t\tthrow error;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (done) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Spawn if just dropped below backpressure limit and below the concurrency limit\r\n\t\t\t\ttrySpawn();\r\n\r\n\t\t\t\tif (value === pMapSkip) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tyield value;\r\n\t\t\t}\r\n\t\t},\r\n\t};\r\n}\r\n\r\nexport const pMapSkip = Symbol('skip');\r\n","const {toString} = Object.prototype;\r\nconst isError = value => toString.call(value) === '[object Error]';\r\n\r\nexport class PresentableError extends Error {\r\n\tconstructor(message, {cause} = {}) {\r\n\t\tsuper();\r\n\r\n\t\tif (message instanceof PresentableError) {\r\n\t\t\treturn message; // eslint-disable-line no-constructor-return\r\n\t\t}\r\n\r\n\t\tif (typeof message !== 'string') {\r\n\t\t\tthrow new TypeError('Message required.');\r\n\t\t}\r\n\r\n\t\tthis.name = 'PresentableError';\r\n\t\tthis.message = message;\r\n\t\tthis.cause = cause;\r\n\t}\r\n\r\n\tget isPresentable() {\r\n\t\treturn true;\r\n\t}\r\n}\r\n\r\nexport function isPresentableError(value) {\r\n\treturn value && isError(value) && value.isPresentable === true;\r\n}\r\n\r\nexport function makePresentableError(error) {\r\n\tif (!isError(error)) {\r\n\t\tthrow new TypeError('The value is not an error.');\r\n\t}\r\n\r\n\tif (isPresentableError(error)) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!Object.isExtensible(error)) {\r\n\t\tthrow new Error('The error is non-extensible and cannot be edited.');\r\n\t}\r\n\r\n\tObject.defineProperty(error, 'isPresentable', {value: true});\r\n}\r\n","import fs from 'node:fs';\r\nimport fsPromises from 'node:fs/promises';\r\nimport path from 'node:path';\r\nimport process from 'node:process';\r\nimport {globby, globbySync} from 'globby';\r\nimport isGlob from 'is-glob';\r\nimport isPathCwd from 'is-path-cwd';\r\nimport isPathInside from 'is-path-inside';\r\nimport pMap from 'p-map';\r\nimport slash from 'slash';\r\nimport {PresentableError} from 'presentable-error';\r\n\r\nfunction safeCheck(file, cwd) {\r\n\tif (isPathCwd(file)) {\r\n\t\tthrow new PresentableError('Cannot delete the current working directory. Can be overridden with the `force` option.');\r\n\t}\r\n\r\n\tif (!isPathInside(file, cwd)) {\r\n\t\tthrow new PresentableError('Cannot delete files/directories outside the current working directory. Can be overridden with the `force` option.');\r\n\t}\r\n}\r\n\r\nfunction normalizePatterns(patterns) {\r\n\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\r\n\r\n\tpatterns = patterns.map(pattern => {\r\n\t\tif (process.platform === 'win32' && isGlob(pattern) === false) {\r\n\t\t\treturn slash(pattern);\r\n\t\t}\r\n\r\n\t\treturn pattern;\r\n\t});\r\n\r\n\treturn patterns;\r\n}\r\n\r\nexport async function deleteAsync(patterns, {force, dryRun, cwd = process.cwd(), onProgress = () => {}, ...options} = {}) {\r\n\toptions = {\r\n\t\texpandDirectories: false,\r\n\t\tonlyFiles: false,\r\n\t\tfollowSymbolicLinks: false,\r\n\t\tcwd,\r\n\t\t...options,\r\n\t};\r\n\r\n\tpatterns = normalizePatterns(patterns);\r\n\r\n\tconst paths = await globby(patterns, options);\r\n\tconst files = paths.sort((a, b) => b.localeCompare(a));\r\n\r\n\tif (files.length === 0) {\r\n\t\tonProgress({\r\n\t\t\ttotalCount: 0,\r\n\t\t\tdeletedCount: 0,\r\n\t\t\tpercent: 1,\r\n\t\t});\r\n\t}\r\n\r\n\tlet deletedCount = 0;\r\n\r\n\tconst mapper = async file => {\r\n\t\tfile = path.resolve(cwd, file);\r\n\r\n\t\tif (!force) {\r\n\t\t\tsafeCheck(file, cwd);\r\n\t\t}\r\n\r\n\t\tif (!dryRun) {\r\n\t\t\tawait fsPromises.rm(file, {recursive: true, force: true});\r\n\t\t}\r\n\r\n\t\tdeletedCount += 1;\r\n\r\n\t\tonProgress({\r\n\t\t\ttotalCount: files.length,\r\n\t\t\tdeletedCount,\r\n\t\t\tpercent: deletedCount / files.length,\r\n\t\t\tpath: file,\r\n\t\t});\r\n\r\n\t\treturn file;\r\n\t};\r\n\r\n\tconst removedFiles = await pMap(files, mapper, options);\r\n\r\n\tremovedFiles.sort((a, b) => a.localeCompare(b));\r\n\r\n\treturn removedFiles;\r\n}\r\n\r\nexport function deleteSync(patterns, {force, dryRun, cwd = process.cwd(), ...options} = {}) {\r\n\toptions = {\r\n\t\texpandDirectories: false,\r\n\t\tonlyFiles: false,\r\n\t\tfollowSymbolicLinks: false,\r\n\t\tcwd,\r\n\t\t...options,\r\n\t};\r\n\r\n\tpatterns = normalizePatterns(patterns);\r\n\r\n\tconst files = globbySync(patterns, options)\r\n\t\t.sort((a, b) => b.localeCompare(a));\r\n\r\n\tconst removedFiles = files.map(file => {\r\n\t\tfile = path.resolve(cwd, file);\r\n\r\n\t\tif (!force) {\r\n\t\t\tsafeCheck(file, cwd);\r\n\t\t}\r\n\r\n\t\tif (!dryRun) {\r\n\t\t\tfs.rmSync(file, {recursive: true, force: true});\r\n\t\t}\r\n\r\n\t\treturn file;\r\n\t});\r\n\r\n\tremovedFiles.sort((a, b) => a.localeCompare(b));\r\n\r\n\treturn removedFiles;\r\n}\r\n","import process from 'node:process';\r\nimport path from 'node:path';\r\n\r\nexport default function isPathCwd(path_) {\r\n\tlet cwd = process.cwd();\r\n\r\n\tpath_ = path.resolve(path_);\r\n\r\n\tif (process.platform === 'win32') {\r\n\t\tcwd = cwd.toLowerCase();\r\n\t\tpath_ = path_.toLowerCase();\r\n\t}\r\n\r\n\treturn path_ === cwd;\r\n}\r\n","import path from 'node:path';\r\n\r\nexport default function isPathInside(childPath, parentPath) {\r\n\tconst relation = path.relative(parentPath, childPath);\r\n\r\n\treturn Boolean(\r\n\t\trelation &&\r\n\t\trelation !== '..' &&\r\n\t\t!relation.startsWith(`..${path.sep}`) &&\r\n\t\trelation !== path.resolve(childPath)\r\n\t);\r\n}\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __esDecorate,\r\n __runInitializers,\r\n __propKey,\r\n __setFunctionName,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n __addDisposableResource,\r\n __disposeResources,\r\n __rewriteRelativeImportExtension,\r\n};\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","import * as vscode from \"vscode\";\r\nimport * as path from \"path\";\r\nimport { VisualText } from './visualText';\r\nimport { AnalyzerView } from './analyzerView';\r\nimport { NLPCommands } from \"./command\";\r\nimport { SequenceView } from './sequenceView';\r\nimport { TextView } from './textView';\r\nimport { KBView } from './kbView';\r\nimport { OutputView } from './outputView';\r\nimport { FindView } from './findView';\r\nimport { HelpView } from './helpView';\r\nimport { LogView } from './logView';\r\nimport { NLPStatusBar } from './status';\r\nimport { visualText } from './visualText';\r\nimport { registerFormatter } from './format/formatProvider';\r\nimport { registerLanguageFeatures } from './language/providers';\r\nimport { registerEngineDiagnostics } from './language/engineDiagnostics';\r\nimport { registerTreeGraph } from './treeview/treeGraphView';\r\nimport * as telemetry from './telemetry/telemetry';\r\n\r\nexport function activate(ctx: vscode.ExtensionContext): void {\r\n TextView.attach(ctx);\r\n LogView.attach(ctx);\r\n VisualText.attach(ctx);\r\n AnalyzerView.attach(ctx);\r\n OutputView.attach(ctx);\r\n SequenceView.attach(ctx);\r\n KBView.attach(ctx);\r\n FindView.attach(ctx);\r\n const help = HelpView.attach(ctx);\r\n NLPCommands.attach(ctx);\r\n NLPStatusBar.attach(ctx);\r\n registerFormatter(ctx);\r\n registerLanguageFeatures(ctx); // outline, hover, go-to-definition, structural diagnostics\r\n registerEngineDiagnostics(ctx); // inline squiggles from the engine's err.log\r\n registerTreeGraph(ctx); // linguistic parse-tree graphic for .tree files\r\n telemetry.activate(ctx); // no-op unless a connection string is configured\r\n\r\n // First-run welcome / new-version notes / announcements (guarded; never\r\n // blocks activation). Shows at most one popup, version notes taking priority.\r\n help.showStartupHelp();\r\n\r\n vscode.commands.executeCommand('setContext', 'textView.fastload', visualText.getTextFastLoad());\r\n\r\n // #849: stamp the \"# MODIFIED:\" header line with the current date/time when an\r\n // NLP++ pass file is saved. onWillSaveTextDocument + waitUntil applies the edit\r\n // atomically with the save, so there is no re-save loop and no on-disk conflict.\r\n // Only files that already carry the header line (created from the pass template)\r\n // are touched.\r\n ctx.subscriptions.push(vscode.workspace.onWillSaveTextDocument(e => {\r\n const ext = path.extname(e.document.fileName).toLowerCase();\r\n if (ext !== '.nlp' && ext !== '.rec' && ext !== '.pat')\r\n return;\r\n const now = new Date();\r\n const stamp = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate() +\r\n ' ' + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();\r\n const newLine = '# MODIFIED: ' + stamp;\r\n const max = Math.min(e.document.lineCount, 15);\r\n for (let i = 0; i < max; i++) {\r\n const line = e.document.lineAt(i);\r\n if (/^#\\s*MODIFIED:/i.test(line.text)) {\r\n if (line.text.trimEnd() !== newLine)\r\n e.waitUntil(Promise.resolve([vscode.TextEdit.replace(line.range, newLine)]));\r\n return;\r\n }\r\n }\r\n }));\r\n\r\n if (visualText.getAutoUpdate())\r\n visualText.startUpdater();\r\n else\r\n visualText.debugMessage(\"Auto update on reload is off\");\r\n}\r\n"],"names":["Object","defineProperty","exports","value","createFileSystemAdapter","FILE_SYSTEM_ADAPTER","fs","lstat","stat","lstatSync","statSync","readdir","readdirSync","fsMethods","undefined","assign","IS_SUPPORT_READDIR_WITH_FILE_TYPES","NODE_PROCESS_VERSION_PARTS","process","versions","node","split","Error","MAJOR_VERSION","Number","parseInt","MINOR_VERSION","IS_MATCHED_BY_MAJOR","IS_MATCHED_BY_MAJOR_AND_MINOR","Settings","scandirSync","scandir","async","sync","settings_1","getSettings","settingsOrOptions","default","path","optionsOrSettingsOrCallback","callback","read","optionsOrSettings","settings","readdirWithFileTypes","fsStat","rpl","constants_1","utils","common","directory","withFileTypes","readdirError","dirents","callFailureCallback","entries","map","dirent","name","joinPathSegments","pathSegmentSeparator","followSymbolicLinks","callSuccessCallback","tasks","entry","done","isSymbolicLink","statError","stats","throwErrorOnBrokenSymbolicLink","createDirentFromStats","makeRplTaskEntry","rplError","rplEntries","names","fsStatSettings","error","result","a","b","separator","endsWith","entryPath","constructor","_options","this","_getValue","sep","followSymbolicLink","option","DirentFromStats","isBlockDevice","bind","isCharacterDevice","isDirectory","isFIFO","isFile","isSocket","lstatError","markSymbolicLink","walkStream","walkSync","walk","async_1","stream_1","sync_1","_root","_settings","_reader","_storage","onError","onEntry","push","onEnd","_stream","Readable","objectMode","destroy","isDestroyed","emit","events_1","fsScandir","fastq","reader_1","AsyncReader","super","_scandir","_emitter","EventEmitter","_queue","_worker","concurrency","_isFatalError","_isDestroyed","drain","setImmediate","_pushToQueue","basePath","killAndDrain","on","once","base","queueItem","_handleError","item","fsScandirSettings","_handleEntry","isFatalError","fullpath","isAppliedFilter","entryFilter","_emitEntry","deepFilter","replacePathSegmentSeparator","errorFilter","filter","filepath","join","SyncReader","arguments","Set","_handleQueue","add","values","_handleDirectory","_pushToStorage","POSITIVE_INFINITY","__importDefault","mod","__esModule","debug_1","promisify_1","debug","isSecureEndpoint","stack","some","l","indexOf","createAgent","opts","Agent","_opts","timeout","maxFreeSockets","maxSockets","maxTotalSockets","Infinity","sockets","freeSockets","requests","options","defaultPort","explicitDefaultPort","v","protocol","explicitProtocol","req","fn","addRequest","secureEndpoint","host","port","agent","hostname","_defaultAgent","createConnection","_last","shouldKeepAlive","timedOut","timeoutId","timeoutMs","onerror","err","_hadError","ontimeout","code","callbackError","clearTimeout","onsocket","socket","Boolean","freeSocket","onSocket","method","promisifiedCallback","length","setTimeout","Promise","resolve","then","reject","catch","prototype","module","call","rtn","stringify","compile","expand","parse","braces","input","output","Array","isArray","pattern","create","concat","nodupes","noempty","fill","ast","parent","invalidBlock","isInvalidBrace","invalidNode","invalid","escapeInvalid","prefix","isOpen","isClose","console","log","type","prev","nodes","ranges","args","reduce","range","wrap","toRegex","strictZeros","child","MAX_LENGTH","CHAR_0","CHAR_9","CHAR_UPPERCASE_A","CHAR_LOWERCASE_A","CHAR_UPPERCASE_Z","CHAR_LOWERCASE_Z","CHAR_LEFT_PARENTHESES","CHAR_RIGHT_PARENTHESES","CHAR_ASTERISK","CHAR_AMPERSAND","CHAR_AT","CHAR_BACKSLASH","CHAR_BACKTICK","CHAR_CARRIAGE_RETURN","CHAR_CIRCUMFLEX_ACCENT","CHAR_COLON","CHAR_COMMA","CHAR_DOLLAR","CHAR_DOT","CHAR_DOUBLE_QUOTE","CHAR_EQUAL","CHAR_EXCLAMATION_MARK","CHAR_FORM_FEED","CHAR_FORWARD_SLASH","CHAR_HASH","CHAR_HYPHEN_MINUS","CHAR_LEFT_ANGLE_BRACKET","CHAR_LEFT_CURLY_BRACE","CHAR_LEFT_SQUARE_BRACKET","CHAR_LINE_FEED","CHAR_NO_BREAK_SPACE","CHAR_PERCENT","CHAR_PLUS","CHAR_QUESTION_MARK","CHAR_RIGHT_ANGLE_BRACKET","CHAR_RIGHT_CURLY_BRACE","CHAR_RIGHT_SQUARE_BRACKET","CHAR_SEMICOLON","CHAR_SINGLE_QUOTE","CHAR_SPACE","CHAR_TAB","CHAR_UNDERSCORE","CHAR_VERTICAL_LINE","CHAR_ZERO_WIDTH_NOBREAK_SPACE","append","queue","stash","enclose","flatten","ele","rangeLimit","p","q","dollar","pop","exceedsLimit","step","RangeError","encloseBrace","block","i","TypeError","max","maxLength","Math","min","SyntaxError","brackets","index","depth","advance","next","open","keepQuotes","slice","close","commas","shift","siblings","before","keepEscaping","forEach","splice","isOpenOrClose","isInteger","num","trim","find","limit","escapeNode","n","escaped","acc","flat","arr","Buffer","CRC_TABLE","ensureBuffer","isBuffer","hasNewBufferAPI","alloc","from","_crc32","buf","previous","readUInt32BE","crc","crc32","apply","tmp","writeInt32BE","Int32Array","signed","unsigned","copydir","copydirSync","to","cover","state","filename","statsname","valid","basename","mkdir","rewrite","listDirectory","writeFile","files","copyFromArray","f","readFile","data","mode","chmod","utimes","atime","mtime","mkdirSync","rewriteSync","copyFromArraySync","listDirectorySync","writeFileSync","readFileSync","chmodSync","utimesSync","formatArgs","useColors","namespace","humanize","diff","c","color","lastC","replace","match","save","namespaces","storage","setItem","removeItem","load","r","getItem","env","DEBUG","window","__nwjs","navigator","userAgent","toLowerCase","m","document","documentElement","style","WebkitAppearance","firebug","exception","table","localStorage","localstorage","warned","warn","colors","formatters","j","JSON","message","createDebug","prevTime","namespacesCache","enabledCache","enableOverride","enabled","self","curr","Date","ms","coerce","unshift","format","formatter","val","selectColor","extend","enumerable","configurable","get","set","init","delimiter","newDebug","matchesTemplate","search","template","searchIndex","templateIndex","starIndex","matchIndex","disable","skips","enable","ns","skip","keys","key","hash","charCodeAt","abs","browser","tty","util","inspectOpts","stderr","write","formatWithOptions","colorCode","hideDate","toISOString","isatty","fd","deprecate","supportsColor","level","test","obj","prop","substring","_","k","toUpperCase","o","inspect","str","O","noop","eos","stream","ws","_writableState","rs","_readableState","readable","writable","cancelled","onlegacyfinish","onfinish","onend","onexit","exitCode","onclose","nextTick","onclosenexttick","ended","destroyed","onrequest","setHeader","abort","isRequest","stdio","isChildProcess","removeListener","createWriteStream","promises","getStream","promisify","yauzl","openZip","pipeline","Extractor","zipPath","extract","zipfile","lazyEntries","canceled","readEntry","fileName","startsWith","destDir","dirname","dir","recursive","canonicalDestDir","realpath","relative","includes","extractEntry","dest","externalFileAttributes","symlink","isDir","madeBy","versionMadeBy","isSymlink","procMode","getExtractedMode","mkdirOptions","readStream","openReadStream","link","entryMode","defaultDirMode","defaultFileMode","isAbsolute","isGlob","pathPosixDirname","isWin32","backslash","enclosure","globby","flipBackslashes","taskManager","FastGlob","source","assertPatternsInput","works","getWorks","all","array","_Provider","patterns","generate","provider","every","string","isString","isEmpty","merge","posix","win32","glob","globSync","globStream","generateTasks","isDynamicPattern","escapePath","escape","convertPathToPattern","escapePosixPath","convertPosixPathToPattern","escapeWindowsPath","convertWindowsPathToPattern","convertPatternGroupToTask","convertPatternGroupsToTasks","groupPatternsByBaseDirectory","getNegativePatternsAsPositive","getPositivePatterns","convertPatternsToTasks","processPatterns","braceExpansion","expandPatternsWithBraceExpansion","baseNameMatch","removeDuplicateSlashes","positive","negative","dynamic","patternsOutsideCurrentDirectory","getPatternsOutsideCurrentDirectory","patternsInsideCurrentDirectory","getPatternsInsideCurrentDirectory","outsideCurrentDirectoryGroup","insideCurrentDirectoryGroup","ignore","getNegativePatterns","convertToPositivePattern","collection","getBaseDirectory","convertToNegativePattern","positivePatterns","negativePatterns","staticPatterns","isStaticPattern","dynamicPatterns","staticTasks","dynamicTasks","provider_1","ProviderAsync","task","root","_getRootDirectory","_getReaderOptions","api","transform","static","partial_1","_micromatchOptions","getFilter","matcher","_getMatcher","negativeRe","_getNegativePatternsRe","_filter","affectDepthOfReadingPatterns","isAffectDepthOfReadingPattern","convertPatternsToRe","_isSkippedByDeep","_isSkippedSymbolicLink","removeLeadingDotSegment","_isSkippedByPositivePatterns","_isSkippedByNegativePatterns","deep","_getEntryLevel","entryPathDepth","patternsRe","matchAny","Map","absoluteNegative","relativeNegative","partitionAbsoluteAndRelative","absolute","dot","unique","_isDuplicateEntry","_onlyFileFilter","_onlyDirectoryFilter","isMatched","_isMatchToPatternsSet","_createIndexRecord","has","onlyFiles","onlyDirectories","_isMatchToPatterns","_isMatchToAbsoluteNegative","makeAbsolute","cwd","_isNonFatalError","errno","isEnoentCodeError","suppressErrors","_patterns","_fillStorage","segments","_getPatternSegments","sections","_splitSegmentsIntoSections","complete","getPatternParts","part","patternRe","makeRe","splitWhen","segment","hasGlobStar","matcher_1","PartialMatcher","parts","levels","info","section","deep_1","entry_1","error_1","entry_2","_getMicromatchOptions","entryTransformer","getTransformer","matchBase","nobrace","nocase","caseSensitiveMatch","noext","extglob","noglobstar","globstar","strictSlashes","stream_2","ProviderStream","destination","ProviderSync","_transform","unixify","markDirectories","fsWalk","ReaderAsync","_walkAsync","_readerStream","_fsStatSettings","_getFullEntryPath","_makeEntry","ReaderStream","_walkStream","_stat","filepaths","PassThrough","_write","_enc","_getEntry","end","_getStat","ReaderSync","_walkSync","_statSync","DEFAULT_FILE_SYSTEM_ADAPTER","os","CPU_COUNT","cpus","_getFileSystemMethods","methods","items","predicate","groupIndex","IS_WINDOWS_PLATFORM","platform","POSIX_UNESCAPED_GLOB_SYMBOLS_RE","WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE","DOS_DEVICE_PATH_RE","WINDOWS_BACKSLASHES_RE","charAt","secondCharactery","expandBraceExpansion","endsWithSlashGlobStar","isPatternRelatedToParentDirectory","isPositivePattern","isNegativePattern","globParent","micromatch","COMMON_GLOB_SYMBOLS_RE","REGEX_CHARACTER_CLASS_SYMBOLS_RE","REGEX_GROUP_SYMBOLS_RE","GLOB_EXTENSION_SYMBOLS_RE","BRACE_EXPANSION_SEPARATORS_RE","DOUBLE_SLASH_RE","openingBraceIndex","closingBraceIndex","braceContent","hasBraceExpansion","sort","scan","merge2","propagateCloseEventToSources","streams","mergedStream","reusify","fastqueue","context","worker","_concurrency","cache","Task","queueHead","queueTail","_running","errorHandler","current","release","paused","saturated","worked","pause","running","resume","idle","counter","getQueue","empty","kill","handler","holder","promise","arg","cb","res","pushCb","unshiftCb","drained","previousDrain","Writable","Pend","FdSlicer","pend","refCount","autoClose","ReadStream","ref","start","endOffset","pos","WriteStream","bytesWritten","BufferSlicer","buffer","maxChunkSize","MAX_SAFE_INTEGER","createFromBuffer","createFromFd","inherits","offset","position","go","bytesRead","written","createReadStream","unref","_read","toRead","highWaterMark","encoding","bytes","delta","copy","entireSlice","nextOffset","bufferSlicer","writeStream","toRegexRange","isObject","isValidValue","isNumber","zeros","pad","toNumber","dash","padStart","String","toMaxLen","toRange","isNumbers","fromCharCode","capture","rangeError","invalidRange","strictRanges","descending","startString","endString","stepString","padded","maxLen","negatives","positives","toSequence","fillNumbers","fillLetters","invalidStep","looksLikeNode","looksLikeBrowser","looksLikeV8","url","URL","http","https","assert","isFunction","captureStackTrace","useNativeURL","sensitiveHeaders","preservedUrlFields","events","eventHandlers","event","arg1","arg2","arg3","_redirectable","InvalidUrlError","createErrorType","RedirectionError","TooManyRedirectsError","MaxBodyLengthExceededError","WriteAfterEndError","RedirectableRequest","responseCallback","_sanitizeOptions","_ended","_ending","_redirectCount","_redirects","_requestBodyLength","_requestBodyBuffers","_onNativeResponse","response","_processResponse","cause","_headerFilter","RegExp","escapeRegex","_performRequest","protocols","maxRedirects","maxBodyLength","nativeProtocols","scheme","nativeProtocol","wrappedProtocol","defineProperties","request","spreadUrlObject","parseUrl","validateUrl","equal","wrappedRequest","parsed","href","urlObject","target","spread","pathname","removeMatchingHeaders","regex","headers","lastValue","header","baseClass","CustomError","properties","destroyRequest","_currentRequest","currentRequest","removeHeader","msecs","destroyOnTimeout","addListener","startTimer","_timeout","clearTimer","property","searchPos","agents","_currentUrl","_isRedirect","buffers","writeNext","finished","statusCode","trackRedirects","requestHeaders","location","followRedirects","responseUrl","redirects","beforeRedirect","Host","getHeader","currentHostHeader","currentUrlParts","currentHost","currentUrl","redirectUrl","subdomain","domain","isSubdomain","responseDetails","requestDetails","PassThroughStream","setEncoding","chunks","chunk","getBufferedValue","getBufferedLength","constants","BufferConstants","pump","bufferStream","MaxBufferError","inputStream","maxBuffer","rejectPromise","bufferedData","flag","argv","terminatorPosition","__awaiter","thisArg","_arguments","P","generator","fulfilled","e","rejected","net_1","tls_1","url_1","assert_1","agent_base_1","parse_proxy_response_1","HttpsProxyAgent","proxy","secureProxy","ALPNProtocols","connect","payload","auth","toString","secure","isDefaultPort","Connection","proxyResponsePromise","buffered","servername","ret","omit","fakeSocket","Socket","s","listenerCount","agent_1","createHttpsProxyAgent","buffersLength","firstLine","ondata","makeArray","subject","REGEX_TEST_BLANK_LINE","REGEX_INVALID_TRAILING_BACKSLASH","REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION","REGEX_REPLACE_LEADING_EXCAPED_HASH","REGEX_SPLITALL_CRLF","REGEX_TEST_INVALID_PATH","REGEX_TEST_TRAILING_SLASH","SLASH","TMP_KEY_IGNORE","Symbol","for","KEY_IGNORE","define","object","REGEX_REGEXP_RANGE","RETURN_FALSE","REPLACERS","m1","m2","p1","p2","leadEscape","endEscape","slashes","cleanRangeBackSlash","sanitizeRange","REGEX_REPLACE_TRAILING_WILDCARD","MODE_IGNORE","MODE_CHECK_IGNORE","TRAILING_WILD_CARD_REPLACERS","IgnoreRule","mark","body","ignoreCase","_make","checkRegex","regexPrefix","RuleManager","_ignoreCase","_rules","_add","_added","checkPattern","rule","substr","replacer","makeRegexPrefix","createRule","splitPattern","checkUnignored","matchedRule","ignored","unignored","throwError","Ctor","checkPath","originalPath","doThrow","isNotRelative","convert","Ignore","ignorecase","allowRelativePaths","_strictPathCheck","_initCache","_ignoreCache","_testCache","addPattern","_test","slices","_t","checkIgnore","ignores","createFilter","paths","factory","setupWindows","REGEX_TEST_WINDOWS_PATH_ABSOLUTE","isPathValid","exec","isExtglob","chars","strictCheck","pipeIndex","closeSquareIndex","closeCurlyIndex","closeParenIndex","backSlashIndex","relaxedCheck","check","strict","isFinite","pauseStreams","len","pipe","streamsQueue","merging","doEnd","doPipeError","pipeError","addStream","mergeStream","endStream","pipesCount","endEmitted","setMaxListeners","picomatch","isEmptyString","hasBraces","list","keep","onResult","isMatch","negated","negatedExtglob","matched","delete","matches","failglob","nonull","nullglob","unescape","any","not","contains","matchKeys","isWindows","toPosixSlashes","braceExpand","extensions","types","preference","db","extname","EXTRACT_TYPE_REGEXP","TEXT_TYPE_REGEXP","charset","mime","charsets","lookup","contentType","extension","exts","moment","toLocaleStringWorks","toLocaleStringRoundingWorks","intlNumberFormatWorks","intlNumberFormatRoundingWorks","bubbles","targets","stringIncludes","repeatZero","qty","cachedNumberFormat","locale","cacheKey","Intl","NumberFormat","formatNumber","number","userLocale","integerString","fractionString","exponentString","useToLocaleString","useGrouping","grouping","maximumSignificantDigits","minimumIntegerDigits","fractionDigits","groupingSeparator","decimalSeparator","roundingOptions","localeStringOptions","maximumFractionDigits","minimumFractionDigits","parseFloat","toLocaleString","temp","toPrecision","toFixed","integerLength","fractionLength","digitCount","digits","digitsArray","reverse","carry","stringRound","exponent","group","formattedString","durationLabelCompare","label","engLocale","durationLabelsStandard","S","SS","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","durationLabelsShort","durationTimeTemplates","HMS","HM","MS","durationLabelTypes","durationPluralKey","token","integerValue","decimalValue","each","pluck","compact","_a","intersection","_b","rest","hasOwnProperty","featureTestFormatterRounding","featureTestFormatter","passed","durationsFormat","durations","precision","returnMomentTypes","formattedDurations","dur","outputTypes","largest","durationFormat","defaults","asMilliseconds","asMonths","isValid","isNegative","remainder","duration","remainderMonths","momentTokens","years","months","weeks","days","hours","minutes","seconds","milliseconds","tokenDefs","general","typeMap","tokenizer","stopTrim","localeData","_durationTimeTemplates","useLeftUnits","usePlural","forceLength","trunc","useSignificantDigits","significantDigits","significantDigitsCache","minValue","isMinValue","maxValue","isMaxValue","trimIncludes","rBoth","rAll","trimLarge","trimSmall","trimMid","trimFinal","rawTokens","text","currentToken","tokens","momentTypes","momentType","rawValue","isSmallest","isLargest","as","wholeValue","floor","subtract","tokenLength","truncMethod","round","truncate","places","factor","pow","foundFirst","bubbled","formatValue","formatOptions","formattedValue","formattedValueEn","formattedValueMS","findType","bubble","bubbleMomentType","targetMomentType","outputType","pluralKey","labels","localeDataKey","labelType","labelKey","durationGetLabels","autoLocalized","pluralizedLabels","_durationLabelTypes","out","defaultFormatTemplate","_data","firstType","lastType","findLast","updateLocale","toLocaleStringFormatter","toLocaleStringSupportsLocales","intlNumberFormatFormatter","momentDurationFormatSetup","defineLocale","monthsShort","weekdays","weekdaysShort","weekdaysMin","meridiemParse","isPM","meridiem","isLower","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","dayOfMonthOrdinalParse","ordinal","week","dow","doy","pluralForm","plurals","pluralize","u","withoutSuffix","isFuture","weekdaysParseExact","hour","minute","postformat","symbolMap","preparse","numberMap","suffixes","relativeTimeWithPlural","forms","standalone","isFormat","day","period","lastDigit","last2Digits","meridiemHour","monthsShortRegex","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","mutation","lastNumber","monthsParse","monthsRegex","minWeekdaysParse","weekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","translate","ll","lll","llll","plural","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","month","_monthsNominativeEl","calendarEl","mom","_calendarEl","Function","monthsShortDot","invalidDate","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eras","since","narrow","abbr","until","eraYearOrdinalRegex","eraYearOrdinalParse","now","$0","$1","$2","isUpper","ezafeNumSuffix","eifelerRegelAppliesToNumber","isNaN","units","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","word","numbersNouns","numberNoun","hundred","ten","one","numberAsNoun","time","hm","processHoursFunction","nominative","accusative","genitive","webpackContext","id","webpackContextResolve","__webpack_require__","hookCallback","hooks","hasOwnProp","isObjectEmpty","getOwnPropertyNames","isUndefined","isDate","arrLen","valueOf","createUTC","createLocalOrUTC","utc","getParsingFlags","_pf","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","_isValid","createInvalid","NaN","fun","t","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","msg","suppressDeprecationWarnings","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","func","removeFormattingTokens","formatMoment","expandFormat","makeFormatFunction","replaceLongDateFormatTokens","lastIndex","aliases","D","dates","date","weekday","E","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","millisecond","Q","quarters","quarter","second","gg","weekyears","weekyear","GG","isoweekyears","isoweekyear","W","isoweeks","isoweek","year","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","isoWeekday","dayOfYear","weekYear","isoWeekYear","isoWeek","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","strictRegex","isStrict","getParseRegexForToken","regexEscape","p3","p4","absFloor","ceil","toInt","argumentForCoercion","coercedNumber","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","isLeapYear","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","parseTwoDigitYear","getSetYear","makeGetSet","unit","keepTime","set$1","isUTC","getUTCMilliseconds","getMilliseconds","getUTCSeconds","getSeconds","getUTCMinutes","getMinutes","getUTCHours","getHours","getUTCDate","getDate","getUTCDay","getDay","getUTCMonth","getMonth","getUTCFullYear","getFullYear","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setSeconds","setUTCMinutes","setMinutes","setUTCHours","setHours","setUTCDate","setDate","setUTCFullYear","setFullYear","daysInMonth","x","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","setUTCMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","createUTCDate","UTC","firstWeekOffset","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","_meridiem","pos1","pos2","getSetHour","globalLocale","baseConfig","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","getSetGlobalLocale","getLocale","_config","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","calculateOffset","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","currentDateArray","weekdayOverflow","curWeek","createLocal","_week","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","isPm","meridiemFixWrap","erasConvertYear","prepareConfig","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","configFromObject","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","unitHasDecimal","orderLen","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","utcOffset","sign","offsetFromString","chunkOffset","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","addSubtract","isAdding","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","propertyLen","isMomentInputObject","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","formats","isCalendarSpec","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","inputString","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","priority","getPrioritizedUnits","prioritizedLen","toArray","toObject","toDate","keepOffset","suffix","zone","isLocal","toJSON","unix","creationData","eraName","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","_relativeTime","pastFuture","_eras","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","asSeconds","asMinutes","asHours","asDays","asWeeks","asQuarters","asYears","valueOf$1","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","posNegDuration","relativeTime$1","toIsoString","version","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","msAbs","isPlural","long","fmtShort","file","readChunk","openSync","isStdin","reset","_searchInBuffer","byte","eofReached","linesCache","fdPosition","lastChunkEndedWithCR","lineIsComplete","closeSync","_extractLines","isEof","lines","lineStart","lineEnd","_readChunk","lineLeftovers","totalBytesRead","readBuffer","readSync","bufferData","line","isLast","IncomingMessage","makeRequest","Transform","FileProcessor","deduceFileName","exists","getTempFilePath","isJson","isDataUrl","unlink","rename","bufferToReadableStream","createBufferFromResponseStream","pipeStreams","getStringFromStream","downloadStatusEnum","useSynchronousMode","httpsAgent","cloneFiles","skipExistingFileName","shouldBufferResponse","onResponse","onBeforeSave","onProgress","isCancelled","cancelCb","percentage","fileSize","currentDataSize","originalResponse","_verifyDirectoryExists","_shouldSkipRequest","downloadStatus","filePath","dataStream","_request","_handlePossibleStatusCodeError","finalFileName","originalFileName","_getFileName","finalPath","_save","customError","_createErrorObject","responseString","responseBody","_mimic_RequestForDataUrl","_makeRequest","contentLength","dataUrl","mimeType","base64Data","byteLength","_shouldSkipSaving","_getTempAndFinalPath","tempPath","_saveAccordingToConfig","_saveFromBuffer","_saveFromReadableStream","_handleOnBeforeSave","clientOverideName","_renameTempFileToFinalName","_removeFailedFile","makeRequestIter","cancel","_getProgressStream","remainingFracture","remainingSize","progressStream","final","responseHeaders","fileProcessor","getAvailableFileName","rpur","capitalize","Download","configTypes","mandatory","Downloader","generateTypeError","validateConfig","maxAttempts","_currentDownload","download","_makeUntilSuccessful","asyncFunc","shouldStop","cancelPromiseReject","responsePromiseReject","responsePromise","timeoutPromise","cancelPromise","race","responseIter","asyncIterator","majorNodeVersion","fileExtension","fileNameWithoutExtension","createNewFileNameSync","createNewFileName","pathExistsSync","existsSync","pathExists","access","newFileName","createDelay","mil","sanitize","Fs","removeQueryString","fileNameFromContentDisposition","contentDisposition","getFileNameFromContentDisposition","fileNameFromUrl","cleanUrl","deduceFileNameFromUrl","fileNameFromContentType","removeExtension","getFileNameFromContentType","finalpath","promiseFactory","attempts","delay","newAttempts","onAttempt","promiseWithTimeout","pipelinePromisified","Stream","fullPath","arrayOfStreams","getDataUrlExtension","dataurl","wrappy","called","onceStrict","onceError","pending","listeners","waiting","pendHold","pendGo","cbListener","listener","wait","hold","WIN_SLASH","WIN_NO_SLASH","DOT_LITERAL","SLASH_LITERAL","QMARK","END_ANCHOR","START_ANCHOR","DOTS_SLASH","POSIX_CHARS","PLUS_LITERAL","QMARK_LITERAL","ONE_CHAR","NO_DOT","NO_DOTS","NO_DOT_SLASH","NO_DOTS_SLASH","QMARK_NO_DOT","STAR","WINDOWS_CHARS","DEFAULT_MAX_EXTGLOB_RECURSION","POSIX_REGEX_SOURCE","__proto__","alnum","alpha","ascii","blank","cntrl","digit","graph","lower","print","punct","space","upper","xdigit","REGEX_BACKSLASH","REGEX_NON_SPECIAL_CHARS","REGEX_SPECIAL_CHARS","REGEX_SPECIAL_CHARS_BACKREF","REGEX_SPECIAL_CHARS_GLOBAL","REGEX_REMOVE_BACKSLASH","REPLACEMENTS","CHAR_BACKWARD_SLASH","CHAR_GRAVE_ACCENT","SEP","extglobChars","globChars","expandRange","ex","syntaxError","char","splitTopLevel","bracket","paren","quote","ch","normalizeSimpleBranch","branch","changed","isPlainBranch","parseRepeatedExtglob","requireEnd","getStarExtglobSequenceOutput","branches","repeatedExtglobRecursion","bos","prepend","PLATFORM_CHARS","EXTGLOB_CHARS","nodot","qmarkNoDot","star","bash","noextglob","consumed","backtrack","parens","quotes","removePrefix","extglobs","peek","remaining","consume","negate","count","increment","decrement","isBrace","inner","extglobOpen","conditions","startIndex","tokensIndex","extglobClose","literal","analysis","maxExtglobRecursion","risky","repeat","hasRepeatedCharPrefixOverlap","safeOutput","analyzeRepeatedExtglob","extglobStar","expression","fastpaths","backslashes","esc","first","wrapOutput","idx","lastIndexOf","pre","strictBrackets","nobracket","prevValue","literalBrackets","hasRegexChars","outputIndex","brace","dots","comma","toks","supportsLookbehinds","nonegate","prior","isStart","afterStar","after","escapeLast","slashDot","returnState","fns","arrayMatcher","isState","compileRe","isIgnored","ignoreOpts","onMatch","returnObject","onIgnore","returnOutput","isPathSeparator","isPrefix","isGlobstar","scanToEnd","isBracket","braceEscaped","noparen","removeBackslashes","maxDepth","prevIndex","isRegexChar","segs","windows","lastIdx","ancient","isFn","destroys","reading","writing","closed","isFS","destroyer","queueMicrotask","global","Constructor","head","tail","results","isSync","illegalRe","controlRe","reservedRe","windowsReservedRe","windowsTrailingRe","replacement","sanitized","hasFlag","flagForceColor","getSupportLevel","haveStream","streamIsTTY","sniffFlags","noFlagForceColor","FORCE_COLOR","envForceColor","forceColor","TERM","osRelease","CI_NAME","TEAMCITY_VERSION","COLORTERM","TERM_PROGRAM_VERSION","TERM_PROGRAM","isTTY","hasBasic","has256","has16m","stdout","relaxZeros","shorthand","isPadded","hasPadding","splitToPatterns","neg","onlyNegative","filterPatterns","onlyPositive","intersected","collatePatterns","rangeToPattern","stop","zipped","zip","startDigit","stopDigit","toCharacterClass","nines","countNines","stops","countZeros","compare","splitToRanges","padZeros","toQuantifier","comparison","integer","relax","clearCache","getLength","isHighSurrogate","codePoint","isLowSurrogate","charLength","curByteLength","anaSubDir","seqFile","SequenceFile","jsonState","JsonState","analyzerDir","vscode","Uri","specDir","inputDir","outputDir","kbDir","logDir","currentTextFile","currentPassFile","passNum","loaded","hasLogs","timerCounter","timerID","analyzerCopyUri","readState","jsonParse","json","visualText","currentFile","getInputDirectory","fsPath","getSpecDirectory","commands","executeCommand","outputDirectory","modCreate","uri","created","showInputBox","prompt","newname","showWarningMessage","modUri","modFiles","dirfuncs","setModFile","hasText","newAnalyzer","hasWorkspaceFolder","getBlockAnalyzersPath","getWorkspaceFolder","button","showInformationMessage","askToCreateNewAnalyzer","createNewAnalyzer","zeroAnalyzer","analyzerName","visualTextDirectoryExists","fromDir","getVisualTextDirectory","makeNewAnalyzer","getDirectories","dirMap","readme","descr","tit","title","description","readDescription","picked","showQuickPick","canPickMany","placeHolder","selections","dirName","fileOps","startFileOps","toDir","addFileOperation","fileOpRefresh","ANALYZER","fileOperation","ANASEL","selection","sequenceView","insertAnalyzerBlock","TextFile","getLines","analyzer","makeDir","ANALYZERS","COPY","ANALOAD","createAnaSequenceFile","content","cont","anaFile","ANALYZER_SEQUENCE_FILE","saveStateFile","saveAnalyzerState","stateJsonDefault","saveFile","getCurrentFile","saveCurrentFile","saveCurrentPass","passFile","setWorkingDir","checkHierFile","kbPath","getKBDirectory","hierPath","currHierText","extHierPath","basicHierText","getText","debugMessage","logLineType","UPDATER","setText","LOG_SUFFIX","clearOutputDirectory","treeFile","pather","isLoaded","setCurrentTextFile","getAnalyzerDirectory","subDir","getOutputDirectory","getLogDirectory","getTextPath","getPassPath","getTreeFile","nlpFileType","TREE","getName","folderHasTests","folder","getFiles","testFile","TEST_SUFFIX","fileHasTests","testFolder","outputDirFlag","relPath","folderName","testDir","constructDir","SPEC","INPUT","KB","LOGS","anaSubDirPath","pathStr","ANALYZER_SEQUENCE_FOLDER","OUTPUT","getAnalyzerConverting","analyzerItemType","AnalyzerTreeDataProvider","refresh","_onDidChangeTreeData","fire","onDidChangeTreeData","getChildren","analyzerItem","getAnalyzers","getKeepers","hasAnalyzers","getMovement","moveDown","moveUp","itemPath","getAnalyzerDir","FOLDER","parentHasOtherDirs","getTreeItem","treeItem","TreeItem","isAnalyzerDirectory","TreeItemCollapsibleState","None","Collapsed","conVal","hasReadme","icon","fileIconFromType","iconPath","light","__filename","dark","command","contextValue","tooltip","NLP","collapsibleState","keepers","getDirectoryTypes","FileType","Directory","analyzerHasLogFiles","hasFile","hasPats","File","typeFromExtension","hasAllLogs","hasLogDirs","FILE","dirPath","SEQUENCE","ECL","MANIFEST","README","AnalyzerView","sequenceFile","analyzerViewProvider","analyzerView","createTreeView","treeDataProvider","registerCommand","resource","deleteAnalyzer","deleteFile","deleteFolder","loadExampleAnalyzers","openAnalyzer","deleteAnalyzerLogs","deleteAllAnalyzerLogs","updateTitle","copyAnalyzer","dupeAnalyzer","explore","newFolder","moveToFolder","readMe","editReadMe","deleteReadMe","moveDownFolder","moveToParent","renameAnalyzer","renameFile","renameFolder","openFile","importAnalyzers","manifestGenerate","newECLFile","exploreAll","copyAll","updateColorizer","video","copyPath","compileAnalyzer","compileAnalyzerOnly","deployCompiledAnalyzer","runRegressionTest","blessRegression","colorizeAnalyzer","folderUri","converting","attach","ctx","clipboard","writeText","checkForECLAnalyzersDir","analyzerList","createNewECLFile","textFile","readFirstLine","setFile","saveECLFile","showTextDocument","analyzerPath","analyzerFiles","getAnalyzerManifestFiles","cleanPath","kbFiles","manifestFile","getManifestFilePath","mannie","elcFileName","setSpecDir","getPassFiles","getPassItems","copyDataFolder","dataFolder","engineData","engineDirectory","uris","newfile","RENAME","openFolder","canSelectFiles","canSelectFolders","canSelectMany","openLabel","defaultUri","showOpenDialog","analyzerDirExists","select","newdir","delFile","openFileManager","analyzers","toFolder","UNKNOWN","chosen","anaChosen","loadAnalyzer","deleteDescr","TEXT","DELETE","itemCount","yesDescr","noDescr","placeDescr","NLPCompile","runRegress","resolveRegressAnalyzerDir","workspace","getConfiguration","runRegressTerminal","regressionRunner","bless","script","showErrorMessage","engineDir","cmd","termName","term","terminals","createTerminal","show","sendText","goldensExist","modal","choice","deleteAllAnalyzerLogDirs","textView","deleteFolderLogs","deleteLogDirs","deleteDirFiles","workspaceFolders","analyzerUris","analyzerUri","NLPCommands","_ctx","subscriptions","analyze","analyzeDir","reformatRule","reformatOneLine","reformatParens","searchWord","goToFunction","ruleFired","openSelTree","generateRule","generateExactRule","copyContext","openPassFile","duplicateLine","commentLines","selectSequence","passTree","displayMatchedRulesNLP","sortText","lowerCase","removeAccents","runPython","foldAll","unfoldAll","foldRecursively","unfoldRecursively","highlightText","ruleFiredLog","generatePath","nlpCommands","activeTextEditor","editor","selFlag","getSelectedLines","sortLines","rollupLines","linesToText","lineAt","lastLine","lineCount","textRange","Range","edit","editBuilder","snippet","SnippetString","insertSnippet","textNoAccents","normalize","NLPFile","openRuleMatchesText","reformatType","NORMAL","ONELINE","PARENS","TreeFile","findRule","findSelectedTree","generateType","GENERAL","EXACT","nlp","compileTarget","nlpCompile","runCompile","compileKBOnly","KB_ONLY","ANALYZER_ONLY","anapath","ext","sharedLibraryExt","compiledLib","kbUserDir","fullFiles","findFullKBFiles","destParent","rmSync","force","copyFileSync","binDir","destKbUser","pyFiles","findSpecPyFiles","destSpec","analyzerPyDir","pyDirStaged","cpSync","fullMsg","pyMsg","logView","addMessage","ANALYER_OUTPUT","detail","targetLabel","compileFlag","exe","exePath","findKBSourceFiles","findGeneratedCppFiles","withProgress","ProgressLocation","Window","cancellable","progress","report","runDir","compileResult","runNlpCompile","ok","kbOnly","libBaseName","success","compileCppOnCloud","ensureIcuImportLibs","compileSupport","resolveCompileSupport","compileCppWithCMake","libName","sharedLibraryName","libPath","refreshEngineDiagnostics","startUpdater","cp","compileAnaPath","pathForNlpExe","compileWorkPath","vsDevCmd","findVsDevCmdScript","runNlpCompileWithVsDevCmd","execFile","errOut","setupScript","formatCmdArg","shell","hasCMake","support","locateEngineCompileSupport","missingLibraries","missingHeaders","includeDirs","detailParts","execCommand","engineRoot","requiredLibs","optionalLibs","requiredHeaders","includeRootsFromHeaders","headerFiles","hit","findEngineHeader","collectIncludeDirectories","libraryFiles","libFile","findEngineLibrary","headerRoots","existing","headerRelativePath","normalizedRelative","candidateRoots","baseName","expectedNames","expectedLibraryNames","candidateDirs","findFileByName","expected","where","outputLib","cmakeRoot","sourceDir","buildDir","cmakeFile","cmakeCacheFile","stdAfxStub","cmakeContent","generateCompileCMakeLists","outputChannel","createOutputChannel","appendLine","winVsDevCmd","configureArgs","configureResult","execCmakeWithVsDevCmd","appendCommandOutput","buildArgs","buildResult","missingMessage","stubDir","toCMakePath","stubDirCMake","includeLines","libLines","errorMessage","targetPath","getWindowsShortPath","shortPathCmd","shortPath","execSync","cppFiles","libDir","missing","machine","arch","dll","outLib","defFile","runDumpbinExports","defContent","runLibFromDef","parseDumpbinExports","inExports","raw","programFilesX86","vswhere","installPath","execFileSync","scriptPath","editions","baseRoots","edition","stem","stemEndsWithFull","dispatcherUrl","rawEngineVersion","exeEngineVersion","repoEngineVersion","engineVersion","platformKey","cloudPlatformKey","verifyEngineReleaseExists","logUri","stageDir","mkdtempSync","tmpdir","stageCloudPayload","tarPath","tarGzDirectory","sourcesHash","sha256File","manifest","schemaVersion","extensionVersion","form","FormData","tarBytes","Blob","buildRes","fetch","status","submitted","artifactUrl","cached","baseMsg","tickStart","tick","setInterval","sec","polled","pollCloudJob","jobId","clearInterval","downloadToFile","releaseTag","encodeURIComponent","linuxCloudPlatformKey","dirs","src","dst","srcDir","outPath","spawn","crypto","createHash","update","digest","deadline","job","errors","nlpSourceFile","nlpSourceLine","column","severity","buildLogUrl","arrayBuffer","getFileTypes","dirUris","filenames","unlinkSync","copyDirectory","fromPath","toPath","copyFile","changeMod","sameParentDirectory","dir1","dir2","localeCompare","oldPath","newPath","renameSync","findFolder","folderToFind","parentDir","found","analyzerFolderCount","specCount","subDirs","specfile","dirsAndTypes","fileCount","directoryIsLog","getType","FILES","recurse","fileUris","DIRS","children","getDirPath","delDir","deleteSync","deleteFiles","emptyDir","directoryHasFiles","logsDir","fileHasLog","hasFiles","hasDirs","needToCopy","fileFrom","fileTo","fileQueueStatus","fileOpStatus","fileOpType","fileOneOff","stopAllFlag","queueStrs","opStrs","opStatusStrs","timerStatus","opsQueue","refreshQueue","fileOpTypeStrs","seqRow","mils","clearLogs","FILE_OP","fileTimer","stopAll","uri1","uri2","refreshes","operation","extension1","extension2","DIRECTORY","BREAK","APPEND","uriFile1","uriFile2","oneOff","display","u1","u2","filesPerDir","numDirs","zeroLength","newDir","zeroStr","MKDIR","oldFile","baseFile","newFile","charCount","numStr","retStr","DONE","op","alldone","opNum","RUNNING","FAILED","doneRefresh","NEWFILE","appendFileSync","getLastItem","row","ANAFILE","insertPass","ANAFOLDER","renumberPasses","insertNewFolderPass","PAT_TO_NLP","finds","getMatches","searchSequenceFiles","searchTerm","topFlag","getPassFileUris","escapeRegExp","searchFile","searchFiles","functionFlag","bracketsFlag","findConfig","caseSensitive","wholeWord","rx","termLen","passName","passItem","getPasses","passTag","active","half","newText","lineNum","highlighted","FindTreeDataProvider","findItem","resourceUri","element","findView","getFinds","FindView","findItems","findViewProvider","clearAll","setSearchWord","loadFinds","Position","posEnd","Selection","revealRange","regionText","eol","nonTrivial","kind","TokenKind","Newline","isTrivial","toLines","tokenize","pendingBody","nt","lead","extra","last","braceAllman","indentString","opensBrace","endsSemi","Punct","Word","CONTROL","Whitespace","useTabs","tabSize","languages","registerDocumentFormattingEditProvider","documentProvider","registerDocumentRangeFormattingEditProvider","rangeProvider","resolveOptions","fmt","cfg","indentStyle","braceStyle","insertSpaces","EndOfLine","CRLF","provideDocumentFormattingEdits","original","formatted","formatDocument","telemetry","sendError","sendEvent","fullRange","positionAt","TextEdit","fullDocumentEdit","provideDocumentRangeFormattingEdits","offsetAt","regionEdits","formatRegionsInRange","edits","rangeEdits","region","splitRegions","formatRegion","rangeStart","rangeEnd","safe","RegionKind","Rules","formatRulesRegion","Code","formatCodeRegion","DEFAULT_OPTIONS","detectEol","regions","starts","marker","Directive","directiveAtLineStart","startOff","endOff","Preamble","regionKindFor","Other","RULE_START","formatRuleSafe","ruleSpine","LineComment","BlockComment","ruleText","formatRuleText","ReformatType","ruleStr","formattedRule","rules","rulelinesFinal","currentState","isSpace","lastSpace","backSlash","suggested","cNext","SUGGESTED","comment","ARROW","NODE","NODE_DONE","ATTR","ATTR_END","COMMENT","constructLine","maxLine","tabsMax","nodeNumber","ruleLine","hasAtAt","tabstr","tabString","tabsize","tabsmax","tabs","commentStart","userComment","nextWord","lastWord","parenFlag","trimEnd","c2","isSpaceNotNewline","cj","atat","wordStart","REGION_SET","AtAt","PUNCT","isWordBreak","Arrow","REGION_KEYWORDS","HelpTreeDataProvider","collapse","collapsible","expanded","Expanded","ti","ThemeIcon","MarkdownString","promptFile","isVersionRoot","page","helpView","helpFilePath","listVersionNotes","isAnnounceRoot","listAnnouncements","isPromptRoot","listPrompts","isLinksRoot","listLinks","HelpView","windowCHMHelp","openHelpIndex","openFunctionHelp","openFunctionPage","openVariableHelp","openHome","openVscodeHelp","helpTreeProvider","createClaudePrompt","openPrompt","openLink","showLatestAnnouncement","copyHelpPath","panel","helpTree","cursorPosition","wordRange","getWordRangeAtPosition","getTerm","displayHelpFile","character","startPos","endPos","dollarRange","dollarWord","getWebviewContent","htmlFile","helpPath","displayMarkdownHelp","helpExists","relativeName","mdFile","linksFile","links","openExternal","promptsDir","promptVariables","exeName","cur","getCurrentAnalyzer","engineExe","visualTextDir","analyzersDir","templatesDir","languagesDir","miscDir","helpDir","currentAnalyzer","fillPromptVariables","vars","copyPromptToClipboard","openPromptByFile","full","nl","doc","openTextDocument","language","previewPromptByFile","tmpDir","tmpFile","compareVersions","pa","pb","packageJSON","showStartupHelp","checkVersionNotes","checkAnnouncements","lastSeen","globalState","present","seen","unseen","jsonStr","setFilePath","fileExists","getFilePath","FileSystemProvider","EMPTY_TEXT","kbItem","getKBFiles","isCompiledLib","fileIconFromExt","clear","order","anaRoot","libExt","compiledLibs","Unknown","dirHasNonText","existingFile","filters","sel","textPath","existingFolder","logFolderOrig","logFolderNew","renameDir","KBView","findFile","FindFile","kbView","KBItem","openKBFile","openText","newKBBFile","newDictFile","generateMain","mergeDicts","byteSort","existingFiles","toggleActive","copyToAnalyzer","cleanFiles","modAdd","modLoad","langLibs","miscLibs","compileKB","fileDir","dictFiles","dictFile","chooseLibFiles","addFile","cmp","started","blocks","seenDict","allStr","allButValidStr","dictFiles2","insertLibraryFile","outputView","copyFileToAnalyzer","newFilename","kbdir","appFile","attrs","top","problems","OPEN_TO_CLOSE","CLOSE_TO_OPEN","createDiagnosticCollection","byFile","sources","parseEngineErrors","resolveTarget","diag","Diagnostic","cleanMessage","DiagnosticSeverity","Warning","diags","getUriByPassNumber","parseEngineErrorLine","trimmed","analyzeSymbols","rawLine","indentLen","trimStart","cut","isAssignment","REGION_MARKERS","DECL","CODE","PRE","POST","CHECK","RULES","MULTI","SELECT","RECURSE","NODES","PATH","GROUP","KEYWORDS","RULE_KEYWORDS","LETTER_FUNCTIONS","N","X","G","BUILTIN_FUNCTIONS","BUILTIN_SET","KEYWORD_SET","registerDocumentSymbolProvider","symbolProvider","registerHoverProvider","hoverProvider","registerDefinitionProvider","definitionProvider","registerWorkspaceSymbolProvider","workspaceSymbolProvider","registerReferenceProvider","referenceProvider","registerDocumentHighlightProvider","highlightProvider","registerRenameProvider","renameProvider","registerCompletionItemProvider","completionProvider","registerSignatureHelpProvider","signatureProvider","registerFoldingRangeProvider","foldingProvider","registerDocumentSemanticTokensProvider","semanticProvider","semanticLegend","registerCodeActionsProvider","codeActionProvider","providedCodeActionKinds","CodeActionKind","QuickFix","watcher","createFileSystemWatcher","onDidDelete","nlpWorkspaceIndex","removeFile","onDidCreate","indexUri","onDidSaveTextDocument","languageId","indexText","diagnostics","timers","refreshDiagnostics","onDidOpenTextDocument","onDidChangeTextDocument","scheduleRefresh","onDidCloseTextDocument","gatherSymbolSets","userFuncs","concepts","letters","builtins","toDocSymbol","sym","selRaw","selStart","selEnd","ds","DocumentSymbol","SymbolKind","Namespace","Method","kindOf","provideDocumentSymbols","provideHover","markerAtPosition","Hover","md","isTrusted","provideDefinition","locations","declaredSymbols","Location","ensureBuilt","here","provideWorkspaceSymbols","query","SymbolInformation","Class","provideReferences","references","includeDeclaration","prepareRename","provideRenameEdits","newName","WorkspaceEdit","provideDocumentHighlights","DocumentHighlight","staticItem","CompletionItem","documentation","BUILTIN_ITEMS","CompletionItemKind","KEYWORD_ITEMS","Keyword","RULE_KEYWORD_ITEMS","LETTER_ITEMS","REGION_ITEMS","indexItems","kinds","provideCompletionItems","linePrefix","regionKindAt","provideFoldingRanges","foldingRanges","FoldingRange","FoldingRangeKind","Region","provideSignatureHelp","findEnclosingCall","decl","signature","sigInfo","params","sig","splitParams","SignatureInformation","parameters","ParameterInformation","help","SignatureHelp","signatures","activeSignature","activeParameter","activeParam","SEM_TYPES","SemanticTokensLegend","SEM_INDEX","provideDocumentSemanticTokens","builder","SemanticTokensBuilder","classifyTokens","build","UNKNOWN_FN_CODE","provideCodeActions","actions","fix","CodeAction","isPreferred","computeProblems","isKnown","sets","findUnknownCalls","suggestion","known","maxDist","spans","codeRegionSpans","inCode","off","closest","levenshtein","cost","best","bestDist","IDENT","openParen","RULE_HEAD","FUNC_DECL","scanRules","nameOffsetInMatch","termIdx","scanFunctions","offsetToPosition","NlpWorkspaceIndex","byName","refsByName","refsByFile","built","building","rebuild","findFiles","isKb","indexKb","indexNlp","addDecl","bucket","syms","indexUsages","parseKbConcepts","refs","decls","kept","OutputTreeDataProvider","logItem","getLogs","getParent","LogView","logs","logViewProvider","revealLast","loadCGLog","loadTimingLog","makeAna","stopFileOps","stopUpdater","exploreEngineDir","downloadHelp","updaterHelp","checkUpdates","updateDebug","toggleAutoUpdate","loadAnalyzerOuts","loadAnalyzeSummary","enginePath","reveal","focus","arfirm","getAutoUpdate","setAutoUpdate","outFile","errFile","addLogFile","LOGFILE","cgFile","errFlag","syntaxErrorsLog","loadMakeAna","errorLog","makeFlag","syntaxErrorsOutput","syntaxErrors","logFile","parseLogLine","INFO","SYNTAX_ERROR","logFileName","spaces","onlySyntax","noClear","typeIcon","firstTwoNumbers","OPEN_PATH","lineTrimmed","WARNING","DOWNLOAD_ERROR","JSON_ERROR","UPDATER_TIMEOUT","modType","ModFile","MODFILE_HEADER","MODFILE_KB","MODFILE_SPEC","MODFILE_INPUT","seqInsertPoint","getMod","retVal","modFileList","showFile","appendFile","getUri","kb","spec","parseFiles","selectInsertPoint","seqItem","findPassFromUri","saveSection","clearMod","modItem","good","relFilePath","getModItem","choicePasses","fileContent","appendText","headerLine","anaQueueStatus","analyzerStatus","analyzerOperation","analyzerType","separateLines","anaQueue","processID","Notification","onCancellationRequested","nlpStatusBar","analyzerButton","filestr","typeStr","analyzeStart","setType","outputFileType","ALL","getDevMode","devFlagStr","DevMode","DEV","SILENT","runMode","getRunMode","usingCompiled","RunMode","COMPILED","COMPILED_KB","COMPILED_ANALYZER","stageCompiledAnalyzer","setAnalyzerStatus","ANALYZING","execStart","procWall","resetAnalyzerButton","engineOut","round2","totalRaw","setupRaw","postRaw","kbMatch","anaMatch","execMatch","lazyFiles","lazyRe","lazyM","kbbReadMatch","dictReadMatch","kbSec","anaSec","execSec","rTotal","rSetup","rKb","rAna","rExec","rPost","rEngine","secs","summary","lazyTimeShown","lazyFile","isDict","readMatch","typeKey","timeStr","pid","compiledLibName","primaryAction","stale","stalePath","addAnalyzer","RUN","addDirsRecursive","subdir","startAnalyzer","analyzerTimer","shutDown","insertRule","viewColumn","ViewColumn","Beside","insert","replaceContext","newContextStr","beside","replaceContextLine","contextSel","findLineSelection","findLineStartsWith","replaceContextLineInFile","replaceLineNumber","saveFileLines","setDocument","getFileType","highlight","TXXT","passNumberFromAna","openTreeFile","openTreeFileFromPath","openRuleMatchFile","passFileUri","startLine","newLineStr","lastLineLength","addingFlag","commented","getSeparator","posStart","rulevars","findRuleText","formatRule","rang","DICT","KBB","rulestr","charStart","charEnd","lastline","multilined","arrowFlag","atSignFlag","firsttime","getContextLine","contextLine","outputItem","getOutputFiles","OutputView","outputViewProvider","copytoKB","copytoText","deleteOutput","addTest","runTest","deleteTest","editTest","loadKB","loadTxxt","loadTrees","loadAll","loadOrphans","deleteOrphans","outputFiles","logDirectory","testDirectory","editTestFiles","textFilePath","testInit","regressionTestFile","closeTest","hasTestFile","testFilePath","nlpFiles","nlpFile","isOrphan","clearOutput","fileHasTest","matchFiles","finalTree","candidates","cand","cleanZeroZero","analyzerFolderList","LOG_DIR_SUFFIX","DEFAULT_EXCLUDE_NAMES","DEFAULT_EXCLUDE_SUFFIXES","DEFAULT_IGNORE_FIELDS","RegressionRunner","scope","run","expectedRoot","inputRoot","rel","dirHasJson","anaPath","loadConfig","inputs","scopeLabel","findInputs","ignoreFields","failed","blessed","inputUri","actual","canon","gp","goldenPath","serialize","deepEqual","removed","added","diffRecords","inputPath","rmrf","outJson","walkDir","relPosix","include","g","globMatch","exclude","cfgPath","ignore_fields","ka","stable","records","bag","stripped","eb","ab","sortKeys","re","moveDirection","newPassType","PassItem","library","inFolder","tokenizers","tokenizerTooltips","isTokenizer","fetchTooltip","isRuleFile","isPython","isFolder","isStub","isEnd","passItems","cleanpasses","newcontent","libraryFileCheck","getLibraryFile","addSpec","passStr","setPass","getPassItemFiles","getLastItemInFolder","folderItem","nlpFileName","tokenStr","clean","passItemUri","passString","passname","getPassByRow","getPassByNumber","passNumber","passCount","atBottom","getFolderPasses","cleanPasses","passes","currentPass","renamePass","newPassName","findPass","duplicatePass","dupePath","dupeItem","createPassItemFromFile","newpass","pi","pass","passPath","findPassByFilename","insertNewPass","newPass","foundItem","createNewPassFile","insertNewPassEnd","insertNewPythonPass","createPythonPassItem","createNewPythonFile","newfilepath","newPythonContent","py","newPassItem","createPassItemFolder","insertNewFolder","moveToFolderEnd","insertNewFolderEnd","deletePass","deletePassInSeqFile","foldersOnly","newPassContent","todayDate","today","username","passFileName","includeStubs","collect","findFilesWithExtension","infolder","getSequenceFile","getLibraryDirectory","saveType","saveActive","nextPass","movePass","UP","swapItems","nextTop","prevTop","DOWN","passesOne","passesTwo","totalPassCount","moveCount","prevNLP","itemOne","itemTwo","copyItem","swapAuxFiles","toItem","fromItem","oneFile","swapFile","twoFile","oneExists","twoExists","indent","includeTokFlag","choiceRulePasses","getSisterFiles","hasSisterFile","seqItems","compareSisters","filename1","filename2","getLibraryFiles","PassTree","openingFolder","hasPat","pnum","oneActive","hasFileType","anaName","getCurrentAnalyzerName","convertPatFiles","moveSequence","libraryUtilFuncs","libraryKBFuncs","libraryTreeFuncs","libraryLines","libraryLinesDictTokZ","libraryWhiteSpaces","insertLibraryPass","insertChosenPasses","insertSisterPass","insertCode","insertNew","insertDecl","insertRules","insertPython","insertPythonLibrary","pyDir","scripts","listLibraryPython","desc","renameTopComment","newLine","seedName","incrementEndNumber","neword","typePat","typeRec","typeOn","typeOff","renameToken","dicttok","dicttokz","chartok","cmltok","SequenceView","openPass","openTree","displayMatchedRules","openKB","searchTop","convertPatToNLP","insertOrphan","compareLibrary","searchFilesRecursively","traverseDirectory","currentDir","fromDirIn","makeAbbrevFolderName","sequence","toUri","fromUri","safeBlockFilename","kbFile","tUri","cuttoff","abbrev","orphanFlag","safeFilename","newFilePath","dotIndex","newNumber","front","nlpFilePath","passItemFromPath","seqName","findWord","finalMatches","matchFunctionLine","notMissing","isPythonItem","isFileType","setFileType","logfile","firefile","firedFile","kbfile","nlpStatusBarRun","nlpStatusBarText","nlpStatusBarDev","nlpStatusBarFired","nlpStatusBarRunMode","nlpStatusBarEngineVersion","nlpStatusBarVisualTextVersion","nlpStatusBarFilesVersion","nlpStatusBarAnalyzersVersion","FiredMode","NLPStatusBar","devMode","firedMode","FIRED","readRunModeConfig","createStatusBarItem","StatusBarAlignment","Left","Right","MIN_VALUE","chooseDev","chooseFired","toggleRunMode","openEngineVersionSettings","openVisualTextVersionSettings","openFilesVersionSettings","openAnalyzersVersionSettings","clickedAnalyzerButton","statusBarClick","taskKill","NLP_EXE","extensionDirectory","checkVTFilesVersion","emptyOp","checkAnalyzersVersion","setDevState","BUILT","setFiredState","updateDevState","getFiredMode","updateFiredState","updateTxxtFiles","setRunMode","writeRunModeConfig","updateRunModeState","nextRunMode","INTERPRETED","currentAnalyzerName","ana","compiledLibPath","hasCompiledLib","ConfigurationTarget","WorkspaceFolder","Global","namepath","updateEngineVersion","updateVisualTextVersion","updateFilesVersion","updateAnalyzerssVersion","repoVTFilesVersion","repoAnalyzersVersion","reason","measurements","post","isError","isTelemetryEnabled","machineId","session","sessionId","props","metrics","separatorType","textNormalized","sepNormalized","sepType","SEP_UNKNOWN","linesNormalized","filetype","nlpFileExts","selLines","selStartLine","selEndLine","choosePythonScript","getExtensionPath","runPythonCode","pythonScriptPath","endLine","newRang","deletes","del","getExtension","setStr","separation","SEQ","TXT","LOG","NLM","getBasename","counts_rn","counts_r","counts_n","SEP_RN","SEP_R","SEP_N","normalizeText","regReplace","unnormalizeText","normalized","numberOfLines","getLine","lineNumber","startsWithStr","getSeparatorLength","getSeparatorNormalized","getStartLine","fileHasNLines","liner","textItem","getTextFastLoad","hasTest","hasNonText","startTime","endTime","timeDiff","checkFileCount","fastAnswered","offMsg","setTextFastLoad","importFiles","TextView","showCollapseAll","analyzerCurrent","runRegressionItem","blessRegressionItem","fastLoad","allItems","deleteFileLogs","splitDir","propertiesFile","propertiesFolder","python","fastFlag","moveFileWithFolders","outputFolder","textUri","sizeStr","humanFileSize","size","counts","si","dp","thresh","foldername","askAnalyzeFolder","deleteFileOrFolderLogs","deleteFileLogDir","regressionAnalyzerDir","itemName","deleteFolderFileLogs","logDirs","getLogDirs","logPath","numFiles","fireds","Highlight","selectedTreeStr","HighlightFile","inputFile","selectedLines","parseTreeLines","tline","searchInDictionaries","gatherChildrenText","matchDictLine","sensitivity","treeLine","parseTreeLine","txt","getPassFromPath","lastIndent","ustart","uend","setFilesNames","parseBrackets","parseFireds","lineCharacterToAbsolute","firedNumber","findMatchByAbsolute","getFired","rulenum","ruleFileUri","ruleline","findSelectedTreeStr","absoluteRangeFromSelection","findTreeFileLines","genType","generateRuleFromStr","ruleStrOutput","passFilePath","ruleFromLines","ruleStrFinal","lastend","newRuleStr","nlpppSplitter","isint","nodeStr","charType","DIGIT","ALPHA","SPACE","SPECIAL","fired","firstTok","openTemporaryFile","tempDir","bracketCount","parens2","angle","angle2","getCharacterLength","textfile","absStart","absEnd","linecount","multiline","beforeStr","selStr","startb","endb","squares","parseBracketsRegex","curlies","startPattern","endPattern","tokencount","lenBracket","refire","lastTo","ufrom","uto","tts","firstChar","nextLine","writeFiredText","fileCreateTime","ctime","logDate","inputDate","textfire","byteText","TextEncoder","encode","hl","TextDecoder","decode","bt","between","tx","fileType","halfWidth","charWidth","assignStaggerRows","labelGap","maxRows","rowOf","sorted","rowRight","maxRow","hw","left","right","rows","countNodes","colWidth","rowHeight","margin","stagger","maxStaggerRows","isCollapsed","nextLeaf","byDepth","place","hasKids","collapsed","laidNode","laid","leaves","width","height","findNode","subtreeIds","internalOnly","openDepth","bigThreshold","maxFanout","indentOf","skipWs","skipWhitespace","roots","br","metaChunk","fields","assignIds","ind","layout","cls","hitW","treeUri","textDocuments","openGraph","showTreeGraph","subtreeText","showTreeGraphSelection","panelReady","pendingFlush","renderSvg","layoutTree","renderTreeSvg","inputFileForTree","treeFsPath","flush","webview","postMessage","svg","titleSuffix","createWebviewPanel","preserveFocus","enableScripts","retainContextWhenHidden","html","random","nonce","onDidDispose","onDidReceiveMessage","One","ed","TextEditorRevealType","InCenter","ensurePanel","parseTree","defaultCollapsed","tabGroups","tg","findIndex","tab","TabInputText","upStat","upOp","upType","upComp","upPush","VisualText","statusStrs","compStrs","EXTENSION_NAME","ICU1_WIN","ICU2_WIN","ICU3_WIN","NLPENGINE_FILES_ASSET","NLPENGINE_COMPILE_FILES_ASSET","NLPENGINE_REPO","VISUALTEXT_FILES_REPO","ANALYZERS_REPO","VISUALTEXT_FILES_ASSET","ANALYZERS_ASSET","GITHUB_REPOSITORY","GITHUB_RELEASE_LATEST","GITHUB_RELEASE_LATEST_DOWNLOAD","GITHUB_ENGINE_LATEST_RELEASE","GITHUB_ENGINE_LATEST_VERSION","GITHUB_VISUALTEXT_FILES_LATEST_VERSION","GITHUB_ANALYZERS_LATEST_VERSION","Analyzer","FileOps","vtFilesVersion","analyzersVersion","askModify","autoUpdateFlag","homeDir","extensionDir","workspaceFold","modFile","extensionItems","latestExtIndex","lastestEngineIndex","updaterID","testItem","matchLines","misFiles","misLines","colorizeChecked","homedir","readConfig","getExtensionDirs","initSettings","outputPathFlag","regressFile","outputFile","testDiff","testResults","fileText","testText","numLines","mismatch","mismatches","lineFile","lineTest","modExists","preInfoFlag","plat","rootPath","getLatestExtPath","extensionParentDirectory","pushCheckVersions","updaterTimer","pushCheckEngineFiles","pushCheckVTFiles","pushCheckAnalyzerFiles","addUpdateOperation","BACK","UNZIP","START","CHECK_EXISTS","VT_FILES","ANALYZER_FILES","DOWNLOAD","ICU1","ICU2","ICU3","ENGINE_FILES","ENGINE_COMPILE_FILES","pushDeleteEngineFiles","pushDeleteVTFiles","pushDeleteAnalyzers","pushDownloadEngineFiles","pushDownloadVTFiles","pushDownloadAnalyzers","opIn","component","remote","folders","libFilenames","nlpExe","zipFiles","repo","engDir","linuxZipName","versionMatch","libRelease","lib","versionFromPath","allDone","CANCEL","endDir","missingOne","pathPopulated","isCompVersion","VERSION","unzip","updateVersion","checkExeVersion","setVTFilesVersion","setAnalyzersVersion","fetchExeVersion","checkEngineVersionRepo","newerVersion","FRONT","newer","exeVersion","repoVersion","versionCompare","statusFlag","checkVTFilesVersionRepo","currentVersion","getVTFilesVersion","checkAnalyzersVersionRepo","getAnalyzersVersion","downloader","st","moveIntoPlace","extractArchive","useTar","tryExtractZip","why","WINDIR","windowsHide","vtFileDir","isLinuxExeZip","UNZIP_TIMEOUT_MS","_resolve","srcRoot","subfolder","saveit","currAnalyzer","setCurrentAnalyzer","saveCurrentAnalyzer","ensureExists","toFile","fromFile","configAutoUpdate","configFindUsername","configAnalzyerDirectory","configCurrentAnalzyer","failedWarning","findExtensionIndex","extDir","version1","version2","toks1","toks2","v1","trimV","v2","visualTextFilesDirectory","settled","finish","latestVersion","latest","analyzerDirectory","testForLogs","getAnalyzersRecursive","anas","vtDir","vtDirName","hasLogFiles","setUpdateEngine","updateEngine","updateVTFiles","updateAnalyzersFiles","overwrite","extensionUri","settingsObj1","settingsObj2","mergedObj","platformCmd","createPanel","displayHTML","specFlag","analyzerFolderListRecurse","seq","baseUpper","protectedFiles","startsWithNumber","convertUriToStr","wrapper","newBuffer","zlib","fd_slicer","fromFd","decodeStrings","validateEntrySizes","strictFileNames","defaultCallback","fstat","fromRandomAccessReader","reader","totalSize","bufferSize","eocdrWithoutCommentSize","bufferReadStart","readAndAssertNoEof","readUInt32LE","eocdrBuffer","diskNumber","readUInt16LE","entryCount","centralDirectoryOffset","commentLength","expectedCommentLength","decodeBuffer","ZipFile","zip64EocdlBuffer","zip64EocdlOffset","zip64EocdrOffset","readUInt64LE","zip64EocdrBuffer","emitError","readEntryCursor","entriesRead","emittedError","_readEntry","emitErrorAndAutoClose","Entry","dosDateTimeToDate","validateFileName","AssertByteCountStream","byteCount","actualByteCount","expectedByteCount","RandomAccessReader","RefUnrefFilter","unreffedYet","isUtf8","lower32","fromBuffer","versionNeededToExtract","generalPurposeBitFlag","compressionMethod","lastModFileTime","lastModFileDate","compressedSize","uncompressedSize","fileNameLength","extraFieldLength","fileCommentLength","internalFileAttributes","relativeOffsetOfLocalHeader","fileCommentStart","extraFieldBuffer","extraFields","headerId","dataSize","dataStart","dataEnd","dataBuffer","fileComment","zip64EiefBuffer","extraField","readUInt8","oldNameCrc32","expectedCompressedSize","isEncrypted","validateFileNameOptions","relativeStart","relativeEnd","decrypt","isCompressed","decompress","localFileHeaderEnd","fileDataStart","fileDataEnd","endpointStream","inflateFilter","createInflateRaw","unpipe","getLastModDate","_flush","emptyStream","_readStreamForRange","refUnrefFilter","byteCounter","allocUnsafe","require","MergedStream","validateStream","onMergedStreamFinished","endWhenStreamsDone","passThroughStream","aborted","onFinished","remove","updateMaxListeners","PASSTHROUGH_LISTENERS_COUNT","controller","AbortController","onMergedStreamEnd","onInputStreamsUnpipe","signal","cleanup","unpipedStream","unpipeEvent","PASSTHROUGH_LISTENERS_PER_STREAM","afterMergedStreamFinished","onInputStreamEnd","onInputStreamUnpipe","abortStream","isAbortError","errorStream","maxListeners","getMaxListeners","isType","fsStatType","statsMethodName","isTypeSync","isDirectorySync","urlOrPath","fileURLToPath","slash","defaultIgnoredDirectories","ignoreFilesGlobOptions","getIsIgnoredPredicate","flatMap","applyBaseToPattern","parseIgnoreFile","fileOrDirectory","toRelativePath","normalizeOptions","normalizePathForDirectoryGlob","getDirectoryGlob","directoryPath","extensionGlob","directoryToGlob","directoryPaths","directoryToGlobSync","toPatternsArray","checkCwdOption","expandDirectories","normalizeArguments","function_","normalizeArgumentsSync","getIgnoreFilesPatterns","ignoreFiles","gitignore","ignoreFilesPatterns","createFilterFunction","isIgnoredByIgnoreFiles","getFilterSync","isIgnoredByIgnoreFilesSync","fastGlobResult","pathKey","unionFastGlobResults","convertNegativePatterns","ignorePattern","normalizeExpandDirectoriesOption","globTasks","directoryToGlobOptions","generateTasksSync","directoryToGlobSyncOptions","globbySync","readableObjectMode","highWaterMarks","readableHighWaterMark","getHighWaterMark","writableHighWaterMark","mergeStreams","pMapSkip","PresentableError","isPresentable","safeCheck","path_","isPathCwd","childPath","parentPath","relation","isPathInside","normalizePatterns","deleteAsync","dryRun","totalCount","deletedCount","percent","removedFiles","iterable","mapper","stopOnError","resolve_","reject_","iterator","isSafeInteger","skippedIndexesMap","isRejected","isResolved","isIterableDone","resolvingCount","currentIndex","signalListener","removeEventListener","addEventListener","nextItem","AggregateError","pureResult","pMap","extendStatics","setPrototypeOf","__extends","__","__assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__esDecorate","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","descriptor","addInitializer","__runInitializers","useValue","__propKey","__setFunctionName","__metadata","metadataKey","metadataValue","metadata","__generator","sent","trys","ops","Iterator","verb","__createBinding","k2","__exportStar","__values","__read","ar","__spread","__spreadArrays","il","jl","__spreadArray","pack","__await","__asyncGenerator","AsyncIterator","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__setModuleDefault","ownKeys","__importStar","__classPrivateFieldGet","receiver","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","dispose","asyncDispose","_SuppressedError","SuppressedError","suppressed","__disposeResources","fail","hasError","__rewriteRelativeImportExtension","preserveJsx","tsx","cm","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","definition","toStringTag","nmd","registerFormatter","registerLanguageFeatures","registerEngineDiagnostics","registerTreeGraph","activate","onWillSaveTextDocument","waitUntil"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 93175c53..2ff0838c 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "NLP", "description": "NLP++: the only computer programming language built for NLP — create and visually debug analyzers directly in VS Code.", "icon": "resources/NLPppLogo.png", - "version": "3.11.12", + "version": "3.11.13", "publisher": "dehilster", "enableApiProposals": false, "engines": { diff --git a/src/helpView.ts b/src/helpView.ts index efdbc806..4a6aae5f 100644 --- a/src/helpView.ts +++ b/src/helpView.ts @@ -329,6 +329,7 @@ export class HelpView { templatesDir: visualText.getVisualTextDirectory('analyzer-templates'), languagesDir: visualText.getVisualTextDirectory('languages'), miscDir: visualText.getVisualTextDirectory('misc'), + helpDir: path.join(visualText.getVisualTextDirectory('Help'), 'markdown'), currentAnalyzer: (cur && cur.fsPath && cur.fsPath.length > 1) ? cur.fsPath : '(no analyzer loaded)', }; }