Socket
Socket
Sign inDemoInstall

linkifyjs

Package Overview
Dependencies
1
Maintainers
1
Versions
49
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.4 to 2.0.5

5

CHANGELOG.md
# Linkify Changelog
### v2.0.5
* Correct trailing symbol parsing (#149)
* Linkify element fixes (#148)
### v2.0.4

@@ -4,0 +9,0 @@

136

dist/dist/jquery.linkify.js

@@ -176,3 +176,3 @@ ;typeof console !== 'undefined' && console.warn('dist/jquery.linkify.js is deprecated. Use linkify.js and linkify-jquery.js instead.');

*/
var NUM = inheritsToken();
var NUM$1 = inheritsToken();

@@ -255,3 +255,3 @@ /**

NL: TNL,
NUM: NUM,
NUM: NUM$1,
PLUS: PLUS,

@@ -478,2 +478,4 @@ POUND: POUND,

BaseState.prototype = {
defaultTransition: false,
/**

@@ -493,3 +495,2 @@ @method constructor

*/
on: function on(symbol, state) {

@@ -528,3 +529,3 @@ if (symbol instanceof Array) {

// Nowhere left to jump!
return false;
return this.defaultTransition;
},

@@ -659,5 +660,7 @@

var REGEXP_NUM = /[0-9]/;
var REGEXP_ALPHANUM = /[a-z0-9]/;
var NUM = '0123456789'.split('');
var ALPHANUM = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');
var WHITESPACE = [' ', '\f', '\r', '\t', '\v']; // excluding line breaks
var COLON = ':';
var domainStates = [];

@@ -679,10 +682,10 @@ var makeState = function makeState(tokenClass) {

// States for special URL symbols
S_START.on('@', makeState(TEXT_TOKENS.AT)).on('.', makeState(TEXT_TOKENS.DOT)).on('+', makeState(TEXT_TOKENS.PLUS)).on('#', makeState(TEXT_TOKENS.POUND)).on('?', makeState(TEXT_TOKENS.QUERY)).on('/', makeState(TEXT_TOKENS.SLASH)).on(COLON, makeState(TEXT_TOKENS.COLON)).on('{', makeState(TEXT_TOKENS.OPENBRACE)).on('[', makeState(TEXT_TOKENS.OPENBRACKET)).on('(', makeState(TEXT_TOKENS.OPENPAREN)).on('}', makeState(TEXT_TOKENS.CLOSEBRACE)).on(']', makeState(TEXT_TOKENS.CLOSEBRACKET)).on(')', makeState(TEXT_TOKENS.CLOSEPAREN)).on(/[,;!]/, makeState(TEXT_TOKENS.PUNCTUATION));
S_START.on('@', makeState(TEXT_TOKENS.AT)).on('.', makeState(TEXT_TOKENS.DOT)).on('+', makeState(TEXT_TOKENS.PLUS)).on('#', makeState(TEXT_TOKENS.POUND)).on('?', makeState(TEXT_TOKENS.QUERY)).on('/', makeState(TEXT_TOKENS.SLASH)).on(COLON, makeState(TEXT_TOKENS.COLON)).on('{', makeState(TEXT_TOKENS.OPENBRACE)).on('[', makeState(TEXT_TOKENS.OPENBRACKET)).on('(', makeState(TEXT_TOKENS.OPENPAREN)).on('}', makeState(TEXT_TOKENS.CLOSEBRACE)).on(']', makeState(TEXT_TOKENS.CLOSEBRACKET)).on(')', makeState(TEXT_TOKENS.CLOSEPAREN)).on([',', ';', '!', '"'], makeState(TEXT_TOKENS.PUNCTUATION));
// Whitespace jumps
// Tokens of only non-newline whitespace are arbitrarily long
S_START.on(/\n/, makeState(TEXT_TOKENS.NL)).on(/\s/, S_WS);
S_START.on('\n', makeState(TEXT_TOKENS.NL)).on(WHITESPACE, S_WS);
// If any whitespace except newline, more whitespace!
S_WS.on(/[^\S\n]/, S_WS);
S_WS.on(WHITESPACE, S_WS);

@@ -730,16 +733,16 @@ // Generates states for top-level domains

// Number and character transitions
S_START.on(REGEXP_NUM, S_NUM);
S_NUM.on('-', S_DOMAIN_HYPHEN).on(REGEXP_NUM, S_NUM).on(REGEXP_ALPHANUM, S_DOMAIN); // number becomes DOMAIN
S_START.on(NUM, S_NUM);
S_NUM.on('-', S_DOMAIN_HYPHEN).on(NUM, S_NUM).on(ALPHANUM, S_DOMAIN); // number becomes DOMAIN
S_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(REGEXP_ALPHANUM, S_DOMAIN);
S_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);
// All the generated states should have a jump to DOMAIN
for (var _i = 0; _i < domainStates.length; _i++) {
domainStates[_i].on('-', S_DOMAIN_HYPHEN).on(REGEXP_ALPHANUM, S_DOMAIN);
domainStates[_i].on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);
}
S_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(REGEXP_NUM, S_DOMAIN).on(REGEXP_ALPHANUM, S_DOMAIN);
S_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(NUM, S_DOMAIN).on(ALPHANUM, S_DOMAIN);
// Any other character is considered a single symbol token
S_START.on(/./, makeState(TEXT_TOKENS.SYM));
// Set default transition
S_START.defaultTransition = makeState(TEXT_TOKENS.SYM);

@@ -861,3 +864,3 @@ /**

var S_URL = makeState$1(T_URL);
var S_URL_SYMS = makeState$1();
var S_URL_NON_ACCEPTING = makeState$1();
var S_URL_OPENBRACE = makeState$1();

@@ -921,3 +924,3 @@ var S_URL_OPENBRACKET = makeState$1();

// Types of characters the URL can definitely end in
var qsAccepting = [TT_DOMAIN, TT_AT, TT_LOCALHOST, TT_NUM, TT_PLUS, TT_POUND, TT_PROTOCOL, TT_SLASH, TT_TLD];
var qsAccepting = [TT_DOMAIN, TT_AT, TT_LOCALHOST, TT_NUM, TT_PLUS, TT_POUND, TT_PROTOCOL, TT_SLASH, TT_TLD, TT_SYM];

@@ -927,3 +930,3 @@ // Types of tokens that can follow a URL and be part of the query string

// Characters that cannot appear in the URL at all should be excluded
var qsNonAccepting = [TT_COLON, TT_DOT, TT_QUERY, TT_PUNCTUATION, TT_CLOSEBRACE, TT_CLOSEBRACKET, TT_CLOSEPAREN, TT_OPENBRACE, TT_OPENBRACKET, TT_OPENPAREN, TT_SYM];
var qsNonAccepting = [TT_COLON, TT_DOT, TT_QUERY, TT_PUNCTUATION, TT_CLOSEBRACE, TT_CLOSEBRACKET, TT_CLOSEPAREN, TT_OPENBRACE, TT_OPENBRACKET, TT_OPENPAREN];

@@ -937,3 +940,3 @@ // These states are responsible primarily for determining whether or not to

// URL with extra symbols at the end, followed by an opening bracket
S_URL_SYMS.on(TT_OPENBRACE, S_URL_OPENBRACE).on(TT_OPENBRACKET, S_URL_OPENBRACKET).on(TT_OPENPAREN, S_URL_OPENPAREN);
S_URL_NON_ACCEPTING.on(TT_OPENBRACE, S_URL_OPENBRACE).on(TT_OPENBRACKET, S_URL_OPENBRACKET).on(TT_OPENPAREN, S_URL_OPENPAREN);

@@ -978,6 +981,6 @@ // Closing bracket component. This character WILL be included in the URL

S_URL.on(qsAccepting, S_URL);
S_URL_SYMS.on(qsAccepting, S_URL);
S_URL_NON_ACCEPTING.on(qsAccepting, S_URL);
S_URL.on(qsNonAccepting, S_URL_SYMS);
S_URL_SYMS.on(qsNonAccepting, S_URL_SYMS);
S_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);
S_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);

@@ -1157,2 +1160,3 @@ // Email address-specific state definitions

var options = linkify.options;
var TEXT_TOKEN = linkify.parser.TOKENS.TEXT;

@@ -1186,47 +1190,47 @@ var HTML_NODE = 1;

var token = tokens[i];
var validated = token.isLink && options.resolve(opts.validate, token.toString(), token.type);
if (token.isLink && validated) {
if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
continue;
} else if (!token.isLink || !options.resolve(opts.validate, token.toString(), token.type)) {
result.push(doc.createTextNode(token.toString()));
continue;
}
var href = token.toHref(opts.defaultProtocol),
formatted = options.resolve(opts.format, token.toString(), token.type),
formattedHref = options.resolve(opts.formatHref, href, token.type),
attributesHash = options.resolve(opts.attributes, href, token.type),
tagName = options.resolve(opts.tagName, href, token.type),
linkClass = options.resolve(opts.linkClass, href, token.type),
target = options.resolve(opts.target, href, token.type),
events = options.resolve(opts.events, href, token.type);
var href = token.toHref(opts.defaultProtocol);
var formatted = options.resolve(opts.format, token.toString(), token.type);
var formattedHref = options.resolve(opts.formatHref, href, token.type);
var attributesHash = options.resolve(opts.attributes, href, token.type);
var tagName = options.resolve(opts.tagName, href, token.type);
var linkClass = options.resolve(opts.linkClass, href, token.type);
var target = options.resolve(opts.target, href, token.type);
var events = options.resolve(opts.events, href, token.type);
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
}
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
} else if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
} else {
result.push(doc.createTextNode(token.toString()));
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
}

@@ -1263,10 +1267,16 @@

var str = childElement.nodeValue,
tokens = tokenize(str),
nodes = tokensToNodes(tokens, opts, doc);
var str = childElement.nodeValue;
var tokens = tokenize(str);
if (tokens.length === 0 || tokens.length === 1 && tokens[0] instanceof TEXT_TOKEN) {
// No node replacement required
break;
}
var nodes = tokensToNodes(tokens, opts, doc);
// Swap out the current child for the set of nodes
replaceChildWithChildren(element, childElement, nodes);
// so that the correct sibling is selected
// so that the correct sibling is selected next
childElement = nodes[nodes.length - 1];

@@ -1273,0 +1283,0 @@

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

"undefined"!=typeof console&&console.warn("dist/jquery.linkify.js is deprecated. Use linkify.js and linkify-jquery.js instead."),function(){"use strict";!function(e){function n(e,n){var t=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],o=Object.create(e.prototype);for(var a in t)o[a]=t[a];return o.constructor=n,n.prototype=o,n}function t(e){e=e||{};for(var n=e.newLine||!1,t=e.ignoreTags||[],o=0;o<t.length;o++)t[o]=t[o].toUpperCase();return{attributes:e.linkAttributes||null,defaultProtocol:e.defaultProtocol||"http",events:e.events||null,format:e.format||r,validate:e.validate||i,formatHref:e.formatHref||r,newLine:e.newLine||!1,nl2br:!!n||e.nl2br||!1,tagName:e.tagName||"a",target:e.target||s,linkClass:e.linkClass||"linkified",ignoreTags:t}}function o(e){for(var n=arguments.length,t=Array(n>1?n-1:0),o=1;o<n;o++)t[o-1]=arguments[o];return"function"==typeof e?e.apply(void 0,t):e}function a(e,n){for(var t=0;t<e.length;t++)if(e[t]==n)return!0;return!1}function r(e){return e}function i(e){return!0}function s(e,n){return"url"===n?"_blank":null}function l(){return function(e){e&&(this.a=e)}}function c(e){var t=e?{a:e}:{};return n(h,l(),t)}function u(e){return e instanceof m||e instanceof T}function f(){return function(e){this.b=[],this.T=e||null}}function p(e,n,t,o){for(var a=0,r=e.length,i=n,s=[],l=void 0;a<r&&(l=i.next(e[a]));)i=l,a++;if(a>=r)return[];for(;a<r-1;)l=new F(o),s.push(l),i.on(e[a],l),i=l,a++;return l=new F(t),s.push(l),i.on(e[r-1],l),s}var g=Object.freeze({normalize:t,resolve:o,contains:a}),h=l();h.prototype={toString:function(){return this.a+""}};var m=c(),d=c("@"),b=c(":"),y=c("."),v=c(),k=c(),w=c("\n"),O=c(),E=c("+"),L=c("#"),N=c(),A=c("?"),x=c("/"),C=c(),T=c(),S=c(),j=c("{"),z=c("["),P=c("("),R=c("}"),U=c("]"),q=c(")"),H={Base:h,DOMAIN:m,AT:d,COLON:b,DOT:y,PUNCTUATION:v,LOCALHOST:k,NL:w,NUM:O,PLUS:E,POUND:L,QUERY:A,PROTOCOL:N,SLASH:x,SYM:C,TLD:T,WS:S,OPENBRACE:j,OPENBRACKET:z,OPENPAREN:P,CLOSEBRACE:R,CLOSEBRACKET:U,CLOSEPAREN:q},B=l();B.prototype={type:"token",isLink:!1,toString:function(){for(var e=[],n=0;n<this.a.length;n++)e.push(this.a[n].toString());return e.join("")},toHref:function(){return this.toString()},toObject:function(){var e=arguments.length<=0||void 0===arguments[0]?"http":arguments[0];return{type:this.type,value:this.toString(),href:this.toHref(e)}}};var D=n(B,l(),{type:"email",isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),I=n(B,l(),{type:"text"}),M=n(B,l(),{type:"nl"}),K=n(B,l(),{type:"url",isLink:!0,toHref:function(){for(var e=arguments.length<=0||void 0===arguments[0]?"http":arguments[0],n=!1,t=!1,o=this.a,a=[],r=0;o[r]instanceof N;)n=!0,a.push(o[r].toString().toLowerCase()),r++;for(;o[r]instanceof x;)t=!0,a.push(o[r].toString()),r++;for(;u(o[r]);)a.push(o[r].toString().toLowerCase()),r++;for(;r<o.length;r++)a.push(o[r].toString());return a=a.join(""),n||t||(a=e+"://"+a),a},hasProtocol:function(){return this.a[0]instanceof N}}),Y={Base:B,EMAIL:D,NL:M,TEXT:I,URL:K},Q=f();Q.prototype={on:function(e,n){if(e instanceof Array){for(var t=0;t<e.length;t++)this.b.push([e[t],n]);return this}return this.b.push([e,n]),this},next:function(e){for(var n=0;n<this.b.length;n++){var t=this.b[n],o=t[0],a=t[1];if(this.test(e,o))return a}return!1},accepts:function(){return!!this.T},test:function(e,n){return e===n},emit:function(){return this.T}};var F=n(Q,f(),{test:function(e,n){return e===n||n instanceof RegExp&&n.test(e)}}),V=n(Q,f(),{test:function(e,n){return e instanceof n}}),W="aaa|aarp|abb|abbott|abogado|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|af|afl|ag|agency|ai|aig|airforce|airtel|al|alibaba|alipay|allfinanz|alsace|am|amica|amsterdam|an|analytics|android|ao|apartments|app|apple|aq|aquarelle|ar|aramco|archi|army|arpa|arte|as|asia|associates|at|attorney|au|auction|audi|audio|author|auto|autos|avianca|aw|ax|axa|az|azure|ba|baidu|band|bank|bar|barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bb|bbc|bbva|bcg|bcn|bd|be|beats|beer|bentley|berlin|best|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bom|bond|boo|book|boots|bosch|bostik|bot|boutique|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|camera|camp|cancerresearch|canon|capetown|capital|car|caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chloe|christmas|chrome|church|ci|cipriani|circle|cisco|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|date|dating|datsun|day|dclk|de|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|dj|dk|dm|dnp|do|docs|dog|doha|domains|download|drive|dubai|durban|dvag|dz|earth|eat|ec|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epson|equipment|er|erni|es|esq|estate|et|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|fage|fail|fairwinds|faith|family|fan|fans|farm|fashion|fast|feedback|ferrero|fi|film|final|finance|financial|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|florist|flowers|flsmidth|fly|fm|fo|foo|football|ford|forex|forsale|forum|foundation|fox|fr|fresenius|frl|frogans|frontier|fund|furniture|futbol|fyi|ga|gal|gallery|gallup|game|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|gold|goldpoint|golf|goo|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|group|gs|gt|gu|gucci|guge|guide|guitars|guru|gw|gy|hamburg|hangout|haus|hdfcbank|health|healthcare|help|helsinki|here|hermes|hiphop|hitachi|hiv|hk|hm|hn|hockey|holdings|holiday|homedepot|homes|honda|horse|host|hosting|hoteles|hotmail|house|how|hr|hsbc|ht|hu|hyundai|ibm|icbc|ice|icu|id|ie|ifm|iinet|il|im|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|international|investments|io|ipiranga|iq|ir|irish|is|iselect|ist|istanbul|it|itau|iwc|jaguar|java|jcb|je|jetzt|jewelry|jlc|jll|jm|jmp|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kitchen|kiwi|km|kn|koeln|komatsu|kp|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|lamborghini|lamer|lancaster|land|landrover|lanxess|lasalle|lat|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|legal|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|limited|limo|lincoln|linde|link|live|living|lixil|lk|loan|loans|local|locus|lol|london|lotte|lotto|love|lr|ls|lt|ltd|ltda|lu|lupin|luxe|luxury|lv|ly|ma|madrid|maif|maison|makeup|man|management|mango|market|marketing|markets|marriott|mba|mc|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|mg|mh|miami|microsoft|mil|mini|mk|ml|mm|mma|mn|mo|mobi|mobily|moda|moe|moi|mom|monash|money|montblanc|mormon|mortgage|moscow|motorcycles|mov|movie|movistar|mp|mq|mr|ms|mt|mtn|mtpc|mtr|mu|museum|mutuelle|mv|mw|mx|my|mz|na|nadex|nagoya|name|natura|navy|nc|ne|nec|net|netbank|network|neustar|new|news|nexus|nf|ng|ngo|nhk|ni|nico|nikon|ninja|nissan|nl|no|nokia|norton|nowruz|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|office|okinawa|om|omega|one|ong|onl|online|ooo|oracle|orange|org|organic|origins|osaka|otsuka|ovh|pa|page|pamperedchef|panerai|paris|pars|partners|parts|party|passagens|pe|pet|pf|pg|ph|pharmacy|philips|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pohl|poker|porn|post|pr|praxi|press|pro|prod|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|racing|re|read|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|ricoh|rio|rip|ro|rocher|rocks|rodeo|room|rs|rsvp|ru|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|saxo|sb|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scor|scot|sd|se|seat|security|seek|select|sener|services|seven|sew|sex|sexy|sfr|sg|sh|sharp|shell|shia|shiksha|shoes|show|shriram|si|singles|site|sj|sk|ski|skin|sky|skype|sl|sm|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|st|stada|star|starhub|statefarm|statoil|stc|stcgroup|stockholm|storage|store|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|taobao|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|team|tech|technology|tel|telecity|telefonica|temasek|tennis|tf|tg|th|thd|theater|theatre|tickets|tienda|tiffany|tips|tires|tirol|tj|tk|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tp|tr|trade|trading|training|travel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubs|ug|uk|unicom|university|uno|uol|us|uy|uz|va|vacations|vana|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|viking|villas|vin|vip|virgin|vision|vista|vistaprint|viva|vlaanderen|vn|vodka|volkswagen|vote|voting|voto|voyage|vu|vuelos|wales|walter|wang|wanggou|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|wme|wolterskluwer|work|works|world|ws|wtc|wtf|xbox|xerox|xin|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|youtube|yt|za|zara|zero|zip|zm|zone|zuerich|zw".split("|"),X=/[0-9]/,Z=/[a-z0-9]/,_=":",G=[],J=function(e){return new F(e)},$=H.DOMAIN,ee=H.LOCALHOST,ne=H.NUM,te=H.PROTOCOL,oe=H.TLD,ae=H.WS,re=J(),ie=J(ne),se=J($),le=J(),ce=J(ae);re.on("@",J(H.AT)).on(".",J(H.DOT)).on("+",J(H.PLUS)).on("#",J(H.POUND)).on("?",J(H.QUERY)).on("/",J(H.SLASH)).on(_,J(H.COLON)).on("{",J(H.OPENBRACE)).on("[",J(H.OPENBRACKET)).on("(",J(H.OPENPAREN)).on("}",J(H.CLOSEBRACE)).on("]",J(H.CLOSEBRACKET)).on(")",J(H.CLOSEPAREN)).on(/[,;!]/,J(H.PUNCTUATION)),re.on(/\n/,J(H.NL)).on(/\s/,ce),ce.on(/[^\S\n]/,ce);for(var ue=0;ue<W.length;ue++){var fe=p(W[ue],re,oe,$);G.push.apply(G,fe)}var pe=p("file",re,$,$),ge=p("ftp",re,$,$),he=p("http",re,$,$);G.push.apply(G,pe),G.push.apply(G,ge),G.push.apply(G,he);var me=pe.pop(),de=ge.pop(),be=he.pop(),ye=J($),ve=J(te);de.on("s",ye).on(_,ve),be.on("s",ye).on(_,ve),G.push(ye),me.on(_,ve),ye.on(_,ve);var ke=p("localhost",re,ee,$);G.push.apply(G,ke),re.on(X,ie),ie.on("-",le).on(X,ie).on(Z,se),se.on("-",le).on(Z,se);for(var we=0;we<G.length;we++)G[we].on("-",le).on(Z,se);le.on("-",le).on(X,se).on(Z,se),re.on(/./,J(H.SYM));var Oe=function(e){for(var n=e.replace(/[A-Z]/g,function(e){return e.toLowerCase()}),t=e.length,o=[],a=0;a<t;){for(var r=re,i=null,s=null,l=0,c=null,u=-1;a<t&&(s=r.next(n[a]));)i=null,r=s,r.accepts()?(u=0,c=r):u>=0&&u++,l++,a++;if(!(u<0)){a-=u,l-=u;var f=c.emit();o.push(new f(e.substr(a-l,l)))}}return o},Ee=re,Le=Object.freeze({State:F,TOKENS:H,run:Oe,start:Ee}),Ne=function(e){return new V(e)},Ae=H.DOMAIN,xe=H.AT,Ce=H.COLON,Te=H.DOT,Se=H.PUNCTUATION,je=H.LOCALHOST,ze=H.NL,Pe=H.NUM,Re=H.PLUS,Ue=H.POUND,qe=H.PROTOCOL,He=H.QUERY,Be=H.SLASH,De=H.SYM,Ie=H.TLD,Me=H.OPENBRACE,Ke=H.OPENBRACKET,Ye=H.OPENPAREN,Qe=H.CLOSEBRACE,Fe=H.CLOSEBRACKET,Ve=H.CLOSEPAREN,We=Y.EMAIL,Xe=Y.NL,Ze=Y.TEXT,_e=Y.URL,Ge=Ne(),Je=Ne(),$e=Ne(),en=Ne(),nn=Ne(),tn=Ne(),on=Ne(_e),an=Ne(),rn=Ne(_e),sn=Ne(_e),ln=Ne(),cn=Ne(),un=Ne(),fn=Ne(),pn=Ne(_e),gn=Ne(_e),hn=Ne(_e),mn=Ne(),dn=Ne(),bn=Ne(),yn=Ne(),vn=Ne(),kn=Ne(We),wn=Ne(),On=Ne(We),En=Ne(),Ln=Ne(),Nn=Ne(),An=Ne(Xe);Ge.on(ze,An).on(qe,Je).on(Be,$e),Je.on(Be,$e),$e.on(Be,en),Ge.on(Ie,nn).on(Ae,nn).on(je,on).on(Pe,nn),en.on(Ie,sn).on(Ae,sn).on(Pe,sn).on(je,sn),nn.on(Te,tn),yn.on(Te,vn),tn.on(Ie,on).on(Ae,nn).on(Pe,nn).on(je,nn),vn.on(Ie,kn).on(Ae,yn).on(Pe,yn).on(je,yn),on.on(Te,tn),kn.on(Te,vn),on.on(Ce,an).on(Be,sn),an.on(Pe,rn),rn.on(Be,sn),kn.on(Ce,wn),wn.on(Pe,On);var xn=[Ae,xe,je,Pe,Re,Ue,qe,Be,Ie],Cn=[Ce,Te,He,Se,Qe,Fe,Ve,Me,Ke,Ye,De];sn.on(Me,cn).on(Ke,un).on(Ye,fn),ln.on(Me,cn).on(Ke,un).on(Ye,fn),cn.on(Qe,sn),un.on(Fe,sn),fn.on(Ve,sn),pn.on(Qe,sn),gn.on(Fe,sn),hn.on(Ve,sn),mn.on(Qe,sn),dn.on(Fe,sn),bn.on(Ve,sn),cn.on(xn,pn),un.on(xn,gn),fn.on(xn,hn),cn.on(Cn,mn),un.on(Cn,dn),fn.on(Cn,bn),pn.on(xn,pn),gn.on(xn,gn),hn.on(xn,hn),pn.on(Cn,pn),gn.on(Cn,gn),hn.on(Cn,hn),mn.on(xn,pn),dn.on(xn,gn),bn.on(xn,hn),mn.on(Cn,mn),dn.on(Cn,dn),bn.on(Cn,bn),sn.on(xn,sn),ln.on(xn,sn),sn.on(Cn,ln),ln.on(Cn,ln);var Tn=[Ae,Pe,Re,Ue,He,De,Ie];nn.on(Tn,En).on(xe,Ln),on.on(Tn,En).on(xe,Ln),tn.on(Tn,En),En.on(Tn,En).on(xe,Ln).on(Te,Nn),Nn.on(Tn,En),Ln.on(Ie,yn).on(Ae,yn).on(je,kn);var Sn=function(e){for(var n=e.length,t=0,o=[],a=[];t<n;){for(var r=Ge,i=null,s=null,l=0,c=null,u=-1;t<n&&!(i=r.next(e[t]));)a.push(e[t++]);for(;t<n&&(s=i||r.next(e[t]));)i=null,r=s,r.accepts()?(u=0,c=r):u>=0&&u++,t++,l++;if(u<0)for(var f=t-l;f<t;f++)a.push(e[f]);else{a.length>0&&(o.push(new Ze(a)),a=[]),t-=u,l-=u;var p=c.emit();o.push(new p(e.slice(t-l,t)))}}return a.length>0&&o.push(new Ze(a)),o},jn=Y,zn=Ge,Pn=Object.freeze({State:V,TOKENS:jn,run:Sn,start:zn});Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var Rn=function(e){return Sn(Oe(e))},Un=function(e){for(var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1],t=Rn(e),o=[],a=0;a<t.length;a++)!t[a].isLink||n&&t[a].type!==n||o.push(t[a].toObject());return o},qn=function(e){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1],t=Rn(e);return 1===t.length&&t[0].isLink&&(!n||t[0].type===n)};e.find=Un,e.inherits=n,e.options=g,e.parser=Pn,e.scanner=Le,e.test=qn,e.tokenize=Rn}(window.linkify=window.linkify||{})}(),function(e,n,t){var o=function(n,t){"use strict";function o(e,n,t){var o=t[t.length-1];e.replaceChild(o,n);for(var a=t.length-2;a>=0;a--)e.insertBefore(t[a],o),o=t[a]}function a(e,n,t){for(var o=[],a=0;a<e.length;a++){var r=e[a],i=r.isLink&&c.resolve(n.validate,r.toString(),r.type);if(r.isLink&&i){var s=r.toHref(n.defaultProtocol),l=c.resolve(n.format,r.toString(),r.type),u=c.resolve(n.formatHref,s,r.type),f=c.resolve(n.attributes,s,r.type),p=c.resolve(n.tagName,s,r.type),g=c.resolve(n.linkClass,s,r.type),h=c.resolve(n.target,s,r.type),m=c.resolve(n.events,s,r.type),d=t.createElement(p);if(d.setAttribute("href",u),d.setAttribute("class",g),h&&d.setAttribute("target",h),f)for(var b in f)d.setAttribute(b,f[b]);if(m)for(var y in m)d.addEventListener?d.addEventListener(y,m[y]):d.attachEvent&&d.attachEvent("on"+y,m[y]);d.appendChild(t.createTextNode(l)),o.push(d)}else"nl"===r.type&&n.nl2br?o.push(t.createElement("br")):o.push(t.createTextNode(r.toString()))}return o}function r(e,n,t){if(!e||e.nodeType!==u)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var i=n.ignoreTags;if("A"===e.tagName||c.contains(i,e.tagName))return e;for(var s=e.firstChild;s;){switch(s.nodeType){case u:r(s,n,t);break;case f:var p=s.nodeValue,g=l(p),h=a(g,n,t);o(e,s,h),s=h[h.length-1]}s=s.nextSibling}return e}function i(n,t){var o=arguments.length<=2||void 0===arguments[2]?null:arguments[2];try{o=o||e&&e.document||global&&global.document}catch(a){}if(!o)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return t=c.normalize(t),r(n,t,o)}function s(n){function t(e){return e=i.normalize(e),this.each(function(){i.helper(this,e,o)})}var o=arguments.length<=1||void 0===arguments[1]?null:arguments[1];n.fn=n.fn||{};try{o=o||e&&e.document||global&&global.document}catch(a){}if(!o)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the second argument to linkify/jquery");"function"!=typeof n.fn.linkify&&(n.fn.linkify=t,n(o).ready(function(){n("[data-linkify]").each(function(){var e=n(this),t=e.data(),o=t.linkify,a=t.linkifyNlbr,r={linkAttributes:t.linkifyAttributes,defaultProtocol:t.linkifyDefaultProtocol,events:t.linkifyEvents,format:t.linkifyFormat,formatHref:t.linkifyFormatHref,newLine:t.linkifyNewline,nl2br:!!a&&0!==a&&"false"!==a,tagName:t.linkifyTagname,target:t.linkifyTarget,linkClass:t.linkifyLinkclass,validate:t.linkifyValidate,ignoreTags:t.linkifyIgnoreTags},i="this"===o?e:e.find(o);i.linkify(r)})}))}var l=t.tokenize,c=t.options,u=1,f=3;i.helper=r,i.normalize=c.normalize;try{!define&&(e.linkifyElement=i)}catch(p){}return s}(t,n);"function"!=typeof t.fn.linkify&&o(t)}(window,linkify,jQuery);
"undefined"!=typeof console&&console.warn("dist/jquery.linkify.js is deprecated. Use linkify.js and linkify-jquery.js instead."),function(){"use strict";!function(e){function n(e,n){var t=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],o=Object.create(e.prototype);for(var a in t)o[a]=t[a];return o.constructor=n,n.prototype=o,n}function t(e){e=e||{};for(var n=e.newLine||!1,t=e.ignoreTags||[],o=0;o<t.length;o++)t[o]=t[o].toUpperCase();return{attributes:e.linkAttributes||null,defaultProtocol:e.defaultProtocol||"http",events:e.events||null,format:e.format||r,validate:e.validate||i,formatHref:e.formatHref||r,newLine:e.newLine||!1,nl2br:!!n||e.nl2br||!1,tagName:e.tagName||"a",target:e.target||s,linkClass:e.linkClass||"linkified",ignoreTags:t}}function o(e){for(var n=arguments.length,t=Array(n>1?n-1:0),o=1;o<n;o++)t[o-1]=arguments[o];return"function"==typeof e?e.apply(void 0,t):e}function a(e,n){for(var t=0;t<e.length;t++)if(e[t]==n)return!0;return!1}function r(e){return e}function i(e){return!0}function s(e,n){return"url"===n?"_blank":null}function l(){return function(e){e&&(this.a=e)}}function c(e){var t=e?{a:e}:{};return n(g,l(),t)}function u(e){return e instanceof m||e instanceof C}function f(){return function(e){this.b=[],this.T=e||null}}function p(e,n,t,o){for(var a=0,r=e.length,i=n,s=[],l=void 0;a<r&&(l=i.next(e[a]));)i=l,a++;if(a>=r)return[];for(;a<r-1;)l=new X(o),s.push(l),i.on(e[a],l),i=l,a++;return l=new X(t),s.push(l),i.on(e[r-1],l),s}var h=Object.freeze({normalize:t,resolve:o,contains:a}),g=l();g.prototype={toString:function(){return this.a+""}};var m=c(),d=c("@"),b=c(":"),y=c("."),v=c(),k=c(),w=c("\n"),O=c(),E=c("+"),L=c("#"),N=c(),T=c("?"),x=c("/"),A=c(),C=c(),j=c(),S=c("{"),z=c("["),P=c("("),R=c("}"),U=c("]"),q=c(")"),B={Base:g,DOMAIN:m,AT:d,COLON:b,DOT:y,PUNCTUATION:v,LOCALHOST:k,NL:w,NUM:O,PLUS:E,POUND:L,QUERY:T,PROTOCOL:N,SLASH:x,SYM:A,TLD:C,WS:j,OPENBRACE:S,OPENBRACKET:z,OPENPAREN:P,CLOSEBRACE:R,CLOSEBRACKET:U,CLOSEPAREN:q},H=l();H.prototype={type:"token",isLink:!1,toString:function(){for(var e=[],n=0;n<this.a.length;n++)e.push(this.a[n].toString());return e.join("")},toHref:function(){return this.toString()},toObject:function(){var e=arguments.length<=0||void 0===arguments[0]?"http":arguments[0];return{type:this.type,value:this.toString(),href:this.toHref(e)}}};var D=n(H,l(),{type:"email",isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),I=n(H,l(),{type:"text"}),M=n(H,l(),{type:"nl"}),K=n(H,l(),{type:"url",isLink:!0,toHref:function(){for(var e=arguments.length<=0||void 0===arguments[0]?"http":arguments[0],n=!1,t=!1,o=this.a,a=[],r=0;o[r]instanceof N;)n=!0,a.push(o[r].toString().toLowerCase()),r++;for(;o[r]instanceof x;)t=!0,a.push(o[r].toString()),r++;for(;u(o[r]);)a.push(o[r].toString().toLowerCase()),r++;for(;r<o.length;r++)a.push(o[r].toString());return a=a.join(""),n||t||(a=e+"://"+a),a},hasProtocol:function(){return this.a[0]instanceof N}}),Y={Base:H,EMAIL:D,NL:M,TEXT:I,URL:K},Q=f();Q.prototype={defaultTransition:!1,on:function(e,n){if(e instanceof Array){for(var t=0;t<e.length;t++)this.b.push([e[t],n]);return this}return this.b.push([e,n]),this},next:function(e){for(var n=0;n<this.b.length;n++){var t=this.b[n],o=t[0],a=t[1];if(this.test(e,o))return a}return this.defaultTransition},accepts:function(){return!!this.T},test:function(e,n){return e===n},emit:function(){return this.T}};var X=n(Q,f(),{test:function(e,n){return e===n||n instanceof RegExp&&n.test(e)}}),F=n(Q,f(),{test:function(e,n){return e instanceof n}}),V="aaa|aarp|abb|abbott|abogado|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|af|afl|ag|agency|ai|aig|airforce|airtel|al|alibaba|alipay|allfinanz|alsace|am|amica|amsterdam|an|analytics|android|ao|apartments|app|apple|aq|aquarelle|ar|aramco|archi|army|arpa|arte|as|asia|associates|at|attorney|au|auction|audi|audio|author|auto|autos|avianca|aw|ax|axa|az|azure|ba|baidu|band|bank|bar|barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bb|bbc|bbva|bcg|bcn|bd|be|beats|beer|bentley|berlin|best|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bom|bond|boo|book|boots|bosch|bostik|bot|boutique|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|camera|camp|cancerresearch|canon|capetown|capital|car|caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chloe|christmas|chrome|church|ci|cipriani|circle|cisco|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|date|dating|datsun|day|dclk|de|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|dj|dk|dm|dnp|do|docs|dog|doha|domains|download|drive|dubai|durban|dvag|dz|earth|eat|ec|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epson|equipment|er|erni|es|esq|estate|et|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|fage|fail|fairwinds|faith|family|fan|fans|farm|fashion|fast|feedback|ferrero|fi|film|final|finance|financial|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|florist|flowers|flsmidth|fly|fm|fo|foo|football|ford|forex|forsale|forum|foundation|fox|fr|fresenius|frl|frogans|frontier|fund|furniture|futbol|fyi|ga|gal|gallery|gallup|game|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|gold|goldpoint|golf|goo|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|group|gs|gt|gu|gucci|guge|guide|guitars|guru|gw|gy|hamburg|hangout|haus|hdfcbank|health|healthcare|help|helsinki|here|hermes|hiphop|hitachi|hiv|hk|hm|hn|hockey|holdings|holiday|homedepot|homes|honda|horse|host|hosting|hoteles|hotmail|house|how|hr|hsbc|ht|hu|hyundai|ibm|icbc|ice|icu|id|ie|ifm|iinet|il|im|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|international|investments|io|ipiranga|iq|ir|irish|is|iselect|ist|istanbul|it|itau|iwc|jaguar|java|jcb|je|jetzt|jewelry|jlc|jll|jm|jmp|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kitchen|kiwi|km|kn|koeln|komatsu|kp|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|lamborghini|lamer|lancaster|land|landrover|lanxess|lasalle|lat|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|legal|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|limited|limo|lincoln|linde|link|live|living|lixil|lk|loan|loans|local|locus|lol|london|lotte|lotto|love|lr|ls|lt|ltd|ltda|lu|lupin|luxe|luxury|lv|ly|ma|madrid|maif|maison|makeup|man|management|mango|market|marketing|markets|marriott|mba|mc|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|mg|mh|miami|microsoft|mil|mini|mk|ml|mm|mma|mn|mo|mobi|mobily|moda|moe|moi|mom|monash|money|montblanc|mormon|mortgage|moscow|motorcycles|mov|movie|movistar|mp|mq|mr|ms|mt|mtn|mtpc|mtr|mu|museum|mutuelle|mv|mw|mx|my|mz|na|nadex|nagoya|name|natura|navy|nc|ne|nec|net|netbank|network|neustar|new|news|nexus|nf|ng|ngo|nhk|ni|nico|nikon|ninja|nissan|nl|no|nokia|norton|nowruz|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|office|okinawa|om|omega|one|ong|onl|online|ooo|oracle|orange|org|organic|origins|osaka|otsuka|ovh|pa|page|pamperedchef|panerai|paris|pars|partners|parts|party|passagens|pe|pet|pf|pg|ph|pharmacy|philips|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pohl|poker|porn|post|pr|praxi|press|pro|prod|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|racing|re|read|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|ricoh|rio|rip|ro|rocher|rocks|rodeo|room|rs|rsvp|ru|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|saxo|sb|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scor|scot|sd|se|seat|security|seek|select|sener|services|seven|sew|sex|sexy|sfr|sg|sh|sharp|shell|shia|shiksha|shoes|show|shriram|si|singles|site|sj|sk|ski|skin|sky|skype|sl|sm|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|st|stada|star|starhub|statefarm|statoil|stc|stcgroup|stockholm|storage|store|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|taobao|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|team|tech|technology|tel|telecity|telefonica|temasek|tennis|tf|tg|th|thd|theater|theatre|tickets|tienda|tiffany|tips|tires|tirol|tj|tk|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tp|tr|trade|trading|training|travel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubs|ug|uk|unicom|university|uno|uol|us|uy|uz|va|vacations|vana|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|viking|villas|vin|vip|virgin|vision|vista|vistaprint|viva|vlaanderen|vn|vodka|volkswagen|vote|voting|voto|voyage|vu|vuelos|wales|walter|wang|wanggou|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|wme|wolterskluwer|work|works|world|ws|wtc|wtf|xbox|xerox|xin|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|youtube|yt|za|zara|zero|zip|zm|zone|zuerich|zw".split("|"),W="0123456789".split(""),Z="0123456789abcdefghijklmnopqrstuvwxyz".split(""),_=[" ","\f","\r","\t","\x0B"],G=":",J=[],$=function(e){return new X(e)},ee=B.DOMAIN,ne=B.LOCALHOST,te=B.NUM,oe=B.PROTOCOL,ae=B.TLD,re=B.WS,ie=$(),se=$(te),le=$(ee),ce=$(),ue=$(re);ie.on("@",$(B.AT)).on(".",$(B.DOT)).on("+",$(B.PLUS)).on("#",$(B.POUND)).on("?",$(B.QUERY)).on("/",$(B.SLASH)).on(G,$(B.COLON)).on("{",$(B.OPENBRACE)).on("[",$(B.OPENBRACKET)).on("(",$(B.OPENPAREN)).on("}",$(B.CLOSEBRACE)).on("]",$(B.CLOSEBRACKET)).on(")",$(B.CLOSEPAREN)).on([",",";","!",'"'],$(B.PUNCTUATION)),ie.on("\n",$(B.NL)).on(_,ue),ue.on(_,ue);for(var fe=0;fe<V.length;fe++){var pe=p(V[fe],ie,ae,ee);J.push.apply(J,pe)}var he=p("file",ie,ee,ee),ge=p("ftp",ie,ee,ee),me=p("http",ie,ee,ee);J.push.apply(J,he),J.push.apply(J,ge),J.push.apply(J,me);var de=he.pop(),be=ge.pop(),ye=me.pop(),ve=$(ee),ke=$(oe);be.on("s",ve).on(G,ke),ye.on("s",ve).on(G,ke),J.push(ve),de.on(G,ke),ve.on(G,ke);var we=p("localhost",ie,ne,ee);J.push.apply(J,we),ie.on(W,se),se.on("-",ce).on(W,se).on(Z,le),le.on("-",ce).on(Z,le);for(var Oe=0;Oe<J.length;Oe++)J[Oe].on("-",ce).on(Z,le);ce.on("-",ce).on(W,le).on(Z,le),ie.defaultTransition=$(B.SYM);var Ee=function(e){for(var n=e.replace(/[A-Z]/g,function(e){return e.toLowerCase()}),t=e.length,o=[],a=0;a<t;){for(var r=ie,i=null,s=null,l=0,c=null,u=-1;a<t&&(s=r.next(n[a]));)i=null,r=s,r.accepts()?(u=0,c=r):u>=0&&u++,l++,a++;if(!(u<0)){a-=u,l-=u;var f=c.emit();o.push(new f(e.substr(a-l,l)))}}return o},Le=ie,Ne=Object.freeze({State:X,TOKENS:B,run:Ee,start:Le}),Te=function(e){return new F(e)},xe=B.DOMAIN,Ae=B.AT,Ce=B.COLON,je=B.DOT,Se=B.PUNCTUATION,ze=B.LOCALHOST,Pe=B.NL,Re=B.NUM,Ue=B.PLUS,qe=B.POUND,Be=B.PROTOCOL,He=B.QUERY,De=B.SLASH,Ie=B.SYM,Me=B.TLD,Ke=B.OPENBRACE,Ye=B.OPENBRACKET,Qe=B.OPENPAREN,Xe=B.CLOSEBRACE,Fe=B.CLOSEBRACKET,Ve=B.CLOSEPAREN,We=Y.EMAIL,Ze=Y.NL,_e=Y.TEXT,Ge=Y.URL,Je=Te(),$e=Te(),en=Te(),nn=Te(),tn=Te(),on=Te(),an=Te(Ge),rn=Te(),sn=Te(Ge),ln=Te(Ge),cn=Te(),un=Te(),fn=Te(),pn=Te(),hn=Te(Ge),gn=Te(Ge),mn=Te(Ge),dn=Te(),bn=Te(),yn=Te(),vn=Te(),kn=Te(),wn=Te(We),On=Te(),En=Te(We),Ln=Te(),Nn=Te(),Tn=Te(),xn=Te(Ze);Je.on(Pe,xn).on(Be,$e).on(De,en),$e.on(De,en),en.on(De,nn),Je.on(Me,tn).on(xe,tn).on(ze,an).on(Re,tn),nn.on(Me,ln).on(xe,ln).on(Re,ln).on(ze,ln),tn.on(je,on),vn.on(je,kn),on.on(Me,an).on(xe,tn).on(Re,tn).on(ze,tn),kn.on(Me,wn).on(xe,vn).on(Re,vn).on(ze,vn),an.on(je,on),wn.on(je,kn),an.on(Ce,rn).on(De,ln),rn.on(Re,sn),sn.on(De,ln),wn.on(Ce,On),On.on(Re,En);var An=[xe,Ae,ze,Re,Ue,qe,Be,De,Me,Ie],Cn=[Ce,je,He,Se,Xe,Fe,Ve,Ke,Ye,Qe];ln.on(Ke,un).on(Ye,fn).on(Qe,pn),cn.on(Ke,un).on(Ye,fn).on(Qe,pn),un.on(Xe,ln),fn.on(Fe,ln),pn.on(Ve,ln),hn.on(Xe,ln),gn.on(Fe,ln),mn.on(Ve,ln),dn.on(Xe,ln),bn.on(Fe,ln),yn.on(Ve,ln),un.on(An,hn),fn.on(An,gn),pn.on(An,mn),un.on(Cn,dn),fn.on(Cn,bn),pn.on(Cn,yn),hn.on(An,hn),gn.on(An,gn),mn.on(An,mn),hn.on(Cn,hn),gn.on(Cn,gn),mn.on(Cn,mn),dn.on(An,hn),bn.on(An,gn),yn.on(An,mn),dn.on(Cn,dn),bn.on(Cn,bn),yn.on(Cn,yn),ln.on(An,ln),cn.on(An,ln),ln.on(Cn,cn),cn.on(Cn,cn);var jn=[xe,Re,Ue,qe,He,Ie,Me];tn.on(jn,Ln).on(Ae,Nn),an.on(jn,Ln).on(Ae,Nn),on.on(jn,Ln),Ln.on(jn,Ln).on(Ae,Nn).on(je,Tn),Tn.on(jn,Ln),Nn.on(Me,vn).on(xe,vn).on(ze,wn);var Sn=function(e){for(var n=e.length,t=0,o=[],a=[];t<n;){for(var r=Je,i=null,s=null,l=0,c=null,u=-1;t<n&&!(i=r.next(e[t]));)a.push(e[t++]);for(;t<n&&(s=i||r.next(e[t]));)i=null,r=s,r.accepts()?(u=0,c=r):u>=0&&u++,t++,l++;if(u<0)for(var f=t-l;f<t;f++)a.push(e[f]);else{a.length>0&&(o.push(new _e(a)),a=[]),t-=u,l-=u;var p=c.emit();o.push(new p(e.slice(t-l,t)))}}return a.length>0&&o.push(new _e(a)),o},zn=Y,Pn=Je,Rn=Object.freeze({State:F,TOKENS:zn,run:Sn,start:Pn});Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var Un=function(e){return Sn(Ee(e))},qn=function(e){for(var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1],t=Un(e),o=[],a=0;a<t.length;a++)!t[a].isLink||n&&t[a].type!==n||o.push(t[a].toObject());return o},Bn=function(e){var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1],t=Un(e);return 1===t.length&&t[0].isLink&&(!n||t[0].type===n)};e.find=qn,e.inherits=n,e.options=h,e.parser=Rn,e.scanner=Ne,e.test=Bn,e.tokenize=Un}(window.linkify=window.linkify||{})}(),function(e,n,t){var o=function(n,t){"use strict";function o(e,n,t){var o=t[t.length-1];e.replaceChild(o,n);for(var a=t.length-2;a>=0;a--)e.insertBefore(t[a],o),o=t[a]}function a(e,n,t){for(var o=[],a=0;a<e.length;a++){var r=e[a];if("nl"===r.type&&n.nl2br)o.push(t.createElement("br"));else if(r.isLink&&c.resolve(n.validate,r.toString(),r.type)){var i=r.toHref(n.defaultProtocol),s=c.resolve(n.format,r.toString(),r.type),l=c.resolve(n.formatHref,i,r.type),u=c.resolve(n.attributes,i,r.type),f=c.resolve(n.tagName,i,r.type),p=c.resolve(n.linkClass,i,r.type),h=c.resolve(n.target,i,r.type),g=c.resolve(n.events,i,r.type),m=t.createElement(f);if(m.setAttribute("href",l),m.setAttribute("class",p),h&&m.setAttribute("target",h),u)for(var d in u)m.setAttribute(d,u[d]);if(g)for(var b in g)m.addEventListener?m.addEventListener(b,g[b]):m.attachEvent&&m.attachEvent("on"+b,g[b]);m.appendChild(t.createTextNode(s)),o.push(m)}else o.push(t.createTextNode(r.toString()))}return o}function r(e,n,t){if(!e||e.nodeType!==f)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var i=n.ignoreTags;if("A"===e.tagName||c.contains(i,e.tagName))return e;for(var s=e.firstChild;s;){switch(s.nodeType){case f:r(s,n,t);break;case p:var h=s.nodeValue,g=l(h);if(0===g.length||1===g.length&&g[0]instanceof u)break;var m=a(g,n,t);o(e,s,m),s=m[m.length-1]}s=s.nextSibling}return e}function i(n,t){var o=arguments.length<=2||void 0===arguments[2]?null:arguments[2];try{o=o||e&&e.document||global&&global.document}catch(a){}if(!o)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return t=c.normalize(t),r(n,t,o)}function s(n){function t(e){return e=i.normalize(e),this.each(function(){i.helper(this,e,o)})}var o=arguments.length<=1||void 0===arguments[1]?null:arguments[1];n.fn=n.fn||{};try{o=o||e&&e.document||global&&global.document}catch(a){}if(!o)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the second argument to linkify/jquery");"function"!=typeof n.fn.linkify&&(n.fn.linkify=t,n(o).ready(function(){n("[data-linkify]").each(function(){var e=n(this),t=e.data(),o=t.linkify,a=t.linkifyNlbr,r={linkAttributes:t.linkifyAttributes,defaultProtocol:t.linkifyDefaultProtocol,events:t.linkifyEvents,format:t.linkifyFormat,formatHref:t.linkifyFormatHref,newLine:t.linkifyNewline,nl2br:!!a&&0!==a&&"false"!==a,tagName:t.linkifyTagname,target:t.linkifyTarget,linkClass:t.linkifyLinkclass,validate:t.linkifyValidate,ignoreTags:t.linkifyIgnoreTags},i="this"===o?e:e.find(o);i.linkify(r)})}))}var l=t.tokenize,c=t.options,u=t.parser.TOKENS.TEXT,f=1,p=3;i.helper=r,i.normalize=c.normalize;try{!define&&(e.linkifyElement=i)}catch(h){}return s}(t,n);"function"!=typeof t.fn.linkify&&o(t)}(window,linkify,jQuery);

@@ -32,2 +32,3 @@ define('linkify-element', ['module', 'exports', './linkify'], function (module, exports, _linkify) {

var options = linkify.options;
var TEXT_TOKEN = linkify.parser.TOKENS.TEXT;

@@ -63,47 +64,47 @@ var HTML_NODE = 1,

var token = tokens[i];
var validated = token.isLink && options.resolve(opts.validate, token.toString(), token.type);
if (token.isLink && validated) {
if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
continue;
} else if (!token.isLink || !options.resolve(opts.validate, token.toString(), token.type)) {
result.push(doc.createTextNode(token.toString()));
continue;
}
var href = token.toHref(opts.defaultProtocol),
formatted = options.resolve(opts.format, token.toString(), token.type),
formattedHref = options.resolve(opts.formatHref, href, token.type),
attributesHash = options.resolve(opts.attributes, href, token.type),
tagName = options.resolve(opts.tagName, href, token.type),
linkClass = options.resolve(opts.linkClass, href, token.type),
target = options.resolve(opts.target, href, token.type),
events = options.resolve(opts.events, href, token.type);
var href = token.toHref(opts.defaultProtocol);
var formatted = options.resolve(opts.format, token.toString(), token.type);
var formattedHref = options.resolve(opts.formatHref, href, token.type);
var attributesHash = options.resolve(opts.attributes, href, token.type);
var tagName = options.resolve(opts.tagName, href, token.type);
var linkClass = options.resolve(opts.linkClass, href, token.type);
var target = options.resolve(opts.target, href, token.type);
var events = options.resolve(opts.events, href, token.type);
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
}
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
} else if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
} else {
result.push(doc.createTextNode(token.toString()));
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
}

@@ -140,10 +141,16 @@

var str = childElement.nodeValue,
tokens = tokenize(str),
nodes = tokensToNodes(tokens, opts, doc);
var str = childElement.nodeValue;
var tokens = tokenize(str);
if (tokens.length === 0 || tokens.length === 1 && tokens[0] instanceof TEXT_TOKEN) {
// No node replacement required
break;
}
var nodes = tokensToNodes(tokens, opts, doc);
// Swap out the current child for the set of nodes
replaceChildWithChildren(element, childElement, nodes);
// so that the correct sibling is selected
// so that the correct sibling is selected next
childElement = nodes[nodes.length - 1];

@@ -150,0 +157,0 @@

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

define("linkify-element",["module","exports","./linkify"],function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function o(e,t,r){var n=r[r.length-1];e.replaceChild(n,t);for(var o=r.length-2;o>=0;o--)e.insertBefore(r[o],n),n=r[o]}function i(e,t,r){for(var n=[],o=0;o<e.length;o++){var i=e[o],a=i.isLink&&d.resolve(t.validate,i.toString(),i.type);if(i.isLink&&a){var l=i.toHref(t.defaultProtocol),s=d.resolve(t.format,i.toString(),i.type),f=d.resolve(t.formatHref,l,i.type),u=d.resolve(t.attributes,l,i.type),v=d.resolve(t.tagName,l,i.type),c=d.resolve(t.linkClass,l,i.type),p=d.resolve(t.target,l,i.type),h=d.resolve(t.events,l,i.type),m=r.createElement(v);if(m.setAttribute("href",f),m.setAttribute("class",c),p&&m.setAttribute("target",p),u)for(var y in u)m.setAttribute(y,u[y]);if(h)for(var g in h)m.addEventListener?m.addEventListener(g,h[g]):m.attachEvent&&m.attachEvent("on"+g,h[g]);m.appendChild(r.createTextNode(s)),n.push(m)}else"nl"===i.type&&t.nl2br?n.push(r.createElement("br")):n.push(r.createTextNode(i.toString()))}return n}function a(e,t,r){if(!e||e.nodeType!==v)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var n=t.ignoreTags;if("A"===e.tagName||d.contains(n,e.tagName))return e;for(var l=e.firstChild;l;){switch(l.nodeType){case v:a(l,t,r);break;case c:var s=l.nodeValue,f=u(s),p=i(f,t,r);o(e,l,p),l=p[p.length-1]}l=l.nextSibling}return e}function l(e,t){var r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];try{r=r||window&&window.document||global&&global.document}catch(n){}if(!r)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return t=d.normalize(t),a(e,t,r)}try{Object.defineProperty(t,"__esModule",{value:!0})}catch(s){t.__esModule=!0}var f=n(r),u=f.tokenize,d=f.options,v=1,c=3;l.helper=a,l.normalize=d.normalize,t["default"]=l,e.exports=t["default"]});
define("linkify-element",["module","exports","./linkify"],function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function o(e,t,r){var n=r[r.length-1];e.replaceChild(n,t);for(var o=r.length-2;o>=0;o--)e.insertBefore(r[o],n),n=r[o]}function a(e,t,r){for(var n=[],o=0;o<e.length;o++){var a=e[o];if("nl"===a.type&&t.nl2br)n.push(r.createElement("br"));else if(a.isLink&&d.resolve(t.validate,a.toString(),a.type)){var i=a.toHref(t.defaultProtocol),l=d.resolve(t.format,a.toString(),a.type),s=d.resolve(t.formatHref,i,a.type),f=d.resolve(t.attributes,i,a.type),u=d.resolve(t.tagName,i,a.type),v=d.resolve(t.linkClass,i,a.type),c=d.resolve(t.target,i,a.type),p=d.resolve(t.events,i,a.type),h=r.createElement(u);if(h.setAttribute("href",s),h.setAttribute("class",v),c&&h.setAttribute("target",c),f)for(var m in f)h.setAttribute(m,f[m]);if(p)for(var y in p)h.addEventListener?h.addEventListener(y,p[y]):h.attachEvent&&h.attachEvent("on"+y,p[y]);h.appendChild(r.createTextNode(l)),n.push(h)}else n.push(r.createTextNode(a.toString()))}return n}function i(e,t,r){if(!e||e.nodeType!==c)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var n=t.ignoreTags;if("A"===e.tagName||d.contains(n,e.tagName))return e;for(var l=e.firstChild;l;){switch(l.nodeType){case c:i(l,t,r);break;case p:var s=l.nodeValue,f=u(s);if(0===f.length||1===f.length&&f[0]instanceof v)break;var h=a(f,t,r);o(e,l,h),l=h[h.length-1]}l=l.nextSibling}return e}function l(e,t){var r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];try{r=r||window&&window.document||global&&global.document}catch(n){}if(!r)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return t=d.normalize(t),i(e,t,r)}try{Object.defineProperty(t,"__esModule",{value:!0})}catch(s){t.__esModule=!0}var f=n(r),u=f.tokenize,d=f.options,v=f.parser.TOKENS.TEXT,c=1,p=3;l.helper=i,l.normalize=d.normalize,t["default"]=l,e.exports=t["default"]});

@@ -9,2 +9,3 @@ 'use strict';

var options = linkify.options;
var TEXT_TOKEN = linkify.parser.TOKENS.TEXT;

@@ -38,47 +39,47 @@ var HTML_NODE = 1;

var token = tokens[i];
var validated = token.isLink && options.resolve(opts.validate, token.toString(), token.type);
if (token.isLink && validated) {
if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
continue;
} else if (!token.isLink || !options.resolve(opts.validate, token.toString(), token.type)) {
result.push(doc.createTextNode(token.toString()));
continue;
}
var href = token.toHref(opts.defaultProtocol),
formatted = options.resolve(opts.format, token.toString(), token.type),
formattedHref = options.resolve(opts.formatHref, href, token.type),
attributesHash = options.resolve(opts.attributes, href, token.type),
tagName = options.resolve(opts.tagName, href, token.type),
linkClass = options.resolve(opts.linkClass, href, token.type),
target = options.resolve(opts.target, href, token.type),
events = options.resolve(opts.events, href, token.type);
var href = token.toHref(opts.defaultProtocol);
var formatted = options.resolve(opts.format, token.toString(), token.type);
var formattedHref = options.resolve(opts.formatHref, href, token.type);
var attributesHash = options.resolve(opts.attributes, href, token.type);
var tagName = options.resolve(opts.tagName, href, token.type);
var linkClass = options.resolve(opts.linkClass, href, token.type);
var target = options.resolve(opts.target, href, token.type);
var events = options.resolve(opts.events, href, token.type);
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
}
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
} else if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
} else {
result.push(doc.createTextNode(token.toString()));
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
}

@@ -115,10 +116,16 @@

var str = childElement.nodeValue,
tokens = tokenize(str),
nodes = tokensToNodes(tokens, opts, doc);
var str = childElement.nodeValue;
var tokens = tokenize(str);
if (tokens.length === 0 || tokens.length === 1 && tokens[0] instanceof TEXT_TOKEN) {
// No node replacement required
break;
}
var nodes = tokensToNodes(tokens, opts, doc);
// Swap out the current child for the set of nodes
replaceChildWithChildren(element, childElement, nodes);
// so that the correct sibling is selected
// so that the correct sibling is selected next
childElement = nodes[nodes.length - 1];

@@ -125,0 +132,0 @@

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

"use strict";!function(e,t){var n=function(t){function n(e,t,n){var r=n[n.length-1];e.replaceChild(r,t);for(var i=n.length-2;i>=0;i--)e.insertBefore(n[i],r),r=n[i]}function r(e,t,n){for(var r=[],i=0;i<e.length;i++){var o=e[i],a=o.isLink&&l.resolve(t.validate,o.toString(),o.type);if(o.isLink&&a){var s=o.toHref(t.defaultProtocol),f=l.resolve(t.format,o.toString(),o.type),v=l.resolve(t.formatHref,s,o.type),u=l.resolve(t.attributes,s,o.type),c=l.resolve(t.tagName,s,o.type),d=l.resolve(t.linkClass,s,o.type),p=l.resolve(t.target,s,o.type),h=l.resolve(t.events,s,o.type),m=n.createElement(c);if(m.setAttribute("href",v),m.setAttribute("class",d),p&&m.setAttribute("target",p),u)for(var g in u)m.setAttribute(g,u[g]);if(h)for(var y in h)m.addEventListener?m.addEventListener(y,h[y]):m.attachEvent&&m.attachEvent("on"+y,h[y]);m.appendChild(n.createTextNode(f)),r.push(m)}else"nl"===o.type&&t.nl2br?r.push(n.createElement("br")):r.push(n.createTextNode(o.toString()))}return r}function i(e,t,o){if(!e||e.nodeType!==s)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var v=t.ignoreTags;if("A"===e.tagName||l.contains(v,e.tagName))return e;for(var u=e.firstChild;u;){switch(u.nodeType){case s:i(u,t,o);break;case f:var c=u.nodeValue,d=a(c),p=r(d,t,o);n(e,u,p),u=p[p.length-1]}u=u.nextSibling}return e}function o(t,n){var r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];try{r=r||e&&e.document||global&&global.document}catch(o){}if(!r)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return n=l.normalize(n),i(t,n,r)}var a=t.tokenize,l=t.options,s=1,f=3;return o.helper=i,o.normalize=l.normalize,o}(t);e.linkifyElement=n}(window,linkify);
"use strict";!function(e,t){var n=function(t){function n(e,t,n){var r=n[n.length-1];e.replaceChild(r,t);for(var a=n.length-2;a>=0;a--)e.insertBefore(n[a],r),r=n[a]}function r(e,t,n){for(var r=[],a=0;a<e.length;a++){var i=e[a];if("nl"===i.type&&t.nl2br)r.push(n.createElement("br"));else if(i.isLink&&l.resolve(t.validate,i.toString(),i.type)){var o=i.toHref(t.defaultProtocol),s=l.resolve(t.format,i.toString(),i.type),f=l.resolve(t.formatHref,o,i.type),v=l.resolve(t.attributes,o,i.type),u=l.resolve(t.tagName,o,i.type),c=l.resolve(t.linkClass,o,i.type),d=l.resolve(t.target,o,i.type),h=l.resolve(t.events,o,i.type),p=n.createElement(u);if(p.setAttribute("href",f),p.setAttribute("class",c),d&&p.setAttribute("target",d),v)for(var m in v)p.setAttribute(m,v[m]);if(h)for(var g in h)p.addEventListener?p.addEventListener(g,h[g]):p.attachEvent&&p.attachEvent("on"+g,h[g]);p.appendChild(n.createTextNode(s)),r.push(p)}else r.push(n.createTextNode(i.toString()))}return r}function a(e,t,i){if(!e||e.nodeType!==f)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var u=t.ignoreTags;if("A"===e.tagName||l.contains(u,e.tagName))return e;for(var c=e.firstChild;c;){switch(c.nodeType){case f:a(c,t,i);break;case v:var d=c.nodeValue,h=o(d);if(0===h.length||1===h.length&&h[0]instanceof s)break;var p=r(h,t,i);n(e,c,p),c=p[p.length-1]}c=c.nextSibling}return e}function i(t,n){var r=arguments.length<=2||void 0===arguments[2]?null:arguments[2];try{r=r||e&&e.document||global&&global.document}catch(i){}if(!r)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return n=l.normalize(n),a(t,n,r)}var o=t.tokenize,l=t.options,s=t.parser.TOKENS.TEXT,f=1,v=3;return i.helper=a,i.normalize=l.normalize,i}(t);e.linkifyElement=n}(window,linkify);

@@ -32,2 +32,3 @@ define('linkify-element', ['module', 'exports', './linkify'], function (module, exports, _linkify) {

var options = linkify.options;
var TEXT_TOKEN = linkify.parser.TOKENS.TEXT;

@@ -63,47 +64,47 @@ var HTML_NODE = 1,

var token = tokens[i];
var validated = token.isLink && options.resolve(opts.validate, token.toString(), token.type);
if (token.isLink && validated) {
if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
continue;
} else if (!token.isLink || !options.resolve(opts.validate, token.toString(), token.type)) {
result.push(doc.createTextNode(token.toString()));
continue;
}
var href = token.toHref(opts.defaultProtocol),
formatted = options.resolve(opts.format, token.toString(), token.type),
formattedHref = options.resolve(opts.formatHref, href, token.type),
attributesHash = options.resolve(opts.attributes, href, token.type),
tagName = options.resolve(opts.tagName, href, token.type),
linkClass = options.resolve(opts.linkClass, href, token.type),
target = options.resolve(opts.target, href, token.type),
events = options.resolve(opts.events, href, token.type);
var href = token.toHref(opts.defaultProtocol);
var formatted = options.resolve(opts.format, token.toString(), token.type);
var formattedHref = options.resolve(opts.formatHref, href, token.type);
var attributesHash = options.resolve(opts.attributes, href, token.type);
var tagName = options.resolve(opts.tagName, href, token.type);
var linkClass = options.resolve(opts.linkClass, href, token.type);
var target = options.resolve(opts.target, href, token.type);
var events = options.resolve(opts.events, href, token.type);
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
}
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
} else if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
} else {
result.push(doc.createTextNode(token.toString()));
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
}

@@ -140,10 +141,16 @@

var str = childElement.nodeValue,
tokens = tokenize(str),
nodes = tokensToNodes(tokens, opts, doc);
var str = childElement.nodeValue;
var tokens = tokenize(str);
if (tokens.length === 0 || tokens.length === 1 && tokens[0] instanceof TEXT_TOKEN) {
// No node replacement required
break;
}
var nodes = tokensToNodes(tokens, opts, doc);
// Swap out the current child for the set of nodes
replaceChildWithChildren(element, childElement, nodes);
// so that the correct sibling is selected
// so that the correct sibling is selected next
childElement = nodes[nodes.length - 1];

@@ -150,0 +157,0 @@

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

define("linkify-element",["module","exports","./linkify"],function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e,t,n){var i=n[n.length-1];e.replaceChild(i,t);for(var r=n.length-2;r>=0;r--)e.insertBefore(n[r],i),i=n[r]}function o(e,t,n){for(var i=[],r=0;r<e.length;r++){var o=e[r],l=o.isLink&&d.resolve(t.validate,o.toString(),o.type);if(o.isLink&&l){var a=o.toHref(t.defaultProtocol),f=d.resolve(t.format,o.toString(),o.type),u=d.resolve(t.formatHref,a,o.type),s=d.resolve(t.attributes,a,o.type),c=d.resolve(t.tagName,a,o.type),y=d.resolve(t.linkClass,a,o.type),m=d.resolve(t.target,a,o.type),v=d.resolve(t.events,a,o.type),h=n.createElement(c);if(h.setAttribute("href",u),h.setAttribute("class",y),m&&h.setAttribute("target",m),s)for(var p in s)h.setAttribute(p,s[p]);if(v)for(var k in v)h.addEventListener?h.addEventListener(k,v[k]):h.attachEvent&&h.attachEvent("on"+k,v[k]);h.appendChild(n.createTextNode(f)),i.push(h)}else"nl"===o.type&&t.nl2br?i.push(n.createElement("br")):i.push(n.createTextNode(o.toString()))}return i}function l(e,t,n){if(!e||e.nodeType!==c)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var i=t.ignoreTags;if("A"===e.tagName||d.contains(i,e.tagName))return e;for(var a=e.firstChild;a;){switch(a.nodeType){case c:l(a,t,n);break;case y:var f=a.nodeValue,u=s(f),m=o(u,t,n);r(e,a,m),a=m[m.length-1]}a=a.nextSibling}return e}function a(e,t){var n=arguments.length<=2||void 0===arguments[2]?null:arguments[2];try{n=n||window&&window.document||global&&global.document}catch(i){}if(!n)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return t=d.normalize(t),l(e,t,n)}try{Object.defineProperty(t,"__esModule",{value:!0})}catch(f){t.__esModule=!0}var u=i(n),s=u.tokenize,d=u.options,c=1,y=3;a.helper=l,a.normalize=d.normalize,t["default"]=a,e.exports=t["default"]}),define("linkify-jquery",["module","exports","jquery","./linkify-element"],function(e,t,n,i){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){function t(e){return e=a["default"].normalize(e),this.each(function(){a["default"].helper(this,e,n)})}var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];e.fn=e.fn||{};try{n=n||window&&window.document||global&&global.document}catch(i){}if(!n)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the second argument to linkify/jquery");"function"!=typeof e.fn.linkify&&(e.fn.linkify=t,e(n).ready(function(){e("[data-linkify]").each(function(){var t=e(this),n=t.data(),i=n.linkify,r=n.linkifyNlbr,o={linkAttributes:n.linkifyAttributes,defaultProtocol:n.linkifyDefaultProtocol,events:n.linkifyEvents,format:n.linkifyFormat,formatHref:n.linkifyFormatHref,newLine:n.linkifyNewline,nl2br:!!r&&0!==r&&"false"!==r,tagName:n.linkifyTagname,target:n.linkifyTarget,linkClass:n.linkifyLinkclass,validate:n.linkifyValidate,ignoreTags:n.linkifyIgnoreTags},l="this"===i?t:t.find(i);l.linkify(o)})}))}try{Object.defineProperty(t,"__esModule",{value:!0})}catch(l){t.__esModule=!0}t["default"]=o;var a=(r(n),r(i));try{!define&&(window.linkifyElement=a["default"])}catch(l){}e.exports=t["default"]}),require(["jquery","linkify-jquery"],function(e,t){"function"!=typeof e.fn.linkify&&t(e)});
define("linkify-element",["module","exports","./linkify"],function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e,t,n){var i=n[n.length-1];e.replaceChild(i,t);for(var r=n.length-2;r>=0;r--)e.insertBefore(n[r],i),i=n[r]}function o(e,t,n){for(var i=[],r=0;r<e.length;r++){var o=e[r];if("nl"===o.type&&t.nl2br)i.push(n.createElement("br"));else if(o.isLink&&d.resolve(t.validate,o.toString(),o.type)){var a=o.toHref(t.defaultProtocol),l=d.resolve(t.format,o.toString(),o.type),f=d.resolve(t.formatHref,a,o.type),u=d.resolve(t.attributes,a,o.type),s=d.resolve(t.tagName,a,o.type),c=d.resolve(t.linkClass,a,o.type),y=d.resolve(t.target,a,o.type),m=d.resolve(t.events,a,o.type),v=n.createElement(s);if(v.setAttribute("href",f),v.setAttribute("class",c),y&&v.setAttribute("target",y),u)for(var h in u)v.setAttribute(h,u[h]);if(m)for(var p in m)v.addEventListener?v.addEventListener(p,m[p]):v.attachEvent&&v.attachEvent("on"+p,m[p]);v.appendChild(n.createTextNode(l)),i.push(v)}else i.push(n.createTextNode(o.toString()))}return i}function a(e,t,n){if(!e||e.nodeType!==y)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var i=t.ignoreTags;if("A"===e.tagName||d.contains(i,e.tagName))return e;for(var l=e.firstChild;l;){switch(l.nodeType){case y:a(l,t,n);break;case m:var f=l.nodeValue,u=s(f);if(0===u.length||1===u.length&&u[0]instanceof c)break;var v=o(u,t,n);r(e,l,v),l=v[v.length-1]}l=l.nextSibling}return e}function l(e,t){var n=arguments.length<=2||void 0===arguments[2]?null:arguments[2];try{n=n||window&&window.document||global&&global.document}catch(i){}if(!n)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return t=d.normalize(t),a(e,t,n)}try{Object.defineProperty(t,"__esModule",{value:!0})}catch(f){t.__esModule=!0}var u=i(n),s=u.tokenize,d=u.options,c=u.parser.TOKENS.TEXT,y=1,m=3;l.helper=a,l.normalize=d.normalize,t["default"]=l,e.exports=t["default"]}),define("linkify-jquery",["module","exports","jquery","./linkify-element"],function(e,t,n,i){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){function t(e){return e=l["default"].normalize(e),this.each(function(){l["default"].helper(this,e,n)})}var n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];e.fn=e.fn||{};try{n=n||window&&window.document||global&&global.document}catch(i){}if(!n)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the second argument to linkify/jquery");"function"!=typeof e.fn.linkify&&(e.fn.linkify=t,e(n).ready(function(){e("[data-linkify]").each(function(){var t=e(this),n=t.data(),i=n.linkify,r=n.linkifyNlbr,o={linkAttributes:n.linkifyAttributes,defaultProtocol:n.linkifyDefaultProtocol,events:n.linkifyEvents,format:n.linkifyFormat,formatHref:n.linkifyFormatHref,newLine:n.linkifyNewline,nl2br:!!r&&0!==r&&"false"!==r,tagName:n.linkifyTagname,target:n.linkifyTarget,linkClass:n.linkifyLinkclass,validate:n.linkifyValidate,ignoreTags:n.linkifyIgnoreTags},a="this"===i?t:t.find(i);a.linkify(o)})}))}try{Object.defineProperty(t,"__esModule",{value:!0})}catch(a){t.__esModule=!0}t["default"]=o;var l=(r(n),r(i));try{!define&&(window.linkifyElement=l["default"])}catch(a){}e.exports=t["default"]}),require(["jquery","linkify-jquery"],function(e,t){"function"!=typeof e.fn.linkify&&t(e)});

@@ -9,2 +9,3 @@ 'use strict';

var options = linkify.options;
var TEXT_TOKEN = linkify.parser.TOKENS.TEXT;

@@ -38,47 +39,47 @@ var HTML_NODE = 1;

var token = tokens[i];
var validated = token.isLink && options.resolve(opts.validate, token.toString(), token.type);
if (token.isLink && validated) {
if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
continue;
} else if (!token.isLink || !options.resolve(opts.validate, token.toString(), token.type)) {
result.push(doc.createTextNode(token.toString()));
continue;
}
var href = token.toHref(opts.defaultProtocol),
formatted = options.resolve(opts.format, token.toString(), token.type),
formattedHref = options.resolve(opts.formatHref, href, token.type),
attributesHash = options.resolve(opts.attributes, href, token.type),
tagName = options.resolve(opts.tagName, href, token.type),
linkClass = options.resolve(opts.linkClass, href, token.type),
target = options.resolve(opts.target, href, token.type),
events = options.resolve(opts.events, href, token.type);
var href = token.toHref(opts.defaultProtocol);
var formatted = options.resolve(opts.format, token.toString(), token.type);
var formattedHref = options.resolve(opts.formatHref, href, token.type);
var attributesHash = options.resolve(opts.attributes, href, token.type);
var tagName = options.resolve(opts.tagName, href, token.type);
var linkClass = options.resolve(opts.linkClass, href, token.type);
var target = options.resolve(opts.target, href, token.type);
var events = options.resolve(opts.events, href, token.type);
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
}
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
} else if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
} else {
result.push(doc.createTextNode(token.toString()));
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
}

@@ -115,10 +116,16 @@

var str = childElement.nodeValue,
tokens = tokenize(str),
nodes = tokensToNodes(tokens, opts, doc);
var str = childElement.nodeValue;
var tokens = tokenize(str);
if (tokens.length === 0 || tokens.length === 1 && tokens[0] instanceof TEXT_TOKEN) {
// No node replacement required
break;
}
var nodes = tokensToNodes(tokens, opts, doc);
// Swap out the current child for the set of nodes
replaceChildWithChildren(element, childElement, nodes);
// so that the correct sibling is selected
// so that the correct sibling is selected next
childElement = nodes[nodes.length - 1];

@@ -125,0 +132,0 @@

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

"use strict";!function(e,t,n){var i=function(t,n){function i(e,t,n){var i=n[n.length-1];e.replaceChild(i,t);for(var r=n.length-2;r>=0;r--)e.insertBefore(n[r],i),i=n[r]}function r(e,t,n){for(var i=[],r=0;r<e.length;r++){var o=e[r],a=o.isLink&&s.resolve(t.validate,o.toString(),o.type);if(o.isLink&&a){var l=o.toHref(t.defaultProtocol),f=s.resolve(t.format,o.toString(),o.type),u=s.resolve(t.formatHref,l,o.type),c=s.resolve(t.attributes,l,o.type),y=s.resolve(t.tagName,l,o.type),d=s.resolve(t.linkClass,l,o.type),m=s.resolve(t.target,l,o.type),v=s.resolve(t.events,l,o.type),h=n.createElement(y);if(h.setAttribute("href",u),h.setAttribute("class",d),m&&h.setAttribute("target",m),c)for(var k in c)h.setAttribute(k,c[k]);if(v)for(var g in v)h.addEventListener?h.addEventListener(g,v[g]):h.attachEvent&&h.attachEvent("on"+g,v[g]);h.appendChild(n.createTextNode(f)),i.push(h)}else"nl"===o.type&&t.nl2br?i.push(n.createElement("br")):i.push(n.createTextNode(o.toString()))}return i}function o(e,t,n){if(!e||e.nodeType!==u)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var a=t.ignoreTags;if("A"===e.tagName||s.contains(a,e.tagName))return e;for(var l=e.firstChild;l;){switch(l.nodeType){case u:o(l,t,n);break;case c:var y=l.nodeValue,d=f(y),m=r(d,t,n);i(e,l,m),l=m[m.length-1]}l=l.nextSibling}return e}function a(t,n){var i=arguments.length<=2||void 0===arguments[2]?null:arguments[2];try{i=i||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return n=s.normalize(n),o(t,n,i)}function l(t){function n(e){return e=a.normalize(e),this.each(function(){a.helper(this,e,i)})}var i=arguments.length<=1||void 0===arguments[1]?null:arguments[1];t.fn=t.fn||{};try{i=i||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the second argument to linkify/jquery");"function"!=typeof t.fn.linkify&&(t.fn.linkify=n,t(i).ready(function(){t("[data-linkify]").each(function(){var e=t(this),n=e.data(),i=n.linkify,r=n.linkifyNlbr,o={linkAttributes:n.linkifyAttributes,defaultProtocol:n.linkifyDefaultProtocol,events:n.linkifyEvents,format:n.linkifyFormat,formatHref:n.linkifyFormatHref,newLine:n.linkifyNewline,nl2br:!!r&&0!==r&&"false"!==r,tagName:n.linkifyTagname,target:n.linkifyTarget,linkClass:n.linkifyLinkclass,validate:n.linkifyValidate,ignoreTags:n.linkifyIgnoreTags},a="this"===i?e:e.find(i);a.linkify(o)})}))}var f=n.tokenize,s=n.options,u=1,c=3;a.helper=o,a.normalize=s.normalize;try{!define&&(e.linkifyElement=a)}catch(y){}return l}(n,t);"function"!=typeof n.fn.linkify&&i(n)}(window,linkify,jQuery);
"use strict";!function(e,t,n){var i=function(t,n){function i(e,t,n){var i=n[n.length-1];e.replaceChild(i,t);for(var r=n.length-2;r>=0;r--)e.insertBefore(n[r],i),i=n[r]}function r(e,t,n){for(var i=[],r=0;r<e.length;r++){var a=e[r];if("nl"===a.type&&t.nl2br)i.push(n.createElement("br"));else if(a.isLink&&s.resolve(t.validate,a.toString(),a.type)){var o=a.toHref(t.defaultProtocol),l=s.resolve(t.format,a.toString(),a.type),f=s.resolve(t.formatHref,o,a.type),u=s.resolve(t.attributes,o,a.type),c=s.resolve(t.tagName,o,a.type),y=s.resolve(t.linkClass,o,a.type),d=s.resolve(t.target,o,a.type),m=s.resolve(t.events,o,a.type),v=n.createElement(c);if(v.setAttribute("href",f),v.setAttribute("class",y),d&&v.setAttribute("target",d),u)for(var h in u)v.setAttribute(h,u[h]);if(m)for(var g in m)v.addEventListener?v.addEventListener(g,m[g]):v.attachEvent&&v.attachEvent("on"+g,m[g]);v.appendChild(n.createTextNode(l)),i.push(v)}else i.push(n.createTextNode(a.toString()))}return i}function a(e,t,n){if(!e||e.nodeType!==c)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var o=t.ignoreTags;if("A"===e.tagName||s.contains(o,e.tagName))return e;for(var l=e.firstChild;l;){switch(l.nodeType){case c:a(l,t,n);break;case y:var d=l.nodeValue,m=f(d);if(0===m.length||1===m.length&&m[0]instanceof u)break;var v=r(m,t,n);i(e,l,v),l=v[v.length-1]}l=l.nextSibling}return e}function o(t,n){var i=arguments.length<=2||void 0===arguments[2]?null:arguments[2];try{i=i||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return n=s.normalize(n),a(t,n,i)}function l(t){function n(e){return e=o.normalize(e),this.each(function(){o.helper(this,e,i)})}var i=arguments.length<=1||void 0===arguments[1]?null:arguments[1];t.fn=t.fn||{};try{i=i||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the second argument to linkify/jquery");"function"!=typeof t.fn.linkify&&(t.fn.linkify=n,t(i).ready(function(){t("[data-linkify]").each(function(){var e=t(this),n=e.data(),i=n.linkify,r=n.linkifyNlbr,a={linkAttributes:n.linkifyAttributes,defaultProtocol:n.linkifyDefaultProtocol,events:n.linkifyEvents,format:n.linkifyFormat,formatHref:n.linkifyFormatHref,newLine:n.linkifyNewline,nl2br:!!r&&0!==r&&"false"!==r,tagName:n.linkifyTagname,target:n.linkifyTarget,linkClass:n.linkifyLinkclass,validate:n.linkifyValidate,ignoreTags:n.linkifyIgnoreTags},o="this"===i?e:e.find(i);o.linkify(a)})}))}var f=n.tokenize,s=n.options,u=n.parser.TOKENS.TEXT,c=1,y=3;o.helper=a,o.normalize=s.normalize;try{!define&&(e.linkifyElement=o)}catch(d){}return l}(n,t);"function"!=typeof n.fn.linkify&&i(n)}(window,linkify,jQuery);

@@ -47,3 +47,3 @@ define('linkify-string', ['module', 'exports', './linkify'], function (module, exports, _linkify) {

for (var attr in attributes) {
var val = (attributes[attr] + '').replace(/"/g, '&quot;');
var val = attributes[attr] + '';
result.push(attr + '="' + escapeAttr(val) + '"');

@@ -50,0 +50,0 @@ }

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

define("linkify-string",["module","exports","./linkify"],function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function o(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function i(e){return e.replace(/"/g,"&quot;")}function l(e){if(!e)return"";var t=[];for(var r in e){var n=(e[r]+"").replace(/"/g,"&quot;");t.push(r+'="'+i(n)+'"')}return t.join(" ")}function a(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];t=f.normalize(t);for(var r=p(e),n=[],a=0;a<r.length;a++){var u=r[a],s=u.isLink&&f.resolve(t.validate,u.toString(),u.type);if(u.isLink&&s){var c=u.toHref(t.defaultProtocol),v=f.resolve(t.format,u.toString(),u.type),y=f.resolve(t.formatHref,c,u.type),g=f.resolve(t.attributes,c,u.type),d=f.resolve(t.tagName,c,u.type),h=f.resolve(t.linkClass,c,u.type),k=f.resolve(t.target,c,u.type),m="<"+d+' href="'+i(y)+'" class="'+i(h)+'"';k&&(m+=' target="'+i(k)+'"'),g&&(m+=" "+l(g)),m+=">"+o(v)+"</"+d+">",n.push(m)}else"nl"===u.type&&t.nl2br?t.newLine?n.push(t.newLine):n.push("<br>\n"):n.push(o(u.toString()))}return n.join("")}try{Object.defineProperty(t,"__esModule",{value:!0})}catch(u){t.__esModule=!0}var s=n(r),p=s.tokenize,f=s.options;String.prototype.linkify||(String.prototype.linkify=function(e){return a(this,e)}),t["default"]=a,e.exports=t["default"]});
define("linkify-string",["module","exports","./linkify"],function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function o(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function i(e){return e.replace(/"/g,"&quot;")}function l(e){if(!e)return"";var t=[];for(var r in e){var n=e[r]+"";t.push(r+'="'+i(n)+'"')}return t.join(" ")}function a(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];t=p.normalize(t);for(var r=f(e),n=[],a=0;a<r.length;a++){var u=r[a],s=u.isLink&&p.resolve(t.validate,u.toString(),u.type);if(u.isLink&&s){var v=u.toHref(t.defaultProtocol),c=p.resolve(t.format,u.toString(),u.type),y=p.resolve(t.formatHref,v,u.type),g=p.resolve(t.attributes,v,u.type),d=p.resolve(t.tagName,v,u.type),h=p.resolve(t.linkClass,v,u.type),k=p.resolve(t.target,v,u.type),m="<"+d+' href="'+i(y)+'" class="'+i(h)+'"';k&&(m+=' target="'+i(k)+'"'),g&&(m+=" "+l(g)),m+=">"+o(c)+"</"+d+">",n.push(m)}else"nl"===u.type&&t.nl2br?t.newLine?n.push(t.newLine):n.push("<br>\n"):n.push(o(u.toString()))}return n.join("")}try{Object.defineProperty(t,"__esModule",{value:!0})}catch(u){t.__esModule=!0}var s=n(r),f=s.tokenize,p=s.options;String.prototype.linkify||(String.prototype.linkify=function(e){return a(this,e)}),t["default"]=a,e.exports=t["default"]});

@@ -24,3 +24,3 @@ 'use strict';

for (var attr in attributes) {
var val = (attributes[attr] + '').replace(/"/g, '&quot;');
var val = attributes[attr] + '';
result.push(attr + '="' + escapeAttr(val) + '"');

@@ -27,0 +27,0 @@ }

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

"use strict";!function(e,t){var r=function(e){function t(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function r(e){return e.replace(/"/g,"&quot;")}function n(e){if(!e)return"";var t=[];for(var n in e){var i=(e[n]+"").replace(/"/g,"&quot;");t.push(n+'="'+r(i)+'"')}return t.join(" ")}function i(e){var i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];i=l.normalize(i);for(var a=o(e),p=[],s=0;s<a.length;s++){var u=a[s],f=u.isLink&&l.resolve(i.validate,u.toString(),u.type);if(u.isLink&&f){var v=u.toHref(i.defaultProtocol),g=l.resolve(i.format,u.toString(),u.type),c=l.resolve(i.formatHref,v,u.type),y=l.resolve(i.attributes,v,u.type),h=l.resolve(i.tagName,v,u.type),k=l.resolve(i.linkClass,v,u.type),S=l.resolve(i.target,v,u.type),m="<"+h+' href="'+r(c)+'" class="'+r(k)+'"';S&&(m+=' target="'+r(S)+'"'),y&&(m+=" "+n(y)),m+=">"+t(g)+"</"+h+">",p.push(m)}else"nl"===u.type&&i.nl2br?i.newLine?p.push(i.newLine):p.push("<br>\n"):p.push(t(u.toString()))}return p.join("")}var o=e.tokenize,l=e.options;return String.prototype.linkify||(String.prototype.linkify=function(e){return i(this,e)}),i}(t);e.linkifyStr=r}(window,linkify);
"use strict";!function(e,t){var r=function(e){function t(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function r(e){return e.replace(/"/g,"&quot;")}function n(e){if(!e)return"";var t=[];for(var n in e){var i=e[n]+"";t.push(n+'="'+r(i)+'"')}return t.join(" ")}function i(e){var i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];i=l.normalize(i);for(var a=o(e),s=[],p=0;p<a.length;p++){var u=a[p],f=u.isLink&&l.resolve(i.validate,u.toString(),u.type);if(u.isLink&&f){var v=u.toHref(i.defaultProtocol),g=l.resolve(i.format,u.toString(),u.type),c=l.resolve(i.formatHref,v,u.type),y=l.resolve(i.attributes,v,u.type),h=l.resolve(i.tagName,v,u.type),k=l.resolve(i.linkClass,v,u.type),S=l.resolve(i.target,v,u.type),m="<"+h+' href="'+r(c)+'" class="'+r(k)+'"';S&&(m+=' target="'+r(S)+'"'),y&&(m+=" "+n(y)),m+=">"+t(g)+"</"+h+">",s.push(m)}else"nl"===u.type&&i.nl2br?i.newLine?s.push(i.newLine):s.push("<br>\n"):s.push(t(u.toString()))}return s.join("")}var o=e.tokenize,l=e.options;return String.prototype.linkify||(String.prototype.linkify=function(e){return i(this,e)}),i}(t);e.linkifyStr=r}(window,linkify);

@@ -232,2 +232,3 @@ define('linkify/utils/class', ['exports'], function (exports) {

BaseState.prototype = {
defaultTransition: false,
on: function on(symbol, state) {

@@ -255,3 +256,3 @@ if (symbol instanceof Array) {

}
return false;
return this.defaultTransition;
},

@@ -311,3 +312,12 @@ accepts: function accepts() {

var tlds = 'aaa|aarp|abb|abbott|abogado|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|af|afl|ag|agency|ai|aig|airforce|airtel|al|alibaba|alipay|allfinanz|alsace|am|amica|amsterdam|an|analytics|android|ao|apartments|app|apple|aq|aquarelle|ar|aramco|archi|army|arpa|arte|as|asia|associates|at|attorney|au|auction|audi|audio|author|auto|autos|avianca|aw|ax|axa|az|azure|ba|baidu|band|bank|bar|barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bb|bbc|bbva|bcg|bcn|bd|be|beats|beer|bentley|berlin|best|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bom|bond|boo|book|boots|bosch|bostik|bot|boutique|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|camera|camp|cancerresearch|canon|capetown|capital|car|caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chloe|christmas|chrome|church|ci|cipriani|circle|cisco|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|date|dating|datsun|day|dclk|de|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|dj|dk|dm|dnp|do|docs|dog|doha|domains|download|drive|dubai|durban|dvag|dz|earth|eat|ec|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epson|equipment|er|erni|es|esq|estate|et|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|fage|fail|fairwinds|faith|family|fan|fans|farm|fashion|fast|feedback|ferrero|fi|film|final|finance|financial|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|florist|flowers|flsmidth|fly|fm|fo|foo|football|ford|forex|forsale|forum|foundation|fox|fr|fresenius|frl|frogans|frontier|fund|furniture|futbol|fyi|ga|gal|gallery|gallup|game|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|gold|goldpoint|golf|goo|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|group|gs|gt|gu|gucci|guge|guide|guitars|guru|gw|gy|hamburg|hangout|haus|hdfcbank|health|healthcare|help|helsinki|here|hermes|hiphop|hitachi|hiv|hk|hm|hn|hockey|holdings|holiday|homedepot|homes|honda|horse|host|hosting|hoteles|hotmail|house|how|hr|hsbc|ht|hu|hyundai|ibm|icbc|ice|icu|id|ie|ifm|iinet|il|im|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|international|investments|io|ipiranga|iq|ir|irish|is|iselect|ist|istanbul|it|itau|iwc|jaguar|java|jcb|je|jetzt|jewelry|jlc|jll|jm|jmp|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kitchen|kiwi|km|kn|koeln|komatsu|kp|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|lamborghini|lamer|lancaster|land|landrover|lanxess|lasalle|lat|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|legal|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|limited|limo|lincoln|linde|link|live|living|lixil|lk|loan|loans|local|locus|lol|london|lotte|lotto|love|lr|ls|lt|ltd|ltda|lu|lupin|luxe|luxury|lv|ly|ma|madrid|maif|maison|makeup|man|management|mango|market|marketing|markets|marriott|mba|mc|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|mg|mh|miami|microsoft|mil|mini|mk|ml|mm|mma|mn|mo|mobi|mobily|moda|moe|moi|mom|monash|money|montblanc|mormon|mortgage|moscow|motorcycles|mov|movie|movistar|mp|mq|mr|ms|mt|mtn|mtpc|mtr|mu|museum|mutuelle|mv|mw|mx|my|mz|na|nadex|nagoya|name|natura|navy|nc|ne|nec|net|netbank|network|neustar|new|news|nexus|nf|ng|ngo|nhk|ni|nico|nikon|ninja|nissan|nl|no|nokia|norton|nowruz|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|office|okinawa|om|omega|one|ong|onl|online|ooo|oracle|orange|org|organic|origins|osaka|otsuka|ovh|pa|page|pamperedchef|panerai|paris|pars|partners|parts|party|passagens|pe|pet|pf|pg|ph|pharmacy|philips|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pohl|poker|porn|post|pr|praxi|press|pro|prod|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|racing|re|read|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|ricoh|rio|rip|ro|rocher|rocks|rodeo|room|rs|rsvp|ru|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|saxo|sb|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scor|scot|sd|se|seat|security|seek|select|sener|services|seven|sew|sex|sexy|sfr|sg|sh|sharp|shell|shia|shiksha|shoes|show|shriram|si|singles|site|sj|sk|ski|skin|sky|skype|sl|sm|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|st|stada|star|starhub|statefarm|statoil|stc|stcgroup|stockholm|storage|store|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|taobao|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|team|tech|technology|tel|telecity|telefonica|temasek|tennis|tf|tg|th|thd|theater|theatre|tickets|tienda|tiffany|tips|tires|tirol|tj|tk|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tp|tr|trade|trading|training|travel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubs|ug|uk|unicom|university|uno|uol|us|uy|uz|va|vacations|vana|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|viking|villas|vin|vip|virgin|vision|vista|vistaprint|viva|vlaanderen|vn|vodka|volkswagen|vote|voting|voto|voyage|vu|vuelos|wales|walter|wang|wanggou|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|wme|wolterskluwer|work|works|world|ws|wtc|wtf|xbox|xerox|xin|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|youtube|yt|za|zara|zero|zip|zm|zone|zuerich|zw'.split('|');
var REGEXP_NUM = /[0-9]/, REGEXP_ALPHANUM = /[a-z0-9]/, COLON = ':';
var NUM = '0123456789'.split('');
var ALPHANUM = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');
var WHITESPACE = [
' ',
'\f',
'\r',
'\t',
'\x0B'
];
var COLON = ':';
var domainStates = [], makeState = function makeState(tokenClass) {

@@ -318,5 +328,10 @@ return new _state.CharacterState(tokenClass);

var S_START = makeState(), S_NUM = makeState(T_NUM), S_DOMAIN = makeState(T_DOMAIN), S_DOMAIN_HYPHEN = makeState(), S_WS = makeState(T_WS);
S_START.on('@', makeState(_tokens.text.AT)).on('.', makeState(_tokens.text.DOT)).on('+', makeState(_tokens.text.PLUS)).on('#', makeState(_tokens.text.POUND)).on('?', makeState(_tokens.text.QUERY)).on('/', makeState(_tokens.text.SLASH)).on(COLON, makeState(_tokens.text.COLON)).on('{', makeState(_tokens.text.OPENBRACE)).on('[', makeState(_tokens.text.OPENBRACKET)).on('(', makeState(_tokens.text.OPENPAREN)).on('}', makeState(_tokens.text.CLOSEBRACE)).on(']', makeState(_tokens.text.CLOSEBRACKET)).on(')', makeState(_tokens.text.CLOSEPAREN)).on(/[,;!]/, makeState(_tokens.text.PUNCTUATION));
S_START.on(/\n/, makeState(_tokens.text.NL)).on(/\s/, S_WS);
S_WS.on(/[^\S\n]/, S_WS);
S_START.on('@', makeState(_tokens.text.AT)).on('.', makeState(_tokens.text.DOT)).on('+', makeState(_tokens.text.PLUS)).on('#', makeState(_tokens.text.POUND)).on('?', makeState(_tokens.text.QUERY)).on('/', makeState(_tokens.text.SLASH)).on(COLON, makeState(_tokens.text.COLON)).on('{', makeState(_tokens.text.OPENBRACE)).on('[', makeState(_tokens.text.OPENBRACKET)).on('(', makeState(_tokens.text.OPENPAREN)).on('}', makeState(_tokens.text.CLOSEBRACE)).on(']', makeState(_tokens.text.CLOSEBRACKET)).on(')', makeState(_tokens.text.CLOSEPAREN)).on([
',',
';',
'!',
'"'
], makeState(_tokens.text.PUNCTUATION));
S_START.on('\n', makeState(_tokens.text.NL)).on(WHITESPACE, S_WS);
S_WS.on(WHITESPACE, S_WS);
for (var i = 0; i < tlds.length; i++) {

@@ -338,10 +353,10 @@ var newStates = (0, _state.stateify)(tlds[i], S_START, T_TLD, T_DOMAIN);

domainStates.push.apply(domainStates, partialLocalhostStates);
S_START.on(REGEXP_NUM, S_NUM);
S_NUM.on('-', S_DOMAIN_HYPHEN).on(REGEXP_NUM, S_NUM).on(REGEXP_ALPHANUM, S_DOMAIN);
S_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(REGEXP_ALPHANUM, S_DOMAIN);
S_START.on(NUM, S_NUM);
S_NUM.on('-', S_DOMAIN_HYPHEN).on(NUM, S_NUM).on(ALPHANUM, S_DOMAIN);
S_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);
for (var _i = 0; _i < domainStates.length; _i++) {
domainStates[_i].on('-', S_DOMAIN_HYPHEN).on(REGEXP_ALPHANUM, S_DOMAIN);
domainStates[_i].on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);
}
S_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(REGEXP_NUM, S_DOMAIN).on(REGEXP_ALPHANUM, S_DOMAIN);
S_START.on(/./, makeState(_tokens.text.SYM));
S_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(NUM, S_DOMAIN).on(ALPHANUM, S_DOMAIN);
S_START.defaultTransition = makeState(_tokens.text.SYM);
var run = function run(str) {

@@ -397,3 +412,3 @@ var lowerStr = str.replace(/[A-Z]/g, function (c) {

var S_START = makeState();
var S_PROTOCOL = makeState(), S_PROTOCOL_SLASH = makeState(), S_PROTOCOL_SLASH_SLASH = makeState(), S_DOMAIN = makeState(), S_DOMAIN_DOT = makeState(), S_TLD = makeState(T_URL), S_TLD_COLON = makeState(), S_TLD_PORT = makeState(T_URL), S_URL = makeState(T_URL), S_URL_SYMS = makeState(), S_URL_OPENBRACE = makeState(), S_URL_OPENBRACKET = makeState(), S_URL_OPENPAREN = makeState(), S_URL_OPENBRACE_Q = makeState(T_URL), S_URL_OPENBRACKET_Q = makeState(T_URL), S_URL_OPENPAREN_Q = makeState(T_URL), S_URL_OPENBRACE_SYMS = makeState(), S_URL_OPENBRACKET_SYMS = makeState(), S_URL_OPENPAREN_SYMS = makeState(), S_EMAIL_DOMAIN = makeState(), S_EMAIL_DOMAIN_DOT = makeState(), S_EMAIL = makeState(T_EMAIL), S_EMAIL_COLON = makeState(), S_EMAIL_PORT = makeState(T_EMAIL), S_LOCALPART = makeState(), S_LOCALPART_AT = makeState(), S_LOCALPART_DOT = makeState(), S_NL = makeState(T_NL);
var S_PROTOCOL = makeState(), S_PROTOCOL_SLASH = makeState(), S_PROTOCOL_SLASH_SLASH = makeState(), S_DOMAIN = makeState(), S_DOMAIN_DOT = makeState(), S_TLD = makeState(T_URL), S_TLD_COLON = makeState(), S_TLD_PORT = makeState(T_URL), S_URL = makeState(T_URL), S_URL_NON_ACCEPTING = makeState(), S_URL_OPENBRACE = makeState(), S_URL_OPENBRACKET = makeState(), S_URL_OPENPAREN = makeState(), S_URL_OPENBRACE_Q = makeState(T_URL), S_URL_OPENBRACKET_Q = makeState(T_URL), S_URL_OPENPAREN_Q = makeState(T_URL), S_URL_OPENBRACE_SYMS = makeState(), S_URL_OPENBRACKET_SYMS = makeState(), S_URL_OPENPAREN_SYMS = makeState(), S_EMAIL_DOMAIN = makeState(), S_EMAIL_DOMAIN_DOT = makeState(), S_EMAIL = makeState(T_EMAIL), S_EMAIL_COLON = makeState(), S_EMAIL_PORT = makeState(T_EMAIL), S_LOCALPART = makeState(), S_LOCALPART_AT = makeState(), S_LOCALPART_DOT = makeState(), S_NL = makeState(T_NL);
S_START.on(TT_NL, S_NL).on(TT_PROTOCOL, S_PROTOCOL).on(TT_SLASH, S_PROTOCOL_SLASH);

@@ -424,3 +439,4 @@ S_PROTOCOL.on(TT_SLASH, S_PROTOCOL_SLASH);

TT_SLASH,
TT_TLD
TT_TLD,
TT_SYM
];

@@ -437,7 +453,6 @@ var qsNonAccepting = [

TT_OPENBRACKET,
TT_OPENPAREN,
TT_SYM
TT_OPENPAREN
];
S_URL.on(TT_OPENBRACE, S_URL_OPENBRACE).on(TT_OPENBRACKET, S_URL_OPENBRACKET).on(TT_OPENPAREN, S_URL_OPENPAREN);
S_URL_SYMS.on(TT_OPENBRACE, S_URL_OPENBRACE).on(TT_OPENBRACKET, S_URL_OPENBRACKET).on(TT_OPENPAREN, S_URL_OPENPAREN);
S_URL_NON_ACCEPTING.on(TT_OPENBRACE, S_URL_OPENBRACE).on(TT_OPENBRACKET, S_URL_OPENBRACKET).on(TT_OPENPAREN, S_URL_OPENPAREN);
S_URL_OPENBRACE.on(TT_CLOSEBRACE, S_URL);

@@ -471,5 +486,5 @@ S_URL_OPENBRACKET.on(TT_CLOSEBRACKET, S_URL);

S_URL.on(qsAccepting, S_URL);
S_URL_SYMS.on(qsAccepting, S_URL);
S_URL.on(qsNonAccepting, S_URL_SYMS);
S_URL_SYMS.on(qsNonAccepting, S_URL_SYMS);
S_URL_NON_ACCEPTING.on(qsAccepting, S_URL);
S_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);
S_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);
var localpartAccepting = [

@@ -476,0 +491,0 @@ TT_DOMAIN,

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

define("linkify/utils/class",["exports"],function(e){"use strict";function t(e,t){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],o=Object.create(e.prototype);for(var a in n)o[a]=n[a];return o.constructor=t,t.prototype=o,t}try{Object.defineProperty(e,"__esModule",{value:!0})}catch(n){e.__esModule=!0}e.inherits=t}),define("linkify/utils/options",["exports"],function(e){"use strict";function t(e){e=e||{};for(var t=e.newLine||!1,n=e.ignoreTags||[],o=0;o<n.length;o++)n[o]=n[o].toUpperCase();return{attributes:e.linkAttributes||null,defaultProtocol:e.defaultProtocol||"http",events:e.events||null,format:e.format||a,validate:e.validate||r,formatHref:e.formatHref||a,newLine:e.newLine||!1,nl2br:!!t||e.nl2br||!1,tagName:e.tagName||"a",target:e.target||i,linkClass:e.linkClass||"linkified",ignoreTags:n}}function n(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return"function"==typeof e?e.apply(void 0,n):e}function o(e,t){for(var n=0;n<e.length;n++)if(e[n]==t)return!0;return!1}function a(e){return e}function r(e){return!0}function i(e,t){return"url"===t?"_blank":null}try{Object.defineProperty(e,"__esModule",{value:!0})}catch(s){e.__esModule=!0}e.normalize=t,e.resolve=n,e.contains=o}),define("linkify/core/tokens",["exports","../utils/class"],function(e,t){"use strict";function n(){return function(e){e&&(this.a=e)}}function o(e){var o=e?{a:e}:{};return(0,t.inherits)(i,n(),o)}function a(e){return e instanceof s||e instanceof x}try{Object.defineProperty(e,"__esModule",{value:!0})}catch(r){e.__esModule=!0}e.multi=e.text=void 0;var i=n();i.prototype={toString:function(){return this.a+""}};var s=o(),l=o("@"),c=o(":"),u=o("."),p=o(),h=o(),f=o("\n"),g=o(),d=o("+"),m=o("#"),b=o(),y=o("?"),v=o("/"),k=o(),x=o(),w=o(),O=o("{"),S=o("["),L=o("("),E=o("}"),A=o("]"),N=o(")"),T={Base:i,DOMAIN:s,AT:l,COLON:c,DOT:u,PUNCTUATION:p,LOCALHOST:h,NL:f,NUM:g,PLUS:d,POUND:m,QUERY:y,PROTOCOL:b,SLASH:v,SYM:k,TLD:x,WS:w,OPENBRACE:O,OPENBRACKET:S,OPENPAREN:L,CLOSEBRACE:E,CLOSEBRACKET:A,CLOSEPAREN:N},C=n();C.prototype={type:"token",isLink:!1,toString:function(){for(var e=[],t=0;t<this.a.length;t++)e.push(this.a[t].toString());return e.join("")},toHref:function(){return this.toString()},toObject:function(){var e=arguments.length<=0||void 0===arguments[0]?"http":arguments[0];return{type:this.type,value:this.toString(),href:this.toHref(e)}}};var j=(0,t.inherits)(C,n(),{type:"email",isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),P=(0,t.inherits)(C,n(),{type:"text"}),z=(0,t.inherits)(C,n(),{type:"nl"}),_=(0,t.inherits)(C,n(),{type:"url",isLink:!0,toHref:function(){for(var e=arguments.length<=0||void 0===arguments[0]?"http":arguments[0],t=!1,n=!1,o=this.a,r=[],i=0;o[i]instanceof b;)t=!0,r.push(o[i].toString().toLowerCase()),i++;for(;o[i]instanceof v;)n=!0,r.push(o[i].toString()),i++;for(;a(o[i]);)r.push(o[i].toString().toLowerCase()),i++;for(;i<o.length;i++)r.push(o[i].toString());return r=r.join(""),t||n||(r=e+"://"+r),r},hasProtocol:function(){return this.a[0]instanceof b}}),R={Base:C,EMAIL:j,NL:z,TEXT:P,URL:_};e.text=T,e.multi=R}),define("linkify/core/state",["exports","../utils/class"],function(e,t){"use strict";function n(){return function(e){this.b=[],this.T=e||null}}function o(e,t,n,o){for(var a=0,r=e.length,s=t,l=[],c=void 0;a<r&&(c=s.next(e[a]));)s=c,a++;if(a>=r)return[];for(;a<r-1;)c=new i(o),l.push(c),s.on(e[a],c),s=c,a++;return c=new i(n),l.push(c),s.on(e[r-1],c),l}try{Object.defineProperty(e,"__esModule",{value:!0})}catch(a){e.__esModule=!0}e.stateify=e.TokenState=e.CharacterState=void 0;var r=n();r.prototype={on:function(e,t){if(e instanceof Array){for(var n=0;n<e.length;n++)this.b.push([e[n],t]);return this}return this.b.push([e,t]),this},next:function(e){for(var t=0;t<this.b.length;t++){var n=this.b[t],o=n[0],a=n[1];if(this.test(e,o))return a}return!1},accepts:function(){return!!this.T},test:function(e,t){return e===t},emit:function(){return this.T}};var i=(0,t.inherits)(r,n(),{test:function(e,t){return e===t||t instanceof RegExp&&t.test(e)}}),s=(0,t.inherits)(r,n(),{test:function(e,t){return e instanceof t}});e.CharacterState=i,e.TokenState=s,e.stateify=o}),define("linkify/core/scanner",["exports","./tokens","./state"],function(e,t,n){"use strict";try{Object.defineProperty(e,"__esModule",{value:!0})}catch(o){e.__esModule=!0}e.start=e.run=e.TOKENS=e.State=void 0;var a="aaa|aarp|abb|abbott|abogado|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|af|afl|ag|agency|ai|aig|airforce|airtel|al|alibaba|alipay|allfinanz|alsace|am|amica|amsterdam|an|analytics|android|ao|apartments|app|apple|aq|aquarelle|ar|aramco|archi|army|arpa|arte|as|asia|associates|at|attorney|au|auction|audi|audio|author|auto|autos|avianca|aw|ax|axa|az|azure|ba|baidu|band|bank|bar|barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bb|bbc|bbva|bcg|bcn|bd|be|beats|beer|bentley|berlin|best|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bom|bond|boo|book|boots|bosch|bostik|bot|boutique|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|camera|camp|cancerresearch|canon|capetown|capital|car|caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chloe|christmas|chrome|church|ci|cipriani|circle|cisco|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|date|dating|datsun|day|dclk|de|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|dj|dk|dm|dnp|do|docs|dog|doha|domains|download|drive|dubai|durban|dvag|dz|earth|eat|ec|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epson|equipment|er|erni|es|esq|estate|et|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|fage|fail|fairwinds|faith|family|fan|fans|farm|fashion|fast|feedback|ferrero|fi|film|final|finance|financial|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|florist|flowers|flsmidth|fly|fm|fo|foo|football|ford|forex|forsale|forum|foundation|fox|fr|fresenius|frl|frogans|frontier|fund|furniture|futbol|fyi|ga|gal|gallery|gallup|game|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|gold|goldpoint|golf|goo|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|group|gs|gt|gu|gucci|guge|guide|guitars|guru|gw|gy|hamburg|hangout|haus|hdfcbank|health|healthcare|help|helsinki|here|hermes|hiphop|hitachi|hiv|hk|hm|hn|hockey|holdings|holiday|homedepot|homes|honda|horse|host|hosting|hoteles|hotmail|house|how|hr|hsbc|ht|hu|hyundai|ibm|icbc|ice|icu|id|ie|ifm|iinet|il|im|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|international|investments|io|ipiranga|iq|ir|irish|is|iselect|ist|istanbul|it|itau|iwc|jaguar|java|jcb|je|jetzt|jewelry|jlc|jll|jm|jmp|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kitchen|kiwi|km|kn|koeln|komatsu|kp|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|lamborghini|lamer|lancaster|land|landrover|lanxess|lasalle|lat|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|legal|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|limited|limo|lincoln|linde|link|live|living|lixil|lk|loan|loans|local|locus|lol|london|lotte|lotto|love|lr|ls|lt|ltd|ltda|lu|lupin|luxe|luxury|lv|ly|ma|madrid|maif|maison|makeup|man|management|mango|market|marketing|markets|marriott|mba|mc|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|mg|mh|miami|microsoft|mil|mini|mk|ml|mm|mma|mn|mo|mobi|mobily|moda|moe|moi|mom|monash|money|montblanc|mormon|mortgage|moscow|motorcycles|mov|movie|movistar|mp|mq|mr|ms|mt|mtn|mtpc|mtr|mu|museum|mutuelle|mv|mw|mx|my|mz|na|nadex|nagoya|name|natura|navy|nc|ne|nec|net|netbank|network|neustar|new|news|nexus|nf|ng|ngo|nhk|ni|nico|nikon|ninja|nissan|nl|no|nokia|norton|nowruz|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|office|okinawa|om|omega|one|ong|onl|online|ooo|oracle|orange|org|organic|origins|osaka|otsuka|ovh|pa|page|pamperedchef|panerai|paris|pars|partners|parts|party|passagens|pe|pet|pf|pg|ph|pharmacy|philips|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pohl|poker|porn|post|pr|praxi|press|pro|prod|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|racing|re|read|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|ricoh|rio|rip|ro|rocher|rocks|rodeo|room|rs|rsvp|ru|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|saxo|sb|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scor|scot|sd|se|seat|security|seek|select|sener|services|seven|sew|sex|sexy|sfr|sg|sh|sharp|shell|shia|shiksha|shoes|show|shriram|si|singles|site|sj|sk|ski|skin|sky|skype|sl|sm|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|st|stada|star|starhub|statefarm|statoil|stc|stcgroup|stockholm|storage|store|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|taobao|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|team|tech|technology|tel|telecity|telefonica|temasek|tennis|tf|tg|th|thd|theater|theatre|tickets|tienda|tiffany|tips|tires|tirol|tj|tk|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tp|tr|trade|trading|training|travel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubs|ug|uk|unicom|university|uno|uol|us|uy|uz|va|vacations|vana|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|viking|villas|vin|vip|virgin|vision|vista|vistaprint|viva|vlaanderen|vn|vodka|volkswagen|vote|voting|voto|voyage|vu|vuelos|wales|walter|wang|wanggou|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|wme|wolterskluwer|work|works|world|ws|wtc|wtf|xbox|xerox|xin|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|youtube|yt|za|zara|zero|zip|zm|zone|zuerich|zw".split("|"),r=/[0-9]/,i=/[a-z0-9]/,s=":",l=[],c=function(e){return new n.CharacterState(e)},u=t.text.DOMAIN,p=t.text.LOCALHOST,h=t.text.NUM,f=t.text.PROTOCOL,g=t.text.TLD,d=t.text.WS,m=c(),b=c(h),y=c(u),v=c(),k=c(d);m.on("@",c(t.text.AT)).on(".",c(t.text.DOT)).on("+",c(t.text.PLUS)).on("#",c(t.text.POUND)).on("?",c(t.text.QUERY)).on("/",c(t.text.SLASH)).on(s,c(t.text.COLON)).on("{",c(t.text.OPENBRACE)).on("[",c(t.text.OPENBRACKET)).on("(",c(t.text.OPENPAREN)).on("}",c(t.text.CLOSEBRACE)).on("]",c(t.text.CLOSEBRACKET)).on(")",c(t.text.CLOSEPAREN)).on(/[,;!]/,c(t.text.PUNCTUATION)),m.on(/\n/,c(t.text.NL)).on(/\s/,k),k.on(/[^\S\n]/,k);for(var x=0;x<a.length;x++){var w=(0,n.stateify)(a[x],m,g,u);l.push.apply(l,w)}var O=(0,n.stateify)("file",m,u,u),S=(0,n.stateify)("ftp",m,u,u),L=(0,n.stateify)("http",m,u,u);l.push.apply(l,O),l.push.apply(l,S),l.push.apply(l,L);var E=O.pop(),A=S.pop(),N=L.pop(),T=c(u),C=c(f);A.on("s",T).on(s,C),N.on("s",T).on(s,C),l.push(T),E.on(s,C),T.on(s,C);var j=(0,n.stateify)("localhost",m,p,u);l.push.apply(l,j),m.on(r,b),b.on("-",v).on(r,b).on(i,y),y.on("-",v).on(i,y);for(var P=0;P<l.length;P++)l[P].on("-",v).on(i,y);v.on("-",v).on(r,y).on(i,y),m.on(/./,c(t.text.SYM));var z=function(e){for(var t=e.replace(/[A-Z]/g,function(e){return e.toLowerCase()}),n=e.length,o=[],a=0;a<n;){for(var r=m,i=null,s=null,l=0,c=null,u=-1;a<n&&(s=r.next(t[a]));)i=null,r=s,r.accepts()?(u=0,c=r):u>=0&&u++,l++,a++;if(!(u<0)){a-=u,l-=u;var p=c.emit();o.push(new p(e.substr(a-l,l)))}}return o},_=m;e.State=n.CharacterState,e.TOKENS=t.text,e.run=z,e.start=_}),define("linkify/core/parser",["exports","./tokens","./state"],function(e,t,n){"use strict";try{Object.defineProperty(e,"__esModule",{value:!0})}catch(o){e.__esModule=!0}e.start=e.run=e.TOKENS=e.State=void 0;var a=function(e){return new n.TokenState(e)},r=t.text.DOMAIN,i=t.text.AT,s=t.text.COLON,l=t.text.DOT,c=t.text.PUNCTUATION,u=t.text.LOCALHOST,p=t.text.NL,h=t.text.NUM,f=t.text.PLUS,g=t.text.POUND,d=t.text.PROTOCOL,m=t.text.QUERY,b=t.text.SLASH,y=t.text.SYM,v=t.text.TLD,k=t.text.OPENBRACE,x=t.text.OPENBRACKET,w=t.text.OPENPAREN,O=t.text.CLOSEBRACE,S=t.text.CLOSEBRACKET,L=t.text.CLOSEPAREN,E=t.multi.EMAIL,A=t.multi.NL,N=t.multi.TEXT,T=t.multi.URL,C=a(),j=a(),P=a(),z=a(),_=a(),R=a(),M=a(T),U=a(),B=a(T),q=a(T),D=a(),H=a(),K=a(),I=a(),Y=a(T),Q=a(T),W=a(T),X=a(),Z=a(),F=a(),G=a(),J=a(),V=a(E),$=a(),ee=a(E),te=a(),ne=a(),oe=a(),ae=a(A);C.on(p,ae).on(d,j).on(b,P),j.on(b,P),P.on(b,z),C.on(v,_).on(r,_).on(u,M).on(h,_),z.on(v,q).on(r,q).on(h,q).on(u,q),_.on(l,R),G.on(l,J),R.on(v,M).on(r,_).on(h,_).on(u,_),J.on(v,V).on(r,G).on(h,G).on(u,G),M.on(l,R),V.on(l,J),M.on(s,U).on(b,q),U.on(h,B),B.on(b,q),V.on(s,$),$.on(h,ee);var re=[r,i,u,h,f,g,d,b,v],ie=[s,l,m,c,O,S,L,k,x,w,y];q.on(k,H).on(x,K).on(w,I),D.on(k,H).on(x,K).on(w,I),H.on(O,q),K.on(S,q),I.on(L,q),Y.on(O,q),Q.on(S,q),W.on(L,q),X.on(O,q),Z.on(S,q),F.on(L,q),H.on(re,Y),K.on(re,Q),I.on(re,W),H.on(ie,X),K.on(ie,Z),I.on(ie,F),Y.on(re,Y),Q.on(re,Q),W.on(re,W),Y.on(ie,Y),Q.on(ie,Q),W.on(ie,W),X.on(re,Y),Z.on(re,Q),F.on(re,W),X.on(ie,X),Z.on(ie,Z),F.on(ie,F),q.on(re,q),D.on(re,q),q.on(ie,D),D.on(ie,D);var se=[r,h,f,g,m,y,v];_.on(se,te).on(i,ne),M.on(se,te).on(i,ne),R.on(se,te),te.on(se,te).on(i,ne).on(l,oe),oe.on(se,te),ne.on(v,G).on(r,G).on(u,V);var le=function(e){for(var t=e.length,n=0,o=[],a=[];n<t;){for(var r=C,i=null,s=null,l=0,c=null,u=-1;n<t&&!(i=r.next(e[n]));)a.push(e[n++]);for(;n<t&&(s=i||r.next(e[n]));)i=null,r=s,r.accepts()?(u=0,c=r):u>=0&&u++,n++,l++;if(u<0)for(var p=n-l;p<n;p++)a.push(e[p]);else{a.length>0&&(o.push(new N(a)),a=[]),n-=u,l-=u;var h=c.emit();o.push(new h(e.slice(n-l,n)))}}return a.length>0&&o.push(new N(a)),o},ce=t.multi,ue=C;e.State=n.TokenState,e.TOKENS=ce,e.run=le,e.start=ue}),define("linkify",["exports","./linkify/utils/class","./linkify/utils/options","./linkify/core/scanner","./linkify/core/parser"],function(e,t,n,o,a){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}try{Object.defineProperty(e,"__esModule",{value:!0})}catch(i){e.__esModule=!0}e.tokenize=e.test=e.scanner=e.parser=e.options=e.inherits=e.find=void 0;var s=r(n),l=r(o),c=r(a);Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var u=function(e){return c.run(l.run(e))},p=function(e){for(var t=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=u(e),o=[],a=0;a<n.length;a++)!n[a].isLink||t&&n[a].type!==t||o.push(n[a].toObject());return o},h=function(e){var t=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=u(e);return 1===n.length&&n[0].isLink&&(!t||n[0].type===t)};e.find=p,e.inherits=t.inherits,e.options=s,e.parser=c,e.scanner=l,e.test=h,e.tokenize=u});
define("linkify/utils/class",["exports"],function(e){"use strict";function t(e,t){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],o=Object.create(e.prototype);for(var a in n)o[a]=n[a];return o.constructor=t,t.prototype=o,t}try{Object.defineProperty(e,"__esModule",{value:!0})}catch(n){e.__esModule=!0}e.inherits=t}),define("linkify/utils/options",["exports"],function(e){"use strict";function t(e){e=e||{};for(var t=e.newLine||!1,n=e.ignoreTags||[],o=0;o<n.length;o++)n[o]=n[o].toUpperCase();return{attributes:e.linkAttributes||null,defaultProtocol:e.defaultProtocol||"http",events:e.events||null,format:e.format||a,validate:e.validate||r,formatHref:e.formatHref||a,newLine:e.newLine||!1,nl2br:!!t||e.nl2br||!1,tagName:e.tagName||"a",target:e.target||i,linkClass:e.linkClass||"linkified",ignoreTags:n}}function n(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return"function"==typeof e?e.apply(void 0,n):e}function o(e,t){for(var n=0;n<e.length;n++)if(e[n]==t)return!0;return!1}function a(e){return e}function r(e){return!0}function i(e,t){return"url"===t?"_blank":null}try{Object.defineProperty(e,"__esModule",{value:!0})}catch(s){e.__esModule=!0}e.normalize=t,e.resolve=n,e.contains=o}),define("linkify/core/tokens",["exports","../utils/class"],function(e,t){"use strict";function n(){return function(e){e&&(this.a=e)}}function o(e){var o=e?{a:e}:{};return(0,t.inherits)(i,n(),o)}function a(e){return e instanceof s||e instanceof x}try{Object.defineProperty(e,"__esModule",{value:!0})}catch(r){e.__esModule=!0}e.multi=e.text=void 0;var i=n();i.prototype={toString:function(){return this.a+""}};var s=o(),l=o("@"),c=o(":"),u=o("."),p=o(),f=o(),h=o("\n"),g=o(),d=o("+"),m=o("#"),b=o(),y=o("?"),v=o("/"),k=o(),x=o(),w=o(),O=o("{"),S=o("["),L=o("("),E=o("}"),T=o("]"),A=o(")"),N={Base:i,DOMAIN:s,AT:l,COLON:c,DOT:u,PUNCTUATION:p,LOCALHOST:f,NL:h,NUM:g,PLUS:d,POUND:m,QUERY:y,PROTOCOL:b,SLASH:v,SYM:k,TLD:x,WS:w,OPENBRACE:O,OPENBRACKET:S,OPENPAREN:L,CLOSEBRACE:E,CLOSEBRACKET:T,CLOSEPAREN:A},C=n();C.prototype={type:"token",isLink:!1,toString:function(){for(var e=[],t=0;t<this.a.length;t++)e.push(this.a[t].toString());return e.join("")},toHref:function(){return this.toString()},toObject:function(){var e=arguments.length<=0||void 0===arguments[0]?"http":arguments[0];return{type:this.type,value:this.toString(),href:this.toHref(e)}}};var j=(0,t.inherits)(C,n(),{type:"email",isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),P=(0,t.inherits)(C,n(),{type:"text"}),z=(0,t.inherits)(C,n(),{type:"nl"}),_=(0,t.inherits)(C,n(),{type:"url",isLink:!0,toHref:function(){for(var e=arguments.length<=0||void 0===arguments[0]?"http":arguments[0],t=!1,n=!1,o=this.a,r=[],i=0;o[i]instanceof b;)t=!0,r.push(o[i].toString().toLowerCase()),i++;for(;o[i]instanceof v;)n=!0,r.push(o[i].toString()),i++;for(;a(o[i]);)r.push(o[i].toString().toLowerCase()),i++;for(;i<o.length;i++)r.push(o[i].toString());return r=r.join(""),t||n||(r=e+"://"+r),r},hasProtocol:function(){return this.a[0]instanceof b}}),R={Base:C,EMAIL:j,NL:z,TEXT:P,URL:_};e.text=N,e.multi=R}),define("linkify/core/state",["exports","../utils/class"],function(e,t){"use strict";function n(){return function(e){this.b=[],this.T=e||null}}function o(e,t,n,o){for(var a=0,r=e.length,s=t,l=[],c=void 0;a<r&&(c=s.next(e[a]));)s=c,a++;if(a>=r)return[];for(;a<r-1;)c=new i(o),l.push(c),s.on(e[a],c),s=c,a++;return c=new i(n),l.push(c),s.on(e[r-1],c),l}try{Object.defineProperty(e,"__esModule",{value:!0})}catch(a){e.__esModule=!0}e.stateify=e.TokenState=e.CharacterState=void 0;var r=n();r.prototype={defaultTransition:!1,on:function(e,t){if(e instanceof Array){for(var n=0;n<e.length;n++)this.b.push([e[n],t]);return this}return this.b.push([e,t]),this},next:function(e){for(var t=0;t<this.b.length;t++){var n=this.b[t],o=n[0],a=n[1];if(this.test(e,o))return a}return this.defaultTransition},accepts:function(){return!!this.T},test:function(e,t){return e===t},emit:function(){return this.T}};var i=(0,t.inherits)(r,n(),{test:function(e,t){return e===t||t instanceof RegExp&&t.test(e)}}),s=(0,t.inherits)(r,n(),{test:function(e,t){return e instanceof t}});e.CharacterState=i,e.TokenState=s,e.stateify=o}),define("linkify/core/scanner",["exports","./tokens","./state"],function(e,t,n){"use strict";try{Object.defineProperty(e,"__esModule",{value:!0})}catch(o){e.__esModule=!0}e.start=e.run=e.TOKENS=e.State=void 0;var a="aaa|aarp|abb|abbott|abogado|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|af|afl|ag|agency|ai|aig|airforce|airtel|al|alibaba|alipay|allfinanz|alsace|am|amica|amsterdam|an|analytics|android|ao|apartments|app|apple|aq|aquarelle|ar|aramco|archi|army|arpa|arte|as|asia|associates|at|attorney|au|auction|audi|audio|author|auto|autos|avianca|aw|ax|axa|az|azure|ba|baidu|band|bank|bar|barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bb|bbc|bbva|bcg|bcn|bd|be|beats|beer|bentley|berlin|best|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bom|bond|boo|book|boots|bosch|bostik|bot|boutique|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|camera|camp|cancerresearch|canon|capetown|capital|car|caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chloe|christmas|chrome|church|ci|cipriani|circle|cisco|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|date|dating|datsun|day|dclk|de|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|dj|dk|dm|dnp|do|docs|dog|doha|domains|download|drive|dubai|durban|dvag|dz|earth|eat|ec|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epson|equipment|er|erni|es|esq|estate|et|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|fage|fail|fairwinds|faith|family|fan|fans|farm|fashion|fast|feedback|ferrero|fi|film|final|finance|financial|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|florist|flowers|flsmidth|fly|fm|fo|foo|football|ford|forex|forsale|forum|foundation|fox|fr|fresenius|frl|frogans|frontier|fund|furniture|futbol|fyi|ga|gal|gallery|gallup|game|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|gold|goldpoint|golf|goo|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|group|gs|gt|gu|gucci|guge|guide|guitars|guru|gw|gy|hamburg|hangout|haus|hdfcbank|health|healthcare|help|helsinki|here|hermes|hiphop|hitachi|hiv|hk|hm|hn|hockey|holdings|holiday|homedepot|homes|honda|horse|host|hosting|hoteles|hotmail|house|how|hr|hsbc|ht|hu|hyundai|ibm|icbc|ice|icu|id|ie|ifm|iinet|il|im|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|international|investments|io|ipiranga|iq|ir|irish|is|iselect|ist|istanbul|it|itau|iwc|jaguar|java|jcb|je|jetzt|jewelry|jlc|jll|jm|jmp|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kitchen|kiwi|km|kn|koeln|komatsu|kp|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|lamborghini|lamer|lancaster|land|landrover|lanxess|lasalle|lat|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|legal|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|limited|limo|lincoln|linde|link|live|living|lixil|lk|loan|loans|local|locus|lol|london|lotte|lotto|love|lr|ls|lt|ltd|ltda|lu|lupin|luxe|luxury|lv|ly|ma|madrid|maif|maison|makeup|man|management|mango|market|marketing|markets|marriott|mba|mc|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|mg|mh|miami|microsoft|mil|mini|mk|ml|mm|mma|mn|mo|mobi|mobily|moda|moe|moi|mom|monash|money|montblanc|mormon|mortgage|moscow|motorcycles|mov|movie|movistar|mp|mq|mr|ms|mt|mtn|mtpc|mtr|mu|museum|mutuelle|mv|mw|mx|my|mz|na|nadex|nagoya|name|natura|navy|nc|ne|nec|net|netbank|network|neustar|new|news|nexus|nf|ng|ngo|nhk|ni|nico|nikon|ninja|nissan|nl|no|nokia|norton|nowruz|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|office|okinawa|om|omega|one|ong|onl|online|ooo|oracle|orange|org|organic|origins|osaka|otsuka|ovh|pa|page|pamperedchef|panerai|paris|pars|partners|parts|party|passagens|pe|pet|pf|pg|ph|pharmacy|philips|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pohl|poker|porn|post|pr|praxi|press|pro|prod|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|racing|re|read|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|ricoh|rio|rip|ro|rocher|rocks|rodeo|room|rs|rsvp|ru|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|saxo|sb|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scor|scot|sd|se|seat|security|seek|select|sener|services|seven|sew|sex|sexy|sfr|sg|sh|sharp|shell|shia|shiksha|shoes|show|shriram|si|singles|site|sj|sk|ski|skin|sky|skype|sl|sm|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|st|stada|star|starhub|statefarm|statoil|stc|stcgroup|stockholm|storage|store|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|taobao|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|team|tech|technology|tel|telecity|telefonica|temasek|tennis|tf|tg|th|thd|theater|theatre|tickets|tienda|tiffany|tips|tires|tirol|tj|tk|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tp|tr|trade|trading|training|travel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubs|ug|uk|unicom|university|uno|uol|us|uy|uz|va|vacations|vana|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|viking|villas|vin|vip|virgin|vision|vista|vistaprint|viva|vlaanderen|vn|vodka|volkswagen|vote|voting|voto|voyage|vu|vuelos|wales|walter|wang|wanggou|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|wme|wolterskluwer|work|works|world|ws|wtc|wtf|xbox|xerox|xin|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|youtube|yt|za|zara|zero|zip|zm|zone|zuerich|zw".split("|"),r="0123456789".split(""),i="0123456789abcdefghijklmnopqrstuvwxyz".split(""),s=[" ","\f","\r","\t","\x0B"],l=":",c=[],u=function(e){return new n.CharacterState(e)},p=t.text.DOMAIN,f=t.text.LOCALHOST,h=t.text.NUM,g=t.text.PROTOCOL,d=t.text.TLD,m=t.text.WS,b=u(),y=u(h),v=u(p),k=u(),x=u(m);b.on("@",u(t.text.AT)).on(".",u(t.text.DOT)).on("+",u(t.text.PLUS)).on("#",u(t.text.POUND)).on("?",u(t.text.QUERY)).on("/",u(t.text.SLASH)).on(l,u(t.text.COLON)).on("{",u(t.text.OPENBRACE)).on("[",u(t.text.OPENBRACKET)).on("(",u(t.text.OPENPAREN)).on("}",u(t.text.CLOSEBRACE)).on("]",u(t.text.CLOSEBRACKET)).on(")",u(t.text.CLOSEPAREN)).on([",",";","!",'"'],u(t.text.PUNCTUATION)),b.on("\n",u(t.text.NL)).on(s,x),x.on(s,x);for(var w=0;w<a.length;w++){var O=(0,n.stateify)(a[w],b,d,p);c.push.apply(c,O)}var S=(0,n.stateify)("file",b,p,p),L=(0,n.stateify)("ftp",b,p,p),E=(0,n.stateify)("http",b,p,p);c.push.apply(c,S),c.push.apply(c,L),c.push.apply(c,E);var T=S.pop(),A=L.pop(),N=E.pop(),C=u(p),j=u(g);A.on("s",C).on(l,j),N.on("s",C).on(l,j),c.push(C),T.on(l,j),C.on(l,j);var P=(0,n.stateify)("localhost",b,f,p);c.push.apply(c,P),b.on(r,y),y.on("-",k).on(r,y).on(i,v),v.on("-",k).on(i,v);for(var z=0;z<c.length;z++)c[z].on("-",k).on(i,v);k.on("-",k).on(r,v).on(i,v),b.defaultTransition=u(t.text.SYM);var _=function(e){for(var t=e.replace(/[A-Z]/g,function(e){return e.toLowerCase()}),n=e.length,o=[],a=0;a<n;){for(var r=b,i=null,s=null,l=0,c=null,u=-1;a<n&&(s=r.next(t[a]));)i=null,r=s,r.accepts()?(u=0,c=r):u>=0&&u++,l++,a++;if(!(u<0)){a-=u,l-=u;var p=c.emit();o.push(new p(e.substr(a-l,l)))}}return o},R=b;e.State=n.CharacterState,e.TOKENS=t.text,e.run=_,e.start=R}),define("linkify/core/parser",["exports","./tokens","./state"],function(e,t,n){"use strict";try{Object.defineProperty(e,"__esModule",{value:!0})}catch(o){e.__esModule=!0}e.start=e.run=e.TOKENS=e.State=void 0;var a=function(e){return new n.TokenState(e)},r=t.text.DOMAIN,i=t.text.AT,s=t.text.COLON,l=t.text.DOT,c=t.text.PUNCTUATION,u=t.text.LOCALHOST,p=t.text.NL,f=t.text.NUM,h=t.text.PLUS,g=t.text.POUND,d=t.text.PROTOCOL,m=t.text.QUERY,b=t.text.SLASH,y=t.text.SYM,v=t.text.TLD,k=t.text.OPENBRACE,x=t.text.OPENBRACKET,w=t.text.OPENPAREN,O=t.text.CLOSEBRACE,S=t.text.CLOSEBRACKET,L=t.text.CLOSEPAREN,E=t.multi.EMAIL,T=t.multi.NL,A=t.multi.TEXT,N=t.multi.URL,C=a(),j=a(),P=a(),z=a(),_=a(),R=a(),M=a(N),U=a(),B=a(N),q=a(N),D=a(),H=a(),K=a(),I=a(),Y=a(N),Q=a(N),W=a(N),X=a(),Z=a(),F=a(),G=a(),J=a(),V=a(E),$=a(),ee=a(E),te=a(),ne=a(),oe=a(),ae=a(T);C.on(p,ae).on(d,j).on(b,P),j.on(b,P),P.on(b,z),C.on(v,_).on(r,_).on(u,M).on(f,_),z.on(v,q).on(r,q).on(f,q).on(u,q),_.on(l,R),G.on(l,J),R.on(v,M).on(r,_).on(f,_).on(u,_),J.on(v,V).on(r,G).on(f,G).on(u,G),M.on(l,R),V.on(l,J),M.on(s,U).on(b,q),U.on(f,B),B.on(b,q),V.on(s,$),$.on(f,ee);var re=[r,i,u,f,h,g,d,b,v,y],ie=[s,l,m,c,O,S,L,k,x,w];q.on(k,H).on(x,K).on(w,I),D.on(k,H).on(x,K).on(w,I),H.on(O,q),K.on(S,q),I.on(L,q),Y.on(O,q),Q.on(S,q),W.on(L,q),X.on(O,q),Z.on(S,q),F.on(L,q),H.on(re,Y),K.on(re,Q),I.on(re,W),H.on(ie,X),K.on(ie,Z),I.on(ie,F),Y.on(re,Y),Q.on(re,Q),W.on(re,W),Y.on(ie,Y),Q.on(ie,Q),W.on(ie,W),X.on(re,Y),Z.on(re,Q),F.on(re,W),X.on(ie,X),Z.on(ie,Z),F.on(ie,F),q.on(re,q),D.on(re,q),q.on(ie,D),D.on(ie,D);var se=[r,f,h,g,m,y,v];_.on(se,te).on(i,ne),M.on(se,te).on(i,ne),R.on(se,te),te.on(se,te).on(i,ne).on(l,oe),oe.on(se,te),ne.on(v,G).on(r,G).on(u,V);var le=function(e){for(var t=e.length,n=0,o=[],a=[];n<t;){for(var r=C,i=null,s=null,l=0,c=null,u=-1;n<t&&!(i=r.next(e[n]));)a.push(e[n++]);for(;n<t&&(s=i||r.next(e[n]));)i=null,r=s,r.accepts()?(u=0,c=r):u>=0&&u++,n++,l++;if(u<0)for(var p=n-l;p<n;p++)a.push(e[p]);else{a.length>0&&(o.push(new A(a)),a=[]),n-=u,l-=u;var f=c.emit();o.push(new f(e.slice(n-l,n)))}}return a.length>0&&o.push(new A(a)),o},ce=t.multi,ue=C;e.State=n.TokenState,e.TOKENS=ce,e.run=le,e.start=ue}),define("linkify",["exports","./linkify/utils/class","./linkify/utils/options","./linkify/core/scanner","./linkify/core/parser"],function(e,t,n,o,a){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}try{Object.defineProperty(e,"__esModule",{value:!0})}catch(i){e.__esModule=!0}e.tokenize=e.test=e.scanner=e.parser=e.options=e.inherits=e.find=void 0;var s=r(n),l=r(o),c=r(a);Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var u=function(e){return c.run(l.run(e))},p=function(e){for(var t=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=u(e),o=[],a=0;a<n.length;a++)!n[a].isLink||t&&n[a].type!==t||o.push(n[a].toObject());return o},f=function(e){var t=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=u(e);return 1===n.length&&n[0].isLink&&(!t||n[0].type===t)};e.find=p,e.inherits=t.inherits,e.options=s,e.parser=c,e.scanner=l,e.test=f,e.tokenize=u});

@@ -175,3 +175,3 @@ ;(function () {

*/
var NUM = inheritsToken();
var NUM$1 = inheritsToken();

@@ -254,3 +254,3 @@ /**

NL: TNL,
NUM: NUM,
NUM: NUM$1,
PLUS: PLUS,

@@ -477,2 +477,4 @@ POUND: POUND,

BaseState.prototype = {
defaultTransition: false,
/**

@@ -492,3 +494,2 @@ @method constructor

*/
on: function on(symbol, state) {

@@ -527,3 +528,3 @@ if (symbol instanceof Array) {

// Nowhere left to jump!
return false;
return this.defaultTransition;
},

@@ -658,5 +659,7 @@

var REGEXP_NUM = /[0-9]/;
var REGEXP_ALPHANUM = /[a-z0-9]/;
var NUM = '0123456789'.split('');
var ALPHANUM = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');
var WHITESPACE = [' ', '\f', '\r', '\t', '\v']; // excluding line breaks
var COLON = ':';
var domainStates = [];

@@ -678,10 +681,10 @@ var makeState = function makeState(tokenClass) {

// States for special URL symbols
S_START.on('@', makeState(TEXT_TOKENS.AT)).on('.', makeState(TEXT_TOKENS.DOT)).on('+', makeState(TEXT_TOKENS.PLUS)).on('#', makeState(TEXT_TOKENS.POUND)).on('?', makeState(TEXT_TOKENS.QUERY)).on('/', makeState(TEXT_TOKENS.SLASH)).on(COLON, makeState(TEXT_TOKENS.COLON)).on('{', makeState(TEXT_TOKENS.OPENBRACE)).on('[', makeState(TEXT_TOKENS.OPENBRACKET)).on('(', makeState(TEXT_TOKENS.OPENPAREN)).on('}', makeState(TEXT_TOKENS.CLOSEBRACE)).on(']', makeState(TEXT_TOKENS.CLOSEBRACKET)).on(')', makeState(TEXT_TOKENS.CLOSEPAREN)).on(/[,;!]/, makeState(TEXT_TOKENS.PUNCTUATION));
S_START.on('@', makeState(TEXT_TOKENS.AT)).on('.', makeState(TEXT_TOKENS.DOT)).on('+', makeState(TEXT_TOKENS.PLUS)).on('#', makeState(TEXT_TOKENS.POUND)).on('?', makeState(TEXT_TOKENS.QUERY)).on('/', makeState(TEXT_TOKENS.SLASH)).on(COLON, makeState(TEXT_TOKENS.COLON)).on('{', makeState(TEXT_TOKENS.OPENBRACE)).on('[', makeState(TEXT_TOKENS.OPENBRACKET)).on('(', makeState(TEXT_TOKENS.OPENPAREN)).on('}', makeState(TEXT_TOKENS.CLOSEBRACE)).on(']', makeState(TEXT_TOKENS.CLOSEBRACKET)).on(')', makeState(TEXT_TOKENS.CLOSEPAREN)).on([',', ';', '!', '"'], makeState(TEXT_TOKENS.PUNCTUATION));
// Whitespace jumps
// Tokens of only non-newline whitespace are arbitrarily long
S_START.on(/\n/, makeState(TEXT_TOKENS.NL)).on(/\s/, S_WS);
S_START.on('\n', makeState(TEXT_TOKENS.NL)).on(WHITESPACE, S_WS);
// If any whitespace except newline, more whitespace!
S_WS.on(/[^\S\n]/, S_WS);
S_WS.on(WHITESPACE, S_WS);

@@ -729,16 +732,16 @@ // Generates states for top-level domains

// Number and character transitions
S_START.on(REGEXP_NUM, S_NUM);
S_NUM.on('-', S_DOMAIN_HYPHEN).on(REGEXP_NUM, S_NUM).on(REGEXP_ALPHANUM, S_DOMAIN); // number becomes DOMAIN
S_START.on(NUM, S_NUM);
S_NUM.on('-', S_DOMAIN_HYPHEN).on(NUM, S_NUM).on(ALPHANUM, S_DOMAIN); // number becomes DOMAIN
S_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(REGEXP_ALPHANUM, S_DOMAIN);
S_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);
// All the generated states should have a jump to DOMAIN
for (var _i = 0; _i < domainStates.length; _i++) {
domainStates[_i].on('-', S_DOMAIN_HYPHEN).on(REGEXP_ALPHANUM, S_DOMAIN);
domainStates[_i].on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);
}
S_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(REGEXP_NUM, S_DOMAIN).on(REGEXP_ALPHANUM, S_DOMAIN);
S_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(NUM, S_DOMAIN).on(ALPHANUM, S_DOMAIN);
// Any other character is considered a single symbol token
S_START.on(/./, makeState(TEXT_TOKENS.SYM));
// Set default transition
S_START.defaultTransition = makeState(TEXT_TOKENS.SYM);

@@ -860,3 +863,3 @@ /**

var S_URL = makeState$1(T_URL);
var S_URL_SYMS = makeState$1();
var S_URL_NON_ACCEPTING = makeState$1();
var S_URL_OPENBRACE = makeState$1();

@@ -920,3 +923,3 @@ var S_URL_OPENBRACKET = makeState$1();

// Types of characters the URL can definitely end in
var qsAccepting = [TT_DOMAIN, TT_AT, TT_LOCALHOST, TT_NUM, TT_PLUS, TT_POUND, TT_PROTOCOL, TT_SLASH, TT_TLD];
var qsAccepting = [TT_DOMAIN, TT_AT, TT_LOCALHOST, TT_NUM, TT_PLUS, TT_POUND, TT_PROTOCOL, TT_SLASH, TT_TLD, TT_SYM];

@@ -926,3 +929,3 @@ // Types of tokens that can follow a URL and be part of the query string

// Characters that cannot appear in the URL at all should be excluded
var qsNonAccepting = [TT_COLON, TT_DOT, TT_QUERY, TT_PUNCTUATION, TT_CLOSEBRACE, TT_CLOSEBRACKET, TT_CLOSEPAREN, TT_OPENBRACE, TT_OPENBRACKET, TT_OPENPAREN, TT_SYM];
var qsNonAccepting = [TT_COLON, TT_DOT, TT_QUERY, TT_PUNCTUATION, TT_CLOSEBRACE, TT_CLOSEBRACKET, TT_CLOSEPAREN, TT_OPENBRACE, TT_OPENBRACKET, TT_OPENPAREN];

@@ -936,3 +939,3 @@ // These states are responsible primarily for determining whether or not to

// URL with extra symbols at the end, followed by an opening bracket
S_URL_SYMS.on(TT_OPENBRACE, S_URL_OPENBRACE).on(TT_OPENBRACKET, S_URL_OPENBRACKET).on(TT_OPENPAREN, S_URL_OPENPAREN);
S_URL_NON_ACCEPTING.on(TT_OPENBRACE, S_URL_OPENBRACE).on(TT_OPENBRACKET, S_URL_OPENBRACKET).on(TT_OPENPAREN, S_URL_OPENPAREN);

@@ -977,6 +980,6 @@ // Closing bracket component. This character WILL be included in the URL

S_URL.on(qsAccepting, S_URL);
S_URL_SYMS.on(qsAccepting, S_URL);
S_URL_NON_ACCEPTING.on(qsAccepting, S_URL);
S_URL.on(qsNonAccepting, S_URL_SYMS);
S_URL_SYMS.on(qsNonAccepting, S_URL_SYMS);
S_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);
S_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);

@@ -983,0 +986,0 @@ // Email address-specific state definitions

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

!function(){"use strict";!function(n){function e(n,e){var o=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],t=Object.create(n.prototype);for(var a in o)t[a]=o[a];return t.constructor=e,e.prototype=t,e}function o(n){n=n||{};for(var e=n.newLine||!1,o=n.ignoreTags||[],t=0;t<o.length;t++)o[t]=o[t].toUpperCase();return{attributes:n.linkAttributes||null,defaultProtocol:n.defaultProtocol||"http",events:n.events||null,format:n.format||r,validate:n.validate||i,formatHref:n.formatHref||r,newLine:n.newLine||!1,nl2br:!!e||n.nl2br||!1,tagName:n.tagName||"a",target:n.target||s,linkClass:n.linkClass||"linkified",ignoreTags:o}}function t(n){for(var e=arguments.length,o=Array(e>1?e-1:0),t=1;t<e;t++)o[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,o):n}function a(n,e){for(var o=0;o<n.length;o++)if(n[o]==e)return!0;return!1}function r(n){return n}function i(n){return!0}function s(n,e){return"url"===e?"_blank":null}function c(){return function(n){n&&(this.a=n)}}function l(n){var o=n?{a:n}:{};return e(f,c(),o)}function u(n){return n instanceof m||n instanceof C}function p(){return function(n){this.b=[],this.T=n||null}}function g(n,e,o,t){for(var a=0,r=n.length,i=e,s=[],c=void 0;a<r&&(c=i.next(n[a]));)i=c,a++;if(a>=r)return[];for(;a<r-1;)c=new W(t),s.push(c),i.on(n[a],c),i=c,a++;return c=new W(o),s.push(c),i.on(n[r-1],c),s}var h=Object.freeze({normalize:o,resolve:t,contains:a}),f=c();f.prototype={toString:function(){return this.a+""}};var m=l(),d=l("@"),b=l(":"),y=l("."),v=l(),k=l(),w=l("\n"),O=l(),L=l("+"),x=l("#"),E=l(),A=l("?"),N=l("/"),S=l(),C=l(),z=l(),T=l("{"),j=l("["),P=l("("),R=l("}"),U=l("]"),B=l(")"),q={Base:f,DOMAIN:m,AT:d,COLON:b,DOT:y,PUNCTUATION:v,LOCALHOST:k,NL:w,NUM:O,PLUS:L,POUND:x,QUERY:A,PROTOCOL:E,SLASH:N,SYM:S,TLD:C,WS:z,OPENBRACE:T,OPENBRACKET:j,OPENPAREN:P,CLOSEBRACE:R,CLOSEBRACKET:U,CLOSEPAREN:B},D=c();D.prototype={type:"token",isLink:!1,toString:function(){for(var n=[],e=0;e<this.a.length;e++)n.push(this.a[e].toString());return n.join("")},toHref:function(){return this.toString()},toObject:function(){var n=arguments.length<=0||void 0===arguments[0]?"http":arguments[0];return{type:this.type,value:this.toString(),href:this.toHref(n)}}};var H=e(D,c(),{type:"email",isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),M=e(D,c(),{type:"text"}),I=e(D,c(),{type:"nl"}),K=e(D,c(),{type:"url",isLink:!0,toHref:function(){for(var n=arguments.length<=0||void 0===arguments[0]?"http":arguments[0],e=!1,o=!1,t=this.a,a=[],r=0;t[r]instanceof E;)e=!0,a.push(t[r].toString().toLowerCase()),r++;for(;t[r]instanceof N;)o=!0,a.push(t[r].toString()),r++;for(;u(t[r]);)a.push(t[r].toString().toLowerCase()),r++;for(;r<t.length;r++)a.push(t[r].toString());return a=a.join(""),e||o||(a=n+"://"+a),a},hasProtocol:function(){return this.a[0]instanceof E}}),Y={Base:D,EMAIL:H,NL:I,TEXT:M,URL:K},Q=p();Q.prototype={on:function(n,e){if(n instanceof Array){for(var o=0;o<n.length;o++)this.b.push([n[o],e]);return this}return this.b.push([n,e]),this},next:function(n){for(var e=0;e<this.b.length;e++){var o=this.b[e],t=o[0],a=o[1];if(this.test(n,t))return a}return!1},accepts:function(){return!!this.T},test:function(n,e){return n===e},emit:function(){return this.T}};var W=e(Q,p(),{test:function(n,e){return n===e||e instanceof RegExp&&e.test(n)}}),X=e(Q,p(),{test:function(n,e){return n instanceof e}}),Z="aaa|aarp|abb|abbott|abogado|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|af|afl|ag|agency|ai|aig|airforce|airtel|al|alibaba|alipay|allfinanz|alsace|am|amica|amsterdam|an|analytics|android|ao|apartments|app|apple|aq|aquarelle|ar|aramco|archi|army|arpa|arte|as|asia|associates|at|attorney|au|auction|audi|audio|author|auto|autos|avianca|aw|ax|axa|az|azure|ba|baidu|band|bank|bar|barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bb|bbc|bbva|bcg|bcn|bd|be|beats|beer|bentley|berlin|best|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bom|bond|boo|book|boots|bosch|bostik|bot|boutique|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|camera|camp|cancerresearch|canon|capetown|capital|car|caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chloe|christmas|chrome|church|ci|cipriani|circle|cisco|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|date|dating|datsun|day|dclk|de|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|dj|dk|dm|dnp|do|docs|dog|doha|domains|download|drive|dubai|durban|dvag|dz|earth|eat|ec|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epson|equipment|er|erni|es|esq|estate|et|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|fage|fail|fairwinds|faith|family|fan|fans|farm|fashion|fast|feedback|ferrero|fi|film|final|finance|financial|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|florist|flowers|flsmidth|fly|fm|fo|foo|football|ford|forex|forsale|forum|foundation|fox|fr|fresenius|frl|frogans|frontier|fund|furniture|futbol|fyi|ga|gal|gallery|gallup|game|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|gold|goldpoint|golf|goo|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|group|gs|gt|gu|gucci|guge|guide|guitars|guru|gw|gy|hamburg|hangout|haus|hdfcbank|health|healthcare|help|helsinki|here|hermes|hiphop|hitachi|hiv|hk|hm|hn|hockey|holdings|holiday|homedepot|homes|honda|horse|host|hosting|hoteles|hotmail|house|how|hr|hsbc|ht|hu|hyundai|ibm|icbc|ice|icu|id|ie|ifm|iinet|il|im|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|international|investments|io|ipiranga|iq|ir|irish|is|iselect|ist|istanbul|it|itau|iwc|jaguar|java|jcb|je|jetzt|jewelry|jlc|jll|jm|jmp|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kitchen|kiwi|km|kn|koeln|komatsu|kp|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|lamborghini|lamer|lancaster|land|landrover|lanxess|lasalle|lat|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|legal|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|limited|limo|lincoln|linde|link|live|living|lixil|lk|loan|loans|local|locus|lol|london|lotte|lotto|love|lr|ls|lt|ltd|ltda|lu|lupin|luxe|luxury|lv|ly|ma|madrid|maif|maison|makeup|man|management|mango|market|marketing|markets|marriott|mba|mc|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|mg|mh|miami|microsoft|mil|mini|mk|ml|mm|mma|mn|mo|mobi|mobily|moda|moe|moi|mom|monash|money|montblanc|mormon|mortgage|moscow|motorcycles|mov|movie|movistar|mp|mq|mr|ms|mt|mtn|mtpc|mtr|mu|museum|mutuelle|mv|mw|mx|my|mz|na|nadex|nagoya|name|natura|navy|nc|ne|nec|net|netbank|network|neustar|new|news|nexus|nf|ng|ngo|nhk|ni|nico|nikon|ninja|nissan|nl|no|nokia|norton|nowruz|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|office|okinawa|om|omega|one|ong|onl|online|ooo|oracle|orange|org|organic|origins|osaka|otsuka|ovh|pa|page|pamperedchef|panerai|paris|pars|partners|parts|party|passagens|pe|pet|pf|pg|ph|pharmacy|philips|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pohl|poker|porn|post|pr|praxi|press|pro|prod|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|racing|re|read|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|ricoh|rio|rip|ro|rocher|rocks|rodeo|room|rs|rsvp|ru|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|saxo|sb|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scor|scot|sd|se|seat|security|seek|select|sener|services|seven|sew|sex|sexy|sfr|sg|sh|sharp|shell|shia|shiksha|shoes|show|shriram|si|singles|site|sj|sk|ski|skin|sky|skype|sl|sm|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|st|stada|star|starhub|statefarm|statoil|stc|stcgroup|stockholm|storage|store|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|taobao|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|team|tech|technology|tel|telecity|telefonica|temasek|tennis|tf|tg|th|thd|theater|theatre|tickets|tienda|tiffany|tips|tires|tirol|tj|tk|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tp|tr|trade|trading|training|travel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubs|ug|uk|unicom|university|uno|uol|us|uy|uz|va|vacations|vana|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|viking|villas|vin|vip|virgin|vision|vista|vistaprint|viva|vlaanderen|vn|vodka|volkswagen|vote|voting|voto|voyage|vu|vuelos|wales|walter|wang|wanggou|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|wme|wolterskluwer|work|works|world|ws|wtc|wtf|xbox|xerox|xin|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|youtube|yt|za|zara|zero|zip|zm|zone|zuerich|zw".split("|"),_=/[0-9]/,F=/[a-z0-9]/,G=":",J=[],V=function(n){return new W(n)},$=q.DOMAIN,nn=q.LOCALHOST,en=q.NUM,on=q.PROTOCOL,tn=q.TLD,an=q.WS,rn=V(),sn=V(en),cn=V($),ln=V(),un=V(an);rn.on("@",V(q.AT)).on(".",V(q.DOT)).on("+",V(q.PLUS)).on("#",V(q.POUND)).on("?",V(q.QUERY)).on("/",V(q.SLASH)).on(G,V(q.COLON)).on("{",V(q.OPENBRACE)).on("[",V(q.OPENBRACKET)).on("(",V(q.OPENPAREN)).on("}",V(q.CLOSEBRACE)).on("]",V(q.CLOSEBRACKET)).on(")",V(q.CLOSEPAREN)).on(/[,;!]/,V(q.PUNCTUATION)),rn.on(/\n/,V(q.NL)).on(/\s/,un),un.on(/[^\S\n]/,un);for(var pn=0;pn<Z.length;pn++){var gn=g(Z[pn],rn,tn,$);J.push.apply(J,gn)}var hn=g("file",rn,$,$),fn=g("ftp",rn,$,$),mn=g("http",rn,$,$);J.push.apply(J,hn),J.push.apply(J,fn),J.push.apply(J,mn);var dn=hn.pop(),bn=fn.pop(),yn=mn.pop(),vn=V($),kn=V(on);bn.on("s",vn).on(G,kn),yn.on("s",vn).on(G,kn),J.push(vn),dn.on(G,kn),vn.on(G,kn);var wn=g("localhost",rn,nn,$);J.push.apply(J,wn),rn.on(_,sn),sn.on("-",ln).on(_,sn).on(F,cn),cn.on("-",ln).on(F,cn);for(var On=0;On<J.length;On++)J[On].on("-",ln).on(F,cn);ln.on("-",ln).on(_,cn).on(F,cn),rn.on(/./,V(q.SYM));var Ln=function(n){for(var e=n.replace(/[A-Z]/g,function(n){return n.toLowerCase()}),o=n.length,t=[],a=0;a<o;){for(var r=rn,i=null,s=null,c=0,l=null,u=-1;a<o&&(s=r.next(e[a]));)i=null,r=s,r.accepts()?(u=0,l=r):u>=0&&u++,c++,a++;if(!(u<0)){a-=u,c-=u;var p=l.emit();t.push(new p(n.substr(a-c,c)))}}return t},xn=rn,En=Object.freeze({State:W,TOKENS:q,run:Ln,start:xn}),An=function(n){return new X(n)},Nn=q.DOMAIN,Sn=q.AT,Cn=q.COLON,zn=q.DOT,Tn=q.PUNCTUATION,jn=q.LOCALHOST,Pn=q.NL,Rn=q.NUM,Un=q.PLUS,Bn=q.POUND,qn=q.PROTOCOL,Dn=q.QUERY,Hn=q.SLASH,Mn=q.SYM,In=q.TLD,Kn=q.OPENBRACE,Yn=q.OPENBRACKET,Qn=q.OPENPAREN,Wn=q.CLOSEBRACE,Xn=q.CLOSEBRACKET,Zn=q.CLOSEPAREN,_n=Y.EMAIL,Fn=Y.NL,Gn=Y.TEXT,Jn=Y.URL,Vn=An(),$n=An(),ne=An(),ee=An(),oe=An(),te=An(),ae=An(Jn),re=An(),ie=An(Jn),se=An(Jn),ce=An(),le=An(),ue=An(),pe=An(),ge=An(Jn),he=An(Jn),fe=An(Jn),me=An(),de=An(),be=An(),ye=An(),ve=An(),ke=An(_n),we=An(),Oe=An(_n),Le=An(),xe=An(),Ee=An(),Ae=An(Fn);Vn.on(Pn,Ae).on(qn,$n).on(Hn,ne),$n.on(Hn,ne),ne.on(Hn,ee),Vn.on(In,oe).on(Nn,oe).on(jn,ae).on(Rn,oe),ee.on(In,se).on(Nn,se).on(Rn,se).on(jn,se),oe.on(zn,te),ye.on(zn,ve),te.on(In,ae).on(Nn,oe).on(Rn,oe).on(jn,oe),ve.on(In,ke).on(Nn,ye).on(Rn,ye).on(jn,ye),ae.on(zn,te),ke.on(zn,ve),ae.on(Cn,re).on(Hn,se),re.on(Rn,ie),ie.on(Hn,se),ke.on(Cn,we),we.on(Rn,Oe);var Ne=[Nn,Sn,jn,Rn,Un,Bn,qn,Hn,In],Se=[Cn,zn,Dn,Tn,Wn,Xn,Zn,Kn,Yn,Qn,Mn];se.on(Kn,le).on(Yn,ue).on(Qn,pe),ce.on(Kn,le).on(Yn,ue).on(Qn,pe),le.on(Wn,se),ue.on(Xn,se),pe.on(Zn,se),ge.on(Wn,se),he.on(Xn,se),fe.on(Zn,se),me.on(Wn,se),de.on(Xn,se),be.on(Zn,se),le.on(Ne,ge),ue.on(Ne,he),pe.on(Ne,fe),le.on(Se,me),ue.on(Se,de),pe.on(Se,be),ge.on(Ne,ge),he.on(Ne,he),fe.on(Ne,fe),ge.on(Se,ge),he.on(Se,he),fe.on(Se,fe),me.on(Ne,ge),de.on(Ne,he),be.on(Ne,fe),me.on(Se,me),de.on(Se,de),be.on(Se,be),se.on(Ne,se),ce.on(Ne,se),se.on(Se,ce),ce.on(Se,ce);var Ce=[Nn,Rn,Un,Bn,Dn,Mn,In];oe.on(Ce,Le).on(Sn,xe),ae.on(Ce,Le).on(Sn,xe),te.on(Ce,Le),Le.on(Ce,Le).on(Sn,xe).on(zn,Ee),Ee.on(Ce,Le),xe.on(In,ye).on(Nn,ye).on(jn,ke);var ze=function(n){for(var e=n.length,o=0,t=[],a=[];o<e;){for(var r=Vn,i=null,s=null,c=0,l=null,u=-1;o<e&&!(i=r.next(n[o]));)a.push(n[o++]);for(;o<e&&(s=i||r.next(n[o]));)i=null,r=s,r.accepts()?(u=0,l=r):u>=0&&u++,o++,c++;if(u<0)for(var p=o-c;p<o;p++)a.push(n[p]);else{a.length>0&&(t.push(new Gn(a)),a=[]),o-=u,c-=u;var g=l.emit();t.push(new g(n.slice(o-c,o)))}}return a.length>0&&t.push(new Gn(a)),t},Te=Y,je=Vn,Pe=Object.freeze({State:X,TOKENS:Te,run:ze,start:je});Array.isArray||(Array.isArray=function(n){return"[object Array]"===Object.prototype.toString.call(n)});var Re=function(n){return ze(Ln(n))},Ue=function(n){for(var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],o=Re(n),t=[],a=0;a<o.length;a++)!o[a].isLink||e&&o[a].type!==e||t.push(o[a].toObject());return t},Be=function(n){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],o=Re(n);return 1===o.length&&o[0].isLink&&(!e||o[0].type===e)};n.find=Ue,n.inherits=e,n.options=h,n.parser=Pe,n.scanner=En,n.test=Be,n.tokenize=Re}(window.linkify=window.linkify||{})}();
!function(){"use strict";!function(n){function e(n,e){var o=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],t=Object.create(n.prototype);for(var a in o)t[a]=o[a];return t.constructor=e,e.prototype=t,e}function o(n){n=n||{};for(var e=n.newLine||!1,o=n.ignoreTags||[],t=0;t<o.length;t++)o[t]=o[t].toUpperCase();return{attributes:n.linkAttributes||null,defaultProtocol:n.defaultProtocol||"http",events:n.events||null,format:n.format||r,validate:n.validate||i,formatHref:n.formatHref||r,newLine:n.newLine||!1,nl2br:!!e||n.nl2br||!1,tagName:n.tagName||"a",target:n.target||s,linkClass:n.linkClass||"linkified",ignoreTags:o}}function t(n){for(var e=arguments.length,o=Array(e>1?e-1:0),t=1;t<e;t++)o[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,o):n}function a(n,e){for(var o=0;o<n.length;o++)if(n[o]==e)return!0;return!1}function r(n){return n}function i(n){return!0}function s(n,e){return"url"===e?"_blank":null}function l(){return function(n){n&&(this.a=n)}}function c(n){var o=n?{a:n}:{};return e(f,l(),o)}function u(n){return n instanceof m||n instanceof T}function p(){return function(n){this.b=[],this.T=n||null}}function g(n,e,o,t){for(var a=0,r=n.length,i=e,s=[],l=void 0;a<r&&(l=i.next(n[a]));)i=l,a++;if(a>=r)return[];for(;a<r-1;)l=new W(t),s.push(l),i.on(n[a],l),i=l,a++;return l=new W(o),s.push(l),i.on(n[r-1],l),s}var h=Object.freeze({normalize:o,resolve:t,contains:a}),f=l();f.prototype={toString:function(){return this.a+""}};var m=c(),d=c("@"),b=c(":"),y=c("."),v=c(),k=c(),w=c("\n"),O=c(),L=c("+"),x=c("#"),E=c(),A=c("?"),N=c("/"),S=c(),T=c(),C=c(),z=c("{"),j=c("["),P=c("("),R=c("}"),U=c("]"),B=c(")"),q={Base:f,DOMAIN:m,AT:d,COLON:b,DOT:y,PUNCTUATION:v,LOCALHOST:k,NL:w,NUM:O,PLUS:L,POUND:x,QUERY:A,PROTOCOL:E,SLASH:N,SYM:S,TLD:T,WS:C,OPENBRACE:z,OPENBRACKET:j,OPENPAREN:P,CLOSEBRACE:R,CLOSEBRACKET:U,CLOSEPAREN:B},D=l();D.prototype={type:"token",isLink:!1,toString:function(){for(var n=[],e=0;e<this.a.length;e++)n.push(this.a[e].toString());return n.join("")},toHref:function(){return this.toString()},toObject:function(){var n=arguments.length<=0||void 0===arguments[0]?"http":arguments[0];return{type:this.type,value:this.toString(),href:this.toHref(n)}}};var H=e(D,l(),{type:"email",isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),M=e(D,l(),{type:"text"}),I=e(D,l(),{type:"nl"}),K=e(D,l(),{type:"url",isLink:!0,toHref:function(){for(var n=arguments.length<=0||void 0===arguments[0]?"http":arguments[0],e=!1,o=!1,t=this.a,a=[],r=0;t[r]instanceof E;)e=!0,a.push(t[r].toString().toLowerCase()),r++;for(;t[r]instanceof N;)o=!0,a.push(t[r].toString()),r++;for(;u(t[r]);)a.push(t[r].toString().toLowerCase()),r++;for(;r<t.length;r++)a.push(t[r].toString());return a=a.join(""),e||o||(a=n+"://"+a),a},hasProtocol:function(){return this.a[0]instanceof E}}),Y={Base:D,EMAIL:H,NL:I,TEXT:M,URL:K},Q=p();Q.prototype={defaultTransition:!1,on:function(n,e){if(n instanceof Array){for(var o=0;o<n.length;o++)this.b.push([n[o],e]);return this}return this.b.push([n,e]),this},next:function(n){for(var e=0;e<this.b.length;e++){var o=this.b[e],t=o[0],a=o[1];if(this.test(n,t))return a}return this.defaultTransition},accepts:function(){return!!this.T},test:function(n,e){return n===e},emit:function(){return this.T}};var W=e(Q,p(),{test:function(n,e){return n===e||e instanceof RegExp&&e.test(n)}}),X=e(Q,p(),{test:function(n,e){return n instanceof e}}),Z="aaa|aarp|abb|abbott|abogado|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|af|afl|ag|agency|ai|aig|airforce|airtel|al|alibaba|alipay|allfinanz|alsace|am|amica|amsterdam|an|analytics|android|ao|apartments|app|apple|aq|aquarelle|ar|aramco|archi|army|arpa|arte|as|asia|associates|at|attorney|au|auction|audi|audio|author|auto|autos|avianca|aw|ax|axa|az|azure|ba|baidu|band|bank|bar|barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bb|bbc|bbva|bcg|bcn|bd|be|beats|beer|bentley|berlin|best|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bom|bond|boo|book|boots|bosch|bostik|bot|boutique|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|camera|camp|cancerresearch|canon|capetown|capital|car|caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chloe|christmas|chrome|church|ci|cipriani|circle|cisco|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|date|dating|datsun|day|dclk|de|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|dj|dk|dm|dnp|do|docs|dog|doha|domains|download|drive|dubai|durban|dvag|dz|earth|eat|ec|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epson|equipment|er|erni|es|esq|estate|et|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|fage|fail|fairwinds|faith|family|fan|fans|farm|fashion|fast|feedback|ferrero|fi|film|final|finance|financial|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|florist|flowers|flsmidth|fly|fm|fo|foo|football|ford|forex|forsale|forum|foundation|fox|fr|fresenius|frl|frogans|frontier|fund|furniture|futbol|fyi|ga|gal|gallery|gallup|game|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|gold|goldpoint|golf|goo|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|group|gs|gt|gu|gucci|guge|guide|guitars|guru|gw|gy|hamburg|hangout|haus|hdfcbank|health|healthcare|help|helsinki|here|hermes|hiphop|hitachi|hiv|hk|hm|hn|hockey|holdings|holiday|homedepot|homes|honda|horse|host|hosting|hoteles|hotmail|house|how|hr|hsbc|ht|hu|hyundai|ibm|icbc|ice|icu|id|ie|ifm|iinet|il|im|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|international|investments|io|ipiranga|iq|ir|irish|is|iselect|ist|istanbul|it|itau|iwc|jaguar|java|jcb|je|jetzt|jewelry|jlc|jll|jm|jmp|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kitchen|kiwi|km|kn|koeln|komatsu|kp|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|lamborghini|lamer|lancaster|land|landrover|lanxess|lasalle|lat|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|legal|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|limited|limo|lincoln|linde|link|live|living|lixil|lk|loan|loans|local|locus|lol|london|lotte|lotto|love|lr|ls|lt|ltd|ltda|lu|lupin|luxe|luxury|lv|ly|ma|madrid|maif|maison|makeup|man|management|mango|market|marketing|markets|marriott|mba|mc|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|mg|mh|miami|microsoft|mil|mini|mk|ml|mm|mma|mn|mo|mobi|mobily|moda|moe|moi|mom|monash|money|montblanc|mormon|mortgage|moscow|motorcycles|mov|movie|movistar|mp|mq|mr|ms|mt|mtn|mtpc|mtr|mu|museum|mutuelle|mv|mw|mx|my|mz|na|nadex|nagoya|name|natura|navy|nc|ne|nec|net|netbank|network|neustar|new|news|nexus|nf|ng|ngo|nhk|ni|nico|nikon|ninja|nissan|nl|no|nokia|norton|nowruz|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|office|okinawa|om|omega|one|ong|onl|online|ooo|oracle|orange|org|organic|origins|osaka|otsuka|ovh|pa|page|pamperedchef|panerai|paris|pars|partners|parts|party|passagens|pe|pet|pf|pg|ph|pharmacy|philips|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pohl|poker|porn|post|pr|praxi|press|pro|prod|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|racing|re|read|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|ricoh|rio|rip|ro|rocher|rocks|rodeo|room|rs|rsvp|ru|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|saxo|sb|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scor|scot|sd|se|seat|security|seek|select|sener|services|seven|sew|sex|sexy|sfr|sg|sh|sharp|shell|shia|shiksha|shoes|show|shriram|si|singles|site|sj|sk|ski|skin|sky|skype|sl|sm|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|st|stada|star|starhub|statefarm|statoil|stc|stcgroup|stockholm|storage|store|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|taobao|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|team|tech|technology|tel|telecity|telefonica|temasek|tennis|tf|tg|th|thd|theater|theatre|tickets|tienda|tiffany|tips|tires|tirol|tj|tk|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tp|tr|trade|trading|training|travel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubs|ug|uk|unicom|university|uno|uol|us|uy|uz|va|vacations|vana|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|viking|villas|vin|vip|virgin|vision|vista|vistaprint|viva|vlaanderen|vn|vodka|volkswagen|vote|voting|voto|voyage|vu|vuelos|wales|walter|wang|wanggou|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|wme|wolterskluwer|work|works|world|ws|wtc|wtf|xbox|xerox|xin|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|youtube|yt|za|zara|zero|zip|zm|zone|zuerich|zw".split("|"),_="0123456789".split(""),F="0123456789abcdefghijklmnopqrstuvwxyz".split(""),G=[" ","\f","\r","\t","\x0B"],J=":",V=[],$=function(n){return new W(n)},nn=q.DOMAIN,en=q.LOCALHOST,on=q.NUM,tn=q.PROTOCOL,an=q.TLD,rn=q.WS,sn=$(),ln=$(on),cn=$(nn),un=$(),pn=$(rn);sn.on("@",$(q.AT)).on(".",$(q.DOT)).on("+",$(q.PLUS)).on("#",$(q.POUND)).on("?",$(q.QUERY)).on("/",$(q.SLASH)).on(J,$(q.COLON)).on("{",$(q.OPENBRACE)).on("[",$(q.OPENBRACKET)).on("(",$(q.OPENPAREN)).on("}",$(q.CLOSEBRACE)).on("]",$(q.CLOSEBRACKET)).on(")",$(q.CLOSEPAREN)).on([",",";","!",'"'],$(q.PUNCTUATION)),sn.on("\n",$(q.NL)).on(G,pn),pn.on(G,pn);for(var gn=0;gn<Z.length;gn++){var hn=g(Z[gn],sn,an,nn);V.push.apply(V,hn)}var fn=g("file",sn,nn,nn),mn=g("ftp",sn,nn,nn),dn=g("http",sn,nn,nn);V.push.apply(V,fn),V.push.apply(V,mn),V.push.apply(V,dn);var bn=fn.pop(),yn=mn.pop(),vn=dn.pop(),kn=$(nn),wn=$(tn);yn.on("s",kn).on(J,wn),vn.on("s",kn).on(J,wn),V.push(kn),bn.on(J,wn),kn.on(J,wn);var On=g("localhost",sn,en,nn);V.push.apply(V,On),sn.on(_,ln),ln.on("-",un).on(_,ln).on(F,cn),cn.on("-",un).on(F,cn);for(var Ln=0;Ln<V.length;Ln++)V[Ln].on("-",un).on(F,cn);un.on("-",un).on(_,cn).on(F,cn),sn.defaultTransition=$(q.SYM);var xn=function(n){for(var e=n.replace(/[A-Z]/g,function(n){return n.toLowerCase()}),o=n.length,t=[],a=0;a<o;){for(var r=sn,i=null,s=null,l=0,c=null,u=-1;a<o&&(s=r.next(e[a]));)i=null,r=s,r.accepts()?(u=0,c=r):u>=0&&u++,l++,a++;if(!(u<0)){a-=u,l-=u;var p=c.emit();t.push(new p(n.substr(a-l,l)))}}return t},En=sn,An=Object.freeze({State:W,TOKENS:q,run:xn,start:En}),Nn=function(n){return new X(n)},Sn=q.DOMAIN,Tn=q.AT,Cn=q.COLON,zn=q.DOT,jn=q.PUNCTUATION,Pn=q.LOCALHOST,Rn=q.NL,Un=q.NUM,Bn=q.PLUS,qn=q.POUND,Dn=q.PROTOCOL,Hn=q.QUERY,Mn=q.SLASH,In=q.SYM,Kn=q.TLD,Yn=q.OPENBRACE,Qn=q.OPENBRACKET,Wn=q.OPENPAREN,Xn=q.CLOSEBRACE,Zn=q.CLOSEBRACKET,_n=q.CLOSEPAREN,Fn=Y.EMAIL,Gn=Y.NL,Jn=Y.TEXT,Vn=Y.URL,$n=Nn(),ne=Nn(),ee=Nn(),oe=Nn(),te=Nn(),ae=Nn(),re=Nn(Vn),ie=Nn(),se=Nn(Vn),le=Nn(Vn),ce=Nn(),ue=Nn(),pe=Nn(),ge=Nn(),he=Nn(Vn),fe=Nn(Vn),me=Nn(Vn),de=Nn(),be=Nn(),ye=Nn(),ve=Nn(),ke=Nn(),we=Nn(Fn),Oe=Nn(),Le=Nn(Fn),xe=Nn(),Ee=Nn(),Ae=Nn(),Ne=Nn(Gn);$n.on(Rn,Ne).on(Dn,ne).on(Mn,ee),ne.on(Mn,ee),ee.on(Mn,oe),$n.on(Kn,te).on(Sn,te).on(Pn,re).on(Un,te),oe.on(Kn,le).on(Sn,le).on(Un,le).on(Pn,le),te.on(zn,ae),ve.on(zn,ke),ae.on(Kn,re).on(Sn,te).on(Un,te).on(Pn,te),ke.on(Kn,we).on(Sn,ve).on(Un,ve).on(Pn,ve),re.on(zn,ae),we.on(zn,ke),re.on(Cn,ie).on(Mn,le),ie.on(Un,se),se.on(Mn,le),we.on(Cn,Oe),Oe.on(Un,Le);var Se=[Sn,Tn,Pn,Un,Bn,qn,Dn,Mn,Kn,In],Te=[Cn,zn,Hn,jn,Xn,Zn,_n,Yn,Qn,Wn];le.on(Yn,ue).on(Qn,pe).on(Wn,ge),ce.on(Yn,ue).on(Qn,pe).on(Wn,ge),ue.on(Xn,le),pe.on(Zn,le),ge.on(_n,le),he.on(Xn,le),fe.on(Zn,le),me.on(_n,le),de.on(Xn,le),be.on(Zn,le),ye.on(_n,le),ue.on(Se,he),pe.on(Se,fe),ge.on(Se,me),ue.on(Te,de),pe.on(Te,be),ge.on(Te,ye),he.on(Se,he),fe.on(Se,fe),me.on(Se,me),he.on(Te,he),fe.on(Te,fe),me.on(Te,me),de.on(Se,he),be.on(Se,fe),ye.on(Se,me),de.on(Te,de),be.on(Te,be),ye.on(Te,ye),le.on(Se,le),ce.on(Se,le),le.on(Te,ce),ce.on(Te,ce);var Ce=[Sn,Un,Bn,qn,Hn,In,Kn];te.on(Ce,xe).on(Tn,Ee),re.on(Ce,xe).on(Tn,Ee),ae.on(Ce,xe),xe.on(Ce,xe).on(Tn,Ee).on(zn,Ae),Ae.on(Ce,xe),Ee.on(Kn,ve).on(Sn,ve).on(Pn,we);var ze=function(n){for(var e=n.length,o=0,t=[],a=[];o<e;){for(var r=$n,i=null,s=null,l=0,c=null,u=-1;o<e&&!(i=r.next(n[o]));)a.push(n[o++]);for(;o<e&&(s=i||r.next(n[o]));)i=null,r=s,r.accepts()?(u=0,c=r):u>=0&&u++,o++,l++;if(u<0)for(var p=o-l;p<o;p++)a.push(n[p]);else{a.length>0&&(t.push(new Jn(a)),a=[]),o-=u,l-=u;var g=c.emit();t.push(new g(n.slice(o-l,o)))}}return a.length>0&&t.push(new Jn(a)),t},je=Y,Pe=$n,Re=Object.freeze({State:X,TOKENS:je,run:ze,start:Pe});Array.isArray||(Array.isArray=function(n){return"[object Array]"===Object.prototype.toString.call(n)});var Ue=function(n){return ze(xn(n))},Be=function(n){for(var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],o=Ue(n),t=[],a=0;a<o.length;a++)!o[a].isLink||e&&o[a].type!==e||t.push(o[a].toObject());return t},qe=function(n){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],o=Ue(n);return 1===o.length&&o[0].isLink&&(!e||o[0].type===e)};n.find=Be,n.inherits=e,n.options=h,n.parser=Re,n.scanner=An,n.test=qe,n.tokenize=Ue}(window.linkify=window.linkify||{})}();

@@ -16,2 +16,3 @@ 'use strict';

var options = linkify.options;
var TEXT_TOKEN = linkify.parser.TOKENS.TEXT;

@@ -47,47 +48,47 @@ var HTML_NODE = 1,

var token = tokens[i];
var validated = token.isLink && options.resolve(opts.validate, token.toString(), token.type);
if (token.isLink && validated) {
if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
continue;
} else if (!token.isLink || !options.resolve(opts.validate, token.toString(), token.type)) {
result.push(doc.createTextNode(token.toString()));
continue;
}
var href = token.toHref(opts.defaultProtocol),
formatted = options.resolve(opts.format, token.toString(), token.type),
formattedHref = options.resolve(opts.formatHref, href, token.type),
attributesHash = options.resolve(opts.attributes, href, token.type),
tagName = options.resolve(opts.tagName, href, token.type),
linkClass = options.resolve(opts.linkClass, href, token.type),
target = options.resolve(opts.target, href, token.type),
events = options.resolve(opts.events, href, token.type);
var href = token.toHref(opts.defaultProtocol);
var formatted = options.resolve(opts.format, token.toString(), token.type);
var formattedHref = options.resolve(opts.formatHref, href, token.type);
var attributesHash = options.resolve(opts.attributes, href, token.type);
var tagName = options.resolve(opts.tagName, href, token.type);
var linkClass = options.resolve(opts.linkClass, href, token.type);
var target = options.resolve(opts.target, href, token.type);
var events = options.resolve(opts.events, href, token.type);
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build the link
var link = doc.createElement(tagName);
link.setAttribute('href', formattedHref);
link.setAttribute('class', linkClass);
if (target) {
link.setAttribute('target', target);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
// Build up additional attributes
if (attributesHash) {
for (var attr in attributesHash) {
link.setAttribute(attr, attributesHash[attr]);
}
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
if (events) {
for (var event in events) {
if (link.addEventListener) {
link.addEventListener(event, events[event]);
} else if (link.attachEvent) {
link.attachEvent('on' + event, events[event]);
}
}
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
} else if (token.type === 'nl' && opts.nl2br) {
result.push(doc.createElement('br'));
} else {
result.push(doc.createTextNode(token.toString()));
}
link.appendChild(doc.createTextNode(formatted));
result.push(link);
}

@@ -124,10 +125,16 @@

var str = childElement.nodeValue,
tokens = tokenize(str),
nodes = tokensToNodes(tokens, opts, doc);
var str = childElement.nodeValue;
var tokens = tokenize(str);
if (tokens.length === 0 || tokens.length === 1 && tokens[0] instanceof TEXT_TOKEN) {
// No node replacement required
break;
}
var nodes = tokensToNodes(tokens, opts, doc);
// Swap out the current child for the set of nodes
replaceChildWithChildren(element, childElement, nodes);
// so that the correct sibling is selected
// so that the correct sibling is selected next
childElement = nodes[nodes.length - 1];

@@ -134,0 +141,0 @@

@@ -31,3 +31,3 @@ 'use strict';

for (var attr in attributes) {
var val = (attributes[attr] + '').replace(/"/g, '&quot;');
var val = attributes[attr] + '';
result.push(attr + '="' + escapeAttr(val) + '"');

@@ -34,0 +34,0 @@ }

@@ -81,3 +81,3 @@ 'use strict';

// Long URL with optional port and maybe query string
S_URL_SYMS = makeState(),
S_URL_NON_ACCEPTING = makeState(),
// URL followed by some symbols (will not be part of the final URL)

@@ -158,3 +158,3 @@ S_URL_OPENBRACE = makeState(),

// Types of characters the URL can definitely end in
var qsAccepting = [TT_DOMAIN, TT_AT, TT_LOCALHOST, TT_NUM, TT_PLUS, TT_POUND, TT_PROTOCOL, TT_SLASH, TT_TLD];
var qsAccepting = [TT_DOMAIN, TT_AT, TT_LOCALHOST, TT_NUM, TT_PLUS, TT_POUND, TT_PROTOCOL, TT_SLASH, TT_TLD, TT_SYM];

@@ -164,3 +164,3 @@ // Types of tokens that can follow a URL and be part of the query string

// Characters that cannot appear in the URL at all should be excluded
var qsNonAccepting = [TT_COLON, TT_DOT, TT_QUERY, TT_PUNCTUATION, TT_CLOSEBRACE, TT_CLOSEBRACKET, TT_CLOSEPAREN, TT_OPENBRACE, TT_OPENBRACKET, TT_OPENPAREN, TT_SYM];
var qsNonAccepting = [TT_COLON, TT_DOT, TT_QUERY, TT_PUNCTUATION, TT_CLOSEBRACE, TT_CLOSEBRACKET, TT_CLOSEPAREN, TT_OPENBRACE, TT_OPENBRACKET, TT_OPENPAREN];

@@ -174,3 +174,3 @@ // These states are responsible primarily for determining whether or not to

// URL with extra symbols at the end, followed by an opening bracket
S_URL_SYMS.on(TT_OPENBRACE, S_URL_OPENBRACE).on(TT_OPENBRACKET, S_URL_OPENBRACKET).on(TT_OPENPAREN, S_URL_OPENPAREN);
S_URL_NON_ACCEPTING.on(TT_OPENBRACE, S_URL_OPENBRACE).on(TT_OPENBRACKET, S_URL_OPENBRACKET).on(TT_OPENPAREN, S_URL_OPENPAREN);

@@ -215,6 +215,6 @@ // Closing bracket component. This character WILL be included in the URL

S_URL.on(qsAccepting, S_URL);
S_URL_SYMS.on(qsAccepting, S_URL);
S_URL_NON_ACCEPTING.on(qsAccepting, S_URL);
S_URL.on(qsNonAccepting, S_URL_SYMS);
S_URL_SYMS.on(qsNonAccepting, S_URL_SYMS);
S_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);
S_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);

@@ -221,0 +221,0 @@ // Email address-specific state definitions

@@ -21,5 +21,6 @@ 'use strict';

var REGEXP_NUM = /[0-9]/,
REGEXP_ALPHANUM = /[a-z0-9]/,
COLON = ':';
var NUM = '0123456789'.split('');
var ALPHANUM = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');
var WHITESPACE = [' ', '\f', '\r', '\t', '\v']; // excluding line breaks
var COLON = ':';

@@ -42,4 +43,3 @@ var domainStates = [],

S_START = makeState(),
// start state
S_NUM = makeState(T_NUM),
S_NUM = makeState(T_NUM),
S_DOMAIN = makeState(T_DOMAIN),

@@ -51,10 +51,10 @@ S_DOMAIN_HYPHEN = makeState(),

// States for special URL symbols
S_START.on('@', makeState(_tokens.text.AT)).on('.', makeState(_tokens.text.DOT)).on('+', makeState(_tokens.text.PLUS)).on('#', makeState(_tokens.text.POUND)).on('?', makeState(_tokens.text.QUERY)).on('/', makeState(_tokens.text.SLASH)).on(COLON, makeState(_tokens.text.COLON)).on('{', makeState(_tokens.text.OPENBRACE)).on('[', makeState(_tokens.text.OPENBRACKET)).on('(', makeState(_tokens.text.OPENPAREN)).on('}', makeState(_tokens.text.CLOSEBRACE)).on(']', makeState(_tokens.text.CLOSEBRACKET)).on(')', makeState(_tokens.text.CLOSEPAREN)).on(/[,;!]/, makeState(_tokens.text.PUNCTUATION));
S_START.on('@', makeState(_tokens.text.AT)).on('.', makeState(_tokens.text.DOT)).on('+', makeState(_tokens.text.PLUS)).on('#', makeState(_tokens.text.POUND)).on('?', makeState(_tokens.text.QUERY)).on('/', makeState(_tokens.text.SLASH)).on(COLON, makeState(_tokens.text.COLON)).on('{', makeState(_tokens.text.OPENBRACE)).on('[', makeState(_tokens.text.OPENBRACKET)).on('(', makeState(_tokens.text.OPENPAREN)).on('}', makeState(_tokens.text.CLOSEBRACE)).on(']', makeState(_tokens.text.CLOSEBRACKET)).on(')', makeState(_tokens.text.CLOSEPAREN)).on([',', ';', '!', '"'], makeState(_tokens.text.PUNCTUATION));
// Whitespace jumps
// Tokens of only non-newline whitespace are arbitrarily long
S_START.on(/\n/, makeState(_tokens.text.NL)).on(/\s/, S_WS);
S_START.on('\n', makeState(_tokens.text.NL)).on(WHITESPACE, S_WS);
// If any whitespace except newline, more whitespace!
S_WS.on(/[^\S\n]/, S_WS);
S_WS.on(WHITESPACE, S_WS);

@@ -103,16 +103,16 @@ // Generates states for top-level domains

// Number and character transitions
S_START.on(REGEXP_NUM, S_NUM);
S_NUM.on('-', S_DOMAIN_HYPHEN).on(REGEXP_NUM, S_NUM).on(REGEXP_ALPHANUM, S_DOMAIN); // number becomes DOMAIN
S_START.on(NUM, S_NUM);
S_NUM.on('-', S_DOMAIN_HYPHEN).on(NUM, S_NUM).on(ALPHANUM, S_DOMAIN); // number becomes DOMAIN
S_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(REGEXP_ALPHANUM, S_DOMAIN);
S_DOMAIN.on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);
// All the generated states should have a jump to DOMAIN
for (var _i = 0; _i < domainStates.length; _i++) {
domainStates[_i].on('-', S_DOMAIN_HYPHEN).on(REGEXP_ALPHANUM, S_DOMAIN);
domainStates[_i].on('-', S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN);
}
S_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(REGEXP_NUM, S_DOMAIN).on(REGEXP_ALPHANUM, S_DOMAIN);
S_DOMAIN_HYPHEN.on('-', S_DOMAIN_HYPHEN).on(NUM, S_DOMAIN).on(ALPHANUM, S_DOMAIN);
// Any other character is considered a single symbol token
S_START.on(/./, makeState(_tokens.text.SYM));
// Set default transition
S_START.defaultTransition = makeState(_tokens.text.SYM);

@@ -119,0 +119,0 @@ /**

@@ -36,2 +36,4 @@ 'use strict';

BaseState.prototype = {
defaultTransition: false,
/**

@@ -51,3 +53,2 @@ @method constructor

*/
on: function on(symbol, state) {

@@ -86,3 +87,3 @@ if (symbol instanceof Array) {

// Nowhere left to jump!
return false;
return this.defaultTransition;
},

@@ -89,0 +90,0 @@

{
"name": "linkifyjs",
"version": "2.0.4",
"version": "2.0.5",
"description": "Intelligent link recognition, made easy",

@@ -5,0 +5,0 @@ "repository": {

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