Socket
Socket
Sign inDemoInstall

linkifyjs

Package Overview
Dependencies
0
Maintainers
1
Versions
49
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.0.2 to 4.1.0

281

dist/linkify.cjs.d.ts

@@ -1,2 +0,2 @@

export var __esModule: boolean;
export const __esModule: boolean;
export type Transition<T> = null | T;

@@ -145,9 +145,46 @@ /**

isLink: boolean;
toString: () => string;
toHref: (scheme?: string) => string;
toFormattedString: (options: Options) => string;
toFormattedHref: (options: Options) => string;
startIndex: () => number;
endIndex: () => number;
toObject: (protocol?: string) => {
/**
* Return the string this token represents.
* @return {string}
*/
toString(): string;
/**
* What should the value for this token be in the `href` HTML attribute?
* Returns the `.toString` value by default.
* @param {string} [scheme]
* @return {string}
*/
toHref(scheme?: string): string;
/**
* @param {Options} options Formatting options
* @returns {string}
*/
toFormattedString(options: Options): string;
/**
*
* @param {Options} options
* @returns {string}
*/
toFormattedHref(options: Options): string;
/**
* The start index of this token in the original input string
* @returns {number}
*/
startIndex(): number;
/**
* The end index of this token in the original input string (up to this
* index but not including it)
* @returns {number}
*/
endIndex(): number;
/**
Returns an object of relevant values for this token, which includes keys
* type - Kind of token ('url', 'email', etc.)
* value - Original text
* href - The value that should be added to the anchor tag's href
attribute
@method toObject
@param {string} [protocol] `'http'` by default
*/
toObject(protocol?: string): {
type: string;

@@ -160,3 +197,7 @@ value: string;

};
toFormattedObject: (options: Options) => {
/**
*
* @param {Options} options Formatting option
*/
toFormattedObject(options: Options): {
type: string;

@@ -169,4 +210,13 @@ value: string;

};
validate: (options: Options) => boolean;
render: (options: Options) => {
/**
* Whether this token should be rendered as a link according to the given options
* @param {Options} options
* @returns {boolean}
*/
validate(options: Options): boolean;
/**
* Return an object that represents how this link should be rendered.
* @param {Options} options Formattinng options
*/
render(options: Options): {
tagName: any;

@@ -208,8 +258,39 @@ attributes: {

o: Required<Opts>;
defaultRender: (ir: IntermediateRepresentation) => any;
defaultRender: any;
ignoreTags: string[];
check: (token: MultiToken) => boolean;
get: <K extends keyof Opts>(key: K, operator?: string, token?: MultiToken) => any;
getObj: <L extends keyof Opts>(key: L, operator?: string, token?: MultiToken) => any;
render: (token: MultiToken) => any;
/**
* Returns true or false based on whether a token should be displayed as a
* link based on the user options.
* @param {MultiToken} token
* @returns {boolean}
*/
check(token: MultiToken): boolean;
/**
* Resolve an option's value based on the value of the option and the given
* params. If operator and token are specified and the target option is
* callable, automatically calls the function with the given argument.
* @template {keyof Opts} K
* @param {K} key Name of option to use
* @param {string} [operator] will be passed to the target option if it's a
* function. If not specified, RAW function value gets returned
* @param {MultiToken} [token] The token from linkify.tokenize
* @returns {Opts[K] | any}
*/
get<K extends keyof Opts>(key: K, operator?: string, token?: MultiToken): any;
/**
* @template {keyof Opts} L
* @param {L} key Name of options object to use
* @param {string} [operator]
* @param {MultiToken} [token]
* @returns {Opts[L] | any}
*/
getObj<L extends keyof Opts>(key: L, operator?: string, token?: MultiToken): any;
/**
* Convert the given token to a rendered element that may be added to the
* calling-interface's DOM
* @param {MultiToken} token Token to render to an HTML element
* @returns {any} Render result; e.g., HTML string, DOM element, React
* Component, etc.
*/
render(token: MultiToken): any;
}

@@ -263,9 +344,75 @@ /**

t: T;
accepts: () => boolean;
go: (input: string) => State<T>;
has: (input: string, exactOnly: boolean) => boolean;
ta: (inputs: string | string[], next?: T | State<T>, flags?: Flags, groups?: Collections<T>) => void;
tr: (regexp: RegExp, next?: T | State<T>, flags?: Flags, groups?: Collections<T>) => State<T>;
ts: (input: string | string[], next?: T | State<T>, flags?: Flags, groups?: Collections<T>) => State<T>;
tt: (input: string, next?: T | State<T>, flags?: Flags, groups?: Collections<T>) => State<T>;
accepts(): boolean;
/**
* Follow an existing transition from the given input to the next state.
* Does not mutate.
* @param {string} input character or token type to transition on
* @returns {?State<T>} the next state, if any
*/
go(input: string): State<T>;
/**
* Whether the state has a transition for the given input. Set the second
* argument to true to only look for an exact match (and not a default or
* regular-expression-based transition)
* @param {string} input
* @param {boolean} exactOnly
*/
has(input: string, exactOnly: boolean): boolean;
/**
* Short for "transition all"; create a transition from the array of items
* in the given list to the same final resulting state.
* @param {string | string[]} inputs Group of inputs to transition on
* @param {Transition<T> | State<T>} [next] Transition options
* @param {Flags} [flags] Collections flags to add token to
* @param {Collections<T>} [groups] Master list of token groups
*/
ta(inputs: string | string[], next?: T | State<T>, flags?: Flags, groups?: Collections<T>): void;
/**
* Short for "take regexp transition"; defines a transition for this state
* when it encounters a token which matches the given regular expression
* @param {RegExp} regexp Regular expression transition (populate first)
* @param {T | State<T>} [next] Transition options
* @param {Flags} [flags] Collections flags to add token to
* @param {Collections<T>} [groups] Master list of token groups
* @returns {State<T>} taken after the given input
*/
tr(regexp: RegExp, next?: T | State<T>, flags?: Flags, groups?: Collections<T>): State<T>;
/**
* Short for "take transitions", will take as many sequential transitions as
* the length of the given input and returns the
* resulting final state.
* @param {string | string[]} input
* @param {T | State<T>} [next] Transition options
* @param {Flags} [flags] Collections flags to add token to
* @param {Collections<T>} [groups] Master list of token groups
* @returns {State<T>} taken after the given input
*/
ts(input: string | string[], next?: T | State<T>, flags?: Flags, groups?: Collections<T>): State<T>;
/**
* Short for "take transition", this is a method for building/working with
* state machines.
*
* If a state already exists for the given input, returns it.
*
* If a token is specified, that state will emit that token when reached by
* the linkify engine.
*
* If no state exists, it will be initialized with some default transitions
* that resemble existing default transitions.
*
* If a state is given for the second argument, that state will be
* transitioned to on the given input regardless of what that input
* previously did.
*
* Specify a token group flags to define groups that this token belongs to.
* The token will be added to corresponding entires in the given groups
* object.
*
* @param {string} input character, token type to transition on
* @param {T | State<T>} [next] Transition options
* @param {Flags} [flags] Collections flags to add token to
* @param {Collections<T>} [groups] Master list of groups
* @returns {State<T>} taken after the given input
*/
tt(input: string, next?: T | State<T>, flags?: Flags, groups?: Collections<T>): State<T>;
}

@@ -413,48 +560,48 @@ export namespace State {

__proto__: any;
WORD: string;
UWORD: string;
LOCALHOST: string;
TLD: string;
UTLD: string;
SCHEME: string;
SLASH_SCHEME: string;
NUM: string;
WS: string;
NL: string;
OPENBRACE: string;
OPENBRACKET: string;
OPENANGLEBRACKET: string;
OPENPAREN: string;
CLOSEBRACE: string;
CLOSEBRACKET: string;
CLOSEANGLEBRACKET: string;
CLOSEPAREN: string;
AMPERSAND: string;
APOSTROPHE: string;
ASTERISK: string;
AT: string;
BACKSLASH: string;
BACKTICK: string;
CARET: string;
COLON: string;
COMMA: string;
DOLLAR: string;
DOT: string;
EQUALS: string;
EXCLAMATION: string;
HYPHEN: string;
PERCENT: string;
PIPE: string;
PLUS: string;
POUND: string;
QUERY: string;
QUOTE: string;
SEMI: string;
SLASH: string;
TILDE: string;
UNDERSCORE: string;
EMOJI: string;
SYM: string;
WORD: "WORD";
UWORD: "UWORD";
LOCALHOST: "LOCALHOST";
TLD: "TLD";
UTLD: "UTLD";
SCHEME: "SCHEME";
SLASH_SCHEME: "SLASH_SCHEME";
NUM: "NUM";
WS: "WS";
NL: "NL";
OPENBRACE: "OPENBRACE";
OPENBRACKET: "OPENBRACKET";
OPENANGLEBRACKET: "OPENANGLEBRACKET";
OPENPAREN: "OPENPAREN";
CLOSEBRACE: "CLOSEBRACE";
CLOSEBRACKET: "CLOSEBRACKET";
CLOSEANGLEBRACKET: "CLOSEANGLEBRACKET";
CLOSEPAREN: "CLOSEPAREN";
AMPERSAND: "AMPERSAND";
APOSTROPHE: "APOSTROPHE";
ASTERISK: "ASTERISK";
AT: "AT";
BACKSLASH: "BACKSLASH";
BACKTICK: "BACKTICK";
CARET: "CARET";
COLON: "COLON";
COMMA: "COMMA";
DOLLAR: "DOLLAR";
DOT: "DOT";
EQUALS: "EQUALS";
EXCLAMATION: "EXCLAMATION";
HYPHEN: "HYPHEN";
PERCENT: "PERCENT";
PIPE: "PIPE";
PLUS: "PLUS";
POUND: "POUND";
QUERY: "QUERY";
QUOTE: "QUOTE";
SEMI: "SEMI";
SLASH: "SLASH";
TILDE: "TILDE";
UNDERSCORE: "UNDERSCORE";
EMOJI: "EMOJI";
SYM: "SYM";
}>;
declare var groups: Collections<string>;
export {};

@@ -144,9 +144,46 @@ export type Transition<T> = null | T;

isLink: boolean;
toString: () => string;
toHref: (scheme?: string) => string;
toFormattedString: (options: Options) => string;
toFormattedHref: (options: Options) => string;
startIndex: () => number;
endIndex: () => number;
toObject: (protocol?: string) => {
/**
* Return the string this token represents.
* @return {string}
*/
toString(): string;
/**
* What should the value for this token be in the `href` HTML attribute?
* Returns the `.toString` value by default.
* @param {string} [scheme]
* @return {string}
*/
toHref(scheme?: string): string;
/**
* @param {Options} options Formatting options
* @returns {string}
*/
toFormattedString(options: Options): string;
/**
*
* @param {Options} options
* @returns {string}
*/
toFormattedHref(options: Options): string;
/**
* The start index of this token in the original input string
* @returns {number}
*/
startIndex(): number;
/**
* The end index of this token in the original input string (up to this
* index but not including it)
* @returns {number}
*/
endIndex(): number;
/**
Returns an object of relevant values for this token, which includes keys
* type - Kind of token ('url', 'email', etc.)
* value - Original text
* href - The value that should be added to the anchor tag's href
attribute
@method toObject
@param {string} [protocol] `'http'` by default
*/
toObject(protocol?: string): {
type: string;

@@ -159,3 +196,7 @@ value: string;

};
toFormattedObject: (options: Options) => {
/**
*
* @param {Options} options Formatting option
*/
toFormattedObject(options: Options): {
type: string;

@@ -168,4 +209,13 @@ value: string;

};
validate: (options: Options) => boolean;
render: (options: Options) => {
/**
* Whether this token should be rendered as a link according to the given options
* @param {Options} options
* @returns {boolean}
*/
validate(options: Options): boolean;
/**
* Return an object that represents how this link should be rendered.
* @param {Options} options Formattinng options
*/
render(options: Options): {
tagName: any;

@@ -207,8 +257,39 @@ attributes: {

o: Required<Opts>;
defaultRender: (ir: IntermediateRepresentation) => any;
defaultRender: any;
ignoreTags: string[];
check: (token: MultiToken) => boolean;
get: <K extends keyof Opts>(key: K, operator?: string, token?: MultiToken) => any;
getObj: <L extends keyof Opts>(key: L, operator?: string, token?: MultiToken) => any;
render: (token: MultiToken) => any;
/**
* Returns true or false based on whether a token should be displayed as a
* link based on the user options.
* @param {MultiToken} token
* @returns {boolean}
*/
check(token: MultiToken): boolean;
/**
* Resolve an option's value based on the value of the option and the given
* params. If operator and token are specified and the target option is
* callable, automatically calls the function with the given argument.
* @template {keyof Opts} K
* @param {K} key Name of option to use
* @param {string} [operator] will be passed to the target option if it's a
* function. If not specified, RAW function value gets returned
* @param {MultiToken} [token] The token from linkify.tokenize
* @returns {Opts[K] | any}
*/
get<K extends keyof Opts>(key: K, operator?: string, token?: MultiToken): any;
/**
* @template {keyof Opts} L
* @param {L} key Name of options object to use
* @param {string} [operator]
* @param {MultiToken} [token]
* @returns {Opts[L] | any}
*/
getObj<L extends keyof Opts>(key: L, operator?: string, token?: MultiToken): any;
/**
* Convert the given token to a rendered element that may be added to the
* calling-interface's DOM
* @param {MultiToken} token Token to render to an HTML element
* @returns {any} Render result; e.g., HTML string, DOM element, React
* Component, etc.
*/
render(token: MultiToken): any;
}

@@ -262,9 +343,75 @@ /**

t: T;
accepts: () => boolean;
go: (input: string) => State<T>;
has: (input: string, exactOnly: boolean) => boolean;
ta: (inputs: string | string[], next?: T | State<T>, flags?: Flags, groups?: Collections<T>) => void;
tr: (regexp: RegExp, next?: T | State<T>, flags?: Flags, groups?: Collections<T>) => State<T>;
ts: (input: string | string[], next?: T | State<T>, flags?: Flags, groups?: Collections<T>) => State<T>;
tt: (input: string, next?: T | State<T>, flags?: Flags, groups?: Collections<T>) => State<T>;
accepts(): boolean;
/**
* Follow an existing transition from the given input to the next state.
* Does not mutate.
* @param {string} input character or token type to transition on
* @returns {?State<T>} the next state, if any
*/
go(input: string): State<T>;
/**
* Whether the state has a transition for the given input. Set the second
* argument to true to only look for an exact match (and not a default or
* regular-expression-based transition)
* @param {string} input
* @param {boolean} exactOnly
*/
has(input: string, exactOnly: boolean): boolean;
/**
* Short for "transition all"; create a transition from the array of items
* in the given list to the same final resulting state.
* @param {string | string[]} inputs Group of inputs to transition on
* @param {Transition<T> | State<T>} [next] Transition options
* @param {Flags} [flags] Collections flags to add token to
* @param {Collections<T>} [groups] Master list of token groups
*/
ta(inputs: string | string[], next?: T | State<T>, flags?: Flags, groups?: Collections<T>): void;
/**
* Short for "take regexp transition"; defines a transition for this state
* when it encounters a token which matches the given regular expression
* @param {RegExp} regexp Regular expression transition (populate first)
* @param {T | State<T>} [next] Transition options
* @param {Flags} [flags] Collections flags to add token to
* @param {Collections<T>} [groups] Master list of token groups
* @returns {State<T>} taken after the given input
*/
tr(regexp: RegExp, next?: T | State<T>, flags?: Flags, groups?: Collections<T>): State<T>;
/**
* Short for "take transitions", will take as many sequential transitions as
* the length of the given input and returns the
* resulting final state.
* @param {string | string[]} input
* @param {T | State<T>} [next] Transition options
* @param {Flags} [flags] Collections flags to add token to
* @param {Collections<T>} [groups] Master list of token groups
* @returns {State<T>} taken after the given input
*/
ts(input: string | string[], next?: T | State<T>, flags?: Flags, groups?: Collections<T>): State<T>;
/**
* Short for "take transition", this is a method for building/working with
* state machines.
*
* If a state already exists for the given input, returns it.
*
* If a token is specified, that state will emit that token when reached by
* the linkify engine.
*
* If no state exists, it will be initialized with some default transitions
* that resemble existing default transitions.
*
* If a state is given for the second argument, that state will be
* transitioned to on the given input regardless of what that input
* previously did.
*
* Specify a token group flags to define groups that this token belongs to.
* The token will be added to corresponding entires in the given groups
* object.
*
* @param {string} input character, token type to transition on
* @param {T | State<T>} [next] Transition options
* @param {Flags} [flags] Collections flags to add token to
* @param {Collections<T>} [groups] Master list of groups
* @returns {State<T>} taken after the given input
*/
tt(input: string, next?: T | State<T>, flags?: Flags, groups?: Collections<T>): State<T>;
}

@@ -412,48 +559,48 @@ export namespace State {

__proto__: any;
WORD: string;
UWORD: string;
LOCALHOST: string;
TLD: string;
UTLD: string;
SCHEME: string;
SLASH_SCHEME: string;
NUM: string;
WS: string;
NL: string;
OPENBRACE: string;
OPENBRACKET: string;
OPENANGLEBRACKET: string;
OPENPAREN: string;
CLOSEBRACE: string;
CLOSEBRACKET: string;
CLOSEANGLEBRACKET: string;
CLOSEPAREN: string;
AMPERSAND: string;
APOSTROPHE: string;
ASTERISK: string;
AT: string;
BACKSLASH: string;
BACKTICK: string;
CARET: string;
COLON: string;
COMMA: string;
DOLLAR: string;
DOT: string;
EQUALS: string;
EXCLAMATION: string;
HYPHEN: string;
PERCENT: string;
PIPE: string;
PLUS: string;
POUND: string;
QUERY: string;
QUOTE: string;
SEMI: string;
SLASH: string;
TILDE: string;
UNDERSCORE: string;
EMOJI: string;
SYM: string;
WORD: "WORD";
UWORD: "UWORD";
LOCALHOST: "LOCALHOST";
TLD: "TLD";
UTLD: "UTLD";
SCHEME: "SCHEME";
SLASH_SCHEME: "SLASH_SCHEME";
NUM: "NUM";
WS: "WS";
NL: "NL";
OPENBRACE: "OPENBRACE";
OPENBRACKET: "OPENBRACKET";
OPENANGLEBRACKET: "OPENANGLEBRACKET";
OPENPAREN: "OPENPAREN";
CLOSEBRACE: "CLOSEBRACE";
CLOSEBRACKET: "CLOSEBRACKET";
CLOSEANGLEBRACKET: "CLOSEANGLEBRACKET";
CLOSEPAREN: "CLOSEPAREN";
AMPERSAND: "AMPERSAND";
APOSTROPHE: "APOSTROPHE";
ASTERISK: "ASTERISK";
AT: "AT";
BACKSLASH: "BACKSLASH";
BACKTICK: "BACKTICK";
CARET: "CARET";
COLON: "COLON";
COMMA: "COMMA";
DOLLAR: "DOLLAR";
DOT: "DOT";
EQUALS: "EQUALS";
EXCLAMATION: "EXCLAMATION";
HYPHEN: "HYPHEN";
PERCENT: "PERCENT";
PIPE: "PIPE";
PLUS: "PLUS";
POUND: "POUND";
QUERY: "QUERY";
QUOTE: "QUOTE";
SEMI: "SEMI";
SLASH: "SLASH";
TILDE: "TILDE";
UNDERSCORE: "UNDERSCORE";
EMOJI: "EMOJI";
SYM: "SYM";
}>;
declare var groups: Collections<string>;
export {};

@@ -1,1 +0,1 @@

var linkify=function(u){"use strict";var e="aaa aarp abarth abb abbott abbvie abc able abogado abudhabi ac academy accenture accountant accountants aco actor ad adac ads adult ae aeg aero aetna af afl africa ag agakhan agency ai aig airbus airforce airtel akdn al alfaromeo alibaba alipay allfinanz allstate ally alsace alstom am amazon americanexpress americanfamily amex amfam amica amsterdam analytics android anquan anz ao aol apartments app apple aq aquarelle ar arab aramco archi army arpa art arte as asda asia associates at athleta attorney au auction audi audible audio auspost author auto autos avianca aw aws ax axa az azure ba baby baidu banamex bananarepublic band bank bar barcelona barclaycard barclays barefoot bargains baseball basketball bauhaus bayern bb bbc bbt bbva bcg bcn bd be beats beauty beer bentley berlin best bestbuy bet bf bg bh bharti bi bible bid bike bing bingo bio biz bj black blackfriday blockbuster blog bloomberg blue bm bms bmw bn bnpparibas bo boats boehringer bofa bom bond boo book booking bosch bostik boston bot boutique box br bradesco bridgestone broadway broker brother brussels bs bt bugatti build builders business buy buzz bv bw by bz bzh ca cab cafe cal call calvinklein cam camera camp cancerresearch canon capetown capital capitalone car caravan cards care career careers cars casa case cash casino cat catering catholic cba cbn cbre cbs cc cd center ceo cern cf cfa cfd cg ch chanel channel charity chase chat cheap chintai christmas chrome church ci cipriani circle cisco citadel citi citic city cityeats ck cl claims cleaning click clinic clinique clothing cloud club clubmed cm cn co coach codes coffee college cologne com comcast commbank community company compare computer comsec condos construction consulting contact contractors cooking cookingchannel cool coop corsica country coupon coupons courses cpa cr credit creditcard creditunion cricket crown crs cruise cruises cu cuisinella cv cw cx cy cymru cyou cz dabur dad dance data date dating datsun day dclk dds de deal dealer deals degree delivery dell deloitte delta democrat dental dentist desi design dev dhl diamonds diet digital direct directory discount discover dish diy dj dk dm dnp do docs doctor dog domains dot download drive dtv dubai dunlop dupont durban dvag dvr dz earth eat ec eco edeka edu education ee eg email emerck energy engineer engineering enterprises epson equipment er ericsson erni es esq estate et etisalat eu eurovision eus events exchange expert exposed express extraspace fage fail fairwinds faith family fan fans farm farmers fashion fast fedex feedback ferrari ferrero fi fiat fidelity fido film final finance financial fire firestone firmdale fish fishing fit fitness fj fk flickr flights flir florist flowers fly fm fo foo food foodnetwork football ford forex forsale forum foundation fox fr free fresenius frl frogans frontdoor frontier ftr fujitsu fun fund furniture futbol fyi ga gal gallery gallo gallup game games gap garden gay gb gbiz gd gdn ge gea gent genting george gf gg ggee gh gi gift gifts gives giving gl glass gle global globo gm gmail gmbh gmo gmx gn godaddy gold goldpoint golf goo goodyear goog google gop got gov gp gq gr grainger graphics gratis green gripe grocery group gs gt gu guardian gucci guge guide guitars guru gw gy hair hamburg hangout haus hbo hdfc hdfcbank health healthcare help helsinki here hermes hgtv hiphop hisamitsu hitachi hiv hk hkt hm hn hockey holdings holiday homedepot homegoods homes homesense honda horse hospital host hosting hot hoteles hotels hotmail house how hr hsbc ht hu hughes hyatt hyundai ibm icbc ice icu id ie ieee ifm ikano il im imamat imdb immo immobilien in inc industries infiniti info ing ink institute insurance insure int international intuit investments io ipiranga iq ir irish is ismaili ist istanbul it itau itv jaguar java jcb je jeep jetzt jewelry jio jll jm jmp jnj jo jobs joburg jot joy jp jpmorgan jprs juegos juniper kaufen kddi ke kerryhotels kerrylogistics kerryproperties kfh kg kh ki kia kids kim kinder kindle kitchen kiwi km kn koeln komatsu kosher kp kpmg kpn kr krd kred kuokgroup kw ky kyoto kz la lacaixa lamborghini lamer lancaster lancia land landrover lanxess lasalle lat latino latrobe law lawyer lb lc lds lease leclerc lefrak legal lego lexus lgbt li lidl life lifeinsurance lifestyle lighting like lilly limited limo lincoln linde link lipsy live living lk llc llp loan loans locker locus loft lol london lotte lotto love lpl lplfinancial lr ls lt ltd ltda lu lundbeck luxe luxury lv ly ma macys madrid maif maison makeup man management mango map market marketing markets marriott marshalls maserati mattel mba mc mckinsey md me med media meet melbourne meme memorial men menu merckmsd mg mh miami microsoft mil mini mint mit mitsubishi mk ml mlb mls mm mma mn mo mobi mobile moda moe moi mom monash money monster mormon mortgage moscow moto motorcycles mov movie mp mq mr ms msd mt mtn mtr mu museum music mutual mv mw mx my mz na nab nagoya name natura navy nba nc ne nec net netbank netflix network neustar new news next nextdirect nexus nf nfl ng ngo nhk ni nico nike nikon ninja nissan nissay nl no nokia northwesternmutual norton now nowruz nowtv np nr nra nrw ntt nu nyc nz obi observer office okinawa olayan olayangroup oldnavy ollo om omega one ong onl online ooo open oracle orange org organic origins osaka otsuka ott ovh pa page panasonic paris pars partners parts party passagens pay pccw pe pet pf pfizer pg ph pharmacy phd philips phone photo photography photos physio pics pictet pictures pid pin ping pink pioneer pizza pk pl place play playstation plumbing plus pm pn pnc pohl poker politie porn post pr pramerica praxi press prime pro prod productions prof progressive promo properties property protection pru prudential ps pt pub pw pwc py qa qpon quebec quest racing radio re read realestate realtor realty recipes red redstone redumbrella rehab reise reisen reit reliance ren rent rentals repair report republican rest restaurant review reviews rexroth rich richardli ricoh ril rio rip ro rocher rocks rodeo rogers room rs rsvp ru rugby ruhr run rw rwe ryukyu sa saarland safe safety sakura sale salon samsclub samsung sandvik sandvikcoromant sanofi sap sarl sas save saxo sb sbi sbs sc sca scb schaeffler schmidt scholarships school schule schwarz science scot sd se search seat secure security seek select sener services ses seven sew sex sexy sfr sg sh shangrila sharp shaw shell shia shiksha shoes shop shopping shouji show showtime si silk sina singles site sj sk ski skin sky skype sl sling sm smart smile sn sncf so soccer social softbank software sohu solar solutions song sony soy spa space sport spot sr srl ss st stada staples star statebank statefarm stc stcgroup stockholm storage store stream studio study style su sucks supplies supply support surf surgery suzuki sv swatch swiss sx sy sydney systems sz tab taipei talk taobao target tatamotors tatar tattoo tax taxi tc tci td tdk team tech technology tel temasek tennis teva tf tg th thd theater theatre tiaa tickets tienda tiffany tips tires tirol tj tjmaxx tjx tk tkmaxx tl tm tmall tn to today tokyo tools top toray toshiba total tours town toyota toys tr trade trading training travel travelchannel travelers travelersinsurance trust trv tt tube tui tunes tushu tv tvs tw tz ua ubank ubs ug uk unicom university uno uol ups us uy uz va vacations vana vanguard vc ve vegas ventures verisign vermögensberater vermögensberatung versicherung vet vg vi viajes video vig viking villas vin vip virgin visa vision viva vivo vlaanderen vn vodka volkswagen volvo vote voting voto voyage vu vuelos wales walmart walter wang wanggou watch watches weather weatherchannel webcam weber website wed wedding weibo weir wf whoswho wien wiki williamhill win windows wine winners wme wolterskluwer woodside work works world wow ws wtc wtf xbox xerox xfinity xihuan xin xxx xyz yachts yahoo yamaxun yandex ye yodobashi yoga yokohama you youtube yt yun za zappos zara zero zip zm zone zuerich zw".split(" "),D="ελ ευ бг бел дети ею католик ком мкд мон москва онлайн орг рус рф сайт срб укр қаз հայ ישראל קום ابوظبي اتصالات ارامكو الاردن البحرين الجزائر السعودية العليان المغرب امارات ایران بارت بازار بيتك بھارت تونس سودان سورية شبكة عراق عرب عمان فلسطين قطر كاثوليك كوم مصر مليسيا موريتانيا موقع همراه پاکستان ڀارت कॉम नेट भारत भारतम् भारोत संगठन বাংলা ভারত ভাৰত ਭਾਰਤ ભારત ଭାରତ இந்தியா இலங்கை சிங்கப்பூர் భారత్ ಭಾರತ ഭാരതം ලංකා คอม ไทย ລາວ გე みんな アマゾン クラウド グーグル コム ストア セール ファッション ポイント 世界 中信 中国 中國 中文网 亚马逊 企业 佛山 信息 健康 八卦 公司 公益 台湾 台灣 商城 商店 商标 嘉里 嘉里大酒店 在线 大拿 天主教 娱乐 家電 广东 微博 慈善 我爱你 手机 招聘 政务 政府 新加坡 新闻 时尚 書籍 机构 淡马锡 游戏 澳門 点看 移动 组织机构 网址 网店 网站 网络 联通 诺基亚 谷歌 购物 通販 集团 電訊盈科 飞利浦 食品 餐厅 香格里拉 香港 닷넷 닷컴 삼성 한국".split(" "),t=function(u,e){for(var D in e)u[D]=e[D];return u};function a(u,e){return u in e||(e[u]=[]),e[u]}function n(u,e,D){for(var t in e.numeric&&(e.asciinumeric=!0,e.alphanumeric=!0),e.ascii&&(e.asciinumeric=!0,e.alpha=!0),e.asciinumeric&&(e.alphanumeric=!0),e.alpha&&(e.alphanumeric=!0),e.alphanumeric&&(e.domain=!0),e.emoji&&(e.domain=!0),e){var n=a(t,D);n.indexOf(u)<0&&n.push(u)}}function i(u){void 0===u&&(u=null),this.j={},this.jr=[],this.jd=null,this.t=u}i.groups={},i.prototype={accepts:function(){return!!this.t},go:function(u){var e=this,D=e.j[u];if(D)return D;for(var t=0;t<e.jr.length;t++){var a=e.jr[t][0],n=e.jr[t][1];if(n&&a.test(u))return n}return e.jd},has:function(u,e){return void 0===e&&(e=!1),e?u in this.j:!!this.go(u)},ta:function(u,e,D,t){for(var a=0;a<u.length;a++)this.tt(u[a],e,D,t)},tr:function(u,e,D,t){var a;return t=t||i.groups,e&&e.j?a=e:(a=new i(e),D&&t&&n(e,D,t)),this.jr.push([u,a]),a},ts:function(u,e,D,t){var a=this,n=u.length;if(!n)return a;for(var i=0;i<n-1;i++)a=a.tt(u[i]);return a.tt(u[n-1],e,D,t)},tt:function(u,e,D,a){a=a||i.groups;var r=this;if(e&&e.j)return r.j[u]=e,e;var o,s=e,l=r.go(u);if(l?(o=new i,t(o.j,l.j),o.jr.push.apply(o.jr,l.jr),o.jd=l.jd,o.t=l.t):o=new i,s){if(a)if(o.t&&"string"==typeof o.t){var c=t(function(u,e){var D={};for(var t in e)e[t].indexOf(u)>=0&&(D[t]=!0);return D}(o.t,a),D);n(s,c,a)}else D&&n(s,D,a);o.t=s}return r.j[u]=o,o}};var r=function(u,e,D,t,a){return u.ta(e,D,t,a)},o=function(u,e,D,t,a){return u.tr(e,D,t,a)},s=function(u,e,D,t,a){return u.ts(e,D,t,a)},l=function(u,e,D,t,a){return u.tt(e,D,t,a)},c="WORD",F="UWORD",E="LOCALHOST",A="TLD",C="UTLD",h="SCHEME",g="SLASH_SCHEME",d="NUM",m="NL",f="OPENBRACE",p="OPENBRACKET",B="OPENANGLEBRACKET",b="OPENPAREN",v="CLOSEBRACE",k="CLOSEBRACKET",y="CLOSEANGLEBRACKET",w="CLOSEPAREN",j="AMPERSAND",x="APOSTROPHE",O="ASTERISK",S="AT",z="BACKSLASH",L="BACKTICK",T="CARET",R="COLON",P="COMMA",N="DOLLAR",I="DOT",H="EQUALS",_="EXCLAMATION",M="HYPHEN",Q="PERCENT",U="PIPE",K="PLUS",q="POUND",W="QUERY",Y="QUOTE",G="SEMI",J="SLASH",X="TILDE",Z="UNDERSCORE",$="EMOJI",V="SYM",uu=Object.freeze({__proto__:null,WORD:c,UWORD:F,LOCALHOST:E,TLD:A,UTLD:C,SCHEME:h,SLASH_SCHEME:g,NUM:d,WS:"WS",NL:m,OPENBRACE:f,OPENBRACKET:p,OPENANGLEBRACKET:B,OPENPAREN:b,CLOSEBRACE:v,CLOSEBRACKET:k,CLOSEANGLEBRACKET:y,CLOSEPAREN:w,AMPERSAND:j,APOSTROPHE:x,ASTERISK:O,AT:S,BACKSLASH:z,BACKTICK:L,CARET:T,COLON:R,COMMA:P,DOLLAR:N,DOT:I,EQUALS:H,EXCLAMATION:_,HYPHEN:M,PERCENT:Q,PIPE:U,PLUS:K,POUND:q,QUERY:W,QUOTE:Y,SEMI:G,SLASH:J,TILDE:X,UNDERSCORE:Z,EMOJI:$,SYM:V}),eu=/[a-z]/,Du=/(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/,tu=/(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEDD-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDDFF\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6])/,au=/\d/,nu=/\s/,iu=Object.freeze({__proto__:null,ASCII_LETTER:eu,LETTER:Du,EMOJI:tu,EMOJI_VARIATION:/\ufe0f/,DIGIT:au,SPACE:nu});function ru(u){for(var e=[],D=u.length,t=0;t<D;){var a=u.charCodeAt(t),n=void 0,i=a<55296||a>56319||t+1===D||(n=u.charCodeAt(t+1))<56320||n>57343?u[t]:u.slice(t,t+2);e.push(i),t+=i.length}return e}function ou(u,e,D,t,a){for(var n,r=e.length,o=0;o<r-1;o++){var s=e[o];u.j[s]?n=u.j[s]:((n=new i(t)).jr=a.slice(),u.j[s]=n),u=n}return(n=new i(D)).jr=a.slice(),u.j[e[r-1]]=n,n}function su(u,e){return su=Object.setPrototypeOf||function(u,e){return u.__proto__=e,u},su(u,e)}var lu={defaultProtocol:"http",events:null,format:Fu,formatHref:Fu,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function cu(u,e){void 0===e&&(e=null);var D=t({},lu);u&&(D=t(D,u instanceof cu?u.o:u));for(var a=D.ignoreTags,n=[],i=0;i<a.length;i++)n.push(a[i].toUpperCase());this.o=D,e&&(this.defaultRender=e),this.ignoreTags=n}function Fu(u){return u}cu.prototype={o:lu,ignoreTags:[],defaultRender:function(u){return u},check:function(u){return this.get("validate",u.toString(),u)},get:function(u,e,D){var t=null!=e,a=this.o[u];return a?("object"==typeof a?"function"==typeof(a=D.t in a?a[D.t]:lu[u])&&t&&(a=a(e,D)):"function"==typeof a&&t&&(a=a(e,D.t,D)),a):a},getObj:function(u,e,D){var t=this.o[u];return"function"==typeof t&&null!=e&&(t=t(e,D.t,D)),t},render:function(u){var e=u.render(this);return(this.get("render",null,u)||this.defaultRender)(e,u.t,u)}};var Eu=Object.freeze({__proto__:null,defaults:lu,Options:cu,assign:t});function Au(u,e){this.t="token",this.v=u,this.tk=e}function Cu(u,e){var D=function(e){var D,t;function a(D,t){var a;return(a=e.call(this,D,t)||this).t=u,a}return t=e,(D=a).prototype=Object.create(t.prototype),D.prototype.constructor=D,su(D,t),a}(Au);for(var t in e)D.prototype[t]=e[t];return D.t=u,D}Au.prototype={isLink:!1,toString:function(){return this.v},toHref:function(u){return this.toString()},toFormattedString:function(u){var e=this.toString(),D=u.get("truncate",e,this),t=u.get("format",e,this);return D&&t.length>D?t.substring(0,D)+"…":t},toFormattedHref:function(u){return u.get("formatHref",this.toHref(u.get("defaultProtocol")),this)},startIndex:function(){return this.tk[0].s},endIndex:function(){return this.tk[this.tk.length-1].e},toObject:function(u){return void 0===u&&(u=lu.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(u),start:this.startIndex(),end:this.endIndex()}},toFormattedObject:function(u){return{type:this.t,value:this.toFormattedString(u),isLink:this.isLink,href:this.toFormattedHref(u),start:this.startIndex(),end:this.endIndex()}},validate:function(u){return u.get("validate",this.toString(),this)},render:function(u){var e=this,D=this.toFormattedHref(u),a=u.get("tagName",D,e),n=this.toFormattedString(u),i={},r=u.get("className",D,e),o=u.get("target",D,e),s=u.get("rel",D,e),l=u.getObj("attributes",D,e),c=u.getObj("events",D,e);return i.href=D,r&&(i.class=r),o&&(i.target=o),s&&(i.rel=s),l&&t(i,l),{tagName:a,attributes:i,content:n,eventListeners:c}}};var hu=Cu("email",{isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),gu=Cu("text"),du=Cu("nl"),mu=Cu("url",{isLink:!0,toHref:function(u){return void 0===u&&(u=lu.defaultProtocol),this.hasProtocol()?this.v:u+"://"+this.v},hasProtocol:function(){var u=this.tk;return u.length>=2&&u[0].t!==E&&u[1].t===R}}),fu=Object.freeze({__proto__:null,MultiToken:Au,Base:Au,createTokenClass:Cu,Email:hu,Text:gu,Nl:du,Url:mu}),pu=function(u){return new i(u)};function Bu(u,e,D){var t=D[0].s,a=D[D.length-1].e;return new u(e.slice(t,a),D)}var bu="undefined"!=typeof console&&console&&console.warn||function(){},vu="To avoid this warning, please register all custom schemes before invoking linkify the first time.",ku={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function yu(){ku.scanner=function(u){var a,r,iu,ru,su,lu;void 0===u&&(u=[]);var cu={};i.groups=cu;var Fu=new i;l(Fu,"'",x),l(Fu,"{",f),l(Fu,"[",p),l(Fu,"<",B),l(Fu,"(",b),l(Fu,"}",v),l(Fu,"]",k),l(Fu,">",y),l(Fu,")",w),l(Fu,"&",j),l(Fu,"*",O),l(Fu,"@",S),l(Fu,"`",L),l(Fu,"^",T),l(Fu,":",R),l(Fu,",",P),l(Fu,"$",N),l(Fu,".",I),l(Fu,"=",H),l(Fu,"!",_),l(Fu,"-",M),l(Fu,"%",Q),l(Fu,"|",U),l(Fu,"+",K),l(Fu,"#",q),l(Fu,"?",W),l(Fu,'"',Y),l(Fu,"/",J),l(Fu,";",G),l(Fu,"~",X),l(Fu,"_",Z),l(Fu,"\\",z);var Eu=o(Fu,au,d,((a={}).numeric=!0,a));o(Eu,au,Eu);var Au=o(Fu,eu,c,((r={}).ascii=!0,r));o(Au,eu,Au);var Cu=o(Fu,Du,F,((iu={}).alpha=!0,iu));o(Cu,eu),o(Cu,Du,Cu);var hu=o(Fu,nu,"WS",((ru={}).whitespace=!0,ru));l(Fu,"\n",m,((su={}).whitespace=!0,su)),l(hu,"\n"),o(hu,nu,hu);var gu=o(Fu,tu,$,((lu={}).emoji=!0,lu));o(gu,tu,gu),l(gu,"️",gu);var du=l(gu,"‍");o(du,tu,gu);for(var mu=[[eu,Au]],fu=[[eu,null],[Du,Cu]],pu=0;pu<e.length;pu++)ou(Fu,e[pu],A,c,mu);for(var Bu=0;Bu<D.length;Bu++)ou(Fu,D[Bu],C,F,fu);n(A,{tld:!0,ascii:!0},cu),n(C,{utld:!0,alpha:!0},cu),ou(Fu,"file",h,c,mu),ou(Fu,"mailto",h,c,mu),ou(Fu,"http",g,c,mu),ou(Fu,"https",g,c,mu),ou(Fu,"ftp",g,c,mu),ou(Fu,"ftps",g,c,mu),n(h,{scheme:!0,ascii:!0},cu),n(g,{slashscheme:!0,ascii:!0},cu),u=u.sort((function(u,e){return u[0]>e[0]?1:-1}));for(var bu=0;bu<u.length;bu++){var vu,ku,yu=u[bu][0],wu=u[bu][1]?((vu={}).scheme=!0,vu):((ku={}).slashscheme=!0,ku);yu.indexOf("-")>=0?wu.domain=!0:eu.test(yu)?au.test(yu)?wu.asciinumeric=!0:wu.ascii=!0:wu.numeric=!0,s(Fu,yu,yu,wu)}return s(Fu,"localhost",E,{ascii:!0}),Fu.jd=new i(V),{start:Fu,tokens:t({groups:cu},uu)}}(ku.customSchemes);for(var u=0;u<ku.tokenQueue.length;u++)ku.tokenQueue[u][1]({scanner:ku.scanner});ku.parser=function(u){var e=u.groups,D=e.domain.concat([j,O,S,z,L,T,N,H,M,d,Q,U,K,q,J,V,X,Z]),t=[x,y,v,k,w,R,P,I,_,B,f,p,b,W,Y,G],a=[j,x,O,z,L,T,v,N,H,M,d,f,Q,U,K,q,W,J,V,X,Z],n=pu(),i=l(n,X);r(i,a,i),r(i,e.domain,i);var o=pu(),s=pu(),c=pu();r(n,e.domain,o),r(n,e.scheme,s),r(n,e.slashscheme,c),r(o,a,i),r(o,e.domain,o);var F=l(o,S);l(i,S,F);var A=l(i,I);r(A,a,i),r(A,e.domain,i);var C=pu();r(F,e.domain,C),r(C,e.domain,C);var h=l(C,I);r(h,e.domain,C);var g=pu(hu);r(h,e.tld,g),r(h,e.utld,g),l(F,E,g);var $=l(C,M);r($,e.domain,C),r(g,e.domain,C),l(g,I,h),l(g,M,$);var eu=l(g,R);r(eu,e.numeric,hu);var Du=l(o,M),tu=l(o,I);r(Du,e.domain,o),r(tu,a,i),r(tu,e.domain,o);var au=pu(mu);r(tu,e.tld,au),r(tu,e.utld,au),r(au,e.domain,o),r(au,a,i),l(au,I,tu),l(au,M,Du),l(au,S,F);var nu=l(au,R),iu=pu(mu);r(nu,e.numeric,iu);var ru=pu(mu),ou=pu();r(ru,D,ru),r(ru,t,ou),r(ou,D,ru),r(ou,t,ou),l(au,J,ru),l(iu,J,ru);var su=l(s,R),lu=l(c,R),cu=l(lu,J);l(cu,J,su),r(s,e.domain,o),l(s,I,tu),l(s,M,Du),r(c,e.domain,o),l(c,I,tu),l(c,M,Du),r(su,e.domain,ru),l(su,J,ru);var Fu=l(ru,f),Eu=l(ru,p),Au=l(ru,B),Cu=l(ru,b);l(ou,f,Fu),l(ou,p,Eu),l(ou,B,Au),l(ou,b,Cu),l(Fu,v,ru),l(Eu,k,ru),l(Au,y,ru),l(Cu,w,ru),l(Fu,v,ru);var gu=pu(mu),fu=pu(mu),Bu=pu(mu),bu=pu(mu);r(Fu,D,gu),r(Eu,D,fu),r(Au,D,Bu),r(Cu,D,bu);var vu=pu(),ku=pu(),yu=pu(),wu=pu();return r(Fu,t),r(Eu,t),r(Au,t),r(Cu,t),r(gu,D,gu),r(fu,D,fu),r(Bu,D,Bu),r(bu,D,bu),r(gu,t,gu),r(fu,t,fu),r(Bu,t,Bu),r(bu,t,bu),r(vu,D,vu),r(ku,D,fu),r(yu,D,Bu),r(wu,D,bu),r(vu,t,vu),r(ku,t,ku),r(yu,t,yu),r(wu,t,wu),l(fu,k,ru),l(Bu,y,ru),l(bu,w,ru),l(gu,v,ru),l(ku,k,ru),l(yu,y,ru),l(wu,w,ru),l(vu,w,ru),l(n,E,au),l(n,m,du),{start:n,tokens:uu}}(ku.scanner.tokens);for(var a=0;a<ku.pluginQueue.length;a++)ku.pluginQueue[a][1]({scanner:ku.scanner,parser:ku.parser});ku.initialized=!0}function wu(u){return ku.initialized||yu(),function(u,e,D){for(var t=D.length,a=0,n=[],i=[];a<t;){for(var r=u,o=null,s=null,l=0,c=null,F=-1;a<t&&!(o=r.go(D[a].t));)i.push(D[a++]);for(;a<t&&(s=o||r.go(D[a].t));)o=null,(r=s).accepts()?(F=0,c=r):F>=0&&F++,a++,l++;if(F<0)(a-=l)<t&&(i.push(D[a]),a++);else{i.length>0&&(n.push(Bu(gu,e,i)),i=[]),a-=F,l-=F;var E=c.t,A=D.slice(a-l,a);n.push(Bu(E,e,A))}}return i.length>0&&n.push(Bu(gu,e,i)),n}(ku.parser.start,u,function(u,e){for(var D=ru(e.replace(/[A-Z]/g,(function(u){return u.toLowerCase()}))),t=D.length,a=[],n=0,i=0;i<t;){for(var r=u,o=null,s=0,l=null,c=-1,F=-1;i<t&&(o=r.go(D[i]));)(r=o).accepts()?(c=0,F=0,l=r):c>=0&&(c+=D[i].length,F++),s+=D[i].length,n+=D[i].length,i++;n-=c,i-=F,s-=c,a.push({t:l.t,v:e.slice(n-s,n),s:n-s,e:n})}return a}(ku.scanner.start,u))}return u.MultiToken=Au,u.Options=cu,u.State=i,u.createTokenClass=Cu,u.find=function(u,e,D){if(void 0===e&&(e=null),void 0===D&&(D=null),e&&"object"==typeof e){if(D)throw Error("linkifyjs: Invalid link type "+e+"; must be a string");D=e,e=null}for(var t=new cu(D),a=wu(u),n=[],i=0;i<a.length;i++){var r=a[i];!r.isLink||e&&r.t!==e||n.push(r.toFormattedObject(t))}return n},u.init=yu,u.multi=fu,u.options=Eu,u.regexp=iu,u.registerCustomProtocol=function(u,e){if(void 0===e&&(e=!1),ku.initialized&&bu('linkifyjs: already initialized - will not register custom scheme "'+u+'" until you manually call linkify.init(). '+vu),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(u))throw new Error('linkifyjs: incorrect scheme format.\n 1. Must only contain digits, lowercase ASCII letters or "-"\n 2. Cannot start or end with "-"\n 3. "-" cannot repeat');ku.customSchemes.push([u,e])},u.registerPlugin=function(u,e){if("function"!=typeof e)throw new Error("linkifyjs: Invalid plugin "+e+" (expects function)");for(var D=0;D<ku.pluginQueue.length;D++)if(u===ku.pluginQueue[D][0])return bu('linkifyjs: plugin "'+u+'" already registered - will be overwritten'),void(ku.pluginQueue[D]=[u,e]);ku.pluginQueue.push([u,e]),ku.initialized&&bu('linkifyjs: already initialized - will not register plugin "'+u+'" until you manually call linkify.init(). '+vu)},u.registerTokenPlugin=function(u,e){if("function"!=typeof e)throw new Error("linkifyjs: Invalid token plugin "+e+" (expects function)");for(var D=0;D<ku.tokenQueue.length;D++)if(u===ku.tokenQueue[D][0])return bu('linkifyjs: token plugin "'+u+'" already registered - will be overwritten'),void(ku.tokenQueue[D]=[u,e]);ku.tokenQueue.push([u,e]),ku.initialized&&bu('linkifyjs: already initialized - will not register token plugin "'+u+'" until you manually call linkify.init(). '+vu)},u.reset=function(){i.groups={},ku.scanner=null,ku.parser=null,ku.tokenQueue=[],ku.pluginQueue=[],ku.customSchemes=[],ku.initialized=!1},u.stringToArray=ru,u.test=function(u,e){void 0===e&&(e=null);var D=wu(u);return 1===D.length&&D[0].isLink&&(!e||D[0].t===e)},u.tokenize=wu,Object.defineProperty(u,"__esModule",{value:!0}),u}({});
var linkify=function(e){"use strict";const t=(e,t)=>{for(const n in t)e[n]=t[n];return e},n="numeric",i="ascii",s="alpha",r="asciinumeric",o="alphanumeric",a="domain",l="emoji",u="whitespace";function c(e,t){return e in t||(t[e]=[]),t[e]}function _(e,t,u){t[n]&&(t[r]=!0,t[o]=!0),t[i]&&(t[r]=!0,t[s]=!0),t[r]&&(t[o]=!0),t[s]&&(t[o]=!0),t[o]&&(t[a]=!0),t[l]&&(t[a]=!0);for(const n in t){const t=c(n,u);t.indexOf(e)<0&&t.push(e)}}function g(e){void 0===e&&(e=null),this.j={},this.jr=[],this.jd=null,this.t=e}g.groups={},g.prototype={accepts(){return!!this.t},go(e){const t=this,n=t.j[e];if(n)return n;for(let n=0;n<t.jr.length;n++){const i=t.jr[n][0],s=t.jr[n][1];if(s&&i.test(e))return s}return t.jd},has(e,t){return void 0===t&&(t=!1),t?e in this.j:!!this.go(e)},ta(e,t,n,i){for(let s=0;s<e.length;s++)this.tt(e[s],t,n,i)},tr(e,t,n,i){let s;return i=i||g.groups,t&&t.j?s=t:(s=new g(t),n&&i&&_(t,n,i)),this.jr.push([e,s]),s},ts(e,t,n,i){let s=this;const r=e.length;if(!r)return s;for(let t=0;t<r-1;t++)s=s.tt(e[t]);return s.tt(e[r-1],t,n,i)},tt(e,n,i,s){s=s||g.groups;const r=this;if(n&&n.j)return r.j[e]=n,n;const o=n;let a,l=r.go(e);if(l?(a=new g,t(a.j,l.j),a.jr.push.apply(a.jr,l.jr),a.jd=l.jd,a.t=l.t):a=new g,o){if(s)if(a.t&&"string"==typeof a.t){const e=t(function(e,t){const n={};for(const i in t)t[i].indexOf(e)>=0&&(n[i]=!0);return n}(a.t,s),i);_(o,e,s)}else i&&_(o,i,s);a.t=o}return r.j[e]=a,a}};const d=(e,t,n,i,s)=>e.ta(t,n,i,s),h=(e,t,n,i,s)=>e.tr(t,n,i,s),f=(e,t,n,i,s)=>e.ts(t,n,i,s),p=(e,t,n,i,s)=>e.tt(t,n,i,s),m="WORD",y="UWORD",k="LOCALHOST",b="TLD",E="UTLD",v="SCHEME",w="SLASH_SCHEME",O="NUM",j="NL",S="OPENBRACE",A="OPENBRACKET",L="OPENANGLEBRACKET",C="OPENPAREN",x="CLOSEBRACE",T="CLOSEBRACKET",R="CLOSEANGLEBRACKET",z="CLOSEPAREN",N="AMPERSAND",P="APOSTROPHE",I="ASTERISK",H="AT",M="BACKSLASH",Q="BACKTICK",D="CARET",U="COLON",B="COMMA",K="DOLLAR",$="DOT",q="EQUALS",F="EXCLAMATION",W="HYPHEN",Y="PERCENT",G="PIPE",J="PLUS",X="POUND",V="QUERY",Z="QUOTE",ee="SEMI",te="SLASH",ne="TILDE",ie="UNDERSCORE",se="EMOJI",re="SYM";var oe=Object.freeze({__proto__:null,WORD:m,UWORD:y,LOCALHOST:k,TLD:b,UTLD:E,SCHEME:v,SLASH_SCHEME:w,NUM:O,WS:"WS",NL:j,OPENBRACE:S,OPENBRACKET:A,OPENANGLEBRACKET:L,OPENPAREN:C,CLOSEBRACE:x,CLOSEBRACKET:T,CLOSEANGLEBRACKET:R,CLOSEPAREN:z,AMPERSAND:N,APOSTROPHE:P,ASTERISK:I,AT:H,BACKSLASH:M,BACKTICK:Q,CARET:D,COLON:U,COMMA:B,DOLLAR:K,DOT:$,EQUALS:q,EXCLAMATION:F,HYPHEN:W,PERCENT:Y,PIPE:G,PLUS:J,POUND:X,QUERY:V,QUOTE:Z,SEMI:ee,SLASH:te,TILDE:ne,UNDERSCORE:ie,EMOJI:se,SYM:re});const ae=/[a-z]/,le=/\p{L}/u,ue=/\p{Emoji}/u,ce=/\d/,_e=/\s/;var ge=Object.freeze({__proto__:null,ASCII_LETTER:ae,LETTER:le,EMOJI:ue,EMOJI_VARIATION:/\ufe0f/,DIGIT:ce,SPACE:_e});let de=null,he=null;function fe(e){const t=[],n=e.length;let i=0;for(;i<n;){let s,r=e.charCodeAt(i),o=r<55296||r>56319||i+1===n||(s=e.charCodeAt(i+1))<56320||s>57343?e[i]:e.slice(i,i+2);t.push(o),i+=o.length}return t}function pe(e,t,n,i,s){let r;const o=t.length;for(let n=0;n<o-1;n++){const o=t[n];e.j[o]?r=e.j[o]:(r=new g(i),r.jr=s.slice(),e.j[o]=r),e=r}return r=new g(n),r.jr=s.slice(),e.j[t[o-1]]=r,r}function me(e){const t=[],n=[];let i=0;for(;i<e.length;){let s=0;for(;"0123456789".indexOf(e[i+s])>=0;)s++;if(s>0){t.push(n.join(""));let r=parseInt(e.substring(i,i+s),10);for(;r>0;r--)n.pop();i+=s}else"_"===e[i]?(t.push(n.join("")),i++):(n.push(e[i]),i++)}return t}const ye={defaultProtocol:"http",events:null,format:be,formatHref:be,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function ke(e,n){void 0===n&&(n=null);let i=t({},ye);e&&(i=t(i,e instanceof ke?e.o:e));const s=i.ignoreTags,r=[];for(let e=0;e<s.length;e++)r.push(s[e].toUpperCase());this.o=i,n&&(this.defaultRender=n),this.ignoreTags=r}function be(e){return e}ke.prototype={o:ye,ignoreTags:[],defaultRender:e=>e,check(e){return this.get("validate",e.toString(),e)},get(e,t,n){const i=null!=t;let s=this.o[e];return s?("object"==typeof s?(s=n.t in s?s[n.t]:ye[e],"function"==typeof s&&i&&(s=s(t,n))):"function"==typeof s&&i&&(s=s(t,n.t,n)),s):s},getObj(e,t,n){let i=this.o[e];return"function"==typeof i&&null!=t&&(i=i(t,n.t,n)),i},render(e){const t=e.render(this);return(this.get("render",null,e)||this.defaultRender)(t,e.t,e)}};var Ee=Object.freeze({__proto__:null,defaults:ye,Options:ke,assign:t});function ve(e,t){this.t="token",this.v=e,this.tk=t}function we(e,t){class n extends ve{constructor(t,n){super(t,n),this.t=e}}for(const e in t)n.prototype[e]=t[e];return n.t=e,n}ve.prototype={isLink:!1,toString(){return this.v},toHref(e){return this.toString()},toFormattedString(e){const t=this.toString(),n=e.get("truncate",t,this),i=e.get("format",t,this);return n&&i.length>n?i.substring(0,n)+"…":i},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e){return void 0===e&&(e=ye.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const n=this,i=this.toFormattedHref(e),s=e.get("tagName",i,n),r=this.toFormattedString(e),o={},a=e.get("className",i,n),l=e.get("target",i,n),u=e.get("rel",i,n),c=e.getObj("attributes",i,n),_=e.getObj("events",i,n);return o.href=i,a&&(o.class=a),l&&(o.target=l),u&&(o.rel=u),c&&t(o,c),{tagName:s,attributes:o,content:r,eventListeners:_}}};const Oe=we("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),je=we("text"),Se=we("nl"),Ae=we("url",{isLink:!0,toHref(e){return void 0===e&&(e=ye.defaultProtocol),this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){const e=this.tk;return e.length>=2&&e[0].t!==k&&e[1].t===U}});var Le=Object.freeze({__proto__:null,MultiToken:ve,Base:ve,createTokenClass:we,Email:Oe,Text:je,Nl:Se,Url:Ae});const Ce=e=>new g(e);function xe(e,t,n){const i=n[0].s,s=n[n.length-1].e;return new e(t.slice(i,s),n)}const Te="undefined"!=typeof console&&console&&console.warn||(()=>{}),Re="until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.",ze={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function Ne(){ze.scanner=function(e){void 0===e&&(e=[]);const o={};g.groups=o;const c=new g;null==de&&(de=me("aaa1rp3barth4b_ott3vie4c1le2ogado5udhabi7c_ademy5centure6ountant_s9o1tor4d_s1ult4e_g1ro2tna4f_l1rica5g_akhan5ency5i_g1rbus3force5tel5kdn3l_faromeo7ibaba4pay4lfinanz6state5y2sace3tom5m_azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o_l2partments8p_le4q_uarelle8r_ab1mco4chi3my2pa2t_e3s_da2ia2sociates9t_hleta5torney7u_ction5di_ble3o3spost5thor3o_s4vianca6w_s2x_a2z_ure5ba_by2idu3namex3narepublic11d1k2r_celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b_c1t1va3cg1n2d1e_ats2uty4er2ntley5rlin4st_buy5t2f1g1h_arti5i_ble3d1ke2ng_o3o1z2j1lack_friday9ockbuster8g1omberg7ue3m_s1w2n_pparibas9o_ats3ehringer8fa2m1nd2o_k_ing5sch2tik2on4t1utique6x2r_adesco6idgestone9oadway5ker3ther5ussels7s1t1uild_ers6siness6y1zz3v1w1y1z_h3ca_b1fe2l_l1vinklein9m_era3p2non3petown5ital_one8r_avan4ds2e_er_s4s2sa1e1h1ino4t_ering5holic7ba1n1re2s2c1d1enter4o1rn3f_a1d2g1h_anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i_priani6rcle4sco3tadel4i_c2y_eats7k1l_aims4eaning6ick2nic1que6othing5ud3ub_med6m1n1o_ach3des3ffee4llege4ogne5m_cast4mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking_channel11l1p2rsica5untry4pon_s4rses6pa2r_edit_card4union9icket5own3s1uise_s6u_isinella9v1w1x1y_mru3ou3z2dabur3d1nce3ta1e1ing3sun4y2clk3ds2e_al_er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si_gn4v2hl2iamonds6et2gital5rect_ory7scount3ver5h2y2j1k1m1np2o_cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c_o2deka3u_cation8e1g1mail3erck5nergy4gineer_ing9terprises10pson4quipment8r_icsson6ni3s_q1tate5t_isalat7u_rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n_s2rm_ers5shion4t3edex3edback6rrari3ero6i_at2delity5o2lm2nal1nce1ial7re_stone6mdale6sh_ing5t_ness6j1k1lickr3ghts4r2orist4wers5y2m1o_o_d_network8tball6rd1ex2sale4um3undation8x2r_ee1senius7l1ogans4ntdoor4ier7tr2ujitsu5n_d2rniture7tbol5yi3ga_l_lery3o1up4me_s3p1rden4y2b_iz3d_n2e_a1nt_ing5orge5f1g_ee3h1i_ft_s3ves2ing5l_ass3e1obal2o4m_ail3bh2o1x2n1odaddy5ld_point6f2o_dyear5g_le4p1t1v2p1q1r_ainger5phics5tis4een3ipe3ocery4up4s1t1u_ardian6cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc_bank7ealth_care8lp1sinki6re1mes5gtv3iphop4samitsu7tachi5v2k_t2m1n1ockey4ldings5iday5medepot5goods5s_ense7nda3rse3spital5t_ing5t_eles2s3mail5use3w2r1sbc3t1u_ghes5yatt3undai7ibm2cbc2e1u2d1e_ee3fm2kano4l1m_amat4db2mo_bilien9n_c1dustries8finiti5o2g1k1stitute6urance4e4t_ernational10uit4vestments10o1piranga7q1r_ish4s_maili5t_anbul7t_au2v3jaguar4va3cb2e_ep2tzt3welry6io2ll2m_p2nj2o_bs1urg4t1y2p_morgan6rs3uegos4niper7kaufen5ddi3e_rryhotels6logistics9properties14fh2g1h1i_a1ds2m1nder2le4tchen5wi3m1n1oeln3matsu5sher5p_mg2n2r_d1ed3uokgroup8w1y_oto4z2la_caixa5mborghini8er3ncaster5ia3d_rover6xess5salle5t_ino3robe5w_yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i_dl2fe_insurance9style7ghting6ke2lly3mited4o2ncoln4de2k2psy3ve1ing5k1lc1p2oan_s3cker3us3l1ndon4tte1o3ve3pl_financial11r1s1t_d_a3u_ndbeck6xe1ury5v1y2ma_cys3drid4if1son4keup4n_agement7go3p1rket_ing3s4riott5shalls7serati6ttel5ba2c_kinsey7d1e_d_ia3et2lbourne7me1orial6n_u2rckmsd7g1h1iami3crosoft7l1ni1t2t_subishi9k1l_b1s2m_a2n1o_bi_le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to_rcycles9v_ie4p1q1r1s_d2t_n1r2u_seum3ic3tual5v1w1x1y1z2na_b1goya4me2tura4vy3ba2c1e_c1t_bank4flix4work5ustar5w_s2xt_direct7us4f_l2g_o2hk2i_co2ke1on3nja3ssan1y5l1o_kia3rthwesternmutual14on4w_ruz3tv4p1r_a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan_group9dnavy5lo3m_ega4ne1g1l_ine5oo2pen3racle3nge4g_anic5igins6saka4tsuka4t2vh3pa_ge2nasonic7ris2s1tners4s1y3ssagens7y2ccw3e_t2f_izer5g1h_armacy6d1ilips5one2to_graphy6s4ysio5ics1tet2ures6d1n_g1k2oneer5zza4k1l_ace2y_station9umbing5s3m1n_c2ohl2ker3litie5rn2st3r_america6xi3ess3ime3o_d_uctions8f1gressive8mo2perties3y5tection8u_dential9s1t1ub2w_c2y2qa1pon3uebec3st5racing4dio4e_ad1lestate6tor2y4cipes5d_stone5umbrella9hab3ise_n3t2liance6n_t_als5pair3ort3ublican8st_aurant8view_s5xroth6ich_ardli6oh3l1o1p2o_cher3ks3deo3gers4om3s_vp3u_gby3hr2n2w_e2yukyu6sa_arland6fe_ty4kura4le1on3msclub4ung5ndvik_coromant12ofi4p1rl2s1ve2xo3b_i1s2c_a1b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e_arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x_y3fr2g1h_angrila6rp2w2ell3ia1ksha5oes2p_ping5uji3w_time7i_lk2na1gles5te3j1k_i_n2y_pe4l_ing4m_art3ile4n_cf3o_ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa_ce3ort2t3r_l2s1t_ada2ples4r1tebank4farm7c_group6ockholm6rage3e3ream4udio2y3yle4u_cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y_dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x_i3c_i2d_k2eam2ch_nology8l1masek5nnis4va3f1g1h_d1eater2re6iaa2ckets5enda4ffany5ps2res2ol4j_maxx4x2k_maxx5l1m_all4n1o_day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r_ade1ing4ining5vel_channel7ers_insurance16ust3v2t1ube2i1nes3shu4v_s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va_cations7na1guard7c1e_gas3ntures6risign5mögensberater2ung14sicherung10t2g1i_ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lkswagen7vo3te1ing3o2yage5u_elos6wales2mart4ter4ng_gou5tch_es6eather_channel12bcam3er2site5d_ding5ibo2r3f1hoswho6ien2ki2lliamhill9n_dows4e1ners6me2olterskluwer11odside6rk_s2ld3w2s1tc1f3xbox3erox4finity6ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u_tube6t1un3za_ppos4ra3ero3ip2m1one3uerich6w2")),null==he&&(he=me("ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5تصالات6رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत_म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里_大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2")),p(c,"'",P),p(c,"{",S),p(c,"[",A),p(c,"<",L),p(c,"(",C),p(c,"}",x),p(c,"]",T),p(c,">",R),p(c,")",z),p(c,"&",N),p(c,"*",I),p(c,"@",H),p(c,"`",Q),p(c,"^",D),p(c,":",U),p(c,",",B),p(c,"$",K),p(c,".",$),p(c,"=",q),p(c,"!",F),p(c,"-",W),p(c,"%",Y),p(c,"|",G),p(c,"+",J),p(c,"#",X),p(c,"?",V),p(c,'"',Z),p(c,"/",te),p(c,";",ee),p(c,"~",ne),p(c,"_",ie),p(c,"\\",M);const d=h(c,ce,O,{[n]:!0});h(d,ce,d);const ge=h(c,ae,m,{[i]:!0});h(ge,ae,ge);const fe=h(c,le,y,{[s]:!0});h(fe,ae),h(fe,le,fe);const ye=h(c,_e,"WS",{[u]:!0});p(c,"\n",j,{[u]:!0}),p(ye,"\n"),h(ye,_e,ye);const ke=h(c,ue,se,{[l]:!0});h(ke,ue,ke),p(ke,"️",ke);const be=p(ke,"‍");h(be,ue,ke);const Ee=[[ae,ge]],ve=[[ae,null],[le,fe]];for(let e=0;e<de.length;e++)pe(c,de[e],b,m,Ee);for(let e=0;e<he.length;e++)pe(c,he[e],E,y,ve);_(b,{tld:!0,ascii:!0},o),_(E,{utld:!0,alpha:!0},o),pe(c,"file",v,m,Ee),pe(c,"mailto",v,m,Ee),pe(c,"http",w,m,Ee),pe(c,"https",w,m,Ee),pe(c,"ftp",w,m,Ee),pe(c,"ftps",w,m,Ee),_(v,{scheme:!0,ascii:!0},o),_(w,{slashscheme:!0,ascii:!0},o),e=e.sort(((e,t)=>e[0]>t[0]?1:-1));for(let t=0;t<e.length;t++){const s=e[t][0],o=e[t][1]?{scheme:!0}:{slashscheme:!0};s.indexOf("-")>=0?o[a]=!0:ae.test(s)?ce.test(s)?o[r]=!0:o[i]=!0:o[n]=!0,f(c,s,s,o)}return f(c,"localhost",k,{ascii:!0}),c.jd=new g(re),{start:c,tokens:t({groups:o},oe)}}(ze.customSchemes);for(let e=0;e<ze.tokenQueue.length;e++)ze.tokenQueue[e][1]({scanner:ze.scanner});ze.parser=function(e){let{groups:t}=e;const n=t.domain.concat([N,I,H,M,Q,D,K,q,W,O,Y,G,J,X,te,re,ne,ie]),i=[P,R,x,T,z,U,B,$,F,L,S,A,C,V,Z,ee],s=[N,P,I,M,Q,D,x,K,q,W,O,S,Y,G,J,X,V,te,re,ne,ie],r=Ce(),o=p(r,ne);d(o,s,o),d(o,t.domain,o);const a=Ce(),l=Ce(),u=Ce();d(r,t.domain,a),d(r,t.scheme,l),d(r,t.slashscheme,u),d(a,s,o),d(a,t.domain,a);const c=p(a,H);p(o,H,c),p(l,H,c),p(u,H,c);const _=p(o,$);d(_,s,o),d(_,t.domain,o);const g=Ce();d(c,t.domain,g),d(g,t.domain,g);const h=p(g,$);d(h,t.domain,g);const f=Ce(Oe);d(h,t.tld,f),d(h,t.utld,f),p(c,k,f);const m=p(g,W);d(m,t.domain,g),d(f,t.domain,g),p(f,$,h),p(f,W,m);const y=p(f,U);d(y,t.numeric,Oe);const b=p(a,W),E=p(a,$);d(b,t.domain,a),d(E,s,o),d(E,t.domain,a);const v=Ce(Ae);d(E,t.tld,v),d(E,t.utld,v),d(v,t.domain,a),d(v,s,o),p(v,$,E),p(v,W,b),p(v,H,c);const w=p(v,U),se=Ce(Ae);d(w,t.numeric,se);const ae=Ce(Ae),le=Ce();d(ae,n,ae),d(ae,i,le),d(le,n,ae),d(le,i,le),p(v,te,ae),p(se,te,ae);const ue=p(l,U),ce=p(u,U),_e=p(ce,te);p(_e,te,ue),d(l,t.domain,a),p(l,$,E),p(l,W,b),d(u,t.domain,a),p(u,$,E),p(u,W,b),d(ue,t.domain,ae),p(ue,te,ae);const ge=p(ae,S),de=p(ae,A),he=p(ae,L),fe=p(ae,C);p(le,S,ge),p(le,A,de),p(le,L,he),p(le,C,fe),p(ge,x,ae),p(de,T,ae),p(he,R,ae),p(fe,z,ae),p(ge,x,ae);const pe=Ce(Ae),me=Ce(Ae),ye=Ce(Ae),ke=Ce(Ae);d(ge,n,pe),d(de,n,me),d(he,n,ye),d(fe,n,ke);const be=Ce(),Ee=Ce(),ve=Ce(),we=Ce();return d(ge,i),d(de,i),d(he,i),d(fe,i),d(pe,n,pe),d(me,n,me),d(ye,n,ye),d(ke,n,ke),d(pe,i,pe),d(me,i,me),d(ye,i,ye),d(ke,i,ke),d(be,n,be),d(Ee,n,me),d(ve,n,ye),d(we,n,ke),d(be,i,be),d(Ee,i,Ee),d(ve,i,ve),d(we,i,we),p(me,T,ae),p(ye,R,ae),p(ke,z,ae),p(pe,x,ae),p(Ee,T,ae),p(ve,R,ae),p(we,z,ae),p(be,z,ae),p(r,k,v),p(r,j,Se),{start:r,tokens:oe}}(ze.scanner.tokens);for(let e=0;e<ze.pluginQueue.length;e++)ze.pluginQueue[e][1]({scanner:ze.scanner,parser:ze.parser});ze.initialized=!0}function Pe(e){return ze.initialized||Ne(),function(e,t,n){let i=n.length,s=0,r=[],o=[];for(;s<i;){let a=e,l=null,u=null,c=0,_=null,g=-1;for(;s<i&&!(l=a.go(n[s].t));)o.push(n[s++]);for(;s<i&&(u=l||a.go(n[s].t));)l=null,a=u,a.accepts()?(g=0,_=a):g>=0&&g++,s++,c++;if(g<0)s-=c,s<i&&(o.push(n[s]),s++);else{o.length>0&&(r.push(xe(je,t,o)),o=[]),s-=g,c-=g;const e=_.t,i=n.slice(s-c,s);r.push(xe(e,t,i))}}return o.length>0&&r.push(xe(je,t,o)),r}(ze.parser.start,e,function(e,t){const n=fe(t.replace(/[A-Z]/g,(e=>e.toLowerCase()))),i=n.length,s=[];let r=0,o=0;for(;o<i;){let a=e,l=null,u=0,c=null,_=-1,g=-1;for(;o<i&&(l=a.go(n[o]));)a=l,a.accepts()?(_=0,g=0,c=a):_>=0&&(_+=n[o].length,g++),u+=n[o].length,r+=n[o].length,o++;r-=_,o-=g,u-=_,s.push({t:c.t,v:t.slice(r-u,r),s:r-u,e:r})}return s}(ze.scanner.start,e))}return e.MultiToken=ve,e.Options=ke,e.State=g,e.createTokenClass=we,e.find=function(e,t,n){if(void 0===t&&(t=null),void 0===n&&(n=null),t&&"object"==typeof t){if(n)throw Error(`linkifyjs: Invalid link type ${t}; must be a string`);n=t,t=null}const i=new ke(n),s=Pe(e),r=[];for(let e=0;e<s.length;e++){const n=s[e];!n.isLink||t&&n.t!==t||r.push(n.toFormattedObject(i))}return r},e.init=Ne,e.multi=Le,e.options=Ee,e.regexp=ge,e.registerCustomProtocol=function(e,t){if(void 0===t&&(t=!1),ze.initialized&&Te(`linkifyjs: already initialized - will not register custom scheme "${e}" ${Re}`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(e))throw new Error('linkifyjs: incorrect scheme format.\n 1. Must only contain digits, lowercase ASCII letters or "-"\n 2. Cannot start or end with "-"\n 3. "-" cannot repeat');ze.customSchemes.push([e,t])},e.registerPlugin=function(e,t){if("function"!=typeof t)throw new Error(`linkifyjs: Invalid plugin ${t} (expects function)`);for(let n=0;n<ze.pluginQueue.length;n++)if(e===ze.pluginQueue[n][0])return Te(`linkifyjs: plugin "${e}" already registered - will be overwritten`),void(ze.pluginQueue[n]=[e,t]);ze.pluginQueue.push([e,t]),ze.initialized&&Te(`linkifyjs: already initialized - will not register plugin "${e}" ${Re}`)},e.registerTokenPlugin=function(e,t){if("function"!=typeof t)throw new Error(`linkifyjs: Invalid token plugin ${t} (expects function)`);for(let n=0;n<ze.tokenQueue.length;n++)if(e===ze.tokenQueue[n][0])return Te(`linkifyjs: token plugin "${e}" already registered - will be overwritten`),void(ze.tokenQueue[n]=[e,t]);ze.tokenQueue.push([e,t]),ze.initialized&&Te(`linkifyjs: already initialized - will not register token plugin "${e}" ${Re}`)},e.reset=function(){g.groups={},ze.scanner=null,ze.parser=null,ze.tokenQueue=[],ze.pluginQueue=[],ze.customSchemes=[],ze.initialized=!1},e.stringToArray=fe,e.test=function(e,t){void 0===t&&(t=null);const n=Pe(e);return 1===n.length&&n[0].isLink&&(!t||n[0].t===t)},e.tokenize=Pe,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
{
"name": "linkifyjs",
"version": "4.0.2",
"version": "4.1.0",
"description": "Find URLs, email addresses, #hashtags and @mentions in plain-text strings, then convert them into HTML <a> links.",

@@ -5,0 +5,0 @@ "main": "dist/linkify.cjs.js",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc